Erik Enge writes:
Anthony Ventimiglia anthony@ventimiglia.org writes:
Um er "Package" in Lispspeak
Actually, no. Look at Franz' FTP server (opensource.franz.com) which is most definitely a package but hardly a library. Much better would it have been if Franz wrote an FTP server library and then wrote their FTP server on top of it. Then, if I thought they approach on the FTP server was poor and wanted to do it differently I wouldn't have to implement the library all over again.
Good point, I've always been of the mindset that libraries are the most useful. So if I wrote a filter, it would first be a library, then a separate filter program on top. This is what I did with the C++ library (http://libbpfl.sf.net/). This is also because Bayesian filtering has uses well beyond simple spam filtering.
In Lisp the technical difference between application and library is certainly less clear than in (for example) C but the programmer still have to think about how others will his software for it to become a good library.
You make excellent points, I usually think of them as synonymous, but that may reflect my personal philosophies with respect to lisp. I usually write libraries as packages which can be built into programs with a few top level functions.
Well now you've given me incentive. The Bayesian end is pretty much complete, And writing a working filter should be pretty easy. I want to give it a HTTP frontend (via clhp) to make control easier, kind of like the way Popfile works, I could make the filter work as a daemon, which would filter every message that comes in and add an extra header indicating the "Classification" (Bayesian filter allow for more than just Spam and non-spam). Then you could use procmail to filter based on the header. I don't know how it would integrate so if you could give me some insight, I could design it to fit.
We use Exim at the moment and /etc/aliases to shovel mail into Mailman. I think Exim has some features to redirect messages into your software and then back out again.
How does mailman work, If it recieves mail the same way user mail is delivered, then it should be trivial to pipe it through a spam filter and procmail along the way. Then procmail could isolate spam and send normal messages along their merry way.