Autumn is such a fabulous time here in Colorado. The temperature is just perfect: a bit of snappy coolness in the morning, warming to the 60’s and 70’s in the sunny afternoon, and then cooling down enough at night that we can open windows and feel the cool breeze.

We went to Rocky Mountain National Park on Sunday and did a bit of hiking, just enjoying the gorgeous outdoors.


Business has picked up recently, to the point where I’m in the market for another employee. I’ve posted a job listing on Craigslist, and of course the results have been mixed. There were a couple of good candidates who replied to the ad, and about fifteen freelancers and recruiters who clearly didn’t read the big red type at the bottom of the ad that said I’m looking strictly for a full-time on-site employee, not a part-time off-site contractor.

This happens every time I place an ad like this, and I decided I wasn’t going to mince words with these clowns any more. So every time one of these idiots sends me their little canned spammy message bragging about their awesome services and amazing prices (for development teams from India, usually), I just reply with a canned message of my own that lays into them and leaves no doubt that I consider them rude and unprofessional.

But tonight I got a message from a guy that took it to a whole new level. This guy actually had none of the skills I listed in my job posting– including the ones in bold font that I explained were absolutely essential. I went down the list, amazed at how completely and totally unqualified he is for the position.

I want a PHP programmer, but he does ASP.
I need MySQL database work, but he’s an expert at SQL Server.
Our web servers run Apache, but he uses IIS.
I ask for Linux experience, but he’s a Windows guru.
I want a local person, but he’s in San Francisco.
I need an employee, but he’s a freelancer.

Reading through his multi-page resume was simply breathtaking. This guy is the anti-candidate: the polar opposite of what I want. It would be hilarious if it wasn’t so dang annoying.


So our TV died tonight.  It’s a ten-year-old 61″ rear-projection behemoth that weighs something like 300 pounds.  It’s served us well, but I guess this is a sign that we need to upgrade to something modern.  The problem is I’ve been spoiled by a five-foot screen for all these years, so it’ll be hard to go back to anything smaller.  And plasma or LCD screens that big cost as much as a car.

Hmm. Plasma? LCD? Projector? What’s a guy to do?


A guy named Stephen von Worley was driving down the interstate and saw a McDonald’s on the horizon. He was struck by the thought: what place in the United States is farthest from a McDonald’s? It seems like when you go on a cross-country trip– which we do pretty often, whether it’s to family in Idaho and Missouri or vacations in the southwest– the golden arches are beckoning at every other exit along the highway.

Armed with a list of all 13,000 McDonald’s restaurants in the country, he plotted a map.

Of course the East is pretty much wall-to-wall McDonald’s, but it’s interesting to look out West and see the “hot spots” which are major cities (Salt Lake City, Phoenix, Denver, Kansas City, St. Louis, Minneapolis). You can even trace some of the major interstates in the wastelands of Utah, Nevada, and Oregon.

And the answer? The farthest you can ever be from a McDonald’s within the lower 48 states is somewhere in South Dakota, 145 miles (by road) from the nearest McNuggets.


Chancellor invited me to a Windows 7 House Party! Yay!

Apparently this is Microsoft’s latest marketing plan: give people free copies of Windows 7 and have them invite over a bunch of friends to… well, I guess to stand around the laptop pointing at the screen and shouting.

Windows 7 must truly be amazing, judging from the expressions on the enraptured faces of these people. Equally amazing is the cultural mix here. Which of the following people are really most likely to host a Windows 7 Launch Party?

A) An Asian woman.
B) A Hispanic guy.
C) A black woman.
D) Three pasty white guys, one of whom is wearing Geek Squad glasses and a checked shirt.

For some reason I was invited to two Launch Parties– both hosted by Chancellor– but this one is a little earlier in the evening.

I especially like how grandma is getting electrocuted by the keyboard or something. And let’s not forget about the heavy guy off on the side, wishing someone would invite him to something besides a freakin’ Windows 7 Launch Party.

To his credit, Chancellor came clean with a follow-up email:

Yep, I sold you out. By inviting to you a Windows launch party, I get a free copy of Windows 7 Ultimate….. heh heh heh….


Wise words from the Pointy-Haired Boss:


I read about a spiffy new search engine called Goby that lets you search for an activity in a place. In other words, you tell it what you want to do, where you want to do it, and (optionally) when. Then it’s supposed to return results and you can go enjoy yourself.

Naturally I asked it about ultimate in Boulder:

No results? Not only does Boulder have a large ultimate community, it’s a group that’s pretty tech-savvy: there are mailing lists, web sites, pickup games, and all sorts of related information about ultimate in Boulder. In other words, there’s a large “web footprint” for ultimate in Boulder. In fact, the Ultimate Players’ Association (UPA)– the official governing organization of ultimate worldwide– is headquartered in Boulder.

No results? Fail.


After many long years with Qwest– who never did me any favors and in fact has irritated me plenty of times– I finally decided to switch to Vonage phone service. With a “referral” from my friend Megan, we’ll get two months free. Then I’ll have all those nifty features like caller ID, forwarding, digital voicemail, etc. And maybe I’ll be as happy as this guy:

The only sad thing is I’ll actually have to stop using my ancient answering machine… the only answering machine I’ve ever owned, the one I used in college back in 1990, the one with the teeny cassette tape to record the messages. Eighteen years of loyal service. Long live the answering machine.


“Pop Goes the World” just came up on my playlist. Great song.

But the album cover… whoa…


Today is September 19, and as everyone knows, that means it’s Talk Like a Pirate Day!


A few selected jokes from Fark:

What kind of socks do pirates wear?
(And only one, as the peg leg doesn’t need a sock.)
What’s a pirate’s favorite element?
Why does a pirate prefer to live at sea?
No YARRRRd to mow.

Shiver me timbers! Off to find me bonny lass!


Spam is so irritating.

I run my own mail server– actually, I run mail for hundreds of people– and as a result I have to do everything I can to block spam to them, without compromising legitimate messages. So I have three layers of protection:

First, there’s “greylisting”, which tells the mail server sending the message that the receiving server (mine) is temporarily unavailable. It’s kind of a clumsy trick, but it works because spam software will only attempt to send a message once before giving up. A bona fide mail server, on the other hand, will wait a few minutes and re-send the message. The second time, my server lets it through– and remembers the sender, so the next time the mail gets through immediately. Although this seems really simple, it’s terrifically effective and probably blocks at least half of the inbound spam.

Then there’s “blacklisting”, which checks the source of the message (every mail server includes information about itself in the message header) against a list of known spammers. There are hundreds of thousands of known servers out there, so if an incoming message matches, it’s stopped dead.

Finally there’s a heuristic content filter that actually “reads” the incoming message and looks for key words (“Viagra”, “enhancement”, “free mortgage quote”, that sort of thing). It also checks for suspicious headers, lots of images with little text, and other things that spam tends to have. If there’s enough funny stuff going on, the filter deletes the message.

So all of that happens before the mail even gets to the recipient’s mailbox. I find that it’s pretty effective, probably blocking 90% of the incoming spam. Of course a little bit still trickles through. The problem is that spam is such a flood– possibly accounting for more than 90% of mail traffic on the entire internet– that even a trickle means my customers are getting a handful of spam messages every day.

Since I’ve had some of my email addresses for a decade, there’s been plenty of time for them to show up on various spam lists. As a result I probably receive more spam than the average user. So I put another filter in place on my own mailbox, and that filter is the most awesome of all. I “train” it by sending it examples of spam messages that got past, as well as “ham” (legitimate) messages that I want to receive. It remembers words and phrases from each type of message, and over time it “learns” what I consider to be spam versus what I tend to want to receive. Amazing stuff, really, but the downside is it’s sort of a personalized spam filter because if I used the same rules for one of my customer’s mailboxes, it may fail catastrophically. My customers probably don’t get quite the same mix of web programming, Linux user group, ultimate frisbee, and Facebook invitations that I do.

So here’s my latest spam vs ham database:

[fixed:The information shown below is an analysis of your spam database.

score   count  pct  histogram
0.00    31884 38.67 ####################################
0.05      133  0.16 #
0.10      182  0.22 #
0.15      265  0.32 #
0.20      331  0.40 #
0.25      321  0.39 #
0.30      316  0.38 #
0.35      524  0.64 #
0.40      501  0.61 #
0.45      256  0.31 #
0.50      540  0.66 #
0.55      288  0.35 #
0.60      770  0.93 #
0.65      360  0.44 #
0.70      232  0.28 #
0.75     1440  1.75 ##
0.80      330  0.40 #
0.85      671  0.81 #
0.90      468  0.57 #
0.95    42629 51.71 ################################################
tot     82441
hapaxes:  ham   20710 (25.12%), spam   34438 (41.77%)
   pure:  ham   31808 (38.58%), spam   42439 (51.48%)]

I’ve sent it over 82,000 messages to chew on, and of those, almost 43,000 contain words that are “100% spam”– meaning the words in those messages only appear in other spam messages (at least as I categorize them). And about 32,000 words are pure ham– meaning they’re terms that my spam just doesn’t contain. There’s the fuzzy area between, where words sometimes appear in spam and sometimes in ham.

But the filter is pretty smart, so when a new message comes in, it looks at all of the words, compares them to its dictionary, and assigns a score to the message. If the score is greater than some threshold I define, the message is probably spam and it’s dropped. Good riddance.

After training this puppy, I was amazed at how effective it is. I went from probably a few hundred spam messages a day (ugh) to maybe half a dozen. Sweet!

Out of curiosity, I checked the performance of this filter over the past three months. From June 18 to today, I’ve received 50,208 email messages. Remember this number is after the initial three spam filters have been applied– in reality there have probably been close to half a million messages sent to my mailboxes in that period. Yikes.

Of those that were handled by the filter, 26,299 were spam. Doing the math, that’s 300 junk messages per day. And it means 23,909 legitimate messages were sent, or about 270 messages per day.

Wow, that’s a lot of email. I sure feel loved.


Kyra’s pet gerbil Pumpkin died tonight.

She was a great little pet, and had been with us for almost two years (since Christmas ’07). Even I’m a little sad, and I didn’t really want to get her at all in the first place. But she kind of grew on me.


Alex gets a gold star for doing a good deed today.

He found a nice Verizon Storm phone on the way home from school today, so we poked around in the contact book a bit and found a person labeled “Babe” with a picture of a pretty woman in a bridal gown. Assuming it was his wife, I dialed the number. She picked up immediately and said in a chipper voice, “Hey honey, I’m on the way home now. How was your day?”

I chuckled a bit and said I wasn’t her husband. She got a little nervous all of a sudden and asked who the heck I was. I explained the situation and then she laughed and said how relieved she was that we found the phone.

As it turns out, they live in our subdivision a block away, so Alex and I went over to their house and left the phone outside the front door.

It feels good to do something nice for a total stranger.


We just finished watching the Rifftrax version of Harry Potter and the Prisoner of Azkaban. Like its predecessor, the movie was so awesomely funny that I’ve still got tears running down my cheeks from laughing so hard.


The Hubble Telescope had another repair session, and the shots it’s returning from the depths of space are as stunning as ever. Behold NGC 6302:

Beautiful stuff. Nature can be so breathtaking.


Just got back from the dentist, having survived my first root canal. Hoo boy, good times there.


From a Slashdot discussion about why America has lost “the edge” in innovation and technology:

Hobbies and passions, such as developing aluminum electrolysis in a backyard in Oberlin, Ohio, or airplanes in a field in Dayton, Ohio by bicycle repair men, are a thing of the past. We don’t have backyards anymore, and the DHS descends on you if you try to do anything in it, such as aluminum or flying. Everything requires a permit. Permit to attempt to fly. Permit to electrolyze aluminum. And the police are holding a straitjacket at the appeals session in court waiting for the verdict from the jury of twelve deliberating the testimony of psychologist witnesses pushing drug company agenda about mental illnesses.


Wow, according to Microsoft’s Windows 7 literature, Linux sure sucks.

I can’t believe I’ve been using this dang Linux thingamabob for ten years now when it doesn’t let me share digital media in my house, connect to my two digital cameras, let me put music on my iPod, print anything, or even connect to the internet (WAN).

Oh, wait. It does.


Alex has a programming class in school, and they’re using a program called Chipmunk BASIC. He asked me today if I could install it on his computer, so I poked around the internet and found a version that runs on Linux. To test it, I installed it here on my desktop and gave it a go.

Chipmunk BASIC v3.6.4(b8)
>10 for i = 0 to 10
>20 print i
>30 next

Sweet, I actually remember how to program in BASIC!

That takes me back to the Good Old Days of 1980 or so, when I wrote my first program (for a second-grade enriched studies class). It presented ten multiple-choice questions about Saturn’s moon Mimas, allowing the user to answer them and then scoring the answers.

Hello world!


Whee, I just spent 45 minutes being routed through Washington Mutual and Chase phone systems hoping to reset my stupid online banking security questions. After all of that nothing had changed– no one could help me, and everyone told me to call someone else, and the last gal gave me the first number I’d called, so I realized it was just a big cruel joke. I’m never going to get my security questions reset, and they’ll take my money and probably cancel all my credit cards as well.

I was griping to Laralee about it, and said, “No one really likes banks. They’re like…” To which she replied “porta-potties”.

Yes, that’s exactly it. Banks are like porta-potties: no one likes them, but everyone uses them because they have to. Argh.