Recent blog entries for zxc555

Jim Cape posted his patch to add a GtkFileChooserButton widget to GTK+; this is what we would use to deprecate GnomeFileEntry. People who use GnomeFileEntry should take a look at the proposed API for GtkFileChooserButton to see if it suits their needs.

Tue 2004/Jul/20

GTK+ news:

Owen landed ellipsizing for Pango on the 1.5 branch. This is where a long text gets shortened by putting dots in the middle ("Some long text" ? "Some...").

Matthias added support for GtkTreeView and GtkComboBox separator rows. We now have gtk_tree_view_set_row_separator_func() and gtk_combo_box_set_row_separator_column(). This will make their way into the file chooser code pretty soon.

Matthias put in an ::editing-started signal for GtkCellRenderer. Also, GtkCellView is now public, so you can use it as a widget into which you can pack cell renderers: this is what gets put inside the menu items of a combo box.

Tracking the ChangeLog in HEAD is more fun than watching porn these days.

Bottle cap tripod. What will they think of next.

TheyWorkForYou has released the source code for their software that helps people make sense of what gets discussed in the British House of Commons. Having something like that in Mexico would be fantastic; most people are completely detached from the political happenings of their deputies and senators.

Mon 2004/Jul/19

There was the skeleton of a dead pigeon on the floor of the unused warehouse where we hold our LUG meetings these days. They love that place; it is open, lonely, shady, and has plenty of crevices for them to nest.

Pond in Tecajetes park:

Fri 2004/Jul/16

To die for: Bach scores as PDFs. Mariano really struck gold this time.

Dan Bricklin wrote a nice article about Software That Lasts 200 Years. There's plenty of interesting stuff there.

Authors of themes for GTK+ may alredy have run into bug #142417; the following only works for GtkMenuItem, not for check menu items, toggle items, etc., which derive from it:

widget_class "*.GtkMenuItem.*" style "style-for-menu-items"

As a result, theme authors have to do ugly things like this:

widget_class "*.GtkMenuItem.*" style "style-for-menu-items" widget_class "*.GtkCheckMenuItem.*" style "style-for-menu-items" widget_class "*.GtkToggleMenuItem.*" style "style-for-menu-items" widget_class "*.GtkSeparatorMenuItem.*" style "style-for-menu-items" widget_class "*.GtkImageMenuItem.*" style "style-for-menu-items" widget_class "*.GtkTearoffMenuItem.*" style "style-for-menu-items"

Even worse, language bindings often create glue classes such as GlueMenuItem: since this is not exactly GtkMenuItem, themes don't work on programs that were written with such a language binding.

As noted in the last comment I posted on in the bug, we can't change this behavior because we are within a stable branch. However, we could extend the theme file syntax to allow things like this:

widget_class "*.<GtkMenuItem>.*" style "style-for-menu-items"

Class names surrounded by angle brackets would indicate that one wants derived classes to get that style as well. It would be lovely if a kind hacker could write a patch for that.

Thu 2004/Jul/15

We had bean soup for dinner last night. For some reason, Oralia seems reluctant to hug me today.

To make things worse, this morning I put salt instead of sugar in my coffee.

The best bookstore in Xalapa is on Hidalgo street, and it is owned by the Universidad Veracruzana. However, they always have country music (rancheras, chunditas) inside the bookstore, making it completely unbearable to browse around for more than 5 minutes.

The other day we discovered that they have a suggestion box. So Oralia wrote a very nice note about how that kind of music is appropriate for a taquería, but not for a bookstore. We dropped the note inside the box and went out. Right outside, just as we were walking past the cashier's window to the street, I saw two employees looking at us, as if confirming that we had indeed left the area. We went nearby to rent some movies (to the amazingly comprehensive Zafra Video), and decided to go back to the bookstore to check if the bookstore's employees had done anything to our suggestion note. We asked them if we could please have our little piece of paper back for a second, because we had forgotten to write something down ? the suggestion box is not locked and doesn't have a slot to slip in papers; it's just a plastic box with no lid.

"Uuuh, someone from the manager's office just came to pick up the suggestions". Yeah, right. On a Saturday, at 6 PM. They had obviously not liked the suggestion and thrown it away. They gave us some very fake-looking contact information for the manager, "who is never around, because he doesn't live in the city..."

Mon 2004/Jul/12

Christian Neumair asked about being able to programmatically get the list of the user's bookmarks from the file chooser. You can't do that right now; you can only get back the list of shortcuts which the application defines for itself (e.g. "/usr/share/MyPaintApp/Clipart"). It would be useful to have access to the list of user bookmarks from the outside. For example, Nautilus could use it to provide easy access to those folders. Also, the user could then create bookmarks for folders from Nautilus and have easy access to them from file choosers everywhere. Also, this could be shared across desktops, so it makes sense to have it as a standard.

I am a total fucking idiot. The other day I blew away a large part of my ~/src directories to free up some space. Today I discovered that my drag-and-drop tutorial was there. I couldn't undelete the file with the Midnight Commander (does it work at all for ext3?). I had not uploaded it to CVS or anything, so it's gone for good. Sigh. There's plenty of stuff to rewrite there.

Thu 2004/Jul/08

During GUADEC, Tino Meinen surprised me by giving me a CD of Bach's Art of Fugue as played by the Amsterdam Loeki Stardust Quartet. They are four recordists, and just as with Horacio Franco, it is just magical to listen to Bach played on a flute. Thanks, Tino!

GTK+ newbies are often confused by toolkit jargon: mapping, realization, events, screens, toplevels, containers, etc. There is an open bug about writing a glossary for the GTK+ documentation. A while ago I started to write one, but never got around to finishing it. Today I found that file on my hard drive and attached it to the bug. If you know about GTK+ and have some free time, please consider spending some time expanding the glossary so that we can include it with the documentation.

GnomeFileEntry doesn't handle filename encodings correctly. This is a nice small bug for newbie hackers; here's the material you need to know if you want to fix it.

Proof that GUADEC presentations could have been more fun. A lot more fun.

Wed 2004/Jul/07

I'm not sure that something similar to the file chooser is the right interface for selecting printers, but I do like the idea of having bookmarks to store commonly-used sets of printer options.

Today Oralia made a fantastic lunch: cabbage soup with habanero peppers, baked chayotes with cheese and cream, and delicious arracheras. The last time I had chayotes prepared that way is when my grandmother used to make them; I was a small kid then.

Tue 2004/Jul/06

During GUADEC everyone got to see Jon Trowbridge's Beagle searching infrastructure. Jon has a hack to add a "Search:" entry to GtkFileChooser and to fill the file list with the results from the search. To have a clean architecture for this, we need a few things:

A way to provide a widget to be embedded in all file choosers; that widget would prompt the user for the search terms. A trivial implementation of such a widget would be a "Search for:" label and a GtkEntry.

A method to populate the file chooser with the file names or URIs that result from the search.

The second item is interesting for things other than searching. Having a way to explicitly set the list of files or URIs that get displayed in the file chooser's list means that we can do a bunch of things. We can display search results. We can display the set of files from EggRecent without extra widgetry. In general, we can display a list of files in which not all of them may live in the same folder.

Sigh. While we were away, a stupid cockroach decided to walk into my office and lodge itself inside our laser printer. Now the printer is jammed, though nothing came out when I took out the toner cartridge. The second-last page it printed came out with bits of very flattened cockroach legs on it.

Mon 2004/Jul/05

Back in Xalapa after GVADEC. We drove back from Mexico City yesterday in the morning, and we stopped right before Río Frío to have breakfast at one of the little roadside restaurants. They had some fantastic tlacoyos con nopales that made us quite happy; that highway can really make one hungry.

The machine that hosts had a slight hiccup while I was away; the stupid little program that updates the DynDNS records had quit as a daemon, and when my IP lease expired afterwards, the daemon didn't notify upstream. This is really frustrating, as about the only way I could have fixed it remotely would be to try to poke port 80 on every machine in the IP address block that my ISP uses for DSL. So I let it be broken for a few days until I came back. The obvious hack would just be to run the daemon in a loop for if it ever decides to quit.

The other day I committed my first patch to F-spot, which you use to organize pictures from your digital camera (or you could also use it to classify porn). There is a bunch of usability issues that need to get fixed; I'll take care of those first, and then I want to finish the special widget to support a timeline view of your pictures. I started using F-spot to organize my photos right before GUADEC, and so far it's working nicely except for a few kinks.

Go backward in time to June 2004.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!