John’s Tidbits

Moo - Development, Trouble-shooting and Random thoughts…

Archive for the ‘FOSS’


Sorting in Mutt

A couple of days ago I discovered the following mutt config option.

set sort = threads
set sort_aux = last-date-received

This means you get the usual threading but that a thread is sorted by the date the last message in the thread was received. This keeps a thread which receives new mail at the bottom of your mailbox rather than up at the top.

Another idea I found useful is to sort my spam mailbox by subject. Since a lot of SPAM has exactly the same subject it makes it really easily to quickly scan the mailbox for HAM.

You can easily do this with the following additions to your muttrc

folder-hook . set sort=threads
folder-hook spam set sort=subject

You need to set the default as mutt will change the sort order when you change to the spam folder but won’t change it back when you jump out of it.

EC2UI extension for Firefox 3

I’ve been doing some work with Amazon EC2 the last few days. An invaluable tool is the EC2UI firefox extension that Amazon have written. This provides you with a simple GUI inside the firefox chrome which makes it really easy to manipulate your EC2 instances.

A few weeks ago Hardy moved to using firefox 3. This meant, amongst other things, that the amazon plugin stopped working. The firefox guys have a webpage up that explains how to update extensions for Firefox 3.

The main problem was with changes to the password manager. You can find my changes on my bzr branch and a packaged up version of the extension EC2UI for Firefox 3.0b4.

Update: See comments below for new versions

linux.conf.au 2008 selling out

It’s 15:11pm and there are only 11 tickets left for linux.conf.au.

WARNING: If you have registered but haven’t gotten around to paying yet then you are going to miss out.

So hop to it. Otherwise you are going to be a sad panda.

Sad Banda

Sad day for open standards

Its a sad day when one of the most open of standards bodies bows to corporate pressure.

Removal of Ogg Vorbis and Theora from HTML5: an outrageous disaster

Lift the cat who was amongst the pigeons up and put him back on his pedestal for now. (remove requirement on ogg for now)

The W3C Video on the Web Workshop starts tomorrow. Hopfully Silvia can help kick some heads back into shape.

Update: Possibly with a silver lining though, check out K’s take on the change HTML5 for free media: Today on #whatwg.

Out of the wilderness

I took another step out of the wilderness today…

Those who have know me for a while will know that up until recently I exclusively used linux virtual consoles (ie what CTRL-ALT-F1 gives you from within X) to do all my work except for browsing the web. Recently I stopped using them all together and moved totally into the land of X and started using gnome-terminal instead.

Well I suppose it wasn’t that big a step as my processes havn’t changed that much. I simply have a gnome-terminal with tabs full screen in the monitor on my left and a full screen firefox in the monitor on my right :)

I took another step today moving from centericq to pidgin for my IM needs. I’m quite liking it so far especially some of the pop up notification plugins since I can follow channel conversations without switching away from what I’m doing.

Now does anyone know if there is a plugin to sync all my configuration settings between different machines. That was the handiest thing about running centericq from inside a screen.

But have no fear I’m still using mutt for mail and doubt that will ever change.

SFD2006 - Return to sender

Pia posting about Software freedom day, software freedom day online shop is up, reminded me about something I’ve been meaning to post for a while.

When you send in the address to get your team’s t-shirts and goodies, make sure you get it right!

Last year I helped pack all the goodies that we sent overseas, this was sometime in August if I remember correctly. We needed to put a return address on the packages so I offered the use of Bulletproof’s address.

6 months later the following turned up on our doorstep.





Notice the use of hemp rope and wax seal. This box has been through a lot!

DSPAM case sensitivity

I use DSPAM to handle my spam checking and have been quite happy with it as it normally delivers >99.9% hit rate.

In the last few weeks the amount of spam in my INBOX had been getting progressively worse to the point where I noticed no spam whatsoever was making its way into my spam folder.

Looking through my logs I eventually found the following

May 10 10:03:03 fozzie dspam[30287]: Unable to find a valid signature. Aborting.
May 10 10:03:03 fozzie dspam[30287]: process_message returned error -5.  dropping message.

I process my spam by using a mutt macro which bounces emails to johnf-spam at inodes dot org. This then passes the email to DSPAM which reclassifies it. It does this by looking at a header it added to the email.

X-DSPAM-Signature: 464400d0223642194712985

However these were appearing in my INBOX as

X-Dspam-Signature: 464400d0223642194712985

I use procmail and a perl script to pre-process some of my email and it uses Mail::Internet which in turn uses Mail::Header. It bestows this piece of wisdom upon the world.

# attempt to change the case of a tag to that required by RFC822. That
# being all characters are lowercase except the first of each word. Also
# if the word is an `acronym' then all characters are uppercase. We decide
# a word is an acronym if it does not contain a vowel.

sub _tag_case
{

Now I can’t see where in RFC822 it specifies this but in section B.2 it does specify

Upper and lower case are not dis-tinguished when comparing field-names.

So on that basis I choose to blame DSPAM and applied the following diff

diff -ur dspam-3.8.0.orig/src/dspam.c dspam-3.8.0/src/dspam.c
--- dspam-3.8.0.orig/src/dspam.c        2006-12-13 02:33:45.000000000 +1100
+++ dspam-3.8.0/src/dspam.c     2007-05-11 16:25:11.000000000 +1000
@@ -2165,7 +2165,7 @@
           while(node_header != NULL) {
             head = (ds_header_t) node_header->ptr;
             if (head->heading &&
-                !strcmp(head->heading, "X-DSPAM-Signature")) {
+                !strcasecmp(head->heading, "X-DSPAM-Signature")) {
               if (!strncmp(head->data, SIGNATURE_BEGIN,
                            strlen(SIGNATURE_BEGIN)))
               {

Now to work out the best way to push that upstream.