Older blog entries for murrayc (starting at number 168)

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

Hacking

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.

Munich

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.

GNOME 2.6

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.

Bakery

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.

24

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?

gtkmm

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.

Division

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.

gtkmm

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.

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