20 August 2003

Python

Spent a bit of time writing a reply to kiko‘s proto-PEP about fixing Python’s handling of LC_NUMERIC.

As it stands at the moment, Python requires LC_NUMERIC to be set to C in order to function correctly (important things like parsing of floats in source code break if it is set to a locale that uses a comma as the decimal point). They then have some hacks that allow you to parse and format floats according to locale conventions. This all works great in a pure Python environment.

However if you have another library that want to display or parse floats in a locale sensitive fashion and want to use it with Python, things start to break down. If the library isn’t Python specific, it is unlikely to change (after all, it is just using standard C library functions according to the specification). One such library that falls into this category is GTK+, which is where kiko first ran into the problem.

I think most of the Python developers realise that the current code is a problem now, which is good because it is the first step to getting it fixed.

Mail Viruses

Like most people, I woke up today with about 50 or so bounce messages in my inbox. I have a set of header_checks rules in my postfix configuration that reject windows executable attachments, so I never actually received a copy of the actual worm, but I received many many rejection messages from other servers, since the Sobig.F worm forges the From: address.

I quickly modified the mail filters to discard rather than reject Sobig.F messages, to make sure we aren’t adding to the problem.

I am surprised that none of the major server side anti-virus products correctly discard these virus messages with forged senders. They all seem to identify the type of virus, so they should be able to control what action is performed based on the virus type (for mail viruses that don’t forge the sender, rejection still seems like the best option).

15 August 2003

Laptop

Since upgrading to RH9, I started to experience some problems with my laptop. Every time I switched from text mode to graphics mode it would hang with the keyboard LEDs flashing for between 10 seconds and a minute. This was particularly annoying, since I usually switched to a console before suspending the machine.

After searching for any information about this problem without any luck (I was trying to find relevant changes to the kernel or XFree86, both of which had been upgraded).

In the end, a BIOS upgrade did the trick (which had been sitting on Compaq’s website for about a year). Now I can even suspend while in graphics mode. If you have a Compaq Armada M300, the BIOS upgrade is definitely worth it.

PyGTK

Put out new releases of PyGTK and PyORBit. Still haven’t done a new gnome-python release though. The new PyORBit release fixes a bug in the stub generation that was showing up when used together with Python 2.3. After the release, I got another 2.3 related bug report which is fixed in CVS, so the next release should be pretty solid.

The PyGTK release fixed a number of other bugs that caused errors when compiling under Mac OS X. Unfortunately, I missed a few, so it still requires some patches to build correctly. Next release should be build fine though.

Given that Apple is shipping their X server with the next version of OS X, this essentially means that PyGTK apps can run with little or no modification under Unix, Windows and Max OS X, which should make it a pretty attractive option to developers.

ChangeLogs as RSS

I wrote a short script for processing ChangeLogs into RSS format, so that they can be read using a news aggregator such as Straw (plug for a cool PyGTK using app). The script still needs a bit of work, but it can already identify references to bugzilla bugs, and provides links to the files in Gnome’s LXR. A sample of the output is available here:

http://cvs.gnome.org/~james/rss/

I also wrote a short XSL stylesheet to make the RSS display nicely in a web browser. It ended up requiring a small javascript hack to work in Mozilla, since disable-output-escaping does not work with its XSLT engine (and is not likely to get it).

23 July 2003

edd: The advogato RSS export has been around for quite a while; however raph only recently added the little RSS buttons.. I recently submitted a patch to add the missing <link> elements, which it looks like I screwed up slightly 🙂.

Before it was only giving the pubDate and description elements. I have submitted another patch to add a title elements and fix the links. Don’t know when it will be applied though.

Update: Raph applied the patch. Now advogato diary entries are showing up on Jeff’s Gnome Hackers aggregator. Thanks!

Gnome Website

Jeff moved the main Gnome website over to the new design yesterday. While there is still a fair bit to do on the content side, it does look a lot nicer. He also got rid of the WML dependency which was a large barrier to potential contributors.

Once the new infrastructure gets merged, it’ll be possible to mark up new content as plain XHTML or Docbook/XML and have it all fit into the site design. This will make it a lot easier to contribute, since there are more tools available to edit those formats, and it is possible to easily validate them.

A story got posted to Footnotes about the update while it was in progress, which resulted in a fair number of troll comments. Makes me glad I didn’t end up switching the main site over 🙂.

18 July 2003

Gnome Developer Websites

Did a little more work on the Gnome LXR. It is now no longer using the old ’95 era apache file icons in the directory listings, but instead using some icons based on the main Gnome icon theme. I had to modify some of them a bit because they didn’t scale all that well down to the smaller sizes. It definitely looks a lot nicer now.

Mailman

Was having some trouble with the qrunner process on the local mailman installation. Apparently if it gets a temporary delivery failure, it queues the message for delivery again immediately. For mail being delivered through the local MTA, this is a pretty big problem — if you get a temporary failure, you are likely to get another temporary failure a fraction of a second later. Having the qrunner process using all available CPU doesn’t help get out of this situation …

I grabbed the CVS head versions of the Mailman/Queue sources and integrated it into my 2.1.2 installation, and the problems pretty much went away. It handles this situation a lot better.

I also put together a bookmarklet to save time while moderating lists:

javascript:(function(){‌var elements=document.forms[0].elements; for(var i=0; i<elements.length; i++){var el=elements[i]; if(el.type==’radio’&&el.value==’3′){el.checked=true;}}})()

On the mailman moderation screen (both 2.0 and 2.1 versions), I can activate this bookmark and it will check all the “discard” radio buttons. Since most messages are usually spam, this means I just have to mark to check the radio buttons for messages that are not spam, which is a lot quicker.