Older blog entries for murrayc (starting at number 167)

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.

GNOME Betas, GTK+ API Freeze, and GNOME Bindings API Freeze

This is the time when we get stressed:

  • The GTK+ maintainers had to decide to finally freeze their API to avoid delaying the GNOME 2.6 release.
  • The GNOME release-team had to decide whether GNOME was ready for 2.6, based on the bugzilla status, and particularly with the lateness of the GTK+ API freeze.
  • The GNOME Bindings had API freeze, though we weren't sure until the last minute whether GTK+ would do the same. For the Java and Perl bindings this is the first time they've ever done an API freeze. It's the 4th time for gtkmm.

It's always scary to make these decisions, but we shouldn't forget that it's meant to be scary. It's far better to tear your hair out for a week at API-freeze time than to have a constant state of uncertainty for a year. And I think it's actually perfectly normal to have repeated threats and expectations of API freeze - you need to shake the problems out of the tree.

Likewise with the worrying about the stability and quality of final betas - having a schedule makes everyone really think about it, and really fix the big problems.

I'm becoming a release schedule fanatic.

Mark McLoughlin has lots more time for the release-team recently, as part of his new job, I guess. During the past few weeks he has done a really wonderful job of organising us and coordinating with the GTK+ team. It's a very significant contribution to GNOME 2.6.


I try very hard not to express any strong opinions here on divisive stuff such as politics or taste in music. That's dull but keeps everyone feeling included.

But sheesh, the Bush administration must go. A constitutional ammendment to ban homosexuals from getting married? In the fine tradition of amendments that abolished slavery, gave equal rights regardless of race, gave women the right to vote, and reduced the voting age from 21 to 18. The constitution, crufty as it is, makes Americans relatively free and it's outrageous to use it to reduce the harmless freedoms of a part of society. In europe we call this facism.

Bush knows that this amendment will never be passed because it's just meant to please an extreme minority of voters (I wonder, will he dare to support the amendment to deny abortion to women.), but it is unacceptable for a president to even suggest this.

I know that it's bad to invade a country, send people to die, kill innocents, destroy the world's environment, and destroy the american economy, and lie to the public, just so your friends get a few dollars extra for their retirement. But I think this is just the final straw for me.

The rest of the world is praying that Kerry wins the election, but the chances are very slim, what with the routinely corrupt american election process (see Kennedy v. Nixon), and now:

  • Probably-legitimate reweighting of the states' electoral votes so that Bush would have easily won in 2000 without Florida.
  • Widespread sweeping unregulated removal of people from voting lists, so that they can't discover until voting day that they can't vote. It worked in Florida in 2000, so they're doing it all over the place now.
  • Use of known-to-be-flawed electronic voting machines, controlled by politcally-motivated companies.

If Bush gets to rule for another 4 years, the rest of the world is likely to just give up on America and try to keep out of it's way. Unfortunately many people already have. That's a shame for the majority of decent moderate Americans.

Settled, connected

For the past week or so I have been surrendering to humankind's base instincts to gather and assemble IKEA furniture, and to acquire household electrical items.

And I now have DSL. No more frantic hotspotting for minutes at a time.


We have until March 1st to get stuff done for the Bindings API freeze, but that should be OK now I'm connected. Bryan Forbes has taken care of a lot of minor API issues recently, which gives me more time for bigger problems.

Giving me money

Someone just gave me $1 via PayPal for some FileMaker templates that I put on the web 5 years ago. Sounds like the start of a late-90s business plan to me.

My SMTP server (not really under my control), can't send to sourceforge mailing lists:

... while talking to mail.sourceforge.net.:
>>> DATA
<<< 550-Postmaster verification failed while checking <murrayc@murrayc.com>
<<< 550-Called:
<<< 550-Sent:     RCPT TO:<postmaster@murrayc.com>
<<< 550-Response: 550 <postmaster@murrayc.com>: User unknown
<<< 550-Several RFCs state that you are required to have a postmaster
<<< 550-mailbox for each mail domain. This host does not accept mail
<<< 550-from domains whose servers reject the postmaster address.
<<< 550 Sender verify failed550 5.1.1 <libxmlplusplus-general@lists.sourceforge.net>... User unknown
<<< 503 valid RCPT command must precede DATA
This is annoying and obscure to me, and I have 5% battery left. Ooh, I think I just figured it out, and can fix it. Pressing Post anyway.

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