Below you will find pages that utilize the taxonomy term “Gnome”
Blog
Converting BigBlueButton recordings to self-contained videos
When the pandemic lock downs started, my local Linux User Group started looking at video conferencing tools we could use to continue presenting talks and other events to members. We ended up adopting BigBlueButton: as well as being Open Source, it's focus on education made it well suited for presenting talks. It has the concept of a presenter role, and built in support for slides (it sends them to viewers as images, rather than another video stream).
Blog
Exploring Github Actions
To help keep myself honest, I wanted to set up automated test runs on a few personal projects I host on Github. At first I gave Travis a try, since a number of projects I contribute to use it, but it felt a bit clunky. When I found Github had a new CI system in beta, I signed up for the beta and was accepted a few weeks later.
While it is still in development, the configuration language feels lean and powerful.
Software
Ubuntu Desktop
When the Ubuntu Phone project was cancelled, I moved to the desktop team. The initial goal for team was to bring up a GNOME 3 based desktop for the Ubuntu 17.10 release that would be familiar to both Ubuntu users coming from the earlier Unity desktop, and users of “vanilla” GNOME 3.
Blog
Seeking in Transcoded Streams with Rygel
When looking at various UPnP media servers, one of the features I wanted was the ability to play back my music collection through my PlayStation 3. The complicating factor is that most of my collection is encoded in Vorbis format, which is not yet supported by the PS3 (at this point, it doesn't seem likely that it ever will).
Both MediaTomb and Rygel could handle this to an extent, transcoding the audio to raw LPCM data to send over the network.
Blog
Watching iView with Rygel
One of the features of Rygel that I found most interesting was the external media server support. It looked like an easy way to publish information on the network without implementing a full UPnP/DLNA media server (i.e. handling the UPnP multicast traffic, transcoding to a format that the remote system can handle, etc).
As a small test, I put together a server that exposes the ABC's iView service to UPnP media renderers.
Blog
More Rygel testing
In my last post, I said I had trouble getting Rygel's tracker backend to function and assumed that it was expecting an older version of the API. It turns out I was incorrect and the problem was due in part to Ubuntu specific changes to the Tracker package and the unusual way Rygel was trying to talk to Tracker.
The Tracker packages in Ubuntu remove the D-Bus service activation file for the "org.
Blog
Ubuntu packages for Rygel
I promised Zeeshan that I'd have a look at his Rygel UPnP Media Server a few months back, and finally got around to doing so. For anyone else who wants to give it a shot, I've put together some Ubuntu packages for Jaunty and Karmic in a PPA here:
https://launchpad.net/~jamesh/+archive/upnp Most of the packages there are just rebuilds or version updates of existing packages, but the Rygel ones were done from scratch.
Blog
Sansa Fuze
On my way back from Canada a few weeks ago, I picked up a SanDisk Sansa Fuze media player. Overall, I like it. It supports Vorbis and FLAC audio out of the box, has a decent amount of on board storage (8GB) and can be expanded with a MicroSDHC card. It does use a proprietary dock connector for data transfer and charging, but that's about all I don't like about it.
Blog
PulseAudio
It seems to be a fashionable to blog about experiences with PulseAudio, I thought I'd join in.
I've actually had some good experiences with PulseAudio, seeing some tangible benefits over the ALSA setup I was using before. I've got a cheapish surround sound speaker set connected to my desktop. While it gives pretty good sound when all the speakers are used together, it sounds like crap if only the front left/right speakers are used.
Blog
Using Twisted Deferred objects with gio
The gio library provides both synchronous and asynchronous interfaces for performing IO. Unfortunately, the two APIs require quite different programming styles, making it difficult to convert code written to the simpler synchronous API to the asynchronous one.
For C programs this is unavoidable, but for Python we should be able to do better. And if you're doing asynchronous event driven code in Python, it makes sense to look at Twisted. In particular, Twisted's Deferred objects can be quite helpful.
Blog
Metrics for success of a DVCS
One thing that has been mentioned in the GNOME DVCS debate was that it is as easy to do "git diff" as it is to do "svn diff" so the learning curve issue is moot. I'd have to disagree here.
Traditional Centralised Version Control
With traditional version control systems (e.g. CVS and Subversion) as used by Free Software projects like GNOME, there are effectively two classes of users that I will refer to as "committers" and "patch contributors":
Blog
DVCS talks at GUADEC
Yesterday, a BoF was scheduled for discussion of distributed version control systems with GNOME. The BoF session did not end up really discussing the issues of what GNOME needs out of a revision control system, and some of the examples Federico used were a bit snarky.
We had a more productive meeting in the session afterwards where we went over some of the concrete goals for the system. The list from the blackboard was:
Blog
Prague
I arrived in Prague yesterday for the Ubuntu Developer Summit. Including time spent in transit in Singapore and London, the flights took about 30 hours.
As I was flying on BA, I got to experience Heathrow Terminal 5. It wasn't quite as bad as some of the horror stories I'd heard. There were definitely aspects that weren't forgiving of mistakes. For example, when taking the train to the "B" section there was a sign saying that if you accidentally got on the train when you shouldn't have it would take 40 minutes to get back to the "A" section.
Blog
Inkscape Migrated to Launchpad
Yesterday I performed the migration of Inkscape's bugs from SourceForge.net to Launchpad. This was a full import of all their historic bug data – about 6900 bugs.
As the import only had access to the SF user names for bug reporters, commenters and assignees, it was not possible to link them up to existing Launchpad users in most cases. This means that duplicate person objects have been created with email addresses like $USERNAME@users.
Blog
Weird GNOME Power Manager error message
Since upgrading to Ubuntu Gutsy I've occasionally been seeing the following notification from GNOME Power Manager:
I'd usually trigger this error by unplugging the AC adapter and then picking suspend from GPM's left click menu.
My first thought on seeing this was "What's a policy timeout, and why is it not valid?" followed by "I don't remember setting a policy timeout". Looking at bug 492132 I found a pointer to the policy_suppression_timeout gconf value, whose description gives a bit more information.
Blog
gnome-vfs-obexftp 0.4
It hasn't been long since the last gnome-vfs-obexftp release, but I thought it'd be good to get these fixes out before undertaking more invasive development. The new version is available from:
http://download.gnome.org/sources/gnome-vfs-obexftp/0.4/
The highlights of this release are:
If the phone does not provide free space values in the OBEX capability object, do not report this as zero free space. This fixes Nautilus file copy behaviour on a number of Sony Ericsson phones.
Blog
Investigating OBEX over USB
I've had a number of requests for USB support in gnome-vfs-obexftp. At first I didn't have much luck talking to my phone via USB. Running the obex_test utility from OpenOBEX gave the following results:
$ obex_test -u Using USB transport, querying available interfaces Interface 0: (null) Interface 1: (null) Interface 2: (null) Use 'obex_test -u interface_number' to run interactive OBEX test client Trying to talk via any of these interface numbers failed.
Blog
TXT records in mDNS
Havoc: for a lot of services advertised via mDNS, the client doesn't have the option of ignoring TXT records if it wants to behave correctly.
For example, the Bonjour Printing Specification puts the underlying print queue name in a TXT record (as multiple printers might be advertised by a single print server). While it says that the server can omit the queue name (in which case the default queue name "auto" is used), a client is not going to be able to do what the user asked without checking for the presence of the record.
Blog
gnome-vfs-obexftp 0.3
I've just released a new version of gnome-vfs-obexftp, which includes the features discussed previously. It can be downloaded from:
http://download.gnome.org/sources/gnome-vfs-obexftp/0.3/
The highlights of the release include:
Sync osso-gwobex and osso-gnome-vfs-extras changes from Maemo Subversion. Instead of asking hcid to set up the RFCOMM device for communication, use an RFCOMM socket directly. This is both faster and doesn't require enabling experimental hcid interfaces. Based on work from Bastien Nocera. Improve free space calculation for Nokia phones with multiple memory types (e.
Blog
Stupid Patent Application
I recently received a bug report about the free space calculation in gnome-vfs-obexftp. At the moment, the code exposes a single free space value for the OBEX connection. However, some phones expose multiple volumes via the virtual file system presented via OBEX.
It turns out my own phone does this, which was useful for testing. The Nokia 6230 can store things on the phone’s memory (named DEV in the OBEX capabilities list), or the Multimedia Card (named MMC).
Blog
FM Radio in Rhythmbox – The Code
Previously, I posted about the FM radio plugin I was working on. I just posted the code to bug 168735. A few notes about the implementation:
The code only supports Video4Linux 2 radio tuners (since that’s the interface my device supports, and the V4L1 compatibility layer doesn’t work for it). It should be possible to port it support both protocols if someone is interested. It does not pass the audio through the GStreamer pipeline.
Blog
FM Radio in Rhythmbox
I've been working on some FM radio support in Rhythmbox in my spare time. Below is screenshot
At the moment, the basic tuning and mute/unmute works fine with my DSB-R100. I don't have any UI for adding/removing stations at the moment though, so it is necessary to edit ~/.gnome2/rhythmbox/rhythmdb.xml to add them.
Comments: Joel - 4 May, 2007 This feature would truly be a welcome addition!
I'm especially pleased it's being developed by a fellow Australian!
Blog
FM Radio Tuners in Feisty
I upgraded to Feisty about a month or so ago, and it has been a nice improvement so far. One regression I noticed though was that my USB FM radio tuner had stopped working (or at least, Gnomeradio could no longer tune it).
It turns out that some time between the kernel release found in Edgy and the one found in Feisty, the dsbr100 driver had been upgraded from the Video4Linux 1 API to Video4Linux 2.
Blog
ZeroConf support for Bazaar
When at conferences and sprints, I often want to see what someone else is working on, or to let other people see what I am working on. Usually we end up pushing up to a shared server and using that as a way to exchange branches. However, this can be quite frustrating when competing for outside bandwidth when at a conference.
It is possible to share the branch from a local web server, but that still means you need to work out the addressing issues.
Blog
gnome-vfs-obexftp 0.1 released
I put out a tarball release of gnome-vfs-obexftp here:
http://download.gnome.org/sources/gnome-vfs-obexftp/0.1/
This includes a number of fixes since the work I did in October:
Fix up some error handling in the dbus code. Mark files under the obex:/// virtual root as being local. This causes Nautilus to process the desktop entries and give us nice icons. Ship a copy of osso-gwobex, built statically into the VFS module. This removes the need to install another shared library only used by one application.
Blog
UTC+9
Daylight saving started yesterday: the first time since 1991/1992 summer for Western Australia. The legislation finally passed the upper house on 21st November (12 days before the transition date). The updated tzdata packages were released on 27th November (6 days before the transition). So far, there hasn't been an updated package released for Ubuntu (see bug 72125).
One thing brought up in the Launchpad bug was that not all applications used the system /usr/share/zoneinfo time zone database.
Blog
Building obex-method
I published a Bazaar branch of the Nautilus obex method here:
http://bazaar.launchpad.net/~jamesh/+junk/gnome-vfs-obexftp
This version works with the hcid daemon included with Ubuntu Edgy, rather than requiring the btcond daemon from Maemo.
Some simple instructions on building it:
Download and build the osso-gwobex library:
svn checkout https://stage.maemo.org/svn/maemo/projects/connectivity/osso-gwobex/trunk osso-gwobex
The debian/ directory should work fine to build a package using debuild.
Download and build the obex module:
bzr branch http://bazaar.launchpad.net/~jamesh/+junk/gnome-vfs-obexftp
There is no debian packaging for this — just an autogen.
Blog
Playing Around With the Bluez D-BUS Interface
In my previous entry about using the Maemo obex-module on the desktop, Johan Hedberg mentioned that bluez-utils 3.7 included equivalent interfaces to the osso-gwconnect daemon used by the method. Since then, the copy of bluez-utils in Edgy has been updated to 3.7, and the necessary interfaces are enabled in hcid by default.
Before trying to modify the VFS code, I thought I'd experiment a bit with the D-BUS interfaces via the D-BUS python bindings.
Blog
OBEX in Nautilus
When I got my new laptop, one of the features it had that my previous one didn't was Bluetooth support. There are a few Bluetooth related utilities for Gnome that let you send and receive SMS messages and a few other things, but a big missing feature is the ability to transfer files to and from the phone easily.
Ideally, I'd be able to browse the phone's file system using Nautilus.
Blog
Gnome-gpg 0.5.0 Released
Over the weekend, I released gnome-gpg 0.5.0. The main features in this release is support for running without gnome-keyring-daemon (of course, you can't save the passphrase in this mode), and to use the same keyring item name for the passphrase as Seahorse. The release can be downloaded here:
http://download.gnome.org/sources/gnome-gpg/0.5/
I also switched over from Arch to Bazaar. The conversion was fairly painless using bzr baz-import-branch, and means that I have both my revisions and Colins revisions in a single tree.
Blog
Vote Counting and Board Expansion
Recently one of the Gnome Foundation directors quit, and there has been a proposal to expand the board by 2 members. In both cases, the proposed new members have been taken from the list of candidates who did not get seats in the last election from highest vote getter down.
While at first this sounds sensible, the voting system we use doesn't provide a way of finding out who would have been selected for the board if a particular candidate was removed from the ballot.
Blog
JHBuild Updates
The progress on JHBuild has continued (although I haven't done much in the last week or so). Frederic Peters of JhAutobuild fame now has a CVS account to maintain the client portion of that project in tree.
Perl Modules (#342638)
One of the other things that Frederic has been working on is support for building Perl modules (which use a Makefile.PL instead of a configure script). His initial patchworked fine for tarballs, but by switching over to the new generic version control code in jhbuild it was possible to support Perl modules maintained in any of the supported version control systems without extra effort.
Blog
JHBuild Improvements
I've been doing most JHBuild development in my bzr branch recently. If you have bzr 0.8rc1 installed, you can grab it here:
bzr branch http://www.gnome.org/~jamesh/bzr/jhbuild/jhbuild.dev
I've been keeping a regular CVS import going at http://www.gnome.org/~jamesh/bzr/jhbuild/jhbuild.cvs using Tailor, so changes people make to module sets in CVS make there way into the bzr branch. I've used a small hack so that merges back into CVS get recorded correctly in the jhbuild.cvs branch:
Blog
intltool and po/LINGUAS
Rodney: my suggestions for intltool were not intended as an attack. I just don't really see much benefit in intltool providing its own po/Makefile.in.in file.
The primary difference between the intltool po/Makefile.in.in and the version provided by gettext or glib is that it calls intltool-update rather than xgettext to update the PO template, so that strings get correctly extracted from files types like desktop entries, Bonobo component registration files, or various other XML files.
Blog
Ekiga
I've been testing out Ekiga recently, and so far the experience has been a bit hit and miss.
Firewall traversal has been unreliable. Some numbers (like the SIPPhone echo test) work great. In some cases, no traffic has gotten through (where both parties were behind Linux firewalls). In other cases, voice gets through in one direction but not the other. Robert Collins has some instructions on setting up siproxd which might solve all this though, so I'll have to try that.
Blog
Annoying Firefox Bug
Ran into an annoying Firefox bug after upgrading to Ubuntu Dapper. It seems to affect rendering of ligatures.
At this point, I am not sure if it is an Ubuntu specific bug. The current conditions I know of to trigger the bug are:
Firefox 1.5 (I am using the 1.5.dfsg+1.5.0.1-1ubuntu10 package). Pango rendering enabled (the default for Ubuntu). The web page must use a font that contains ligatures and use those ligatures.
Blog
Re: Lazy loading
Emmanuel: if you are using a language like Python, you can let the language keep track of your state machine for something like that:
def load_items(treeview, liststore, items): for obj in items: liststore.append((obj.get_foo(), obj.get_bar(), obj.get_baz())) yield True treeview.set_model(liststore) yield False def lazy_load_items(treeview, liststore, items): gobject.idle_add(load_items(treeview, liststore, item).next) Here, load_items() is a generator that will iterate over a sequence like [True, True, ..., True, False]. The next() method is used to get the next value from the iterator.
Blog
Gnome Logo on Slashdot
Recently, Jeff brought up the issue of the use of the old Gnome logo on Slashdot. The reasoning being that since we decided to switch to the new logo as our mark back in 2002, it would be nice if they used that mark to represent stories about us.
Unfortunately this request was shot down by Rob Malda, because the logo is "either ugly or B&W (read:Dull)".
Not to be discouraged, I had a go at revamping the logo to meet Slashdot's high standards.
Blog
Gnome-gpg 0.4.0 Released
I put out a new release of gnome-gpg containing the fixes I mentioned previously.
The internal changes are fairly extensive, but the user interface remains pretty much the same. The main differences are:
If you enter an incorrect passphrase, the password prompt will be displayed again, the same as when gpg is invoked normally. If an incorrect passphrase is stored in the keyring (e.g. if you changed your key's passphrase), the passphrase prompt will be displayed.
Blog
Using Tailor to Convert a Gnome CVS Module
In my previous post, I mentioned using Tailor to import jhbuild into a Bazaar-NG branch. In case anyone else is interested in doing the same, here are the steps I used:
1. Install the tools
First create a working directory to perform the import, and set up tailor. I currently use the nightly snapshots of bzr, which did not work with Tailor, so I also grabbed bzr-0.7:
$ wget http://darcs.arstecnica.it/tailor-0.9.20.tar.gz $ wget http://www.
Blog
Revision Control Migration and History Corruption
As most people probably know, the Gnome project is planning a migration to Subversion. In contrast, I've decided to move development of jhbuild over to bzr. This decision is a bit easier for me than for other Gnome modules because:
No need to coordinate with GDP or GTP, since I maintain the docs and there is no translations. Outside of the moduleset definitions, the large majority of development and commits are done by me.
Blog
gnome-gpg improvement
The gnome-gpg utility makes PGP a bit nicer to use on Gnome with the following features:
Present a Gnome password entry dialog for passphrase entry. Allow the user to store the passphrase in the session or permanent keyring, so it can be provided automatically next time. Unfortunately there are a few usability issues:
The anonymous/authenticated user radio buttons are displayed in the password entry dialog, while they aren't needed. The passphrase is prompted for even if gpg does not require it to complete the operation.
Blog
Drive Mount Applet (again)
Thomas: that behaviour looks like a bug. Are all of those volumes mountable by the user? The drive mount applet is only meant to show icons for the mount points the user can mount.
Note also that the applet is using the exact same information for the list of drives as Nautilus is. If the applet is confusing, then wouldn't Nautilus's "Computer" window also be confusing?
To help debug things, I wrote a little program to dump all the data provided by GnomeVFSVolumeMonitor:
Blog
Preferences for the Drive Mount Applet
In my previous article, I outlined the thought process behind the redesign of the drive mount applet. Although it ended up without any preferences, I don't necessarily think that it doesn't need any preferences.
A number of people commented on the last entry requesting a particular preference: the ability to hide certain drives in the drive list. Some of the options include:
Let the user select which individual drives to display Let the user select which classes of drive to display (floppy, cdrom, camera, music player, etc).
Blog
Features vs. Preferences
As most people know, there has been some flamewars accusing Gnome developers of removing options for the benefit of "idiot users". I've definitely been responsible for removing preferences from some parts of the desktop in the past. Probably the most dramatic is the drive mount applet, which started off with a preferences dialog with the following options:
Mount point: which mount point should the icon watch the state of? Update interval: at what frequency should the mount point be polled to check its status?
Blog
Re: Pixmap Memory Usage
Glynn: I suspect that the Pixmap memory usage has something to do with image rendering rather than applets in particular doing something stupid. Notice that most other GTK programs seem to be using similar amounts of pixmap memory.
To help test this hypothesis, I used the following Python program:
import gobject, gtk win = gtk.Window() win.set_title('Test') win.connect('destroy', lambda w: gtk.main_quit()) def add_image(): img = gtk.image_new_from_stock(gtk.STOCK_CLOSE, gtk.ICON_SIZE_BUTTON) win.add(img) img.show() gobject.timeout_add(30000, add_image) win.
Blog
Switch users from XScreenSaver
Joao: you can configure XScreenSaver to show a "Switch User" button in it's password dialog (which calls gdmflexiserver when run). This lets you start a new X session after the screen has locked. This feature is turned on in Ubuntu if you want to try it out.
Of course, this is not a full solution, since it doesn't help you switch to an existing session (you'd need to guess the correct Ctrl+Alt+Fn combo).
Blog
DSB-R100 USB Radio Tuner
Picked up a DSB-R100 USB Radio tuner off EBay recently. I did this partly because I have better speakers on my computer than on the radio in that room, and partly because I wanted to play around with timed recordings.
Setting it up was trivial -- the dsbr100 driver got loaded automatically, and a program to tune the radio (gnomeradio) was available in the Ubuntu universe repository. I did need to change the radio device from /dev/radio to /dev/radio0 though.
Blog
Playing with Google Maps API
I finally got round to playing with the Google Maps API, and the results can be seen here. I took data from the GnomeWorldWide wiki page and merged in some information from the Planet Gnome FOAF file (which now includes the nicknames and hackergotchis).
The code is available here (a BZR branch, but you can easily download the latest versions of the files directly). The code works roughly as follows:
Blog
HTTP resource watcher
I've got most of the features of my HTTP resource watching code I was working on for GWeather done. The main benefits over the existing gnome-vfs based code are:
Simpler API. Just connect to the updated signal on the resource object, and you get notified when the resource changes. Supports gzip and deflate content encodings, to reduce bandwidth usage. Keeps track of Last-Modified date and Etag value for the resource so that it can do conditional GETs of the resource for simple client side caching.
Blog
Bryan's Bazaar Tutorial
Bryan: there are a number of steps you can skip in your little tutorial:
You don't need to set my-default-archive. If you often work with multiple archives, you can treat working copies for all archives pretty much the same. If you are currently inside a working copy, any branch names you use will be relative to your current one, so you can still use short branch names in almost all cases (this is similar to the reason I don't set $CVSROOT when working with CVS).
Blog
HTTP code in GWeather
One of the things that pisses me off about gweather is that it occasionally hangs and stops updating. It is a bit easier to tell when this has occurred these days, since it is quite obvious something's wrong if gweather thinks it is night time when it clearly isn't.
The current code uses gnome-vfs, which isn't the best choice for this sort of thing. The code is the usual mess you get when turning an algoithm inside out to work through callbacks in C:
Blog
pkg-config patches
I uploaded a few patches to the pkg-config bugzilla recently, which will hopefully make their way into the next release.
The first is related to bug 3097, which has to do with the broken dependent library elimination code added to 0.17.
The patch adds a Requires.private field to .pc files that contains a list of required packages like Requires currently does, which has the following properties:
When verifying that a particular package name is available with "pkg-config --exists", dependencies in both Requires and Requires.
Blog
Clipboard Handling
Phillip: your idea about direct client to client clipboard transfers is doable with the current X11 clipboard model:
Clipboard owner advertises that it can convert selection to some special target type such as "client-to-client-transfer" or similar. If the pasting client supports client to client transfer, it can check the list of supported targets for the "client-to-client-transfer" target type and request conversion to that target. The clipboard owner returns a string containing details of how to request the data (e.
Blog
Anonymous voting
I put up a proposal for implementing anonymous voting for the foundation elections on the wiki. This is based in part on David's earlier proposal, but simplifies some things based on the discussion on the list and fleshes out the implementation a bit more.
It doesn't really add to the security of the elections process (doing so would require a stronger form of authentication than "can read a particular email account"), but does anonymise the election results and lets us do things like tell the voter that their completed ballot was malformed on submission.
Blog
Clipboard Manager
Phillip: the majority of applications have no cut and paste code in them — they rely on the cut and paste behaviour of the standard widgets. Since the standard widgets like GtkEntry in GTK 2.6 mark their selections as being savable (in fact, any code that calls gtk_clipboard_set_text() will have its selection marked as savable). Most of the remaining cases are ones where you'd want to be selective in what gets saved (e.
Blog
<tt>bgchannel://</tt> Considered Harmful?
Recently Bryan posted about background channels -- a system for automatic updating desktop wallpaper. One of the features of the design is a new URI scheme based on the same ideas as webcal://, which I think is a bad idea (as dobey has also pointed out).
The usual reasoning for creating a URI scheme like this go something like this:
You want to be able to perform some action when a link in a web page is clicked.
Blog
8 March 2005
South Africa
I put up my photos from the trip to Cape Town online. Towards the end there are some photos I took while hiking up Table Mountain.
Building Gnome
It looks like with the Gnome 2.10 release, some packages fail to build from CVS if you are using a version of libtool older than 1.5.12. This is due to the way libtool verifies the version strings — in versions prior to 1.
Blog
6 January 2005
Travels
I've put some of the photos from my trip to Mataró, and the short stop over in Japan on the way back. The Mataró set includes a fair number taken around La Sagrida Familia, and the Japan set is mostly of things around the Naritasan temple (I didn't have enough time to get into Tokyo).
Multi-head
A few months back, I got a second monitor for my computer and configured it in a Xinerama-style setup (I'm actually using the MergedFB feature of the radeon driver, but it looks like Xinerama to X clients).
Blog
8 December 2004
Mataró
I've been in Mataró (about an hour from Barcelona) now since Sunday, and it's quite a nice place. It is a bit cooler than Perth due to it being the middle of Winter here, but the way most of the locals are rugged up you'd think it was a lot colder. It's great to catch up with everyone, and a number of pygtk developers will be turning up over the next few days for the BOF on the weekend.
Blog
Nautilus Extensions
One of the changes in the Gnome 2.9 development series is the removal of most of the Bonobo code from Nautilus, which results in a speed boost due to lower complexity and less IPC overhead. This had the effect of breaking existing bonobo based context menus, property pages and views. The first two can be converted to the Nautilus extension interface, but the second has no equivalent in the new code (partly because Nautilus is concentrating on being a file manager these days rather than a universal component shell like it was in the early days).
Blog
25 October 2004
Drive Mount Applet
The new drive mount applet is now checked into the HEAD branch of gnome-applets, so will be in Gnome 2.10. There are a few things left to do, such as making it possible to open the file manager as well as unmounting/ejecting it. I did up a screenshot showing what it looks like as an applet.
Libtool
Finally managed to reproduce a particular libtool bug that people have reported on and off.
Blog
20 October 2004
Even More Icon Theme Stuff
To make it a bit easier to correctly display themed icons, I added support to GtkImage, so that it is as easy as calling gtk_image_new_from_icon_name() or gtk_image_set_from_icon_name(). The patch is attached to bug #155688.
This code takes care of theme changes so the application developer doesn't need to. Once this is in, it should be trivial to add themed icon support to various other widgets that use GtkImage (such as GtkAbout and GtkToolItem).
Blog
Drive Mount Applet
I started to look at bringing the drive mount applet from gnome-applts up to scratch, since it hasn't really had much work done on it other than porting to the 2.x development platform.
The applet is a classic example of Gnome 1.x user interface complexity. The applet shows a button that can be clicked to mount or unmount a particular mount point. For this simple functionality, it provides the following preferences:
Blog
11 October 2004
Federal Election
Looks like we are going to have at least another three years with The Rodent. It also looks like they will have a majority in the senate, which will reduce the senate's effectiveness as a house of review.
We might not have John Howard for the entire term though, since he is of retirement age. NineMSN seems to think that Peter Costello is already the leader.
It also looks like The Democrats senators up for reelection got completely wiped out, with much of their support going to The Greens.
Blog
4 October 2004
Icon Theme APIs (continued)
Of course, after recommending that people use gtk_icon_theme_load_icon() to perform the icon load and scale the icon for you, Ross manages to find a bug in that function.
If the icon is not found in the icon theme, but instead in the legacy $prefix/share/pixmaps directory, then gtk_icon_theme_load_icon() will not scale the image down (it will scale them up if necessary though).
jhbuild
Jhbuild now includes a notification icon when running in the default terminal mode.
Blog
29 September 2004
Ubuntu
Ubuntu seems to have taken off very quickly since the preview release came out a few weeks ago. In general, people seem to like the small tweaks we've made to the default Gnome install. Of course, after the preview came out people found bugs in some of my Gnome patches ...
One of the things we added was the trash applet on the panel. I made a fair number of fixes that make the applet fit in with the desktop a bit better and handle error conditions a bit better.
Blog
Applets vs. Notification Icons
It seems that a lot of people get confused by what things on the panel should be applets and what should be notification icons. Originally, the main difference between the two was this:
The lifecycle of an applet is managed by the panel, which in turn is tied to the lifecycle of the session. So applets generally live for the length of the session (unless they are added/removed part way through a session).
Blog
Notification Icons
I decided to go ahead and write the code to allow Zenity to listen for commands on stdin. It was pretty easy to add, and Glynn accepted the patch so it is in the latest CVS version. The main difference between the implementation and what I described earlier is that you need to pass the --listen argument to Zenity to activate this mode (without it, it acts as a one-shot notification icon where it exits when the icon is clicked on).
Blog
14 September 2004
Foundation Elections (continued)
bolsh: as I said, many real elections make modifications to an idealised STV system to simplify vote counting. The counting for the .au senate elections sounds like it takes a random sample of votes when transfering preferences too.
Also, in my description a candidate needed to get more votes than the quota and the quota could be fractional. In contrast, the Australian senate elections say candidates must reach the Droop Quota, which is the smallest integer greater than the quota formula I used.
Blog
13 September 2004
Foundation Elections
There has been talk on the foundation list about changing the vote counting procedure to something more fair. The method being proposed is Single Transferable Vote, which is the same system used within a single electorate for the senate vote in the Australian Federal Election. As with the Australian elections, some people have some trouble understanding exactly how it works, so here is a description.
Each voter orders every candidate on their ballot in order of preference.
Blog
20 May 2004
Mail Viruses
The barrage of mail viruses and their side effects is getting quite annoying. In the past week, I've had a gnome.org mailing list subscriptions disabled twice. After looking at the mailing list archive, it was pretty obvious why.
The mail server that serves my account is set up to reject windows executables a few other viruses at SMTP delivery time (so it isn't responsible for generating bounces). Unfortunately, a number of viruses got through to the mailing lists and were subsequently rejected before reaching my account.
Blog
28 April 2003
Red Hat 9
Installed it on a few boxes, and I like what I see so far. The Bluecurve mouse cursors look really nice. It is also good to see some more of my packages included in the distro (fontilus and pyorbit).
Spam
Some spammer has been sending mail with random @daa.com.au addresses in the From: field. So far, I have received lots of double bounces, a few messages asking if we know about the spam, and many automated responses (some saying the message came from a blocked domain!
Blog
17 June 2002
Work
Last week, one of the servers died because one of the sticks of memory died. After pulling it out, the system booted fine. It would have been a lot easier to test if I didn't have to open it up to plug a floppy drive in. I now have Memtest86 in the GRUB boot menu. Was pretty easy to set up:
cp memtest.bin /boot grubby --add-kernel="/boot/memtest.bin" --title="Memtest86" This is the second stick of DDR memory we have had that died; probably due to overheating.
Blog
12 May 2002
linux.conf.au 2003
The Call for Papers is out:
http://conf.linux.org.au/pipermail/lca-helpers/2002-May/000109.html
There is also an HTML version on the website, but it doesn't quite match the final version of the CFP (yet).
Beer
Bottled the honey ale today. It will be interesting to see how it tastes in a few weeks. The sweetness was gone, but I could definitely taste the honey still. It should be very nice.
GNOME 2.0
Put out yet another beta of libglade for the GNOME 2.