Vala, Clutter and limoncello

During this week-end I finally found some time to start playing with Vala and Clutter. I would like to write a small game using them, but I’m not sure I will finish it because the more the time passes the less I seem able to write code in my free time. Now that I’m spending all the day programming I find it very hard to write code when I come back from the office and I end up spending my time doing other things, like cooking.

Speaking of cooking, in Italy it’s quite common to make your own limoncello or other similar liqueurs so I finally decided to try making a basil-based limoncello-like liqueur. This kind of liqueurs is made using some 95% (190 proof) alcohol to extract the flavour form the lemon/basil/whatever and then the result is diluted with water and sugar. In Italy bottles of grain alcohol are available in most grocery stores[1], but here it seems impossible to find. I suspect that the only way to have access to it in the UK is to work in a lab where alcohol is used[2].

[1] And nobody that I know of tried to just drink it or used it to make other drinks stronger, so I was quite surprised when I discovered that pure alcohol is used in the US (in the states where it’s legal) almost only to make drinks stronger.

[2] Somebody in Cambridge reading this that works in a place where 95% alcohol is used?

Time goes by

It has been a year since I moved to Cambridge from Italy. It feels weird, but things go well here so for now I’m not planning any other change.

Clearly I need to cook a cake for this event :).

WebKit GTK on iRex Digital Readers

When I joined Collabora last year I started to work on porting WebKit GTK to a device produced by iRex technologies based on the GNOME mobile stack and with an electonic paper display. My task was to make WebKit usable for the browser that they want to ship with the next version (with Wi-Fi connectivity) of their device, this meant adding missing features, fixing various bugs and adapting WebKit to work well with this kind of devices.

I'm going to FOSDEM, the Free and Open Source Software Developers' European Meeting

At FOSDEM I willl give a talk on what I did and I will have with me a DR 1000S, so you can play with it (I suspect that most people will follow the talk only because of the nice toy ;))

iRex DR 1000S
An iRex Digital Reader 1000S

SOCKS5 in telepathy-gabble

In the Telepathy framework there is a mechanism, called tubes, for arbitrary data transfer with your IM contacts so you can play games, do collaborative editing, etc. Until now telepathy-gabble (the component that does XMPP) supported only in-band bytestreams, or IBB for short: all the data is sent inside the XMPP stream encoded in base64. The pro of IBB is that you don’t have to worry about NATs or listening on new ports but on the other hand it’s slow and could use too many resources on the server.

In the long term we want to use Jingle also for data transfer and not only for audio/video calls, but in the meantime we needed something better than IBB so Guillaume Desmottes and I started to implement SOCKS5 bytestreams support in telepathy-gabble. With SOCKS5 bytestreams you just send a list of IP addresses, both yours and the ones for possible intermediate proxies, when you want to start a bytestream. The other side tries to connect to the addresses it received and, when it succeeds connecting to one of them, sends the working address back to the initiator. This leads to three possible results: a direct connection, a connection through a proxy (still better than with IBB as you don’t use base64 and the proxy can be a separate machine from the XMPP server) or just fail if no connection is possible.

In XMPP you decide whether to use SOCKS5 or IBB using a negotiation method called stream initiation that allows the choice of a single bytestream method, if it fails you cannot fallback to the slow but safe IBB. Just failing is not acceptable as the applications running fine with just IBB could stop working for somebody, so we decided to extend stream initiation. With our simple extension we can keep compatibility but also be able to try SOCKS5 and, in case of failure, switch to IBB.

With fallback we were able to finally merge the SOCKS5 branch, so now the next two steps are adding support for intermediate proxies (for now we do only direct connections), and add file transfer using the same bytestream mechanisms. Hope to have good news about this soon :)

Back from foss.in

I’m to lazy to write a full blog post on foss.in, so I will just say +1 on what Olivier said.

What I can add is that I met a lot of competent people that are interested in Telepathy and Farsight, but some of them seem scared to communicate more with the developers. That’s just wrong! One of the best things about open source (and one of the reasons why I started to hack on GNOME) is that it’s easy to discuss with the developers. Don’t be afraid: report bugs and take part in discussions both on mailing lists and on IRC!

In other news, it seems that my facebook account was cancelled :'(. My profile disappeared, I cannot login anymore and when I try to reset the password I get an error saying that my email address is not registered. I used the form I found somewhere on the web site to contact the staff but I didn’t get any answer for now.

Maemo & Boston summits

I’ve not yet had time to blog about the Maemo Summit and I’m already going to another summit!
The Maemo Summit was very good and with many more people than I expected so I had a lot of interesting conversations. I think that my talk on Telepathy went pretty well (but you are free to contradict me in the comments and suggest me how to a better talk next time) and finally I put the slides online, but probably they are not so useful without somebody explaining them.

Telepathy slides
Telepathy presentation at the Maemo Summit 2008 (PDF, 611KB)

Tomorrow I will fly to Montreal and from there I will go to the Boston Summit with some other Collaborans, see you there!

Maemo Summit

In a few days I will go to the first Maemo Summit in Berlin where I will give a talk explaining how Telepathy works, how the different components interact and how to use tubes for arbitrary data transfer, useful for instance for playing games with chat contacts or to view a contact’s desktop using VNC. So, if you are in Berlin, don’t miss my talk on Saturday at 15:30! Also, don’t miss Pierre-Luc Beaudoin‘s talk on WebKit at 16:30!

My slides are almost ready (I will post them here after the summit) but I still have some OO.o-related problems, does anybody know how I can transform a linked image to an embedded one in Impress?
I find it’s quite annoying that when you drag an image to a presentation it’s linked and not embedded, is there an option to change the default behaviour?