A Sort of Homecoming

Sci-fi – I’ve ordered on Play.com the DVD box of the first (and last) season of Firefly and I think it really was a great show, where Joss Whedon really tried to follow the path of Isaac Asimov, and show that sci-fi it’s not a genre but a device of storytelling, encapsulating a genre; too bad some clueless executives shot it down. I also bought the 2003 mini and the first season DVD box of Battlestar Galactica, and I just can’t express how amazing it is.

GUADEC – Getting everything ready and packed for going to Vilanova. I prepared the slides for my talk (sunday 25th, 18:00) about (guess what?) recent files; it’s a tutorial, so I’ve also prepeared some bits and pieces of code to show how to add places/bookmarks and recent files support, and to port from EggRecent to GtkRecent. After a year, from Stuttgart to Vilanova, from a GUADEC to another.

Security – Thanks to Tim for the reminder about security and laptops; another sane advice is do not put sensitive data on a laptop in the first place. On my laptop I didn’t create a partition for my data, so I can’t use Tim’s advice unless I resize everything – hence, I’ll leave everything on an encrypted volume at home. :-)

Life – The apartment is almost done – only a couple of items missing: a sofa-bed and a coffee table for the living room; I hope to have everything in place after the wedding. From the 3rd of July to the 13th I’m going back in Italy with Marta, in order to get everything ready before and after the ceremony.

Tap Dancing on a Mine

I’ve just released version 1.031 of the Gnome2::GConf Perl module binding libgconf. In this release, thanks to Laurent Simonneau, I dropped the Gtk2 dependency, making Gnome2::GConf depend only on the Glib Perl module (and the libgconf C library, obviously).

Gnome2::GConf is mostly in maintenance mode these days so, even if this is supposed to be a development release there are no known issues preventing it from working in a stable environment. I don’t plan any more releases in this development cycle (remember that Gnome2::GConf is part of the GNOME Platform Perl bindings and as such it follows the GNOME release schedule) unless upstream API changes.

You can get Gnome2::GConf either from Sourceforge.net or from CPAN (as soon as both update their state).

On a releated note: as the next release of Gtk2 will support GTK+ 2.10, and it’ll have printing support, I plan to discontinue the Gnome2::Print module binding libgnomeprint and libgnomeprintui; obviously, I’ll still maintain this module, but I don’t plan making any new releases unless for (serious) bug fixing.

Here I Dreamt I Was An Architect

Today I finally did find time to work on gnome-utils. I applied a whole slew of patches that sit in my development trunk for almost a couple of months now, and that I tested locally. The first thing that went is is the speller widget for Dictionary; it’s still rough on the list of words it displays (no separation between results from different databases), but it works nicely: when you activate a row in the list it’ll only search on the database the word was found in. The spinner is gone – replaced by a progress bar in the bottom right of the status bar; still, the Dictionary looks like a web browser in my opinion. Maybe a more radical approach in the design of the UI is needed, or maybe I’m definitely on crack and this is how a dictionary application should really look like.

Dictionary 2.15.3

By the way, since 2.15.0 the “rounded window corners without alpha channel” bug has been fixed in the Screenshot application. I don’t remember if I wrote it in the announcements of the last release.

Thanks to Lin Ma, the System Log Viewer should Just Work(tm) on Solaris; also, thanks to Joe Marcus Clarke, many of the crashers on 64bit platforms should have been fixed. Kudos to both of them. The plan was to refactor and update the code-base, but I’m afraid it’ll have to wait.

Between GUADEC and wedding, I hope to find time to hack on System Log Viewer and Screenshot. Anyway, tomorrow I’m going to release gnome-utils 2.15.3, in time for the GNOME 2.15.3 dealine.

How Good It Can Be

Corey, why on earth should we switch from an entire set of system configuration tools written in Perl to another one written in Python? Just for the sake of Python? Just because there are more Python zealots^Whackers on GNOME than there are Perl ones?

I understand that Ubuntu loves Python, but please: rewriting every tool in Python just for the sake of it is totally useless. What Python gives us over Perl, for system configuration backends? (No, it’s not a rethorical question: I’m serious).

Precious

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

All You Want

this week end I decided to work full time on the dictionary; I ended up fixing a bunch of bugs and RFEs, namely

  • no more dialogs in case of word not found
  • a visual indicator of progress inside the main window
  • the re-addition of the “speller” widget
  • themed icons and bugzilla version inside the launcher

the error dialogs have been switched to an inline error message inside the defbox; I’d like to add an icon too, but there’s no direct placement of a pixbuf inside a GtkTextView: if you want pixel-positioning you must use a GtkImage widget.

I’ve added a throbber widget, using the same code nautilus and epiphany use. while I’d like for the “spinner” widget to get into gtk+, I don’t really like the idea of having it on the dictionary UI: it makes the dictionary look like a browser or something, which is not. on the other hand, I don’t know what to use to visually indicate that the dictionary is working and it’s not blocked; if you have an idea (even though code would be better) please let me know.

and, finally, I’ve re-done the infamous speller widget, the list of similar words that comes up when no words have been found. it’s like the old widget, for the time being, but I intend to twist it a little bit more. it remebers its state across sessions (like the whole dictionary does), and I’ll add a knob for disabling it in case you want your own personal grammar nazi on the desktop. <sarcasm>thanks to all the people that bitched about it on bugzilla and never felt the urge to move their collective asses and help instead</sarcasm>. really – if half of the energy some people spend bitching on Bugzilla about missing features could be transformed in electricity we wouldn’t need to make wars for oil anymore.

anyway, here’s the obligatory screenshot:

GdictSpeller

the code needs to be cleaned up a little bit, and some cvs surgery is needed as I changed some of the layout of the files; I expect to land my development trunk on cvs.gnome.org this weekend.

July, July

veronica mars: I’ve watched the season finale last week and it was awesome; the entire second season was awesome, but last episode was a blast. I’ll avoid any spoiler here, but really you should watch the show if you aren’t – with its gritty and cynical view of the world, with good acting and great storylines; I’m really happy CW confirmed it for another season.

foundation: my application for the GNOME foundation membership has been finally approved; I’ve asked for the ‘cool @gnome.org email alias’ and behdad was really kind enough to set it up, so kudos goes to him as well as the Foundation membership committee.

gnome-utils: work and real life took precedence in the last weeks; so I didn’t release gnome-utils in time for GNOME 2.15.2. Development didn’t stop, though, and you can count on a release in time for 2.15.3. Especially the Dictionary users should track the next unstable release, as it will feature the Infamous Missing Speller Widget, plus a bunch of fixes and other features. I’ll make a blog with screenshots about it soon. By the way, check out gnome-utils roadmap on the wiki and see if there are tasks you’d like to mention, or take up.

GUADEC: My proposal for a tutorial about the recent files and bookmarks architecture has been left out of the core days, and moved to the warm up weekend like the other tutorials; so, if the provisional schedule holds, I’ll give my tutorial at 18:00 on Sunday, right before the GNU/FIFA soccer game – I’ll try to keep the tutorial short. :-)

Now listening: The Decemberists, Castaways and cutouts

You got me all wrong

This is actually a mail I sent on gtk-devel-list. Obligatory disclaimer: this is not a proposal for getting gnome-vfs inside GLib, or for making GTK depend on gnome-vfs or for replacing gnome-vfs entirely; please, read on before commenting.

A while ago, on IRC, Christian Persch made the request that the monitoring of the storage file used by the GtkRecentManager could be overridden by libgnome, so that every application using the GnomeProgram API would automagically have notifications of file changes using gnome-vfs, instead of the default implementation which stat()s the file once in a while.

This spawned a more interesting discussion about how to implement a simple file monitoring API inside GLib; my approach and Christian’s were equivalent, and resolved in a new object with a vtable to be overridden per-process. Matthias, instead, suggested using a GSource, and having the file monitor to play nice with the main loop. Thus GFileMonitor was born.

Continue reading “You got me all wrong”

The Mariner’s Revenge Song

From the libegg’s ChangeLog:

2006-05-07  Emmanuele Bassi  

	Finally deprecate EggRecent.  So long, and thanks for all the bugs.

	* libegg/recent-files/THIS_IS_DEPRECATED_USE_GTK_RECENT_CHOOSER:
	* libegg/recent-files/egg-recent-model.h: Deprecate the EggRecent code,
	now that GTK 2.9.0 is out; if you want to compile it, you
	must define EGG_ENABLE_RECENT_FILES before including
	egg-recent-model.h.

This is the first version of the so-called “Ramone Deprecation System”: it means that if you blindly re-sync with libegg HEAD, or if you decide to use the EggRecent code now, a guy called Ramone will be sent directly to your home by the Gtk+ Cabal; he will politely knock at your door and once you’ve opened, he will beat the crap out of you.

Next, the Gtk+ Cabal will implement the “Puppies Deprecation System”. And believe me: you don’t want to know how that works.

Now listening: The Decemberists, Picaresque

Gtk+ 2.9.0 released

Finally, the first development release of GTK+ (codenamed The Magic Project Ridley aka libgnome sucks release by a developer whose name won’t be disclosed in this blog) has been finally sealed by Matthias Clasen yesterday, after battling with make distcheck.

There is so much goodness in this release that I’ll just wait for Kris to make a blog about it, and link the NEWS file and let you see the enormous work that has been done in the past nine months. So, find the contributor nearest to you and hug him (or buy him a beer); to help this hugging (and beer buying) procedure, here’s a list:

Ævar Arnfjörð Bjarmason, Akkana Peck, Alexander Larsson, Alexander Nedotuskov, Alex Graveley, Anders Carlsson, Andrei Yurkevich, Andrew Conkling, Andrew S. Dixon, Arjan van de Ven, Arnaud Charlet, Bastien Nocera, Behdad Esfahbod, Benedikt Meurer, Benjamin Berg, Benjamin Otte, Benoît Carpentier, Bodo-Merle Sandor, Bogdan Nicula, Brad Taylor, Calum Benson, Carlos Garnacho Parro, Carl Worth, Chris Lahey, Chris Lord, Christian Kirbach, Christian Lohmaier, Christian Neumair, Christian Persch, Christian Stimming, Christophe Belle, Claudio Saavedra, Clytie Siddall, Colin Walters, Cory Dodt, Coverity, Crispin Flowerday, Damien Carbery, Damon Chaplin, Daniel Drake, Daniel Kasak, Dan Winship, Dave Andreoli, David Baron, David Trowbridge, Davyd Madeley, Denis Auroux, Dennis Cranston, Diego González, Dom Lachowicz, Donald Straney, Duncan Coutts, Ed Catmur, Elie De Brauwer, Emmanuel Rodriguez, Eric Cazeaux, Evert Verhellen, Francisco Javier F. Serrador, Frederic Croszat, Guilherme de S. Pastore, Guillaume Cottenceau, Gustavo Carneiro, Hamed Malek, Hans Breuer, Havoc Pennington, Hylke van der Schaaf, Ian McDonald, Itai Bar-Haim, Jaap A. Haitsma, James Su, Jean-Yves Lefort, Jens Granseuer, Jeremy Cook, Jody Goldberg, Joe Marcus Clarke, Joe Wreschnig, Johan Dahlin, John Cupitt, John Ehresman, John Finlay, John Palmieri, John Spray, Jonathan Blandford, Jorn Baayen, JP Rosevaar, Jürg Billeter, Kalle Vahlmann, Kathy Fernandez, Kazuki Iwamoto, Kean Johnston, Kjartan Maraas, Kristian Rietveld, Larry Ewing, Leena Gunda, Lillian Angel, Li Yuan, Lorenzo Gil Sanchez, Maciej Katafiasz, Magnus Bergmann, Markku Vire, Mark McLoughlin, Marko Anastasov, Mark Wielaard, Mart Raudsepp, Martyn Russell, Mathias Hasselmann, Matthijs Douze, Maxim Udushlivy, Michael Emmel, Michael Natterer, Milosz Derezynski, Morten Welinder, Murray Cumming, Nickolay V. Shmyrev, Nicolas Setton, Niklas Knutsson, Olexiy Avramchenko, Owen Taylor, Paolo Borelli, Paolo Maggi, Peter Breitenlohner, Peter Harvey, Peter Lund, Peter Zelezny, Philip Langdale, Raphael Slinckx, Ray Strode, Richard Hult, Robert Ögren, Rodney Dawes, Ross Burton, Ryan Lovett, Sadrul Habib Chowdhury, Sebastien Bacher, Søren Sandmann, Stanislav Brabec, Stefan Kost, Stephane Chauveau, Steve Chaplin, Steve Frécinaux, Sven Herzberg, Sven Neumann, Thomas Broyer, Thomas Fitzsimmons, Thomas Klausner, Thomas Leonard, Tim Evans, Tim Janik, Todd Berman, Tommi Komulainen, Torbjörn Andersson, Tor Lillqvist (and his Evil Twin), Torsten Schoenfeld, Tze’ela Hebron, Vincent Untz, Wolfgang Thaller, Wouter Bolsterlee, Yang Hong, Yevgen Muntyan, Yong Wang. And, obviously, our fearless maintainer Matthias Clasen.

Kudos to all of them.