gtkmm: Closer to a stable release

gtkmm is edging closer to a stable release. I think the freeze announcement did a good job of shaking those last API patches out of people. I spent some time on another lifecycle bug. It turned out to be something simple, and I would have seen that quickly if I had just used valgrind at the start. nullity said some good things about gtkmm, which is nice.

I finished setting up lxr and bonsa at work – we now have a complete system much like the one at cvs.gnome.org. I wrote some extra notes to supplement gleblanc‘s installation instructions.

Running is now becoming ridiculous. The canal is a great discovery. I can’t believe that I lived in London before and had no real idea it was there, cutting quietly through London. Hampstead Heath is far too small for me now – I just get to the top of Parliament Hill and pick a landmark to head for. This time I made it along a meandering route to the river, across to the London Eye and back across to Hyde Park. I have made London small.

I’m more and more sure that I want to go back to Munich – I just need to find some work there. Nevermind a contract, I think I’d take any Unix job there.

gtkmm API freeze

Just lost another weekend to gtkmm. Andreas Holzmann fixed our last API bug, so I thought we were ready for a source-frozen release. But then Michael v. Szombathely found that we were leaking GtkDialogs. It turned out to need quite a hefty recoding of the various bits of code that link the gtkmm and GTK+ object lifecycles. I spent all of Saturday and most of Sunday doing that, and the code is now even better documented than before.

But I now find that one or two of our examples, particularly the menus, segfault on quit, somewhere in memcpy(). I just downloaded Valgrind and it looks like it's going to be very helpful. I'm already impressed.

I'm pleased to see that julian is working on the gnomemm2 port of Gabber. Like everyone he's finding that you have to completely recode for TreeView. But it could be worse – he could be doing it with the C API. I'm glad that I created a generic grid interface for Glom. It's still a lot of work to convert from GtkExtra::Sheet to Gtk::TreeView, but at least it's all in one place.

The past 2 weeks have been hellish at work. I've been fighting with MSMQ and it's apparent inability to either send or receive messages. I've never known any piece of software to so defy prediction. No two tests ever yield the same results. In a sane world I'd be able to quickly see what was wrong by looking at the code. Unfortunately I can't seem to find any open-source message queues that don't have only Java interfaces.

I went to the South Bank's Hayward gallery the other day, to see photography exhibitions by William Eggleston and Ansel Adams. I particularly recommend the first one.

gtkmm: Auto-store editable TreeView cells

I just spent the weekend playing with template code to add easy auto-store editable cells functionality to Gtk::TreeView. I thought it would be simple but I kept hitting template madness and pulling back from the brink. It works now anyway.

I’ve given up on providing one simple is-this-change-ok? callback because there are just too many types in play, what with the CellRenderers not sharing enough common interfaces. But I still think that this could be done in GTK+ itself some day.

Cactus just finished making his sensible orbit-cpp-cactus branch good enough for bonobomm, so we can forget about the dodgy cpp branch. People should expect me to be annoying until this gets into ORBit2 releases.

I can’t find a UK or European online custom T-shirt company. I’d really like to send Cactus one of these.

I need to start looking for the next contract soon, and I’ll be more enthusiastic about that when gtkmm goes stable. At least the current job has convinced me that I should never waste my time on MFC coding ever again, no matter what they pay me. I knew that before but I guess I needed to be reminded.

gtkmm API freeze

I’m continuing to threaten gtkmm API freeze, and it looks like it’ll happen with a mixture of feature punting and attrition. I want to get that project finished so I can focus on more interesting stuff such as Glom, which I now have building again for the first time in months.

At work, to show the Windows folks how useful CVS can be, I’ve been using gleblanc‘s notes to install mozilla’s lxr/bonsai webtools, like the system at cvs.gnome.org. It’s actually not that difficult.

Yesterday I met hadess and his gang for drinks, video games, and chinese food in London. Someone should give him a job. I mean, how bad could he be?

My friend, Kari, visited from Munich, and I took him to Brick Lane for curry. That place is a paradise. He’s happy to have found a job in London, but I’d still rather be back in Germany. And I just said goodbye to a great new friend who’s leaving for … Munich. This is too much.

On the headphones this week while running round Hampstead Heath: The Amelie soundtrack, Learn French In Your Car, and Serge Gainsborough. All very silly.

gtkmm

I seem to spend a great deal of my time now just processing gtkmm patches from bugzilla. At least it’s progress even if I’m not making it all. People are learning how to submit proper patches so maybe I should hand out some more cvs write access soon.

I just wrote a Gtk::TreeView chapter for the gtkmm book. Hopefully it shows how we’ve been able to express all of GtkTreeView’s functionality while making it so much simpler for most of the time.

I set up a linux server at work as a cvs repository for my stuff and the web developers. I haven’t messed around with networking and configuration files for a few years, but it seems to have worked out. It’s certainly a lot more fun than the Windows and Mac coding I’ve been doing. I had forgotten just how random the Win32 and MacOS APIs can be.

I’ve been exploring new London again this week – the Tate Modern, the Millenium bridge, and the Globe theatre – in the wonderful company of another temporary resident. I also went to Manor House climbing wall for the first time in years, and was pleased to find that it’s only little compared to the Munich wall, although it was always daunting in my memory. London could be worse but I’d still like my Muenchen life back.

Mac Carbon

Still doing some Mac Carbon coding. I had completly forgotten that we had to write our own little for() event loops. And operating system API functions with no prefixes? What’s that about? I guess they never expected anyone but Apple to ever write a library. And pascal strings, with the the length in the first byte and no null termination? I thought nostalgia was supposed to feel good.

Hampstead Heath turns out to be a pretty good upgrade from the Englischer Garten, just as it had started to seem too small to run around. Plus, as a halfway reward, you get the view from Parliament Hill over London.

Pocket PC

I’ve been exploring Microsoft’s “Pocket PC” development stuff. It’s a terrible confusion of non-orthoganal, overlapping yet incompatible products, some crufty, some .NET and some just called .NET. While Microsoft doesn’t need to compete with anyone else, there does seem to be some kind of twisted competition between internal Microsoft departments. And don’t get me started about how “Managed C++” is the only C++ in Visual Studio now. Sure, you don’t _have_ to use the language extensions – unless you want to use Microsoft’s APIs, which are increasingly .NET-only.

After being offline for so long, I’ve finally caught up with everthing and we’ve released in-sync versions of gtkmm, gnomemm and libbonobouimm. I’m making noises about an imminent gtkmm API freeze, and it turns out that’s a good way to get a lot more bug reports and patches. We have 8 different coders credited in the latest release. Most importantly, Cedric Gustin finally has gtkmm working on Win32.

Together with Morten Brix Pedersen, I’ve overhauled the gtkmm website. He now has it using CSS Positioning instead of tables. I’d never heard of CSS Positioning before but it seems to work well, and along with SSI there’s now almost no duplication of markup in our various pages.

Life in London isn’t so bad recently. I’ve been exploring a bit. Brick Lane is a nice place to spend a Sunday afternoon.

Playing with MacOS X

I’m playing with MacOS X and I’m not very impressed so far. It doesn’t look like MacOS X was
even properly user tested. I’m sure that System 7 was a
lot more convenient even for complex stuff. I don’t think
it’s much more usable than GNOME. Even
our old file selector is better than the MacOS X one. And
I
keep finding stuff that can only be done with secret
keyboard combinations.

I’m also using the MacOS X Project Builder IDE and
trying to make sense of the chaotic documentation.
Again, it doesn’t look like they ever had a newbie sit
down in front of it.

I found a dodgy short-term place to live in north-
west London. My PC is still in limbo somewhere
between Munich and here, so the gtkmm
patches are just accumulating in bugzilla.

In London now

I’m in London now. For three months I’ll be working at
Blueprint, which is
owned by a friend of mine. Now I just need to find
somewhere to live. Incredibly, it looks like accommodation
has become yet more expensive and hard to find since I was
last here in 1998.

My PC is still en route, and I can’t do anything UNIXy
until it arrives.

Taking the train through France

I’m taking the train through France on my way back to the UK, in Brittany at the moment. I should be in London tomorrow
but my PC will arrive a week later. Leaving Munich was hard,
but I guess I`d better get on with it.

For a moment there it looked like things were about to get
better. I had a speaker-phone interview for a contract but
quickly realised that they expected me to do it in fluent
german and they only cared about crufty MFC Windows coding.
Probably the worst interview I`ve ever done – a definite no
sale. Apparently one
of my references said I spoke german fluently. That was nice
but not actually helpful. Gotta get back on track.

Uraeus published his interview
with me. I didn`t say anything much new, but it was nice to
have the opportunity to give a gtkmm status
update to the wider community.