Friday, March 19, 2010

Sugar with better Telepathy

After three weeks of little coding but much reading, a reward:



This shows the Chat activity talking to Empathy through link-local xmpp. This was already possible, but the difference now is that Chat is a normal telepathy client, and it has been activated by dbus as would be any other telepathy-enable application in GNOME, Meego or whatever.

The current code is very sketchy, but we are starting to get a good sense of the next challenges. If you are interested in knowing why this is important, see my previous post.

Progress can be followed in this page.

Saturday, March 6, 2010

Update on the Python/GNOME hackfest

The hackfest is going to happen from 14th to 18th April in Boston (MA, USA). We haven't agreed yet on a venue, but we are aiming for something near Kendall Square.

We'll be 3 people working on Python 3 support, and 3 more on the introspection bindings. More details at http://live.gnome.org/Hackfests/Python2010.

The GNOME Foundation will be sponsoring the travel, an as-of-yet unnamed sponsor will be providing the venue and the GNOME Foundation board is busy looking for sponsors for hacking food and such.

Wednesday, March 3, 2010

Early childhood hackers

Of course, Sugar hasn't the monopoly in FOSS in primary classrooms, but are there other projects whose contributors include those children? Teacher L.M.Y.Lim is working to make that happen:
...
- I have to narrow my focus on the goals I have for the children. Objectives will include:
The children will generate a list of responsibilities a QA engineer, or “tester” has;
The children will generate a list of what makes a good QA engineer;
The children will write about their experience – not only about what they figured things out, but also how they did it.
The children will provide feedback for future SoaS deployment or pilots.
...


And Mel briefed about their first meeting with the community.

Tuesday, March 2, 2010

My focus during 0.90: Collaboration

From now on to the next Sugar release in about 6 months (0.90), I'm going to be working on improving the collaboration stack in Sugar, graciously sponsored by Collabora. Collabora employees developed almost all of the collaboration code in Sugar, and are the main force behind the Telepathy framework, on which Sugar's collaboration is based. Though pervasive collaboration is one of the major features of Sugar, it hasn't been funded for a long time and there's large room for improvement, also due to the new developments in Telepathy. My work will aim to make presence and collaboration more reliable and to put the pieces in place for enriching the experience with the new features in Telepathy.

Collabora has almost 5 years of experience in open source software so they know very well that for a project to survive, someone needs to take the role of software maintenance, and that's why they are going to be sponsoring me as well 1-2 days per week of maintenance work. Maintenance work includes tasks such as reviewing proposed changes, maintaining the bug database, participating in community discussions, welcoming new contributors, making new releases, etc, and is fundamental in keeping an open source project such as Sugar alive. That's why I would like to put a call for our many users of Sugar to help the other maintainers keep doing their work by supporting them financially. As of today the only Sugar maintainers that are paid anything for doing their job are Sayamindu and me, and this is not sustainable.

The grunt of the work will be dropping custom code that was developed ad-hoc in the early days and making Sugar use instead new developments in Telepathy. Many of the bugs we see today in collaboration are due to the several layers on which collaboration information is cached. By dropping the Presence Service and having activities call Telepathy directly, we'll improve the reliability of presence and collaboration.

There's also code in Telepathy that is exclusively for Sugar and that is redundant now due to new developments in other parts of Telepathy. I will be working as well in making Sugar don't need those specific mechanisms because the Telepathy maintainers will drop those pieces at some point and Sugar cannot be left behind. As well, Sugar depends on the server being configured in an specific way, breaking collaboration with non-Sugar specific servers, there will be work as well to remove this limitation.

By using the same pieces as other environments such as GNOME and MeeGo, Sugar will be closer to the development of those platforms and will be in a better position to take advantage from new features. We'll be reducing as well the effort required to maintain and further develop our collaboration stack, and we'll be sharing with others the burden of keeping our collaboration foundations solid.

Many of the changes will be under the hood and won't be seen nor by users nor by activity developers. Other changes will affect developers because API that they were using won't be there any more, I'm going of course to try to minimize this as much as possible. Other changes will impact the UI, mostly by adding new features, but sometimes will be changes required to make Sugar closer to the other Telepathy clients. I will be starting discussions very soon about all these changes so we can find the best solutions for each.

In summary, Sugar will improve in these ways:

- the collaboration code will be smaller and simpler,

- Sugar users will be able to collaborate through more networks, with more protocols, and with people not using Sugar,

- Sugar will be more compatible with future versions of Telepathy,

- we'll have a simpler path to acquire recent and upcoming features in Telepathy and related frameworks, such as VOIP and video calls.

Friday, February 26, 2010

Make Your Own Sugar Activities!

James Simmons has been working for the last months in a manual about writing activities for the Sugar platform, you can get it from the FLOSS Manuals site along other Sugar and FLOSS documentation.

If you had wanted to contribute to the pool of educational activities for Sugar and found it hard to get all the details right, it should be now much easier for you to help more children around the world to get better learning.

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.

Monday, February 15, 2010

Free love

A fan of free software sent this greeting yesterday to me, addressed to the Sugar community and to other free software projects:
free software foundation suggests people send valentine's greetings to free software developers. i could be wrong, but i think it's a great idea. i don't get many excuses to bother devs with thank yous.

i'm not only a huge fan of sugar. i have sugar to thank for helping introduce me to all of these: linux-libre (via trisquel-con-sugar) trisquel, python, gnewsense. i tried trisquel because it included sugar, i learned python because of pippy. after 25 years of coding in basic, python is probably my favorite language.

i know sugar is developed for kids and that's great. i learned basic as a kid, and i believe very strongly in pippy and i think turtleart is absolutely ingenious.

i know i have (a) team(s) to thank, but in the interest of not making spam filters angry and retributive i'm just sending this valentine to you. maybe you'll share it? thanks everyone.