Some problems in common definitions of 'spam email'

The most common attempts to define 'spam email' is either as 'UBE'(Unsolicited Broadcast Email) or 'UCE' (Unsolicited Commercial Email);for example, the spamhaus.org definition here . I tend to think thatthis sort of definition of spam has some problems.

Let's start with a provocative question: is advance fee fraud(so-called '419' email) spam email? (You know this type of spam;the classic version has Mrs. Mariam Abacha,


Pinging weblogs.com in Python

In the weblogs world, to 'ping' somewhere is to send an automatednotice to an indexing site that your blog has updated. Popularindexing sites include weblogs.com and technorati.com . Major blogging packagesalready do this out of the box, but if you've rolled your own(such as me, with DWiki ) you're on your own.

In a modern blog world with millions of blogs and RSS and Atomsyndication feeds, something like weblogs.com looks more than alittle bit old


Something C programmers should not write in Python code

In C, a common idiom for initializing multiple variables to the samevalue is serial assignment:

a = b = c = 0;

Python allows for the same thing; just remove the semicolon in theabove and it's valid Python syntax, and it even works. So when I wasstarting Python, I wrote things like that. And then one day I wrotealmost the same thing, in an __init__ function in a class:

self.fooDict = self.barDict = {}

The


MSNbot goes crazy with RSS feeds

Unfortunately, the issue I discussed in ADynamicSitePeril is notjust a theoretical problem. And it's my old friend MSNbot , the MSN Search web crawler,that's responsible.

It's been known for some time that MSNbot is very aggressive withsyndication feeds(for example, see here ). The official explanation is that they want to have a really up to date search index, andto get breaking news they have to poll RSS feeds frequently.

Well, bully for them. However, it's


Some hints on debugging memory leaks in Python programs

Programs written in garbage collected languages like Python aren'timmune to memory leaks (except in a picky technical sense), justvastly less prone to them. Unfortunately, this rarity can leave youstruggling with the problem should it come up.

In languages like C, memory leaks generally happen because you'veforgotten about a piece of dynamically allocated memory. In Python,it's the opposite problem: you get memory leaks when you don't forget about objects, when your program holds references to objectsthat


A peril of having a highly dynamic web site

WanderingThoughts , this blog, is built on top of DWiki , my sprawlingwiki-oid program. DWiki is layered on top of a normal Unix directoryhierarchy and does things by having different ways of looking at it(called 'views' in DWiki terminology); all of DWiki 's support forblogs is implemented with general features that can be used on anydirectory. The only difference between WanderingThoughts and say the DWiki help area is that WanderingThoughts is set up todefault to the 'blog' view and has some


Weekly spam summary on September 24th, 2005

As time goes by, more and more of these weekly spam summaries aregetting automated. Which just goes to show that sooner or later, I canlearn from experience and do things right.

This week we received 11,900 email messages from 245 different IPaddresses, and our SMTP server handled 63,600 sessions from 7,400different IP addresses. Email volume is a tiny bit down from last week , but session volume is up;we're probably


It's a multi-protocol world after all

I just fixed a wee bug in DWiki 's Atom syndication feeds. The bug wasthat https:// URLs (such as references to Red Hat's Bugzilla ) got mangled in Atom feeds,and only in Atom feeds, to be prefixed with the web site's URL.

DWiki normally generates shortened URLs that have full paths but omitthe 'https://website/' bit (for various reasons). But when itgenerates Atom feed entries, DWiki needs to generate only absolute,fully


A spammer roundup

It's time to do a roundup on the status and activities of various ofmy perennial spammers and spam sources. (Unfortunately I can'tliterally round them up, nor use something like Roundup( tm ) to make them disappear. Spammers aremore persistent than weeds.)

Hotmail's spam problem continues unabated,despite any attempts to get Microsoft's attention. This week alone werejected 330 attempts by Hotmail to get us to accept non'@hotmail.com' addresses from them.


Be cautious with numbers in awk

I like awk , and often use it for quick little log aggregation things(often on the command line, if what I am interested in is a one-off).But awk has a small problem: it likes printing large numbers inexponential notation.

The minor problem with this is that I find exponential notation fornumbers harder to read than straight decimal notation. '3.18254e+10'is just harder to understand casually than 318254405