Microsoft and the OLPC – Red Tape and Misconceptions

It would appear that Microsoft is making significant progress in porting XP to the XO laptop. While I think the third world is better off learning Linux, I have no problem with them learning on a Microsoft platform, provided they make it suitable for their needs. They seem to be attempting to do that. I can’t say for sure that the OLPC is what the third world needs regardless of operating system, therefore I really can’t make a judgment as to which OS better serves said undefined needs. However, this is not a post to judge the merits of the OLPC or any OS that would run on it. Rather, its about red tape and misconceptions.

First the red tape. The technet article states that Microsoft cannot contribute to the OLPC project directly because of the open source license. It then seems to imply that Microsoft must reverse engineer the hardware because their engineers would somehow be tainted if they read the specs. I am quite ignorant of the OLPC project licenses, as well as open source hardware in general. So I have to assume that their lawyers are correct in their interpretation of whatever licenses govern the spec of the hardware.

This seems to be quite a hindrance. Granted the hindrance might be intentional. It seems to be similar to the hindrance that the GPL places on you reusing the code in a non open source project. I would expect many people that have worked on the OLPC project to be glad of this hindrance, just as many are glad of the hindrance that the GPL provides to their code being reused in a closed source project. However, many companies such as Sun and IBM are able to donate their programmers time and talents to Open Office, Apache, Firefox and other open source projects without “tainting” them. I think Microsoft could do similar. Even if it was impossible not to “taint” there developer, they are not in the business of making hardware or drivers. I doubt it would hurt Microsoft if the drivers they created for the custom XO hardware were all released as open source.

Now to tackle the misconception. James Utzschneider, the author of the technet blog, seems to think that the projects plan for supporting the laptop is to have the children patch the source code themselves.

And we have a different support model than OLPC is envisioning: we are not expecting K-6 school children to access the source code and do their own programming in the event they have to fix a problem in the computer. Certainly, we think there is a role for students in the support of school computers — in fact, as part of our Partners in Learningprogram we have trained over a million kids in a student helpdesk program (like in this case study from Brazil) — but we also think that local entrepreneurs and businesses need to play an important role here when you are talking about deployments involving tens of thousands of computers.

The angry young idealist in me started screaming of FUD immediately when I read this one. Just because the source is available, doesn’t necessarily mean you have to edit it. There has got to be a better support model than this. So I looked on the OLPC wiki page linked to by the article for more information and I found the following.

The laptop is an open-source machine: free software gives children the opportunity to fully own the machine in every sense. While we don’t expect every child to become a programmer, we don’t want any ceiling imposed on those children who choose to modify their machines. We are using open document formats for much the same reason: transparency is empowering. The children—and their teachers—will have the freedom to reshape, reinvent, and reapply their software, hardware, and content.

The article contains no explicit statement of their support model. It does allow for students and teachers to modify the laptop, but acknowledges that not every child will become a programmer. A cursory search does not turn up a formal support model. However, very few support issues require a code change, especially for commodity software that have a much larger usage in testing scenarios than most code gets in production. So while the support model may be lacking, I don’t see where they assume the children will be hacking their own laptops except as a learning exercise.

I honestly hope this port of XP is successful, and that they ship some OLPCs running Windows. First of all it gives people more choices. Secondly, I’d like to see that translate in to a first world consumer oriented $200 laptop.

What Qualifies an Open Source Project as Successful?

The title is actually deceiving. I’m really going to talk about my pet open source project. I will talk about its low download rate and the lack of feedback it gets. I will then discuss if that makes it successful.

My pet open source project is called PlaneDisaster.NET. It is a SQL frontend for Microsoft Access and SQLite databases. Basically it allows you to query and manipulate Microsoft Access databases through the JetSQL engine. I wrote it originally to teach myself C#, and then eventually began to rely on it extensively as part of a contracting job where my data was being stored in an access database.

So how can I classify this project as unsuccessful. First of all the project gets little traffic and even less feedback. The most downloads I got in a calendar month was 234 in March of 2007, and there were 2 trouble tickets opened about it anonymously that I didn’t open myself. So obviously the program gets used. However, I have yet to have anyone testify that, “Yes I downloaded your project and I use it regularly.” People I know have downloaded the program and given me feedback on it, but none of them have any actual use for the program.

There is some other data supporting the conclusion that some people actually use my project. A similar console based project called JetSQLConsole gets far fewer downloads on SourceForge than my project does. There is one person that gets notified when I post a new release on SourceForge. Traffic jumps a bit when I make a new release. So in all likelihood the project has limited success in terms of being utilitarian to others, but fails miserably in giving the author a sense of benefiting others.

There are also other measures that I can qualify this open source project as successful..  This was originally my “teach myself C#” project. I have succeeded in that task. It later became my “teach myself NSIS” and “teach myself WiX” project when I needed to learn how to write an installer.  It was immensely successful in those regards. It has also been useful for when I has to deal with Microsoft Access databases. So it has been of great academic value and utilitarian value to myself.

The conclusion I’ve come to is that you cannot define the success of an open source project by a single set of benchmarks. It depends on many factors. First and foremost is what purpose the software serves. Like  closed source software, some programs serve a very small audience, and some could benefit most users if installed on their workstations. Some are designed by the programmer for their own personal use and released as open source in the unlikely event others will benefit.

As one final postscript, I hope my readership does not discount JetSQLConsole if they need a SQL editor for Microsoft Access Databases. It has a lot of potential. I have submitted a patch to it a while back that is part of the current binary release. Some people might find a command line based program more useful. With a bit more work the program could become serious competition to PlaneDisaster.NET.