The minimum antispam features of a modern SMTP server
I have a machine running Debian's 'Woody' release. Debian Woody isseveral years old and uses Exim 3 as its (normal) mailer. Exim 3unfortunately doesn't have many anti-spam features.
Exim 3's lack of antispam features combined with spammers vigorouslyfinding some email addresses on the machine has been giving me lots ofopportunities to a) experience semi-normal Internet spam life (eugh,says I), b) grind my teeth a lot, and c) contemplate what anti
Why apt-get is not my favorite application
In a nutshell:
# apt-get upgradeReading Package Lists... DoneBuilding Dependency Tree... Done3 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.Need to get 1351kB of archives. After unpacking 77.8kB will be freed.Do you want to continue? [Y/n]
Truly, the count of packages to be fiddled with is more important that telling me what they are , by default. Here, apt-get
What RSS can learn from Usenet
If you look at it in the right light RSS is a lot like Usenet, withRSS feeds taking the place of newsgroups and entries taking the paceof articles. And they both have similar issues of organizing,selecting, and filtering massive amounts of information.
The big difference is that decent Usenet newsreaders have much bettertools for dealing with this than RSS readers seem to. At one levelthis isn't too surprising, since Usenet newsreaders have been around alot longer than RSS readers. At another level it really
Mozilla versus SeaMonkey
I still use Mozilla as my browser, built from the CVS source codebecause I use several custom hacks (hacks that the Mozilla Project isnot going to want back). However, I only upgrade my binaryperiodically. Today I had the unfortunate experience of trying toupgrade to the latest CVS source code version.
For those not current on the whole story, there has been a little bitof a fissure in the Mozilla Project community. When Firefox (andThunderbird et al) started getting good, it was decided
Fedora Core 4's buggy Anaconda
I am quite irritated right now, because Fedora Core 4 has the mostsignificantly buggy Anaconda installer that it has ever beenmy displeasure to have to try to make work. These are bugs that areboth serious and obvious, one of them even introduced because oflast-minute change. (Have people learned nothing from history?Hasty last-minute changes always have bugs; that's why you don'tmake them .)
- You cannot repartition drives, because Ananconda holds open areference to an old partition,
The big trick of running lots of systems
There's a lot of rules of running large-scale systems, with lots ofmachines. I'll probably be writing up my own version of them at somepoint. But they all really come down to one big trick:
Don't administer individual machines .
That's it. Everything else is in the implementation details. (Ofcourse, the devil is always in the details.)
But what does it mean ? More or less what it says: you should neverdeal with machines one by
There's two sorts of large systems
A lot of what I think about and do is keeping large computer systemsrunning. In an online discussion recently I've (re)realized that thereare two different sorts of 'large systems', each with very differentchallenges.
One sort of 'large system' is large because it handles a lot, forexample a mail system that handles email for 25,000 people on asingle, beefy machine. Running a single large machine like this ismostly a matter of tuning, and it
Checking for dead DNSBls
Another Saturday, another spam entry. Today I decided to look at ourlogs to see if some of the DNSBls we check had either gone away orweren't giving us any hits. Since our software checks DNSBls insequence instead of in parallel, removing useless DNSBls both reducesquery volume and speeds things up slightly.
(In general, it's wise to do this periodically unless you're currenton news.admin.net-abuse.email and other information sources, andalready know about any changed
What shouldn't be a method function
I dislike excessive religion, so I don't hold to the view thateverything should be a method function. Fortunately, Python lets meindulge this view.
My rule of thumb is that any method function that doesn't use its self argument to get at things gets made into a normal module levelfunction. This reduces clutter on the class (and in the source code)and makes what's really going on clear to me and any later readers.
Of course there are some exceptions, such as:
Why this site has almost no design
This blog , indeed all of my web pages, have essentially noHTML 'design' as such: no stylish markup, no fancy colour schemes, nofonts, nothing. This is because I'm not a graphics designer and I'mhonest enough to admit it.
Not doing any sort of HTML design leaves things up to the browser. Icertainly hope that browsers have better designers than me working tomake their default behavior good. (And if not, it's not my fault.)Also