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.

8 thoughts on “Exploring New Technologies

  1. Unfortunately, Apple’s SDK and App Store are very hostile to third-party efforts. GPLv2 and GPLv3 apps are banned from the app store, for example; and iOS emulators are frowned on by Apple. Apple also does not license iOS to third-parties, so we couldn’t ship an XO-3 with iOS as a boot option. The only reasonable approach that could be taken is to extend GNUStep (http://en.wikipedia.org/wiki/GNUstep) into a proper clone of the iOS software environment — but I’m not aware of anyone actually working on that.

  2. @orjanv: the goal is to continue moving the sugar platform forward, in two main ways. First, to add support for touch-based UIs — which is not simple, it requires rethinking some of the basic assumptions of the UI. Second, to better focus the Sugar efforts to reduce the amount of non-educational code we are writing/maintaining. If we can piggy-back better on other distributions for mobile devices, we can spend less of our limited time working on network management, system configuration, trimming packages, etc, and more time on the educational software stack. Building on Android or the web would also potentially give us access to Android or web-based educational apps.

    I will make a blog post later today describing further the result of my first week of work on the Android basis.

  3. I couldn’t completely understand what the goal was.
    Do you intend to port Sugar to run on the Android plattform?

    How will this help the OLPC project?
    Explain what Android will mean for OLPC in the future
    How can Norwegian Android users help the OLPC project?

    Thanks, I’m writing for a norwegian android news site.
    Hope you have the time to answer, thanks,


    Ørjan

  4. Exciting stuff, happy explorations!

    Have you considered exploring how to make web apps (HTML pages with JavaScript, and CSS) in the browser work like Sugar activities with Journal integration, easy collaboration, etc.? Or is that a Sugar Labs project?

    • Yes indeed. This will be an important part of the Chrome/ChromeOS work: the nativeclient plugin makes it possible to access existing Sugar code from a web framework.

  5. Pingback: 92,000 LEGO Robots To Take Over Peruvian Schools Alongside OLPC | JetLib News

  6. Hello,
    I’m a Korean Primary School teacher.
    I interested in OLPC.
    I want to adapt my school with XO-laptop.
    Teach me that way, Please..

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>