←back to thread

235 points ChrisArchitect | 1 comments | | HN request time: 0.248s | source
Show context
berg01 ◴[] No.16849989[source]
I played with one back when it was just launched. Besides the innovative outdoor-friendly display it was an insanely bad experience. MIT Media Lab (and with that I mean Nicholas Negroponte) gone crazy.

The UX (both keyboard and software) was .. just awful.

replies(1): >>16850048 #
whitepoplar ◴[] No.16850048[source]
Any chance you could comment further on this? What in particular made it bad?
replies(4): >>16850102 #>>16850259 #>>16850411 #>>16850781 #
maxsilver ◴[] No.16850259[source]
I'm not the parent, but I bought two OLPCs back in the day in the "Give One, Get One" program.

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.

replies(2): >>16850357 #>>16850682 #
duskwuff ◴[] No.16850682[source]
I worked with the OLPC in university (not MIT). I can confirm your findings, and additionally:

• 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.

replies(1): >>16851268 #
avhon1 ◴[] No.16851268[source]
> The hardware was not designed in conjunction with the software

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...

[5] http://www.loper-os.org/?p=249

[6] http://wiki.laptop.org/go/Software_ideas#Technology

replies(4): >>16851622 #>>16852148 #>>16855748 #>>16869499 #
1. DonHopkins ◴[] No.16852148[source]
I worked on making the Read activity usable in book mode (keyboard folded away, but gamepad buttons usable), and I vaguely recall putting in an ioctl to put the CPU to sleep after you turned a page, but I'm not sure if my changes made it in.

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!