The War On Spam - I Was Wrong

Back in 2002, Jeremy Bowers wrote an article asserting that statistical filters for spam were our last line of defense, that they are doomed to eventually fail, and that once they did we would all be buried under an avalanche of unwanted mail. I responded with this post and he responded to me and others with this post.

Four years later, statistical filtering nevertheless remains a valuable weapon in the war on spam. At my former day job, I turned off the automatic server-side filtering (based on SpamAssassin) and used Thunderbird's statistical filter because it just worked better. - The Spam War, Jerry Kindall

I previously alluded to a solution to the problem I have had with creating relative complex object structures for the purpose of testing. I've now released the Python version of this library under the name NonMockObjects, which is now available from the Python Cheeseshop (sort of a CPAN equivalent).

Full documentation is in the package, but here's a more conversational introduction: This library allows me to create layered test functions, which can build on each other. By way of demonstration, here's a couple of snippets of my real testing code. Here's the simplest case, where I create a new "text hunk", which is the root text unit of my system that comments, entries, and everything else will be built on:

Now here is something unusual... an article that actually justifies one of my visual design decisions on my website.

See... very light background colors actually make text easier to read because your computer screen is not paper; computer screens emit light that may be hard on your eyes especially when they are bright; they work that way, and a natural consequence is that you can read a computer screen even in total dark, but you cannot read a paper in the same condition. Therefore we selectively reduce the brightness of just the background. The default background color in early web browsers was gray for a reason as you see. But since print-publications are black-on-white, it was thought that web pages should be like that too. Try returning to basics on your web sites; I don't mean use ugly grays for backgrounds but use light pastel tones that make text easier to read.

More keyboard experimentation

A while ago I switched to the Dvorak keyboard layout. I haven't mentioned it much since then here, but the switch has stuck.

I've started another keyboard experiment as of yesterday. The Caps Lock key is effectively useless, and in a prime keyboard position. Some people like putting Control on that key, but I think that's because many keyboards actually had a Control key there, thus making it a habit, not a logical choice.

I semi-seriously considered doing NaNoWriMo, but I decided it wasn't a good idea to stack that on top of my other hobby programming projects I'm undertaking. I did get as far as the first sentence:

Ph'rillar hated his name.

I'm not sure if comedy-sci-fi is the best genre to NaNoWriMo, but hey, is there really a good genre?

(Maybe if "hackneyed and cliched" is a genre...)

Perhaps next year. Maybe with the new weblog system. Although I'm not sure "NaNoWriMo" + "internet kibbitzers" is a good combination.

From the "poor timing" department w.r.t. my "not time to panic about civil liberties" post, Bush signed some sort of martial law law, which I have not had time to analyse, but certainly set the Slashhorde off. (Not that that takes much; the Slashhorde has the political acumen of a five year old; even when the horde is right, it's by accident.) Link goes to Slashdot because the summary seems to contain useful links that are down now (even a day after posting, some other site must be shutting it down, maybe Digg); you can try later.

I'm continuing work on my new weblog system, which should allow commenting and just generally modernize things.

I've got the basic HTML rendering working, but I've got to write the RSS feed now, and categories aren't quite up yet.

I really ought to scare-quote "write" because it's hardly worthy of the term. Throwing together a weblog with Django is pretty trivial. For instance, Django has a module for generating RSS so I won't really be "writing" RSS support so much as hooking it up to my particular idea of what an "entry" is. So far I've only had one complaint about Django, which is that the admin site doesn't quite handle properly normalized databases as well as I'd like. (I wanted to have a "text" table, that entries, comments, and other things could link to, but I couldn't convince the automatically-generated admin site to make text creation and entry creation into one step.) I can see why people coming from Java would get so excited about Ruby on Rails.

Banking Program NYT correction

My July 2 column strongly supported The Times’s decision to publish its June 23 article on a once-secret banking-data surveillance program. After pondering for several months, I have decided I was off base. There were reasons to publish the controversial article, but they were slightly outweighed by two factors to which I gave too little emphasis. While it’s a close call now, as it was then, I don’t think the article should have been published.

Those two factors are really what bring me to this corrective commentary: the apparent legality of the program in the United States, and the absence of any evidence that anyone’s private data had actually been misused. I had mentioned both as being part of “the most substantial argument against running the story,” but that reference was relegated to the bottom of my column.

This is a test of my weblog system. If you see this post, my transfer to my new host account has succeeded.

My previous web host was a free account from a former coworker. It was a small account and I always tried to maintain a small footprint; static HTML pages, no dynamic features like a comment system, low bandwidth usage, etc. Unfortunately, I drew some fire from a website defacer and caused my former coworker some work. I decided that wasn't polite, so I've switched services to something I'm paying for and can ask for some kind of support.

A general comment I've wanted to post several places lately, especially after seeing this sort of thing:

I'm all for alternate suggestions on how to deal with the problems of the world right now. I'd be absolutely stunned if our government (including not just the Bush Administration but also Congress) was handling everything optimally, just on general principles. But I see so few suggestions that don't boil down to:

  • Give all our enemies everything they want.
  • Hope this is somehow interpreted as a sign of great strength rather than great weakness.
  • Also, bask in the sudden loving adulation of the world.
  • Retreat from any task in the world that is hard.
  • Wait for our enemies to grow in strength until they can eliminate us. (In particularly advanced cases, change this to "help our enemies grow stronger until they eliminate us.")

I wish that last one was just rhetoric, I really do, but there are a lot of people who actually want to eliminate us.