Saturday, January 30, 2010

One more opportunistic dot

As member of the Sugar community, I'm very happy to read from Jono Bacon the Ubuntu plans about what he calls opportunistic programmers. In Sugar we believe that doing is an important part of learning, that's one of the reasons for considering free software a fundamental part of what we do.

Though the goals stated in the referred post match almost exactly what we are aiming for as well, I find something missing: bigger components to create your applications with. Python, the GNOME platform and DesktopCouch are awesome technologies that fit very well for this purpose (Sugar itself is built on Python and GNOME) but the components provided are rather small, meaning that you need to build all the functionality you need from these small bricks. What if you want to generate a PDF and want a real-time preview? Or an ODT document? One that users edit collaboratively across the network in real time? Would you have to write those thousands of lines yourself?

We have thought that by also providing coarse components such as Abiword, Evince, Mozilla and Gnash that people can use in their applications, what user-programmers can do widens considerably, keeping the complexity of their own code to a minimum.

I know this will sound to some as too much like Bonobo, but really, this is so much more light-weight both in computational and human resources terms, and most importantly, it's being widely used today. My post about embedding evince is the most popular in this blog, one year after it was written.

I would like to see a bigger effort from GNOME application developers so their code can be reused in this way. It helps to all those people building new user experiences based on GNOME (no more #ifdef HILDON!) and also can lower the pressure that users with marginal or specially complex needs put sometimes on GNOME developers.

Monday, January 25, 2010

Moving on to other things

If you have been following my blog, you may have noticed that I see Sugar Labs as having done a lot of progress recently in the sustainability front. This has been thanks to the efforts of several individuals, who gathered around Sugar Labs in the believe that computers could radically improve the educational opportunities of children anywhere in the world, and that none of the pre-existing software environments was the best suited for the task.

It has been an awesome adventure, maybe the biggest in my life, but time has come for me to move to less thrilling matters. This doesn't mean that I'm cutting completely with Sugar, just that it will take now just a small part of my free time. I intend to skim through a couple of mailing lists, to organize bi-weekly meetings for the development team, and to review patches in the queue of my modules as time permits. I'm aiming to dedicate to all this only 5 hours per week to Sugar matters, so I will have to be very strict on where this time is spent.

I'm starting just now to look for my next job, so if you know of a position for someone knowledgeable of the GNOME platform, Python, with a good sense of FOSS communities and a taste for diving into big codebases, please do forward to me at Here is my resume.

The Karma Project: Code Less, Teach More

My last post listed some of the organizations that are putting some of their resources to work on Sugar with us. Though that list is complete to the best of my knowledge, there's another partner of Sugar Labs that is doing a great effort to work with others in improving educational opportunities around the world: OLE Nepal.

OLE Nepal is running a deployment of 4400 OLPC XOs and are working on content creation and teacher training along with laptop distribution and maintenance. They started by using Squeak Etoys as the platform for their materials, then switched to Flash because they couldn't find enough people with Squeak skills, and finally have launched the Karma project, which is based on HTML5 technologies.

They have released the 0.2 version and are now starting to port their existing content to Karma, some which you can see (and play!) here:

I think this project is extremely relevant for the reasons that Bryan Berry outlines in Karma: The Code Less, Teach More Software Framework:

I have written a number of articles in about the need for an activity framework built on openweb technologies (JavaScript, HTML). Here is the argument in three sentences. A large proportion of software developers are familiar with these technologies. This proportion is even larger in developing countries. The larger software industry is steadily embracing openweb technologies for web, mobile, and desktop development. Please note that Karma lessons can run both online and offline.

I don't know of any other effort that can compare to Karma in educational content authoring, so it strikes me as very bold and far-sighted that educational NGOs in developing countries are taking FOSS components and are assembling them to create frameworks that the Adobes and Microsofts of the world have failed to create. So kudos to OLE Nepal and all the volunteers involved!

Friday, January 22, 2010

Sugar Labs has changed

Less than 10 months ago I wrote a post about how Sugar Labs had managed to attract top professionals to contribute their leisure time, effort and talent to our mission of improving the educational opportunities of children all around the world.

Today I'm happy to look back and see how what was a 100% volunteer-run organization has welcomed other organizations to pool their resources to keep improving Sugar. In most cases these efforts have went on quite discreetly, even if they amount to a significant share of our new developments.

The organizations that are putting their employees to work on upstream Sugar are:

One Laptop per Child

OLPC has put 3 of their engineers to work on Sugar through 2009, they have sold more than 1.5 million of machines with Sugar on them, so they have some interest.

* Daniel Drake (dsd) has taken maintenance of the 0.84 stable branch, has sent several patches for fixes and has contributed one major feature: OLPC mesh support.

* Sayamindu Dasgupta (unmadindu) has kept working on everything localization, improving the book reading capabilities of Sugar and is currently working on improving font size selection in Sugar. He is also maintainer of the 0.84 stable branch along with Daniel.

* Martin Langhoff has kept working on the integration of OLPC's school server with Sugar and has also been doing great work fixing regressions in Sugar's journal and handling of usb sticks.

Paraguay Educa

Paraguay Educa is a NGO that is implementing an OLPC deployment in Caacupé, Paraguay. They have distributed 4000 XOs and though being a very small organization, they have surpassed any other OLPC deployer in working with the upstream communities of the software they use.

* Raúl Gutiérrez Segalés (rgs) has been working with Walter Bender on TurtleArt, a software that introduces young learners into algorithms and computation. He is also leading the technical team and has encouraged his colleagues to be bold and join the FOSS community.

* Martin Abente (tch) has been working on adding to Sugar the capability of using 3G modems. Aside from his involvement in Sugar, he is the main author of a logistics system specially developed for the task of deploying 1-to-1 programs. This system has been made FOSS by Paraguay Educa and is being offered to other OLPC deployments.

* César D. Rodas (crodas) is not working on Sugar (yet!), but he has been assigned to make Fedora 11 run well on the XO-1 machines. This is very important for Sugar Labs, because until there isn't a new release for the XO-1, +1.5 million machines will be stuck with very old software: Sugar 0.82 and Fedora 9. This is also important because deployments start to feel empowered to take on tasks that were seen previously as too hard to be taken by anybody outside the OLPC headquarters.

Plan Ceibal

The Ceibal Plan is the name of the government project that has universalized computer access in primary education, Uruguay is the first country in the world to have achieved this and I'm happy that Sugar is the chosen software for each of the 366.000 machines. They have been modifying Sugar downstream to better adapt it to their needs, and have realized that by not upstreaming their work, it will be more expensive for them to update to new versions.

* Daniel Castelo (Daniel_C) has been put in charge of upstreaming their 3G modifications on top of the work that Martin Abente is doing. He is also working on adding printer support and has been thinking of implementing ADSL connections.

* Esteban Arias (esteban) has made excellent work adding accessibility features to Sugar and is now submitting them upstream. He's starting small for our next release (0.88) but he has lots more of very interesting stuff to upstream.

Though I find these developments very reassuring, I'm still quite a bit worried about the rest of the iceberg. If an organization deploying only 4000 machines is able to work internationally to develop the software to their local needs, which opportunities are losing the deployers of the million of machines that don't dare to participate in the development process?

There's also the issue of module maintenance: all Sugar modules are currently maintained by volunteers. When OLPC took maintenance of the 0.84 branch, they actually took work out from the shoulders of those volunteers, but the rest of the contributors are actually increasing the work that maintainers have to do because of feature discussion, code reviewing, bug triaging and stabilization. If the three volunteers that are maintaining most of Sugar run out of money and need to find a normal job, who is going to do that work?

Aside from module maintenance, there's also the roles of Feature Manager, Development team coordinator, Product Manager, System Administrator, etc. that need to be carried by someone. Deployments are going to need to participate in these other areas if they want to keep having a healthy place where to work together and pool their resources.

All in all, given what 2009 brought us, I'm thrilled when I try to imagine what 2010 has in for Sugar. Have a happy hacking year!

Saturday, January 16, 2010

A week at LATU (part III): More about developing with Sugar

Daniel Castelo kindly pointed out some important subjects that were discussed in my visit to Montevideo but I had forgot to mention in the last post.

Sugar Labs is providing a site where activity authors can post their activity bundles and Sugar users can search, download, rate, etc. This site is based on Mozilla's AMO which powers, some more details in this older post. The colleagues at LATU asked about deploying their own instance, so they could better tailor what is offered on it to Uruguay's specific needs. I think that right now this is not a good idea because AMO allows us to display activities based on the Sugar version of the client and we can quite easily explain in the description or a comment if an activity makes most sense for a particular deployment. Also, AMO allows users to create collections of activities, so we could see collections specifically prepared for Uruguay classrooms.

We also dedicated quite a bit of time discussing the upstreaming of some features that the LATU has developed in-house, but I think this is more relevant for the community side of things so I leave it for the last post of this series.

Perhaps the most serious single issue I heard when asking for feedback there was that the XOs got sometimes in such a state that a full image reflash was needed. This means that any work that hadn't been backed up would be lost, which is quite bad if we consider that many kids won't have enough discipline (or media) to backup all their relevant work. I have been told that the first suspect cause is the internal flash filling up to a point where the machine doesn't boot any more.

Some ways of attenuating the problem are: making it easier to delete unneeded stuff from the journal by implementing selection of multiple entries, update to a version that doesn't leak temporary files, deploy school servers capable of accepting backups from the XOs and add a simple way to backup the journal to a pen drive.

The next and last post will be about what we discussed about how an organization like LATU can interact with FOSS communities to their best profit.

Friday, January 15, 2010

Producing Open Source Software by Karl Fogel

Finally finished reading Producing Open Source Software from cover to cover. I found it very well written and full of stuff relevant to any FOSS contributor. I was surprised as I read how about 90% of the content matched what I had learnt by practice during the last 3 years. I'm very grateful to Marco Pesenti Gritti who passed all this knowledge to the Sugar team.

Anybody has had any experience giving this book for reading to people who still had no knowledge of FOSS?