Exploring New Technologies

cscott just rejoined our team from distant lands, to much rejoicing.  His first blog post covers his work this month to explore of software development paths for the XO-3. Welcome back!


XO-3 design

Last Monday I rejoined One Laptop Per Child as Director, New Technologies. My mandate is hardware and software for the XO-3, OLPC’s upcoming ARM-based tablet computer for education in the developing world. The new machine should be lower cost, lower power, more indestructible, more powerful, and potentially more expandable than ever. There are about two million machines in the XO-1 family (XO-1, XO-1.5) in the hands of kids today. The XO-3 will build upon this impressive foundation to reach further into the poorest and least-connected regions of the world.

I will kick-off my work with a series of four week-long sprints between now and eduJAM Uruguay to investigate possible directions for the educational software stack on the XO-3 tablet. On the XO-1 machines, OLPC ships Sugar, an impressive collection of educational software developed by Sugar Labs. How can we keep the best of Sugar while yanking the UI forward into a touch-friendly tablet world?

  1. This week (April 4-8) I’ll begin by working on a port of the GTK3 UI library to Android. The GTK3 library contains touch support missing from the GTK2 library (on which Sugar is currently based). The goal here is a port of the Python/GTK-based Sugar APIs, running on something like the Honeycomb Android OS.  Existing educational activities could be ported to new APIs without much difficulty, but we’d largely use existing Android OS facilities instead of Sugar’s low-level system management.  This is a preliminary exploration—we haven’t decided to base tablet software on Android (or anything else) yet.
  2. The week of April 11-15 I will start porting Python/GTK3 to Chrome or ChromeOS via the Google NativeClient plugin. This path would result in activities which more fully integrate with web technologies—even in disconnected regions of the world. On desktop machines, Sugar activities could run inside the Chrome browser, while ChromeOS (or another embedded OS running chrome/webkit) would provide system management functions on tablets like the XO-3. As with the Android port, this is exploration, not a definite software direction.
  3. The week of April 18-22 I hope to focus on mesh networking. This has a checkered history in our deployments; I hope to identify remaining roadblocks and map a way forward to make this a flagship feature of the XO-3.
  4. The week of April 25-29 is for the existing Python-based Sugar codebase. To continue moving forward, it needs to migrate to GTK3, gobject-introspection, and other key enabling technologies. It would also benefit from language-independent APIs and better modularization, to allow a more incremental migration path.

The following week is Conozco Uruguay and the Uruguay EduJAM — where I’ll present progress on these exploratory projects and discuss the path ahead with the OLPC and Sugar communities.  A week is not enough time to finish any of these projects! But the focused effort should help to identify the promise, roadblocks, and challenges in each path, which will help us plan the future.