Linkblog - 25.5.2004 - 2.7.2004

Clotho - Development environment for Common Lisp on OS X

Glibc-based Debian GNU/kFreeBSD - Debian on the FreeBSD Kernel

Open Source Applications Foundation - Interesting PIM with reference to Lotus Agenda

Kate Bush Discography - Albums - This Woman's Work - Kate Bush album that I'm still missing - with some songs I don't have yet

Levenshtein - Very simple Levenshtein distance in pure Python

OpenMCL Documentation - Documentation for the best free PPC Lisp environment

PostgreSQL News 3rd Beta of Slony Master -> Multi-slave replication system - Replication solution for PostgreSQL

XchemeRPC - New homepage for the XMLRPC client/server for DrScheme

Satine for Python - XML Binding for Python - transparent use of XML data via native Python data structures

iTunes Music Store RSS Generator - RSS Feeds for iTunes new releases

Contax RTS Series SLR Camera Models - Plenty of information about the Contax RTS system

Radio UserLand: Bootstrap: How to redirect an RSS feed - inline redirect für RSS

ASCII - ISO 8859-1 Table with HTML Entity Names - Reference tables for character sets and HTML entities

New image gallery plugin - needs testers - WordPress plugin for images in posts

The 'process' Python module - Process Management for Python - simpler than the standard functions

Threadframe: multithreaded stack frame extraction for Python - Easier debugging of multithreaded Python applications

microlen.htm - Discussions about macro photography lenses

Natural History with the Microscope as a Hobby - All about microscopy and microphotography

Depth of field, magnification and close-up lens calculator - Calculation of depth of field and magnification ratios

PyWork - Web framework based on Apache, mod_python, XSLT and ZPT

Xoltar Python Page - Functional Programming in Python

PS/2 and MCA History - History of IBM PS/2 Systems

PyPerSyst - Orbtech Wiki - Persistence for Python objects

digitale Fine Art Prints - Barytabzug - Iris Giclee Prints - exposure on baryta paper - unfortunately not really cheap

Schwarzweiss-Magazin Wollstein 6/2003 - Permanence of various photographic techniques

E-MailRelay -- SMTP proxy and store-and-forward MTA - general purpose SMTP proxy with its own spool handling and the ability to integrate external filters

fotoKASTEN - Digital photo development on the Internet

Yet another image printing service with an affiliate program

mtaproxy.py - Teergrube utuility for SpamBayes - Tarpit with integrated SpamBayes

Stopping spam with the Anti-Spam-SMTP-Proxy (ASSP) - SMTP proxy with Bayesian filtering, this one is without honeypot

Greylisting with Exim and PostgreSQL

Greylisting is a technique to reduce spam by temporarily rejecting emails from unknown senders. The mail server is then expected to retry sending the email after a short delay. Since most spam is sent by machines that don't retry, this is an effective way to filter out a large portion of spam.

I've implemented greylisting for my mail server using Exim and PostgreSQL. Here's how it works:

How it works

When an email arrives, Exim checks if the combination of sender, recipient, and sending server has been seen before. If not, the email is temporarily rejected with a "try again later" response. If the combination has been seen before and enough time has passed, the email is accepted and the database is updated.

Implementation

The implementation uses a PostgreSQL database to store the greylisting information. A simple table stores the sender, recipient, sending server, and timestamp of the last attempt.

Configuration

To enable greylisting in Exim, you need to add an ACL rule that queries the database and decides whether to accept or reject the email. The rule should be placed in the DATA ACL.

Results

Since I've enabled greylisting on my mail server, the amount of spam has decreased significantly. Most spam never retries, so it's never delivered. Legitimate emails are still delivered, just with a slight delay on the first message from a new sender.

Gallery :: your photos on your website - Interesting software for photo albums on the web

Photo Organizer - Feature-rich web photo album with a rather stylish default look

Silverlab Partnerprogramm - Photo print service with financial participation of the photographer

EditThisPagePHP - Edit pages online in PHP - Alternative for situations where a real CMS is too large and a wiki or weblog is too rigid in structure

Vellum: a weblogging system in Python - Nice little weblogging system in Python

drbs - Distributed Replicated Blob Server - Server system modeled after Google File System

GDL - GNU Data Language - Another one for the number crunchers

Maypole / Apache::MVC - Perl framework for creating web applications

mnot's Web log: Ubiquitious Fragment Identifiers - Interesting fragment link solution with CSS

paramiko: ssh2 protocol for python - SSH2 protocol implementation in Python

PYSH: A Python Shell - Shell that uses Python as a shell language

Acratech, Inc: Precision Machining & Photographic Equipment - Manufacturer and marketer of the Ultimate Ballhead

KODAK PROFESSIONAL READYLOAD Single Sheet Packs and Holder - 4x5 inch single sheet film cartridge system for easy sheet film use

The Contiki Operating System - System for computers with limited memory

Enblend - Blend images together without visible transitions - preliminary stage to panorama software