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.

Phishing for phishers: An idea

Phishing

I just had another phishing email today and had an idea how to fight against it. (Phishing is an email which looks like it is from one company but was actually from someone else, they are designed to steal your login details – Hence, they were “fishing” for my details)

I was curious to know how close the dummy login page looked to the real one (I should point out at this point you should never normally even click on a link on email like this, it can be really unsafe!). So that you don’t have to try this I show two images below for you to have a look at:

As you can see, they are pretty identical (the first one is the fake one).

Taking care
Don’t worry, it isn’t hard to avoid these phishing scams. Here’s a few tips to help you catch these.

Is it likely?
Firstly, it’s actually quite unlikely that your bank would suddenly need to contact you for any reason. If somethings important, they’ll almost certainly send a letter.

Avoid links
If you do recieve an email and you think it is genuine, don’t use any links embedded in the email, instean open your Internet browser and type the name in manually, or use one of your own bookmarks if you have one.

Fake URL’s
If you do use a link inside an email (or even on the internet) it’s a good idea to check what the URL is. This appears in the box, usually at the top of your browser (For instance, this website’s URL is: “http://akademy-tips.blogspot.com/” you should see this in the box).

Phisihers usually attempt to trick you by including the real one with their own. For instance, this is a fake url: “http://akademy-tips.blogspot.com.fakingit.com/” – notice the additional text at the end “fakingit.com” – this is actually the real address of the website.

Always check the right most text of the top URL part. This is the part between the “http://” (or “https://”) and the first “/”, e.g. (in bold):

  • http://www.bbc.co.uk/merlin/episodes/
  • http://en.wikipedia.org/wiki/Main_Page
  • http://akademy-tips.blogspot.com.fakingit.com/
  • http://akademy-tips.blogspot.com/

Many modern browsers actually highlight this part for you now.

An idea
Once you’ve realised what’s going on, any information can be added into these websites. In fact simply entering dummy account information will start to put of the phishers, however a much more ingenious thing to do would be for the real companies affected by these emails to set up dummy accounts, and then enter these details into the phishing websites.

Now, as soon as these dummy details are entered on the real website a company can take immediate actions to stop them, perhaps logging and banning their IP address, so that no real accounts can be used from that position. Alternatively, with the help of the police, perhaps money transfers could be tracked as they are made.

Of course, it’s highly likely that this is already taking place. Perhaps it’s only a matter of time before these people are caught.

Let me know what you think.

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.

Exciting software: Photosynth

Already mention in my Exciting software blog, Photosynth is now released to the public.

This has been around for a while now, but is still pretty impressive software. The idea is it can take multiple shots of the same area and stitch them together to create a 3D world. You can then move about in this world, moving in and out of various areas.

You can try the software out for yourself here:
http://photosynth.net/

(A warning though, any photos you upload become public.) They say you can create a impressive shot with as little as 10 photos and they suggest you start small. For a guide on taken photos see this PDF’s but some quick tips to get you started:

  • Overlap the shots alot
  • Take zoomed out shots
  • Shoot the same thing from different angles.

The software works on either XP or Vista across most of the leading browsers. Let me know how you get along and have fun.

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.

Big Thinking

Just thought I’d drop in a link to my current favourite website:
http://www.bigthink.com

It’s basically a lot of questions, but you get the opportunity to add your own, leave a response to another, or start a debate about another one.

Makes you think – which has got to be a good thing.

Me Tree – The family.

Just installed “PhpGedView” to my website.

It’s a really nice genealogy package built on php. You can see it here: http://www.akademy.co.uk/gd/

Most of the information has been locked down, but if you want a log in – and I know who you are – feel free to request one.

I have 153 people on my tree, most of the information is on my fathers side. It includes 43 different surnames, the earliest individual dates back from 1753!

However, when I have the time I’m planning on expanding the information about each person, because just a name from 200 years ago means almost nothing – the question is “Who were they?” and “what did they do?”

Photo Websites – Photobucket, DropShots, Webshots and Flickr

Intro
I’ve been looking into photo websites so I can stick my photos up for the world to see. I decided the easiest way to pick was to try several out at once to see which ones I like.

I’ve been using Webshots for some years but not quite happy with it, so I decided to test these three Photo Websites (in alphabetical order):

  • DropShots
  • Flickr
  • PhotoBucket

To compare each I signed up for a free account, and therefore the information here is based on the free account. You can see each of my accounts here:

My Favourite
In the end I felt Flickr was the one for me. I’ve detailed why below.

Flick is one of the most popular photo websites and is populated by people who really take photos seriously. The free account gives you a good feel for all the functionality the payfor account does, unfortunately the free account restricts the amount of data you can upload per month to just 100 Mb – a visit to the local zoo would soon use this up – so this makes the free account mostly unusable, photobucket has the best free account, if you don’t mind the speed and all the ads.

Flickr does have some nice features though. You can tag your photos with words but or by position on the Yahoo world map (called “Geo tagging”) and all with a rather nice and simple drag and drop interface making it easy to organiseyour photos (none of the other websites are this easy). You can also divide you photos in to numerous sets (which are like folders) and the same photos can be placed in more than one set – for example: Your zoo outing could be one set with the inevitable animal shots also being dropped into your “Wildlife” set too – (You only get a total of three sets in the free account). There’s also collections, which Flickr says are like “Sets of sets but better than that” but these aren’t available in the free account. Basically, it allows you to collect together groups of related sets, and groups of other collections. (This again is unique on Flickr, the other websites only have single sets.)

The web upload is pretty basic with a few text boxes which is a shame as you could feasibly use this a lot if you upload on holiday. (PhotoBucket excels here, with easily the best online uploader – although it technically it downloads and runs a program inside your browser) The installed version Flickr’s upload program is quick and simple to use, very similar to all the other websites.

One thing that Flickr excels in is its great API – this, together with its many uses, means that many applications, both online and off, have been created to use your photos – check out places like FaceBook or download a screensaver for your computer. It also means you can write you own unique photo app and from experience they have made it very straight forward.

One negative is it’s lack of video, this goes against all the other websites. I think this is mostly due to them trying to concentrate on the Photos and not wanting to become another YouTube, it would be good to store my holiday videos right next to my holiday photos. (Note however, that Flickr has said it will soon be doing this… I’ll update when know)

Summary
Here’s a quick list of the good and bad points for each.

DropShots
Good: Simple unique timeline interface, quick, ad free, video, drag drop interface.
Bad: Basic features, single sets, free account limited, no api.
Recommend: For beginners or people not to confident with photo websites.

Flickr
Good: Multiple sets, Installed upload, geo tagging, api, drag drop interface
Bad: No video, online upload, free account useless.
Recommend: For people series about photos, people who what to do a lot with their photos, programmers and people with a fascination with categorising everything.

PhotoBucket
Good: Free account unlimited photos, video, geo tagging, online upload excellent
Bad Slow, Full of ads, single sets, no api.
Recommend: For people who don’t want to pay anything and just want to show them off but have a ton of photos.

Webshots
Good: Free account useful, video, upload useful. Good screensaver/desktop changer
Bad: A few adverts, single sets, no open api.
Recommend: For people who want a free account but don’t like tons of adverts. Also has a very nice screensaver program.

Let me know…

… which ones you like, hate, recommend and stay clear off.

Another move?

Yep, I’ve moved house again. Finally got out of the middle of town. No it’s just a few minutes home for me. No more traffic – terrific!

I’ve moved into a nice little cottage now, exposed beams and all. I was staring at the ceiling in my living room the other day, and It took me that those beams look just like a skeleton. The exposed bones of the house. Just though I’d share that with you.

Also, I just thought I’d complete my broadband NTL posts which I started back in December. I have to admit that since the orginal setup (which they utterly messed me around with) it was running as smoothly as I could hope for. Perhaps Virgin taken them over really picked up there customer care? Who knows…

Well that’s me for now.