PyGTK

Over the weekend, I did a set of releases for pygtk, pyorbit and gnome-python. These releases are pretty much what I want for the 2.0 versions (which have been a long time coming). These releases should fix up the last few remaining bugs related to running with Python 2.3, and bugs related to compiling on MacOS X. If no serious bugs are found, I’ll do 2.0 releases shortly.

Once 2.0 is done and I have branched, I can start looking at moving on to the newer APIs. Some of the things I want to do include:

  • Delete the gtk.gl binding, or move it to the gtkglarea package. This library seems pretty much dead, and there is another OpenGL binding for GTK which is being actively developed, and even has a Python binding.
  • Add all the new GTK 2.2 APIs to PyGTK. This shouldn’t take too long, as all the infrastructure is there now.
  • Move gnome-python on to the GNOME 2.4 libraries. Given the timing of releases, its probably not worth targetting 2.2 separately.
  • Delete the gnome.zvt binding. The libzvt library is pretty much dead, and VTE includes a Python binding itself.

There are a few other things I want to look at, such as Python 2.3’s new PyGILState APIs, which could potentially simplify PyGTK’s threading support a lot, and make it interact better with other threaded Python extension modules.

22 August 2003

raph: If you upgrade to Mailman 2.1, you can run qrunner as a daemon instead of from Cron (this is in fact the preferred way to run it).

This does have some disadvantages, of course. I have experienced problems with 2.1.x qrunner running away and using all the CPU on occasions (a problem with temporary failures for local delivery being handled by queuing the message for immediate re-delivery). I found that the particular problem I ran into had been fixed on the HEAD branch though, which I am now running on my mail server. It should handle the higher loads though.

If you want to remove some of the intermediate steps you can use my to get mailman to call spamassassin directly. This means that list traffic will only go through MTA, Mailman and Spamassassin. It will also allow mailman to do some moderation decisions based on message scores (ie. discard messages above a particular score without moderation).

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.

14 July 2003

Gnome Developer Websites

I converted the Gnome LXR and Bonsai installations over to the new site
design Jeff did.  Overall it looks very good.  Having a
consistent design across the sites makes them all look a lot more
professional.  This just leaves the big one to do (www.gnome.org).

Advogato

raph committed my patch to add <link> elements to the items in
the diary RSS feeds.  This should make the RSS feeds a bit more
useful, since you can then go from the RSS to the individual diary
entries.

I also had a play with the Mozilla midas rich text editing functionality as a way to provide WYSIWIG diary entry
It is a little rough, but it is good enough to write this diary entry
with :)  With a small amount of hacking, I was able to get the
code to work with IE as well.

David Hicks

It seems that our Prime Minister and Attorney-General seem to have
decided that it is okay to have an Australian citizen tried without due
process in a secret court where he could face execution.  If there
is evidence against him, there shouldn’t be any problem trying him in
an Australian court.  It is particularly sickenning to see them
acting like this when compared to the British government’s actions with
respect to their citizens in a similar situation.  There was an
interesting article by Malcolm Fraser about this yesterday.

developer.gnome.org

Got a bit tired of the ancient site design of the Gnome developer website, so spent a little while updating it to match jdub‘s new site design. Now all that is left to do is to fix the content :)

Update: updated the bugzilla.gnome.org templates to match.

8 July 2003

GUADEC 2003

I said I was going to write a bit about GUADEC, but didn’t get
round to it til now.

Saturday 14th

Arrived in Dublin in the morning after about a day spent in
airports and on planes. Took the AirLink bus from the airport into
the city centre, and walked from there to Trinity College, Dublin. I ran into a
number of hackers at the gate who pointed out where the accommodation
office was. Dropped my pack off and took a walk around the area close
to the college.

I went out to take a look round and get some lunch. Was surprised
how expensive everything seemed. Even though the exchange rate was
about AU$1.80 to each Euro, the prices looked like the exchange rate
should have been closer to 1:1 :(.

Afterwards, I explored TCD a bit more, and found out where the
conference was going to be held. Made my way down to the network room
and met jdahlin (at first, I didn’t realise who he
was).

Went to dinner with a bunch of hackers at a Japanese restaurant.
Had a very large bowl of chili/chicken noodle soup. We then moved on
to Messrs Maquires for some drinks.

Sunday 15th

On the Sunday, I went to the Gnome Foundation Board meeting.
This was the first time that we had had a face to face meeting of just
the board (last year we had a meeting with the advisory board, but
that was it). Was a very productive meeting.

Monday 16th

The start of the actual conference. Saw a number of great talks
including Havoc’s freedesktop talk and Johan’s PyGTK talk. I gave my
first talk in the afternoon: EggToolbar
and EggMenu
. It had a fair turnout and was pretty successful.
After the talk was finished, I had a conversation with Hans Mueller
who was looking at some similar issues with menu handling and merging
in Java.

Had dinner with the AbiWord hackers.

Tuesday 17th

The second day had a lot of great talks. I got to Alan Kay’s
keynote a little late, but what I saw was very interesting. He made a
lot of good points (although I don’t agree with of all of them). I
then went to Anders’ D-Bus talk.

After the break, I gave my PyORBit
talk
. Less people attended this one than the previous one, but
there was still a fair number. I gave a few demonstrations of
remotely controlling Nautilus through its CORBA interfaces, and
getting notifications on metadata changes. Bill Haneman was at the
talk, and asked how it worked with the accessibility framework (as
expected). I hadn’t actually tested it but I am fairly confident that
PyORBit would be usable to script the AT-SPI interfaces. It would be
great to see Gnome become more scriptable in the future. Whether
CORBA is used for this purpose or not remains to be seen.

Went to the Ximian party in the evening. Got to catch up with some
more friends I hadn’t seen since last year. The pub was fairly
crowded in the area between the door and the bar, but there was a bit
more space near the edges.

I decided to leave a bit after midnight, since I was getting a bit
tired. When I got to my room, I found that the key card didn’t work.
After trying three other key cards in the lock (including the master
key card), they decided that the lock itself was broken and got the
locksmith in. Ended up getting to sleep around 2am. In the morning
they came round to replace the lock completely.

Wednesday 18th

The third day of the conference was the Linux@Work day. This day
had a wider/different attendance and wasn’t as focused on Gnome as the
previous days were. There were some interesting talks, including Alan
Cox’s keynote. The day finished with a wrap-up for the conference.

Quite possibly the best GUADEC ever.

Thursday 19th

The day after the conference, we had the Gnome Foundation Advisory
Board meeting. Again, this was very useful although I can’t give many
details about it. It was a great opportunity for the companies on the
advisory board to get some insight into Gnome’s direction, and to give
us feedback on what they were doing.

Afterwards, we met up and went to a Mongolian restaurant (one of the
ones where you fill a bowl with meat and vegetables, and then they
cook it for you on the spot).

Friday 20th

As well as organising a great conference, Glynn had also organised
a hike afterwards which I went on. The group consisted of me, Glynn,
George, Christian, Kjartan, Richard, Mickael, Carina, Richard, Alex
and his girlfriend. Mickael has since put some of his photos up on his
website
.

Everyone met up at Glynn’s flat, and then went to catch the bus to
Glendalough (which is south of Dublin). There are a few Glendaloughs
around Australia, so it was interesting to find out what the name
meant (Glendalough == Gleann da Loch == valley of the lake).

The bus stopped at the tourist centre, and we walked from there to
the one of the valleys. We then left the packs and walked up to the
top of the valley and walked along the ridge back to the town where we
got some food for dinner. We then made our way back to the packs to
set up for the night.

Saturday 21st

The next night we decided to camp closer to the town because of
the midgies. Even with lots of insect repellent on, they were still
annoying (they would get in your nose, throat, etc).

During the day, we hiked up a number of the mountains. The scenery
was great. At around 2:30pm, half the group decided to go up the last
mountain, and half went back to the pub. I decided to keep going,
which may or may not have been a good idea :) The ground
leading up to the base of the mountain was fairly swampy, so I was a
bit tired by the time we started climbing it (I am definitely not as
fit as I used to be). I was happy that I did climb it, as the view
from the top was great. We then went down to the pub to meet the
others. Had a very nice burger and lots of Guinness.

Unfortunately, there were just as many midgies at the new place we
were camping.

Sunday 22nd

We left Glendalough in the morning and arrived back in Dublin round
mid day. Later on that day, I had to get on the plane for another
long long flight …

Tuesday 24th (1:00 am)

When passing through Singapore this time, they told me I would need
to contact baggage services in Perth, but couldn’t tell me why. When
I got through immigration in Perth, I went to the baggage desk, and
they said that my pack didn’t get transferred in London. They said it
was on the next plane, and would be delivered that evening. This did
make it easier to get through customs though, so it wasn’t all bad
:).

It actually took another two days for my pack to make it home,
getting lost again in Singapore, or possibly Sydney (they weren’t
quite sure when I called). grrr.

Mailman/SpamAssassin

The article I wrote up on integrating SpamAssassin with Mailman 2.1
got reprinted in LinMagAU,
which was pretty cool. This edition also contains an interview with
Jeff. They are starting to pick up a bit of momentum, and may have a
print edition soon.

Mail Viruses

Like a lot of people, many many copies of the Sobig.E worm have
been sent to my account. I quickly configured the mail server to
start blocking the messages. However, I continue to receive many
delivery failure emails from other mail servers when they reject
messages which have my email address forged in the From: header.

Since the anti-virus software companies know that some viruses forge
sender addresses, it seems really stupid that they still send
rejection messages to the sender for those viruses. It would save a
lot of peoples’ time if they knew to discard rather than reject
certain viruses …