Older blog entries for Spooky (starting at number 58)

6 Apr 2004 (updated 8 Apr 2004 at 23:13 UTC) »


I've now begun the merest smidgen of work on Aisleriot. The results are in CVS. It is still playable, but probably not what you want (yet).

Just for fun my kittens (now seriously heading toward cat status) decided to pull the power plug on my computer. It's been a while since they last did it, this time they managed to get the G5's power supply to panic and refuse to start again until I'd left it unplugged for five minutes. Truly impressive from a pair of animals which otherwise show no ability to learn.

GNOME stuff hasn't been happening in any great quantity recently for a variety of reasons. On the other hand I have seen a lot of films at the current film festival (Shattered Glass, Capturing the Friedmans, The Good the Bad and the Ugly, and Interstella 5555).

Everyone seems to be talking about baseball. I never really came to grips with it while I lived in the States, it seemed to be isomorphic to cricket, but I could never get the big picture of how the score was going or whether a team was winning well or losing badly. Note to Americans: you know how cricket seems strange to you, thats how baseball seems to me.


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).

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