Excessive mail filtering (by )

I've been taking advantage of some Christmas downtime to bring the Warhead mail system up to scratch.

We now have many layers of defence.

  1. When a remote mail server tries to connect to us to send email, if they are a known blacklisted spammer or have a wrongly configured mail server, we reject them up front.
  2. If they get through that, then unless they are a known good mail server, they are told to go away and come back later. Many spammers don't bother retrying mails if asked to, so this cuts out a lot of spam.
  3. If they are a known good mail server or they do come back later to redeliver the email, then the message is accepted.
  4. It's then sent through a content filter, which checks it for known bad signatures (viruses, scams, some spam, and phishing attempts). If it matches any, it's bounced back to the sender.
  5. The content filter then runs it through SpamAssassin's battery of message scoring tests, which rate the chances of the message being spam. If it looks spammy, it's marked as looking spammy with ***SPAM*** in the subject line, but still delivered (since SpamAssassin's tests are statistical in nature, they can snag false positives)
  6. Finally, the message is forwarded on, or delivered to a local mailbox, depending on the recipient.

From my existing statistics, I know that of about 15,000 messages a day, 13,000 are stopped by the first step alone (which is good, since blocking at this stage saves a whole lot of resources on our mail servers).

I'm looking forward to seeing how many of the surviving 2,000 make it past the rest of the filters 😉

Making custom power cables (by )

I take great pleasure in making custom power cables for things. It's very satisfying.

Lately, I've been having fun with this. Firstly, I was frustrated when visiting a datacentre that had only IEC power connectors, rather than UK standard 13A sockets - there was nowhere to plug my laptop in.

So, I've made a special adaptor cable:

IEC C14 to BS 13A power adaptor lead

Job done!

Nextly, at work, we have two 16A managed power distribution units, which have 24 outlets on them, each individually controllable via the network. They're lying around, surplus to requirements. We also have two 32A units in use in the racks - and more than 24 devices that need plugging into each.

Now, the outlets are mainly IEC C13 ten amp ones, but there's a small number of IEC C19 sixteen amp outlets, so we struck upon the crazy idea of attaching the 16A units to the 16A outlets on the 32A units. Thing is, the 16A units have 16A industrial plugs on them - not C20 plugs that go into C19 outlets.

So, once again, I made an adapter cable:

16A power cable - industrial to C20

Well, two identical adapter cables, to be precise.

Lots of fun.

Fixed network access from PHP apps – but broke WordPress even more… (by )

I upgraded to PHP5 from PHP4, in desperation, and lo, PHP apps can now once more connect to the network.

I'd gone as far as to ktrace an httpd process running a PHP app, and found that it produced an identical syscall trace to PHP run from the command line - up until it tried to read back from the socket, whereupon it gave a one-byte buffer, so read only the first byte, then hung thereafter. While when run from the CLI, the same PHP code gives a buffer of 0x2000 bytes and works fine.

So, I tried the one last thing I could think of (having failed to manage to convince gdb to attach to a running httpd child process) and moved to PHP5.

And, wow, it worked!

At the cost of breaking all our WordPress blogs. They don't show article bodies any more, and output endless complaints to the error log.

Still, now outgoing network access is fixed, webmail works again, my RSS aggregrator works, and it's just occured to me that the recent overwhelming flood of blog spam I've had has probably been due to Akismet being unable to reach its server!

Big server upgrade! (by )

Whew. I'm just in the final stages of migrating love.warhead.org.uk's backend storage over to a new (much bigger and faster) server.

This stage consists of poking at the things that aren't working right, and finding out why.

For example, my blog seems to be showing the very first posts we ever made to it on the front page...

Something of a shock (by )

During my weeks in London, I stay in a side-room in an office.

Tonight, I went to bed at around half past midnight. I said goodnight to the two people who were still in the office, shut my door, and settled down to sleep.

Then suddenly woke up at 2am, jolted awake by the recognition of the distant sound of the burglar alarm being armed. Something in my sleeping mind recognised the sound, and realised it was a bad sound. I'm quite impressed.

I remained very, very, still, then slowly cracked my eyelids open and peered up at the motion sensor in the corner above me...

Did I imagine it? Or was I now in a building with an armed burglar alarm, complete with loud siren at 2am and a link to a remote control centre?

I considered the distance to the alarm control panel, and the fact that I was totally naked. When you unlock the door, the alarm starts beeping down a countdown before which you have to key the number in. Could I leap out of bed, grab my dressing gown, rush out, and disarm the alarm before it went off?

I carefully rotated my head to see the sensor better. It was in the corner right above the bed, looking out towards the large window. I was probably not within its field of view, but where did the field of view extend to?

I extended my left arm, the one directly beneath it, and carefully shifted my books off of the bed, then gingerly, heart pounding, slid myself out from under the duvet until I was directly beneath the sensor. I could now lift my head, and start trying to look around the room to try and find out where I'd left my dressing gown.

The alarm went off. No beeping warning that I had ten seconds to enter the code: it just went off, screaming. I lept from the bed, dived onto my dressing gown, shoved it (balled up) into my groin, and burst out of the door, along the main hall of the office, and typed the deactivation code faster than I've ever typed before.

Silence fell. Apart from the slamming of my heart pumping on overdrive, my system flooded with adrenaline.

I walked back to my room, trembling and sweating, fumbling to put the dressing gown on properly.

At which point, for some reason, the printer suddenly burst into life and printed another test page. I picked it up from the out tray and dumped it into the pile of test pages next to it, leaving smears of finger sweat on it, then went and curled up on the bed until I felt up to writing this bizarre experience up.

Now I'm going to go and make a sign to attach to the alarm control panel: "DO NOT ARM IF ALARIC IS ASLEEP".

Then try to get back to sleep, which I suspect will take me a while.

The alarm panel is showing a series of numbers on its display, rather than the usual blankness. I'm still wondering if the police are going to turn up or something, since I'm pretty sure it's linked to some remote location.

WordPress Themes

Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales
Creative Commons Attribution-NonCommercial-ShareAlike 2.0 UK: England & Wales