The UX (both keyboard and software) was .. just awful.
The UX (both keyboard and software) was .. just awful.
The software + hardware was really poor, even for the time. (Even the original Raspberry Pi is significantly faster -- I know this isn't a fair comparison, but just for reference)
Also a lot of the OLPC functionality didn't work reliably, or didn't work at all. I bought it specifically for the mesh networking, which was cut entirely. The devices did work over WiFi, but would struggle to see other OLPCs over wifi reliably, even when connected to the same AP. I spent a lot of time reading forums online to troubleshoot and download fixed drivers and such. I remember explicitly wondering "how are children in poor areas who depend on mesh networked internet, supposed to be figuring all of this out?".
The screen was hard to use. The e-Paper mode was nice, but the regular mode was blurry/grainy and slow and dim and just difficult to see. In terms of Software + UI + responsiveness, it felt more like a really big Palm Pilot, and less like a laptop.
---
I loved the mission, I loved the ideas, I loved the design. The exterior of the case really was durable and kid-friendly. I loved the idea of the screen. I threw them more money than was reasonable. I was just fairly underwhelmed by the device as it actually shipped. It felt like a prototype of a dev kit, which is fine. But it was sold as something for children to use, and at least at the time I messed with them, it was nowhere near ready for that.
• The hardware was not designed in conjunction with the software; it seems to have been built based on a "wishlist" of features drawn up before the software was developed. There were a number of major hardware features which were unused or unsupported by software, including but not limited to the resistive tablet, the low-power-mode ("e-reader mode") for the display, and even several of the hardware buttons (including most of the ones next to the screen, which were mapped confusingly to arrow keys).
• Aside from being confusing, the software was very rudimentary. The two major activities which would be useful to students (the web browser and text editor) were not actually Sugar applications at all, but standard Linux applications (Firefox and Libreoffice, iirc?) wrapped in their interface. There were very few nontrivial native Sugar activities available.
• The Sugar interface, as designed, had some very strange semantics which were not intuitive, and not reflected well in the user interface. Every activity opened by the user was saved in the filesystem -- even ones which were not useful to save, like web browsers or simple memory games. The OS would automatically discard old activities as necessary to keep storage available -- so recording a long video, for instance, would delete older documents created in the text editor.
• Development on the project had a lot of bizarre priorities. For a time, one major development priority was to build a reverse-engineering suite for the OLPC, so that students could reverse-engineer the mesh networking firmware and develop their own under a free license. Fortunately, I don't think this got to the point of actually being developed.
You're definitely right on that. The hardware took long enough to design, but the software wasn't even done when they started shipping.
> the resistive tablet
For people not familiar with the XO-1, it originally included a weird touchpad. The center third was capacitive, and would work with fingers. The Entire pad was resistive, and would work with a stylus (which was never shipped).
The dual resistive/capacitive was unreliable [0], and was eventually replaced [1] with just a capacitive touchpad with the same area as the original touchpad.
> the low-power-mode
This was a real shame to leave out. The OLPC XO-1 includes a specialized display controller [2] which can drive the display even while the CPU is suspended. THe idea is that the CPU would render one ebook page at a time and sleep between page turns. Unfortunately, the software for this was never implemented. All the rest of the hardware is there; it would have been really cool to have a near-zero-power ebook mode!
> several of the hardware buttons (including most of the ones next to the screen, which were mapped confusingly to arrow keys)
I'm not quite sure what you mean here. All of the keys on the keyboard are mapped [3]. The only ones I can think of which aren't used for much are the progressive dots (F5-F8), which are intended for application-specific use [4].
The buttons around the screen are mapped to the arrow keys (on the left side) and Home, End, PgUp, and PgDown (on the right side). I really like this, because when you fold the screen around into tablet mode, you can easily navigate a document. Reading a PDF or tall web page this way is a pleasant experience.
> the web browser and text editor were [...] standard Linux applications (Firefox and Libreoffice) [...] wrapped in their interface
You're right. The web browser is Firefox with a bunch of XUL stuff, and the document/text editor is AbiWord.
> The Sugar interface, as designed, had some very strange semantics
The idea behind an OS that journals everything you do with it [5] is great. All the power of a VCS, applied to everything you do on a computer. Unfortunately, the implementation in the OLPC is crude and severely hardware-restricted.
> development priority was to build a reverse-engineering suite
This is actually kind of funny, but the only mention I could find is in [6], which is a collective braindump page for software that would be cool to have on the OLPC. Do you have links to any discussion on this?
[0] https://wiki.sugarlabs.org/go/0.90/Notes#OLPC_XO-1_touchpad_...
[1] https://web.archive.org/web/20160825191424/http://lists.lapt...
[2] http://wiki.laptop.org/go/DCON
[3] http://wiki.laptop.org/go/Keyboard
[4] https://wiki.sugarlabs.org/go/Human_Interface_Guidelines/The...
Well, for some values of "mapped". There are a few buttons on the keyboard that have a defined meaning, but no corresponding software functionality, like the "Bulletin Board" key, as well as the progressive dots that you mentioned.
I think the OLPC software we were using might have been an early version, and hadn't yet started using some of the keys next to the display.
> The idea behind an OS that journals everything you do with it is great.
Sure. But using that as the primary system for data storage was questionable. When I used it, at least, there was very little support for naming and organizing saved activities, or for managing storage. This seems like it'd be a pretty serious obstacle to any sort of serious educational use.
> Do you have links to any discussion on this?
Not offhand. This was ~10 years ago! I think it was on the OLPC wiki somewhere, but it might have been deleted. Or my memory might be faulty. :)
What's probably true in general, though, was that the OLPC/Sugar development team prioritized the development of activities that they thought would be cool or useful, rather than projects which were actually in demand by educators in the target countries.
http://lists.sugarlabs.org/archive/sugar-devel/2007-May/0024...
http://lists.sugarlabs.org/archive/sugar-devel/2007-May/0025...
One of the positive outcomes of the OLPC project was the "stone soup" effect, in that it inspired many different people and companies to contribute useful ingredients, which could be folded back (or spun out) into other independent projects.
https://en.wikipedia.org/wiki/Stone_Soup
For example, the "tickless kernel" power saving stuff in the Linux kernel that consolidates bunches of non-exact timer wake-ups to all happen at the same time came out of RedHat's work on the OLPC project.
https://access.redhat.com/documentation/en-us/red_hat_enterp...
EA released the original SimCity source code for the OLPC, under GPLv3, so it could be ported to other platforms and further developed (under a different name, Micropolis).
https://arstechnica.com/information-technology/2007/11/origi...
Sugar had a long way to go, and wasn't very well documented. They were trying to do too much from scratch, and choose a technically good but not winning platform. It was trying to be far too revolutionary, but at the same time building on top of layers and layers of legacy stack (X11, GTK, GTK Objects, PyGTK bindings, Python, etc).
Sugar was written in Python and built on top of PyGTK, which necessitated buying into a lot of "stuff". On top of that, it used other Python modules and GTK bindings like Cairo for imaging, Pango for text, etc. All great industrial strength stuff. But then it had its own higher level Hippo canvas and user interface stuff on top of that, which never really went anywhere (for good reason: it was complex because it was written for PyGTK in a misshapen mish-mash of Python and C with the GTK object system, instead of pure simple Python code -- hardly what Alan Kay thinks of as "object oriented programming"). And for browser based stuff there were the Python bindings to xulrunner, which just made you yearn for pure JavaScript without all the layers of adaptive middle-ware between incompatible object systems.
The problem is that Sugar missed the JavaScript/Web Browser boat (by arriving a bit too early, or actually just not having enough situational awareness). Sugar should have been written in JavaScript and run in any browser (or in an Electron-like shell such as xulrunner). Then it would be like a Chromebook, and it would benefit from the enormous amount of energy being put into the JavaScript/HTML platform. Python and GTK just hasn't had that much lovin'.
When I ported the multi player TCL/Tk/X11 version of SimCity to the OLPC, I ripped out the multi player support because it was too low level and required granting full permission to your X server to other players. I intended to eventually reimplement it on top of the Sugar grid networking and multi user activity stuff, but that never materialized, and it would have been a completely different architecture than one X11 client connecting to multiple X11 servers.
Then I made a simple shell script based wrapper around the TCL/Tk application, to start and stop it from the Sugar menus. It wasn't any more integrated with Sugar than that. Of course the long term plan was to rewrite it from the ground up so it was scriptable in Python, and took advantage of all the fancy Sugar stuff.
But since the Sugar stuff wasn't ready yet, I spent my time ripping out TCL/Tk, translating the C code to C++, wrapping it with SWIG and plugging it into Python, then implementing a pure PyGTK/Cairo user interface, without any Sugar stuff, which would at least be a small step in the direction of supporting Sugar, and big step in the direction of supporting any other platform (like the web).
Open Source Micropolis, based on the original SimCity Classic from Maxis, by Will Wright -- PyGTK interface: https://github.com/SimHacker/micropolis/tree/master/Micropol...
Pie Menus on Python/GTK/Cairo for OLPC Sugar, by Don Hopkins. http://www.donhopkins.com/drupal/node/128
None of that work would have been possible without the OLPC project, which inspired EA to give SimCity away for free in a way that made it possible to port it to other platforms.
So I believe some good did come out of the OLPC project, including some interesting discussions about constructionist education, visual programming and teaching kids to program, with Alan Kay, Guido van Rossum and others!
HAR 2009 Lightning Talk Transcript: Constructionist Educational Open Source SimCity, by Don Hopkins. http://micropolisonline.com/static/documentation/HAR2009Tran...
SimCity for OLPC (One Laptop Per Child): Applying Papert's Ideas About Constructionist Education and Teaching Kids to Program: http://www.donhopkins.com/drupal/node/129
Alan Kay on Programming Languages: http://www.donhopkins.com/drupal/node/132
Alan Kay's ideas about SimCity for OLPC: http://www.donhopkins.com/drupal/node/134
Responding to Alan Kay's criticisms of SimCity: http://www.donhopkins.com/drupal/node/135
OLPC Visual Programming Language Discussion with Guido van Rossum and Alan Kay: http://www.donhopkins.com/drupal/node/137
Discussion with Alan Kay about Robot Odyssey: http://www.donhopkins.com/drupal/node/139
Ideas about OLPC SimCity GUI, Turtle Graphics, and Cellular Automata: http://www.donhopkins.com/drupal/node/141
Redesigning the SimCity User Interface for the OLPC: http://www.donhopkins.com/drupal/node/142
OLPC Visual Programming Languages for Education: http://www.donhopkins.com/drupal/node/143
SimCity Rules: http://www.donhopkins.com/drupal/node/145
A related question: in your opinion, what were the successes and failures of the OLPC project, what openings and obstacles contributed to that, and where do we go from here? https://news.ycombinator.com/item?id=11942313
>Even if we didn't achieve those goals for Sugar, we made progress in the right direction that have their own benefits independent of Sugar.
>Choose your lofty goals so that when projected onto what's actually possible, you still make progress!
For what it's worth, I was the OLPC employee working the most on the software for this, and it worked and shipped. I recall that there were serious hardware bugs that went unfixed until XO-1.5 and XO-1.75, but just those two models add up to millions of deployed laptops in the field that were using this CPU-off-screen-on mode when idle. If you've ever seen the power LED off or flashing on an XO while the screen is on, it was using this DCON mode.
http://donhopkins.com/home/documents/OLPC-Notes.txt
OLPC: One Laptop Per Child (XO-1)
Summary by Don Hopkins (dhopkins@DonHopkins.com).
+ Mission
+ Education.
Educational content, games, simulations, learning tools,
programming languages.
+ Literacy.
eBook, creative writing, journalism.
+ Constructionist learning.
Seymour Papert, Alan Kay.
+ Goals of the XO-1 Hardware Design: + Minimal power consumption, with a design target of 2-3 W
total power consumption.
+ Minimal product cost, with a target of $100 per laptop for
production runs of millions of units.
+ A "cool" look, implying innovative styling in its physical
appearance.
+ E-book functionality with extremely low power consumption.
+ The software provided with the laptop should be open source
and free software.
+ Display + Designed by Mary Lou Jepsen.
+ 1200x900, 200 dpi, 6x4 inch (152.4x101.6 mm), 6 bits (262k colors).
+ Pixel size 0.127 mm, about 1 arc minute.
+ You can always see 200 dpi grayscale, even in direct sunlight.
(reflective layer)
+ You can get color from the LED backlight.
+ Colors wash out as the sunlight gets brighter.
+ The backlight uses power (though not nearly as much as cold cathode
fluorescent backlight).
+ You can turn the backlight down or off to conserve power.
+ Turning off the backlight tells screen to give slightly higher
resolution, to make reading comfortable.
+ Display Design Goals:
+ Maximize the number hours of ebook reading.
+ Minimize the power consumption.
+ Maximize the resolution and readability.
+ Mesh with how human perception works.
+ Display sharp high quality text, that's easy on the eyes
during the day (reflective) and night (backlight).
+ Critical design innovations:
+ Remove the subtractive color filters that absorb 85% of the light.
+ Replace them with plastic diffraction gratings and lenses,
stamped like DVDs.
+ Much brighter display for a given amount of backlight.
+ Can be manufactured with existing technologies and processes.
+ Uses efficient environmentally friendly LEDs,
instead of fragile, expensive, high voltage, cold cathode
fluorescent lamp backlights.
+ Combination of two separate screens: sharing an LCD glass.
+ One normal backlit screen.
+ Another normal reflective screen.
+ LCD is 1200x900 square grid, with 64 gray levels (6 bits).
+ Off pixels transparent, on pixels opaque.
+ Backlit screen shines through a color filter on the 1200x900 grid.
+ Filter gives each pixel just one color: red, green, blue.
+ Individual grayscale pixels behave like sub-pixels of a normal
backlit display.
+ Reflective screen has reflector behind LCD grid.
+ Room light passes through grayscale LCD and bounces off of back
reflector.
+ 1200x900 pixels depending on ambient outside light to display.
+ The light the user sees comes from both sources (reflected outside
light plus filtered backlight).
+ Color filters use fresnel prisms to pass most light, instead of
color filters that absorb most light, wasting less energy.
+ The amount of color and perceived resolution depends on backlight
brightness and outside light level.
+ The ambient light level of the room changes the perceived
resolution of the display.
+ In direct sunlight you see the reflective screen (exactly 1200x900,
200 dpi),
+ In a dark room you see the backlit screen (approx. 800x600
perceived, 133 dpi),
+ In between you see both (approx. 1024x768 perceived).
+ The "official story" is "1200x900 mono resolution,
693x520 color resolution".
+ Screen layers:
+ LED backlight.
+ 1200x900 grid of color filters (fresnel prisms).
+ Semi-reflective layer.
+ 1200x900 LCD.
+ Each pixel has a single color behind it.
+ Colors are arranged in a diagonal pattern.
+ Each pixel has:
+ Fixed hue (r, g or b).
+ 6 bits (64 gray levels) of luminance.
+ Chrominance depends on relative strength of room light
to backlight.
+ DCON screen driver chip
+ The screen can stay on while the processor is turned off.
+ Automatically interpolates ("swizzles") lower resolution color
pixels, so the unusual screen format is invisible to software.
+ Looks just like a regular 1200x900 color framebuffer to software.
+ DCON has different modes:
+ Monochrome.
+ Color swizzled antialiased.
+ Color swizzled not antialiased.
+ Video pass through.
+ Power saving techniques
+ Uses low power LEDs instead of high voltage cold cathode
fluorescent backlights.
+ Turns off processor while leaving the screen and wireless
network on.
+ Uses fresnel prisms to split most white light into primary
colors, instead of color filters to throw away most light.
+ Turn down refresh rate.
+ Dynamically turn off sections of the screen.
+ Green Electronics + Order of magnitude less power consumption.
+ Designed to use as many environmentally friendly components
as possible.
+ Fully compliant with EU's Restriction of Hazardous Substances
Directive (RoHS).
+ One of eight laptops to receive EPEAT's Gold rating for
environmental performance.
+ GPS + A future version of the OLPC may include a built-in GPS!
+ The OLPC project needs GPS mapping sofware and low resolution
maps, which kids can improve, to map out the areas of the world
where they live.
+ Software + OpenFirmware Forth BIOS loader boot ROMs.
+ Pared-down version of Fedora Linux.
+ Custom web browser based on Gecko engine (xulrunner + Cairo) used
by Mozilla Firefox.
+ Word processor based on AbiWord. Paint program.
+ Email via web based services.
+ Online chat and VoIP programs.
+ Many programming languages:
+ Python, JavaScript, Forth, Csound, eToys (visual, Squeak
Smalltalk), Logo (visual), TamTam (visual).
+ Music sequences with digital instruments: Jean Piche's TamTam.
+ Audio and video players.
+ RSS news reader. Calculator.
+ Games: SimCity. Tetris. Connect. Others in development.
+ Educational software and content. Wikipedia.
Internet Archive. E-books. Scanned books. PDF files.
+ Python is the primary programming language for the "Sugar" user
interface and applications.
+ Important Python modules and libraries:
+ Sugar graphical user interface, written in Python, with GTK,
Cairo and Pango.
+ GTK user interface toolkit for X11.
+ Cairo rendering library (hardware accelerated Porter/Duff imaging
model, like PostScript).
+ Great for efficiently drawing high quality antialiased maps
with high quality scalable graphics and text, with hardware
acceleration.
+ Pango international text rendering library.
+ Pygame computer game programming module (graphics, audio,
input, etc).
+ Mozilla xulrunner (Firefox Gecko web browser component).
+ PyXPCOM Python/XPCOM integration module (enables Python and
JavaScript to script the browser, share objects and call each
other).
+ Many other high quality Python modules.
+ Project Status: October 2008
+ About half a million XO-1 units out in the field.
Most are in South America.
+ Afghanistan, Brazil, Cambodia, Columbia (65,000 ordered, 700
pilots), Ethiopia (5,000 shipped), Ghana, Haiti (7,000
shipped), India, Iraq (200 shipped), Mali, Mexico (50,000
ordered), Mongolia (10,000 shipped), Nepal, Nicaragua, Nigeria
(300 shipped), Niue (500 shipped), Oceania (5000 shipped),
Pakistan, Peru (260,000 ordered, 20,000 shipped), Philippines,
Rwanda (5,000 shipped), Tanzania, Thailand, USA (Alabama
(15,000 ordered), Massachusets, New York, Virgin Islands),
Uraguay (100,000 ordered, 10,000 shipped), Yemen.
+ You can buy an XO-1 on eBay now, for $90-$200.
+ G1G1 program ran last year.
+ G1G1 v2 program in America will be run by Amazon,
starts mid November.
+ A new G1G1 program has been announced for Europe, beginning on
November 17, the same day as the US program starts.
+ The price will be around $399, 312 EUR (no VAT will apply,
only shipping cost).
+ The 27 member states of the EU, plus Switzerland, Russia and
Turkey are included.
+ Where to get them: http://www.amazon.com/xo
+ More info about OLPC Foundation Europe: http://www.olpceu.org
+ Latest Changes
+ The new version of XO-1 has slight revisions to the circuit
board, changing a few things, because parts they are using
going obsolete. Trying not to change it much.
+ Making versions of XO-1 with more RAM and more flash memory.
+ Revamped basic sugar interface.
+ Software support for low power consumption is coming along.
+ New software release is going in the can this week.
+ Suspends when you close the laptop.
+ Turns off WiFi chip while in suspend unless actually on mesh.
+ Will sit in suspend for 2 days, which John timed.
+ User interface for power saving modes.
+ Sugar control panel, extreme power saving mode without WiFi,
saves a watt.
+ Advanced power management mode, goes into suspend when machine
is idle, leaves machine on, powers off CPU.
+ Still has a bunch of bugs around the edges:
+ Sharing over the net, presence service screws up sometimes,
but basically works.
+ Need to figure out how to decide whether a laptop is there
or not.
+ Multicast port, machine wakes up when it gets a multicast
it's interested in, but it always wakes up because protocol
does too much milticasting, busy protocol, otherwise the
world thinks laptop goes away.
+ The next version: XO-2
+ The X0-2 exists playdough mockup, looks like paperback with
2 hires multitouch screen, no keyboard.
+ No working hardware for that stuff.
+ Jim Gettys stopped working on other things, and is now working
on full blown multi touch support in X servers.
+ Price target is $75 for the XO-2, but that seems unlikely.
+ Mesh Networking Problems
+ Mesh networking stuff still does not work well.
+ Not using mesh networking in most schools, since it does not
scale to more than 10 laptops.
+ 30 laptops in room all on mesh melt down the network talking
to each other.
+ Can't reliably do TCP on a busy mesh network, because computers
are too busy doing status updates.
+ The problem is complicated with using multicast, which have to
get repeated throughout the mesh.
+ The idea of sticking laptops in a room and they see each other
is a good idea.
+ School servers should put up standard WiFi access points.
+ Mesh networking still useful if small deployment scattered
across whole village.
+ Don't use mesh networking for larger tasks than 10 or 15 laptops.
+ Could improve it with more work.
+ Work should go into getting colaboration protocols (independent
of mesh networking) out into generic Linux world.
+ AbiWord should be able to share across internet to edit the same
document.
+ Windows Compatibility
+ OpenFirmware boot ROMs are now compatible with Windows BIOS,
so it can boot Windows and Linux without reflashing.
+ OLPC is not doing any work on Windows, not shipping Windows.
+ Putting all work into Linux based stuff, everything they are
shipping is free software
+ OLPC will sell laptops to countries that want to run Windows.
+ Countries must worry about it.
+ You can't buy that version of Windows in developed countries.
+ $3 version of Windows not for sale in the US or anywhere people
pay full price for Windows, just the "third world".
+ High Expectations
+ OLPC had to recover from artificially high expectations created
by the fawning press and Nick Negroponte.
+ The high expectations had to come crashing down eventually.
+ The Windows announcement finally casued it to crash down.
+ Only a few hundred in pilot running Windows.
+ All the rest are running Fedora Linux.
+ The community needs to be reminded that OLPC is still a free
software project.
+ OLPC is the largest deployment of Fedore anywhere.
+ 500,000 units of Fedore, 50,000 more every month.
+ Successes
+ Two good things have happened to the project in the broader sense:
1) Spawned this whole netbook thing.
+ Nobody was doing that before.
+ Now 15 different major companies are doing the same thing.
+ Finally people are exploring the low cost low power end
of the laptop spectrum.
+ OLPC is still unique in that it was ruggedly designed to be
dropped and survive.
+ Other companies have not figured that out yet, and are still
making cheap low quality laptops.
2) The free software community is widely in favor of the project.
The deal with Microsoft got bad press, and most people in the
free software community mistakenly think the free software part
is over, and OLPC is now shipping laptops with Windows.
But actually they are not.