User Spam Preferences

Over the past few evenings, set up WebUserPrefs on birdhouse hosting to allow users to configure their own SpamAssassin sensitivity thresholds as well as whitelists/blacklists. In the process, ended up contributing my bug fixes and new features back to both WebUserPrefs and the Communigate Pro plugin for it.

Birdhouse has deleted 84,982 spams for 40 mail users in the past 7 days alone. Now up to 98-99% spam blockage for users with filters on stun. One of our power users receives 13,000 spams per week to a single user account. The vast majority of them were to made-up names on the domain; rejecting mail to unknown names brought that down to around 1,000. Satisfying progress.

Music: Yo La Tengo :: Flying Lesson (Hot Chicken #1)


To lead a fulfilling life, one needs haiku beamed to one’s cell phone daily. Birdhouse is proud to host, home of a mailing list that takes advantage of the limited text capabilities of cell phones’ SMS-email gateway capabilities — haiku are perfectly suited for the size constraint. Of course you don’t need an SMS phone to sign up – any email address will work.

tinywords is the brainchild of writer and Mobile PC Magazine executive editor Dylan Tweney, whose weblog is also hosted here.

Music: Altai Hangai :: Mandukhai Khatan

Napsterization, Artefact Salvage …

Big welcome to all of these recently added birdhouse hosting customers:, centered around an integrated weblog, is “a resource to understand the napsterization by digital media of analog, old economy institutions, frameworks and media. It is … an opportunity to understand how many people use digital media, a meeting place for people to connect over their experiences with digital media, and a place for others to learn about these issues.” — promo site for an amazing San Jose garden ornamentation outlet. “is a multimedia documentary project that combines photographs, sound and text to tell the story of the impact of homicide in the African-American community in Oakland. Like a stone dropping into a pond, each death ripples throughout the community to touch dozens of lives.”

Named for its author’s love of both rock climbing and the game of Go, is written by Xiao Qiang, the Tang Teaching Fellow and the Director of Berkeley China Internet Project at the UC Berkeley Graduate School of Journalism.

As well as several sites whose owners prefer to remain hidden.

Music: Steve Hillage :: Saucer Surfing


Installed ClamAV virus definition scanner — an open source virus detection module to be used in conjunction with mail transfer agents. cgpav provides the glue to use clamd in conjunction with CommuniGate Pro. freshclam updates the virus definition tables hourly.

Attention! You sent an infected message with the
VIRUS: Eicar-Test-Signature
It was rejected for delivery.

With the addition of Razor, very little spam is getting through my gateway — Razor made an incredible difference (as I expected it would, since it’s human/collaborative). The remaining gravel in the shoe is all of the autoresponder fallout from MyDoom.

Music: Land of the Loops :: The Warm Glow of Waltham

Email Suppression

I did not realize when I got into the small-time web/mail hosting business that the majority of my energy would be consumed in spam combat. Realized this morning that running a mail server is not so much about enabling the flow of email as it about suppressing it. Well, that’s not quite true, but the vast majority of effort does goes into keeping mail out rather than letting it in. AOL is now experimenting with methods of altering DNS databases to prevent spoofing.

In 12 hours, I’ve suppressed more than 750 instances of MyDoom with a crude set of rules… and another 250 got through. It’s and endless battle.

Music: Tim Buckley :: Strange Feelin’


Another gotcha when migrating from apache 1.x to 2.x: The included htpasswd command will generate an .htpasswd with no group or world read bits: -rw-------. You will of course not notice this for a very long time, though it will seem obvious in retrospect. When your .htaccess auth doesn’t work, you will think the .htaccess syntax has changed, but not be able to figure out where. It hasn’t. But the Apache 2 docs don’t mention jack.

Music: The Fall :: Spectre Versus Rector

RPM Hell

Trying to get the Image::Magick libraries and accompanying perl modules* installed via RPM, I am reminded of the kinds of reasons I happily ditched Linux in favor of Mac OS X Server — RPM Hell is… hell. In my previous Linux explorations, as in this current venture, it seems that the majority of my RPM experiences have gone badly, or require way too much effort to resolve. Install of package A depends on presence of Package B. But B requires C, although A has no awareness of its need for C. Each RPM must be specifically built for your specific distro and version, or chaos follows. Some install says you don’t have but need some other install, but when you go to install it you’re told you already have it. Try to uninstall it and are told you don’t have it. And so on.

Building from source is easy in principle, but failure is an all-too-frequent possibility. Building Image::Magick on RH9 has been an abysmal failure, even with direct assistance from the developers. There are too many distributions with too many differences for Linux devs to guarantee any particular experience on any particular machine for any particular package. Support forums may or may not yield useful help.

Biodiversity may be that which has allowed Linux to live through hard times, but it remains a thorn in the side for ease of use — and ease of use applies to sysadmins as well as users.

* ImageMagick does a zillion things — MovableType uses it to build thumbnails of uploaded images on the fly, among other things.

Music: Wire :: Mannequin

Running on Sonic

A bit of downtime this morning as we migrated the main birdhouse systems over from a Darwin server at Cliq to a RedHat server at Sonic’s data center. A few unanticipated glitches: DNS did some really weird stuff where some servers were caching [hostname] but not Of course I thought my Apache configuration was to blame, so spent time chasing red herrings. The new server runs Apache 2 rather than 1.x, and some of the directives have changed. Got caught off guard when some of the old syntax halted httpd on launch. More fiddling.

Also upgraded MySQL from 3.23 to 4.0 (transactions!) and upped CommuniGate and SpamAssassin while I was at it.

Things are settling down nicely now. I’m not exactly thrilled to move from Darwin to Linux. Ultimately it’s not much different – Unix is Unix, in a sense – but there are pride and comfort factors. But there are also advantages, such as the fact that many control panel and billing systems are built expressly for Linux (though I’m still using WebMin, some home-brew shell scripts, and a homemade PHP/MySQL billing system).

The new server has around 4x – 5x more CPU than the old one, which has greatly sped up MT and other hungry processes.

More tweaking to do… then I’ll bring over the customer accounts.

Music: Public Image Limited :: Radio 4

Spam Auto-Kill Count

Birdhouse Hosting uses SpamAssassin in conjunction with CGPSA to tag all inbound email message headers and delete msgs that meet a given threshold for spammy-ness before they’re ever downloaded by customers. CommuniGate logs are set to roll over every 7 days. Wrote a simple script that queries the CGP logs for discard events and outputs the result count to an include which you’ll now find in the “Tech Crap” section to the right (and in this post). This number will grow as A) the proportion of spam in the wild continues to grow and B) the number of birdhouse customers using the auto-kill feature grows.

Spams auto-killed by CGPSA in the past 7 days: (refreshed hourly).

Music: The Standells :: Why Pick On Me