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
Statistics of Breath Testing
Yesterday there were some news reports about the opposition party in Victoria issuing a FOI request and finding that the breath testers used to test blood alcohol content routinely under report the readings by up to 20%. They used this fact to show that it was giving negative readings for some people who are a little over the limit. On the face of it this sounds like a problem, but when you look at the statistics the automatic reduction makes sense.
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
New Default Branch Format in Bzr
One of the new features in the soon to be released bzr 0.8 is the new "knit" storage format.
When comparing the size of the repository data for jhbuild with "knit" and "metadir" formats (metadir is just the old storage format with repository, branch and checkout bookkeeping separated), I see the following:
metadir knit Size 9.9MB 5.5MB Number of files 1267 307
The reason for the smaller number of files is that information about all revisions in the repository is now stored together rather than in separate files.
Blog
Repositories in Bzr
One of the new features comming up in the next release of bzr is support for shared repositories. This provides a way to reduce disk space needed to store multiple related branches. To understand how repositories work, it helps to know a bit about how branches are stored by bzr.
There are three concepts that make up a bzr branch:
A checkout or working tree. This is the source files you are working with.
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
po/LINGUAS
One issue that was meantioned as a Gnome Goal was to switch packages to use a po/LINGUAS file.
The idea makes sense — translators only need to edit a simple text file to add a new translation to an application, rather than having to modify the configure.in/configure.ac file without breaking things. Unfortunately, the suggested way of supporting this is a pretty big hack. A better long term solution would be to use the upstream gettext macros and po/Makefile.
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
Firefox Ligature Bug Followup
Thought I'd post a followup on my previous post since it generated a bit of interest. First a quick summary:
It is not an Ubuntu Dapper specific bug. With the appropriate combination of fonts and pango versions, it will exhibit itself on other Pango-enabled Firefox builds (it was verified on the Fedora build too). It is not a DejaVu bug, although it is one of the few fonts to exhibit the problem.
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
pygpgme 0.1 released
Back in January I started working on a new Python wrapper for the GPGME library. I recently put out the first release:
http://cheeseshop.python.org/pypi/pygpgme/0.1
This library allows you to encrypt, decrypt, sign and verify messages in the OpenPGP format, using gpg as the backend. In general, it stays fairly close to the C API with the following changes:
Represent C structures as Python classes where appropriate (e.g. contexts, keys, etc). Operations on those data types are converted to methods.
Blog
London
I've been in London for a bit over a week now at the Launchpad sprint. We've been staying in a hotel near the Excel exhibition centre in Docklands, which has a nice view of the docs and you can see the planes landing at the airport out the windows of the conference rooms.
I met up with James Bromberger (one of the two main organisers of linux.conf.au 2003) on Thursday, which is the first time I've seen him since he left for the UK after the conference.
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
Launchpad featured on ELER
Launchpad got a mention in the latest Everybody Loves Eric Raymond comic. It is full of inaccuracies though — we use XML-RPC rather than SOAP.
Comments: opi - 24 Feb, 2006 Oh, c'mon. It was quite fun. :-)
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
Lamb on Australia Day
There is a new "We Love Our Lamb on Australia Day" commercial by Sam Kekovich. It is definitely worth watching. It probably won't piss off as many people as last year's did though :)
Last year's ad seems to still be available here.
Comments: Martin Sevior - 17 Jan, 2006 Excellent James! Very funny :-)
Cheers
Martin
Richard Kleeman - 19 Jan, 2006 Bloody ripper Jim!
Blog
Bugzilla to Malone Migration
The Bugzilla migration on Friday went quite well, so we've now got all the old Ubuntu bug reports in Launchpad. Before the migration, we were up to bug #6760. Now that the migration is complete, there are more than 28000 bugs in the system. Here are some quick points to help with the transition:
All bugzilla.ubuntu.com accounts were migrated to Launchpad accounts with a few caveats:
If you already had a Launchpad account with your bugzilla email address associated with it, then the existing Launchpad account was used.
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
Ubuntu Bugzilla Migration
The migration is finally going to happen, after much testing of migration code and improvements to Malone.
If all goes well, Ubuntu will be using a single bug tracker again on Friday (as opposed to the current system where bugs in main go in Bugzilla and bugs in universe go in Malone).
Comments: Keshav - 17 Jan, 2006 Hiiii,
I am Keshav and i am 22. I am working as software dev.
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).