February 23, 2004
RssBandit

So I decided to try RssBandit again, as I do every now and then. I liked their boasts of lower memory usage because SharpReader can be a bit of a pig - it's running at 88mb at the moment. Unfortunately it looks like I'll still be staying with SharpReader. Within minutes the RssBandit GUI had locked up on me. I clicked on a feed that it had not yet retrieved the items for and it seemed to lock the GUI while it tried to fetch the feed - which it couldn't because the site was down. This gives a terrible user experience. The first thing users do when first installing a piece of software is click around - explore the GUI and the options and see what they can do. For RssBandit to freeze during this is unacceptable.

The status bar of the application includes a resize widget. This, unfortunately, does not let you resize the window. This gets me over and over again. D'oh!

I was reading a code project article in the reader pane, and for some reason the comments view doesn't work properly inside RssBandit. I guess it uses it's own browser string which CodeProject doesn't recognise and therefore disables the DHTML comments. Anyway, I tried to open it in a new window and RssBandit opened it internally again. So I clicked close on the tab that was loading and suddenly RssBandit started opening hundreds of internet explorer windows. I had to kill iexplore.exe and RssBandit via task manager to save myself! Scary...

Rants out of the way, I do like the fact that I can alter the reading layout to look like Outlook (wide-screen) and that I have more control over the fonts to display the GUI with. The defaults in SharpReader are better than those in RssBandit but I've changed them to remove bold and bright red - a much more soothing user interface. I would like more colour choice in the font choosers but you can't have everything! I also like the fact that there's a bundled set of XSLTs to control the display of each item.

Posted by Simon at 12:36 PM
February 13, 2004
Find all pre-processor directives affecting a line of code

From the same guy who wrote Cog, see this useful python snippet:

http://www.nedbatchelder.com/blog/20040203T140829.html

This code will find all of the pre-processor lines that affect a given line of code. I wish I'd found this about 3 years ago.

Thanks Ned!

Posted by Simon at 11:46 AM
Cog - use Python for inline code generation

Cog from Ned Batchelder is a tool for generating code.

To use cog you insert blocks of simple python into your source code (delimited by special comments) and then run cog over the file. Cog inserts the generated code into the source file (replacing any previous cog-generated code).

I'm using Cog to create large message-type enumerations and message factories in three different code libraries - one in Java, one C++ and one C#.

http://www.nedbatchelder.com/code/cog/index.html

Recommended.

Posted by Simon at 11:44 AM
February 09, 2004
Kick-ass mail serving

I'm finally caving in and doing something about my mail server. It's a Linux box running Gentoo and it does the job very admirably. The problem is spammers and virus writers. These people cause my poor mail server to deliver me lots of e-mail that I have no desire to see. I am getting around 100 copies of the MyDoom virus per day to two addresses. That's not a huge amount - I know people deal with more - but it is annoying.

I use qmail on the server which is a good MTA. There are other good MTAs too - Postfix, Exim - I'm not starting a holy war here. I simply decided to try qmail this time and I quite like it. I'm going to install qmail-scanner which is a qmail add-on that harnesses tools like SpamAssassin and F-Prot into my mail delivery path.

I used SpamAssassin on my previous mail server for a while, and had a lot of luck with it until razor failed one day and SpamAssassin just sat waiting for it - no mail was delivered. This was unacceptable and I hope they've fixed this. I guess I'll find out.

The really exciting thing about installing this software isn't the combination of excellent tools working to make my life easier (though that is cool). The exciting thing is how easy it is to get it all installed:

> emerge f-prot
> emerge Mail-SpamAssassin
> emerge qmail-scanner

The Gentoo portage package system resolves all of the dependencies (software, perl-packages, you-name-it), downloads them, patches them (where necessary), builds them and then installs them. Great! Sometimes I really do think that windows developers could learn a lot about distribution from Gentoo's package system.

Posted by Simon at 05:54 PM