Saturday, April 14, 2012

Mmmmmm PIE!


Twenty three pounds sterling, that’s about twenty eight Euros or about thirty five Dollars, gets you a Raspberry Pi computer. In the 1980's when the price of an eight bit microprocessor had dropped to a level low enough to allow their inclusion in commercially available systems, machines like the Commodore 64, Sinclair or Timex Spectrum and many others blazed the trail into the eager palms of kids whose parents were told earnestly that "I can do my homework on it" but in reality they were used to run games until the early hours of the morning.


These machines all came with some version of BASIC which it's true to say, was used to gain an appreciation of programming and indeed, many kids laboriously copied games from magazine listings, thereby gaining some small appreciation of programming.

Then came the era of the poke; A "poke" was a way to change the code of a game such that it operated differently, giving you extra lives or super powers. Pokes were sometimes aimed at data, changing game parameters but the more sophisticated ones involved programming a sort of "cardiac bypass" into a game to re-purpose the original code. These were effectively sophisticated attacks on the code and were often used to overcome copy protection such as the famous LensLok which was a fiendish optical image obfuscator that decoded dots on screen into a readable code that you had to type in. If you didn't have the LensLok device, the program wouldn't run. To circumvent that one had to remove the whole LensLok code and replace it with something that looked as though it was working correctly. No small task.

The ethos of the time was to find out as much as possible about the machine itself. Books with complete ROM diasassemblies, books with pokes for every game written and a healthy magazine offering blurred the line between programmers and gamers because if you were the latter you sooner or later needed the skills of the former,

I followed a similar route into programming, starting with BASIC on a machine with a 1K memory The ZX81. Because of memory restrictions I discovered assembly language programming. It truly is amazing what you can squeeze into 897 bytes of free memory if you get right down to the level of the microprocessor. Necessity really was the mother of invention then.

Slowly however, as computers became “user friendly” many of the kids who had cut their teeth battling with these small systems grew up to become engineers and programmers, myself among them. The computers became appliances that worked when they were turned on, the user became a consumer of software that was created by huge corporations in black-art cube-farms and the knowledge of bare-knuckle programming fell into myth and legend.

As an employer of programmers and having been responsible for many an interview, I have noted that the available pool of really good programmers, the ones with a natural and intuitive understanding of the art of programming are more difficult to find as time goes on. The courses of computer science change little and for me, a computer science degree these days tells me that the recipient qualifies for little more than total re-education in an environment that they’ve never seen, notably, the real world of programming. A personal habit is to ask the normal interview questions and then, at the end of the interview, ask, “So, what projects do you have going at home right now?” If the response is “I grow interesting vegetables! Would you like to see some pictures?” or “I make replica Faberge Eggs!” then it’s extremely unlikely I’ll hire them. If on the other hand, even if the interview went abysmally, they tell me “I’m currently rebuilding my 32 Playstation compute cluster because I want to be able to run epigenomic predictions for my greenhouse plants in which I grow tomatoes that are entirely tended by a robot hydroponics system and pruned by lasers which bye the way also kill all the pests by shooting them out of the sky MWWHAHAHAHA!!!” then I usually can’t get a contract in front of them fast enough. Those really are interesting vegetables!

So, Raspberry Pi was created by, amongst others, the same chap who used the aforementioned fiendish LensLock on his wonderful game Elite to encourage kids to mess with the internals of their computer again in a way that impassions them and encourages this generation to leave the readymade toys in the bedroom and go out and build some stuff on their own. If we carry on without that, we’ll have absolutely no-one but the computer science graduates to rely on.

No comments: