ben / tech
Some of the code that I work on is browsable in gitweb.
msnlib - a Python MSN messenger protocol library and client
git - a version control system
cogito (defunct)
a few patches I use on top of msnlib 3.5:
3m for 3 minutes, 2d for
two days.Having become frustrated at my inability (due to wine) to finish off a sudoku puzzle that a Japanese girl made me attempt from a copy of British Balls, a magazine for backpackers and British in Australia, I knocked up a solver over a couple of days in Haskell (my first real haskell code). There is a git repo, that is not online yet. I've only tested it on one puzzle, the abovementioned one in British Balls. If I get round to it, I'll type some more in and see if it can deal with them.
The code is under a BSD-like license.
You can view the repository in gitweb.
Spam filtering of my inbound mail is mainly focused around spamassassin, which combines a large number of tests to provide a single numerical score.
On one of my MXes, I use the spamassassin milter to check messages during the delivering SMTP session. Mail that scores very highly is rejected at the SMTP level. Surprisingly (to me), a lot of mail is rejected in this fashion. This is better than sending a bounce email because it is sending back the reject down the same channel as was used to deliver the message, rather than sending a new email to what the headers claim is the original sender.
Unfortunately, this does not catch mail delivered to my lower priority MXes (a common spammer trick), though I've previously used the BOGUS_MX spamassassin plugin (I don't have it running at the moment though) to give extra points for such mail.
Mail which gets this far is never bounced due to spaminess. Instead, it falls into one of three buckets: probably-not-spam; maybe; probably-spam, based on the spamassassin score. probably-not-spam is for messages which spamassassin gives a 'not spam' rating; maybe if for messages which spamassassin gives a 'spam' rating but with a borderline score. 'probably-spam' is for messages which spamassassin gives a very high score.
For outbound mail protection, I have SPF set up. SPF stores an outbound mail policy in DNS. Anyone receiving mail claiming to be from a hawaga.org.uk email address can check this policy to determine if the mail is authorised or not. I've tried a few different policies. At the moment, the policy lists a few IP address blocks that are permitted to send, and SOFTFAILs on everything else (there are still a few places that seem to send mail as me, such as blogger...). Previously, I've had per-user filtering, to list usernames that it was permissible to send mail from (hawaga does not have many outbound email addresses), but this isn't deployed at the moment.
Shepard tones: See this wikipedia entry. There's java code to generate sox raw data format:
Shepard.java and an mp3 of the output:
shepard_tone.wav.mp3 (3 Mb).
Use like this:
java Shepard < a.dat && sox a.dat && sox a.dat a.wav
-- end --