Two Weeks of Hacking Sapwood

13 08 2010
During the past two weeks I was assigned to work on sapwood a little more than usual. My current goal for sapwood is to drop the GDK based rendering (which will disappear from GTK+ 3.0 once Company's rendering-cleanup branch gets merged). The transition towards a cairo-only core of sapwood will also be required in order to properly integrate with Carlos' work on the new GtkThemingEngine API (which is supposed to land in 3.0 as well).

So I spent the last two weeks developing test cases for sapwood's rendering results. After finishing those, the real refactoring started. Right now, the cairo-transition for SapwoodPixmap is almost finished (the part in the theming engine that does the actual drawing).

I also finally got around to refactor the image cropping code (it was actually doing very similar things four times due to copy'n'paste and the short time available when developing this feature).

A little path bar widget

11 06 2010
So, this week I finally decided to implement a path bar widget for one of my pet projects.

There have been some implementations on the net, e.g. a breadcrumb widget with GTK# in C# (download). However, instead of reworking this, I decided to implement such a widget in C from scratch.

This week I developed a prototype path bar widget (which isn't by any means a complete implementation). However, if you think it's useful, feel free to fork the code, you can also provide patches and I will apply them. However, I already merged this code into the project it was developed for, so my fixed are not likely to end up in the prototype repository.

Take a look at the README file to see what it does and what it doesn't do. And here's the video you are looking for:


A tiny helper for your unit testing…

06 04 2010
I wanted to get a little closer to the "writing tests first" paradigm. But I realized that it was too painful to execute "make check" (or whatever) after my changes, I decided to develop a graphical front end to the GLib/GTK+ unit testing system: Gutachter

Gutachter displays a test failure

Packages for Fedora 12 are available, for other distrubutions you can kindly ask…

A big Thank You! goes to Andreas, who created the icons for that project quite some time ago (and actually for a different project, but here we go).

Happy using, bug reporting, hacking and happy translating

Peer-to-Peer DBus over TCP

03 03 2010
When I was searching the web, I didn't find some proper documentation about this, so I started to develop some bits of code to show how a peer-to-peer connection on TCP can be established between a DBusServer and a DBusConnection. With this connection, I can properly invoke methods from remote objects (and with a little bit of avahi-voodoo, clients can automatically connect to each other).

First Steps with Tracker

11 02 2010
As I‘ve been happily trying out the OpenSuse Build Service, and I wanted to have a presentation about it at the Lanedo apres-conference, I decided to package a recent version of tracker.

I managed to package it within an hour and then decided to need a use-case for these new packages. I picked GNOME Launch Box and after some hacking, I managed to properly replace the application search module by a tracker based module. It was pretty straight-forward to develop that module (after getting a bit into SparQL).

I even ended up doing some more cleanups and finally dropped libgnomeui and libgnomevfs.

I'm really looking forward to replace even more backends with tracker-based ones.

FOSDEM 2010

11 02 2010
Last weekend Lanedo brought its hackers to Brussels, mostly for attending FOSDEM. We‘ve had a delicious joint dinner on Friday evening and attended the conference on Saturday. Just as in the past, the conference has been nice with all the people around and all the good talks.

I mostly spent time in the GNOME presentation room and the hackers room upstairs. Even though I decided for a pet project to be developed during the weekend (some random widget that will be developed later), I ended up doing something completely different (will blog about it later).

On Monday we‘ve had a nice apres-conf with the Lanedians at the hotel. We got a presentation of the first year of Lanedo in the business and a nice presentation about future plans of the company.

After flying back with Tim and Martyn, we realized how warm Brussels actually was. Hamburg was a lot colder, totally snowy, windy and the footways are icy and really dangerous.

In the afternoon I will visit the new Lanedo office for the first time.

Time, Time Zone and the total mess… (continued)

30 10 2009
This blog post is intended to be a reply containing the information that I would have needed abut half a year ago:


  1. as Jürg has correctly pointed out: gmtime() would have helped me a lot (but isn't portable)

  2. as I realized during the last week, replacing mktime() with timegm() would have properly helped, too



Going along with timegm() also yields exactly the results that I expected. This makes things a little easier as all the times in my application are UTC times and will properly get converted into local times when using… It also allows things to become a little easier as I can assume that all times in my application are UTC times.

So right now, I'm trying to get the g_timegm() patch into glib, so there is a portable, threadsafe (as in “does neither modify your environment variables nor use static variables”) implementation people can use in their applications.

ThinkPad X200 Tablet

11 09 2009
Lanedo was so kind to offer a notebook upgrade for me and on Tuesday I happily received a ThinkPad X200 Tablet.

I will spend the following weeks setting up the machine to replace my current X60s by Fedora 12's release date.

Wednesday evening I started to install Fedora 12 Alpha via USB pendrive and managed to get a bootable device. The screen was flickering like hell and, after a large upgrade yesterday, things are usable now.

The next step will be to get the Wacom tablet working. Fedora has a pretty recent Xorg server (Ubuntu is actually lagging behind this one); but the wacom drivers don't seem to work with it yet…

Linuxtag

24 06 2009
Just a moment ago at the GNOME booth…

The Lennart

Time, Time Zone and the total mess...

07 05 2009
So, I realized that in my toy app all times where off by two hours. I thought »Ha, that's easy.« and now I'm officially surrendering.

I created a quite simple testcase, and even that one tries to tell me that these times are the same:

2009-05-07 12:00:00 +0000
2009-05-07 13:00:00 +0200


So, until now I thought "+0200" means »two hours ahead of UTC«. Why is it supposed to be one nowadays?

So now my questions: Is this Ubuntu Hardy, I'm using here, a total mess? Do I do something wrong? Doesn't this work at all? Why does it keep trying to pretend that these times are the same?