Posted on April 01, 2008 by Guest Writer in Use Cases: Technology

One Laptop Per Child activity was well represented at the annual Python Conference (PyCon 2008) was held in Chicago, March 13-20. I am Tony Anderson and this is my report of the OLPC topics.

pycon olpc

March 13: Day 1

The first day was devoted to tutorials. In a tutorial titled "Sugar/OLPC Coding by Example", Mike C. Fletcher gave the inside story on developing activities for sugar using the OLPCgames wrapper for pygame which he developed. He chose tic-tac-toe as the example.

It provides a developer's perspective of sugar activities including using the journal, sharing activities over the mesh, and packaging the completed application (as an .xo file) for distribution on the internet. Mike provides a skeleton script that creates a base for development complete with the necessary sugar folders and files. The script provides for the required MANIFEST, internationalization (POTFILES), and open source license (COPYING).

Noah Kantrowitz and Marc Destefano presented a tutorial titled: Pygame: Modern Game Development. Their example was the old arcade game: space invaders. They offered a very simple implementation so that each attendee could add their own enhancement. Naturally, I used Mike Fletcher's kit to port the example to the XO.

March 14: Day 2

On Friday, Kirby Turner gave a talk on using Python classes to give students an insight into basic mathematical patterns (e.g. overloading vector addition or modulo arithmetic). His approach creates an exciting opportunity to use the XO in teaching mathematics.

March 15: Day 3

On Saturday, John Harrison presented a talk on using pygame and pysight to create a Halloween activity. This involved using laser pointers as 'guns' to shoot Halloween monsters projected on a bedsheet. A camera (such as the XO camera) was used to scan the bedsheet and score hits. He also showed using a laser pointer 'gun' in a 3D game. The presentation was great fun and this looks like an interesting fit with the XO.

March 16: Day 4

On Sunday, Ivan Krstic gave an OLPC Update at a plenary session. However, the biggest news came out after the talk when we learned that he had left the project. Later, Charles Merriam gave a talk on Programming for the One Laptop per Child Laptop. Unfortunately because of wireless connection problems (common to the conference), he was only able to give an overview.

Dr. Titus Brown gave a talk (and amazing demonstration) titled "Introducing Agile Testing Techniques to the OLPC Project". He showed a 'buildbot' which automatically rebuilt sugar-jhbuild. He also showed a python based test setup which allowed Sugar activity execution to be traced line-by-line through all levels of code using rpc-xml. As the old commercial said, "I don't know what it is, but I surely want one." Dr. Brown expressed great concern that the OLPC code needs more testing before the XO is widely deployed.

naked xo laptop
The dismantled XO laptop

Throughout the weekend, OLPC maintained a booth in the 'vendor's area'. Mike Fletcher, Ed Cherlin, and a number of others provided a number of XOs for visitors to try. There was also a completely dismantled XO to show the internal design. It appeared to be one of the most popular booths (rivaling Google).

March 17-20: Day 5-8

Monday thru Thursday was devoted to sprints. Mike Fletcher led an OLPC sprint - supporting a number of us in developing Sugar activities. See Mike's blog on the sprint. He has a very long and interesting discussion of problem's he sees with the Sugar design direction. Mike helped Phil Hassey produce an excellent, detailed tutorial on porting pygame games to Sugar which is on the OLPC wiki.

During the sprint I worked with Matt Barkau, Lisa Beal, and others on an accessibility application for the XO, IconSpeak. The purpose is for the user to compose a sentence by selecting icons on the screen and then use eSpeak to say the sentence. One use would be as an aid for the deaf 'to talk' among other speech synthesis ideas.

Tags: | | | | | | |

Posted on March 26, 2008 by Wayan Vota in Use Cases: Technology, Laptops: XO-1

xo laptop overclocking
Waves of XO speed

One major complaint about One Laptop Per Child's XO laptop, is the speed of its Geode LX 700 CPU that runs at 433mhz. Most experienced computer users find it a little slow, and often compare it to computing in the late 90's.

On the other hand, OLPC's target market, children in the developing world who don't have a Dell or Xbox for comparison, don't seem to mind.

Still, for the serious geek, there is an easy fix for a slow processor: overclocking. That is making the processor run faster than it's designed to do. Now, thanks to bdleonard on OLPC News XO Hacks Forum, we have directions on how to overclock your XO laptop:

Overclocking of the Geode LX processor is easily accomplished by writing to a specific MSR (Model Specific Register). This is easily accomplished at the open firmware prompt. To get to the open firmware prompt you press (the X in the upper left hand corner of the keyboard) immediately after booting the OLPC.
  1. Type "4c000014" and press
  2. Type "rdmsr" and press
  3. Type "u." and press (a hex number will be displayed)
  4. Again, type "u." and press (a second hex number will be displayed, write it down)
  5. Now its time to overclock.
For this to work, you must have a developer key, or have previously disabled security on your OLPC.
Now before you get crazy, overclocking a CPU isn't without risk - it may cause stability problems, data errors, and possibly hardware damage, and will generate excessive heat, a concern with the passively cooled XO laptop. Overclock at your own risk.

xo laptop overclocking
XO CPU drag racing

Regardless of your bravery, check out the results achieved by GoremanX:

I did some informal testing to see what speed improvements I get with overclocking. I've been able to run reliably at 566/233 (6e1) under Ubuntu from an SD card.

For the record. 566mhz is a 30% improvement in processor speed over the stock 433mhz, and 233mhz is a 40% improvement in memory speed over 166mhz.

On average, I saw a 21.8% improvement in usable system speed at these overclocked ratings. In my opinion, Ubuntu ran much more smoothly and responsively at 566/233. I did not notice if battery life was noticeably affected.

With usage speeds jumping like that, soon we'll have Geode LX 700 drag racing!

More XO laptop hacks

.

Tags: | | | | | | | |

Posted on October 18, 2007 by Guest Writer in Prototypes: OLPC, Use Cases: Technology

I'm Kevin Knoles, a Distributed Computing and OLPC enthusiast. For the past couple years or so I've been wondering if what we now call the XO-1 could practically be used for Distributed Computing.

At first that may seem like a bad idea given the XO's low-end processor, low power consumption being essential to its operation, limited "disk" space & RAM, and internet access that may be slow, spotty, or nonexistent. Given all the potential problems, it would seem that Distributed Computing on the XO may be not just a bad idea, but a terrible one.

olpc seti@home

But then again, the XO may in time become the most common computer in the world. I don't think it outrageous to say that someday XO's could constitute over a quarter of all the laptops in use worldwide. Even without a powerful CPU, through sheer numbers they could offer oceans of computing power. SETI@Home started on desktops less powerful than the XO, and even by today's standards that was a lot of power.

But cumulative CPU power is a different matter than how DC can and would effect the user. Even with a high level of "niceness" would DC make the XO noticeably more sluggish? How would it effect video playback and capture? DC on the XO would have to perform its computation as invisibly as possible lest it gain a reputation as bad software that slows down your computer with little other benefit.

One Laptop Per Child's XO-1 low power consumption is one of the biggest concerns and DC tops out a CPU for as long as it runs. The XO's efficiency makes this more an issue of battery life and likely not a big problem when plugged in and charging. An XO with a topped out CPU running all night should only be equivalent to a hot plate running for a few extra minutes, if even that much.

Given all the uses of electrical power (some good, some bad), even in poor nations, singling out the OLPC XO as a power hog really seems like selective outrage. The simplest way I can think of to solve almost all of the power concerns would be for any XO specific DC apps to by default only run when plugged in. A compromise allowing computing while in use (sort of a "reverse screen saver") might be possible, though as with computing speed, DC for the XO must avoid gaining a reputation as a battery charge killer.

There are a number of other technical concerns such as RAM, "disk" space, bandwidth, and wear on flash memory, but they should all be manageable, if not made moot. Though some DC apps can use immense amounts of RAM and disk space, others are more conservative. XO DC would probably be limited to the low end, at least until later models of the XO offered higher end specs.

The same goes for bandwidth. DC developers would have to be very forgiving and "think small", designing the software to live and adapt in an environment with slow and/or intermittent internet access. Store & Forward and digital couriers could be piggybacked, or the XO's collaboration could do the same.

Flash memory wear brings up a huge potential problem. The original SETI@Home was extremely wasteful with its writing to disk. If memory serves, it did so every few to several seconds, and that frequency of writes could destroy the XO's flash memory rather quickly, even with wear leveling. The solution is to keep the writes down to a minimum, such as when quitting or pausing, and when running for a long stretch, ideally only a couple or few times an hour, and not more than several.

E.T. the Extra-Terrestrial
Another DC user experience

The XO's collaborative nature could open the door to all sorts of uses that current DC applications don't have, and, paradoxically, make the user experience aspect of DC richer, more efficient, and more compelling than on more powerful machines. Different machines could share or exchange work units, and an XO user could inform other users of Distributed Computing and encourage their participation.

If a user wanted to quit, they could give their partially completed work to another before terminating their participation. Interface Skins and other graphical elements could be exchanged or created by groups of participants and the competitive nature of WU crunching and Team Creation that SETI@Home popularized could be more localized.

The software might even make note of usage trends among specific computers and send more work to a computer that runs uninterrupted for several hours each night over one that only gets in a few hours of work each week.

Existing DC applications have functional interfaces that less experienced users can muddle through, but that alone wouldn't cut it for the XO. The software needs to be even simpler and with easy to install and create skins like that of MP3 player software. (I'm thinking a default nickelodeon-type interface might be best.) The idea is to make it fun and not a chore.

Preinstallation on XO's and being preset to projects most beneficial to host nations would help immensely. Simple prefs such as "Only run at night while I'm sleeping." with more complex options buried might be best for easily intimidated users. Visually, rather than just provide a boring progress bar, why not allow DC to be represented by a cartoon mascot who performs tricks and lives in the corner of the screen? The more fun the software is, the more kids will run it.

In addition to the technical, there are what might be considered "ethical" concerns. A common myth about DC is that users are doing the work of big pharma. Though there would be nothing wrong with choosing to help develop life-saving medicines, in reality no company would want to give away valuable intellectual property. But that still leaves the question of whether DC on the XO might result in third world computers subsidizing first world computing.

If DC were only about finding new prime numbers and searching for Extraterrestrials that might be the case, but there are also projects that research malaria treatment & drugs, HIV research, and will likely be many more like them in the future. In addition, DC on any computer, let alone the XO, could allow universities in poor nations to have access to virtual supercomputers far more powerful than anything they could afford as well as popularize their research.

Some of the kids who run a university's DC project on their XO may someday work in the same field as the people who developed the application. DC on the XO wouldn't be exploitation, but rather empowerment.

Twice in the past couple years I've written Dave Anderson of SETI@Home and BOINC, suggesting to him the idea of Distributed Computing on what was then the "$100 Latop". Initially as a suggestion, and several months later as a follow-up, I pitched the idea and suggested what would be best is a modified form of BOINC due to its robust architecture and established base.

olpc boinc

While intrigued by the idea, he noted the same technical concerns I've tried to address. If anyone can set things in motion, I suspect he can, but I'm also aware of the severely limited resources of Anderson & BOINC. While OLPC's resources are finite, they are enormous by comparison.

What's needed are not just the resources to develop the software, but the push to popularize it. That means preinstallation of applications that run region-specific DC projects the first time they are run. Only OLPC can make that happen, and while the initial XO-1's might be too early, preinstallation of such software on the XO-2, XO-3 and beyond would be ideal.

It's inevitable that some kind of DC will be run on the XO, and for all I know, maybe someone already has tried Folding@Home or BOINC on prototypes. But not having been designed for the XO and the kids that will use it, any DC use will hit a user base limit far too early. A "If you build it, they will come." attitude isn't enough. It's got to be something made just for the XO. Something compelling. Something entertaining.

I don't know if the number of DC users among XO users will be several percent or a fraction of a percent, but without action to make it happen, I can guarantee the numbers will be far lower.

Imagine if, once the XO is established among millions of schoolchildren, kids throughout the world plug their laptops in for the night to charge, with many leaving them running while they sleep. At distant universities servers receive a steady stream of results, with decades worth of computing completed in mere weeks or months and for only a fraction of the cost.

The kids wake up, unplug their laptops and go on with their day with the cycle repeated that night. And it's because of such a comparatively small effort, research, much of which can and will save lives, is accelerated by years.

Tags: | | | | | | |

.

Posted on October 01, 2007 by Guest Writer in Hardware: Power Supply, Hardware: Screen, Use Cases: Technology

This entry was first published on IT Redux. It's posted here with Ismael Ghalimi's permission.
olpc redux
I am Ismael Ghalimi and I am leading the effort to create Redux Model 1, an experimental device built for the Office 2.0 Conference.

When I first suggested the idea for the Redux Model 1, several people recommended that I start from an existing platform, instead of building the device from scratch.

Among the suggested candidates, the OLPC XO came highly praised, especially from my friend Darius Clarke. Unfortunately, it was not distributed to the general public, therefore could not be used as sacrificial starting point.

With the recent announcement of the Give 1 Get 1 program whereby you can buy two XO laptops for $399 and have one donated to a child, this situation has changed, and we are seriously considering using Negroponte's marvelous little machine for our Mini Tablet.

Tags: | | | | | | | |