Wednesday, August 30, 2006


As a follow up to my previous post about ifconfig... I have just discovered /etc/iftab. I love you udev! It's exactly what you want and expect - a table of ethernet addresses to interface names. Done. Aparently there was an older tool called ifrename that used to do this before udev. But yay! Problem solved.

glChess in the news

Gnome games is looking to drop one game and add another for the Gnome 2.18 release. An obvious inclusion is a chess game and someone has suggested adding glChess!

I like this because:

  • glChess is simple - I'm trying to keep clutter to a minimum (many existing programs have a lot of internal AI information / options). glChess would(/should) be good for people who just want to play chess. The networking (when I finish it) should be simple too

  • I like Gnome!

I am a little worried about:

  • performance - The use of 3D means many Gnome users would have rubbish performance. This could be solved by making glChess support both 3D and 2D (the internal design is keeping the scene rendering seperate from the rest of the code, it shouldn't be too hard to make a cairo interface).

Tuesday, August 29, 2006

How to render using Mesa

It is remarkable hard to get your OpenGL software to avoid using hardware acceleration. I required this to test some glChess bugs.

Under a DRI system you disable DRI by quoting out the Load "dri" line in the Modules section in /etc/X11/xorg.conf. After restarting X everything 3D should be slow.

Under an annoying non-standard system (i.e. nVidia) I believe you can link your C program using something like -lGLMesa. However you are royally screwed if you use something like the Python bindings. Then you would have to do some recompiling/magic relinking to make it all work.

glChess 0.9.6

New release!

This version fixes a number of issues with software rendering. I found an interesting bug in Mesa which is now avoided (bug is fixed in Mesa CVS).

Also has a bunch of cosmetic fixes (about dialog, starts with empty board, changed perspective slightly, added icon) and an Italian translation. This release has some disabled networking code to be hopefully re-enabled in 0.9.7.

Friday, August 25, 2006

Arrgh! I hate developers!

Constantly having to change my networking configuration is driving me insane. So I apt-get source ifupdown'd to start some hacking.

I can't believe how complex people manage to make their code - this is a program with only ~2000 lines of C code but it's just unreadable. The indentation is all over the place and there's wacky documentation preprocessor directives spilt all through it. There's probably some elaborate IDE that makes it readable but come on - stop making write-only code people!

Monday, August 07, 2006

Reasons not to use low level languages

I followed a link from Planet Gnome to a patch for Evolution that fixes a lot of memory leaks. Well sure, I thought, it will be fixing some obscure bugs right? Well it turns out a lot of the patch changes are replacing lines like this: /* TODO: Free stuff */. So the product is knowingly produced with memory leaks. Ouch.

I can't blame the developers too much - in C I always found it a mission to keep track of memory (this sort of thing takes time from adding content) but it just goes to show. If you can use a garbage collector, do - anything else should be treated as an optimisation. And any optimisation you do should be able to justify (ideally with numbers).

Thursday, August 03, 2006

A nice webserver

Saw a link to Cherokee today, looks like a nice, lightweight and easy-to-configure web server. I am not a fan of apache (bloated and obscure) so I'll be trying this one next time I need a web server.

Tuesday, August 01, 2006

Google calendar + Evolution

For those familiar with Gnome there is a calendar widget on the upper taskbar (by default). This is probably one of the most useful features of the Desktop: it shows the full date and clicking on it brings quickly brings down a small calendar. I use this all the time and are constantly tripped up when using Windows (their one only displays partial date, tooltips take ages to come up, double clicking on it brings up config window with calendar that takes ages).

So today I thought since this mini-calendar was linked to the Evolution Data Server (implemented I don't know how many Gnome versions ago), perhaps I could put my Google Calendar in there. So double click on a day and Evolution (slowly) pops up. After getting lost in the heavy interface I go Menu->New->Calendar, copy the address Google Calendar provides in the settings and voila! My Gnome desktop now displays all my appointments (and birthdays) one click away from anywhere! 11 chainsaws out of 10!