Monday, April 13, 2009

Quantum Computers and Signal Noise


Quantum computers represented a possible "next-step" for the tried-and-true conventional binary computing used in much of the world. While conventional computers represented data using binary on and off switches (each "bit" of data existing in one of two states), quantum computers takes advantage of the superposition principle in quantum physics that allow it to represent data in one of three possible states. This includes the on and off switches of a conventional computer and a distinct state where a given "qubit" (analog to the conventional "bit") can be both on and off. This can be particularly useful for computationally difficult problems, where testing every possible solution would take the conventional computer a couple million years. The quantum computer can skip a lot of these tests, almost as if it were testing multiple solutions at any one step

Unfortunately, signal noise has a tendency to introduce errors during computation. This can actually alter and corrupt the state that a bit (and by extention, qubit) is in, thereby corrupting whatever representated data that bit is a part of. A weakness of quantum computing is its obvious reliance on a basic principle of quantum physics, which make redundancy and repetition (a simple matter in conventional computing) impossible as a method of error correction. Researchers have also found that their current method of error avoidance (as opposed to the reactive error correcting) cannot be used on its own, dashing any hopes of using that method exclusively in future implementations of the quantum computer.

Then again, whatever that is determined to not work only narrows down the possible choices of what will work, so research continues to advance.

Quantum Computers Will Require Complex Software To Manage Errors, ScienceDaily

Sunday, April 12, 2009

Harness the power of the sun?


Recently, it has been made public that a series of testing has been going on in order to attempt to create a laser powerful and strong enough in order to produce the energy of the sun. Located in California, the National Ignition Facility has already tested approximately 192 lasers. Their goal is to achieve a laser strong enough to heat a single pea sized capsule to at least 180 million degrees Fahrenheit. Once they have achieved this, they can then attempt to recreate a model of the sun to be useable by humans on Earth. This sun in turn would be able to produce limitless energy at a safe and environmental friendly means. The scientists came to this conclusion based off of Newton’s third law of reactions in hopes that the reaction would produce more then what is needed to start the reaction.

In order to do this however, they are relying on a nuclear reaction to occur once the atoms fuse together. This could, potentially blow California off from the United States of America. This seems like a potentially dangerous experiment, however there have occurred many other equally threatening experiments in the past, which have, threaten all of humanity. Although nothing major has been tested yet, the National Ignition Facility has announced that in 2010, they would attempt to focus 500 trillion watts of energy on a single pea sized capsule. Hopefully, the experiment will success and the capsule will be able to contain the amount of energy being produced by the reaction.

Sources:
http://www.livescience.com/space/090408-tw-laser-fusion.html
http://www.gearlog.com/2009/04/laser_to_recreate_suns_power_s.php

Alzheimer's Disease and the APOE4 Gene Type


It is always sad to see a person affected by Alzheimer’s disease. A person whose brain once functioned normally now continues to lose brain cells at a rapid pace. It comes to the point where a person can no longer carry out a normal lifestyle. Scientists have been striving to discover what it is causes Alzheimer’s for quite some time now. Since then, the gene type APOE4 has been linked to the development of the disease. Young individuals with this gene were recently studied by scientists in Britain and it has been found that their brains patterns were different. This shows that even before developing the disease, the brain works differently in people with the APOE4 gene type. “When they did a memory task, the APOE4 carriers had more activity in a part of the brain called the hippocampus, which is involved in long-term memory and navigation and which is the first area known to be affected in Alzheimer's disease” (Fox). The memory part of the brain in APOE4 carriers works harder even when asked to do nothing. This has led scientists to believe that Alzheimer’s develops because the memory part of the brain is overworked. The gene type is not particularly rare. About one fourth of the population carries APOE4. Although not everyone with the APOE4 gene type develops the disease, those with one copy of the gene have four times the risk while those with two copies are ten times more likely to develop Alzheimer’s. With further research, scientists eventually hope to be able to give a test that will determine whether or not a person will develop Alzheimer’s disease in the future.
Fox, Maggie. "Alzheimer's gene changes brain early, study finds." Reuters. 08 Wed 2009. 12 Apr 2009

Sunday, April 5, 2009

Review of "Programming Principles and Practice"

This is a review of the book “Programming Principles and Practice Using C++” by Bjarne Stroustrup.


This book is one of the best general programming books that I’ve ever come across. It is a fast paced book whose contents are at the same time both fulfilling and informative. Programming Principles and Practice is a complete introduction to the theory behind programming, not just language features.

Written by the inventor of C++, Programming Principles and Practice is not what you expect. I anticipated a large amount of the text to be dedicated to justifying design decisions made when C++ was created, and counter arguments to some of the more pervasive criticisms. Instead, I found a deft sidestep: Stroustrup simple admits that C++ isn’t perfect, and moves on.

The author’s design of the book is not to teach C++, it is to teach students the theory about how to be a good programmer (and, by extension, a good computer scientist).  Stroustrup spends much of the text discussing abstract notions like program design, applications of programming, and testing principles. He uses C++ simply as a way of putting these principles into practice, and not as the main focus of the book.

As a seasoned (student) programmer, I found this book to be delightfully refreshing. Most introductory programming books spend too much time on syntax (‘teach yourself in 24 hours’ types are a prime example) and too little about why they designed their sample programs the way that they did. In contrast, Stroustrup acknowledges what many of his peers do not: the novice programmer can quickly (and quite easily) look up implementation details online. It is more difficult to apply that same solution to the theory, so that’s what Stroustrup focuses on.

Despite being a theory text, Programming Principles and Practice is not like a typical scientific or scholarly textbook. The author uses a friendly tone (the use of ‘we’ through the text), and simple and concise explanations.

All in all, Programming Principles and Practice by Bjarne Stroustrup is an excellent addition to the library of any future computer scientist.

Cheers,

Cody

A positive effect for the release of CO2


A recent discovery has founded that an increase in carbon dioxide (CO2) has lead to the rapid development of various trees across a wide range of different species. Over the years, humans will continue to increase their release of CO2 into the atmosphere as our population increases. Although this evil waste product will ultimately lead to the destruction of the ozone layer, trees are able to utilize its properties in for not only its own beneficial usage, but ours too. Trees are able to convert CO2 into sugars and proteins for its own growth and developments, which are just as important as water to a tree. Because of the increase of CO2, the trees have more access to it and are able to flourish in a better environment; even though the CO2 is ruining the ozone layer. Not only is this cause an increase in the amount of trees being produced, but it also speeds up its growth. By having more trees in the environment, they are thus able to “suck up” even more CO2 and release, in return, fresh air.

Regardless of this wonderful fact however, many scientists are still saying that the amount of CO2 being released into the atmosphere is still astronomically high. According to Professor Martin Perry, the trees are only removing a small fraction of the amount of CO2 we are releasing. Surprisingly, we release about 50 million tons of gas a year, a rate far too great for the trees to consume. The trees will not solve global warming, or anything near it, but it is helping the environment greatly and slow down global warming.

Original Article: "Trees are growing faster and could buy time to halt global warming." (6. Apr. 2009): Riverside, 5 Apr. 2009. http://www.telegraph.co.uk/earth/environment/climatechange/5109251/Trees-are-growing-faster-and-could-buy-time-to-halt-global-warming.html.

Scientists to be replaced by Robots?


Researchers in London are claiming to have created an actual robot scientist. Much like a human scientist, the robot is capable of reasoning and carrying out experiments on its own. Ross King for Aberystwyth University has christened this robo-scientist, Adam. So far, Adam has performed experiments on the metabolism of yeast and has since become the first robot to make a scientific discovery. Adam was able to detect the gene in yeast that is responsible for the production of an amino acid called lysine. This amino acid is especially important because it is vital to growth. How did it do this? “The robot, called Adam, was able to work out where an important gene would be located and to develop experiments to prove its theory” (Smith). This discovery and those expected to be made in the future, are likely to be important to creating new treatments to illnesses. Adam’s discovery in particular will be useful when treating fungal diseases such as the common Athlete’s foot. This is because the gene responsible for growth can now be identified and disabled. Though robot scientists will without a doubt become important, it is unlikely that they will replace human scientists. Instead, robo-scientists will work alongside humans. They will be used to, “…carry out large numbers of repetitive tests that in a person would induce boredom and loss of concentration” (Smith) and to record very specific details. A new robo-scientist by the name of Eve is expected to be switched on soon. It is only a matter of time before these robot scientists are no longer a rarity.

For more information:
http://www.reuters.com/article/scienceNews/idUSTRE53167K20090403

Smith, Lewis. "Robot scientist ." Times Online. 03 Apr 2009. The Times. 5 Apr 2009 http://www.timesonline.co.uk/tol/news/uk/science/article6024880.ece

The Human TSP Solver

The Traveling Salesman Problem can best be described as planning a road trip throughout the country, where the driver (no doubt excited to undertake the 1000+ mile journey) needs to decide the route through various landmarks. The passengers wouldn't likely want to visit the same place twice, and they would probably want to find the shortest route through all the landmarks to make the most of their time.

Researchers have noted that the human mind, specifically the portion that deals with spatial reasoning, is good at finding optimal solutions to this type of problem in a reasonable amount of time (e.g. the amount of time it takes to plan a trip). Computers on the other hand, while able to find the optimal solution, would take an extraordinary amount of time to find it (factorial time). This is due to the fact that a computer program would attempt to test the total distance of every possible route in order to find the shortest route. It's crucial to note that this would hold true even with an arbitrarily small amount of places to visit.

Jason Brownlee decided to start an experiment testing just how well a person's spatial reasoning skills can be used to solve TSP problems. Disguised as a game, users would log into the application and attempt to find the shortest route going through all the points on a given graph. Anyone who finds a shorter route than the one already saved and posted earns points which are used to rank the user on a scoreboard. 

The  Human TSP Solver

Tuesday, March 31, 2009

Parallax Propeller

I thought I'd share some comments about a microcontroller, the Parallax Propeller.

First off, the essential web pages:



The Propeller is an eight core microcontroller that runs a custom language (called Spin) or assembly. It's main design feature is the replacement of interupts by multiple cores. This allows developers to create code that eaiser to debug and faster to implement, while mainting a solid timing scheme. 

In addition to the multiple cores (called 'cogs'), the most noticable trait of the Propeller is it's lack of hardware support for common tasks. These are meant to be (and are) programs that the developer can pick and choose from to suit his needs. For example, serial I/O (a very common operation) is implemented in several different 'objects' that create a very tight fit to the developers needs. Similar applications abound for such tasks as TV output, sensor input, and motor control. 

I like the Propeller for it's clean code structure (via Spin) and the ease at which multiple, simultaneous tasks can be performed. Here's some code I wrote for making series of 1 second duration 56kHz pulses:

CON
    _clkmode = xtal1 + pll16x
    _xinfreq = 5_000_000
                     
OBJ
    BS2 : "BS2_Functions"    ' Create BS2 Object

PUB Start 
    BS2.start (31,30)        ' Initialize BS2 Object timing, Rx and Tx pins for DEBUG

    waitcnt(clkfreq/100 + cnt)
    
    repeat
      BS2.FREQOUT(23, 1000, 56000)
      waitcnt(clkfreq + cnt)

Note the use of objects (for functions such as transmitting) and the clean code. 

Of course, the Propeller isn't perfect. First, it's high price ($8 as of April 1) prevents it's widespread use in commercial embedded systems, escpecially when compared to the PICs or AVRs. Secondly, it's very different architecture is a far cry from the interrupts used by most in the industry. 

None the less, the Parallax Propeller, with it's multiple cores, certainly makes development much easier for those who don't want to read through a 200 page PIC datasheet.

Cheers

Design Competition

I got an email recently from Digi (a wireless company) announcing their design competition. 





What caught my eye was that students get a 50% discount on the products that you use to enter the competition. There are some nice components there, most notably the xBee modules and interfaces from the Zigbee network to the internet. I thought a combination of http://www.digi.com/products/wirelessdropinnetworking/idigi-kits/x4-zb.jsp and http://www.digi.com/products/wirelessdropinnetworking/idigi-kits/bl4s100-addon-zb.jsp would be interesting. The second product has a module that apparently interfaces with a web browser (is it a server?) which allows you to remotely monitor and modify I/Os, and to also interface with Xbees. My only concerns though are that the module does act as a server (and hence would be difficult to use in the dorm) and that it requires poorly documented programming languages.

What can you do with something like this? The classic answer is probably a home security system. Monitor where Fido is at all times, keep track of the doors, warm up the house before you get home, etc. Another idea is to make a remote control car. By remote control I mean control an object in Japan from Rivereside. With the web browser capbility we're no longer limited to short range wireless ( <>

Cheers

Blog Format Questions to Team Members

Some questions that collaboration might help on:

What should the domain name be? I tried Orange, Team Orange and Orange Team: all taken. Currently, it is OrangeSC, but I can change that.

Can you guys edit the blog as a whole? (colors, fonts, layout, etc.) Let me know.

Anything else that you would like to see to personalize the blog? I used a standard template and changed a few things (along with a picture of Swiftsure the robot), but other than that I don't have a clue.