April 30, 2003:

April ends today, and with it I think I'll stop jabbering about spam so much. Jim Mischel and I are putting together a plan for our own spam filter, but we won't have anything concrete for awhile. I have to figure out how to use TurboPower's excellent FlashFilter database engine, which is now free and open-ource from SourceForge. We have some learning curve ascending to do, and the project will be boring (at least to outsiders) for awhile.

I did see yet another spammer dodge yesterday: a URL with many of its characters encoded with the HTML %xx hexadecimal character representation. It looks like this:

http://31842:29575@%6db%72%76.s%72uh%6f%73t.com.%62%72/

I would guess most spam filters would gag on this, but it's not as peculiar as it might seem. If you cook down all the %xx triplets into their equivalent characters, you get this:

http://31842:29575@mbrv.sruhost.com.br/

It took me fifteen minutes to write a converter only because I'm so rusty. Anyway, I'm still collecting odd spammer dodges to incorporate in our spam filter, so if you have any favorites, please send them my way.
April 29, 2003:

Found something interesting in a new spam that arrived this morning: The spammer liberally sprinkled the nonsense tag </g> throughout the message to thwart naive text filters. There is no </g> tag, and browser rendering engines simply ignore it. This is one of the "robustness features" of HTML: It ignores malformed tags rather than generates errors on encountering them. I actually proposed using this feature in 1995, by inventing new HTML tags for Web site subject/category tagging. The <META> tag was introduced with HTML 4.0 and made this unnecessary, but the basic trick is still there: Invent a new tag and the HTML rendering engine will ignore it.

New conclusion: We have to strip out all HTML tags before scanning a message for spam triggers. This can be the last step in filtering, so that if there is some HTML tags we want to filter on (like <IMG>) we can do that before stripping all the tags out.

So it's back to the filter testbed, to figure out how to create a general tag-stripping procedure. Shouldn't be too tough. I'll post it here once I have it.
April 28, 2003:

I have a little Delphi testbed program now that I'm using to tinker up various filters, which I apply to the horde of spam .eml files I have stashed in a directory. I have a very simple filter that pulls HTTP URLs out of message text. The problem with that is that I want to cook down the URLs to the fundamental domains while stripping everything else out. In other words, I want to take a URL like http://viagra.sellmorecrap2u.co.uk and cook it down to sellmorecrap2u.co.uk rather than co.uk. You can't just assume one period. It's easy enough if you only want to spot the one-level domains we're most used to: .com, .net, .biz, etc. Making sure you don't go too far is the trick: calling everything from co.uk spam simply isn't true nor useful. I have to scout up a list of all the various 2-letter country codes, and then the prepended 2-letter codes used in front of the country codes. There are actually 2-letter domain names—a friend of mine registered gt.org so long ago that the domain's protons have started to decay—and that makes things even trickier.

There's also the possibility that code to do this has been published somewhere. Doesn't matter what language it's in; I'm a Pascal bigot but I've written productively in many languages. I'd be very curious to see how others have solved this problem. If you've seen something like this, I'd appreciate a pointer.
April 27, 2003:

I've been saving spam messages to disk and dissecting them recently, looking for spammer dodges and new ways to filter. After going crosseyed looking at about a hundred messages, I can make the following generalizations:

  • Nearly all spam is HTML-based.
  • Not all is HTML-based, however. A growing spam category consists of plain text and not much of it, with the usually gobbledegook random letter sequences to throw off the "message identity" spam killers, and, increasingly, "ordinary-looking" text to throw off Bayesian filters.
  • Many messages are inserting garbage throughout their text inside HTML comments.
  • The gobbledegook random letter sequences are now being broken up into shorter chunks, with vowels at regular intervals. Somebody in the anti-spam trenches must have begun checking for long strings of uninterrupted consonants.
  • Popular product keywords are being spelled creatively. C@ral Calcium is the latest I've seen. This is actually a good thing, but because products come and go, filtering on "C@ral" weeds out certain messages for awhile, then collapses when everybody filters on it and the spammers stop using it. So the benefit is sharp—no legitimate email will use the word "C@ral"—but short-lived.
  • A growing number of "unsubscribe" links are to unrelated sites like Yahoo's main page.

What a way to spend an afternoon: Staring at spam, uggh. However, the project led to a pretty potent observation: Spammers will disguise virtually everything they can in a message to frustrate filters or make it look like an "ordinary email." The one thing they cannot disguise, however, is some way to reach the "seller." It's almost always a Web URL. (Very rarely, it's a phone number.) And I was struck at how often I was looking at the same damned domains.

The message is clear: We have to filter on a number of things, but most especially we need to filter on URLs embedded in the message, either "naked" or within <A> HTML anchor tags. Poco does not make this easy to do, which is one reason I've been poking at a design for my own email proxy spam filter. I may collaborate on this with Jim Mischel. More as it happens.
April 26, 2003:

I got a thought-provoking observation yesterday from my college friend Steve Johnson, who was the reader both at our wedding Mass in 1976 and our 25th anniversary Mass in 2001. His note speaks for itself:

Reading some of your observations about cynicism in Europe brought to mind some experiences that I had or observed while chaperoning Greg's recent high-school German-language class trip to Austria, Germany, and Switzerland in late March / early April. (I had a wonderful time, by the way.) Everywhere I went, I tried to engage shopkeepers, museum docents, etc. in conversation, and some eventually turned to the topic of America's role in the world today.

In one instance, another parent and I were on a tram to hear a concert at the Prince Archbishop's castle high above Salzburg. We were approached by a small group of middle-aged men, one of whom showed us his American flag lapel pin, and said that being from the Netherlands, they were intensely appreciative of the U.S.'s role in ridding Europe of the Nazis in the 40's, and believed that America "had its heart in the right place."

In another instance, a street artist said something very much the same once another parent's art purchase transaction had been completed.

In the most interesting instance, one of the teachers (fluent in German) stood in line to get into the anti-war pavilion in the Munich central square (below the Glockenspiel) to see what kinds of materials the anti-war protesters there were handing out. He was standing behind a younger German woman, and in front of an older German woman. When they got to the front of the line, the younger woman signed the anti-war petition, and the older woman demanded to sign the pro-war petition (they of course didn't have one). At that point, she said, loudly, that if the Americans had done for Germany in the 30's what they were doing for Iraq now, that the Nazis would never have come to power, and that everyone there should recognize that fact.

We visited Vienna, Salzburg, Munich, and Lucerne, and in each city (and points in between) I made it a point to walk around the residential areas to get a feel for the degree of anti-Americanism "on the ground," so to speak. In no instance was I ever treated with anything but the warmest of hospitality. The number of placards, peace flags, etc. was in every city lower than the corresponding number on our street in Kalamazoo. The anti-Americanism was expressed, if at all, in terms of anti-Bush, and then only in terms of the Bush administration's isolationism and motives.

I guess my point is that the American media is not portraying an accurate picture of the diversity of opinion in Europe; the converse is also definitely true.

Our group visited Dachau as well. The explanation of the historical context of the rise to power of the Nazis was excellent, and chilling in its parallels to current events (establishment of secret courts by emergency decree, the inability of the democratic process to clearly indicate a winner in the election of the chancellor, extraterritorial imprisonment of enemies of the state to avoid civil rights entanglements, re-definition of what it meant to be a "member of society"). Without sufficient information to truly know what is going on, all I could, and can, do is offer prayers that our leaders know what the hell they're doing.

Clearly, there's an "intellectual elite" in Europe too, and they don't necessarily represent popular feelings there any more than the media trash from Hollywood represent the views of people in the American heartland. The problem with discerning the truth in anything is acute, and the way our media is structured and operated doesn't help. No, I have no solutions. But in his last paragraph Steve really fingered it. Whom do you trust? Good luck with that one!
April 25, 2003:

On one of the Old Catholic listservs I monitor, one of the priests posted a link to a site in England, run by a guy who created and rents an inflatable church. For the trifling sum of £2000 per day (which is more than Carol and I paid for our entire wedding, reception and all!) you can be married inside a building that smells like a beach ball and looks like something peeled out of a Nickelodeon cartoon.

This may seem appalling on the surface of it, especially in England, where you can't spit without hitting a church (and find maybe five really old people inside on a Sunday morning) but I guess it's better than getting married at a drive-thru wedding chapel in Las Vegas. The artifact (what else dare I call it?) is 47 feet long, 25 feet wide, and 47 feet high. He doesn't say what it weighs, but if you filled it with helium, would it fly?
April 24, 2003:

I've been sent an interview to complete for the Borland Web site, a flattering indication that I haven't yet been forgotten by the Delphi community. One of the interview questions asked me what I thought the future of Delphi should be, and I've been thinking hard about that. One thought I had was that Borland should create a C# compiler for the Delphi IDE...and in researching what non-Microsoft C# compilers have appeared, I ran across Dr. Bob's page on Sidewinder, the code name for Borland's upcoming C# product. (Dr. Bob is the other Delphi Guy with a Hat.)

C# has me torn. I don't like to promote Microsoft's oligopoly, but C# is a superb language, created by Turbo Pascal and Delphi author Anders Heilsberg, the finest compiler author in history. Better still, C# is really the next generation of Pascal, dressed up to look enough like C++ to sucker the C bigots into thinking it's a really cool thing, when in fact it's the language they hate and fear the most and miss no opportunity to slander. (See my entry for April 29, 2002.) If Delphi went away, I would really have little choice but to adopt C# as my main language, and I assumed Microsoft would brook no competing implementations.

I was wrong. C# achieved ISO standards status last fall (which I knew) and now several non-Microsoft implementations of C# exist. There's even an implementation from Ximian, created to compile their open-ource Mono project, which is a free implementation of Microsoft's .NET framework meant to run over Linux instead of Windows. There's something wonderfully ironic about Borland implementing C#, but it may help keep Borland alive—and provide me with a reason to get the product and learn the language.

The question remains—and what I may bring up in my interview—is whether Sidewinder will allow me to create native-code C# apps that do not require or have any involvement with .NET. I may go after .NET at some point, but I really prefer creating self-contained one-piece apps that do not rely on bugfarm interfaces into separate code blocks. I will walk a mile to avoid calling a DLL, which is really what .NET is—ok, an Internet-enabled DLL. I'm not yet convinced that .NET is not a bugfarm.

I am convinced, however, that C# is worth learning. Now I know the way there.
April 23, 2003:

I've been taking notes on a design for a mail proxy spam filter called Aardmail. Delphi has components for Windows Sockets and the POP email protocol, so erecting a framework for a mail proxy shouldn't be too hard once I study up on sockets and POP. Here's a condensation of my notes for the beef inside the framework, which is a dedicated spam filter, and not a completely flexible mail classifier, like POPFile.

There are several tables:

  • Blacklist is a table containing blocked senders and domains.
  • Whitelist is a table containing senders whose mail always goes through.
  • Freemail is a table containing the domains of all known legitimate free email providers.
  • Triggertext is a table containing text strings that trigger prepending of the spam tag to the subject.
  • Blackarchive is an optional table containing all received but blacklisted messages.
  • Whitearchive is an optional table containing all received whitelisted messages.
  • Grayarchive is an optional table containing all messages received that are neither whitelisted nor blacklisted.

The archive tables exist to allow me to track statistics about how well the system works over time. Users may enable the use of these tables as a sort of archival backup of messages outside of their mail client. Because saving spam is mostly pointless, the archive tables may be enabled individually.

Here's the algorithm:

  1. Whitelisting trumps everything else. Aardmail tests each mail header on the POP server for whitelist first, and anything from a whitelisted sender or domain comes down without further testing. Whitelisted messages are optionally copied to Whitearchive.
  2. After the whitelist test comes the blacklist test. Anything blacklisted is optionally downloaded to Blackarchive and then deleted from the server. If the user has blacklisted a domain present in the Freemail table, a warning is put up when a message comes in from that domain, before the message is deleted from the server. This is an optional feature to protect clueless users from inadvertently blacklisting everything from hotmail.com and its siblings, but it defaults to "on".
  3. "Gray" messages (neither whitelisted nor blacklisted) are downloaded from the server and optionally copied to Grayarchive.
  4. Gray messages are next subjected to a suite of tests. Before the tests are made, however, the message is copied to a buffer and HTML comments are stripped out entirely.
  5. The message is scanned for HTML <IMG> tags that download bitmaps from remote servers. My experience is that 99.9% of messages containing <IMG> tags are commercial email. Desired commercial email (newsletters etc.) has to be whitelisted to avoid triggering this test.
  6. The buffered message is scanned for text present in the Triggertext table. Triggertext strings are stored either with surrounding spaces or not. Triggertext with surrounding spaces are tested for leading and trailing whitespace. Triggertext without surrounding spaces may be detected embedded inside other text. Any match to the triggertext test prepends the spam tag to the subject.

Note that this algorithm is very black-and-white. After much thought, I've decided that "statistical" spam filters are more trouble than they're worth. Ultimately, a message is either spam or it isn't. POPFile drove me nuts handing me a message with a 53% likelihood of being spam, and no way for me to tell how it came to that decision. Even Poco's system of giving messages "points" for various included text strings gave me trouble. It really is a black-and-white matter. I'm building in machinery to tell me what message triggers what filter hits—something all filtering systems should do but none that I've tested ever have. Poco can tell me if a message looks like spam in its opinion, but can't say why, and why is crucial to tweaking the filters.

Maintaining the system will require some intelligence. If Aardmail has any unique selling propostion, it will be the ease with which users can add items to the Blacklist, Whitelist, and Triggertext tables. I'm still working on that. But one thing that Aardmail will do that I haven't seen other systems do is track and record how many times a given blacklisted sender or triggertext item is hit during filtering—and will migrate frequently hit items to the tops of their tables. Items that are never hit or not hit for sufficient time will drop off the bottom, to keep the lists from clogging with abandoned spammer domains and triggertext terms.

I'm still a ways off from building this thing, but what you see above is the result of my first hour or so of meditation. Comments always welcome.
April 22, 2003:

Twenty-odd years ago, I scoped out an alternate-history SF novel called The Land of the Valkyries. In the novel, history forked sharply during WWII: The Nazis developed nuclear weapons circa 1944 and laid waste to much of Europe and especially Russia, before the American bomb, dropped on four German cities, ended the Nazi regime forever. In consequence, the United States emerged from WWII as the sole superpower on Earth, and the Cold War never happened. The US declared itself the global cop (eerie how that resonates with recent history) and created a fleet of supersonic bombers that would be sent to level any military buildup mounted by any nation on Earth. These bombers were the B-70 Valkyries that were developed in our own history but never deployed. (I have an XB-70 model enshrined on my high bookshelf.)

As a subplot in the novel, the American space effort built on the X-15, and didn't orbit humans until 1966. The Cold War space race didn't happen, but more significantly, there were no ICBMs to use as simple boosters. Without ICBM technology, there would have been no American space program as we lived it; the Atlas booster was intended to lob nukes, not some poor guy in a funnel-shaped tin can. In the novel, we created SSTO rocketplanes, and by 1974 had a permanent space platform, with intentions to reach the Moon by 1985, and Mars by 2000. My guess is that this was what we should have done to begin with, though I understand why we did what we did.

In looking back from a vantage point 200 years from now, the NASA-driven American space program may well be seen as a series of politically driven stunts. We started out right, but got derailed by competiton with the Soviets and John F. Kennedy's famous promise, which may well have gotten us to the Moon 15 years early but destroyed workaday space travel after that. The X-15 was definitely the right stuff in nascent form, and we should have kept on with it.

So I am most pleased to see (thanks to a pointer sent by reader Frank Glover) that the formidable Burt Rutan has unveiled a private manned space launch system called (most immodestly!) Space Ship 1 (SS1). SS1 doesn't look a great deal like the X-15, but it's clearly the X-15's lineal descendent. It's hauled to 50,000 feet by a beautifully peculiar air-breathing jet platform called White Knight, then dropped, to ignite its rocket engines and head for space.

Rutan has his eye on the $10M X-Prize, which goes to the first privately funded space program that can take human beings to 100 klicks and back again, and do it again with the same vehicle within a week. Rutan's company, Scaled Composites, probably knows more about pushing the envelope with airframes than anyone outside NASA. They're not stuck in a fighter-jet-and-bomber rut like most other aerospace firms. If anybody can do it, they can. Burt usually manages to do what he says he's going to do.

So we get to space the right way—twenty years late, perhaps, but better late than never. I suspect Burt Rutan will win the X-Prize. I'd almost lay money on it. And maybe, just maybe, Carol and I will make it to the Sheraton Deep Sky before we die. I'd mostly let go of that ancient dream, especially once I saw Columbia come home the hard way. Funny how things change when you least expect it, and funny how Hope kicks ass just after you give it up entirely.
April 21, 2003:

My sister Gretchen sent me a pointer to a great site about "psychedelic" and garage bands of the Sixties: Fuzz Acid and Flowers, by Vernon Joynson. My friends know that in my formative years I was a great backer of one-hit wonders like the Peppermint Trolley Company, the Will-O-Bees, the Riddles, and the Capes of Good Hope. (The Riddles, in fact, were no-hit wonders, and I only knew of them because they played at the late Sixties "teen club" dances held in our church basement in Chicago.) Now you and I and everybody can learn who the band members were and what they recorded and when.

Garage rock flourished back then because radio stations were locally owned and locally controlled. If you were a local band, you had more than a vanishing chance of getting the local station to spin your 45's for a few weeks, and if word got around for some reason, the record might go national and you'd bubble up into the Billboard Top 100, and maybe get as high as #62.

Not so these days. Rock has become product, produced at great (and probably needless) expense by the big labels and shoved down the throats of listeners, who have no choice because virtually all radio broadcasting in the country is controlled by two or three national concerns. There are a multitude of small and very small record companies out there—Gretchen, in fact, owns and operates one with her husband Bill, and they even make money!—but there's no way to get their songs played on the radio. So the discs are sold at concerts and conventions of kindred spirits, and promoted by word of mouth. It's an odd and almost unknown subterranean river of music, and it would explode into a new renaissance of rock if we could somehow make radio broadcasting a local phenomenon again. Little chance of that, sigh.

Interestingly, I've received email from two garage-era artists that I've mentioned in my Web site: Folker David Buskin and the female lead singer of the Will-O-Bees, who I won't name because she's somewhat shy. Both still sing, David professionally, and there's some compensation in knowing that. You can make artists starve but you can't shut them up...and I still have some hope that garage will rise again.
April 20, 2003:

Easter Sunday. Even if you accept that the Biblical account of Christ's mission on Earth is authentic and divinely inspired, there is still a great deal of really gnarly uncertainty inherent in the task of interpreting the message. Jesus Christ died—and rose, let's not forget about that!—to save us from our brokenness, manifested as our tendency to cheat and torment and off one another, often with a brutality that no animal predator could match.

So far, I buy it completely. But after this, the details begin to trip me up. Many interpretations of the sparse Biblical narrative have been proposed down through the centuries. Anselm (1033-1109) taught that Jesus died to persuade God the Father that we could in fact be forgiven for our sinfulness, and rose to prove that He wasn't just a man, but God. God the Father was of a mind to keep us shut out of Heaven forever, but His Son took a liking to us down here on the rockpile and proposed the Incarnation as a way of appeasing God the Father. This pitting of one aspect of God ("person" in trinitarian theology originally meant aspect, and not "another separate guy," a confusion over which much blood has been spilled) bothers me tremendously. This already dubious Anselmian theology was twisted even further into something called (unfairly, some think) the "American heresy," which held that Christ died to keep a furious God the Father from wiping us out entirely.

The great lynchpin disconnect in Christianity is probably the question of what we have been saved from. On the conservative side, they hold that we were saved from an eternity of torment in Hell, which we deserved inherently for making the grim mistake of having been born. (This is called "original guilt," and is the greatest curse that any human being has ever let loose upon the world. I get in trouble when I mention who let it loose, so look it up for yourself, heh.) On the liberal side, they hold that we were saved from our own damfoolishness here on Earth, and made suitable for ascent into Heaven.

So who's right? The whole matter of Hell haunts me and probably always will: I watched my mother die of despair, certain that God would damn her for reasons that were never entirely clear to anybody. She feared the Medieval Hell of torment, which is incompatible with any vision of God except for the corrupt and vicious godling the Gnostics called the Demiurge. Even the modern Hell of separation from God is problematic for many reasons, greatest of which is that losing any being for eternity is a defeat for God, and God almost by definition doesn't lose. I have more to say on this and will get to it in time.

But I'm tired, headachey, and borderline depressed tonight. A close friend's nephew committed suicide on Good Friday in San Francisco, and having won the technical war in Iraq, we face ten thousand ugly new questions, questions that mostly cook down to this: Who and what can we Americans save? Have we the right to fail if we try? Should we try at all? If a man seeks to end his own life, do we have the right to restrain him? If a nation insists on brutalizing its own people, have we the right to march in and knock heads?

Easter is about saving. God saved us, but hell, (as it were) He's God. How do we here on Earth discern who to save and how? What is the right path? That's the really nasty question for all well-meaning people. To try to do God's work without God's wisdom...yup, it's a scary, scary business.
April 19, 2003:
Finally! I found my two thick cozy bathrobes. They were packed inside a suitcase that was packed inside another suitcase. The robes were much missed this week, during which we saw a lot of cold weather, strong winds, and (this morning) new snow on the higher reaches of Cheyenne Mountain, which looms large out our kitchen window. Anyway, this is a perfect instance of being a little too clever at finding nooks and crannies to fit things while packing up the house. The inner suitcase was a perfect size to fit two bulky robes—so clever that I clean forgot about it in the chaos of the ensuing several weeks. I knew they were stashed somewhere clever, but just where became a mystery that wasn't solved until we had looked into every other box that wasn't clearly loaded with electronic test gear or books. The lesson: Don't be so clever that you yourself aren't smart enough to recall how the trick works!
April 18, 2003:

In trying to keep up with the relentless pace of computer peripheral technology, I realized with a start this morning that my entire collection of 2300+ MP3s (which represent all but a vanishing handful of songs that I ever liked) would easily fit on a single DVD-ROM. That's a lot of music to fit in the palm of your hand.

The music industry has focused on broadband networking as a subversive technology, and they've been relatively successful mounting a terror campaign against anyone and anything that tries to move music over a network. It's unclear that they recognize how subversive high-density data storage can be. Double-layer DVD-ROM now holds about 9 GB; DVD-R holds 4.7 GB. In a couple of years those numbers will seem hopelessly quaint; I expect cheap 18 GB single-sided DVD-R machinery by 2006 or sooner. 18 GB will hold between five and six thousand pop songs of the usual length, and that represents virtually anything that has hit the Billboard top 100 since 1955. A single 18 GB disc that can be duped in a couple of minutes has an effective "bandwidth" far in excess of anything residential broadband will see this side of our predictive horizon, and everyone on Earth will be within a couple of email mesages of someone who has a copy. A new sneakernet for music DVDs will doubtless emerge, with discs passed hand-to-hand and through the mail, of all things, and yet another opportunity to make money selling songs will slip through the industry's fingers.

Are these guys really that dumb? Or is it really all a matter of ego? What I personally think is that it reflects too much power in too few hands, and that what the business really needs is for the five big rock(head) labels that comprise the music industry to be broken down into pea-gravel. About four hundred small pieces is about right. When companies are too hungry to throw money at lawyers, that's when all the real miracles happen. We'll see.
April 17, 2003:

As I've indicated a time or two recently, I have the itch to program again, and I'm trying to decide what project to pursue. Aardmarks is problematic for reasons I will set down here in the near future. Prototype 2 works well enough for me to use it daily to gather and organize Web bookmarks, but there is a lot of uncertainty in my mind over what the next version really needs to be, beyond cleaner and slightly easier to use.

I have a notion of creating a database of Wi-Fi hotspots, a project which doesn't require much cleverness on the programming side—it's just a typical relational database—but must be filled with data on hotspots, data that has to come from some(whose knows?)where. I may do it anyway, to get my Delphi legs back, as it's been over two years since I was last bashing code on Aardmarks.

But the concept that intrigues me most is a mail proxy, structurally like POPFile, but with more conventional text-based filtering inside it. I've been unable to create a Poco Mail filter that will spot a message that downloads bitmaps with an HTML IMG tag, nor one that can recognize a domain inside a hyperlink. These are obvious, near-idiot-level filters that any mail client should be able to do. Why Poco can't handle them is unclear—rumor has it that I'm a reasonably bright guy, and I've tried lots of different things.

The text filtering is conventional object Pascal that I could do without a great deal of trouble. What's stopping me is getting a handle on the infrastructure: How you insert a proxy between a mail client and a POP server. I'm studying the question right now, and hope to get to work on the project (which I may call Aardmail) within the coming months. Certainly, if any of you have seen a Delphi-based mail proxy out there with source, do send me a pointer. In the meantime, there's Aardspot. Once I get a few more boxes emptied here, I'll dig in and get to work on it. Can't wait!
April 16, 2003:

My sister Gretchen and I inherited a pair of lamps from Aunt Kathleen (see my entry for August 29, 2001 and my VDM Journal entry for July 9, 1999) that have long occupied a marvelous and slightly off-kilter place in the family mythos. She actually gave us the lamps many years ago, when she left her house and bought a one-bedroom condo, and the lamps have followed us faithfully around for many years. I pulled mine out of a box a few days ago and stared at it for a bit, recalling its history and peculiarity.

It's a little hard to see clearly in this photo, but the design on the painted porcelain base is a scene of Classical idleness, with several (mostly) naked ladies sitting around amidst brightly-colored festoons. Some of these festoons are bright orange-yellow and from a distance resemble flames. That, and the two winged angels sitting guard over the whole thing, caused us to joke that the scene on the lamp was one from purgatory, with naked souls sitting hopefully amidst the flames, waiting for someone to drop a carton of indulgences from On High. The lamps thus came to be called Big Purgatory and Little Purgatory (mine is Big Purgatory) and are like nothing else either of us has ever seen.

We don't know precisely how old they are, but we think they were purchased by our grandparents immediately after World War II. They could be older, of course—we just don't know. It always tickled Aunt Kathleen that we kept them and seemed to cherish them as much as we did, which (secretly) was more for their goofiness than anything else. And I suspect that she, in turn, gave them to us in part because she considered them ugly. It doesn't matter; the Purgatory Lamp reminds us of Aunt Kathleen and we will always keep it.
April 15, 2003:

Why does George Bush insist so fanatically that a tax cut could mitigate or end our current recession? Most people miss the obvious answer: It's the only thing he can do. Government spending does stimulate economies, and a tax cut is a species of government spending, in that it puts money into the hands of consumers that would otherwise be retained by the government—and spent elsewhere, like on wars. Wars stimulate the economy too—that's how we ended the Great Depression, in fact. So I have some question about how stimulative a tax cut might be. The money is steered by the government, but not saved (ha!) or destroyed by it, and theoretically it's always out there somewhere, doing something. Even as we as a nation spend as never before, well, here we sit, mired up to the eyebrows.

This particular recession is being stubborn, and I think I know why: The problem this time isn't a lack of money, but a lack of...freedom. What we need is not a tax cut, but a serious increase in the freedom to create new jobs and thus new wealth. In the last thirty years or so, the economy has been gradually tied to ground with a billion threads, rather like Gulliver in the hands of the Lilliputians. These are the threads of petty laws (like byzantine zoning codes and deed restrictions) and non-legislated regulations in many fields. Some may have valid justifications, most do not, and a great many could vanish entirely without our being any worse off than we are.

There's a Gordian Knot effect here: Separately untying such threads could take (literally) centuries, there being so many of them. Worse, each thread has its fanatical protectors, who would have to be fought off, bought off, or (with great courage and political risk) ignored. The only way to increase the degree of freedom usefully would be to cut a great many threads with a single stroke, which would enrage enough thread protectors to become politically prohibitive in a democracy.

I suspect George Bush knows this, but he also knows he can't win in the attempt. Interestingly, a dictator could end democracy forever by simply forcing freedom on people, and yes, how clever, allowing the whiners to whine and protesters protest, and not making any attempt to shackle or silence opponents. As I've said elsewhere, Mussolini understood that as long as the trains ran on time (and people could work and eat and live their lives mostly unmolested) democracy is simply frosting, which people will take for granted and say they like but not demand or heaven knows revolt for. When only 25% or 30% of Americans bother to vote, conditions will be ripe for the one type of government that I don't think has ever been tried: the libertarian dictatorship, which is basically a cadre of enforcers who say to one and all: "You're free. So is everybody else. Live with it!"

Wild idea, huh? I need to write a novel about it.
April 14, 2003:

In response to the two people who asked (on the phone) if I had found my pants yet, the answer is yes: I had used several of them to pad a lamp, but neglected to write "pants" on the box. I found the rest in a box marked "Jeff's shirts." I had a system, but the system had some thin spots—just like a lot of my pants.

The real news today, of course, is that I have broadband again, courtesy of Adelphia cable. We also have cable TV, for the first time since...ever. (Had to think on that one for a second—TV has never been a priority in our lives, and it's entirely possible that we had cable once and I'd forgotten.) Nothing changes other than the fact that I can communicate again. My email remains what it has been for five years—but I'm losing the spam war and even Poco, as good as it is, doesn't allow the kind of filtering I need to do to keep from drowning in emailed crap. I'm considering retiring my easy-to-remember address for something resistant to dictionary attacks, but the larger problem of well-meaning but clueless people posting my email address on the Web for the spam robots to find won't go away any time soon.

Carol and I will be sending out a change of address notice shortly, both via email and through postal mail for the old folks.

Much of the house is now unpacked, but there's still a lot to do. My target for "normalcy" (whatever that is, apart from having broadband and knowing where your pants are) is one week from today: April 21. With any luck at all that will become the first day of the rest of my life.
April 13, 2003:

Very little affects as viscerally as war, and I've sensed that there's a kind of imprinting by the first war that each generation faces. This imprinting carries through all the rest of our lives, and colors the way we think about war, power, politics, and almost everything else. As my sister Gretchen says, World War II never really ended—it continued to be fought in saloons all over Chicago, and the bullets of memory continue to fly to this day, even though the warriors of the Greatest Generation—I will grant them that!—are fewer all the time. To those of the Greatest Generation, every war is WWII. To the Boomers, every war is Vietnam.

This is dangerous. Fighting the Vietnamese as though they were the Nazis cost us dearly, and drove a good many of my own demographic cohort right out of their trees. What I'm wondering now is how the last few wars—Iraq I, Kosovo, Iraq 2—will imprint the young people who have fought them. Those who fought WWII may rightfully wonder if a 25-day conflict that costs 100 American lives rather than half a million is really a war at all. Those who fought Iraq II may come to think that any war that you can't win in a month can't be won at all and shouldn't be attempted.

Contrary to what the idiot press has to say, there are other major powers in the world. If China invades Taiwan, we will not be faced with a one-month war. If North Korea invades the South, we will soon discover how willing a minor power may be to use nuclear weapons. The wars of the future will be nothing like the wars of the past, something we may assent to in our heads but not our hearts, for our hearts will always be fighting—or protesting—the last war rather than the next.
April 12, 2003:

A stanza from an old Shaker hymn came to mind this morning as we breakfasted:

When tyrants tremble, sick with fear
To hear their death knells ringing;
When friends rejoice, both far and near,
How can I keep from singing?

Say what you like about the aftermath, but whatever any sane person would call a war is pretty much over. I haven't followed it closely—I like to sleep too much—but my capsule impression is that it was a success. Whether Saddam is alive or dead is less important than the simple truth that he isn't running things or (more significantly) killing people anymore, and with some luck that will continue to be true.

Nonetheless, there are dangers in prosecuting wars like this, which I hope to get into tomorrow. Too much has to be done here in the next few hours for me to work on it today.
April 11, 2003:

Having tried and failed to find a legitimate Wi-Fi hotspot to connect through (so much for following my own book-length advice!) I finally cadged a phone line from a neighbor so I could dial up to check mail and update Contrapositive. My mailbox may have filled; I just can't tell. So if you sent me anything in the last day or so, please send it again just to be sure.

We got new cellphones late this afternoon. Having played around with one for an hour or so, I will say that it represents an entirely new set of UI conventions, a set I'm not entirely sure I care for...and I blush to admit that that's what a lot of people said about Windows when it first got popular.

We're oiling our bookcases and emptying boxes and generally persevering. Sorry to be so dull, but it's not been possible to think deep thoughts when I'm desperate simply to find my other pairs of pants.
April 9, 2003:

Unpacking furiously; little time for anything else. Found my belts but my pants are still missing. Been in these jeans for almost a week, sigh.

It occurred to me that a single filter mechanism could rid the world of a great deal of spam: Something that identified any message that downloaded an image from a remote server as part of an HTML-encoded mechanism. This would not include URLs present in simple text, but URLs present as part of an IMG tag. Such a filter should strip out HTML comments before engaging, and it should also anticipate as many spammer dodges as possible.

Does anything like this already exist? I'm going to play around with things in Poco as time allows, but if you Web freaks have any thoughts I'd love to hear them.
April 8, 2003:

It all came off the truck today, everything we own, in one frantic 8-hour marathon session. The system I worked out for labeling the boxes functioned beautifully (see my entry for March 15, 2003) and everything went pretty much where it was supposed to go. Now, this is a much smaller house than we had in Scottsdale, in terms of conventional rooms. However, it has a cavernous basement, and that's where most of our stuff went, including the overflow from the garage. We intend to open only about a third of what we packed (we'll see in time how true we are to that resolution) but that third is now sitting in huge piles in the middle of every room but the room we will (hopefully) sleep in (soon) and we're picking our way through a maze of twisty little passages between boxes full of books, lampshades, shirts, Wi-Fi gear, and more odd crapola than I would have admitted owning even as recently as a year ago.

I'm exhausted, and all I did was basically check off box numbers on a card table in the driveway as a crew of five burly guys trooped down the ramp from the truck with our stuff on dollies. The work that is to come is daunting, not the least of which is deciding what to do with the immense quantity of newsprint I wadded up to make sure our lampshades (and a lot of other things) survived the trip.

But that's a hassle for another morning. Alas, that morning is only twelve scant hours off. Note to myself: Dream about sleeping if you can.
April 7, 2003:

If you're reading this, it's not in realtime, let us say. After being heavily connected for a good many years, Carol and I are now basically disconnected, to a degree we haven't seen in, well, hmmm, never. No Internet. No landline phone. Our analog Verizon cellphones are being deprecated (that means fewer towers are handling the signals) and we've discovered that our new rental home in Colorado Springs is in the middle of a quarter-mile dead spot. We have to drive down the hill to the Safeway plaza to make a phone call.

It's all good fun to play caveman today, sitting on the floor in an empty house eating Cheerios with our fingers, but I realize that these circumstances could last for most of a week. The Adelphia cable man isn't coming to set up broadband for me until next Monday, and we won't be able to shop for a new cell plan until probably Thursday. As I related yesterday, I had planned on making the trip up to the Sheraton lobby to use Boingo to download my email every day, but for whatever reason the Boingo hotspot there won't talk to my laptop, and I can almost feel the spam piling up at the rate of about 400 messages per day. My mailbox will doubtless fill up, and I'm not sure what happens then. You may get some bounces. Hang in there—Monday's coming!
April 6, 2003:

If you're ever looking for a hotel in Colorado Springs, let me suggest one to avoid: The Colorado Springs Sheraton on South Circle Drive. The people here have been wonderful—the facility itself is falling apart. With our suitcases in hand we tiptoed around buckets set in a hall, collecting drips from a leaky roof, plus the occasional piece of falling plaster. The first room they put us in had a clobbered heat pump that would not open the vent to the outside. When the compressor kicked in, it howled like a tormented animal; clearly the compressor bearings were on their last legs. We complained, and they moved us to another room, which stunk of cigarettes but was all they had. (We were competing with the spring Peel's Beauty Services Convention—basically five hundred women lined up to take courses in nail decaling.) We left our stuff in the room until early evening, when we discovered that the door's deadbolt was stuck and would not engage. By that time the beauticians had left, for the most part, and we got the hotel to give us a nonsmoking room again. This time everything worked, but someone had stolen the cord from the phone on the desk.

In addition to all this, they only had 20 channels on the TV system. (The prairie dog infested dive in Albuquerque had had over 60.) No Animal Planet. No animals, none of the time. What kind of a hotel cocooning evening is it without Animal Planet?

Finally (and this may not in fact be the hotel's problem) the Wayport high-speed Internet system in the rooms turned out to be slower than my dialup! It was so slow parceling out packets to my laptop that I couldn't get all my email downloaded without repeated server timeout errors. I finally went back to my dialup.

Oh, and yet one more: Boingo's online directory insists that there is a Boingo hotspot here, but Boingo's connection utility can't find it and the hotel staff have no idea what I'm talking about when I ask them if they have Boingo. It probably sounds like a tropical disease.

We'd get another hotel, but that means stuffing all this crap back into an already overstuffed 4Runner, and so far this room seems to be OK. Tomorrow we get the keys to our rental house, and this end of our Adventure in Moving begins with a vengeance.
April 5, 2003:

We rolled into Colorado Springs a few hours ago, after a ride that clocked in at 846 miles. We took it slow and easy, seeing as how we were starting out exhausted after one of the most demanding several days either of us can remember. The trip was sunny, cool, and uneventful. We stayed in a hotel in Albuquerque yesterday that had a prairie dog town on on the outskirts of the property, right up against the I 40 embankment. The prairie dogs were running around, chattering and noshing on French fries that somebody had dumped in the nearby parking lot. One doesn't think of them as urban creatures, and here they were in the middle of downtown Albuquerque.

Not much more to report, nor the energy to report it with. We're here. All is well. Now I want a good night's sleep.
April 2, 2003:

Reprieve. I found I could leave broadband on until the new owners of the house take it over, and while the Big Dell is packed and on the Big Truck, I still have my laptop. So I have another day (today) and perhaps tomorrow morning until I descend once again into dialup hell.

They swarmed like locusts yesterday, emptying out the second story (my office) in about an hour and a half. Key motivation was the remarkable hydraulic lift machine required to get anything out of here. The only access to my upstairs office is through a tight spiral staircase, and everything larger than a book box had to go over the edge of the outside deck. So they wheeled in this huge cherry-picker thing with a platform on the business end, and in an hour of frantic work, everything went out onto the deck (some of it through my office window) and down to the truck on the lift. They were quick because we had a fixed-price quote on the move and the moving company was paying for the lift by the hour.

As I write this (late morning) they're still emptying out my garage, and much of the house is still on the back patio waiting to go on the shuttle truck. (The real moving van had to park half a mile away, as it's not rated for Arizona dirt roads.) The raw strength of some of these guys is impressive; I doubt I could have hefted an entire drill press solo even when I was their age, and the chap shown at right hauled it around like it was a cardboard cutout.

The truck should be all packed by noon or soon thereafter, and we'll have the afternoon to vacuum, replace various outlet plates, and generally decompress. Oh...and empty out the years-old mustard jars and other crap from the fridge. We still have an unopened carton of Godiva chocolate ice cream in the freezer, and will incorporate it into our victory feast of carry-out Chinese or pizza when it's all over.

At that point, we'll be officiallly homeless, at least until we pull up to our new home in Colorado Springs. More as it happens.
April 1, 2003:

Hokay. The Lowden Road Internet Outpost here is about to go dark after nine years of almost continuous service. (Alas, most of it via dialup, but...we progress, we progress.) I will not have broadband again until April 15, and that's assuming they show up and that it works the first time. (Cable typically does.) In the meantime, unless I can find an Internet cafe or something in the Springs, I'll be checking email via dialup, but I may not be posting any entries here. If I can I will. Won't know until I get there.

I'll miss this place. I've lived in this house longer than I've lived in any house except for the house I grew up in, on old Clarence Avenue in Chicago. I'll miss the roof deck and the wildlife. (Well, some of the wildlife...) I won't miss the heat, the dust, and the traffic.

Hang in there, and don't get worried if I'm a week or so without posting.

Until then, 73 DE K7JPD, SK.