Older blog entries for Spooky (starting at number 73)

20 May 2004 (updated 20 May 2004 at 03:27 UTC) »
GNOME with 64-bits

I've found the gconf problem (and filed the patch in bugzilla). It was one of those classic 64-bit vs. 32-bit problems, combined with endianess issues. An int* had been passed to a function which expected a gsize*. gsize is 64-bits long and so the function was filling out the int and then some. This wasn't the actual cause of the bug though, on a big-endian system the first four bytes, that the caller sees when it dereferences its int, are the top 32 bits of the size, i.e. zero for the small files gconf uses. So gconf assumes the file is empty and tells the app that there isn't any such key. Little-endian machines luck out and get the right half of the 64-bit number.

Moral of the story: Always make sure you pass the correct pointer to a function. Not doing so is always a bug.

The other bug I'm seeing (and posting bugs for when I notice them) is dodgy pointer arithmetic involving casting the pointer to an int, doing something, and then casting it back. e.g.:

pointer = (char *)((unsigned int)pointer - 1);

On ppc64 ints and pointers are different sizes. Doing this chops off the high 32-bits of the address. Fortunately on Linux the code is loaded at 0x1000000 and the program is question doesn't normally chew more than 3G of data so it works.

Moral of the story: Never, ever, cast a pointer to an int. In C, the compiler will either let you do the operation directly or it is a bloody stupid thing to do.

Spatial Nautilus

I avoided mentioning this on the desktop-devel thread-of-doom, but I have a hunch I know why a lot of experienced nautilus users hate spatial mode. File managers work best when navigating data you've organised with that file manager. Spatial mode encourages wide, shallow trees with easy access for the things you care about (actually it probably encourages easy access for everything because you don't want to spend time burying things you don't care about). The people complaining seemed to have very deep, 10 000 file, home directories. Maybe that is the problem.

I like spatial nautilus because it adds value over the shell. Browser nautilus didn't. In fact I usually used a terminal in preference to nautilus.


My current work involves me wearing glasses which cut out near-IR light. Unfortunately they also cut out a lot of red light giving me an artificial form of colour-blindness. Using a computer has been an interesting experience. There are some good bits, magenta is now an almost pleasant colour, but there are also some subtle things that catch you out. Like all the suits in aisleriot being nearly the same colour.

After the release of 2.7.1 I've been taking some time off gnome-games maintainance to focus on other free-software toys. The main project has been getting a full 64-bit distro running on my G5. This is basically Fedora for the IBM pseries stuff with a few tweaks. It now runs X and GNOME.

The good news is that most GNOME programs do vaguely sane things when gconf isn't returning anything. The bad news is that I discovered this because the new XML back-end (i.e. markup, not libxml) doesn't like reading files on a ppc64 machine. Tonight's project is figuring out why. Fortunately the libxml based oldxml still works.

After that I'll be back to gnome-games, making sure that it is 64-bit clean (I know of at least one bug that hints that it isn't).

Meantime at work I'm using the machine I helped build for my PhD. It's strange to be using it again after four years.

Reading about worms infecting Microsoft systems is sort of like reading about a civil war in some distant country. I know that it is bad and that it is wrong and that the people caught in the middle of it are hurting but in the end it is just so far from anything that affects me that I can't make myself care.


The 2.7.1 release is ready to go, hopefully tonight there will be a place to actually upload it to. There is a hideous number of new features in this release, the most recent being a new score dialog for gnomine. If it goes down well I'll use it for all the games.

Another big change is that gnometris now supports drag-and-drop for setting the background image. In fact this is now the only way to set the background. At the moment it doesn't work that well, it only seems to work with nautilus and it is not very intelligent about whether to scale or tile an image, but I'm working on it. I'm sure the similarity between the apsect ratios of a Playboy center-fold scan and the gnometris playing area is a coincidence.

I have also euthanised Klotski since it had very limited replayability and no one seems to be actually play it. I don't have any plans to remove any other games in the near future.


Work is going well. Non-work is going well. The weather has even been nice (well, as nice as autumn ever is).

Time for the silly book game !

The instructions are: Grab the nearest book, open it to page 23, find the 5th sentence, post the text of the sentence in your journal along with these instructions.

The effects of the coupling to the light field and spontaneous emission can be added independently.

Obviously I am at work. If I was at home it would have been from the Camel Book, but Luis probably needs a break from Perl. I considered moving the laptop closer to a more interesting book. Unfortunately more interesting books don't necessarily have a more interesting page 23. Besides, it would be cheating (and I can't do the typesetting that some of them would have required).


Thanks to work from Theo van Klaveren gnibbles now scales and uses SVG graphics. Colour-blind gnibbles players will be pleased to know that the bonuses are now different shapes, although the snakes are still all the same.

Theme selection has returned to aisleriot so it should now be basically what it was in terms of functionality. Thanks to Aaron Schlaegel we also have one and two-suit versions of spider for those who actually want to win a spider game slightly more often than a transit of Venus.


The Dog (who is really a cat) caught his first mouse today. I've been waiting for this: Both cats have been catching insects for some time now and have been slowly working their way up in size. At first it was cicadas, then a weta, and more recently centipedes. The cicadas were OK, they ate them without much fuss, however a centipede will keep a cat occupied for ages. They would bring it into the house, let it go and watch it crawl away. Just as it gets out of reach they flick it back towards them and watch it crawl away again. Eventually the centipede succumbs to this abuse and dies at which point it gets left in the middle of the floor. Cats are be complete bastards.

26 Apr 2004 (updated 26 Apr 2004 at 05:38 UTC) »

I've finally got around to attacking the back-log of patches for gnome-games, but there are still a few to go. If you've got one currently submitted and don't see anything happening within a week prod me. Luis' new patch-status query is telling me I've got a lot more to do than I expected which I suppose means that it's achieved it's purpose.

The new features in gnome-games from the patch list include a new (harder) AI for Iagno (thanks to Bevan Collins) and a new Mahjongg layout (from Rexford Newbould). Two patches I hope to include soon are for gnibbles rescaling (and SVG graphics) and a better way to customise key controls.

Oh yeah, I also changed the name of Lines to "Five or More" since that is a little less generic.

One of my fellow physicists has just given a talk on his research program. The core of his proposed project is a wafer of diamond coated in gold. He assures us there are good technical reasons for this.


My time in the US gave me enough understanding of american life and politics to appreciate the Doonesbury cartoons. I regularly follow them on the web and yesterdays (depending on timezone) cartoon strip was fairly stunning. However I'm clearly still don't fully understand Doonesbury when it seems more people are shocked by B.D.'s helmet coming off after 30-something years than the fact that his leg has been blown off. I suppose some things you have to grow up with (I defy any non-New Zealander to fully understand Footrot Flats).


I've produced a web-page describing how to get started with hacking Gnome Games. It is meant to be a HOWTO style document for the person who hasn't dealt with GNOME before and in theory this could (should ?) be generalised for GNOME as a whole. Feedback is more than welcome.

Before Ali points out that I mention jhbuild but not cvsgnome, I'll just say that I haven't forgotten about cvsgnome, but when questions get asked on games-list about build systems (as they will, because I've mentioned them on the web-page) I'd prefer it to be about the one I know something about. Sorry.

Stupid trick of the day

Sort files in your tarball by file type, not name. For a moderately mixed case like gnome-games bringing similar files together knocks 3% off the compressed file size (both gzip and bzip2). The trade-off is of course that bouncing randomly between directories is a great way to negate the effectiveness of the directory cache while decompressing.

Aisleriot now scales ! The code is in CVS. It's not quick and the code is awful (I kept changing the design of one end of the code and the other end hasn't caught up yet). I'm not sure I put all the new files in CVS either. Also, don't expect to be able to change the theme either, you're stuck with a badly scaled version of the old bonded PNG theme. All I can really guarantee is that I can play klondike on my machine.

Those of you who want to write SVG themes, look at bonded-new.png and copy that layout.

Maybe now I can pay more attention to the backlog of patches in bugzilla.

64 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!