Older blog entries for Spooky (starting at number 56)


The last two days have been spent helping Bryan getting his vacuum system up and running. It went very well, admittedly the pressure he wants is quite high (about a millionth of an atmosphere) but we targeted a bit lower to give us some lee-way. When I left it, it was is sitting quite comfortably at about a billionth of an atmosphere. Not bad given we the sort of crap we put inside the system (rubber is not vacuum friendly).


As I expected I didn't get any work done on the Aisleriot resizing code over the weekend. I did get as far as looking at jrb's gdeck code. gdeck seems to be more than I want but it would be nice to reuse someone elses effort so I'm not sure what I'm going to do.

There is also a gnome-games website in the works. In fact it is just about finished. It's been a bit weird the way it's come together, it has sort of spontaneously come together from the work of three different people. We weren't working independently but there was no real organisation.


I've finally merged Sjoerd's gataxx code into CVS. Gataxx is as functional as it was but more modular and with a better AI. In the process I've noticed all the things that weren't finished when it was branched from iagno (like networking and sound). So now gataxx is stripped down and relatively clean my intention is to incrementally port the stuff from iagno and eventually make the two games one program. I reckon I can do it incrementally so for a long time there will be gataxx with a non-functioning iagno mode and a fully functional iagno in parallel.

I say "long time" because I'm going to force myself to finally do the aisleriot rescaling work before-hand. There appear to be plenty of volunteers prepared to draw SVG card decks so that bit should work out. This weekend I'm going to look at the stuff jrb did for gdeck/Aisleriot2 and see what code I can steal. I think I'm going to have to throw out the current model for card decks, with luck the 2.6 release should condition people to not expect an infinite number of pointless choices for the look and feel of their cards and we can just have set decks (with perhaps a choice of reverse).


2.6.0 is out the door ! The shake-down period took quite a bit longer than I anticipated (I hate freeze dates that shift), but it has been worth it. The result is rock-solid, I'm confident that there are very few crashers left in the code. I won't say none, because that is guaranteed to catch the attention of the coding gods. A bit like flying a kite in a thunderstorm while standing in a copper bathtub full of salt-water screaming "I don't believe in you Thor, you bastard !".

For 2.7 I've started importing Sjoerd Langkemper's gataxx ai and graphics rewrite. This is taking time because I'm going through and cleaning up all the rough edges (from both the old and the new code). The new code should hit CVS in a few days. Most stuff is done, but I want to make sure I'm not throwing any useful stuff out with the old code.

Also, for Aisleriot fans: the per-game help menu item has returned. Simply select a game you don't know how to play, look in the help menu and you should be able to jump directly to the rules for that game.


While in many ways I agree with many of Havoc's thoughts, I'm not sure about the air of panic that seems to surround them (not that I'm accusing Havoc of panic, but you get the idea). It's just that I seem to remember similar things being said about Visual Basic a few years ago in a similar tone of voice.

Old Code

For today's success story I returned to a program I wrote over a year ago that had been lying dormant. I was pleasantly surprised at how easy it was to figure out what I had done and how to make the necessary changes. It was also strange to see how my coding style had changed in the intervening year, I seem to have become infected with GNOMEisms.

The program itself is cool: it uses a second video card reprogrammed so that the blanking at the end of the rows is removed. It makes a great (and cheap) arbitrary function generator when the signals are fed through amplifiers rather than off to a monitor. Three channels with 50MHz bandwidth and 2^20 data points is good.

Caps Lock

One thing Apple keyboards get right (along with almost everyone else except PC keyboard makers) is putting the caps lock light with the caps lock key. What is the point of having the indicator and the control for that indicator on opposite sides of the keyboard such that you can't see them both at the same time ? On the other hand, putting the light underneath where your finger goes isn't too smart either. All keyboards suck, even an Lk-201: I dislike the way that < and > are on the same key.

Right now I'm in need of a language lawyer. Bug #136898 is the case of a person trying to compile gnome-games with the -fdata-sections option to gcc. I didn't ask why he wanted to do this, but he did and the build failed. The reason is that I have (or had, I changed it) a declaration like int a; in one file and a similar declaration in another file (no extern or anything). These are meant to be the same variable and under normal circumstances it is compiled and linked as such. Compile it with -fdata-sections and the linker complains about "multiple definitions of a". The dispute is now whether this is a bug on my part (i.e. it isn't valid C) or a bug in the compiler/linker.

I'll happily admit that the code in aisleriot was bad code (and has since been fixed), but I'm not convinced it was illegal code. After all it only did what we all do with functions: declare it in one source file and the use an empty prototype definition in another file. Both myself and the reported have of course looked at the C standard and have both come away with the idea that it supports our point of view.

I've finally branched off gnome-games 2.6 and started to work on 2.7. The real meaning of this, in the short term, is that I get to go through and apply all the patches that people submitted during the freeze. Maybe someday soon I'll get to write some code, but since that will be the Aisleriot resizing code I'm not entirely sure I'm looking forward to it.

I'm in the process of releasing gnome-games 2.5.8 as I write this. Two things strike me: one is that I seem to be doing releases about one step ahead of the release team (2.5.7 was my beta 1). The other is that I have now done more releases for 2.5 than I did for 2.3. This is odd because I could have sworn I was being slacker about the releases this time around.

For those of you still stuck in the dark ages of GNOME 2.4 there will probably be another 2.4 gnome-games release in a week or so with some bug fixes back-ported. Yeah, I know I said that 2.4.2 would be the last one.

I've finally decided to actually use IRC after eleven years of resisting its siren song (I saw what it did to my friends back in '93, or maybe it was MUDs that sucked their will to live, it's getting hard to remember). Ten minutes of lurking on #gnome-hackers has Shaun point out a bug in gnect. It's some kind of conspiracy.

The big news around here is, of course, the continuing success of The Lord of the Rings movies. It is generally regarded as "our film" which is a little odd given that most of "us" had absolutely nothing to do with making it (although most of us do know someone who worked on it). At the same time it does mean something to me as a New Zealander. I was in the States when The Fellowship of the Ring was released and being able to see "home" up on the big screen made a big difference to the emotional impact of the film. Similarly, after seeing the Two Towers for the first time I was overcome with a desire to head out to the Strath-Taeri. It's not that I imagine Rohirrim riding across it when I see it, in reality it produces quite an eerie feeling, but I hadn't seen it in years despite it being only an hours drive from home (the nearest parts are technically within the city limits).

26 Feb 2004 (updated 26 Feb 2004 at 20:57 UTC) »
Fedora PPC64

My scheme to naively install Fedora's undocumented ppc64 RPMs from the development branch onto a spare partition on my G5 seems to have worked. I can now boot and run a very basic ppc64 system (after adding my own fedora-release rpm). It is possibly the most basic system where you can edit things (vim), install stuff (rpm) and grap stuff off the web (wget), but it does work. I still don't know whether the ppc64 packages were meant to work or not or what the people at Red Hat were thinking when they compiled them, but I'm happy.

Dependency Hell

Did you know that rpm has over 50 packages it depends on either directly or indirectly. There are the obvious ones like glibc and it's a good thing that SysVinit show up eventually. However you also need glib, both versions 1 and 2 ! The upside is that you by just fufilling the requirements for rpm and you have everything you need for a basic, bootable, system.


Fedora really freaks if you don't have an fstab file. It's kind of fun seeing how well (or badly) a system handles itself without even basic configuration. For the record, Fedora does well enough: you can creat the fstab file from within Fedora.

For the last two weeks the keys in the top left hand corner of my keyboard have been dead. Just the group that includes <tab>, ~, <caps lock> and <esc>. You can actually survive an amazingly long time without those keys. Ctrl-I replaces <tab>, you type out your home directory in full and <esc> can be replaced with Ctrl-C in vim. Caps Lock is of course an abomination and wasn't missed. A broken cluster of keys is of course the classic symptom of a broken track in the keyboard matrix and potentially a bastard to fix.

I finally fixed it today. I was pleasantly surprised to find that the Apple keyboard was actually as well made as it is pretty. Well made except for the scratch in the plastic of the circuit board that had let the track arc to the metal back-plate and burnt the track away. A quick job with the conductive marker pen and a bit of tape and she's good-as-new. Except for the crumbs in the hard to reach corners; I really must stop web-surfing during breakfast.

What really impressed me though was the 2.6 kernel. People have gone gaga over how snappy it is, but what I have found really nice is the new input layer and the way it "just works". While testing the keyboard my laptop ended up with three keyboards and two mice. They all worked and I didn't have to touch any software, just plugged things in and pulled them out again. I still haven't figured out why it thought the eject button on the Apple keyboard was Right Super though.

I also fixed the bike's brakes and the A laser, so it has been a good day for fixing things.

47 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!