Sunday, 31 March, 2002

Weekend Movies

It was a slow weekend for us.  It rained most of yesterday, which prevented us from doing the outside work I had planned.  I got some of yesterday's chores done today, and also spent some time working on a new book idea.  We'll see how that works out.

Debra and I also rented a handful of movies.  Riding in Cars with Boys.  Not as bad as the reviews said, but not as good as some people would have you think.  Drew Barrymore actually did a reasonably good job.  A.I.  Wow.  I don't know what to say about this movie beyond "very depressing."  Hearts in Atlantis.  I had no desire to see this one, having read the book, but I was wrong.  It was well done, and Anthony Hopkins gave a good performance.  The screenwriter (William Goldman) did an excellent job adapting Stephen King's story.  It's worth seeing if you enjoyed the book.

Friday, 29 March, 2002

Measuring Programmer Productivity

Slashdot last week ran a thread linkingthis article about programmer productivity.  The linked article is mostly fluff, but the Slashdot thread had some interesting discussion.  Like everything Slashdot related, the signal to noise ratio is terrible.  What I found especially troubling, though, is the number of so-called programmers who insist that it's not possible to measure productivity in any objective way.  That's pure B.S., and anybody who says different is probably trying to sell you something on an open time and materials contract.  Don't fall for it.  It's the same tired argument about "art" and "unpredictable technical problems" that the fly-by-night operators and self-proclaimed "hackers" give for not being on a schedule.

If it's not possible to measure a programmer's productivity, then there's no objective way to say that one programmer is more productive than another.  If that's the case, then all programmers should be paid the same.  That would make the Free Software activists happy, wouldn't it?

There are plenty of objective ways to measure a programmer's productivity.  None of them are perfect, but they're all better than no measure at all.  If you're running a development team, and you're not measuring your team's productivity, then it's going to be very difficult to improve, or even tell if your team is keeping pace with last year.  Start with the article linked above, wade through the crap on the Slashdot thread to find the good stuff.  Then pick up some books, learn a little about the subject, and start keeping track of your team's progress.  I think you'll notice a marked improvement in a relatively short time—as little as six to eight weeks.

So "light" cigarette smokers are suing tobacco companies, alleging that the manufacturer's marketing misled them into believing that "light" brands were less harmful.  This is ridiculous.  By the time "light" cigarettes were introduced, anybody smart enough to read the words "tar and nicotine" was smart enough to understand that smoking is unhealthy.  It's not like tobacco companies said "here, smoke these because they won't kill you like the regular ones will."

I'm convinced that a cigarette company could market and sell a brand of cigarettes called "Cancer Sticks", with a skull-and-crossbones design on the package, and a tag line:  "Cancer Sticks kill quick."  People would buy and smoke them, and then sue the manufacturer for false advertising, marketing a dangerous product, or some other crap.

Come on people!  If you're going to kill yourself with cigarettes, at least have the courage to stand up and admit that it's your own choice!  Don't tell me that you can't quit.  You can.  Don't tell me that you can't afford the stop-smoking program.  Not when you're paying upwards of $3.00 a pack.

Monday, 25 March, 2002

You Can Find Anything On eBay

One of our clients is a nationwide restaurant chain.  They have promotions from time to time wherein they give away $5 discount coupons.  Go to the restaurant, have a meal, get $5 off your ticket.  Fine.  But then the coupons started showing up on eBay, where they were going for $0.80 to $1.00.  No, I am not kidding.

It's a weird world.

Sunday, 24 March, 2002

Blade II

Debra and I went to see Blade II yesterday after my bike ride.  No, it isn't high cinematic art.  It's a good action flick, though, on par with the original.  The choreography is just fantastic, and the sound track keeps the blood pumping.

I had to laugh at thisreview, in which the reviewer somehow missed the entire point of the movie.  For example, he says:

Wesley Snipes' return as slayer of the undead still is fairly anemic, relying on blood, glossy effects, high-kicking combat and a head-banging soundtrack rather than authentic chills and scares.

Duh.  It's an action flick.  And at that it succeeds tremendously.

That's not the only clue that the reviewer missed.  Proving that there's little correlation between intelligence and the ability to scribble, he says:

As with the first film, the only way to get through "Blade II" is if there's complete disconnection of that part of the brain that determines when something is really, really silly. Give the premise the slightest critical thought while watching Snipes disintegrate vampires with his bottomless pistol of silver bullets (or stare too long at Snipes' manicured-hedgerow hair), and you'll likely suffer a demonic fit of the snickers.

Sillier than getting paid to write movie reviews that totally miss the point?  That theatre was packed, Mr. Movie Reviewer, and when the movie was over, nobody complained about Snipes' haircut.

After seeing the movie, it's pretty obvious that the reviewer either didn't watch it, or can't remember simple details.  Ron Perlman's character is plainly not the leader of the Bloodpack vampires.  Not that it matters in this case, seeing as how the reviewer totally misses the boat on the rest of the movie, but it's usually a good idea to get the facts right if you want people to take you seriously.

Movie critics!  Feh.

Saturday, 23 March, 2002

Rosedale Ride

Today was the Rosedale Ride, a fund raising event for the Rosedale School in Austin.  I had the presence of mind this year to bring along my digital camera so I could get a few pictures during the ride.  It was a beautiful day for the ride:  temperature in the low 50s and light overcast.  Wind was the only drawback, but that's springtime in Central Texas.  The Pink Panther went along for the ride, as always.  Yes, I really was crawling along at 6 MPH when I took that picture.

My friends and coworkers, Andrew Reid and Ron Hollis (not a very good picture, but, hey, I was riding) were there on hand cycles.  Andrew did the 44-mile course today, while Ron did the 28.  I was taking it easy today, and stayed with Ron for the 28-mile course.  These guys are serious about hand cycling, and have started a handcycling resource site, LoneStar Handcycling.  I'd love to get my hands on one of those cycles, but with the price of the darned things, it'll bea while.

Thursday, 21 March, 2002

Spam, Spam, Spam

I get so much email these days, most of it junk, that I often just delete anything that's from somebody I don't know and doesn't have a subject that I recognize.  I especially view with suspicion any message marked as "high priority" or "urgent", because that's one of the tricks that spammers use to entice you to open a message.  And just opening a message these days is enough to send a confirmation message to whoever sent the original.  All a spammer has to do is embed an "image" link in an HTML format message, and when you view the message, the link is accessed.  That link will include an identification string (your email address, or perhaps a number that they resolve to your email address), and all of a sudden, you've been confirmed as an "active" email address.  Stealth delivery confirmation.  Neat trick, that.

Companies that offer rebates or refunds know all about hiding in plain site.  If you've ever applied for a rebate, you've likely seen the rebate check come in looking like a piece of junk mail—a bulk mail letter that looks like a sweepstakes come-on, or a check printed on a cheap postcard.  They're counting on you mistaking the rebate check for a piece of junk mail and throwing it in the trash.  I'm convinced that the 8-week wait for delivery is so that you'll forget that you applied for the rebate. 

The junk email problem is starting to cause problems for some of our clients who send email messages to people asking them to take surveys.  Even if a potential respondent has been contacted by phone and agrees to take the survey before we even send the email message, we only get about a 25% response rate.  I'm sure that some of the people just forgot, and some others feel more comfortable ignoring the mail than they do saying "No" on the telephone, but three quarters of them?  It hardly seems likely.  I think it's that they see an email from somebody they don't recognize, and just delete it out of habit.

A year ago, I scoffed at people who said that spam was a big problem.  I still think that it's easy enough to delete unwanted messages, but when the volume gets so high that it causes us to overlook legitimate messages, then it's gone too far.  This is a technology problem that we should be able to solve with technology rather than legislation (which could only make things worse).  I still think that there's merit to my proposed "trusted" network (seeMay 15, 2001).  It's at least worth considering, isn't it?  I don't understand why the Internet community is just complaining about the problem to Congress rather than taking steps to solve the problem.

Wednesday, 20 March, 2002

Sony SDR-4X Robot

From the cool toys department at Sony comes SDR-4X, a 23-inch tall humanoid robot equipped with face recognition, stereoscopic vision, a 60,000 word vocabulary, and some other interesting features.  It reportedly can walk on uneven surfaces such as carpeting, tumble without breaking, and get back up by itself.  It also carries the price tag of a luxury car, so I don't expect to be getting one for my birthday.  But, damn, the thing's cool!

Tuesday, 19 March, 2002

Formatting Email Messages

Otto von Bismarck once said:  "There are two things you should never watch being made:  laws and sausages."  Or perhaps it was: "Laws are like sausages, it is better not to see them being made."  Or maybe: "If you like laws and sausages, you should never watch either one being made."  A quick scan of the Web gave me all three quotes.  Fortunately they were all credited to Otto von Bismarck.  Regardless of the exact wording, the sentiment is the same:  close examination of a thing's creation may change your perceptions of it for the worse.

If you want to continue feeling good about your electronic mail, don't look under the hood.  If you're comfortable in your ignorance, just skip the rest of this entry.  You do not want to know what happens to your message between the time it leaves your computer and the time it arrives at its destination.

I'm not going to bore you with a detailed description of the Simple Mail Transport Protocol (SMTP) and the format of Internet mail messages.  If you're interested in the details, take a look at RFC2821, RFC2822, and the documents that they reference.  Be sure to have a pot of coffee ready, though.  These RFCs make for some dry reading.  I'll just mention that when you send an email message to somebody else, it's quite possible that what is received may not be exactly what you sent.  Oh, the content will be there, but the formatting might not be what you expected.

You see, SMTP requires that Mail Transport Agents (MTAs—the server-based programs that actually deliver the mail) support the standards defined by the original documents in 1982 when the system was designed.  One of the restrictions is that plain text messages may not contain lines that exceed 78 characters.  So when you send a message that does contain longer lines, either your email client, or sometimes the MTA, will reformat that message before passing it on.  The message is encoded with special characters so that the final recipient (your recipient's email program) can decode it and, in theory, display it exactly as you had intended.  Surprisingly enough, this works.  Most of the time.  You'll know when it doesn't work:  you'll end up with text that reads similar to this:

This is some sample text that I had formatted for 80-character lines. I 
it via email, where it was "encoded" to meet the 78-characters-per-
restriction, but got mangled along the way. I'm sure you've seen
similar before.

It's easy to blame the MTAs or the email clients for not getting things right, but the real blame lies squarely with the standards.  There's simply no reason to continue supporting a standards that were created to carry low volumes of mail across networks controlled by computers that weren't even as powerful as my telephone is today.  The 78-character line limit is especially ridiculous.  That's an artifact of teletypes, for crying out loud!  We need a newer, more robust standard that is designed for today's computers and takes into account the expected growth in volume and processing power.  Ditch those 20-year-old MTAs, stop supporting the myriad special networks and routing rules, and build an electronic mail system that will deliver messages exactly as they are intended.  While we're at it, perhaps we can build in some spam protection as well.

Sunday, 17 March, 2002

Human Natures

Just before my trip to Minneapolis two weeks ago, I picked up the book Human Natures:  Genes, Cultures, and the Human Prospect, by Paul R. Ehrlich.  It took me a while to complete the book—mostly because I found myself reading a few pages and then putting the book down to ponder the information presented.  The book is delightfully well written and chock full of explanations that shed some light on things that I've wondered about for years, my entry ofDecember 21, 2001 being a case in point.

The book begins with a layman's introduction to genetic evolutionary theory, starting with a discussion of fruit fly evolution in polluted environments (deadly doses of DDT), and moving on to more complex organisms.  He then moves into a discussion of human genetic evolution, laying out the evidence that shows our genetic past, and explaining how different genetic traits have led to the modern human form.  He spends considerable time on the development of the human brain, which is undoubtedly one of the most fascinating products of genetic evolution.  All of this information is well presented, and backed up by copious notes and references.  And then the book turns from an interesting read to a very mind-opening experience.  It's the examination of cultural evolution found in the last half of the book that begins to answer many questions, and ask many more.  There is enough stuff in the last 5 chapters alone to keep me pondering for years.  Perhaps what I like most about the book is the author's willingness to admit (actually, propensity to point out) that many of the questions being asked simply cannot be answered by evolutionary theory.

The book has left me with a new appreciation of just how important is the role of culture in shaping the world and our perceptions of it.  It has also left me somewhat depressed, considering that much of what we call "human nature" is actually a product of centuries of cultural conditioning, and we could change some of our baser tendencies simply by changing our cultures.  Cultural evolution occurs very fast, and if our societies' leaders would understand the role of culture in the shaping of human natures, we could make rapid positive progress in reshaping the world in which we live. 

The book's relatively small size (531 pages, including 330 pages of text, 100 pages of notes, and 80 pages of references) belies its information content.  The author does a fantastic job of packing in the information while keeping the text readable.  Read this book.

Monday, 11 March, 2002

C.A.R Hoare on Constructing Software

In his 1980 Turing Award lecture, The Emperor's Old Clothes (it's a PDF, you might want to right-click and download for offline viewing), C.A.R. Hoare says:

There are two ways of constructing a software design.  One way is to make it so simple that there are obviously no deficiencies and the other is to make it so complicated that there are no obvious deficiencies.

(The quote is on page 81 of the PDF, halfway down the left column.  But read the entire article—it's worth the time.)

The next page or so of the article discusses his experiences with the Algol 68 design (overly complex), the PL/1 debacle (overly complex), and the new (at the time) ADA language (which in turn flopped, largely because it was overly complex).  Are you seeing a pattern here?  (Perhaps relevant is that all three languages were designed by committee, whereas the most successful languages since 1970 to present are C, Basic, and Pascal—all of which were designed by small groups.)

Although Hoare's quote is in the context of programming language designing, it applies equally to all software projects.  Unfortunately, the former method is much more difficult—at least in the short term—so most people who call themselves computer programmers don't even attempt it.  Rather, they "design at the keyboard."  The result is the current state of most software, and a growing public distrust of everything computer-related.

The study of software construction—effective means of building quality software—is something of a passion for me, which is one reason I get so frustrated when I see or have to use such poor software; or, even worse, hear yet another "programmer" say that there's no such thing as bug-free code.  There is such a thing, it can be created, and it's cheaper in the long run than trying to fix and maintain poorly-written code.

There has been some grumbling lately from within the software industry to improve security and quality of software.  This can't come any time too soon, in my opinion.  If we continue much longer with the poor state of software, it will attract the eye of legislators, who will undoubtedly do something to make matters worse.  Better that we clean our own nests, don't you think?

Friday, 08 March, 2002

Southend Brewery

Stuck in Raleigh again tonight because getting a flight home was absurdly expensive.  Something like $500 to fly on Friday night, but only $125 to fly Saturday morning.  So we walked down the street to the Southend Brewery & Smokehouse for dinner.  The food was nothing to write home about, but their beer was good.  They served an excellent oatmeal stout at room temperature—something hardly anybody does these days.  I like lighter ales cold but stouts always taste better at room temperature, although I'm hard pressed to say exactly why.  Their Railroad Red was okay, I guess, but not really my thing.  Reds are "iffy".  I've had a few excellent reds (my friend John Taylor's being the best), but for the most part they leave me indifferent.

Southend is a small chain in the southeast, and worth checking out if you get the chance.  A number of people told me that the food is excellent, so I'm willing to believe that I just ordered the wrong thing.

Thursday, 07 March, 2002

The Flying Saucer

The Flying Saucer in Raleigh, NC is a friendly place.  I sat down at the bar, ordered a beer, and struck up a conversation with the bartender and a couple of patrons.  Note that I'm not the type of person who hangs out in bars or strikes up conversations with random strangers, so the friendliness here surprised me.  The Flying Saucer has some 150+ different beers on tap, and about the same number in bottles.  If you like beer as much as I do, find one of these in your area.  Check the web site for locations.  Eat before you go, though.  Their food is good as far as bar food goes, but that's about it.

Wednesday, 06 March, 2002

Hops Restaurant

Hops Restaurant is a microbrewery restaurant chain that features reasonably good food, and good beer brewed on the premises.  I was fortunate to stay at the Hampton Inn in Maple Grove, MN just three blocks from Hops.  I made the mistake of walking the three blocks in the cold, wind, and snow last night, but that didn't spoil the experience.  I tried all of their beers (no, I didn't have a full glass of each).  I especially liked their Alligator Ale (mahogany colored, rich, and smooth) and their Big Skeeter Pale Ale.  The meatloaf and mashed potatoes was excellent, too.  Give Hops a try if you run across one.

Tuesday, 05 March, 2002

Lost in St. Paul

St. Paul, Minnesota has a system of skyways that connect many of the downtown buildings with enclosed bridges on the second floor.  The system covers about 30 square blocks, and makes it possible to access most buildings without having to step outside.  And if you do have to go outside, it's only for a block or two.  There are skyway entrances at many of the public transit stops and parking garages.  I noticed a similar system in Minneapolis last summer but, seeing as it was nice and warm then, didn't really appreciate it until I visited St. Paul this week when the high was 20 degrees.

Of course, the skyway system connects buildings, not addresses.  If anybody gives you an address in downtown St. Paul, just ignore it.  Ask for the name of the building.  Nobody knows how to decode addresses in St. Paul, what with 230 E. 5th Street being 6 blocks from the east/west dividing line.  Rational cities have 100 addresses per block.  In St. Paul, it's 40.  I ended up wandering the streets of St. Paul in a short sleeved shirt looking for the address because I didn't have the building name.

They shouldn't send guys from Texas to Minnesota during the winter.

Monday, 04 March, 2002

Heading to Minneapolis

This week will be, if nothing else, interesting.  I leave this afternoon for Minneapolis, where I will be giving training classes at two client sites.  Thursday morning I fly back to Austin where I'll be just long enough to catch a flight to the Raleigh-Durham area for sales meetings on Friday.  I'll be pretty much incommunicado until Saturday.  Flying isn't my favorite way to pass the time, but at least I'll be able to catch up on my reading.

Sunday, 03 March, 2002

Advantages of Being a Packrat

Being a packrat sometimes has its advantages.  I was struggling with a problem today when I remembered that I'd solved almost the exact problem almost 15 years in a communications program that I wrote to automate Compuserve access.  The program was no longer on my hard drive, but it was on the backup CD I burned three years ago.  I saved myself hours of work, and more than a little embarrassment—that code holds some very hard won knowledge.

Friday, 01 March, 2002

Windows Network Load Balancing

I had occasion over the last couple of days to work with the Network Load Balancing functionality that's built into Windows 2000 Advanced Server.  I'm impressed at how painless it is to configure and operate.  Apart from a few ambiguities in the online help, things work exactly as I expected.  I haven't yet tested the performance of my load balanced web servers except to show that the system does indeed work, and has somewhat higher throughput than the single web server.  For a large volume production web site, I'd rather go with a hardware load balancer/director, but for testing software in a load balanced environment, Microsoft's NLB implementation is ideal.