Google Summer of Code 2006 proposal

Author

I'm a CS undergraduate at the Witelon University of Applied Sciences in Legnica, Poland.

Project

Description

The aim of the project is to implement spamd on top of Apache, as a mod_perl module, reusing Apache features where possible; namely:

...and possibly others.

Deliverables

  1. Working replacement for spamd, as compatible as possible (excluding, for example, switching UIDs).
  2. Detailed documentation, including design overview, setup instructions and security discussion.
  3. Performance comparison against spamd.

Approach

Writing simple working implementation, testing with different MPMs, reviewing different virtual user concepts, designing configuration system, implementing it, considering possible extensibility requirements, implementing hooks. Review. Testing different setups, performance. Writing documentation.

Approximate schedule

May

exams

Jun 02 - Jun 10

basic implementation, getting familiarity with SpamAssassin internals

Jun 11 - Jun 30

testing, designing and implementing detailed needs

Jul 01 - Jul 20

verification, further testing, bug fixing

Jul 21 - Jul 31

testing performance, starting work on documentation

Aug 01 - Aug 21

documentation, polishing

General experience

Programming

~6 years of experience as Perl programmer, fluency with C, intermediate level with C++ (including basic STL knowledge, but no other libraries), basic Python and PHP.

UNIX

~7 years as Linux user, including ~4 years as PLD Linux Distribution developer (mostly dealing with Perl and its modules) and ~3 years as a system / network administrator (including mail server administration).

SpamAssassin

I've been using it since ca. 2002, have good understanding of mail processing problems (I wrote a MIME parser once), spam detection process and technologies involved.

Additional

Relational databases as designer and administrator (small and medium sized databases), experience with PostgreSQL and MySQL.

Decent Apache / mod_perl knowledge (however, very little experience with version 2.x as developer).