Category Archives: General

Maemo Chinook/Sardine C++ bindings

I’ve updated the C++ gtkmm bindings for Maemo for the unstable Chinook/Sardine release, which will one day become the new stable Maemo release. That’s hildonmm (previously hildon-libsmm) and hildon-fmmm.

Some links:

If you are running Maemo Sardine then you can add the extras repository by adding these lines to your /etc/apt/sources.list:

deb http://repository.maemo.org/extras/ sardine free

deb-src http://repository.maemo.org/extras/ sardine free

and then install them like so:

fakeroot apt-get install libhildonmm-dev libhildon-fmmm-dev

Packages are only available for the x86 target for now, but I’ll create ARM packages fairly soon.

Feedback is welcome. Add a comment here, please, because there doesn’t seem to be any bug-tracker for Maemo extras projects.

Maemo Chinook alpha and Sardine extras

A few days ago Nokia released a Maemo 4.0 “Chinook” alpha SDK, as a preview of the next stable Maemo release, which will be released at an unknown time in the future. It’s basically the easy way to get a Maemo Sardine scratchbox target set up.

Sardine is the Maemo version that is always the latest work in progress, but it’s generally been difficult to install because it required an upgrade from the stable version, and tended to break quite often. But now that it’s easier for people to start using Sardine maybe it will become more stable.

It doesn’t have the closed-source applications, so there isn’t much to see. It’s just meant to help people port their applications to the new platform.

Maemo Sardine as of August 2007

But for developers there are big improvements. If you have ported software to Maemo then you should be testing with this new SDK now. We finally have GTK+ 2.10 instead of ancient GTK+ 2.6, and there are no longer eccentric API-breaking changes to GTK+, thanks to a shot of sanity from Maemo developers like Lucas Rocha. Most of the good stuff has been cleaned up and is already upstream in GTK+ itself, I believe. hildon-libs is now hildon-1 and has had much of the irrelevant crap removed, so it’s easier to see what is useful.

We can now also upload “extras” packages for Sardine, so our software can be ready for Maemo Chinook on the day that it’s released. I’ve already uploaded gtkmm and I’m working on the updated C++ bindings for hildon-1, hildon-fm, and friends.

Scratchbox Moving Target

I use Scratchbox a lot to do embedded GNOME and Maemo development work. When it works its wonderful, compared to all the other crappy embedded development environments I’ve had to use. But scratchbox is rather fragile.

There’s a lot of theoretical things to discuss about Scratchbox and alternatives, usually mentioning OpenEmbedded. I don’t bother with that discussion for now- life is complicated enough. But life would be a lot easier if they just got some basic things right – at least that would reduce the set of possible causes of the other problems. This is like a case study in apparently poorly maintained software:

  • Bad names and version numbers: (edited due to my understandably confused wrongness. In fact I should remove this point really.) There’s Scratchbox 0.9.8 and there’s Scratchbox “Apophis” version 1.0.1 … 1.0.8 (though the early ones were not considered stable, I think). There’s a Scratchbox 2 (not obviously unstable, but probably so), at a separate web site.
  • Unstable API/feature-list: Between 1.0.7 and 1.0.8, the devkits changed name (“debian” was removed and “debian-etch”/”debian-sarge”, and “maemo3-debian” and “maemo3-tools” were added). This breaks any instructions and scripts that used the old devkit names.

Please be like GNOME: Don’t use even minor version numbers for unstable releases, and don’t change or add features or API without increasing the minor version number. Sometimes it means more work for you, but it makes life easier for users.

And when each new micro release doesn’t risk destroying something, you can finally get this thing into the regular Debian and Ubuntu repositories, instead of maintaining your own Debian packages and producing various eccentric forks.

They maybe had their reasons for both of these messes, but I doubt it was worth it and, on the evidence, I’m sceptical that they understand the problem.

gtkmm 2.11/12 API freeze

Today is Gnome 2.19/2.20 API freeze day, as per the schedule, and I’ve just released the API-frozen glibmm 2.13.x and gtkmm 2.11.x tarballs. This is always stressful, but Jonathan Jongsma and Marko Anastasov reviewed the new glibmm 2.14 API and new gtkmm 2.12 API, finding some of my inevitable errors in the API and the documentation.

Minor changes can still be made, with permission from the Gnome release-team, but only if you tell us about problems before the final stable releases in September.

VMWare Workstation 6.0

I’m now happily using VMWare Workstation 6.0 to check some build errors in Ubuntu Gutsy without risking an upgrade of my actual system.

I have used VMWare Workstation 5.5 lots, but the need to rebuild the kernel module with vmware-config.pl every few weeks (when the Ubuntu kernel was updated automatically) tended to break my habit, particularly when there are build errors due to changed Linux kernel headers. And I couldn’t get either Ubuntu Feisty or Ubuntu Gutsy to boot in Workstation 5.5 after installing them inside a virtual machine. Maybe that’s something to do with the hack that’s needed to build the vmware kernel module on an up-to-date Ubuntu Feisty. There was no such problem with 6.0, at least for now.

I noticed that Ubuntu has vmware kernel modules available via Synaptic/apt-get, but I couldn’t get them to install without errors, maybe because I already had them installed manually. I don’t know if vmware’s installation script has any way of using or getting them from the Ubuntu repository instead of building them.

Going to GUADEC

This evening I fly to Birmingham, UK for the GUADEC Gnome conference. I’ll arrive around 23:00.

I’ll be there for the core days – Tuesday, Wednesday and Thursday. I’m staying at the Etap hotel, where Johannes Schmid and Daniel Elstner from Openismus also have rooms. Unfortunately, Christian Kellner had to cancel due to an unavoidable exam date. I’ll miss him.

I’ll be giving a talk at 11:30 on Tuesday morning on libgnomedb: Database UI Widgets. This is my first time doing a talk about a project that I don’t maintain. My slides are mostly finished. I wish Vivien Malerba could be there for the more difficult questions.

Openismus T-Shirts for GUADEC

The days are busy right now, but I found time to Inkscape up a design and get just a few Openismus T-Shirts printed in time for GUADEC in Birmingham. The conference is gradually becoming as much a T-Shirt swap meet as a developer conference, so it’s obligatory.

Hopefully it’s simple and eye-catching and a little retro. I got them done at georgefrank along the road, in a furry 70s-style texture print. They weren’t cheap but the quality is great, the colors are warm, and they won’t shrink in the wash.

IMG_2682_001

IMG_2668

IMG_2674I’d really planned to have time by now to gather together my ideas and get a proper designer to do a company image, inspired by the quarter where I live here in Munich, but that must wait. Luckily, I already wanted the visual image to keep changing, because the name itself is distinctive enough. While I expect some consistency of elements at any one time, I don’t expect anything to remain the same from year to year, and I hope people can enjoy the changes. We’re a small company and our customers know us personally, so we can have some fun along the way. An unchallenging anonymous corporate image with the same old shiny fakeness would bring us nothing.

Bugs I CC, and how to be a hero.

Over the years, I’ve accumulated a large list of bugs to which I’ve added myself as CC in bugzilla. I do this when someone mentions something (in a mailing list, blog, or IRC) that looks like it should affect lots of people or will affect one of my own projects when it’s fixed. This helps me to mention them in the Gnome release notes when they are fixed, and to provide useful information when someone mentions the problem again. Your CC list is probably interesting too.

A downside is that I get bugzilla email whenever someone else adds himself as CC. By far the most CCed bug in my list is GTK+ bug #56070 – “Can’t click button after setting it sensitive”. I think I get email for this, or the Ubuntu bug #22930 “Newly-sensitive button ignores clicks until cursor re-enters it” almost every day. I guess that roughly 1 in 1000 people who have a problem try to report a bug, and I guess that 1 in a 1000 people who try to report a bug actually find the original bug report and CC themselves. So fixing this would make several million people happy. Even if it’s only a few thousand people that you make happy, you’d be a hero.

It looks like Matthias Clasen will be that hero. He might like some help testing or reviewing the patch.