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.
Comparing the Ohloh.net to Koders.com
When I start or join a new open source project, I usually make sure they are registered on several websites relating to open source that I frequent. Two of them are http://koders.com and http://ohloh.net. These sites offer different services. However, they both take the code from your version control repository, download it periodically, and report information derived from that data on their website. What the derived information is different.
Koders is a source code search engine. It lets you search for source code. Ohloh is a website that calculates and reports various metrics about open source projects. While you cannot compare the services they offer directly, you can compare how their project submission and user interactions work.
The first thing you will notice if you register with both sites is that ohloh is totally automated and koders reviews all projects individually. Ohloh will let you register in minutes. If you are lucky and server load is low enough, your project will be imported in less than an hour and you will have what it calls “shallow metrics,” or statistics about your code such as code to comment ratios and the breakdown of languages used in it. Koders, on the other hand, will inform you that your project must be reviewed by hand. My personal experience is you will have to wait over a month to be informed that your project was approved. They claim the purpose of the review is to ensure the code is legitimately open source.
Feedback mechanisms are similar for both sites. They both have forums and the site admins read and respond to support requests on them. Both sites are small in terms of forum volume at the moment. I’ve used Ohloh’s forums at various time, but never had a need to use Koders’. I predict Ohloh’s forum volume will grow faster than Koders’ simply because Ohloh is a community and Koders is a search engine. There are various activities that you can do at Ohloh, such as review projects, give other users “kudos” and updaste your “stack”, a list of open source applications you use. However, at koders, your options are to register a project or search source code. Therefore, there is more to talk about on the Ohloh forums than the Koders ones.
Another thing you will notice about Ohloh is the extensive use of the honors system. For example, I can login, find a project with a developer not associated with an Ohloh account, and click on the button that says “I am this user.” I’ve not tried to see what happens if I claim to be Linus Torvalds, but I do know if click on that developer profile for linux or git I see the “I am this user” button. There is no honors system or trust in the community at Koders. They hand reviews projects, and once the project is in the system, its in the system.
One final thing I noticed about Koders is unlike Ohloh, they seem to seek open source project to add to the repository themselves. In a blog article they proudly announce they have “partnered” with IBM to add all their developer works projects to the repository. Ohloh is using crowdsourcing to get all their data, where koders uses it as one avenue, but also seeks out projects on their own.
To put all this in perspective we must look at each websites motivation, or to more clearly define it, business model. Ohloh is building a community. It is a social networking site of sorts. I expect either ads to start appearing, the site to start selling aggregate data, or some other income source that basically revolves around selling their demographic. Koders, on the other hand, sells a professional version of their product. You can buy Koders Pro Edition, install it on your network, point it at your repositories and search your internal code. Ohloh needs active members that constantly go to the site, so they offer things to do there. Koders, on the other hand, needs people to find their search engine useful enough to want to use it internally, so they would want all the source code to be legitimately under the license it is listed under and would want to make sure that the majority of the source code on their site is worth reading and reusing.
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.