Stuff that I have been up to

December turned out to be a pretty busy month for me – here are some of the stuff I have been involved in/working on:

  • FOSS.in: As always FOSS.in ‘09 turned out to be an amazing affair. Being someone who works remotely, this event is probably one of the best opportunities for me to have “real” interactions. It’s a place where I can simply sit down, have long face to face conversations, come up with new ideas, be inspired, and most importantly, have fun. My heartfelt thanks goes out to the people behind the event for making this possible. I have some photos in this Flickr photoset.
  • Book reader: This month’s priority has been stabilizing the Sugarlabs/OLPC book-reader code, and a large number of important bugfixes landed during the last few weeks. More in this status report.
  • Arduino: At FOSS.IN, thanks to the efforts of the ever enthusiastic Kushal Das, I managed to get hold of an Arduino clone board (it is terribly difficult to get hold of one in Kolkata). I had heard of Arduino before and wanted to get one, and the session on it at FOSS.in by Russell Nelson finally served as the “kick” which made Kushal and me call up the local distributor and get a couple of boards for ourselves. I have been playing around with sensors support in Sugar for sometime (I helped make the Measure activity work on XO 1.5 hardware), and realized that this would be yet another interesting way to connect Sugar with the “real” world. So after a couple of weekends worth of work, I got Arduino support in Turtle Art.


    Turtle Art with Arduino

  • XO keyboards: There may be a new AZERTY keyboard for the XO laptops very soon. See this wikipage for details.
  • Pootle: The Pootle developers have released version 2.0, which is a vastly improved edition compared to the previous releases. I have been testing it out with plans to upgrade the Sugarlabs/OLPC translation server soon. While testing, I added a quick (and ugly) hack to implement msgfmt –check style syntax checking in Pootle. This would definitely make the process of integrating the translations with the upstream code much less painful – and here’s a screenshot (click on it for a larger version):


    Gettext syntax check in Pootle

16th February, 2009

  • Pootle migration: We are moving the OLPC/Sugarlabs Pootle instance to a newer dedicated server, which should speed it up considerably. This has also given me some opportunity to fine-tune and polish our l10n workflow – things should be a bit more easier and smoother (and faster) for translators. I also managed to gather some interesting data from the log and user registration files. It turns out that we have more than 1000 translators registered with the system, among whom about half have actively contributed translations in the past one year. I’m not sure what the user statistics for other Pootle installations are like, but it seems that we are one of the larger users of Pootle out there.
  • Read hacking: I have been also spending some time hacking on Read. While Mr Super Awesome Tomeu has been pushing our Evince patches upstream, I have been working on a few interesting features for Read (we have moved to Gitorious, which is so cool):
    • Support for books from the Universal Library: Many of the scanned childrens’ book from the Universal Library Project are too graphics heavy for the XO hardware to be handled in PDF form. However, it looks like the project also stores the book as zip files with each scanned page archived inside the zip file as individual jpegs – which in other words, is very similar to the comic book archive format which Evince (Read’s backend) supports quite nicely. More importantly, this format seems to have lesser performance issues on the XO hardware (compared to graphics heavy PDF files). So I have been making sure that Read also handles this format gracefully.
      Book from the Universal Library in Read
    • Bookmarks support:This has been one of the oft requested features for Read, apart from annotations. The original design specs for Read already provided me with ideas on how the UI should look like, so with some amount of coding, I have bookmark support which mostly works :-) . I am also trying to do the implementation in such a way so that it would be easy to add support for sharing of bookmarks later on in the future. If anyone is interested in doing a project, contact me (hint.. hint ;-) )
      Bookmarks in Read

    Code for the above lives in the sayamindu-sandbox branch of Read’s Git repository. I plan to take a stab at annotations during the next few weeks – I have some ideas which, with some luck, may work. I also have some plans about a saner full-screen/ebook mode for Read – let’s see if I get the time to implement those as well.

  • This came up in one of the mailing lists a few days back. Serves as a reminder as to why the work we all do is so relevant and so important.

28th April 2008

  • For this year’s GSOC, I will be mentoring Julen Ruiz Aizpuru, who will be working on Effective user experience for Pootle.
  • I badly needed a break this week, and so three of us from college went for a trip to Mandarmani, a sea side resort around 200 km from Kolkata. It is still somewhat isolated compared to the other sea side resorts nearby, and the last 7 km of our trip consisted of driving over the beach, and getting stuck in the sand, which was fun. However, due to Mandarmani’s isolation, and since we went there in the middle of the week (no weekend tourists), we had almost the entire beach to ourselves for the next two days, and it was an awesome experience. Some pictures


    Driving on the beach
    Driving on the beach

    Red crabs
    Desolate beach, dotted with red crabs

    The beach
    The beach

    Sunset
    Sunset

Projects for Summer of Code 2008

I’m willing to mentor the following projects for Google Summer of Code 2008 for this year:

  • General Improvements (feature additions) to Pootle

    While working with Pootle at OLPC, we have come across a number of feature requests, most (if not all) can be implemented within the GSoC timeframe. I have listed some of the high priority features here. The main requirements for this project is familiarity with Python and some basic ideas about localization. The mentoring organization for this is Translate Toolkit and Pootle.
  • A Translate this Activity activity for Sugar

    Similar to the functionality offered by the “View Source” key in the OLPC XO-1 laptop, an activity should ideally allow the user to translate it. A Translate this Activity activity would allow the user to translate any given activity, and optionally let the user share the translation, so that it can be reused by other users in the mesh.
    The main requirements for this project is familiarity with Python, PyGTK and general idea about a typical gettext based software translation workflow. The mentoring organization for this is One Laptop Per Child.

Free software translations for people who do not know English

Whenever we work on a PO file, we usually translate from English to the translate language. However, recently at OLPC, we had some Aymara translators who did not know English, but were quite comfortable with Spanish. We had been receiving such requests for supporting the display of an intermediate language in our translation system for quite some time now, and it was also a prominent feature request for Pootle, the web based translation software that we use. I was feeling a bit bored with my usual work, and decided to see if I could do something.


The straight forward way of implementing the feature would be to add yet another user preference which would store the list of languages in which the user would want to see the translations, but that seemed to involve significant amount of coding, and I was too lazy to do that. After thinking for sometime, I decided to take a short cut which should help us quite nicely now. Pootle can optionally show it’s interface in a non-English language, and I thought I would take advantage of that. Within around an hour (which included figuring out some of the Pootle code and understanding jToolkit), I had a patch which produced this:
Pootle with an intermediate language
So, if you select your UI language as Spanish, along with the original msgid, you will also get the corresponding Spanish translation when you are translating a message. I think this should do for now – though the “proper way” is probably the right thing to implement at some point.

23rd December, 2007

  • Exams
    End semester exams are over. Only one more semester to go before I graduate. Yay!!

  • Hyderabad
    I’ll spending Christmas in Hyderabad – and will be probably there fpr most of the week as well. I will be online though (hopefully), except when I’m travelling (it looks like I’ll be coming back by train – a 30 hour journey).

  • New Camera
    I finally decided to replace my aging Canon A95, and thought that I would move to a DSLR. Kushal had got a Nikon D80 a few months back, and after playing around with his camera for sometime, I decided to go for the same. I also bought a 50mm prime lense to go with it. ..and I’m having fun with it :-)
     

      


     

  • OLPC Translations
    I must admit that the rapid progress of the OLPC translations has somewhat surprised me. The project is barely over a month old, and we have a very active and enthusiastic community growing up very quickly. I think that the decision to use Pootle has worked out very well for us, inspite of the initial pains, primarily due to

    • Low barrier of entry for translators
      You need not worry about VCS access, or having to understand PO files – you simply create an account, and start to translate the strings.
      This of course, requires that the language coordinator has to be extra careful before pressing the “commit” button, and check that all the translations actually make sense before they go into the master git repository at dev.laptop.org. But in some ways, this is also applicable to translations being done via other methods as well, and Pootle has a system where the language coordinator can actually approve each translated string before it is integrated into the PO file.
    • Support for offline translations
      This is very important, because it is wrong to assume that volunteer translators have good quality internet access all the time. Pootle allows you to download PO files, and upload them (with options for either merging the translations, or overwriting them) when you are done.

    In the end however, all of this boils down to having an active l10n community, and I would really like to thank each and everyone of the translation community for pushing things so far. You all rock :-) .

  • A report on XO deployment at Peru

    Parents in Arahuay are asking Mendoza, the visiting psychologist, what the Internet can do for them.
    Among them is Charito Arrendondo, 39, who sheds brief tears of joy when a reporter asks what the laptop belonging to ruddy-cheeked Miluska — the youngest of her six children — has meant to her. Miluska’s father, it turns out, abandoned the family when she was 1.
    “We never imagined having a computer,” said Arrendondo, a cook.

    The entire article makes for a fascinating read – it is available online here.

OLPC: Call for translators

The Pootle server running at dev.laptop.org is now up and running. If you are interested in helping translate the software going to be bundled with the laptops, please do jump in :-) . More information is available in the mailing list post that I made.
If you have any questions – you can take a look at the FAQ and if you still have questions, feel free to join us on #olpc-pootle on Freenode, or ask on the mailing list.
Helping setup Pootle was an interesting project for us, since this is probably the first time a Pootle deployment is talking to a GIT repository, and adding support for GIT to Pootle (and adapting it for use in our scenario) was a bit of a battle. The results of the initial “beta tests” seem to be pretty satisfactory, and the next few days will hopefully tell us how well the entire system is working.