Come and See

Decemberists: Yesterday evening, The Decemberists were in London, and made a wonderful concert at Shepherd Bush. I’ve fallen in love with the band after vieweing the video of their song Sixteen Military Wives and I started getting my hands on their whole discography (right now, only the singles are missing). They played mostly songs from their new album, The Crane Wife, which is really as good as it can get (so go out and buy it now).

gnome-utils: It seems that my plea for someone to work on GFloppy has been useful; right now, Paul Betts and Riccardo Setti are working on a replacement using HAL and libparted, and are also getting the ball rolling for adding formatting support directly in HAL. Guys, you rock!

GTK+: I’ve been working on fixing some bugs of the GtkRecentChooserMenu widget; specifically, bug #377164 and bug #405696. While I was at it, I finally closed the FIXME I left in code, for supporting both appending and prepending custom menu items in the recent files menu, and finally added a test case for the widget, so I can track regressions.

Recent files menu
Obligatory screenshot of the test application

FOSDEM ’07: Like last year, at the end of February I’ll be in Bruxelles, attending FOSDEM.

Shake Your Groove Thing

Still in Italy, for the next 48 hours at least


The wedding went incredibly well: the ceremony itself was so short (twenty minutes) that I don’t remember much of it.


We were married in a beautiful building in Milan, with frescoes made by Tiepolo, by a city hall official.


The lunch was much more fun, even though it proved to be really tiresome: we went to sleep at 18:00 and woke up at 9 the day after.


We were cheered by (many) relatives and (many) friends – surely one of the best days in my entire life, and an awesome way to begin a new life as well.

More photos: here


Saturday, Marta and myself finally went to choose the wedding rings. We asked to get engraved, after our names, the date of the wedding in a format of our choice, and we gave to the puzzled guy a note with this number on it: 1152265200.

Now listening: Depeche Mode, Playing the Angel


Well, it’s been a full week since I moved to London, and everything is coming along quite nicely. The house is really cool, with a big bedroom and an even bigger dining room. It’s still missing some bits of furniture, like a dining table and its chairs, but the Ikea is going to have yet another visit from me and Marta; there’s something reassuring in the way Ikea shops look all the same in every country you are – like a beacon in a sea of strangeness: cars on the wrong way, public transportation and bureocracy that work, upholstery even in the bathroom, etc. Anyway, I think that I’ll just get used to it. Well, to most of it. :-)

Feeling yourself disintegrate

life: In the past 24 hours I’ve had:

  • a bad cold
  • a sore throat
  • some lines of fever
  • water spilled on my laptop’s keyboard
  • thus, a broken Ctrl key that would not disengage itself
  • and, finally, a broken Ctrl key that would not work anymore

The last problem was solved by switching Caps Lock and Ctrl (thanks to the Gnome keyboard capplet; but I’d prefer to be able to use the windows key as a replacement, as it’s nearer to the original key), as my finger memory could not adapt to using the right Ctrl key for stuff like workspace navigation.

doap: like all the cool kids, I’m too working on a way for handling DOAP streams, except that I’m doing it in Perl and not in fancy Python (I’m using the Redland library, though). Unfortunately, there’s no such Perl module for basic handling FOAF and DOAP data – so I’ll need to create them first, then work on a nice authoring interface.

perl: also, I’ve been working on Perl bindings for the Maemo libraries, as one of the goals for the 2.0 version of the platform is having language bindings working. From inside the scratchbox (version comes with perl 5.8.4), I downloaded the GLib and Gtk2 modules from CPAN, and even with some failures, they basically worked out of the box; then I began binding stuff (hildon-lgpl, hildon-libs and hildon-fm for starters, libosso will be next, as it needs the DBus perl bindings), and in less than twenty minutes I had my own nice little hello world application written (sorry, no screenshot at the moment).

Now Listening: Led Zeppelin, Stairway to heaven


moving out: Marta has been in London a couple of times, in these two weeks; she has found a nice house in Crystal Palace, and began to buy furniture and stuff, and preparing it for us to move in. Next week, we’re both going to London and buy the remaining stuff (a sofa-bed, a table for the living room and some chairs to begin with). We should return in Milan for a couple of days on the 4th of May, as we must sign documents and papers for the marriage, and actually choose its date (it’ll be in July, probably).

gtk+ recent: the merge went well; on the gtk-devel list, Murray Cumming pointed out a couple of issues; most notably, the lack of integration with the GtkUIManager. The plan was to add a placeholder tag to the markup used to build the UI, but I really don’t like this approach anymore: it’s inherently messy. As a replacement, I coded up in a couple of hours a new GtkAction subclass: GtkRecentAction; when bound to a menu item tag, it creates a new submenu hooked to a GtkRecentChooserMenu; when bound to a toolbar item tag, it creates a GtkMenuToolButton like the one Gedit uses for the Open toolbar button. Unfortunately, I still can’t see a way to hook up an inlined list of menu items. Well, I suppose I’ll have to file a bug to the HIG and have it changed to use submenus for the list of recently used files. ;-)

gnome-utils: good news everyone: I’ve asked Fabio Marzocca for his permission to include into the gnome-utils package the fine disk usage tool called Baobab that he wrote; he agreed, and work is underway to clean up the code and hook it up to the gnome-utils build, in order to have it ready for the 2.15.1 release. Also, work is underway to add Solaris support to the system log viewer, and I’m fixing up a bunch of open bugs for the dictionary, including the re-addition of the “speller tool” (the list of matching words showed if no definitions were to be found).


This is a comment I left on Philip’s blog in response to Ross’ blog.

question: what are we, third graders that we must do all this touchy-feely, “we must not make comments” stuff?

ross’ comment was a bit on the edge, but its his blog, and he has any rights to write that the player sucks; the other blog post from joe is the more relevant: the entire free software/open source thingie works because we have copyright and because we have peer pressure. the “author” of listen stole code, because it didn’t simply lift it and put it into his project: he also removed the copyright notices. I copy code from many projects (as far as the license enables me to do it safely) but I leave at least a note saying from where I took the code and who’s the author. if a big company did the same thing we would all be jumping and screaming around.

what strikes me the most is that, instead of integrating stuff by talking to the various projects and – at most – forking some code base, the guy just went lifting code, collating stuff like a frankenstein movie, and then releasing the resulting “monster” without even a mention of the other projects. and all these people say: “oh, the media player situation demands it” or: “oh, amarok is such a fine player that we need a poor man’s clone for gnome” – basically insulting every author of the other media players around, insulting an author that want his contribution to the f/oss community recognized as he well should, and justifying the copyright infringement for the sake of having their pretty little clone.

these are energy stoppers. If I was a developer of another media player I would simply cease all my work instantly, out of such blatant ingratitude.

After having read some of the comments on Ross’ blog, and after the querelle about the NLD10 stuff that happened on the desktop-devel-list, I’m wondering if the major problem of the Gnome community is its being made of third graders, where one must not say bad things about someone else’s work because of a “we are all special”-kinda-like agreement that, it seems, you implicitly sign when you get an account.

Come on! If I think that a projects sucks I’ll write that it sucks, ferchrissake! I expect none the less from my peers, and I expect none the less from the many people that is well above my skills. If I wrote a piece of software and someone comes along saying that it sucks because of this and that, then I’ll respond or I’ll say fuck dude, you are right and will change it, or I’ll say yep, but it’s my project and I will go on. Gracefully taking criticism for your work is a valuable indicator that you are not a child anymore.

If you cannot cope with this, then please don’t even begin coding; because peer pressure and peer review are what makes F/OSS such a great endeavour.


Marta got accepted for a MSc at the LSE, and she’d really like to move to Good Ol’ London – with me coming along.

So, in the next months I’ll have to find a gig in the UK: time to update my resumé.


It’s been snowing since yesterday morning, here in Milan. Waking up with 20 cm of snow and watching it grow has some sort of hypnotical beauty, which vanishes as soon as you realize that: two of the major national airports (one of which is the italian major international hub) are shut down; basically, all the roads to and from Milan are closed or soon-to-be (and all major news sources advice not to travel unless strictly necessary); also, one of the major railroads axis – the Milano-Roma – is basically cut off.

Two days worth of snow, and the entire northern Italy is cut off from the rest of the planet; so long for it being the economical centre of the nation.

There And Back Again

Again at home, after a week in Berlin.

The city is wonderful – now I understand why Marta loves it that much: the place is gorgeous, the people is warm and they really make you feel at home. Me and Marta were both a bit sad to leave – but we plan to return there as soon as possible, maybe even in summer, even though with the GUADEC 2006 moved at the end of June we’d already have our summer holidays covered. Time will tell.

We’ve done a ton of photos – but the last day’s worth of them (mostly about and from the dome on top of the Reichstag/Bundestag) were eaten by F-Spot; it was an older version of it, and I did the stupidest thing by deleting them from my card too, but F-Spot shouldn’t lie about having done the import and then really having finished just the thumbnailing.

While in Berlin we’ve met for a couple of hours Torsten Schoenfeld, another gtk2-perl hacker – well, he is the gtk2-perl Release Master and the Test Suite God, other than being more than Just Another Perl Hacker; he is a real pleasure to talk with and a great guy. If you ever come to Italy, you’re up for a beer, or more than one. ;-)

Now that the winter holidays are really over, let’s get back to work.

The gnome-utils release went fine (even though there’s a typo in the NEWS file I’ve submitted – dang!), and a bunch of bugs have been filed in Bugzilla. Keep them flowing, so I can know what doesn’t work. I’m off to add the window-size-saved-across-session feature that was added to the search tool, and to make the icon in the applet become a toggle button, instead of a plain icon.

Another project I’m working on is the build environment for the Glib Perl module and Glib-based Perl extensions; I began looking at Module::Build while in Berlin, but in the end, I came up with another solution – which will be easier to port to Module::Build later on, when that module enters the standard Perl base distribution. Anyway, I’ll talk about this issue later in a (lengthy) post, so stay tuned.

There are a bunch of fixes due for the libegg/recentchooser code, the main one being the sorting functions duplicated from the RecentManager object into the RecentChooser object; in the end, I’d like to remove all the sorting/filtering stuff from the RecentManager, and let all the UI built upon the RecentChooser interface provide their own sorting/filtering stuff. This would make the RecentManager object a thin layer upon the BookmarkFile object, and would really make things easier to be included into the GTK library. In the end, all the sorting a filtering is something that has to do with the display of the data that the RecentManager holds, so they do not belong into the manager itself. Other than this fix, I’ll begin working on a patch for the BookmarkFile object in order for it to land inside Glib, and a patch for the FileSystem object to use it for its bookmarks.