The T-Files


Mon, 16 Jun 2008

Many Books

I have written about my troubles with using the XO as a book reader before, and while nothing much has changed software-wise, the recent success of Amazon's Kindle and Apple's iPhone, both of which make excellent readers, has revived the eBook business and some of the new content is accessible on the XO as well.

There are basically three big sources for eBooks: Project Gutenberg, Creative Commons, and commercial publishers. Project Gutenberg is the largest collection of free eBooks, which it creates from works that are (under US copyright law) in the public domain. Because copyright law has repeatedly been changed to automatically extend copyright protection, very few works published after 1923 are in the public domain, which is a big issue for music and movies, but fortunately does not affect a large bulk of world literature. The Creative Commons are a family of copyright licenses that are less restrictive than traditional publication licenses. It particular, they allow for redistribution and derivative works. Finally, there are commercial eBook publishers, such as Amazon, but they usually require copy-protection software that allow the book to be read only on specific devices (and not the XO-1).

A nice collection of freely downloadable books is ManyBooks.net (which is apparently being run by one guy and served off his Mac mini.) ManyBooks republishes Project Gutenberg texts, together with public domain or creative commons works from other sources. All the books are available in a number of different formats, so that you can choose the one that best works on your reader.

iPhone PDF looks great on the XO-1. Now I only wished that the Reader application could remember what page I last stopped reading. That it does not do that is especially weird considering that the Journal shows a thumbnail image of that page. Thankfully the PDF starts out with a chapter index of clickable links.

Sun, 18 May 2008

From X to O: Operating Systems

Due to a recent and very controversial decision, the XO will very soon be available with a choice of two operating systems: the Linux-based Sugar that was specifically developed for it, and Windows XP. This move will certainly cost the OLPC community dearly as far as the hearts and minds of the geek community are concerned, but if it helps to keep the OLPC project on track with its task to deliver low-cost laptops and quality education to children in need, it may be a good thing. One has to wonder, though, how this affects the overall concept of this venture (the previous focus on complete openness and hackability, as well as trying to break out of established business partnerships between poor countries and First World corporations come to mind), and how much different the XO is now from other ultra-portables, or second-hand regular computers.

The version of XP is apparently the same that is being offered on the Asus Eee, with Microsoft having spent some serious developer time to add support for various XO hardware features, such as the rotating screen. The innovative mesh networking, however will initially not be supported. The price of the machine will increase by ten dollars (3 dollars for Windows, 7 dollars for the extra memory that it needs).

The current operating system, which so far has failed to make too good a job of integrating with the device, will still be available as an option, probably also as a dual-boot solution. The Sugar developers have meanwhile set up Sugar Labs, with the stated goal of bringing Sugar to the next level of usability and utility, on or off the OLPC.

Myself, I am waiting for Update One of the OLPC software to bring much-needed power management improvements and iron out some of the minor annoyances I have been writing about.

Wed, 05 Mar 2008

From X to O: Price

The XO-1 was supposed to be the $100 Laptop, but unfortunately went over budget and in its current version costs $188. The OLPC project hopes that an increased output combined with price drops in its off-the-shelf components will bring production costs down enough to reach $100 by the end of this year. Considering that OLPC mainly targets the world's poorest countries, and that for example Intel sells more conventional computers (together with Windows licenses, training, and support) starting for less than $300 in these markets, the price tag could easily become the decisive factor for OLPC's success, regardless of the educational and social concepts that they also have to offer.

Sun, 24 Feb 2008

From X To O: Questions and Answers

Well, I have no topic for Q, so here is my pick of five Frequently Asked Questions from the OLPC site:

Who is behind these XO laptop computers?
The XO laptop computer is being developed by One Laptop per Child, a non-profit organization founded by MIT professor Nicholas Negroponte and a team of educators, developers and technologists dedicated to educating children in developing countries with the goal of eradicating poverty. One Laptop Per Child is based on principles expressed by MIT Media Lab Professor Seymour Papert in the 1960s, and later elaborated upon by Alan Kay, and complemented by the principles articulated by Nicholas Negroponte in his book, Being Digital. Partner corporations including Advanced Micro Devices (AMD), Brightstar, eBay, Google, Marvell, News Corporation, Nortel, Quanta, Chi Mei Group, Red Hat, and SES Astra are involved in this initiative.
Why do children in developing nations need laptop computers?
Nicholas Negroponte (OLPC's Chairman and founder) thinks of the XO laptop not as just a piece of equipment, but as an educational opportunity. Laptop computers can be a window and a tool—a window into the world and a tool with which to think. Computers are a wonderful way for all children to learn through independent interaction and exploration.
How is it possible to get the cost of the laptop so low?
First, by dramatically lowering the cost of the display. The first-generation computer will have a novel, dual-mode display that represents improvements to the LCD displays commonly found in inexpensive DVD players. Second, we have also worked to get the fat out of our software systems. In other words, our laptop computers operate more efficiently. The XO’s operating system is based on a free and open source version of GNU/Linux. Third, One Laptop per Child is a non-profit organization that is not obligated to any investors. Finally, One Laptop per Child uses large scale orders to minimize marketing and distribution costs and to bulk order components to drive prices down.
Does my laptop come with a hand crank? Solar panels?
The Get One XO does not ship with any human powered device or solar panel, which are designed to support the XO laptops shipped to developing countries. Future peripheral availability is discussed on the Product News page. In addition to plugging the laptop into an electrical outlet (110-240 volts AC), the XO laptop can take a DC input ranging from 11 volts to 40 volts, a range that’s far more flexible than most portable devices. The XO laptop is remarkably energy efficient, generally using only 5-10 percent of the average wattage of a standard laptop.
How long does the battery last?
Battery life is approximately 3 to 6 hours, depending on which Activities are used. The sleep feature is not enabled in software provided on XOs shipped starting December 2007. A software upgrade early in 2008 will support suspend/resume sleep features, for much improved battery life.
Sun, 10 Feb 2008

From X To O: Reading

The main scenario I had in mind for the XO-1 was as a portable reader, both online and offline, on the road and also in bed (it is so inconvenient to have to get up and walk over to the living room for my daily fill of news websites). Technology issues aside, a laptop in bed is not going to happen, because Cissy does not tolerate that level of laziness and won't hear any of it (even an iPod is pushing it).

Online reading via the built-in browser works famously. Thanks to its Mozilla code base, web sites render as they should, images, JavaScript and even Flash (except for video clips) works, fonts look great (free Japanese fonts, by the way, are available on the Japanese government web-site). There is no email client, but web-mail should work (no problem with GMail). One downside is the inability to open links in a new tab or window, so that you are limited to linear browsing and cannot queue up pages for later access. You can bookmark pages, but not before actually opening them.

Offline reading with the currently available software is tricky. At first I thought I could use the PDF reader and downloaded me a couple of Cory Doctorow novels. As it turns out, PDF is not really a good format for screen readers, because the layout is fixed and cannot be adjusted to display size or orientation. Zooming in to make the characters legible leaves to few of the visible at the same time to read without scrolling around like crazy. The next choice was HTML, which the reader can re-flow and re-page to fit the screen, and while that works well online, I could not figure out how to save a file for offline access from the browser. Manually placing the file on the disk using the command line (wget) does not do much good either, because unless the file is managed by the Journal activity, it does not appear in the user interface at all. It seems the easiest (only?) way to do this is to prepare content for the XO-1 on a USB memory stick or SD card, similar to how iPods work (an SD card is better, because it disappears inside the laptop, whereas USB devices stick out from the side).

The XO-1 can be put into tablet mode by folding the screen over the keyboard. This has the potential for a nice book reading experience. The only keys you can still use in this case are the power button, a cursor pad, four game-pad buttons, and the display orientation switch. That should be plenty to zoom, scroll and page around a book, and maybe even click links on a web site and move a mouse pointer directly. Unfortunately, and this is a real shame, the software does not make use of the buttons in any useful way, so that you need to go back to the inaccessible keyboard for many basic functions. Also, the screen rotation feature is not co-ordinated with the cursor pad, so that pressing Up will sometimes scroll right (or left, or down).

Another problem is the long time it takes for the XO-1 to boot up. It should be possible to put the machine into sleep mode and very quickly resume from there, but apparently this is not implemented, which is surprising considering how much thought went into energy preservation for the hardware. As it is, having to power it down completely makes it inconvenient as a book reader.

Mon, 04 Feb 2008

From X to O: Screen

The most expensive and most innovative component of the XO-1 is its display. It is a 7.5 inch TFT with two operating modes: With the backlight turned on it can display approximately 800x600 coloured (6bit: 262k colours) pixels. With the backlight turned off, it becomes monochrome (6bit: 64 shades), but the resolution goes up to 1200x900 and the screen is usable in bright sunlight.

This peculiar behaviour is due to the interesting way the display is constructed: The LCD is a 1200x900 grid of square pixels with 64 levels of opacity. Behind it is a reflector, that sends incoming ambient light back through the LED. So when the backlight is off, all you see is the high-resolution monochrome screen. When the backlight is turned on, it first goes through a fixed colour filter that tints every pixel either red or green or blue. In a completely dark room, all you see are 1200x900 pixels of fixed colour (but 64 shades of opacity), or, if you group three of them together to count them as one coloured pixel, approximately 800x600. In most situations, and depending on your viewing angle, you see a combination of both.

Another interesting feature of the display is that its controller has enough memory to keep the screen alive while turning off the CPU and other parts of the motherboard. This can save power in book reader mode.

Speaking of book reader mode, the display can be pivoted, turned around and folded so that it closes like a lid over the keyboard, turning the XO-1 into a tablet (without the touchscreen). A game pad and cursor keys located next to the display can then be used in lieu of keyboard and trackpad for simple navigation tasks. There is also a very handy button that rotates the contents of the screen in 90 degrees intervals (normal / portrait / upside-down landscape / reverse portrait) to allow you to adjust to how you hold the device.

Sat, 02 Feb 2008

From X To O: Toy laptop

Child's toy computer is how Martin declared the XO-1 in the customs form when sending it here. It does include a smattering of educational software:

  • TurtleArt is a graphical Logo implementation: You get to paint by programming a little pen-wielding turtle to wander over the screen. The programming is done by dragging instruction blocks (such as move forward, turn, arc, raise the pen, change the pen colour) from the tool box onto the screen. This is great fun, I can see myself not finishing this post on Friday because I cannot stop playing TurtleArt right now.
  • Etoys is a Squeak Smalltalk media-rich authoring environment with a simple, powerful scripted object model for many kinds of objects. I have played with Squeak before, which is a platform is equally interesting and esoteric. The XO-1 version is completely compatible with everything out there in Squeakland.
  • Pippy is an interactive Python interpreter that aims to teach programming in the language most of the higher-level programs on the laptop are written.
  • Measure is for the physics lab and provides an interface to display and record signals produced by external sensors as waveforms, like an oscilloscope. You would need to build those sensors and connect them to the audio input port, so that I could not really test this activity.
  • TamTam is a suite of music composition programs. TamTam Mini is a simple activity where you can select an instrument and use the keyboard to play notes. TamTam Edit is a five-track editor that can be used to arrange and record whole songs. Young Man's GarageBand. TamTam Jam seems to be somewhere in between Mini and Edit. TamTam SynthLab is an advanced synthesiser application that I think is used to create new instruments for TamTam Edit.

In addition to using these activities in creative ways, the child is also encouraged to modify the software itself. A good part of it is being written in Python and other dynamic languages, and thus lends itself to live hacking. There is even supposed to be a View Source button to reveal the underlying codebase of the running activity and allow changes to it, but that seems to be not implemented yet. As programming skills grow, one could even tackle the base system itself, all of which is Open Source (Linux and OpenFirmware), although that kind of development can probably not be done on the XO itself.

As for games, there is Memorize, the game of matching pairs, with an editor to create your own set of tiles, others are available for download, and Electronic Arts has donated SimCity.

Thu, 31 Jan 2008

From X To O: Unix Underpinnings

[olpc@xo-11-19-06 ~]$ uname -a

Linux xo-11-19-06.localdomain 2.6.22-20071121.7.olpc.af3dd731d18bc39 #1
PREEMPT Wed Nov 21 00:39:06 EST 2007 i586 i586 i386 GNU/Linux
[olpc@xo-11-19-06 ~]$ df -k

Filesystem           1K-blocks      Used Available Use% Mounted on
mtd0                   1048576    359044    689532  35% /
tmpfs                    35676         0     35676   0% /dev/shm
[olpc@xo-11-19-06 ~]$ cat /proc/cpuinfo

processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 5
model		: 10
model name	: Geode(TM) Integrated Processor by AMD PCS
stepping	: 2
cpu MHz		: 430.952
cache size	: 128 KB
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 1
wp		: yes
flags		: fpu de pse tsc msr cx8 sep pge cmov clflush mmx mmxext
3dnowext 3dnow
bogomips	: 862.97
clflush size	: 32
 
[olpc@xo-11-19-06 ~]$ ps auxw

USER      PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

root        1  0.7  1.7   4952  4144 ?        Ss   17:36   0:04 oatc    
          /init
root        2  0.0  0.0      0     0 ?        S<   17:36   0:00
[kthreadd]
root        3  0.0  0.0      0     0 ?        SN   17:36   0:00
[ksoftirqd/0]
root        4  0.0  0.0      0     0 ?        S<   17:36   0:00
[watchdog/0]
root        5  0.1  0.0      0     0 ?        S<   17:36   0:00
[events/0]
root        6  0.0  0.0      0     0 ?        S<   17:36   0:00
[khelper]
root       47  0.0  0.0      0     0 ?        S<   17:36   0:00
[kblockd/0]
root       48  0.0  0.0      0     0 ?        S<   17:36   0:00
[ksuspend_usbd]
root       51  0.0  0.0      0     0 ?        S<   17:36   0:00
[khubd]
root       53  0.0  0.0      0     0 ?        S<   17:36   0:00
[kseriod]
root      115  0.0  0.0      0     0 ?        S    17:36   0:00
[pdflush]
root      116  0.0  0.0      0     0 ?        S    17:36   0:00
[pdflush]
root      117  0.0  0.0      0     0 ?        S<   17:36   0:00
[kswapd0]
root      118  0.0  0.0      0     0 ?        S<   17:36   0:00
[aio/0]
root      517  0.0  0.0      0     0 ?        S<   17:36   0:00
[kpsmoused]
root      560  0.0  0.0      0     0 ?        S<   17:36   0:00
[kmmcd]
root      617  0.0  0.0      0     0 ?        Z    17:36   0:00 [init]
<defunct>
root      667  5.2  0.0      0     0 ?        SN   17:36   0:35
[jffs2_gcd_mtd0]
root      670  0.0  0.2   2140   664 ?        Ss   17:36   0:00 init [5]
root      757  0.0  0.2   2260   592 ?        S<s  17:36   0:00
/sbin/udevd -d
root      886  0.0  0.0      0     0 ?        S<   17:36   0:00
[libertas_main]
root      887  0.0  0.0      0     0 ?        S<   17:36   0:00
[libertas_worker]
root     1263  0.0  0.2   1804   596 ?        Ss   17:37   0:00 syslogd
-m 0
root     1266  0.0  0.1   1744   404 ?        Ss   17:37   0:00 klogd -x
dbus     1289  0.1  0.4   2956  1008 ?        Rs   17:37   0:01
dbus-daemon --system
root     1311  0.0  2.8  13660  6704 ?        Ss   17:37   0:00
/usr/bin/python /usr/sbin/rainbow-daemon --daemon
root     1326  0.0  0.3   5392   940 ?        Ss   17:37   0:00
/usr/sbin/sshd
root     1338  0.0  0.9   7568  2196 ?        Ssl  17:37   0:00
console-kit-daemon
root     1378  0.0  0.4   3296  1104 ?        Ss   17:37   0:00 crond
root     1423  0.0  0.2   1736   616 ?        SNs  17:37   0:00 anacron
-s
root     1435  0.1  0.9  28740  2152 ?        Ssl  17:37   0:00
NetworkManager --pid-file=/var/run/NetworkManager/NetworkManager.pid
68       1462  0.2  1.1   4552  2640 ?        Ss   17:37   0:01 hald
root     1463  0.0  0.4   3084   972 ?        S    17:37   0:00
hald-runner
root     1486  0.0  0.4   3176  1080 ?        S    17:37   0:00
hald-addon-input: Listening on /dev/input/event0 /dev/input/event1 /
root     1491  0.0  1.4   7092  3372 ?        S    17:37   0:00
/usr/bin/python /usr/bin/olpc-hardware-manager
avahi    1519  0.0  0.5   2656  1420 ?        Ss   17:37   0:00
avahi-daemon: running [xo-11-19-06.local]
avahi    1522  0.0  0.1   2656   432 ?        Ss   17:37   0:00
avahi-daemon: chroot helper
root     1540  0.0  0.1   1728   464 ?        Ss   17:37   0:00
/sbin/mingetty --noclear tty1
root     1543  0.0  0.1   1724   456 tty2     Ss+  17:37   0:00
/sbin/mingetty tty2
root     1544  0.0  0.2   1736   504 ttyS0    Ss+  17:37   0:00
/sbin/agetty ttyS0 115200 vt100
root     1545  0.0  0.5   2880  1200 ?        Ss   17:37   0:00
/usr/sbin/olpc-dm
olpc     1557  0.0  0.4   2552  1064 tty1     Ss+  17:37   0:00 /bin/sh
/usr/bin/startx /usr/bin/olpc-session -- -fp built-ins -wr
olpc     1574  0.0  0.3   3076   928 tty1     S+   17:37   0:00 xinit
/usr/bin/olpc-session -- /usr/bin/X -fp built-ins -wr -auth /h
root     1575  5.2  8.5  26072 20400 tty3     Ss+  17:37   0:34
/usr/bin/X :0 -fp built-ins -wr -auth /home/olpc/.serverauth.1557
olpc     1585  7.5 12.9  58040 30920 ?        Ss   17:37   0:49 python
/usr/bin/sugar-shell
olpc     1593  0.1  0.5   3480  1408 ?        Ss   17:37   0:01
/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
olpc     1594  0.0  0.2   2840   616 ?        S    17:37   0:00
dbus-launch --exit-with-session sugar-shell
olpc     1605  0.1  2.1  11100  5004 ?        S    17:37   0:00
matchbox-window-manager -use_titlebar no -theme sugar -kbdconfig /us
olpc     1607  0.6  4.5  17152 10740 ?        S    17:37   0:04 python
/usr/bin/sugar-presence-service
olpc     1609  0.0  1.1   8068  2808 ?        S    17:37   0:00
/usr/libexec/telepathy-salut
olpc     1611  0.3  3.7  15320  8884 ?        S    17:37   0:01 python
/usr/bin/sugar-shell-service
olpc     1613  2.1  5.8  32012 13872 ?        Sl   17:37   0:13 python
/usr/bin/datastore-service
olpc     1623  0.0  0.1   3780   472 ?        S    17:37   0:00 /bin/cat
olpc     1625  4.7 10.1  42892 24136 ?        S    17:37   0:29 python
/usr/bin/sugar-activity journalactivity.JournalActivity -b or
olpc     1660  1.3 10.5  55076 25140 ?        Sl   17:38   0:07 python
/usr/bin/sugar-activity terminal.TerminalActivity -s -b org.l
olpc     1670  0.0  0.2   2420   628 ?        S    17:39   0:00
gnome-pty-helper
olpc     1671  0.0  0.6   4688  1536 pts/0    Ss   17:39   0:00
/bin/bash
499      1699  0.0  0.2   1820   704 ?        S    17:39   0:00
avahi-autoipd: [msh0] bound 169.254.2.85
root     1700  0.0  0.1   1772   352 ?        Ss   17:39   0:00
avahi-autoipd: [msh0] callout dispatcher
olpc     1786  0.0  0.2   3788   608 pts/0    S+   17:46   0:00 script
olpc     1787  0.0  0.1   3792   400 pts/0    S+   17:46   0:00 script
olpc     1788  0.1  0.6   4688  1540 pts/1    Ss   17:46   0:00 bash -i
olpc     1802  7.0  0.3   4512   944 pts/1    R+   17:48   0:00 ps auxw
Wed, 30 Jan 2008

From X To O: Video

The first thing to try with any web-enabled device is to check if it can play back Youtube. Well, the XO-1 cannot, which I guess is because of the GNU Flash player (Adobe's official one cannot be included as it does not meet the open source criterion) lacking the codec that is being used. Even if it was there, I wonder if the CPU would be up to the task.

Not being able to watch Youtube is of course a decidedly First World Problem, and not really relevant to OLPC (or maybe it is, it seems the Internet is rapidly becoming an important alley for authentic individual voices that the traditional media outlets would just ignore). Anyway, there is a built-in camera and a Record activity (applications are called activities) that can be used to capture video clips of up to sixty seconds. Unfortunately, I could not make that work, either. I could record a clip and play it back again in Record, but after closing the activity could find no way to view it again. The video does appear in the Journal, but when trying to open it, the browser launches, shows a download dialog and then a blank page. Again, the software is not quite there yet.

It does not make matters easier that the XO-1 tries to get rid off the concept of a traditional file system: Rather than the user explicitly saving and loading files, the Journal is supposed to automatically keep track of everything you do (including older revisions of documents you change, but I am not sure if that is already implemented). Until that works reliably, it would be nice to know where the files actually are.

Update: The same problem hit me after writing this article -- first blog post from the machine itself! After finally finding the file I typed in the Write activity (based on AbiWord) as /home/olpc/.sugar/default/datastore/store/78dc0364-be9c-4886-8329-ee62063f28fb I decided to drop out of Sugar and into vi to finish it (praised be the person who agreed to keep the underlying standard Linux tools around and readily accessible).

Tue, 29 Jan 2008

From X To O: Wireless networking

The OLPC project aims to enable children to study and create in a collaborative environment that makes it natural to share documents and work on them together. To facilitate this, the XO-1 has built-in networking capabilities, most importantly an IEEE 802.1 chipset for wireless communications. Notable features here are the low energy consumption (paid for with a relatively low speed of 2 Mbits) and the ability to form a self-organised mesh network in the absence of an access point. The chipset is autonomous enough to allow the XO-1 to act as a repeater in the mesh even when the laptop CPU is powered down.

Since OLPC laptops are intended for deployment in areas where there will likely be no traditional telecom infrastructure, there are is no ethernet adaptor or modem (I wonder if there was similar reasoning behind the MacBook Air). Other means of getting data in and out are the USB ports and the SD card reader. And then there is the Acoustic Tape Measure program, that can be used to measure the distance between two laptops by measuring the time it takes for them to shout at each-other.

Whereas the hardware does not fail to impress, some areas of the XO-1 software in its current form feel unfinished and flakey. Being software, of course, it should be relatively easy to resolve these issues over time. One instance that caused me quite a bit of frustration at first was getting the WiFi to work. Although I would very much prefer a wired connection (faster, less radiation) I do have an access point that I occasionally switch on for the Wii, but the XO-1 would not connect to it. Turns out that the version of the OS that it came with has critical bugs here, but there was a new version (poetically named build 653) available for download. The process required some computer literacy, another computer with a working Internet connection and an SD card (or USB stick), but now it works.

Mon, 28 Jan 2008

From X To O: XO-1

The XO-1 is the first version of the One Laptop Per Child. It comes in compact (242x228x32 mm) and rugged green package, with an innovative screen (7.5 inch), a membrane keyboard (sized for children), a touchpad with adjacent stylus areas (reserved for future use), three USB ports, an internal SD card reader, a built-in microphone, speakers and video camera.

The computer is powered by a 433 MHz AMD CPU that runs at only 800 mW, the display uses between 100 and 1000 mW, so that the overall power consumption is less than 3 W. It does not come with a hand-crank, but a selection of hand- or foot-operated power units is optionally available.

Networking is an important part of the educational concept behind the project and the XO-1 sports a Wi-Fi chipset that allows connections using 802.11 with an access point or by forming an ad-hoc mesh network with other XO-1. The latter allows sharing a single Internet connection for a the whole classroom.

All software on the XO-1 is free and open source. The operating system is based on Fedora Linux and a Python-powered GUI called Sugar. A central component is the Journal, which keeps a chronological logs of all activities, such as changed files or accessed applications, and allows to resume those activities (open the file or application again). The bundled software is mostly educational programs to encourage creative exploration into the realms of music and programming, but there is also a general purpose (Mozilla-based) browser, a word processor, and an RSS reader. I could not find a scheduling application, or even a calendar, though, clearly it is not aimed at business people.