Did some more hacking on my Python bindings for Cairo. They are now in the new CVS server.

I added a cairo.gtk.set_target_drawable() function that sets a Cairo context to draw on an arbitrary GdkDrawable, taking into account the temporary pixmaps used by GTK for its double buffering and the expanded virtual 32-bit coordinate space (based on some of Carl’s code in grrobots).

I ported a few of the Cairo demos to Python/GTK for testing purposes, and they all seem to be working fairly well. The exception is the knockout demo, which doesn’t seem to be redrawing properly (a bad interaction between Cairo and GTK’s double buffering, I guess).

15 September 2003


Been discussing the bindings on the Cairo mailing list. I’ll probably be merging my bindings with Maarten’s ones.

I also brought up a few changes that would make it easier to write robust language bindings. Since the API is fairly new, the changes will probably go in.


LWN covered the pygtk 2.0.0 release. 2.0.0 is also in RawHide too, so it looks like it should be a usable baseline in the near future.

In CVS, the move on to GTK 2.2 APIs is under way. It is still necessary to test them, and add a few custom overrides, but things are looking fairly good. The wait for 2.2.0 shouldn’t be anywhere near as long as the 2.0.0 dev cycle 🙂

10 September 2003


Started on some Cairo bindings for Python. At the moment, they are fairly immature, but shouldn’t require too much more work before I can test them.

Differing a bit from the C API, I’ve made the cairo_matrix_t type immutable from Python. That is, all the operations that modify a cairo_matrix_t have been wrapped in such a way that they return a new matrix rather than modifying the old one.

I also set things up so that cairo_status() calls are made automatically after operations, and an exception rasied if appropriate.

The next thing to do is to set up some shim code to make the binding usable in conjunction with PyGTK. This will probably just be a bit of code in an extension that lets you create a cairo.Surface from a GdkDrawable or GdkPixbuf (in 24-bit RGB format — since GdkPixbuf uses RGBA and Cairo uses ARGB, it doesn’t look trivial to render into an RGBA pixbuf).

Talked with keithp on IRC a bit about the extension, and some changes to the Cairo API that would make the extension’s life a bit easier. Will follow it up on the list.

Mail Viruses

As predicted by the anti-virus firms, it looks like Sobig.F has stopped propagating (based on the sudden drop in virus bounce messages I have been receiving). About time.

8 September 2003

There was a really weird interview on Lateline last friday. They now have the transcript. Christopher Pyne really reminded me of Dexter Pinion from Backberner.

Looks like the government put up a website for one of the weirdest community service announcement I’ve seen in a while. I wonder if they intended to make it as funny as it seemed?