How The Game Is Played

http://blogs.sun.com/gameguy/date/20071227 Thursday December 27, 2007

Me and my OLPC

I decided that the Give One/Get One program run by the M.I.T. media lab's One Laptop Per Child project (also known as the OLPC project or the "$100 lap top" was a worthwhile way to give back this season... plus I got a  toy.  So I joined.

My laptop, or OLPC as it is referred to by those in the know, arrived just before Christmas and I've been fooling with it and its development environment.  Here are some of  my impressions.

Form Factor. 
Cute is the only word I can think of that really fits this little bugger.

Its hard to get a sense of scale for the machine from pictures.  Using a piece of paper as a ruler, I make it about 9 inches wide by 10 inches deep.  This is touch on the small side for a grown up, though with some practice I'm finding it quite usable.  Its probably the perfect size for little fingers though. 

The keyboard is a compromise, being of the old "chicklet" rubber membrane style.  Its not the most comfortable keyboard in the world for grownups both in feel and size, but I'm finding it quite usable with some practice.  It again is probably fine for kids and it has the virtue of being sealed and spill-proof.

Survivability in both the thrid world and in the hands of kids was a major goal of the project and they seem to have done a good job. The hinges are all beefy and feel solid (though i haven't been brave enough to stress test them.)  The thing seems pretty well sealed against moisture too, though again I haven't been brave enough to risk damage to it testing this.

The screen rotates 180 degrees and folds back down to make a tablet for ebook reading, much like my old Clie.  The screen is not touch sensitive, but there are "game controller" type controls on its bezel that work well for reading books.  The screen itself, though on the small size for a modern laptop, is comfortable to use and somewhat surprisingly high resolution (1200 x 900.)  It can be set for a  number of back-light brightness levels, all the way down to pure reflective, with a matching improvement in battery life.

The OLPC is light and easy to carry.  Its comfortable in one hand and weighs almost nothing.  I've started carrying it experimentally as a portable ebook reader, net client, etc and about the only discomfort I have is that fact that it looks a bit like a toy.  But, again, thats fine for its intended market.  (If they ever decided to sell it to business people, I think they could put it in an ice sleek black case and it would look very fashionable.)

Internals:

The processor is a GEODE.  I won't go into specs, you can find them all here.

Suffice it to say its a slow built serviceable x86 clone with low power requirements and a very low power sleep mode.  Some of the longer battery life claims for the OLPC are based on utilizing that sleep mode.  I suspect that will work well for things like book reading, less well for actively interactive things like chat or game playing.

Its got a gig of high speed flash ROM for a "hard drive".  After installing the OS and bundled apps, it leaves a little more then half of it free.  You can also put an SD memory card in as secondary storage.  I put a 2 gig one in mine, which is available in US on sale for about $20.  This is clearly intended as an upgrade not a data mobility feature as the slot is rather hard to get at.

As it has no CD-ROM or floppy, I use either the built in 80211 or a USB key to move things between it and  my desktop.  The lack of any disc drives helps the OLPC acheive lower cost and extended battery life, at the expense of some speed.  (The "high speed flash" is still a bit pokey when compared to modern hard drives.  This is only really notable when doing large data transfers, such as when starting an app.)

Somewhat surprisingly, the OLPC has only 256 meg of RAM.  This is its biggest limitation.  Although the OS is multi tasking, I find I can only load a few of the apps at a time before I run out of memory.

Software:

The OLPC runs a stripped down Fedora 7 Linux with the Matchbook tiny window manager.  Ontop of that it runs a custom shell/app manager called "Sugar".  Although still a bit rough around the edges, Sugar is one palce the OLPC really shows its stuff.  Its an easy, accessible desktop metaphor with some surprising innovations.  The Sugar "neighborhood" manager is their networking interface and ist the nicest 80211 interface I've ever seen.  The neighborhood screen is graphical, showing you in the center and all the various detected 80211 connection points as circles of varying distances away from you.  If you hover over one, it identifies itself.  If you click on one, it connects.  That simple.  Its so easy and intuitive, it reminds of some of Apple's best design work.

But you don't just have to connect to your usual routers.  OLPCs themselves can connect directly to form "meshes".  Users can communicate with other users in their mesh IM style, as well as using them to forward packets to a router.

The primary coding language for the OLPC is python.  Although it comes with a little python editor intended for beginners, I was fairly easily able to download and install the Eric3 editor which is a full featured python development environment.  It still left me with over 45% of my storage free.

Java and the OLPC

Since its Linux and X, I thought I'd try installing the JDK.  The good news is that the JDK does indeed install and run.  The bad news is it brought me up to about 90% utilization of the hard drive.  The JRE isn't that much better.  I might try a CDC at some point if I can find one for Linux and X but ist a shame, really.  This is another case where its purely the bloat of the Hostpsot JDK thats keeping it out of an otherwise viable spot.

Once installed, the JDK did run... with two caveats.  The first is that Sugar (Matchbook really) is a full-screen window manager.  Every window must be full screen and they end up stacked on the X11 window stack.  That isn't a big deal. alt-n/alt-p easily switches between them HOWEVER somehow Matchbook isn't communicating that back to Java properly and Java lays out for only about a third of the window space.  This is on the small and cramped size and looks awful.

The second problem is even more major, Swing pull down menus don't function properly from the mouse :(  (Short cut keys, where provided, work fine.)  This makes apps more or less unusable.

As Java works well with most X11 window managers, my guess is that this is due to a bug or limitation of Matchbook.  Hopefully someone with more interest and knowledge in X11 window managers then me will look into it.

COnclusion:

All in all the OLPC is still a bit rough around the edges but is an interesting and I think worthwhile device.

For those of you who would like to fiddle with developing on it but didn't want to shell out $400, you can use the emulation images on Windows or Linux.  They are available for either VMWare or Qemu at the main OLPC Development site.  Instructions are on the wiki here.

Even though I own an OLPC, I find it useful to do major tests and work on an emulation image first then transfer it.  I myself prefer the VMWare emulation environment, but thats very mucha matter of taste and what works best for your hardware.


Powered by ScribeFire.