Back in November I made a donation to the Give One Get One project of the One Laptop Per Child initiative: as a result, one laptop goes to a “child in a developing nation” and one laptop came to Charlottetown. It arrived a few weeks ago while I was in Berlin.
Oliver and I have been experimenting with it ever since (we took it “on the road” to Casa Mia this morning for the first time). After the quick and flashy world of Barbie, Dora, Elmo and friends on the Mac, the so-called “XO laptop” seems somewhat bizarre to a wide-eyed child: it’s got a very simple user interface, is focused on producing rather than consuming, and it’s a somewhat sluggish compared to modern rocket-fueled (and expensive) computers.
Which is not to say it’s without its virtues: it’s rugged, has a kid-sized keyboard, is easy to figure out how to use, and is surprisingly well-equipped (it has a built-in still and video camera, for example). And of course “under the hood” it’s built entirely on open-source software, which makes it ideal for taking a DIY approach to technology. Which is a pretty good approach to enable kids around the world to take: I’d far rather support efforts to get kids hacking the Linux kernel than efforts to enable them to become a better Disney customer.
Being of the inclination that I am, my own first XO project was to write a Plazer. Fortunately this was a relatively easy thing: combine the new Plazes API with the helpful work of the maemoplazer team (a tool written in Python, the “native language,” so to speak, of the XO) and some good documentation for setting up emulation on my Mac and with two or three hours work I had the basics hacked together:
I’ve still got a lot to learn about PyGTK, so the UI is the very most basic. But the OLPC Plazer grabs the MAC address of the laptop to pre-populate the “Where?” field, accepts a “What?” status message and creates an activity on Plazes.com.
The source code for the OLPC Plazer is rough around the edges and undocumented, but I think it’s worthwhile to get it out there for others as an example. Credit needs to go to the maemoplazer team which provided the most valuable bits of the Python. If you’re new to developing for the XO and its “Sugar,” you will find the Hello World tutorial useful — it was my starting place.