Category Archives: General


… 7 years later. This is a public service announcement. Please stop writing this: #define G_DESKTOP_APP_INFO(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfo)) #define G_DESKTOP_APP_INFO_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfoClass)) #define G_IS_DESKTOP_APP_INFO(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_DESKTOP_APP_INFO)) #define G_IS_DESKTOP_APP_INFO_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_DESKTOP_APP_INFO)) #define G_DESKTOP_APP_INFO_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_DESKTOP_APP_INFO, GDesktopAppInfoClass)) typedef struct _GDesktopAppInfo GDesktopAppInfo; typedef struct _GDesktopAppInfoClass GDesktopAppInfoClass; struct _GDesktopAppInfoClass { GObjectClass parent_class; }; […]

(allow-none) is dead. long live (nullable)!

This is a public service announcement. Writers of introspected libraries have long been familiar with (allow-none) as an annotation on the arguments of functions. This annotation had a few shortcomings: it had a strange name with an implied direction it was not supported for return values for (out) parameters it does not mean “null may […]

GNOME 3.12 and FreeBSD (and a virtual machine)

As a result of the work that has been going into increasing the portability of GNOME this cycle, I’m happy to announce the availablility (on “day 0″) of a virtual machine image of GNOME 3.12.0 running on FreeBSD. You can download it here if you want to try it out: FreeBSD GNOME 3.12 VM image […]

On portability

After nagging me for several days to write a post on the topic, Matthias stole my thunder and wrote his own. I agree with almost everything he wrote there (and indeed, I wrote both of the documents that he links to as our policies on portability), but I’d like to add a bit more. Some […]

GNOME in Montréal

It’s 2013. The GNOME summit is coming back to Montréal! The summit will be on the usual Canadian Thanksgiving long weekend (Columbus day long weekend for the US): October 12, 13, 14. The summit is being hosted by Savoir-faire Linux. The venue will most likely be their offices in Montréal, but we may move to […]

PSA: g_settings_create_action()

Have radio items or checkboxes in your GMenu? Probably they’re effectively proxies for a key in GSettings somewhere. Check out g_settings_create_action(). I write about this because someone suggested to me the other day that this may be a neat feature. I responded that I had thought about it before but never got around to implementing […]

dear lazyweb: thinkpads and ata passwords

i recently bought an intel 520 series drive which has advertised support for hardware disk encryption based on the ata security feature set. thinkpads have long had support for issuing ata security feature set commands during boot in order to lock and unlock these drives. this means that you end up with transparent full disk […]

TIL: jhbuild update

I’ve often lamented the fact that jhbuild is dumb about the way that it does download, build, download, build, download, build. It totally misses the chance to download ahead of time so that it never has to stop building. I just discovered “jhbuild update”, which will download everything ahead of time. Of course, you can […]

a warning about glib

I just wrote an email to the gtk-devel-list with an update on the potentially-dangerous work that has gone into GLib since the Boston Summit (where we planned quite a lot of changes). One item in particular needs to be mentioned. A few moments ago I just landed a relatively small patch that refuses attempts to […]

“dconf update”

dconf changes landing. watch for falling rocks. I’ve been putting a lot of work into dconf lately. I just reached a landmark today by landing that work on master. There have been over 100 commits touching 108 files with 8109 insertions and 3023 removals. That may seem like a rather large increase in code size, […]