Guadec 2005

All set and done.

After a bit of struggle between PayPal and my credit card, I filled the registration for this year’s GUADEC, that will be held in Stuttgart, Germany.

GUADEC Registration

Stuttgart, here we come…

gtk2-perl lives!

I’ve put up a stub page for the gtk2-perl bindings on the Gnome Live! wiki.

I’ll soon fill it up with pointers to developer resources, programs and tutorial. I’d like that every gtk2-perl developer use it for public coordination and planning, instead of relying on private email and the mailing list.

GConf’s User Interface

Last month I have found some time to hack again on the Gnome2::GConf module, the Perl bindings to GConf. IOI wrapped the GConfEngine low-level stuff, and rewrote the entire error handling layer.

While I was at it, I began thinking of a simple Perl module containing GConf-bound widgets, as a commodity module. The code itself was pretty much trivial, but as soon as I began working on it, I began feeling that a more complex approach was in order. I coded a GInterface in C, in order to implement it in Perl – but that would have required a modified version of GConf, dependent on Gtk.

Therefore, I started working on a complete C library, connecting GConf to Gtk and, with a serious lack of imagination, I called it libgconfui.

The GConf-bound widgets are, for now, a Entry and a Label; but I’ve also implemented something neat: a configuration group, which is an object to which we add a set of configurable widgets. If the state of a widget inside the group changes, the entire group might commit its contents to GConf, or to a GConf changeset. This would mean that creating a preferences dialog, either using the implicit or the explicit apply paradigm, should be easy enough to do. You should just bind a GConf key to a configurable widget, and BLAM!, each changes is handled by libgconfui.

GNOME Keyring Kills Babies

I’ve just downloaded the gnome-keyring-manager application, written for the GNOME Love effort, in order to see its new UI; along the way, I decided to give a look to the gnome-keyring library.

The more I look at gnome-keyring.h, the more I regret had having breakfast this morning.

Using gpointers all over the place, no GObjects, no signals and properties, basically impossible to bind it for the usage with other languages apart from C. It looks like someone took each point I dislike in the current GNOME-VFS implementation in order to build a library.

It’s utter madness, and lack of proper software engineering, that which drives this library; and its authors really did propose it for inclusion in the Developer Platform? For Sauron’ sake, do not include it!

I know it’s meant to be a private library, but please: we should try to enforce a certain coding policy for GNOME libraries, even private ones like this; as it is, gnome-keyring is something I’d like not to touch with a ten-feet pole.

Trash Applet

Skimming through the gnome-devel list, I found the announcement of a simple Trash applet for the GNOME panel, made by Michiel Sikkes (here‘s the site, with a screenshot).

I think it’s a great idea: sometimes the Trash icon is simply buried under screen clutter, especially with the new spatial paradigm that Nautilus uses. The panel, on the other hand, is always on top.

Since Michiel’s code is something short of a proof of concept, I fleshed it out, adding state recognition, and some menu shortcuts which will open a Nautilus window showing the trash contents, or empty the trash bin. It works pretty well, for a two hours hack. ;-)

This actually is the first time I touch some C code, besides a project for a class final exam, in a very long time – I had almost forgot how much fun is hacking just for fun.

Gnome2::Print (and future plans)

Gnome2::Print

It’s been a long way, but in the end the Perl binding for libgnomeprint (and libgnomeprint-ui) has been finally completed. Hurray for me. :-)

I’ve just committed the code that binds Gnome2::Print::Paper and its methods, inside the 0.93 release of the Gnome2::Print module. I began maintaining this module the past august, soon after this email; soon after that, I began the Gnome2::GConf binding, that ended up inside the modules included inside the GNOME Platform Bindings. I’m proud of both, even though I rarely used the Gnome2::Print binding – I’m not really into printing data.

Future

As soon as I return to own my life, after this semester’s finals, I’ll be able to begin working on a GStreamer Perl binding set. I already gave a preliminary look on this library, but didn’t really dig into it. I will also try and complete the GTK2-Perl tutorial, which is still missing a large chunk of chapters.