Older blog entries for murrayc (starting at number 170)

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.

Java generics

I am very pleased to see that generics will actually be in Java soon. It has long been my biggest problem with the language. And it's nice that the syntax is similar to C++ templates. I really didn't think they would do it because, by making the language more complicated, it will make Java more difficult for beginners while making it much easier for experienced developers.

Now, can I have const object parameters please?


I have spent excessive amounts of time recently fixing the gtkmm build on the SUN Forte C++ 5.3 and g++ 3.4 (cvs) compilers. Everything is working for SUN Forte for gtkmm 2.2, and g++ 3.4 is now fine for gtkmm 2.2 and 2.4, but we still have problems with libsigc++ 2 (needed for gtkmm 2.4) with the SUN Forte compiler. I've been able to get this far because a potential gtkmm user gave me access to a SUN box.

I felt under pressure about these because there was a risk that we would need to change API to satisfy strange compilers, and total Bindings API freeze is soon. But, actually, no API changes were necessary.

I think libsigc++ 2 might work with the SUN Forte C++ 5.5 compiler, but I don't have direct access to that. Apparently SUN have something that we can use but we need to find somewhere suitable to host it.

Common runtimes

My positions on this are firm and unhelpful:

  • I have absolute confidence in Microsoft's technical incompetence, based on years of experience. So I'm actually not worried about any new Microsoft technology being too successful, or even of it appearing soon.
  • I have absolute confidence that Microsoft will continue to act illegaly to prevent competition and that no US government will stop them. So I'd like to keep far away from them.
  • I like C++ and I'm against any non-standard extensions or subsets. "Managed C++" is not C++. You can't use .NET APIs without using "Managed C++" language extensions.

GNOME keyboard shortcuts

I started a little list of really useful GNOME keyboard shortcuts for GNOME 2.6. Maybe there's one or two more. There's already a full list for accessibility, linked there, but that has a lot of stuff that most users don't need. I remember real MacOS Classic users liking these kinds of things. Maybe we could put something like this in a Help menu.

161 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!