One Laptop Per Child kicks off PyCON 2007

One Laptop Per Child kicks off PyCON 2007


This year’s Python Convention [1], being held this weekend in Dallas Texas, started off with an inspiring presentation by an engineer from the One Laptop Per Child (OLPC) project [2] (Ivan Krstić) , showing off the hardware features of the new “OLPC XO 1” prototype, as well as some “dangerous ideas” about its software design: a large part of the user space code for the laptops will be implemented in Python, mainly because of the ease of manipulating the source code. The OLPC laptop software will be 100% free software, not just in principle, but in spirit as well—the assumption of open source design is literally built into the hardware.

Guido van Rossum receives a complementary OLPC XO 1 prototype—hopefully in exchange for help with the massive Python-based programming project that will be implemented for OLPC. (Credit: Author)Guido van Rossum receives a complementary OLPC XO 1 prototype—hopefully in exchange for help with the massive Python-based programming project that will be implemented for OLPC. (Credit: Author)

It’s all free software

It’s not at all surprising that the OLPC laptop’s operating system will be based on Linux, of course—people do that with just about any new embedded device these days. But the motivation for OLPC goes much deeper than that. Citing the importance of open source as an educational value, Krstić suggested that a programming language “where the program was the source” was what was called for, and the selected language is Python. It makes it particularly easy to make source both available and easy to modify and use, since it is an interpreted environment. This greatly reduces the burden of including the source on each unit (where storage space is limited).

In his “Dangerous Ideas” presentation, Krstić lamented the “great lie of open source”: namely that it is enough simply to make the source code available for a piece of software (leaving the problem of setting up a development and build environment and learning how to use it as “an exercise for the user”). He also noted that the average user of this laptop is expected to be a 6-year-old gradeschooler. Thus, the laptop goes several steps further:

  • By using Python, which eliminates the problem of compiling and linking
  • By writing almost all userspace code for the laptop (including the GUI and the filesystem) in Python
  • By actually building a “View Source” special function key on the keyboard, as support for the “Develop” activity (one of several activity-based interface elements on the laptop)
The OLPC XO 1 laptop has a number of remarkable hardware features, and it is designed to last, with an MTBF of 5 years, and extremely rugged construction to withstand harsh treatment and harsh climates. (Credit: One Laptop Per Child/Press Photo)The OLPC XO 1 laptop has a number of remarkable hardware features, and it is designed to last, with an MTBF of 5 years, and extremely rugged construction to withstand harsh treatment and harsh climates. (Credit: One Laptop Per Child/Press Photo)

Having made the decision to use Python, the OLPC group has decided to run all the way with the idea. Much of the underlying userspace code for the platform will be developed as a Python project, including the graphical user interface, called “Sugar”. Perhaps the most remarkable innovation will be the “filesystem” which will be implemented as a version-controled “object store” called “Yellow” (this is reminiscent of Zope’s “object file system” or of a Subversion “repository”). This provides a number of spinoff features, including built in “undo” journeling/versioning, which is unheard of in ordinary Linux filesystems, as well as unique capabilities such as advanced local searching abilities. The underlying true filesystem, “JFFS2” also provides built-in wear-levelling capability, since it will be physically based on Flash memory modules.

The OLPC XO 1 can use NiMH batteries, but a new generation of LiFePO4 “Lithium Iron Phosphate” batteries (top) are being made, which are safer and much lighter. (Credit: author).The OLPC XO 1 can use NiMH batteries, but a new generation of LiFePO4 “Lithium Iron Phosphate” batteries (top) are being made, which are safer and much lighter. (Credit: author).

The hardware innovations in the laptop are remarkable in their own right, though this has been more widely reported (so I won’t take up too much time repeating). Among the more impressive are:

  • The dual-mode 7.5″ LCD which will function as either a backlit color display at 692×520 or as a direct sunlight visible reflective monochromatic display at 1200×900 pixels
  • The LiFePO4 batteries which are lower toxicity, cooler operating, and much lighter than prior laptop LiMH batteries
  • The completely autoconfiguring 802.11s ESS mesh networking system, along with the “rabbit ear” antennas that have been reported to work over a range of up to 2km
  • The extremely low power design that runs off of about 4-5 Watts (peak) of electricity, along with a power supply that can be hooked up to just about anything that produces electricity (including some hand-powered devices—the integral hand crank from earlier models was eliminated because it wasn’t considered durable enough, a pull cord device is being considered to fill the same role)

View Source!

Wow! There is a dedicated “View Source” key. No kidding! (This is the Thai Keyboard layout, by the way—each participating country will get an appropriatly localized keyboard layout). (Credit: Author, based on original keyboard art by Walter Bender and Eben Eliason of OLPC/CC-By).Wow! There is a dedicated “View Source” key. No kidding! (This is the Thai Keyboard layout, by the way—each participating country will get an appropriatly localized keyboard layout). (Credit: Author, based on original keyboard art by Walter Bender and Eben Eliason of OLPC/CC-By).

While Bulletin-boards provide a layer of abstraction on top of any given activity, the View Source button allows one to look behind the activity, peeling away layers of abstraction in order to reveal the underlying codebase which makes it tick. This feature will integrate cleanly with the Develop activity, encouraging children to view, modify, and redistribute variations on the activities they use. Through collaboration and sharing, a garden of home grown activities will begin to develop on the laptops, created by the children themselves..

—— OLPC Wiki

Another feature of dynamic languages that Krstić favored was the simplicity of creating plugin architectures and the resulting reduction of bloat. He described an amazing example of a CD-ROM burning package, which grew from 28 MB in 2004 to 398 MB in 2007. Addressing some of the reasons for this kind of excess, he notes that users often want just one new feature, but are forced into a total upgrade in order to get it, resulting in them acquiring much more code that they don’t really want. By focusing on a small core design with plugins to provide extra deatures, though, he believes the overgrowth of packages can be greatly reduced. These are, of course, vital issues for the OLPC machine, since it has limited storage space.

The user interface guidelines for the XO may represent the greatest examination of the user experience since the first Macintosh computers were made by Apple, and the Sugar project is sure to produce wide-ranging spinoff improvements in GNU/Linux interface design in general, as well as specific improvements aimed at younger users.

These are ambitious improvements, and the schedule for producing the first OLPC laptops (10 Million expected to be delivered later this year) is fairly tight, so there is a need for free software programmers familiar with Python to help participate in developing and improving the code. The public releases of Yellow is not up to date yet, but Krstić reports that it will be available sometime during the next couple of weeks. The “Sugar” UI is basically ready now, and can be downloaded from the project’s development site.

Why?

Although I personally find the OLPC laptop idea immediately compelling, Krstić did spend some time explaining the motivation behind the project, citing his own experiences from growing up in Croatia, and seeing the huge difference between good and poor education among his former schoolmates. He also pointed out some interesting figures about the sheer scale of the problem, noting, for example that the “top 25% by IQ in China is larger than the total population of North America”.

He notes that traditional education is dependent on having great teachers, and that for much of the world, there just aren’t any. Re-engineering the world’s school systems would be a huge project, which he suggests might take 50-100 years at best to implement. Instead, the OLPC project will focus on self-directed learning, by providing a tool to enhance children’s own natural impulse to learn via exploration. Thus, the OLPC laptop is designed from the ground up to be the most transparent learning device that it can be.

Return on Investment

Krstić himself mentioned only a little bit about the impact of 100 million children being exposed to laptop computers and the internet, let alone a view source key inviting them to learn one of the most powerful free software oriented programming languages in one of the most powerful free software operating systems. He suggested that comp.lang.python “might get a bit crowded”. (In fact, only about 10 million will be deployed this year (2007), with an expected 50 million in 2008 and more to come after that).

However, I want to challenge your imagination a bit further, with a few numbers to contemplate. Recently, I’ve been making a study of the size, value, and effort involved in creating Debian GNU/Linux. I plan to publish a bit of that research here in my blog later this month, but to be brief, Debian Sarge consists of about 215 Million Physical Source Lines of Code (SLOC), which, if evaluated for replacement cost as a proprietary software product, using the COCOMO cost model is worth about US$10 Billion (this is a kind of lower limit, since it represents the cost of development)[3]. It’s difficult to estimate the true number of participants in creating Debian, but my back-of-the-envelope estimate suggests that the number of people responsible for creating that code is about 20,000 (including the 1500 official Debian maintainers, 8000 developers for each of the 8000+ source code packages, and some guestimates of the number of developers working on big projects like Linux, Mozilla, and OpenOffice.org).

Now let’s suppose that out of every 1000 children who get an OLPC laptop in the next few years, just 1 really gets into the “View Source” key and begins, after a few years, to participate in the development of free software. That would be an influx of 100,000 new developers. Approximately five times the entire development force that made Debian. Presumeably, as they mature, they will become as productive (the “first world” having no monopoly on intelligence or skill). They would reasonably be expected to produce about US$ 50 billion worth of free software. That’s nothing to sneeze at, even here in the United States, but remember that this is software of, by, and for the people in countries which are currently much poorer. This is, for comparison, about 25% of the entire Gross Domestic Product of Nigeria![4]

And that’s based on a participation rate of just 0.1%. Imagine what would happen if the participation rate were to tick up to just 1%! Imagine what would would happen to online content if just 1% contributed, say, one photo a month to Flickr, using the VGA-resolution camera (also standard on the OLPC XO 1)—that’s 12 million photos a year. What about contributions to Wikipedia, especially in improving their native language editions? With that kind of power, it might not be unreasonable to assume that, a few years down the road, the next generation global teaching tool will be designed and built by those kids. That wouldn’t be a bad return on investment.

Yes, these are “dangerous ideas” indeed.

[1] Python Convention

[2] One Laptop Per Child (OLPC) project

[3] This is from a study by Libre Software Engineering

[4] This is a value-to-value comparison, based on the value of all products created in Nigeria at US prices. The cash value of Nigeria's GDP is even lower. Data from CIA World Fact Book, 2006.

License

Copyright ©2007 Terry Hancock / Creative Commons Attribution-ShareAlike License (http://creativecommons.org/licenses/by-sa/2.5)

Originally published at www.FreeSoftwareMagazine.com.

You must retain this notice if you reprint this article.

This license includes my original pictures.

Category: 

Comments

mattflaschen's picture

It's really inaccurate to say that free software/open source hasn't considered build environments. Why do you think the free software developers created make, automake, autoconf, ant, etc.? These are all tools for just the problem you described. The GPL even requires source for modified verisons include "the scripts used to control compilation and installation of the executable."

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

The tools you mention are too complex to learn, although you can start with just a ./configure && make && make install
And add to that the complexity of tools needed to build distro specific packages.

Getting into developing free software on GNU/Linux is not very user friendly unless you use something like Python ;)
Although Java helped with the latest and greatest Java IDEs is a close second ... so I really hope to see Java also running on top of OLPC, especially now since it will be GPLed.

Terry Hancock's picture

Ivan was not criticizing the community for not creating build systems. He was saying that the build systems are hard to use, and that distribution leaves that problem up to the user. Many users simply aren't up to the task (even if they might be up to the programming itself).

The point is, we are talking about a six to ten year old child.

I'm not sure I understand autoconf, I'm certainly not going to have much luck explaining it to my school age kids.

On the other hand, Python (or any interpreted language) makes "modifying and running" quite transparent, even for kids.

Geoffrey Lehr's picture

Indeed, this project has the potential to be truly subversive, IF the children aren't mentally shackled by the likes of Microsoft et al. If they are welcomed into the community and aided and made to feel worthwhile so they don't turn to MS. Of course, there's the potential for them to completely develop their _own_ community, especially with the mesh network, which could be a very interesting occurrence.

OTOH (using your numbers), if a mere 0.01% become script kiddies, that's 10,000 new script kiddies to deal with, though fortunately they won't have the 'benefit' of working with Windows to learn their mad skillz.

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

> if a mere 0.01% become script kiddies, that's 10,000 new script kiddies to deal with

Actually that's also a good thing.
It will help demonstrate that security by obscurity is nonsense.

Too many companies are not thinking enough about security or are under the impression that Free Software is insecure because the source code is available.

Script kiddies contribute to making the security systems more harder to crack ... its natural evolution that just works.
And it gets harder and harder to become a good cracker ;)

Terry Hancock's picture

I think we're going to see "10,000 new script kiddies" no matter what happens. In fact, I'd wager the impact of new OLPC users entering those ranks will be negligible.

This also has to do with the way that the numbers work. 10,000 new script kiddies is just a linear increase in internet attacks. An O(N) phenomenon.

But free software value is highly aglomerative or self-amplifying. It probably does at least O(NlogN) or O(N^2) growth (N being the number of developers). My reasoning on that is that, the more free software there is, the more material there is for a new programmer to pick up and work with. That means more free software gets created, and so on (it's a positive feedback loop).

There are limiting factors as well. As individual coding projects get more complex, the system runs into combinatorial explosion problems, resulting in an increased effort to maintain.

Pretty much the entire discipline of computer science (structured programming, object-oriented, functional, aspect-orient, very-high-level languages, etc. etc.) is dedicated to orthogonalizing programming problems to reduce the impact of such combinatorial explosion—by converting large interlocked projects into thousands of tiny quasi-independent projects.

Taking those two factors into account, and basing itself on historical empirical evidence, the COCOMO I model (which was used for the Debian "replacement cost" estimate above) uses a power law, with alpha=1.05 for that (IOW, "O(N^1.05)).

So, increasing growth requires also a constant improvement in software engineering techniques -- constantly organizing and simplifying the organization of code.

From the evidence I've seen, corporate proprietary development entities are hitting a complexity wall at which their abilities cap out. (E.g. evidence suggests that Microsoft is running into a combinatorial wall with Windows Vista so the project is in a runaway to unmaintainability). That is to say, we are reaching the limits of what monolithic corporate capitalism can achieve in software development.

OTOH, free software teams constantly divide as a natural behavior, so they stay in small, highly orthogonal groups, and the resulting combinatorial problems are solved. The evidence suggests that free software production, taken collectively, is NO WHERE NEAR any kind of productivity limit and can be expected to continue near-exponential growth for years to come.

And of course, that codebase is working against the "script kiddies" to produce software quality. You can of course, accept the "tiger team" view of crackers -- they keep us strong because we constantly have to fight them. In which case, the "script kiddies" are actually contributing to the quality of software.

Tthough this is suspiciously close to the "broken window" fallacy in economics. After all, what "script kiddies" primarily do is to make software more proof against script kiddies.

That's kind of like how the main reason you need a lawyer is to protect you from other lawyers (or the main reason you need a military is to protect you from other countries' militaries). In both cases, it might actually be better for society to reduce the total number of crackers/lawyers/militaries. But which actor within the society actually has the power and motivation to initiate such an action?

Anonymous visitor's picture
Submitted by Anonymous visitor (not verified) on

A really great article, covering many topics around the OLPC. We have featured it on

olpc.com

Author information

Terry Hancock's picture

Biography

Terry Hancock is co-owner and technical officer of Anansi Spaceworks. Currently he is working on a free-culture animated series project about space development, called Lunatics as well helping out with the Morevna Project.