↬ I'm Ivan Krstić (@radian). This is a personal site; I speak for no one but myself.

Sweet nonsense omelet

So there I was, basking in the warm California sun, enjoying the gentle jets of the hot tub, and generally doing pleasurable things that don’t involve thinking about my old job. (New job: fucking awesome. Old job: awesomely fucked.)

But then I get an e-mail from a friend, who saw on Slashdot that Engadget reported that ZDNet Asia has an interview with Nicholas Negroponte, or something, and it’s been getting a bunch of press. Now, last time Nicholas got a bunch of press for an interview, it was for calling his employees terrorists; I wondered with slight trepidation what bombshell he dropped this time. Here it is, in its inglorious entirety:

Putting a crank-shaft on the XO laptop was a mistake, but the biggest mistake was not having Sugar run as an application “on a vanilla Linux laptop”, said OLPC founder and chairman Nicholas Negroponte. “Sugar should have been an application [residing] on a normal operating system,” he told ZDNet Asia in an interview. “But what we did… was we had Sugar do the power management, we had Sugar do the wireless management–it became sort of an omelet. The BIOS talked directly with Sugar, so Sugar became a bit of a mess.”

And just like that, more than a year after I left the company, it became clear to me that OLPC can still raise my blood pressure. So let’s talk about Sugar.

When we started software development for the XO, I went on an internal anti-Sugar crusade. Long after everyone else had made up their minds about the need for a new learning-oriented GUI, I was still obnoxious and combative in trying to kill the idea before we began work on it. I wrote strongly-worded internal memos, I argued with Walter, and I got into countless many arguments with just about every Red Hat employee that worked on the project — a number of them won’t talk to me to this day. I tell you this to make it clear that this post is not about defending myself or my work. I was never a Sugar developer, I was never credited as such, and my contributions to Sugar are probably under 20 lines of code contained in a couple of critical bug fixes.

In trying to stop OLPC from putting its weight behind Sugar, my reasoning was fairly straightforward: it’s too hard for a tiny team to build a new GUI platform in a very short amount of time, and it’s silly to throw away the thousands of man years of effort that have gone into mainstream Linux desktop environments and the applications they run. Eventually, I realized I was pissing people off without managing to dissuade them, so I stood down. Sugar was built, and over time, is becoming an increasingly compelling platform.

And of course, Nicholas’ interview gem has nothing to do with anything I just said.

Here’s the problem: through a somewhat regrettable set of naming decisions, the name “Sugar” came to represent two entirely different things. It was the name for the new learning-oriented graphical interface that OLPC was building, but it was also the name for the entire XO operating system, one tiny part of which was Sugar the GUI, and the rest of which was mostly Fedora Linux.

Nicholas, evidently, still remains blissfully unaware of any of this. As is plain to see from his own words, what he considers to be the biggest mistake of the project has nothing to do with Sugar the GUI, and everything to do with the gross, hairy, complicated systems development work that OLPC was doing to support the XO’s special hardware features. And to be clear, I mean “short bus special”, not “shiny unicorn special”.

Let me explain something to you. For most of OLPC’s existence, we had about two guys working on Sugar the UI. They were GUI developers, with GNOME backgrounds. They were not at all the same people doing systems development work to support our hardware. No resources were taken away from systems development to do Sugar. If Sugar hadn’t happened at all, we would have still had to do all the systems work to get Linux working on the XO, and it would have still taken just as long. So if you’re looking for things to blame, Sugar is not the droid you are looking for.

In truth, the XO ships a pretty shitty operating system, and this fact has very little to do with Sugar the GUI. It has a lot to do with the choice of incompetent hardware vendors that provided half-assedly built, unsupported and unsupportable components with broken closed-source firmware blobs that OLPC could neither examine nor fix.

So we wound up with a keyboard whose keys get stuck. A dual-mode touchpad, capacitive and resistive, where one mode doesn’t work at all, and the other makes the cursor spontaneously jump around and sometimes shuts off the touchpad altogether, prompting OLPC kernel developers to beg for saner hardware in the next round. We had board engineering issues that made power management practically impossible. We had a custom display controller chip that was incomplete in some regards, and completely broken in others. We had an embedded controller that blocks keyboard events and stops machine suspend, and to which we — after a long battle — received the source, under strict NDA, only to find a jungle of nested if statements, twelve levels deep, and no code history. (The company that wrote the code doesn’t use version control, see. They put dates into code comments when they make changes, and the developers mail each other zip files with new versions.) And we had a wireless chip that is so far beyond fucked, it’s just about funny.

(Each of those words is a different link. Click them all, I dare you.)

Thinking back, there’s a hardware incident I remember particularly fondly: one of our vendors sent us a kernel driver patch which enhanced support for their component in our machine. They chose to implement the enhancement by setting up a hole which allowed any unprivileged user to take over the kernel, prompting our kernel guy to send a private e-mail to the OLPC tech team demanding that, in the future, we avoid buying hardware from companies whose programmers are, direct quote, “crack-smoking hobos”.

In the end, Nicholas’ bit of interview nonsense just doesn’t pass the smell test. Customers aren’t stupid. There’s close to a million XOs out there; if Sugar was OLPC’s biggest mistake, Windows on the XO would be selling like hotcakes. Let me remind you, then, that the number of Windows-based XOs that OLPC has sold is exactly zero.

So next time you hear Nicholas break out the egg metaphors and wave his hands about the Sugar that doomed it all, shrug and smile. Hell, If I were a meaner person, I’d ask Nicholas why it is that Windows — you know, the Windows from Microsoft, mercifully unstained with the mistake of Sugar — can’t even shut down an XO without throwing up a blue screen of death.

But I won’t ask. Because it’s warm and sunny in California, and I have a hot tub calling my name.

My thanks to Walter Bender for reading a draft of this post.