Weekly zine/0/Spotlight
- When a young man with a G1G1 en-route is scheduled to deploy to the Peace Corps in Uganda before his XO arrives, the volunteer community springs into action.
- Would you sell your company and travel halfway around the world to volunteer full-time, unpaid, on a project with people you've never met, in a language you don't speak, and in a land with terrible coffee... for 9 months? Bernie Innocenti, one of OLPC's major contributors in graphics and internationalization software, did just that.
Volunteer Profile: Overview
There are many many volunteers working with OLPC that deserve credit. This section will try to highlight some of these volunteers and give a brief overview of what they are working on, and about them.
Ian Daniher
The first subject we would like to introduce is: Ian_Daniher (Ian Daniher), age 16. He is currently coordinating the TeleHealth projects and has been instrumental in launching other projects as well.
Bernie Innocenti
Interview by Mel Chua
Bernie is on the right - "Since I'm clearly not having fun in that picture... you could say this is because I had no computer to hack with." Click here for a larger version of the photo.
Getting involved
Mel: So - for starters, can you introduce yourself? For our gentle readers and all.
Bernie: I'm Bernardo Innocenti, Bernie for friends. I come from Italy and I've been a volunteer at OLPC headquarters in One Cambridge Center for the last 8 months. Or maybe 9. I'd have to check.
It's a long story, but the end of it is that I just sold a big chunk of a startup I founded in Italy, so I was free to go on a sabbatical... My goal was to spend this year travelling around, learning, and of course participating in some kickass project.
Mel: There are a lot of kickass projects out there, though. Why this one? How did you get involved?
Bernie: so, OLPC is in many ways the most amazing project I'd ever heard of... Ambitious, revolutionary, ethically unique... My limited English cannot describe what it feels for a geeky software engineer to be part of it. If I answer honestly [about how I got involved], it will make me look crazy. So let's take the pill.
I met Jim Gettys at FOSDEM 2007... I think it was February. It's a really nice free-software meeting in Brussels. It was my first time there, because the previous years I was really busy with my company and unable to travel around. Jim was giving a keynote about the OLPC.
By then, I was already extremely interested in the project... The good Jonathan Corbet of LWN would cover the ongoings... and it was on Slashdot a few times. I had already noticed the Gandhi progression. They stopped ignoring the crazy laptop with a crank a while ago... and they also had already stopped laughing...they had not yet started fighting it back then, but it was clear the XO was going to disrupt the ambitions of many monopolies.
Back to Jim's keynote: he made it quite clear that the project was already at an advanced stage of development. And very cool things were going on. That was the very first time I could see an XO.
It was an old B2, with many shortcomings, half the memory and half the CPU power. But people loved it. They'd smile like idiots at it... as you'd smile when you see a cute baby. And I was in that crowd. Getting near to the only 2-3 laptops on display wasn't easy.
I had no chance to talk with Jim, if not briefly. I talked with Rob Savoye, instead. Rob is the guy behind Gnash, the open source replacement of Macromedia Flash that is now part of our distribution. Rob was the one suggesting me to join the project if I really liked it so much. He was given a laptop, and he let me hack on it for a while.
So the next month I was already booking a plane to Boston. And this is where the crazy part begins.
I was too shy to just contact the OLPC developers and bluntly say "I want to join this project". I was totally unknown in the OSS world (Ed. Note: Bernie's being modest here - he's contributed to gcc for years), and I had been doing a mostly non-technical job, and certainly not related to open-source for the past 4-5 years.
Mel: So you landed in Boston not having told them you were coming?
Bernie: That's pretty much it. I had in mind to approach someone, maybe Jim Gettys, and offer my help. But I tried to postpone that moment over and over. My English sucked. I didn't even know how to get a bus to get there. So this is how I spent my first week here.
Then I dropped a line or two. "I'm in town... and I'm a software engineer... I'd like to help out. Can we talk about it?" Something like that.
Bernie eventually found the original email he had sent to Jim. Excerpt below:
Hello, For some time, I've been playing with the A-test board and, later, with the B2 laptop you kindly sent to me. As I anticipated a few months ago, I've just sold my company and started a 1-2 year sabbatical dedicated to travel and research. I consider the OLPC by far the best project I've ever seen from a social, ethical and technical point of view. Therefore, I'd very much like to offer my full-time contribution as member of the core OLPC team... <snip> ...I'm currently in Boston.
Bernie: Jim accepted to see me, and was very friendly right from the start. Actually, everybody was. Even though I appeared out of nowhere, with a funny accent, strange credentials, etc. Since then, I've been sitting at a desk in the middle of the Garden.
(Ed. note: "The Garden" is the main open work area of the OLPC office in Boston--a rough melange of tables, chairs, and computer parts where people crash down to work instead of being assigned desks.)
Contributions to the XO
Mel: What part of the laptop have you been doing most of your work on?
Bernie: I'm a factotum person. My main area is the X windowing system, the heart of the graphical user interface that supports Sugar and its Activities. i18n input methods, keyboard and localization issues. I did a lot of platform work too... packaging other people work, applying patches to existing OS components, cleaning dependencies, etc. Plus a few kernel patches for the input subsystem, the in-kernel debugger and the framebuffer driver.
And to do this work I had to become a Fedora developer, and learn how to do RPM packaging. Which was kinda scary at first, easy now. I'd been hacking around X over 10 years ago on the Amiga, when I was a NetBSD developer. It was called XFree86 back then.
Mel: That was a long time ago.
Adam Holt, OLPC Community Support Manager: (in the background) Don't make me look old, guys. XFree86 & Linux was like the 10th system I used.
Bernie: I happen to be a Ubuntu convert at "home". But Fedora is good enough for me too. Many of us happen to be long time Debian contributors, actually.
Mel: And you did all this work for 8-maybe-9 months, in a foreign country, in a different language, working far more than 40 hours a week, I'm sure... all as a volunteer? That's a pretty incredible commitment.
Bernie: Many Italians would have just died within one month or two for the food. Now I even drink American coffee. *takes a sip from the mug on the desk*
Mel: The horror!
(discussion on good restaurants in Boston's North End ensues)
Bernie: [I've been to the North End's Italian restaurants], pretty good. But you know what? the Greek, Mexican, Indian and Thai are really good too, and you'd not find many of these in Florence. But anyway, back to OLPC.
Amusing bugs
Bernie: I [also] worked on fixing amusing bugs in the graphics driver. That is, they only were amusing to look at. Not if you had to dig through 15 layers of obscure modules to track them down.
Click on the pictures below to see screenshots of some of the amusing display bugs Bernie fixed. The top right bug (FaintGreyLineAfter) is still a puzzle in progress.
larger version |
larger version |
larger version |
larger version |
larger version |
larger version |
Mel: Thanks to Bernie, your XO's screen does not look like this.
Avril (OLPC support-gang): Bernie found the touchpad bug... that was a cool bug. (Ed. note: See a video of the bug here.)
Bernie: I was with Dilinger. I just hacked together a patch for it. He was the one noticing the weird "0,0" in the debug output. The touchpad bug was so [annoying] though because we had 8 different places to look at, and we were unsure which one to blame.
The bug would just disappear after a while, so we couldn't ever nail it down properly while debugging. When we saw (0;0), and thought about how the delta was being computed, a light bulb turned on instantly.
Bernie the world traveler
Mel: I hear you're going to be leaving us shortly and flying back to a country with better coffee, albeit somewhat against your will.
Bernie: OLPC is trying to help me out. Hopefully I'll be able to sort out my visa problems and be back as soon as possible. Meanwhile, I'll enjoy "a vacation in Italy", as some colleague pointed out to sweeten the pill.
Just before going back to Italy, I'll attend LCA in Australia. And a few days after reaching Italy, I'll leave for Brussels via Paris to attend to FOSDEM 2008.
Mel: But you're going to try to come back, you say?
Bernie: Yes, as soon as possible. Hopefully within a few months. You know, I could work perfectly well from Florence, too. Marco Pesenti Gritti, our lead Sugar developer, works from Italy too. But I'd miss all this great people, you know. I think working with them was a big motivation. Tonight they organized a surprise dinner for me. I kinda spoiled it by calling Arjun, the author of Measure, to say I'd be late for an xkb hack-session we had scheduled earlier today.
On learning and making mistakes
Mel: The last few months have been pretty crazy at 1cc (Ed. Note: 1 Cambridge Center, the Boston office's address), with code freezes, mass production, G1G1, and then all the deployments starting to the target countries.
Bernie: Indeed. This is a very stressing, startup environment. And I hope it will always be. The moment we become too much organized, and bureaucratic, [that] will probably mean we'll stop innovating.
Mel: Being a startup, being innovative - that usually means that you'll fall flat on your face many times, make a lot of mistakes, mess things up.
Bernie: We do make mistakes, sure... A lot of them. And I've always been quite loud about the aspects I care more about. The only safe way to avoid mistakes is going with common wisdom, established practices, etc. Which, in our case, would have meant producing a $1000 laptop with 2 hours of autonomy, with old boring legacy software running on it.
Mel: Some people are saying that bucking tradition in designing the actual laptop was great, but now that OLPC is deploying laptops to actual children in schools, it should ease up on the "crazy innovation" pedal and settle down into "proper business practices."
Bernie: I think we all disagree with the "proper" way here. And the reason is that we all learned to do the things we do through the "improper way" as kids.
We had little home computers, we were curious. The proper way of the software engineer, at my time, was to learn Pascal and then write boring sorting algorithms. I was lucky and I could hack fractals, FM synthesis, write multitasking kernels, etc...
We did not know to call it the constructionist model back then. If we did, we'd have some justification for our parents and teachers. I've lost count how many computer magazines I've been confiscated by my teachers in art and history classes.
Mel: Heh - I used to get Shakespeare taken away from me in math class.
(short interlude on the Shakespeare Programming Language ensues.)
Bernie: I guess the bottom line is: some kids will be mathematicians, others will be writers. And confiscating their books is just going to slow them down along the way.
Many people don't realize how huge the problem we're fixing was: the majority of the kids just don't have any books you could confiscate. Giving them a little green laptop is not just an improvement. That's going to be their only tool. And it will be a damn good tool, actually: amazingly better than anything I had when I was young.
So now we're going to empower the next generation with computers they could use at home and school. To learn, explore, hack, communicate... and of course to design better laptops for the next generation.
Mel: Thank you, Bernie!
Bernie: Thank you for interviewing me... peace and love!