I’ve spent the last five hours triaging the open bugs of recent-files. Some of them were in bugzilla since 2003, and many were marked UNCOFIRMED.

First of all, I scanned the bugs with patches, and created a first batch with the most clean patches I found; then, I triaged the uncofirmed bugs. Then I closed the only report which was not a bug.

On other news: ph34r m3, f0r I h4v3 4 CVS 4cc0unt

(not for writing yet, but I assume I’ll need time for that).

I hope to commit the first batch tomorrow – now I’m completely spent.

Taking My Part

recent-files I’ve began assuming maintainership of all the bugs inside Bugzilla for the recent-files component of libegg. The listed bugs are basically issues against API unfriendlyness towards language bindings; segfaults for being too optimistic against user intervention on the storage file; UI enhancements. Many of these bugs have patches, so it should only be a job of committing those patches after some review.

As for this issue: I’m still waiting to get a CVS account for

recent-chooser: the code is taking shape quite fast. The new API is reaching a stable form. I’m still unconvinced about the need of having the creation of the RecentItem objects exposed: we could simply offer a convenience API for adding items by their URI (plus some other metadata), and let the user get a RecentInfo object when looking up a recently used URI.

desktop-bookmarks: I’m working on a technology demonstrator; a simple bookmarks manager that allows the creation of desktop bookmarks by DnD’ing an URI from an application exporting the text/URI target.

life: Hot. Hot. Hot.

Blue skies from pain

ork: These last two months of working at $WE_TEACH_TO_TEENAGERS will kill me…

I’ve been wiping out disks (which have seen too many months without a format) since last week; Windows9x is Pain and Suffering to maintain. Unfortunately, we still have old ‘chines with only 64 megs of RAM, so installing Windows XP is completely out of question. It’s mind boggling how on earth people did not complain when they were forced to use these Toys ‘R’ Us operating system; and when I say “complain” I mean: getting to Redmond with rusty medieval tools and burn the place from the ground.

hacking: I’ve sent my desktop bookmarks parser/builder object to the gtk-devel-list guys, and I’m still waiting for a CVS account. I hope to put it into libegg, since this object is a dependency on my EggRecent stuff.

This code is similar to GKeyFile: it can load a XBEL data stream with the metadata of the desktop bookmarks specification, and offers access to each bookmark in it by using the item’s URI.

desktop bookmarks spec: I’m still reviewing the spec. I was thinking about the <group> tag: what if we changed it with a <tag>? We could have user-defined tags, which could be more useful for identifying, sorting and filtering metadata.

Back from GUADEC

Yesterday I came back from the GUADEC 2005 in Stuttgart.

It has been freakin’ awesome! The talks, the people, the organization… Simply amazing.

I enjoyed every talk I attended: the Cairo talk by Owen Taylor; the Keith Packard’s talk on improving X; Davyd Madeley’s talk on the future of panel applets; Seth Nickell’s talk on usability.

I found the keynotes by Miguel de Icaza and Mark Shuttleworth very entertaining, and aggressive; I think that the Gnome community as a whole should be much more aggressive, in terms of market acquisition, if we want to achieve the “10×10” (10% of market share within 2010) objective. As for what I’ve seen in these two days, we can make it – with a little help from our competitors, obviously.

I met Federico Mena Quintero, and we talked about implementing a bookmarks/recently used files manager in Gtk – basically, shifting my Gnome Desktop Bookmarks project down into the dependency stack. This should get rid of the recent-files stuff in libegg, and should provide the correct API for others to use (especially Nautilus). At the hackfest I put up a mockup (actually, it’s an almost complete program in Perl using my development trunk of the recent-files Perl bindings) of what should become the GtkFileChooserDialog for recently used items.

Here’s an obligatory snapshot:

Recent Items Viewer

As I sayed, it already works; you might want to download it from here; you need the latest CVS snapshot of the Gtk2::Recent module from the Gtk2-Perl’s CVS.

What I plan to do is to rewrite the entire recently used management (using the desktop bookmark specification for the items storage), create a dialog like the one above and a widget. The recently used objects would be stored by the GtkFileChooser class, so no interaction of the developer should be needed; applications might decide to implement a “Open Recently Used…” menu item which creates the GtkRecentChooserDialog dialog instead of filling a (sub)menu.

Also, an applet/viewer/nautilus extension should be available, in order to always have the recently used items on the desktop.

Stuttgart here we come

Travelling: Tomorrow, after work, I’ll be leaving for Milan where I’ll pick up my girlfriend Marta, and then we’ll be heading Stuttgart for GUADEC 2005. Yay! Since Stuttgart is 500 kilometers (for youn non-metric-system people, roughly 310 miles), we’ll be going with my car – its waaaay more economic than taking a plane or the train, and it gives us a little more flexibility on the timings; I’ll need to get back to work on Tuesday, so we’ll be leaving monday at lunch (and, since we are in route, we will go to see Ulm). Pity that I can’t leave on Wednesday, and attend the whole conference.

It’s my first GUADEC, and I think it’ll be Just Fun® to meet some of the best Gnome hackers from all around the world.

I plan to meet with some fellow italian hackers, and with some other people.

Desktop bookmarks: the work on the specification proceeds, even if not as fast as I thought at first; the spec itself changed quite a lot during the first reviewing iteration: I switched from a XML-like markup to a full XBEL-compliant specification, with custom metadata for our bookmarks. Since this would require a full XML parser, I’ve created a GObject wrapper around libxml2 just for XBEL entities; it has been quite a ride, and I’ve learned a lot in the process. I plan to release this library, since it might be useful for Gnome-based browsers like Epiphany or Galeon (which already do use XBEL for storing their bookmarks). The work on the spec and the parser library also has brought me to make changes to the Gnome library: now it’s more complete, and saner. I plan to release it just after the GUADEC (it will also have Perl bindings, so we will be the first language binding set to have it – so long for the Pythonistas in the Gnome world ;-)).

Work: my job at ${WE_TEACH_TO_TEENAGERS} is almost ended. It has been a strange year: I met some interesting people, and I’ve learned that the system administrator’s job sucks in ways that I did not know (even if I was prepared, having lurked the Scary Devil Monastery many years); nevertheless, it was fun, and I’d do it again – given a more consistent wage and more decisional power. I would also like to try a career in programming – but that has to wait at least the next year.

College: I’ve had little or no time for studying, so I’ll take my exams in September – which sucks, because in Semptember begins my last year, and I’ll have more courses, a stage and my thesis to write. I have an assignment for a C course due in July; I think I’ll take my teacher the tarball of my XBEL parser library, and pretending a 30 cum laude (basically, an A+).

Life: life has been very kind to me, this year. It all began when I met Marta – and I think that it’s not entirely unrelated.