olpc goes to mass manufacturing

Well, the time has finally arrived. The first OLPC units are rolling off the production line.

Previously on this blog I’ve talked about (enthusiastically!) the Sugar user interface. It’s certainly quite cool, and takes into account a lot of the lessons learned over the past twenty years in UI design. The hardware seems pretty interesting too – in particular, the way they’ve got the laptops doing bazillions of suspend/resume cycles with no glitches (Apple could learn from that). But, this doesn’t mean I’m as enthusiastic about the rest of the project.

I installed the XO QEmu image and had a play around with it. Note, the fonts will be super-small if you try this, due to the different resolution of the OLPC screen. The wiki recommends changing your X config, but I found if I do that I can no longer launch all the apps, as the “app bar” at the bottom just clips icons that don’t fit, because the whole UI scales up. A better way is to press Alt-0, su to root (password is blank) and then edit /usr/share/sugar/sugar-xo.gtkrc to up the font size to something better, like 17. Then kill X and fonts will be readable, without scaling the whole UI.

My concerns about the way OLPC is being run aren’t original but I’ll reiterate them here anyway:

  • There is, as far as I can tell, no user testing at all. Negroponte is apparently convinced testing isn’t necessary because laptops in education have already been tried and – he says – had great results. Maybe so. But the OLPC is very different even to those projects. But when you’re asking governments to pony up huge sums of cash, you owe it to them to prove the benefits of what you’re selling beyond all reasonable doubt.
  • In particular, the Sugar UI does not seem to have been tested on the target audience, which isn’t even well defined (other than being “children”). I’d originally expected multi-year trials before the mass manufacturing stage, but no – they’re ploughing right into it, convinced they got it right the first time. To some extent the UI is separate from the hardware, but what if they find they got it wrong? What if they find the “view source” button is confusing and people hit it accidentally? What if the Sugar UI, despite feeling right to geeks like me, actually is a dud? It’s a bit late to go back to the drawing board now.
  • The apps being shipped with the latest builds don’t seem planned – seems they are just a mishmash of things thrown together based on who volunteered to write them. There doesn’t seem to be any coherent educational plan to them. For instance, an RSS feed reader is included, as is a Tetris clone, but there are no mathematical games or geography products.
  • There seems to be an overemphasis on learning programming. That bothers me.

    Squeak EToys is included, complete with a “haha, i am a demon and you must escape this castle” tutorial game, and of course there is the famous view source button on the keyboard. The point of all this was never clear to me. Most people aren’t going to become computer programmers, and the ones that are will need direction and help from adults.

    I remember when I learned programming, I needed a lot of help from my father to understand even a very simple language like BASIC (I was about 6 or 7, I think). Later on I knew enough (and had the motivation) to learn from books and online. I decided to find out how feasible it might be for young children to actually hack on the activities they are given. I chose BlockParty, partly because games are always what appeal to kids and partly because it’s the first on the app bar.

    You can find the BlockParty source code in /usr/share/activities/BlockParty.activity/BlockParty.py or on the web here. In the very earliest days of the Sugar project, I jumped on IRC and asked why Python was being used for all the code. After all, XOs are very hardware constrained and Python isn’t known for being efficient. I was told Python was the language of choice because it’d allow children to understand and edit the source code of their laptop. Let’s see how that worked out in practice.

    First thing you notice is that BlockParty is completely uncommented. Seriously, the only comment in the entire file is the copyright notice at the top. If by some chance a child can read English they won’t find any help in the code itself.

    Second thing is that using Python doesn’t really make the code easier to understand. Maybe a bit easier than if it was written in C++, but not much. Code is code, and there are still plenty of lines like these to puzzle over:

    pix_data = """/* XPM */ static char * invisible_xpm[] = {"1 1 1 1 c None"};"""
    bwpx,bhpx,score,bw,bh,cnt=0,0,0,11,20,0
    msg = "csound.SetChannel('sfplay.%d.on', 1)\n" % self.csid

    You get the picture. This is advanced code that interacts with sound servers, graphics libraries, widget toolkits and so on. To put it bluntly, I am not sold on sacrificing efficiency (and thus unit price) for some vague, unplanned, untested vision of small children learning programming from it. I think they should have stuck with C++.

My conclusion from all of this is that the XO seems like a small replica of the Linux community: a bunch of smart people hacking on good ideas, but without any overall focus or master plan, and an over-strong focus on the importance of programming. That’s not surprising – it is a small replica of the Linux community. But the point of OLPC is not to be free or open source, or a platform for UI research, or even to teach programming – actually, it’s to be an educational aid for the school-age curriculum.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.