Older blog entries for murrayc (starting at number 173)


I'm impressed with libgda so far. It has most of the API I need and the API seems to be sensible and seems to work. I recommend that other projects use it more so that it gets totally rock solid. I have had such bad experiences with other database-access APIs (MySQL, Sybase, the Roguewave tools.h++, Oracle) that I had started to feel they are cursed to be awful. I used to feel the same way about all C coders until I discovered GTK+. I'm happy to be proved wrong again.

Please. Stop.

This is one of my favourite end-of-thread messages ever.

Building consensus is difficult. Even the mildest statement will invite attack, and anyone trying to work with large groups of people has to develop a certain unhealthy stubborness, balanced with constant self-doubt just in case. I can do it, but it's really not fun and I wish I believed in a better way. I suspect that every project maintainer or coordinator feels that way lots of the time.

No matter how ridiculous the opposite view is, it always upsets me to argue. One way to aleviate this might be to publically state some things which I consider beyond question and which I won't bother arguing about any more:

  • Building from source is a bad way to get GNOME for everyday use.
  • glade-generated-code is a stupid way to develop software - use libglade.
  • The earth is round.

list populations

Updating yesterday's entry, I hear that gtk-list has 1901 subscribers, desktop-devel-list has 937, and pygtk has 599.

Version number scarcity

Version numbers are a crappy way to give information about your modules. Anything more than "even-numbers=stable", "major numbers=major changes", and "larger numbers=newer" gets awkward. But it's convenient to keep version numbers more or less in sync, so you can easily see what belongs together.

But that gets awkward fast. GNOME 2.8 will use the same GTK+ 2.4 API that we had in GNOME 2.6. So how can we have unstable testing releases of new API in the GTK+ bindings during GNOME 2.7? At the moment, I don't have any answer other than "be very careful - don't break API even during the unstable releases", which is risky. And I can't tell them not to add API during GNOME 2.8, because they shouldn't have to wait that long before adding API. Mathematicians, can we have some new numbers between 4 and 6. please?

danielk redux

Daniel Elstner is back online again. I think he's doing a little work on regexxer, reverting my gnome-vfs usage for now, which is fair enough.

22 Apr 2004 (updated 22 Apr 2004 at 14:06 UTC) »


I have a theory. Every time I mention the number of gtkmm-list mailing list subscribers, we get 50 more. There are currently 578. I have a fantasy about them all turning up to a GUADEC. I wonder how many are on big lists like gtk-list and desktop-devel-list.

21 Apr 2004 (updated 22 Apr 2004 at 14:12 UTC) »


At the very least, I want to put a company name on my current freelancing work, so I have something to build gradually. I spent some time investigating the various types of German companies, and I think I've reduced it to either an e.K. or a GbR. An e.K. is a bit crappy-looking because it's specifically for one-man companies. I think a GbR must have 2 or more partners, but opinions vary. A GmbH looks even more professional, but you pay more tax, and you need 25,000 euros starting capital - I almost have the cash, but that's what I plan to live on for the next year.

Like thomasvs. says, it's really hard to come up with a company name. It's hard enough to find a company name that is not used, but it's almost impossible to find any word in the dictionary that is not already registered as a domain. And those made up words are so impersonal.

Munich Blogs #2

The guy who runs ToytownMunich emailed me. It's a kind of blog-based news site, though it doesn't have actual personal blogs. There's loads of fascinating local information there, and he seems to put a lot of work in to it. But the comments section is mostly full of unpleasantly small-minded British people.

I think I'll try to set up a Munich blogs aggregator because there isn't a working one at the moment. I'll also try to install my own blogging software instead of using advogato. I generally avoid doing that kind of thing, but I want to use topics/categories and make things a bit prettier.

20 Apr 2004 (updated 20 Apr 2004 at 11:55 UTC) »


I'm porting glom from mysqlcppapi to libgdamm, the C++ wrappers for libgda. This should allow it to support a variety of database backends. Also, I have abandoned mysqlcppapi because MySQL changed their C API license from LGPL to GPL. mysqlcppapi is being maintained by Johnathan Wakely now. At some point I might actually make glom usable.


The sun has started to appear at random intervals, so I feel more motivated to run. I replaced my running shoes because the others were way over the recommended mileage and my body needs some cushioning. Everybody else seems to get great advice about shoes, but the most I've ever got in a shop is "you run a bit funny". I went to a specialist store this time (in team, on Belgradstrasse), but the person serving me was reluctant to offer opinions even when prompted with a selection of running jargon. So now I have some Asics which are supposed to be good for people with flat feet, who are supposed to tend towards overpronation. They hurt my feet, but my knees hurt less, so maybe that's good.

Sometimes I don't understand german/catholic sensibilities. There's a walled cemetary near my apartment so I took a shortcut through when running home. I thought I was being a bit cheeky, but I found it full of joggers and cyclists and there were even sunbathers and picknickers among the gravestones.

New places visited: Sangam indian restaurant on Franz-Joseph-Strase - tasty food and pretty interior. Cafe Ignaz vegetarian restaurant on Georgenstrasse, with fantastic fresh gnocchi. Nespresso coffee house, by the Opera, as freeloading beta customers before their official opening.

So far so good

The 2.6.0 GNOME Platform Bindings release happened a couple of days ago. I think it's a success because 3 bindings projects (C++, Java, and Perl) delivered API/ABI-stable wrappers just 2 weeks after the underlying C APIs, with reason to believe they are high quality.

Binding is inherently feature-based so it's difficult to squeeze it into a time-based schedule. But now that these projects are in sync it will be much easier to keep them that way. Stabilizing APIs is very stressful, because you constantly worry about the forgetting something you can't fix later, and you convince yourself that any single mistake could be catastrophic. For the Java and Perl bindings this was the first time that they had stabilized their APIs so I know that their maintainers felt this stress severely. But they worked hard and worried about all the right things, and they got there. They were even forgiving of the strict oversight to which I subjected them. The perl bindings actually stabilized their API/ABI before the scheduled date, even while their maintainer was becoming the father of twins.

I feel relieved now the 2.6.0 C++ bindings are officially API/ABI-stable. I can stop worrying because I can't even fix ABI problems if they turn up, and I can casually do any API additions in the 2.8.0 cycle. I think I'll reduce my gtkmm hacking to a couple of days a week now, so I don't waste all of this valuable "sabbatical" time. Also, I'll try to stay off IRC most of the time, because that massively saps my productivity.

It looks like GTK+ won't add new API for GNOME 2.8. I'm a bit disappointed because I love all development to be in sync. But I fully understand the need to take the pressure off. As a plus, it gives me a lot less C++ binding work to do during GNOME 2.8, and it will make it even easier for other Bindings projects to catch up. The gnome-python/pygtk team are already making test releases that wrap GTK+ 2.4, so they should manage it easily. And Gtk# are working on GTK+ 2.4 stuff on a cvs branch, so they are very likely to be full players during the GNOME 2.10 cycle. Hopefully some others (Ada?) will sign up too but all the major languages seem to be taken care of.

13 Apr 2004 (updated 13 Apr 2004 at 11:41 UTC) »

Stick a fork in it ...

After more work and more stress than you'd think would be necessary, gtkmm 2.4 has reached 2.4.0 and API/ABI-stability. And we wrap most of the rest of the GNOME Platform and bits of the Desktop.

This time, maintainership has been more of a shared effort. Martin Schulze is responsible for libsigc++ 2.0 and Christophe de Vienne is the libxml++ maintainer. Bowie Owens takes care of orbitcpp and the libbonobo*mm stuff, but that isn't likely to hit API-stability any time soon, and nobody seems to miss it. Bryan Forbes also deserves special mention because he has put a lot of time and effort into the whole project, fixing lots of important stuff that wouldn't have got done otherwise.

The whole GNOME Platform Bindings 2.6.0 release should be out today or tomorrow. We're just waiting for a couple of modules to be released.

Munich blogs

Googling gave me a Munich Blog U-Bahn Map (that's me up by Josephsplatz) and an aggregator site. They live among us.

Non-english languages can create non-english cultural situations. Outside, in the real world, you have to choose the right form for the right person at the right time, and they'll be offended if you use the wrong one. I have at most a 50% chance of not offending someone.

But in every German workplace the people use either Du (informal) or Sie (formal), though some perverse places do still use both depending on hierarchy/status. I don't think it's that the people are either particularly friendly or standoffish, it's just that choosing one form for everyone removes the stress of choosing the form every time. And then, being impolite is re-defined as using the wrong form, even if the wrong form is the polite Sie form.

There's some blog entries about that here. At the end, someone talks about a company where the people address each other as "he". That makes me smile, because I think life should be more like quirky short stories.


So GNOME 2.6 is finally out the door. Quite apart from all the other good reasons for doing time-based releases, if we didn't write release notes every 6 months, we would completely lose track of what we were doing. Every time I'm surprised at how much substantial work has been done, on stuff that users notice when they compare major versions. Development is never fast enough, but it doesn't get much faster than this.


We've been converting Bakery over to the new gtkmm 2.4 API. Bryan has it using UIManager, whose menu merging allows us to remove a lot of code in ways that jamesh probably never foresaw.

I also made it use libegg's recent-files API, which let me delete another big bunch of code. I like how you can pretty much just give the submenu to libegg and forget about it.


I've been intensively watching 24 recently, silly as it is. We're only halfway through season 2 and already everyone is bad. I like that.

A clearly-defined development platform

Edd, so, given that most of what you want exists already, the question is how do we present it in the right way, so that people know about it, and so that it gets even better. A meta-package of some type? That's fairly easy with debian and Fedora I think.

Not only does this stuff exist already, but apart from the IDEs, it's all much better than the Microsoft stuff, and the IDEs are making good progress. In particular, I'm no fan of Microsoft's documentation - it has quantity but very poor quality.

GNOME Platform Bindings 2.7/2.8

Invitations are open for new bindings projects for GNOME 2.7/2.8. Get on the schedule and show you can.

I'm very disappointed that Gtk# won't make it this time either, because they don't want to start targetting GTK+ 2.4 until June, when they will try to stabilize their GTK+ 2.2 API. But then Gtk+ 2.6 will be underway. Being a Beta binding for GNOME 2.6 was meant to help them get in sync for 2.8, but that part of the plan didn't work. Feature+time-based releases are hard, so this is understandable.

I still have hope for gnome-python, particularly as they have recently released their API-stable 2.2 version, to wrap GTK+ 2.2, and they are already looking at GTK+ 2.4.

164 older entries...

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!