Keep Calm and Carry on Coding

I’ve had a change of name, well the blog has. It is based on the poster which displays the text “Keep calm and Carry On”, this was originally created back in 1939 by the British Government and was intended to raise the morale of the British public in the event of invasion (see wikipedia) in the World War II. The new title is “Keep Calm and Carry On Coding”, it grew from a conversation about these posters one geek filled lunch time. Here’s a little hacked version of the poster based on one from wikimedia (here):

Keep Calm and Carry On Coding Poster
Continue reading “Keep Calm and Carry on Coding”

What Star Trek species are we?

Star Trek, a TV show that began in the 1960’s, is one of the most popular TV shows ever. Last years big box office movie release showed that it is still a show that many people want to watch and I believe this is because, at its heart, it has always shown a positive future for humanity. It’s a world – no, a galaxy –  in where humans explore the cosmos for no more reason than to see what’s there, there is no financial gain involved, indeed money no longer has any meaning. People work for the good of others towards a common goal. And, of course, they have interesting, exciting, important and ultimately entertaining voyages from one star system to the next.

Continue reading “What Star Trek species are we?”

CanvasZoom – HTML5 Canvas and code

You may have seen the program Zoomify, or similar programs like, OpenZoom and DeepZoom, which quickly display large resolution images on websites without large amounts of data being downloaded – only the part which is needed is downloaded. Most of these applications use some kind of plugin to work (e.g. Flash or Silverlight), so I wanted to see if we could create one without any plugin, using only the HTML5 standards.
Continue reading “CanvasZoom – HTML5 Canvas and code”

Teaching programming to the masses.

Most people believe it’s easiest to learn new things when you are young, however, I believe if you are still able to think then you are still able to learn, but there is one good reason for learning earlier and that’s the time to practice and gain experience.

Starting to learn programming early certainly has it’s benefits, the best ones are almost always the ones who started when they were young, and this leads us to the main part of this blog: Teaching Programmers.

I grew up programming the Sinclair ZX Spectrum, not an experience I’d want anyone else to try, (though it was pretty clever for its time). This was always a rather loney pursuit, and in many cases, still is. However, programming has come a long way since then, object orientated programming was a massive improvement and Garbage Collectors have improved far enough to be pretty fast and reliable.

But has the way we program really changed that much? Well, no not really. All programming comes down to opening up a file and writing symbols in certain orders that only a select few can understand. How does the majority learn what’s going on? Isn’t it a little strange that the world over uses software but a tiny minority actually know how to create it?

Well, I think so, but the good news is that programming is slowly going mainstream, and there’s several really useful and fun pieces of software available to teach it, here’s my top picks.

Alice (http://www.alice.org/) (Personal Favourite!)
With this you first create a 3D world with characters and props through a simple drag and drop interface. You then control what happens through coding. The tutorial is excellent and gets you going immediatey. It won’t be long before you are creating your own little world (See mine here)

Scratch (http://scratch.mit.edu/)
Two-dimensional images can be controlled to make all kinds of interesting games and tools. There’s a large list of examples created by people across the world.

Kudo (http://research.microsoft.com/en-us/projects/kodu/)
This one is especially for creating games and just looks really nice. The programming is just drag and drop.

Karel (http://mormegil.wz.cz/prog/karel/prog_doc.htm)
This isn’t actually a program but a fully fledge programming language. But it’s designed especially for people new to programming.

Human computing power

The idea

There are still quite a few tasks that computers struggle to do, image recognition is a good example. Currently there’s only one way to complete these tasks and that’s manually. This can obviously take a long time to do but there is a solution, you just need to find thousands of people to take part – this is exactly what we are seeing more and more of right now.

The internet is ideal way to get many thousands of people together, and with the right task really great things can be achieved. Of course, it’s not as easy as uploading thousands of images and expecting people to look through them for you – if we don’t find the images interesting then we are simply not going to take part. One way to keep a task interesting is to make the process into a game and compete with other like minded people.

The other problem is making sure the tasks are being performed correctly. The current preferred solution is to first train the participants and secondly to randomly test them against already checked responses. This also removes any unscrupulous individuals intent on causing problems and ultimately makes the completed task more reliable.

Some examples of human computing follow.

Clickworkers
The first test of the idea was back in 2000, and was called Click Workers. It was run by Nasa and the idea was simply to select craters on Mars. The interface is quite basic, and reflects some of the early internet’s draw backs clearly lacking some of the enhancements in more recent projects, but the project proved that the concept could work.

The stardust project

One of the first projects to use some of the latest Web 2.0 ideas was the Stardust Project. Stardust was a sample return mission to collect interstellar particles passing through the Solar System. The particles were tiny and captured in a gel like substance (see image), it was as they put it

“…like looking for 45 ants on a football pitch.”

more information about the project here.

For the website the “gel” was imaged at a high resolution and small pieces then farmed off to an individuals. First each individual was given a test to make sure they knew what they were looking for, then they were given a really image of the “gel” and had to decide if it contained a particle or not. The whole idea was to pretty much search for the stuff stars (and everything) are made of, as if you were some intergalatic explorer, as they put it:

“The best attitude for this project is this: Have fun!”

good advice for anyone wanted to set up their own human computing experiment.

The galaxy zoo project

The next project to give this a try was the galaxy zoo project. The idea here was to try to classify galaxies into spiral (as image) or elliptical. There exists thousands and thousands of photographs of the night sky unseen by human eyes and just waiting for the next great discovery to be made – step up the next group of intergalatic explorers.

This project was in a similar vain to the previous one but executed with a slightly slicker interface. This also had a massive following, with quite quickly millions of galaxy classifications taking place. Participants were again trained and tested during their continual classification. Friendly competition was enhanced with high score tables and records of right and wrong classifications.

The foldit game

One of the more advanced software programs in human computing tasks is the FoldIt Game, it’s also one of the cleverest ideas and one of the most fun to do. The idea is you have to fold proteins so that they can have the right shape to combine with other proteins, these can then be used to cure real world diseases.

This one is attempting something slightly different from the other examples here. Rather than classification, this one actually wants you to solve some rather complex problems. Many of the puzzles have unknown solutions and there may even be some that have no solution.

It’s fairly simple to get started, the puzzles have a nice learning curve and the interface has been well designed. Just use the mouse to grab or shake parts of the protein to see what happens. You’ll have to download the program to try it yourself.

More detailed information can be found here.

GWAP.com
This is the final one we’ll look at here, and the idea takes various human computing tasks into the mainstream. GWAP comes from “Games With A Purpose” and there are several games here to compete in. All are primarilly designed to be fun to play but are cleverly designed to help computers recognise things like images or words.

To check that it is being correctly played, couples co-operate anomonously and try to, for instance, tag a photo with the same word, or ring the same part of an image. Doing this means it effectively checks itself, and the more people that play the games the more reliable the information becomes.

Check out more info here. And for an in depth look into GWAP and similar ideas check this video out.

Summary
It seems like more and more projects are being started that utilise these unique human abilities, and with each new project becomes an ever more ingenious idea. But the question is how long will it be before computers have the abilities to do t
hese tasks themselves? Well, with more of these projects actually aimed at improving computers in the first place, maybe it’ll be sooner than we think.

One last thing I must mention though is the darker side of human computing. It’s already been shown that criminals have used this technique to bypass the CAPTCHA login systems by employing enough humans to sort through the vast outputs.

Let me know of any other human computing projects you’ve come across.

Project Euler. Problem Solving, Maths and programming

Here’s a fun little website to stretch those little grey cells.
http://projecteuler.net/

Named after the great Mathematician “Leonhard Euler”, it’s a website to test your programming and Maths prowess. Of course I’d only recommend it if you do actually enjoy solving maths puzzles and enjoy programming, otherwise it might be just a little torturous!

Each puzzle has a single number which you can enter on the website as a solution. It will keep a record of all the solutions you’ve found and if you solve enough, your name will be immortalised on the high score board (Though there’s a lot of work to do to get there!). Once you’ve got the right answer you can see how other people worked it out too in various different programming languages. You will certainly learn a few new skills and probably improve your own programming along the way.

I’ll see you there.

Update: It’s also a great way to practice any new programming languages you may be learning. Check out the list of languages people have used.

Flickr Video


Vienna Palace
Originally uploaded by akademy

Following on from an earlier post, and true to their word, Flickr have now added video to their sites.

They’ve added a few restrictions to the video, the strictest being that video can not be more than 90 seconds long. I think this is a good idea, as the video’s most people will be putting up are the short ones that we take when we are on holiday. This ensures Flickr doesn’t become something it doesn’t want to be.

Here’s a video I took in Vienna.