Wednesday, February 24, 2010

Visit to Igalia

A couple of weeks ago I spent two days with the colleagues at Igalia, talking about Sugar and other GNOME stuff. The goals were to brief them on the current state of Sugar - from the technical, community and business points of view, and to discuss ways in which they could contribute to this adventure of using computers to improve education everywhere. As a company, Igalia has a strong interest in Sugar because of their social mission, which they take very seriously, and also because of their 8 years of GNOME, Freedesktop and Linux experience, which allows them to jump into Sugar without further investments.

The morning of the first day was spent with Juan José Sánchez, who explained to me the ways in which they are a special company. Igalia's management structure is very flat, with responsibility fairly distributed among its partners, which are 70% of its employees. This means among other things that when the company participates in a project, the people working on it are going to be more committed than if they just were assigned by their managers.

The first talk started that day after lunch, intended to give an overview of Sugar's origins, its present state and perspectives of future. The goal was two-fold: give them enough background so they could more efficiently jump into the community, and present a case of a FOSS project to the Master on Free Software students. The best of the session was without doubt their questions and the discussions that ensued afterwards, I'm happy I was able to pick their interest! The slides (in Spanish) can be found here.

After a break, we held a workshop about hacking on Sugar. The audience had a varied technical background, including experienced GNOME developers but also students of the Master on Free Software with little or no knowledge of GNOME hacking, so I tried to jump over the details that are not specific to Sugar and to highlight the specifics of contributing code to Sugar, in the hope that our online resources will be able to fill the gaps. I started introducing them to our jhbuild instance, went quickly through the core modules in git, explained the code review process and went through the process of contributing a trivial bugfix. Then moved to activities, explaining the layout of a simple Python activity and then the couple of X window properties that need to be set so the Sugar shell can recognize a top level window as belonging to an activity. We also spent some time peeking inside a few Sugar activities such as Browse and Write.

Morning next day, several Igalians approached me to talk about the different ways in which Sugar could benefit from their work:

Sergio Villar showed me the work that has gone recently into Tinymail (a library that provides an email backend) clients using different toolkits. They have been refactoring Modest so more code can be shared between the Hildon and Gtk+ based versions, paving the way for more Tinymail-based experiences. Though we haven't heard calls often for an email client in Sugar, this may be due to the fact that we hear most about Sugar deployments that are well connected to Internet, thus being able to use an on-line email service. This makes me think that there may be indeed a need for an email client that allows an async experience, for places with intermittent connectivity such as remote Peru where often not even electricity is available. Sergio has been quick to test his ideas and has blogged about it already.

Alejandro Piñeiro talked to me about his work on the accessibility layers in the GNOME stack. He has been working recently on the accessibility bits in Clutter and Hildon, so already has a very good idea of the work needed in the Sugar shell and toolkit so screen readers such as Orca can do their job. This will play a very important part in Sugar's accessibility story, on which I hope to write soon in more detail here.

Iago Toral has worked in the multimedia infrastructure for Maemo and has recently been involved in Grilo, a framework for media acquisition and reproduction. He envisioned an activity that would provide a rich UI for searching, browsing and reproducing educational media. These UIs already exist in the form of web apps, but an activity could have benefits such as more responsive and focused UIs, automatic caching, using secondary sources depending on connectivity, etc. We still need to understand better how Grilo could grow support for users contributing media to online services.

Mario Sánchez and Juan José Sánchez took some time to discuss how WebKit/GTK+ could be put to use in the Sugar platform (though we already use it in Read for rendering EPUB books). We discussed the feasibility of adapting Epiphany to run as an activity, and also port the Browse activity to use Webkit instead of Mozilla. This can be very important for Sugar, because distros such as Ubuntu are talking about dropping support for embedders of Mozilla, and because WebKit/GTK+'s accessibility is improving very quickly because of Igalia's work.

As you can see, this has been an incredibly productive trip, bringing on the table several opportunities for growing Sugar on top of new GNOME technologies, on which Igalia has an impressive knowledge. I'm also very happy to see the interest that Sugar has raised on our colleagues from Igalia, and I'm very confident on their capability to make excellent contributions to Sugar if they chose to.


Mel said...

Sounds like a wonderful trip - thanks for the write-up!

Do you have any slides or videos (or materials) from the "how to get started with the specifics of contributing code to Sugar" section that you did? (Or would it be worthwhile to film you or someone else giving a similar miniworkshop at some point?)

Tomeu Vizoso said...

> Do you have any slides or videos (or materials) from the "how to get started with the specifics of contributing code to Sugar" section that you did? (Or would it be worthwhile to film you or someone else giving a similar miniworkshop at some point?)

Nothing about the workshop, sorry :/

The audience was already quite versed on GNOME development, so it won't be useful in many other situations.

Maybe a screencast with a good script would be effective?

Diego Pino said...

Here's a link to the talk (divided into four parts).