ASCII - ISO 8859-1 Table with HTML Entity Names - Reference tables for character sets and HTML entities
Linkblog - 17.5.2004 - 11.6.2004
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
Haeufige Augenkrankheiten - Description of common eye diseases
Little Snitch - Reverse Firewall for Mac OS X - take a look when I have time
Noise Ninja 2.0 Beta - Noise reduction for digital images - now also for OS X
Xblend - OS X Frontend to emblend
randomthoughts: PyLucene - Lucene Wrapper for Python
NeuroKode Labs, LLC: remoteD - Interesting IPC solution: shared storage across process boundaries with dictionary interface
ASPN : Python Cookbook : Finding out the number of values the caller is expecting - Using bytecode disassembler to find out how many result values a function caller expects
WordPress Support › Static "like" pages - Discussion about creating pseudo-static pages (e.g. imprint) in WordPress
ASPN : Python Cookbook : Transactionable Objects - oversimplified idea for transactions on objects - not thread-safe, not stable
Python MQI Interface - pymqi. Version 0.5c - MQ Series Interface for Python - interesting in IBM environments
Releases | drupal.org - Download page for Drupal modules
Daring Fireball: Markdown Syntax Documentation - Interesting text conversion to XHTML for PHP and Perl - similar to reStructured Text
Nu Cardboard: Kangapy: Components
Another blogging software in Python - seems similar to PyDS
papercut.org - nntp server for the masses - NNTP server with flexible backend - integrable in forum software
Shrook 2 - RSS and Atom for Mac OS X - Yet another feed reader for OS X - similar to iTunes
Computation Streaming in Python - Interesting alternative technique to threads - particularly interesting for Medusa
entrian.com - goto for Python - goto for Python - GOTO and COMEFROM for Python