Older blog entries for Spooky (starting at number 24)


I've been working on more internal stuff for gnome-games. Almost all the games grab a list of files at some stage so I've created a file list object and routines for collecting the common lists of files: either from a glob or just "find all image files that gdk-pixbuf understands". Only a handful of the original code has been replaced, but the latest iteration of the API looks good so the rest should follow quickly. The only major problem remaining is to make it easy to create widgets from these lists. There are two problems: one is that the current code varies wildly in what widget it uses; the second is that the names could undergo a transformation (e.g. dropping extensions). Making sure that the resulting API is simple and clean is the hard bit.


Good news: GNOME 2.5 runs on the G5. Bad news: it is still 32-bit.


After becoming annoyed at how long gtk-doc takes to generate anything I decided to do a little profiling. The transformation from docbook to html is where all the time is wasted so I decided to run xsltproc with some of its debugging options. The --verbose option managed to produce 600 Mb of output processing the GDK documentation ! The other options are a little more useful. I'm not entirely clear where all the time is going, but tt all seems wasteful just to transform 1.1 Mb of xml to 1.8 Mb of html.


Linux is finally running on the G5 now that the Maxtor SATA drive bugs have been worked out. Unfortunately Yellowdog Linux 3 is a Red Hat 9 derivative and so feels somewhat of a backward step after having used Fedora for a while now. This of course means GNOME 2.2 is what comes installed, jhbuild is in theory working right now to fix this. So GNOME development should move back to the home computer which means I will have more time for it and a quicker turn-around on getting stuff into CVS (currently I carry the computer past the firewall to do commits).

There is no sound or video acceleration yet and it is still 32-bit. The video acceleration doesn't seem to be much of a problem given the G5's memory bandwidth and processor grunt, but it would still be nice. 64-bit will come soon, yellowdog has a 64-bit kernel out, all I need is time. GNOME is 64-bit clean isn't it ?

I have just this minute released gnome-games 2.5.2. The silly code name is "Nervous Energy". By a strange coincidence my horoscope for today in the local newspaper also mentions "nervous energy" prominently. I had decided upon the name shortly before reading the horoscope by using my usual method: picking a name from a list of starships that appear in Iain M. Banks' novels. This is the closest any horoscope has ever come to making a specific prediction about my life in any way. Any possible faith I might have placed in this prediction was immediately shattered by the final line of the horoscope: "Avoid pushing the river today". I'm not really sure what this means, but to be safe I avoided constructing any dams or dykes.


I've just come back from a week in Melbourne for ACOLS. Technically it was a laser spectroscopy conference, but nowadays this means anything involving atoms and light, i.e. quite a lot. Quantum information is the current buzz-word (and my area of expertise). I'm afraid that GNOME will not be running on a quantum computer any time soon.

Melbourne itself is fairly nice, certainly a lot better than Canberra (the last major Australian city I spent any real time in). Unfortunately the available free time was limited and the most touristy thing I did was visit the aquarium where they had some really, really, ugly sharks.


I've finally started seriously collecting common code into the support library. It is still linked in at compile time rather than being a shared library. The idea is to reduce code complexity and increase consistency rather than the binary size. So far only glines and anything that uses the gdk_card_* routines are affected. I've also been trying to make sure that the new code is more portable than what it replaces. This is of course be an ongoing project that never will end.

Some days I loathe C. I like right-up-against-the-bare-silicon coding, but when I have to deal with gtk_tree_view_has_names_which_are_too_fucking_long for too long I start to loose it.

I spent Saturday hacking and Sunday in the garden. Neither project I started is complete of course, but both are showing promising signs. The old overgrown compost heap in the corner is coming down in size as it gets used to fill old dryer drums for herb gardens. It no longer looks like the Crinoid from Dr. Who. Also the new code for card-style selection in gdk-card-* is nearly there: one list rather than seven individual menus.


If you are using the CVS version of aisleriot and you value your preferences, don't try changing them. On the other hand if you want to see the new card-style selection code, go ahead. Although there is a known bug that will crash the program with certain compilers. I'll be dumping the fixes into CVS tonight when I take the laptop home. This warning probably apply to blackjack too since this is shared code.


I have finally done something with the G5 that takes real grunt. Raytracing with povray on a single 2GHz ppc970 cpu is equivalent to a 3GHz P4. Compiling for the G5 specifically (Apple's -fast option to gcc) gives a 15 % speed increase for povray over fink's default settings. Then again, fink's default compiler options give gzip a 5 % edge over the binaries that come with Panther. At least for this machine, compiler options mean something. Now if only Yellow Dog Linux would support my hard disk I wouldn't have to hang around in Mac OS X development hell.


Ina insisted on taking a group photo of the BEC group yesterday. The photo probably makes it look all bright and sunny and warm, hiding the fact that a cold southerly was blowing and there was a partial eclipse of the sun going on. Brian had set up a telescope in the fire-escape to project an image of the sun. So we could sit there watching it and the sun-spots during what turned out to be the only really sunny spell all day. It's meant to be summer soon. Really.

Something Beginning With C

Cushla arrived on Saturday morning and we've managed to settle into living together again after a year apart. Leaving her behind in hosptial when I had to leave the country was very hard and not something I want to repeat. We intend solving this by not letting the anorexia become a problem again. I have a lot of hope here, Johns Hopkins did a very good job with her.


She brought back my Powermac G5 with her. I've installed Panther on it and I'm now trying to get Linux working with Yellowdog's experimental offering. Currently it gets halfway through booting the kernel, but it seems to be getting confused about disk drives and I'm going to need to give it some kernel parameters, but yaboot is giving me grief in this department.


The G5's big selling point is of course speed. Something which I have not yet managed to test. None of the software that comes with it is CPU bound and the software that would give me an idea about speed (e.g. povray) is refusing to compile for me. Unfortunately when time has to be shared between hacking and girlfriend, girlfriend wins. The machine is definitely fast, I just can't tell you how fast. On the other hand it is almost worth it just for the case, it is a thing of beauty.


Now that I've had a few days playing with OS X I've come to the realisation that GNOME 2.4 really is quite good. The core anyway. The keep-it-simple mantra of GNOME really pays off in terms of usability. OS X is mostly excellent, but it does slip every now and then. I definitely prefer Epiphany to Safari, Safari has a lot of rough edges. OS X wins in the gaps where GNOME hasn't yet expanded, things like a complete system configuration interface. Of course they only have one sort of system to write for :).

The fancy visual effects are neat, but quite frankly they add nothing to the usability. The dock might have true transparency, but this is useless since the icons will almost always obscure what you want to read.

Fast user switching is very useful, especially with two of us in the house. I have also got very attached to Expose, although I'm not sure I'd do it quite the same for a GNOME implementation. A GNOME solution may not be necessary, the normal solution to having too many windows on one screen is to have multiple virtual screens, an equally effective solution to the same problem. Even with Expose it is possible for too many windows to pile up to be useful.


The G5 is replacing my normal development machine and since I haven't got Linux running yet, nor have I got my head around MacOS X's development environment (e.g. I can't get libjpeg to give me shared libraries) there isn't a currently running system to develop on. One way or the other this should be fixed this weekend.

I've finally gotten back into a regualr rhythm for hacking on gnome-games. I'm slowly working my way through the back-log of bugs and things that I want to do for 2.6. There probably won't be anything big in 2.5.1 that wasn't in 2.5.0 but it will be marginally less buggy.

Of course all this is going to be ruined at the end of the week when Cushla arrives back from living in the states. We have been a couple for three and a half years and we have been in the same country for about half that time. In the last year we have had about five weeks together all up. Soon things will change: her plane touches down at 9.05am on Saturday. I can see the amount of hacking I do go down ...

Seth said he wanted a vision. A grand vision. Something to aspire to. Something to aim for. The reason to build a rocket. This isn't it. Glynn wants stuff for the GNOME web-pages. This isn't it either. It falls somewhere in between. It is my fluffy view on what GNOME is here for.

The GNOME Vision

In front of you is a computer. What does it do ?

Deep down it is a CPU, with some memory, a graphics processor and some disks. This is, to the technically knowledgeable, the description of a typical computer. To other people a computer is a screen, a keyboard and a mouse.

Inside the CPU and the memory and on the disk there is information. It is written in ones and zeros and organised into bytes and files and directories. This is also a description of a typical computer, Like before, it is not what people think about when they sit down at their computer. Most people do not want bytes or directories or software, they want letters, pictures, and music.

GNOME is there to give the ones and zeros meaning.

GNOME is what people see, GNOME is what people do with their computer. GNOME is what makes the seemingly random ones and zeros become someones diary, someones photo album, or someones paint set.

GNOME is there to let you create, find, communicate and share. GNOME is there for you.

I installed Severn on my laptop today. I was pleasantly surprised after the general suckiness of Red Hat 8 and 9. So surprised in fact that I installed it at home to replace my mutant Red Hat 7.3 system.

This led to a rather interesting time as I installed GTK+ 2.3 again to try and make sure I really had gotten the *_DISABLE_DEPRECATED problem under control. Naturally I hadn't. With luck there will be a release of gnome-games tomorrow to fix any GTK+ 2.3 breakage. gnome-games 2.5.0 is OK, it doesn't use any deprecated functions (although the macros will have to be removed at some stage).

It's just a matter of passing make distcheck now. That's something it can do while I sleep.

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