I have new system enthusiasm

I get it every so often: a new system that consumes my attention, mythoughts, and my interest. I find myself thinking about it all the timeand then working on it all the time; it doesn't matter that I'm not atwork, I want to work on it anyways so I do. And I'm impatient to seewhat I've built go into production, to actually get used, to give me feedback .

The current new system enthusiasm is for our new mail


An improvement in my comment spam precautions

A while back, I thought that a comment spammer had broken my simplescheme to prevent people from fetching the 'addcomments' page once and then using their zombie farm to submit spam, soI decided to switch to a more secure system for this. Since the weaknessin my scheme was spammers being able to replace my hidden informationabout the IP address that originally fetched the 'add comments' pagewith their own, the obvious fix was to sign the IP address using HMAC .

(It turned out that the


Weekly spam summary on October 6th, 2007

Unfortunately, our SMTP frontend died Thursday afternoon, so some ofour usual stats are approximations or partial stats. Having said that,this week we:

  • got 11,577 messages from 283 different IP addresses.
  • handled 20,711 sessions from 1,929 different IP addresses.
  • received at least 317,396 connections from at least 73,000different IP addresses.
  • hit a highwater of 38 connections being checked at once.

In


Why we don't use cable management arms

One of the things I discovered when I came here was that while cable management arms camestandard with many of the servers we bought, we weren't using them; infact, when we moved servers that had them, we tended to remove them.This surprised me a bit, since they're generally a part of a wellorganized rack, and I recently got around to asking my co-workers aboutthis.

It turns out that there is a simple reason: heat dissipation. Ourracks are all


The corollary to who actually benefits from bug reports

The corollary of who actually benefits from bug reports and yesterday's principle is that the more work you make people go through to report bugs,the less bug reports you get, and almost certainly the less good,detailed bug reports you get (because those are a lot of work ).

Here, 'work' includes all of the various bits of overhead that you makepeople go through to file bug reports, including creating accounts .Also, every question that you ask in the process of submitting the bugreport


A basic principle of system design

I've mentioned this in passing before, but I should be explicit at leastonce. Here is a very basic principle of designing systems that realpeople will use:

The people that benefit should be doing the work .

Okay, there is one exception: the people getting the benefit can payfor the work instead of doing it directly.

You design systems that violate this principle at your peril, becausegenerally it doesn't work in the long run. You'd think that thisprinciple would be obvious,


A gotcha with 'bidirectional' pipes to commands

By bidirectional pipes I mean a situation where you start a subordinateprogram and both write to its standard input and read from its standardoutput. There are a fair number of programs that are programmed like thefollowing pseudo-code:

to, from = pipecmd("subprogram", "rw")write(to, stuff)reply = read(from)

People write these programs, test them a bit, start using them, havethem work, and then one day wake up to discover that their program has


How Exim determines the retry time for local deliveries

The Exim documentation is a little silent on howExim determines the retry time for local deliveries. Since I spent todaylooking into this, I might as well write up what I've learned.

Exim's retry rules are based on matching patterns against 'the failinghost or address' (as the documentation puts it); call this the retrykey. For local deliveries, it turns out that the retry key is the fulladdress (including any local part prefixes or suffixes) that is handedto the transport


Weekly spam summary on September 29th, 2007

This week, we:

  • got 11,909 messages from 265 different IP addresses.
  • handled 26,934 sessions from 2,995 different IP addresses.
  • received 297,885 connections from at least 101,029 different IPaddresses.
  • hit a highwater of 16 connections being checked at once.

Volume is a bit up from last week . Lookingat the numbers I am reminded of how striking the number of differentIP addresses is


Understanding Exim's weird way of doing retries

First, some terminology. A top level address is an address that amessage starts out being sent to; for example, every (accepted) RCPTTO in SMTP creates a top level address for the message. A destination is a place that a message is ultimately going to be delivered to, andmay include things like files. A top level address may turn into morethan one destination through means like .forward files, aliases, andmailing list files. At a conceptual level, all MTAs have two main jobs