Showing posts with label in. Show all posts
Showing posts with label in. Show all posts

Open in new window option on right click

  • Go to Start >> Run.
  • Type regedit to open Registry Editor.
  • Before doing the following trick, take a back-up of your registry for safety.
  • Now navigate to HKEY_CLASSES_ROOT >> Directory >> shell
  • Create a new key i.e. Right-click on shell Select New >> Key and name it as "Open in new Window" without double quotes


  • Now, Right-click on the key which you have created now and create a sub key with the name "command"
  • Now, On the right pane, double click Default and enter value explorer %1.
  • Now you can see new window option on right-click on any folder.
  • To make this option available for your drives, perform the same procedure on HKEY_CLASSES_ROOT >> Drive >> shell.
  • To undo this trick, simply remove the keys which you have created.
Read More..

Enable DMA in Windows XP Vista and Windows 7 to speed up the system

Direct memory access (DMA) is a feature of modern computers and microprocessors that allows certain hardware subsystems within the computer to access system memory for reading and/or writing independently of the central processing unit.
DMA is used for transferring data between the local memory and the main memory. Computers that have DMA channels can transfer data to and from devices with much less CPU overhead than computers without a DMA channel.

This is especially useful in real-time computing applications where not stalling behind concurrent operations is critical. Another and related application area is various forms of stream processing where it is essential to have data processing and transfer in parallel, in order to achieve sufficient throughput.
Now, know how to Enable Direct Memory Access (DMA) in order to speed up your system.

You must be logged on as an administrator to perform these steps.

Direct memory access (DMA) is usually turned on by default for devices such as hard disks and CD or DVD drives that support DMA. However, you might need to turn on DMA manually if the device was improperly installed or if a system error occurred. Perform the following steps to do this.

First Open Device Manager.
  • Right-click on My Computer, select Properties
  • Select the Hardware tab
  • Click the Device Manager button
For Windows XP
  1. Double-click IDE/ATAPI controllers
  2. Double-click on the Primary IDE Channel
  3. Click on the Advanced Settings tab (as shown in figure) The tab may or may not be available for each option. It is only available in Primary and Secondary Channels.
  4. Set the Transfer Mode to "DMA if Available" both for Device 1 and 0
  5. Click OK
  6. Perform the same operation for other items in the list, if applicable.
For Windows Vista and Windows 7
  1. In the left pane, click the plus sign next to IDE ATA/ATAPI controllers to expand it.
  2. For each icon that has the word Channel as part of its label, right-click the icon, and then click Properties.
  3. Click the Advanced Settings tab, and then, under Device Properties, select the Enable DMA check box.
  4. Click OK.
Read More..

In praise of noise cancelling headphones

Ive just come back from a trip to Europe involving two 24 hour plus air flights from and back to New Zealand. I recently treated myself to a pair of Bose QuietComfort 20i Acoustic Noise Cancelling Headphones. I dont usually promote products on this blog but I have to say I cant praise these headphones highly enough. Bose came up with the idea for noise cancelling headphones and they are issued to pilots and as standard in business class on many airlines. I would recommend that if you fly often you must invest in a pair. I finished each 24 hour flight (yes New Zealand is a long way from the rest of the world) feeling much more relaxed because I never heard that constant engine roar. I just heard the movies, my music or near silence. I really believe I left each flight much more rested than previously. Highly recommended.

from The Universal Machine http://universal-machine.blogspot.com/

IFTTT

Put the internet to work for you.

Turn off or edit this Recipe

Read More..

The Big Data Brain Drain Why Science is in Trouble

I dont often blog about academia, but my colleague, Mark Wilson, has brought this fascinating blog article, called The Big Data Brain Drain: Why Science is in Trouble to my attention. It basically makes the case that academic science is in trouble because the skills it requires are either very much in demand by industry and commerce (i.e, the ability to analyse big data) and that the skills required to create scientific software to do just this are not well rewarded inside academia. I encourage you to read the article yourself.

from The Universal Machine http://universal-machine.blogspot.com/

IFTTT

Put the internet to work for you.

via Personal Recipe 895909

Read More..

New ways to add Reminders in Inbox by Gmail



Last week, Inbox by Gmail opened up and improved many of your favorite features, including two new ways to add Reminders.

First up, when someone emails you a to-do, Inbox can now suggest adding a Reminder so you don’t forget. Heres how it looks if your spouse emails you and asks you to buy milk on the way home:
To help you add Reminders, the Google Research team used natural language understanding technology to teach Inbox to recognize to-dos in email.
And much like Gmail and Inbox get better when you report spam, your feedback helps improve these suggested Reminders. You can accept or reject them with a single click:
The other new way to add Reminders in Inbox is to create Reminders in Google Keep--they will appear in Inbox with a link back to the full note in Google Keep.
Hopefully, this little extra help gets you back to what matters more quickly and easily. Try the new features out, and as always, let us know what you think using the feedback link in the app.
Read More..

Google Computational Journalism Research Awards launch in Europe



Journalism is evolving fast in the digital age, and researchers across Europe are working on exciting projects to create innovative new tools and open source software that will support online journalism and benefit readers. As part of the wider Google Digital News Initiative (DNI), we invited academic researchers across Europe to submit proposals for the Computational Journalism Research Awards.

After careful review by Google’s News Lab and Research teams, the following projects were selected:

SCAN: Systematic Content Analysis of User Comments for Journalists
Walid Maalej, Professor of Informatics, University of Hamburg
Wiebke Loosen, Senior Researcher for Journalism, Hans-Bredow-Institute, Hamburg, Germany
This project aims at developing a framework for the systematic, semi-automated analysis of audience feedback on journalistic content to better reflect the voice of users, mitigate the analysis efforts, and help journalists generate new content from the user comments.

Event Thread Extraction for Viewpoint Analysis
Ioana Manolescu, Senior Researcher, INRIA Saclay, France
Xavier Tannier, Professor of Computer Science, University Paris-Sud, France
The goal of the project is to automatically build topic "event threads" that will help journalists and citizens decode claims made by public figures, in order to distinguish between personal opinion, communication tools and voluntary distortions of the reality.

Computational Support for Creative Story Development by Journalists
Neil Maiden, Professor of Systems Engineering
George Brock, Professor of Journalism, City University London, UK
This project will develop a new software prototype to implement creative search strategies that journalists could use to strengthen investigative storytelling more efficiently than with current news content management and search tools.

We congratulate the recipients of these awards and we look forward to the results of their research. Each award includes funding of up to $60,000 in cash and $20,000 in computing credits on Google’s Cloud Platform. Stay tuned for updates on their progress.
Read More..

Moore’s Law Part 4 Moores Law in other domains

This is the last entry of a series focused on Moore’s Law and its implications moving forward, edited from a White paper on Moore’s Law, written by Google University Relations Manager Michel Benard. This series quotes major sources about Moore’s Law and explores how they believe Moore’s Law will likely continue over the course of the next several years. We will also explore if there are fields other than digital electronics that either have an emerging Moores Law situation, or promises for such a Law that would drive their future performance.

--

The quest for Moore’s Law and its potential impact in other disciplines is a journey the technology industry is starting, by crossing the Rubicon from the semiconductor industry to other less explored fields, but with the particular mindset created by Moore’s Law. Our goal is to explore if there are Moore’s Law opportunities emerging in other disciplines, as well as its potential impact. As such, we have interviewed several professors and researchers and asked them if they could see emerging ‘Moore’s Laws’ in their discipline. Listed below are some highlights of those discussions, ranging from CS+ to potentials in the Energy Sector:

Sensors and Data Acquisition
Ed Parsons, Google Geospatial Technologist
The More than Moore discussion can be extended to outside of the main chip, and go within the same board as the main chip or within the device that a user is carrying. Greater sensors capabilities (for the measurement of pressure, electromagnetic field and other local conditions) allow including them in smart phones, glasses, or other devices and perform local data acquisition. This trend is strong, and should allow future devices benefiting from Moore’s Law to receive enough data to perform more complex applications.

Metcalfe’s Law states that the value of a telecommunication network is proportional to the square of connected nodes of the system. This law can be used in parallel to Moore’s Law to evaluate the value of the Internet of Things. The network itself can be seen as composed by layers: at the user’s local level (to capture data related to the body of the user, or to immediately accessible objects), locally around the user (such as to get data within the same street as the user), and finally globally (to get data from the global internet). The extrapolation made earlier in this blog (several TB available in flash memory) will lead to the ability to construct, exchange and download/upload entire contexts for a given situation or a given application and use these contexts without intense network activity, or even with very little or no network activity.

Future of Moore’s Law and its impact on Physics
Sverre Jarp, CERN
CERN, and its experiments with the Large Electron-Positron Collider (LEP) and Large Hadron Collider (LHC) generate data on the order of a PetaByte per year; this data has to be filtered, processed and analyzed in order to find meaningful physics events leading to new discoveries. In this context Moore’s Law has been particularly helpful to allow computing power, storage and networking capabilities at CERN and at other High Energy Physics (HEP) centers to scale up regularly. Several generations of hardware and software have been exhausted during the journey from mainframes to today’s clusters.

CERN has a long tradition of collaboration with chip manufacturers, hardware and software vendors to understand and predict next trends in the computing evolution curve. Recent analysis indicates that Moore’s Law will likely continue over the next decade. The statement of ‘several TB of flash memory availability by 2025’ may even be a little conservative according to most recent analysis.

Big Data Visualizations
Katy Börner, Indiana University
Thanks to Moore’s Law, the amount of data available for any given phenomenon, whether sensed or simulated, has been growing by several orders of magnitude over the past decades. Intelligent sampling can be used to filter out the most relevant bits of information and is practiced in Physics, Astronomy, Medicine and other sciences. Subsequently, data needs to be analyzed and visualized to identify meaningful trends and phenomena, and to communicate them to others.

While most people learn in school how to read charts and maps, many never learn how to read a network layout—data literacy remains a challenge. The Information Visualization Massive Open Online Course (MOOC) at Indiana University teaches students from more than 100 countries how to read but also how to design meaningful network, topical, geospatial, and temporal visualizations. Using the tools introduced in this free course anyone can analyze, visualize, and navigate complex data sets to understand patterns and trends.

Candidate for Moore’s Law in Energy
Professor Francesco Stellacci, EPFL
It is currently hard to see a “Moore’s Law” applying to candidates in energy technology. Nuclear fusion could reserve some positive surprises, if several significant breakthroughs are found in the process of creating usable energy with this technique. For any other technology the technological growth will be slower. Best solar cells of today have a 30% efficiency, which could scale higher of course (obviously not much more than a factor of 3). Also cost could be driven down by an order of magnitude. Best estimates show, however, a combined performance improvement by a factor 30 over many years.

Further Discussion of Moore’s Law in Energy
Ross Koningstein, Google Director Emeritus
As of today there is no obvious Moore’s Law in the Energy sector which could decrease some major costs by 50% every 18 months. However material properties at nanoscale, and chemical processes such as catalysis are being investigated and could lead to promising results. Applications targeted are hydrocarbon creation at scale and improvement of oil refinery processes, where breakthrough in micro/nano property catalysts is pursued. Hydrocarbons are much more compatible at scale with the existing automotive/aviation and natural gas distribution systems. Here in California, Google Ventures has invested in Cool Planet Energy Systems, a company with neat technology that can convert biomass to gasoline/jet fuel/diesel with impressive efficiency.

One of the challenges is the ability to run many experiments at low cost per experiment, instead of only a few expensive experiments per year. Discoveries are likely to happen faster if more experiments are conducted. This leads to heavier investments, which are difficult to achieve within slim margin businesses. Therefore the nurturing processes for disruptive business are likely to come from new players, beside existing players which will decide to fund significant new investments.

Of course, these discussions could be opened for many other sectors. The opportunities for more discourse on the impact and future of Moore’s Law on CS and other disciplines are abundant, and can be continued with your comments on the Research at Google Google+ page. Please join, and share your thoughts.
Read More..

How to hack BIOS password in Desktop and Laptop

Bios password Hack
The following steps to hack BIOS password work absolutely fine for a Desktop and are the easiest of all.
Steps:
  • Shut down the computer and take out all the plugs connected to electricity.
  • Open up the CPU cabinet and locate the CMOS battery on the motherboard (it will be a silver circular battery just like a button cell).
  • Remove the battery and keep it out for some 2-3 minutes as this will flush out the CMOS memory which stores the BIOS password and all other configurations.
  • Now place the battery back and start the computer normally.

Steps for Laptop:
  • Open up the BIOS at the time of booting.
  • There are some backdoor passwords which the manufacturing company had set that will be accepted by the BIOS. You will just need to know the make of your BIOS.Try out the passwords from these lists.
List of Award BIOS backdoor passwords:
  • BIOSTAR, AWARD_SW, AWARD SW, AWARD PW, CONDO, LKWPETER, J262, 01322222
  • List of AMI BIOS backdoor passwords:
  • AMI, AAAMMMIII, BIOS, PASSWORD, A.M.I., CONDO
  • List of PHOENIX BIOS backdoor passwords:
  • phoenix, PHOENIX, CMOS, BIOS
you can also try this utility CmosPwd 4.8

Note: Read Disclaimer before use.
Read More..

Playing YouTube videos in the browser on the Raspberry Pi

This will allow you to stream up to 1080p youtube videos in the browser on the Raspberry pi using omxplayer. Its a crude hack but it seems to work pretty well on my system. Install instructions and a demonstration video are shown below.

You can install this by pulling the git repository and running the scripts below.
Commands to install are below (your user should have sudo privileges but you dont need to be root):

You may have to enable user scripts in Midori by going to Menu>Preferences>Extensions>UserScripts and clicking the check box.


sudo apt-get install git-core
git clone git://github.com/StevenHickson/PiAUISuite.git
cd PiAUISuite/Install/
./InstallAUISuite.sh

**NOTE, this will ask you if you want to install a lot of different scripts because it is a SUITE. You only have to pick the ones you want to use. If you only want to use the youtube scripts, press n on any other question except for the dependencies and youtube.

Update Instructions 

cd PiAUISuite
git pull
cd Install
sudo ./UpdateAUISuite.sh



Demonstration


There is a lot of misinformation out there on how to do this. Using gnash or HTML5 is going to result in a frame rate so slow it can be considered unworkable. Ive tried both of them out and you cant really watch videos with them. XBMC has a youtube plugin but it is buggy and crashes often.

Ive been playing youtube videos using the command line and my voicecommand using the scripts found here.
After seeing a couple people ask about playing youtube in the browser last night, I decided to go ahead and do that and create some user scripts for midori which allow the browser to utilize the same hack.

Here is the technical overview:
I created a script called youtube which uses the youtube-dl -g flag to grab the video URL. It also handles playlists and other parsing. Then it passes that video URL to omxplayer for it to stream. 
Next I registered a new URL protocol yt:// and made it pass its information to the youtube program whenever it runs. 
Finally, I created a user script in Midori which simply replaces all http://youtube.com/watch?* URLs with yt://youtube.com/watch?*.

Feel free to let me know any problems you have and enjoy your Youtube browsing experience.


 Consider donating to further my tinkering


Places you can find me
Read More..

Double click on a drive opens in new window

Problem:
When i double-click on a drive, it opens in new window. What is the problem, Is it because of a virus. Please help me.

Solution:
  • Open any explorer window, Click on Tools >> Folder options >> View.
  • Click on restore defaults.
If this does not solve your problem the it may be because of a virus attack.
You can perform the following steps to get rid of this.

Solution 1
  1. Open start menu and click Run.
  2. Type regsvr32 /i shell32.dll
  3. Click Ok and if this message shows “DllRegisterServer and DllInstall in shell32.dll succeeded” that means the problem is solved.

Solution 2
  1. In Run type regedit.exe to open the registry editor.
  2. Traverse to HKEY_CLASSES_ROOT/Directory/Shell
  3. Double click on the default value on right and set it as “none”.
  4. Repeat the procedure for the key HKEY_CLASSES_ROOT/Drive/Shell.

Solution 3
Alternatively, you can download a registry file and merge it with your registry by double clocking it. Reboot your system after merging the file.
One of the methods listed above will definitely solve your problem.
Read More..

Do you want to live in a Smart City

Stephen Poole in the The Guardian has written a very interesting and thought provoking long article The truth about smart cities: In the end, they will destroy democracy that presents both sides of the vision of the future smart city; the benefits of a highly connected society and infrastructure and the potential pitfalls. With online privacy and data security such hot topics at the moment its certainly easy to see how the smart city of the future could be fraught with dangers. I recommend you read it.




from The Universal Machine http://universal-machine.blogspot.com/

IFTTT

Put the internet to work for you.

Delete or edit this Recipe

Read More..

Advances in Variational Inference Working Towards Large scale Probabilistic Machine Learning at NIPS 2014



At Google, we continually explore and develop large-scale machine learning systems to improve our user’s experience, such as providing better video recommendations, deciding on the best language translation in a given context, or improving the accuracy of image search results. The data used to train these systems often contains many inconsistencies and missing elements, making progress towards large-scale probabilistic models designed to address these problems an important and ongoing part of our research. One principled and efficient approach for developing such models relies on an approach known as Variational Inference.

A renewed interest and several recent advances in variational inference1,2,3,4,5,6 has motivated us to support and co-organise this year’s workshop on Advances in Variational Inference as part of the Neural Information Processing Systems (NIPS) conference in Montreal. These advances include new methods for scalability using stochastic gradient methods, the ability to handle data that arrives continuously as a stream, inference in non-linear time-series models, principled regularisation in deep neural networks, and inference-based decision making in reinforcement learning, amongst others.

Whilst variational methods have clearly emerged as a leading approach for tractable, large-scale probabilistic inference, there remain important trade-offs in speed, accuracy, simplicity and applicability between variational and other approximative schemes. The goal of the workshop will be to contextualise these developments and address some of the many unanswered questions through:

  • Contributed talks from 6 speakers who are leading the resurgence of variational inference, and shaping the debate on topics of stochastic optimisation, deep learning, Bayesian non-parametrics, and theory.
  • 34 contributed papers covering significant advances in methodology, theory and applications including efficient optimisation, streaming data analysis, submodularity, non-parametric modelling and message passing.
  • A panel discussion with leading researchers in the field that will further interrogate these ideas. Our panelists are David Blei, Neil Lawrence, Shinichi Nakajima and Matthias Seeger.

The workshop presents a fantastic opportunity to discuss the opportunities and obstacles facing the wider adoption of variational methods. The workshop will be held on the 13th December 2014 at the Montreal Convention and Exhibition Centre. For more details see: www.variationalinference.org.

References:

1. Rezende, Danilo J., Shakir Mohamed, and Daan Wierstra, Stochastic Backpropagation and Approximate Inference in Deep Generative Models, Proceedings of the 31st International Conference on Machine Learning (ICML-14), 2014.

2. Gregor, Karol, Ivo Danihelka, Andriy Mnih, Charles Blundell and Daan Wierstra, Deep AutoRegressive Networks, Proceedings of the 31st International Conference on Machine Learning (ICML-14), 2014.

3. Mnih, Andriy, and Karol Gregor, Neural Variational Inference and Learning in Belief Networks, Proceedings of the 31st International Conference on Machine Learning (ICML-14), 2014.

4. Kingma, D. P. and Welling, M., Auto-Encoding Variational Bayes, Proceedings of the International Conference on Learning Representations (ICLR), 2014.

5. Broderick, T., Boyd, N., Wibisono, A., Wilson, A. C., & Jordan, M., Streaming Variational Bayes, Advances in Neural Information Processing Systems (pp. 1727-1735), 2013.

6. Hoffman, M., Blei, D. M., Wang, C., and Paisley, J., Stochastic Variational Inference, Journal of Machine Learning Research, 14:1303–1347, 2013.
    Read More..

    Piloting after school clubs to ignite interest in Computer Science



    In July, Google launched a new pilot program, CS First, located in our South Carolina data center, to ignite interest in computer science (CS) for K-12 students, especially underrepresented minorities and girls.

    Working collaboratively with South Carolina Lowcountry school systems and teachers, we are creating an after-school program to achieve the following goals for students:
    • Have a positive attitude toward CS, have no fear of computers, and have the confidence and curiosity to jump into a new computing experience
    • Understand that coding is used in a diverse set of jobs/hobbies
    • Are willing to persevere and have a debugging mindset
    • Collaborate - coding is social!
    • Learn and use basic coding concepts such as object creation, conditionals, variables, loops, and input/output
    With these goals in mind, we began pilot programs in Berkeley, Charleston, and Dorchester counties, exposing students, with a focus on underrepresented minorities and girls, to the most promising existing content and tools. We then observed the clubs, collected survey data and iterated to improve the content and tools that worked best.

    To date, CS First has run 31 after-school programs for 4th-12th grades, reaching more than 450 students. Of those students, 53% were girls, and 66% qualify for free or reduced lunch. Each after-school program lasted four weeks and consisted of eight 60-90 minute lessons using a variety of tools such as App Inventor, Scratch, Blockly, Python in Codacademy, Scheme in Bootstrap, as well as various physical gadgets like Finch Robots, Little Bits, Sphero and Raspberry Pi.

    The Google Computer Science Teaching Fellows led the CS First after-school clubs and studied student engagement and preferences. The following major findings are helping to shape our programs as we iterate:
    • Students were most engaged when they had a creative outlet or where there was a big "wow-factor". They were less engaged with tools that were strongly scaffolded for learning and did not result in a creative result. In this initial set of pilots, students were most engaged with Scratch and App Inventor.
    • Club culture is as important as the tool choice for engagement levels and therefore we continue to intentionally create a social club environment.
    • Scaffolding and forward momentum are especially important in creative design-oriented tools. Students sometimes became distracted by the design aspects of Scratch and would often not code unless club structure included accountability.
    We are collecting qualitative observations about CS First, as well as surveying our students and teacher sponsors. Our November programs had the following survey results (sample size of 73 students):
    • "I can create things with computer science": Students agreed with this statement 25% more after the program.
    • "If I get stuck on a computer problem, I know how I might fix it": An increase of 22% after the program.
    • "Do you like programming?": The number of “yes” responses increased 29%.
    • "Do you think computer science is cool?" The number of “yes” responses increased 26%.
    • "I dont really understand computer science": Students agreed with this statement 34% less after the program.
    In November, we began working with 4 non-teacher technologists to understand the challenges of scaling through volunteers. In our January programs, we will pilot with 10 community members leading the clubs in partnership with local school districts. The outcome will be a polished kit of tested materials which teachers and volunteers can use to lead an after-school CS First club with students. The kit is designed so that a teacher with little CS experience or a technologist with little teaching experience will be able to implement it with a group of 10-20 students. The ultimate goal of CS First is to provide proven teaching materials, screencasts, and curricula for after-school programs that will ignite the interest and confidence of underrepresented minorities and girls in CS and to scale these programs through a network of teacher sponsors, volunteers and national organizations.
    Read More..

    Creating a templated Binary Search Tree Class in C

    Creating a basic template Tree Class in C++
    (Works in Linux and Windows)

    If you just want the code and not the walkthrough, it is attached at the end (I use the GNU GPL license, so do whatever you want with the code as long as you mention me).

    There a multiple benefits of creating a Tree class based on a template. With a template, the tree can be a container for anything while still being fairly clean code. We will also create this class to be easily inherited for other trees such as an AVL and Huffman tree (which we will implement later).

    A tree is a widely used data structure which organizes a set of nodes containing data. More can be found on it here: http://en.wikipedia.org/wiki/Tree_%28data_structure%29

    This tree will be a Binary Search Tree; however, it will be easily inheritable so that other trees (Binary trees, such as AVL and Red-Black) can be defined based on it.

    First we will set up our Node as a holder for the data and tree information such as the parent and connected nodes (the leaves). I overload the < operator so that we can search and sort this tree using the c++ algorithm include if we so desire.

    template <class T>
    class Node {
    public:
        T data;
        Node *left, *right, *parent;

        Node() {
            left = right = parent = NULL;
        };
        Node(T &value) {
            data = value;
        };
        ~Node() {
        };   
        void operator= (const Node<T> &other) {
            data = other.data;
        };
        bool operator< (T &other) {
            return (data < other);
        };
    };

    Our tree will basically just be a bunch of these Nodes pointing to each other, with some functions to manage the data structure.

    template <class T>
    class Tree {
    public:
        Tree() {
            root = NULL;
        };

        ~Tree() {
            m_destroy(root);
        };

        //We will define these all as virtuals for inherited trees (like a Huffman Tree and AVL Tree shown later)
        virtual void insert(T &value) {
            m_insert(root,NULL,value);
        };
        virtual Node<T>* search(T &value) {
            return m_search(root,value);
        };
        virtual bool remove(T &value) {
            return m_remove(root,value);
        };
        virtual bool operator< (Tree<T> &other) {
            return (root->data < other.first()->data);
        };
        void operator= (Tree<T> &other) {
            m_equal(root,other.first());
        };
        Node<T>*& first() {
            return root;
        };


    protected:
        //this will be our root node and private functions
        Node<T> *root;
        void m_equal(Node<T>*& node, Node<T>* value) {
            if(value != NULL) {
                node = new Node<T>();
                *node = *value;
                if(value->left != NULL)
                    m_equal(node->left, value->left);
                if(value->right != NULL)
                    m_equal(node->right, value->right);
            }
        }

        void m_destroy(Node<T>* value) {
            if(value != NULL) {
                m_destroy(value->left);
                m_destroy(value->right);
                delete value;
            }
        };
        void m_insert(Node<T> *&node, Node<T> *parent, T &value) {
            if(node == NULL) {
                node = new Node<T>();
                *node = value;
                node->parent = parent;
            } else if(value < node->data) {
                m_insert(node->left,node,value);
            } else
                m_insert(node->right,node,value);
        };
        void m_insert(Node<T> *&node, Node<T> *parent, Tree<T> &tree) {
            Node<T> *value = tree.first();
            if(node == NULL) {
                node = new Node<T>();
                *node = *value;
                node->parent = parent;
            } else if(value->data < node->data) {
                m_insert(node->left,tree);
            } else
                m_insert(node->right,tree);
        };
        Node<T>* m_search(Node<T> *node, T &value) {
            if(node == NULL)
                return NULL;
            else if(value == node->data)
                return node;
            else if(value < node->data)
                return m_search(node->left,value);
            else
                return m_search(node->right,value);
        };

        bool m_remove(Node<T> *node, T &value) {
            //messy, need to speed this up later
            Node<T> *tmp = m_search(root,value);
            if(tmp == NULL)
                return false;
            Node<T> *parent = tmp->parent;
            //am i the left or right of the parent?
            bool iamleft = false;
            if(parent->left == tmp)
                iamleft = true;
            if(tmp->left != NULL && tmp->right != NULL) {
                if(parent->left == NULL || parent->right == NULL) {
                    parent->left = tmp->left;
                    parent->right = tmp->right;
                } else {
                    if(iamleft)
                        parent->left = tmp->left;
                    else
                        parent->right = tmp->left;
                    T data = tmp->right->data;
                    delete tmp;
                    m_insert(root,NULL,data);
                }
            } else if(tmp->left != NULL) {
                if(iamleft)
                    parent->left = tmp->left;
                else
                    parent->right = tmp->left;
            } else if(tmp->right != NULL ) {
                if(iamleft)
                    parent->left = tmp->right;
                else
                    parent->right = tmp->right;
            } else {
                if(iamleft)
                    parent->left = NULL;
                else
                    parent->right = NULL;
            }
            return true;
        };
    };

    And thats all we need for a basic binary search tree. The full code is shown below

    Tree.h 

    Consider donating to further my tinkering.


    Places you can find me
    Read More..

    Sign in to edx org with Google and Facebook and



    Google is passionate about online education. In addition to our own Course Builder project, we’re also partners with edX, a not-for-profit that shares our desire for scalable, quality education for everyone. Their software, Open edX, lets people make educational content and deliver it online to anybody, anytime, anywhere. It powers their own site, edx.org, and is also used by companies and universities worldwide.

    Today we’re very pleased to announce that you can now sign in to edx.org with your Google or Facebook account:
    Until recently, users who wanted to take advantage of the high quality content on edx.org needed to create a new account first. This is a painful, error prone process?really, who wants to worry about yet another password? So we added the ability to use over 60 external authentication providers to Open edX, with support for everything from open standards like OpenID or OAuth 2.0, to custom university single sign-on systems. For their edx.org site, edX decided to let users pick between Google, Facebook, and a custom username and password.

    If you run Open edX, you can also use this feature now. The authentication module is extensible so you can add any third-party provider you want if your favorite is not yet supported. And the feature is completely configurable, so you can pick whatever third-party authentication systems are best for your users, including none at all. It’s totally up to you.

    By simultaneously increasing user choice, convenience, and security, we hope to make open online education even easier and safer to use, whether people pick Course Builder or Open edX for authoring and delivering courses. We’re very grateful to our partners at edX for working with us in this exciting field.
    Read More..

    Throwing fireballs with the Kinect and Oculus Rift in Unity 3D

    I decided I wanted to make a small game where you were a viking and you threw fireballs at enemy vikings on Unity 3D. The catch is, I wanted to actually throw the fireballs, so I wanted to use the Kinect, and I wanted to actually see if I was the character, so I wanted to use the Oculus Rift.

    Here is a quick video of the results before we get on to the discussion:



    Basically this started because a colleague at Georgia Tech, Alex Trevor (soon to be Dr,), had an Oculus Rift and mounted a camera on top of it to see the Kinect output with the Oculus Rift. I thought that was really cool and had previously worked on a game that used the Kinect Skeleton to throw fireballs (though I lost all the source code for the first version). I really wanted to combine those ideas and had to start over.

    Luckily, Dr. Brian Peasley (now at Microsoft) came to my rescue as always and gifted me an Oculus Rift. 


    To explain a bit, the Oculus Rift is an immersive virtual reality headset. The two images are displayed on the screen above because one is projected to the left eye and one to the right eye. As you rotate your head, the images change and it feels like you are looking at a real environment (it is pretty amazing). This is why there are two images in the video (and pretty much all Oculus Rift demos). To appreciate it fully, I recommend wearing an Oculus Rift while watching the video.



    The Kinect everyone should know by now. It can yield a really good skeletal estimation of a persons joints from the depth data, which can then be used to represent gestures.

    I had some time this week so I grabbed the Unity third person MMO example, added the Kinect scripts provided by CMU here, created my own fireball and fireball related prefabs and scripts, added the Oculus package, changed all the camera stuff to make it first person, and tweaked a lot of stuff. Daniel Castro (also at Georgia Tech) was nice enough to help me film me making a fool of myself.
    It was obviously a bit more complicated than that. Lots of tinkering and scripting was involved to get things working but that is the output. Here at RIM, we are working on lots of other cool things and if you are interested, check out some of my other projects.

    Ive uploaded the source for public use and you can find it here (just make sure to please cite me):
    https://github.com/StevenHickson/UnityKinectOculus

    The fireball script just takes two Game objects (the Vikings left hand normalized by your hip) and uses a velocity measurement to determine if you want to throw the fireball, then it creates a fireball and sets its velocity to your hands velocity whenever you throw. This can be done easily with a small amount of code as below:
    void Update () {
    Vector3 norm_hand = HandPosition.transform.position - HipPosition.transform.position;
    Vector3 velocity = (norm_hand - lastPos) / Time.deltaTime;
    float dist = velocity.magnitude;
    if (Input.GetButtonDown("Fire1") || (dist > THRESH && dist < MAX_THRESH)) {
                            Rigidbody clone;
    Vector3 pos = HandPosition.transform.position;
    pos.z += 1;
                            clone = (Rigidbody)Instantiate(Projectile, pos, transform.rotation);
    clone.velocity = velocity * SPEED;
                    }
    lastPos = norm_hand;
    }

    And thats it for the fireball. Then there are some scripts destroying the fireball and vikings when they collide.
    For the mapping of the joints to the main Viking, each joint position of the Viking is mapped to the corresponding Kinect Skeleton joints with GameObjects in the KinectControllerScript.
    Then the Oculus SDK is used to create the camera and player control mapped to the main viking.
    For all the code, see the Github project

    Im using a friends version of Unity Pro because Im a poor graduate student. So please donate if you liked this work so I can continue doing it. All of these gadgets are expensive and I do all this and post it for free.

    So please consider donating to further my tinkering!!



    Places you can find me
    Read More..

    How to allow users to Run only specified programs in Windows 7




    You can allow users to run only specified programs in Windows 7 operating systems. It is up to you if you want your shared computer to allow users to run only specified programs in Windows 7. A shared computer in an office, for example, can be set in the same way if the company does not want the employees to run all types of programs. You can allow the users to run only specified programs in Windows 7 by using the Local Group Policy. However, you cannot do this in the Home editions of Windows 7 as it does not provide the Local Group Policy Editor.
    Click on the Start button.

    Type “gpedit.msc” in the search box of the Start menu and press the Enter button on the keyboard.
    Local Group Policy Editor will open. Scroll down to “User Configuration”, “Administrative Templates” and then “System” on the left hand side of the window pane.
    On the right hand side of the window, under “Setting”, navigate and double-click on “Run only specified Windows applications”.



    Select Enabled from the window.
    Click on “Show” under Options. 



    The Show Contents window pane will appear. Here you can type the applications you want to let the users run.
    After you are done, click on the OK button.
    Close the Local Group Policy Editor.



    After this, if someone attempts to run an app which was not specified by you, he will get this error message:



    This feature to allow users to run only specified programs in Windows 7 is the best at preventing the users from accessing applications you don’t want them to use on a particular computer.

    Read More..

    What does Privacy Mean to New Zealanders in the Internet Age

    This Thursday is the 1st lecture in the annual Gibbons Memorial lecture series. The first lecture is by Professor Miriam Lips of the School of Government, Victoria University of Wellington, titled: What does Privacy Mean to New Zealanders in the Internet Age?

    When: 6pm (refreshments) for 6.30pm lecture start, Thursday 1st May, 2014
    Where: Owen G Glenn Building, Room OGGB3/260-092
    Note that there is public parking in the basement of the Owen G Glenn Building at 12 Grafton Road.

    Miriam Lips is the first Professor of E-Government at Victoria University of Wellington. This chair is sponsored by industry - Datacom System, FX Networks, Microsoft New Zealand – and the NZ government - the State Services Commission and the Department of Internal Affairs.

    Professor Lips holds a MSc and a PhD from Erasmus University Rotterdam and an EMPA from Erasmus University, Leiden University and the Hochschule für Verwaltungswissen-schaften, Speyer. She has held academic positions at the University of Oxford and Tilburg University. Her current research includes management of online identity, use of social media for public engagement, the use of e-campaigning and the use of new media in disaster management.

    Synopsis: Based on a 2013 survey with a representative sample of the New Zealand population, this talk will explore how, and to what extent, different groups of the New Zealand population are disclosing and protecting their personal information in varying online relationships with the private sector, government, and family and friends through social networking. The meaning of privacy for people from different age groups, ethnicities, educational backgrounds, and income groups will be discussed, and the implications for a population which increasingly exchanges their identity information online, against the backdrop of new privacy challenges and risks emerging from the use of Big Data.

    from The Universal Machine http://universal-machine.blogspot.com/

    IFTTT

    Put the internet to work for you.

    via Personal Recipe 895909

    Read More..

    How to measure translation quality in your user interfaces



    Worldwide, there are about 200 languages that are spoken by at least 3 million people. In this global context, software developers are required to translate their user interfaces into many languages. While graphical user interfaces have evolved substantially when compared to text-based user interfaces, they still rely heavily on textual information. The perceived language quality of translated user interfaces (UIs) can have a significant impact on the overall quality and usability of a product. But how can software developers and product managers learn more about the quality of a translation when they don’t speak the language themselves?

    Key information in interaction elements and content are mostly conveyed through text. This aspect can be illustrated by removing text elements from a UI, as shown in the the figure below.
    Three versions of the YouTube UI: (a) the original, (b) YouTube without text elements, and (c) YouTube without graphic elements. It gets apparent how the textless version is stripped of the most useful information: it is almost impossible to choose a video to watch and navigating the site is impossible.
    In "Measuring user rated language quality: Development and validation of the user interface Language Quality Survey (LQS)", recently published in the International Journal of Human-Computer Studies, we describe the development and validation of a survey that enables users to provide feedback about the language quality of the user interface.

    UIs are generally developed in one source language and translated afterwards string by string. The process of translation is prone to errors and might introduce problems that are not present in the source. These problems are most often due to difficulties in the translation process. For example, the word “auto” can be translated to French as automatique (automatic) or automobile (car), which obviously has a different meaning. Translators might chose the wrong term if context is missing during the process. Another problem arises from words that behave as a verb when placed in a button or as a noun if part of a label. For example, “access” can stand for “you have access” (as a label) or “you can request access” (as a button).

    Further pitfalls are gender, prepositions without context or other characteristics of the source text that might influence translation. These problems sometimes even get aggravated by the fact that translations are made by different linguists at different points in time. Such mistranslations might not only negatively affect trustworthiness and brand perception, but also the acceptance of the product and its perceived usefulness.

    This work was motivated by the fact that in 2012, the YouTube internationalization team had anecdotal evidence which suggested that some language versions of YouTube might benefit from improvement efforts. While expert evaluations led to significant improvements of text quality, these evaluations were expensive and time-consuming. Therefore, it was decided to develop a survey that enables users to provide feedback about the language quality of the user interface to allow a scalable way of gathering quantitative data about language quality.

    The Language Quality Survey (LQS) contains 10 questions about language quality. The first five questions form the factor “Readability”, which describes how natural and smooth to read the used text is. For instance, one question targets ease of understanding (“How easy or difficult to understand is the text used in the [product name] interface?”). Questions 6 to 9 summarize the frequency of (in)consistencies in the text, called “Linguistic Correctness”. The full survey can be found in the publication.

    Case study: applying the LQS in the field

    As the LQS was developed to discover problematic translations of the YouTube interface and allow focused quality improvement efforts, it was made available in over 60 languages and data were gathered for all these versions of the YouTube interface. To understand the quality of each UI version, we compared the results for the translated versions to the source language (here: US-English). We inspected first the global item, in combination with Linguistic Correctness and Readability. Second, we inspected each item separately, to understand which notion of Linguistic Correctness or Readability showed worse (or better) values. Here are some results:
    • The data revealed that about one third of the languages showed subpar language quality levels, when compared to the source language.
    • To understand the source of these problems and fix them, we analyzed the qualitative feedback users had provided (every time someone selected the lower two end scale points, pointing at a problem in the language, a text box was surfaced, asking them to provide examples or links to illustrate the issues).
    • The analysis of these comments provided linguists with valuable feedback of various kinds. For instance, users pointed to confusing terminology, untranslated words that were missed during translation, typographical or grammatical problems, words that were translated but are commonly used in English, or screenshots in help pages that were in English but needed to be localized. Some users also pointed to readability aspects such as sections with old fashioned or too formal tone as well as too informal translations, complex technical or legal wordings, unnatural translations or rather lengthy sections of text. In some languages users also pointed to text that was too small or criticized the readability of the font that was used.
    • In parallel, in-depth expert reviews (so-called “language find-its”) were organized. In these sessions, a group of experts for each language met and screened all of YouTube to discover aspects of the language that could be improved and decided on concrete actions to fix them. By using the LQS data to select target languages, it was possible to reduce the number of language find-its to about one third of the original estimation (if all languages had been screened).
    LQS has since been successfully adapted and used for various Google products such as Docs, Analytics, or AdWords. We have found the LQS to be a reliable, valid and useful tool to approach language quality evaluation and improvement. The LQS can be regarded as a small piece in the puzzle of understanding and improving localization quality. Google is making this survey broadly available, so that everyone can start improving their products for everyone around the world.
    Read More..

    How good you are in SQL Simple SQL Quiz

    This is a simple online Quiz to test your knowledge in SQL. At the end you can see the result.
    Every time you refresh the page you will see a new set of questions.

    Powered by : http://www.sqlquiz.com

    Read More..