OLPC XO OS build 703 changes

OLPC XO OS build 703 has at least two significant changes:
The first is that it automatically suspend when closed, with this caveat:

the system can’t suspend when the USB bus is in use by an external device (unless it’s a USB mass storage device and has been fully allowed to write any cached info and quiesce itself).

This might not seem like a big deal, but folks have been wanting it for a long time.
The second is that activities no longer come pre-installed in the OS image.

The XO was made for its creators

After using the OLPC XO heavily for the past three weeks for web browsing, pdf reading, and educational game playing (by my 5 year old nephew), I can’t help me get the feeling that the XO was made for its creators, and not for children.
Now don’t get me wrong, I love the thing; but how do you explain to a 5 year old (albeit a very smart one) that he can’t start more than 2 or 3 programs at once because the machine will run out of memory and the CPU will get bogged down?! (An aside, how you explain it is by doing just that, excluding the part about memory and cpu).
The vision of a computer where everything is written in Python and everything is modifiable and maintainable by the user is a fun idea, but only for hackers, aka, the creators. Kids could care less. What they want are programs they can use that work well. Are they getting that right now? Well, they are getting something that works “well enough”, but it seems like the XO creators are painting themselves into a corner here in terms of performance; since the hardware will never get upgraded, the only place they’ve got left to speed things up is in the code, and that seemingly has not been a priority thus far.

PLT Scheme 3.99 (revision 10030) for the OLPC XO

DrScheme is very, very close to its 4.0 release. I wanted to try out the newest bits on my OLPC XO using one of the nightly builds, but ran into the same problem as I did last time:

/home/olpc/apps/plt-3.99.0.25/bin/mred: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

Some folks have resolved this dependency using Mesa for OpenGL emulation, but I found it easier to prepare a build that doesn’t depend OpenGL.
Here is the tarball and the md5sum for a trunk build that I made at revision 10030.
Here is how I did the build:

./configure --prefix=$WORKDIR/$DESTDIR --disable-gl --disable-shared --enable-origtree
make
make install

Grants OLPC XO Mind-Share Experiment

The OLPC project’s vision is to “provide children around the world with new opportunities to explore, experiment and express themselves.” To help further their goal, the OLPC folks gave us the opportunity to purchase one laptop for ourselves while at the same time purchasing one for a child. Over the past month I’ve read, talked, and blogged about the XO, played and tinkered on the XO, programmed, hacked, and surfed the web on the XO. It has been a lot of fun, but more importantly, it has changed how I think.
OLPC is pitched as a learning project, but it is so much more than that. When you learn, you change; you make opinions and get ideas and live your life differently. It is a personal growth project. You will collaborate, exchange ideas, and make decisions. You will develop your own philosophy, hear others, and be a better person for it. Whatever path you take on this journey will lead you to the same destination: knowledge.
If you weren’t able to, didn’t want to, or maybe even didn’t know about the XO before today, it is not too late to spend some time getting to know more about both the OLPC project and the wonderful little machine that is part of it. If you are interested, please read on.
Continue reading “Grants OLPC XO Mind-Share Experiment”

Scheme Lisp on the OLPC XO

Out of the box, the OLPC XO comes loaded to the gills with Python, but sadly, no Lisp!
To remedy that situation I enlisted the help of the kind folks on the PLT discussion list to help me write a script to build the PLT DrScheme (Lisp) development environment for the XO.
This script is responsible for preparing the PLT application suite for the OLPC XO laptop computer. The script creates a typical binary, *not* a Sugar application (that is going to take a little more work!). You can download the application itself here, along with the md5 checksum, and the build log. A Flickr photoset is available here.
If you do try it out, please be sure to read the usage notes below, and let me know if anything needs to be added to them. All of the documentation is pre-installed, so once you’ve downloaded it, extracted the archive, and executed ‘drscheme’ (or ‘mzscheme’ if you want command line Lisp) in the bin dir, you should be ready to roll.
Thanks to all of the hard work by both the PLT and OLPC folks, lives will be changed.
Usage Notes

  • The apps run quickly. The slowest part is, of course, the disk I/O.
  • Slideshow works very well; it looks great and runs fast, turning the XO into a wonderful little “personal” presentation machine.
  • Out of the box, there is one setting in Edit->Preferences->Editing->General that is left unchecked: Open files in separate tabs (not separate windows). Left unchecked, opening a file will occur in a new window, and creating a new file will occur in the same editor. Check this feature. It will prevent multiple instances of DrScheme, conserving resources, and perhaps equally as important, it will make DrScheme more fun to use. “Reuse existing frames when opening new files” should not be checked!
  • Help desk works wonderfully with one caveat. When you are running Sugar and you switch between applications, more than one “unknown app circle” will show up in the “Donut”, each one corresponding to a DrScheme window. When you try to return to the help desk, you will find that you are always returned to the DrScheme IDE window. In order to get back to the help desk window, return to the DrScheme IDE window and then use alt+tab to switch to the help desk.
  • In this build of DrScheme, the IDE will resize to accomodate long file names. Although the XO screen has a very high resolution, it is very small, and large fonts are used to accomodate this. As a result, when file names longer than 16 characters are loaded, the IDE will expand off of the right side of the screen. This behavior will not be present in the newer version of DrScheme.
  • The Preferences window buttons “Revert to Defaults”, and “Cancel”, and “Ok” are not visible, appearing just below the bottom bound of the screen. The mouse cursor *can* click these, and in fact when you do click them, you can see the buttons are depressed. “Revert” is on the far left, and then “Cancel”, and finally “Ok” is on the far right, appearing in that order. This is order is different than how it appears on Windows (Revert, Ok, Cancel)!

Addendum 03/22/08:

  • Updated the build script (now tag 004) comments with note about what settings to check in DrScheme, updated the usage notes to reflect this fact
  • Someone asked “By the way, is there a reason that just typing yum install plt-scheme wouldn’t work?”. That is a good question. PLT builds against OpenGL. The XO does not have hardware acceleration. Consequently there are two ways to run PLT on the XO: install Mesa for software-based OpenGL emulation or build PLT without OpenGL support. I chose the latter, without testing the former.
  • In case you are interested in building PLT for the XO using Microsoft Virtual PC, I’ve added my setup notes.

Addendum 05/29/08:
Made a big correction in the order of the preference buttons, also updated the reference to the script which reflects the change.

Unlock Forth on the OLPC XO

A week or so ago I ended up on “Luke’s Weblog” reading an article about Forth on the OLPC XO.

The OLCP Wiki has got Forth Lessons for everyone to enjoy. Forth is a pretty neat language!

You may have noticed that although access to the Forth shell is explained on this page, it doesn’t work. The reason can be two-fold. First, you can only access the Forth shell if the firmware security is disabled. Second, on newer machines you access the Forth shell by hitting the escape key at boot time.

This page explains how to gain access to the Forth shell on machines that have got the firmware security enabled (G1G1 owners, that means you). You need a developer key to unlock your firmware, the request takes less than 24 hours to be fulfilled. Please read the page closely (disable-security twice!) and heed their advice of disabling firmware security (you can always enable it later).

Managing files in the OLPC XO datastore

The only official way to get files in and out of the datastore is to drag and drop a single file at a time, and this only works on USB thumbdrives, not on the filesystem.

There is ticket for a workaround using a Python script; if you use an XO, please offer encouragement to get this functionality integrated with the XO.

Here is the ticket.