Monday, 28 February, 2005

February Site Traffic

I am astonished at the increase in traffic on this site over the last month. The only thing I can attribute it to is submitting the site to the search engines as I described on January 25. I had 60% more visits in February than in January. With three fewer days in the month. Had the trend continued I would have had almost 80% more traffic.

The hits from referral log spammers dwindled toward the middle of the month, but they still made up six out of the top ten referrers to my site. It's looking more and more like somebody's figured out how to compromise a browser and people don't even know they're spamming referral logs. Yet another potentially useful piece of information rendered worthless by spammers.

I was surprised to see Internet Explorer with 72.1% of the hits to my site this month. That's about 6.5% higher than last month. Firefox is at 12.9%, or down 1.6% for the month. "Unknown" is at 6.1%, Mozilla at 2.8%, and the rest are down in the noise. I think the site has reached a wider audience and that these numbers are more representative of the global browser population. It's no doubt that my site is read by a higher percentage of more experienced computer users, so I would expect a larger percentage of Firefox users.

This month's search terms weren't nearly as entertaining as in previous months. Perhaps I'm just not as easily amused anymore.

Sunday, 27 February, 2005

State of Fear

I read Michael Crichton's new novel State of Fear over the weekend.  Boy, does that give you a bit to think about.  In some ways it's a pretty typical techno-thriller, with car chases, gun fights, intrigue, murder, and the requisite technobabble thrown in.  The short version:  eco terrorists are planning a series of catastrophic events that will demonstrate the dangers of global warming.  The events are scheduled to coincide with a conference on abrubt climate change.  The Good Guys trip to the plan and race around the globe trying to avert disaster.  It's fun ride.

Crichton always gives a little more than a thrill ride, though.  In this case he weaves in a whole bunch of stuff about the theory of global warming, and the footnotes he provides are real.  At the end of the book he gives us a short piece on his beliefs and also a good essay on why politicized science is a bad thing.  He finishes with a detailed and annotated bibliography so you can go check out the material for yourself.

I find it somewhat funny that the best treatment I've seen anywhere on the subject of global warming is to be found in a popular novel.  Everything else seems to be partisan cries of "yes it is" and "no it's not."  State of Fear presents a more rational and probably more realistic view, although I'm sure that the global warming fundamentalists have already decided that Crichton was paid off by big polluters or some such.

It really is a good techno-thriller, up to the standards you've come to expect from Crichton.  I recommend it both as a novel and as food for thought.

Monday, 21 February, 2005

Final Fat Rant (maybe)

It's good to question one's beliefs from time to time.  That was one of the primary motivators for me to start this series on why we're (as a nation) getting fatter.  Sometimes questioning your beliefs leads you to new knowledge.  Other times you just confirm what you already knew.

In my last post on this topic, I identified the factors that I think contribute to what some people are calling an obesity epidemic. I was going to discuss each of those factors in detail, but then I came to realize (with a little helpful prodding) that there's not much to discuss. I could talk about why those factors exist, but that's not the issue. The question is how those factors contribute to making people fat. The answer is simple: those factors combine to require that people actively think about what and how much they're eating and to exercise restraint in food choice. Yes, folks, the spectre of personal responsibility raises its ugly head once again.

I tried. I really did. I looked long and hard for any evidence that some outside force was making people eat too much or exercise too little. There are those who say that food companies are to blame because their advertising is so effective or because they purposely sell "addictive" foods. To hear these people talk, you'd think that Big Food is little more than a drug cartel. Sorry, but I don't buy it. Every bit of research I did pointed right back at the individual who didn't have the discipline to control his consumption and do a small amount of exercise.

Many people say that they can't afford the time or money to exercise. This one really blows my mind, because most of the people who use this excuse spend more than $100 every month on digital cable and TiVo, visit restaurants more often than they eat at home, drive status symbol cars that cost well over $500 per month, and can tell you everything that happened on the latest episode of American Idol, The Sopranos, and Desperate Housewives.

A recent survey showed that in American households the television is on for an average of eight hours every day. Eight hours? Granted, they're not talking about a single person watching TV for an average of eight hours per day (although I've met a few who probably come close), but eight hours per day? Most people don't spend that much time at work when you factor in weekends. Do you think they could give up an hour or so per day to go for a brisk walk?

Unless you've given up your absurdly expensive cable TV and started eating more reasonably priced and healthier home cooked food, don't even bother me with any crap about exercise being too expensive. Walking costs you a few pairs of shoes every year. Push ups and sit ups are free. Debra and I are looking at joining a new gym near the house. A $150 signup fee and $28 per month (paid month to month, not all in one lump sum) gets both of us a membership. If you can't leave the house for some reason (have to watch the kids, for example), you can get a good used treadmill or other exercise equipment pretty inexpensively. Absent real physical injury, there's just no excuse other than laziness for being sedentary.

I know that there are some whiners out there thinking "That's easy for you to say. You've never been fat or had to watch your diet." That's not true at all. I weighed 140 pounds in 1982. At the time I kept very active with martial arts and running marathons. Three years later I had a job, a wife, and "no time" to eat healthy or exercise, and I spent most of the next 15 years doing mostly nothing. When I crossed 160 back in 1987, I thought to myself, "Jim, you're getting fat." When I crossed 170 a year later I had to buy new clothes again. I still did nothing about it. I topped out at 200 pounds a couple of years ago and finally said "That's enough!" The only difference between me and the whiners is that one of us knows who's responsible for the problem. And it sure as hell ain't McDonald's, even though I have scarfed down more than my share of Big Macs.

Anybody who's capable of picking out and paying for larger clothes to contain his bulging waistline has said to himself: "Maybe I should exercise a little bit and watch what I eat." Anybody who's had to loosen his belt a notch because his belly's grown too big has also said to himself "I should do something about that." The first time climbing a flight of stairs made you short of breath you said to yourself "I need more exercise." Any self-aware individual knows who is responsible for his excess weight, knows that it's unhealthy, and knows what is required to fix the problem. Complaining about it or trying to blame somebody else isn't going to make the fat go away. Neither is money. Even if some brain damaged judge and jury award millions of Burger King's dollars to fat people, those people will still be fat. They'll just have more money to spend on getting fatter.

Being fat is a personal choice. People gain weight because they choose not to exercise the restraint necessary to remain thin. People remain fat because they choose not to put forth the effort required to get healthy. It's as simple as that.

Saturday, 19 February, 2005

Second Annual Gunny Ski Memorial Bicycle Ride

I've mentioned before that I make an annual pilgrimmage to the Marine Military Academy in Harlingen, Texas for the Alumni Reunion. This year's event is April 14 through 17, and it will mark the tenth year in a row for me. It also marks 25 years since I graduated from high school and 40 years since MMA opened. We're getting out the word in an attempt to have as many alumni as possible attend.

Two years ago I came up with the crazy idea of riding my bike from my home in Round Rock to the school for the reunion. I pondered it for a few months and then set up a training schedule. Last year my friend Craig and I left my house at 6:00 on Tuesday morning and arrived in Harlingen late on Thursday afternoon after 342 miles of pedaling. View my trip report for the details.

My original intent for the ride was simple: I just wanted to prove to myself that I had the discipline to create and execute the training schedule, and then complete the ride. Craig got the idea of making it a fundraiser, and with almost no marketing effort we were able to raise over $5,000 for an endowed scholarship. This year we want to do better.

On April 12 of this year, Craig, Debra, I, and possibly one or two others will leave Round Rock early in the morning on bicycles, headed for Harlingen. The first day's ride to Kenedy is 130 miles. Ben Trimmer, who graduated from MMA in 1990, will join us in Kenedy for the final two days of the ride. The second day is approximately 105 miles from Kenedy to Kingsville, where we will probably pick up a few other participants--including a few cadets from the school--for the final 100 miles to Harlingen on Thursday.

We are soliciting donations--sponsorships--for the ride in any amount.  We are paying all costs of the ride (lodging, meals, return transportation, etc.) out of our own pockets.  100% of all donations received will go to the Gunnery Sergeant Larry Wisnoski Memorial Scholarship Fund to endow a permanent scholarship fund that will pay the tuition for a young man whose parents are unable to afford the cost of the school.

Ben Trimmer has set up an eBay sale item where you can "purchase" a donation in any dollar amount. If you would like to purchase more than what is available there, please contact Ben via his eBay link, or drop me an email and I'll point you in the right place. You can also go to the MMA Web site to learn more about the school or to make a donation directly.  If you do choose to donate directly to the school, please remember to write "Gunny Ski Memorial Scholarship Fund" on the check so that the money will be used for that purpose.

As was the case last year, I will post an update here after we complete the ride.

Thursday, 17 February, 2005

Attitude matters!

The following is the final paragraph of an email that I received from the lead developer on a large enterprise software system.  He was debugging a performance monitoring application and that lead him to problems in all parts of the system.

I've uncovered many more problems in the last 80 or 90 hours of debugging, too many to list or bother to discuss at length.  Error handlers were completely missing or completely wrong, logging was incomplete or missing, copy and paste errors were propagated over and over again instead of using proper sub-classing.  Some of these problems were simple defects, and others were the side effects of code entropy and general complexity weighing in our team.  To be fair, many of the bugs had my own handwriting on them.  But many of them were the product of laziness and general indifference on the part of the developers.  Every time I embark on one of these marathon debugging efforts, I'm always surprised at how much we have, and how much of the code is poorly written or never traced.  But it's the indifference to the problem that's really troubling.  Please be sensitive to the fact that the code you write impacts the other people on your team, and if you fail to take ownership of it and do a good job, somebody else might be forced to do so, at tremendous personal expense.  Your work impacts the product, the people, our productivity and more generally our revenue, directly.  That being said, I'm tired and frustrated, but not discouraged.  I'm hopeful that our recently expanded team will lead us to improved productivity and allow us to focus more on quality than we have been able to in the past.

The the product in question will remain anonymous, although I will say that it is not a project that I am personally involved with.  The particular product isn't relevant anyway as this kind of thing is common, especially in mature software systems that have undergone several generations of enhancements.  Developers who have been on the project for a long time get bored and lazy, and younger developers often don't understand the finer details of the coding standards (error checking and usage patterns, especially) that have become almost automatic for those who have been with the product since its inception.  The result is inconsistent and often buggy code that is difficult to debug and maintain.

There's not much else I can add beyond what my friend wrote.  Attitude matters in programming, perhaps more even than aptitude.

Tuesday, 15 February, 2005

Do flu shots work?

A study published yesterday in the Archives of Internal Medicine indicates that flu shots might not save the lives of the elderly. According to the study:"We could not correlate increasing vaccination coverage after 1980 with declining mortality rates in any age group." Media coverage has reduced the findings to a quite spectacular headline: "Flu shots don't work for old people," which is a pretty narrow reading of the findings. First, the study itself says "we could not rule out some benefit from the vaccine, but it is less efficacious than we thought," meaning that there might very well be some benefit. Secondly, the article states "And we only looked at deaths, not other complications." So although there's no evidence that flu shots save lives, it's quite possible that the flu shots prevent people from getting sick.  Read more about the study in this Yahoo article.

The article goes on to state that doctors have known for years that vaccines in general are less effective in older people because their immune systems are not as efficient at creating antibodies. This research finding is news not because it discovered anything new (doctors have known this for some time), but rather because it debunks the popular theory among laypeople that flu shots are some kind of magic elixer for the elderly.

Most importantly, the findings only apply to elderly people. The jury is still out on the effectiveness of flu shots on other segments of the population. Some studies show that vaccinations are effective in younger people. Conversely, vaccination rates have increased tremendously since 1980 and flu deaths have remained essentially flat. Does that mean that influenza vaccinations are ineffective? That's a hard question.

As we all know, the flu vaccination works by introducing a flu virus into the body in a measured dose so that the immune system can recognize it and create antibodies. When the real virus comes along, the body can make quick work of defeating it before the virus takes hold and creates major complications. The complicated nature of the immune system results in this being less than an exact science, but in general it works. The primary benefit, as far as the person being vaccinated is concerned, is that he doesn't get sick, or he doesn't get as sick as he would have without the vaccination. But society gains an even bigger benefit: that vaccinated person can't spread the disease to anybody else. That's a huge benefit when you consider that a person with the flu can potentially infect everybody with whom he comes into contact.  That's more important than it sounds.

What many people don't realize is that the influenza virus mutates, as does HIV. It adapts to its human host and sometimes (as happened in 1918), those mutations are incredibly virulent and can sweep through a population like wildfire. But it takes time for the virus to develop that virulence. In 1918, the virus presented itself as "just the flu" in a large part of the population over a short period of time. Then there was a lull--a plateau--during which the virus mutated inside those who were infected. Just when public health officials thought the wave of illness was over, the mutated virus flew through the population, killing over 100,000,000 people worldwide in a single year.  In the United States it accounted for about 675,000 excess deaths (0.6% of the population), comparable to about 1,750,000 today.  And it's quite likely that the number would be even higher than that today because a larger percentage of the population lives in crowded cities.

What we don't know, and can't really determine, is whether the increased influenza vaccination rate has prevented such a mutation from forming. Considering the potential consequences of another 1918-type mutation, I'd say we're better off continuing the vaccinations if there's any credible evidence that they're effective.

Read John Barry's The Great Influenza about the 1918 influenza epidemic before you make up your mind on this one.

Monday, 14 February, 2005


I love a laugh, especially when somebody with too much time on his hands provides it. Today's entry, again from the Web of Infinite Amusement, is Nonsense, an open source program that "generates random (and sometimes humorous) text from datafiles and templates. I haven't created my own nonsense yet, but I've sure enjoyed the examples provided on the Web site. I especially liked College Course Titles and Stupid Laws.

The next time your PHB (Pointy Hair Boss) asks you for a Mission Statement, you'll know just where to go.

Sunday, 13 February, 2005

The Aggravation Factor

One of the things that software developers seem to forget is what I call the aggravation factor.  Basically, everybody has a threshhold for futzing with something.  That threshhold differs from person to person, of course, but in most cases people want stuff that just works, or they want complete documentation available in a single place.  Most computer users are stretching beyond the limits of their comfort zone just to download and install a new program.  Once installed, they want it to work.  No fuss, no muss.  The more users have to configure, the more likely they are to throw up their hands, delete the thing, and tell all their friends that the program doesn't work.

To most users, polish is more important than technical features.  Users are more inclined to put up with slightly buggy features and technology that's a step or two behind if the user interface is well done, the documentation is good, and the program doesn't astonish them too often or lose their data.  Users for the most part don't understand fine technical distinctions.  Give them the choice between a clunky interface to bleeding edge technology, or a smooth interface to older technology, and they'll almost always choose the better interface.  That's just the way it is, and complaining about or calling the users stupid isn't going to change anything.

This little rant brought to you by WordPress, an open source personal publishing platform.  I downloaded and installed it on my test server last night.  The installation instructions are good, and everything went smoothly.  The program works great.  Except now I have to dig through dozens of menus, and search through documentation scattered over several sites just to configure the thing the way I want it.  The WordPress-driven sites I've seen sure look nice, but I don't yet know how much work it is to create and maintain such a thing.  I think I'm going to give MovableType a look before I continue fighting WordPress.

Saturday, 12 February, 2005

Weekend movies

Slim pickings at the video store never prevented me from taking home a movie or two. Last night Debra and I watched Alien versus Predator, the science fiction/action movie inspired by the popular video game. Verdict: not as bad as the reviews would indicate. Lots of cool action and neat alien special effects. Most interesting to me was the way they tied it in with the Alien movies, especially the final scene.

Catwoman also wasn't nearly as bad as the reviewers said. Sure, it wasn't high cinematic art, but it had its moments. Catwoman's bouncing off the walls was obvious CGI gimickry, and not especially well done. But that's okay, as it got the point across. Besides, any movie that has Halle Barry parading around in tight leather is definitely worth the rental fee.

The movies weren't great, but they weren't horrible either. I needed some mindless entertainment after a couple of odd weeks, and these two movies fit the bill nicely. I wouldn't exactly recommend either one, but they're not on my "gag me with a fork" list like some movies the reviewers have praised.

Friday, 11 February, 2005

Enabling Windows 2000 compatibility mode

Windows 2000 Service Pack 2 introduced "compatibility mode," wherein you can make the operating system act like a previous version for a particular program. For example, my game TriTryst was designed for Windows 95, and has trouble running under Windows 2000 because of a change to the Registry API. But if I create a shortcut and set the compatibility mode to Windows 95, the program works.

That's all great, except that for some reason the user interface to access compatibility mode doesn't get enabled by default when you install Windows 2000 Service Pack 2. I kept getting messages from people who read my TriTryst installation instructions and said that they had no compatibility mode. I'd reply with a message telling them to install SP2, and since I never heard back I figured that they'd solved the problem. Perhaps not, as my friend Steve sent me such a message yesterday and when I told him to install SP2 he informed me that even with SP4 he didn't have have compatibility mode.  Huh?

It's been so long since I installed Service Pack 2 that I forgot about having to enable compatibility mode in a separate step. The instructions for enabling and using the compatibility mode user interface are published in this Microsoft Knowledge Base article.

Another thing to add to my TriTryst installation page, which is one of the most popular pages on the site. I often wonder if the people visiting the site actually have the game, or if they got there while looking for something else.

Thursday, 10 February, 2005

Yet more odds 'n ends

My cup runneth over. My idea file is full of topics that warrant more than one or two paragraphs, and I don't have a whole lot of time to spend writing. I might have to start setting aside time for longer essays, as I still need to complete my series on the 9/11 Commission Report and why we're fat. Note to self: don't commit to multi-part posts unless you're sure you have the time and energy to complete them.

  • I thought the $8,562 "average" credit card debt number was big (see February 9). A local radio station's morning show has a regular feature they call the Book of Records. They ask listeners to call in and tell them how many pairs of shoes they have, how many kids, etc. The person with the most goes into the show's Book of Records. It's all in good fun, and sometimes quite amusing. Today they were looking for the person with the most credit card debt. The winner? $112,000! I understand that some people have a higher tolerance for pain than others, but $112,000 in credit card debt is akin to eating until you weigh 500 lbs. Stop the madness!
  • I'm configuring new servers for my latest project at work. One of the security configuration steps is to disable storage of hashed passwords in the Active Directory database. Now you would expect this feature to be called something like "Store LAN Manager hash of passwords," and that you'd have enable and disable options. But that would be too simple. No, some genius at Microsoft decided that using negative logic would be better. The actual feature is "Do not store LAN Manager hash value on next password change." Okay, quick, if you want to disable LAN Manager password hash storage, do you select enable or disable? "Enable do not store." What idiot thought that up? No wonder people think that security configuration is so difficult.
  • My friend Darrin Chandler pointed me to WordPress as a possible replacement for CityDesk to manage my Web site (see January 18). I looked around a bit and added ExpressionEngine to the list of candidates. The next step is to download and evaluate these two as well as MovableType. More after I've examined all three.
  • Speaking of Darrin, he saw my post about abandoning TV and posted his thoughts about his own experience after giving up on TV several years ago. Let the revolution begin!
  • Someone from Germany saw my note about Web server configuration headaches and sent me a note to say that it had saved him a lot of time. One of the reasons I post things like that is so that I can find the answer the next time I have problems. It's also nice to know that I'm not the only one having trouble.

Wednesday, 09 February, 2005

The Droopy Drawers Bill

In Crack is Whack, Ambra Nykol  gives her take on the Virginia state House of Delagates' passage of a bill "authorizing a $50 fine for anyone who displays his or her underpants in a 'lewd or indecent manner.'"  Although I agree that all too many young people these days need to learn the proper use of a belt, I don't see this as an issue that requires legislative action.  And before anybody starts screaming about crazy right wingers, let it be understood that the bill enjoyed bipartisan support.  This looks suspiciously like a case of pandering to the vocal minority: "Mr. Underpants there doesn't vote.  Let's throw our constituents a bone."

I ran across Ambra's blog a couple of weeks ago and since then have thoroughly enjoyed reading her posts.  Ambra is smart, funny, insightful, and one heck of a good writer.  Anybody who can write something as insightful and dead on as this is worth reading.  I learn something worthwhile from almost every one of her posts, even those in which I disagree with her.  And that is priceless.  Oh, and did I mention that in addition to all her other traits, Ambra is also gorgeous?

Update 02/10:  As reported here, the Virginia State Senate had the good sense to kill this bill in committee today in a unanimous vote.  From the brief report in the article, it appears that my suspicion of pandering to the vocal minority was dead on:

The bill's sponsor, Democratic Delegate Algie T. Howell, declined to answer reporters' questions Thursday but issued a statement saying the bill "was in direct response to a number of my constituents who found this to be a very important issue."

He has said the constituents included customers at his barber shop who were offended by exposed underwear.

'nuff said.

Wednesday, 09 February, 2005

Credit card debt and stupid averages

In an attempt to protect myself against identity theft, I subscribe to a service that alerts me whenever there's activity on my credit report. If somebody checks my credit or if a new credit account is opened in my name, I learn about it within a week. The weekly status update email (which usually says "no credit alerts have been triggered by changes to your credit report") always includes a credit tip from the editor. This week's tip says:

The average American carries $8,562 in credit card debt. All this debt leads to 1.3 million consumer bankruptcies in the US each year.

Blink. ... Blink.

I'm skeptical about any statement that starts with "the average American," so I went looking for some real numbers.  (As an aside, you get lots of hits on "credit counseling" sites scams when you search for "credit card debt statistics".)

According to the most recent Federal Reserve G.19 release, total consumer debt is about 2.1 trillion dollars.  Of that, about $800 billion is "revolving" debt.  The $2.1 trillion includes auto loans and other "non-revolving" debt, but doesn't include mortgage loans (an additional $4.5 or $5 trillion).  Yes, total personal debt of about $7 trillion exceeds the accumulated national debt of about $5.7 trillion.

The thing that I really hate about these "average" statements is that they don't tell me how whoever reported it arrived at the number.  Do I divide the total revolving debt by the total number of people in the country?  By the total number of adults?  Just the green left-handed vegetarians?  No, in this case it turns that "the average American" is really a person who carrys a balance on his credit card, or about 93 million people.  I guess it could be the total number of credit card holders, although that would mean that less than 50% of adults in this country have credit cards.  Figuring that the number was reasonable, I gave up trying to find out exactly how it was calculated.  But I'm still curious.

People, please, would you stop with the unqualified "average" statistics?  Those numbers are worse than useless.  Tell me how they're calculated.  Better yet, point me to the raw data so that I can play with the numbers myself and draw my own conclusions.

Monday, 07 February, 2005

Odd lots

Odd lots at the beginning of what promises to be yet another odd week:

  • I went searching the New York Times web site for an address where I could send my reactions to Greg Easterbrook's review of Jared Diamond's book Collapse. I stopped looking for the address after I saw the discussion forums, where it seems that I'm not the only one who thought Easterbrook's review was tripe.
  • I don't watch TV and I couldn't care less about football, so I obviously didn't see the new Super Bowl ads yesterday. But I heard about them all day long during office conversation, and even saw the ad that had been pulled. Two things:
    1. You probably won't catch that 6-pack if you dive out of the airplane after it;
    2. Is it true that the Super Bowl is about the advertisements and the football game is just a bunch of inconvenient content?
  • I've played with Mambo enough to know that it doesn't have all of the features that I want for this Web site. I think it would work, but it lacks some of the blog-specific features that I'd like to have. I guess I could install a blogging module and component for Mambo, but so far I haven't seen one that I like. I'm looking at MovableType, which is designed specifically for blogging. I don't know yet whether it will be able to handle the other types of content that I have or am planning. More as I explore. If you know of a good CMS that has blogging capabilities that are comparable to MovableType, I'd sure like to hear about it.
  • On recommendation of my good friend Jeff Duntemann , I picked up a copy of John Barry's bookThe Great Influenza and am working my way through it. Jeff posted a detailed 3-part review (currently here and to be archived here) in his Web diary and recommended the book highly. So far I concur with his recommendation, but I'm only partway through the book.
  • About halfway through Saturday's bike ride, I ran over a piece of glass while zipping down a hill at over 20 MPH. The resulting catastrophic blowout was quite exciting, although not so bad as to cause Debra (who was directly behind me) or me an unexpected dismount.  I had a spare tube but the tire was destroyed. (I'd have a picture, except I broke my camera by storing it in a bag on the top tube.  Cheap plastic parts do not fare well under steady vibration and repeated shocks.)  Not even the dollar bill trick would have gotten me home. As I was on the phone asking a friend to come pick us up, a young guy in a car drove up offering help. When he learned of our predicament, he drove home and came back with a replacement tire! I'll never again complain about all the spare tubes and mechanical assistance I've given to unprepared cyclists over the years. There are good people in this world. My only regret is that I didn't have the presence of mind to get the guy's name and contact information. Whoever you are, Thank You!
  • Following up on yesterday's entry regarding referral log spamming, I did a little research and found that I don't have enough information to determine if the increased traffic is due to spam bots or to real clients. If it is spam bots, they're covering their tracks well. I suspect compromised browsers with spoofed HTTP_REFERRER header fields, but I can't prove it and I haven't found any concrete information on the Web that identifies such a vulnerability in any browser.
  • The latest entry in the Web of Infinite Amusement: Diction-Araoke. "Audio clips from online dictionaries sing the hits of yesterday and today. The fun of karaoke meets the word power of the dictionary." Description doesn't do it justice. You really do have to experience it. Some people have way too much time on their hands.

Sunday, 06 February, 2005

Referral Log Madness

At the end of last month, I mentioned that my Web traffic had increased by over 30% since I submitted my site to some search engines.  It looks like traffic has leveled off at the higher rate, but I'm not sure if it's what I would call valid traffic.  I noticed a lot of odd domains in my referrer logs for October (see November 6, 2004), and wondered where those referrals were really coming from.  That trend has continued, and over the past few weeks I've seen a huge number of referrals from URLs that contain the words "poker" and "freakycheats".  So many referrals, in fact, that those sites take up nine of the top 10 spots in the referrals report.  If those were real referrals I'd expect to see a change in the distribution of served pages, but I don't.  All of my pages are getting more hits, but the distribution remains the same.  There has been little change in the distribution of served pages here since August.  I'm getting twice as much traffic, but the top 20 pages are still getting the same percentage of traffic.    "Very strange," I thought.  So I went digging.

It turns out that I have discovered referrer log marketing.  No, this is nothing new.  It's been going on for at least four years.  Remember, I've only been looking at my traffic reports for the last 6 months or so.  This is kind of an indirect form of spam that takes advantage of the "blogroll" or "links" pages that many sites maintain.  Some site operators decided to write a script that automatically adds pages that link to their Web site to a list on a links page.  So, for example, if I found that Jeff Duntemann's diary linked to my site, such a script running on my server would add a link back to it on my links page.  The way I find who's linking to me is by examining the referrer logs.

Some genius figured out that if he cobbled together a program that would ping a site with a Web request that had their own site in the HTTP_REFERRER field, that site might add a link back to the bogus referral page.  Unsurprisingly, those bogus pages are predominantly porn, gambling, or fly-by-night pharmacies--the same sites that send so much email spam.  This kind of thing apparently worked very well for a while, filling links pages with all manner of links to things I'm sure the site operators didn't want linked from their sites.  Not only did the sites get more traffic from unsuspecting people clicking on "recommended" links, but they also got a boost in the search engine rankings because many search engines rank a site at least in part by how many other sites link to it.

What I don't know is if there's some machine spamming the heck out of my site to put all those URLs in my referrer logs, or if there is a small army of bot-infested client machines out there doing it.  Or, perhaps these are real hits from people whose browsers have been compromised to change the referrer header field.  The browser stats don't help, as they show pretty much the same distribution of browsers (MSIE, Firefox, everything else), but it's as easy to fake the browser report as it is to fake the referrer.

The Web reports also tell me what IP addresses are used to access my site, and there are several sites where I can enter an IP address to determine who it's assigned to.  (Search of "ip address lookup".)  I might be able to use that and NSLOOKUP to figure out what's going on.  This is going to take a little research.  I'll let you know what I find.

Saturday, 05 February, 2005

Why are we fat? Part 2.

Getting back to the Fat America topic that I started a while back, and assuming we agree that there are more fat people now than in the past...

My previous posts on this topic (See January 22, 2002, August 26, 2002, and June 21, 2003 for examples) have been pretty narrow minded, falling far on the side of "Get off your fat ass and stop shoving Big Macs in your pie hole." Although I still firmly believe that in most cases ultimate responsibility for one's health (at least as far as being overweight is concerned) lies squarely on the shoulders of the individual, I've come to accept that the issue is a little more complicated than that. So, I thought a good way to start this discussion would be to list what I consider the most important factors that contribute to our collective corpulence. In no particular order, those are:

  • All types of food are more widely available and less expensive now than in the past.
  • Americans have more sedentary jobs than before.
  • Being overweight does not carry the same stigma that it carried in the past.
  • Hurried lifestyles encourage "grab it and go" eating.
  • Better medical care reduces the negative effects of being overweight.
  • We are inundated with advertisements for rich, tasty, ready-to-eat foods.
  • Increased standard of living allows us to eat out more often, and consume more discretionary foods.
  • Passive entertainment such as television and computer games results in less physical activity.
  • More households with two wage earners results in less overall supervision of children's diets and after school activities.

In my opinion, the cause of our rising tide of obesity is a combination of those factors. There are two other possible causes that I wanted to mention but that I discount.

  • I have seen several theories about hormone or other chemical imbalances that block the "I'm full" signal or stimulate the "I'm hungry" signal. I don't discount the possibility of hormone imbalances, but the research to date is anecdotal at best. It shows that people with certain imbalances are, on average, heavier than others. However, no study of a sufficiently large sample has shown a causal link, and it'd be difficult if not impossible to prove that the number of people with an imbalance today is different than in the past.
  • Finally, there's the "unknown environmental factor" theory which, being unknown, can't really be discussed rationally. This is a cop-out for lazy pseudo intellectuals. It's all well and good to postulate some environmental factor, but if you want to be taken seriously you have to first rule out all the other possibilities, and then put forth evidence that the unknown factor really exists.

I want to warn you up front that it might be a while between posts on this topic. This is research that I fit into my schedule as time permits, and must be put aside when I have more pressing (i.e. paying) projects.

Friday, 04 February, 2005


I've been letting my thoughts on Jared Diamond's excellent new book Collapse filter through my brain for the last 10 days or so since I finished it.  The book attempts to explain why some societies collapse and other somewhat similar societies don't.  He examines civilizations such as Easter Island, the Anasazi of the American Southwest, the Maya, Norse Greenland, modern Rawanda, Haiti, the Dominican Republic, and others.  The last part of the book then attempts to apply those lessons to the modern world.  He concludes with some very strong evidence that our current civilization is using up the Earth's resources at an unsustainable rate.  Whether or not he's right, I really can't say without more study.  But he makes a pretty convincing argument.

Not everybody agrees with Diamond's conclusions in either book.  One dissenting view was published in the New York Times Sunday Book Review.  In his review 'Collapse': How the World Ends (free registration required), Gregg Easterbrook praises Diamond for his in-depth research, well-formed arguments, and clear writing.  Then he says that both Collapse and Guns, Germs, and Steel (Diamond's earlier, Pulitzer Prize winning book) are "exasperating, because both come to conclusions that are probably wrong."

I would be more inclined to take Easterbrook's opinion seriously if he presented either a good argument for why the books are wrong, or presented an alternative view that was plausible.  Most of the review is just a summation of the two books and an over simplification of Diamond's conclusions.  His criticism of Guns, Germs, and Steel is limited to half a paragraph in which he tells us that Diamond's reliance on inference based on the archaeological record ("a haphazard artifact of items that just happened to survive") is just plain wrong.  I'll grant that we don't know what happened, but Diamond's arguments make more sense than any other explanation I've seen.

Easterbrook's arguments against the conclusions reached in Collapse revolve around Diamond's use of island-based and pre-technological societies in his study.  He's on firmer ground here, although he conveniently fails to mention the in-depth study of the Maya and Anasazi societies, and also of the modern societies that he examined.  It's obvious that continents typically are more diverse and present more opportunities than do islands.  However, Easterbrook's arguments do not convince me that the differences in scale could prevent the kinds of collapses that Diamond documents.

Easterbrook apparently accepts some of Diamond's points ("Diamond rightly warns of alarming trends in biodiversity..."), but rather than presenting alternate conclusions or offering ways to limit the effects of the trends that Diamond identifies, he argues that because we don't have a good solution to the problem, then either the problem doesn't exist or some unknown new technology will save us.  The last three paragraphs are full of so much misguided technology worship that it's impossible to take the rest of the review  seriously.  As an example, consider Easterbrook's parting thought:

Oddly, for someone with a background in evolutionary theory, he [Diamond] seems not to consider society's evolutionary arc. He thinks backward 13,000 years, forward only a decade or two. What might human society be like 13,000 years from now? Above us in the Milky Way are essentially infinite resources and living space. If the phase of fossil-driven technology leads to discoveries that allow Homo sapiens to move into the galaxy, then resources, population pressure and other issues that worry Diamond will be forgotten.

Are you kidding me?  If he actually read and understood enough of the book to write a review, he should understand two things.  First, blind reliance on unforseen technological advances is folly.  More importantly, if you accept the contention that our current patterns of use are unsustainable (and Easterbrook does, at least in part), then we have to reduce the population and resource taxation pressures.  "Moving to the stars" is a great idea, but it's not a viable option for reducing the population unless there are some huge technological advances in the very near future.  We don't currently have the technology to send even a small number of people off world permanently, much less the 60,000,000 per year that we'd have to relocate in order to stablize the population.

Do yourself a favor and read Diamond's books.  Decide for yourself.  Even if you ultimately disagree, you will gain the benefit of Diamond's extensive research and will have enjoyed the way that he formulates and presents arguments.

Ignore Easterbrook's review.  He obviously wasn't qualified to write it.

Thursday, 03 February, 2005

Why Social Security reform won't work

In Chapter 2 of The 9/11 Commission Report, when discussing the social and economic model that helped popularize Usama bin Laden's particular brand of Islamic fundamentalism, the authors write:

In the 1970s and early 1980s, an unprecedented flood of wealth led the then largely unmodernized oil states to attempt to shortcut decades of development.  They funded huge infrastructure projects, vastly expanded education, and created subsidized social welfare programs.  These programs established a wide-spread feeling of entitlement without a corresponding sense of social obligations.  By the late 1980s, diminishing oil revenues, the economic drain from many unprofitable development projects, and population growth made these entitlement programs unsustainable.  The resulting cutbacks created enormous resentment among recipients who had come to see government largesse as their right.

So what does this have to do with Social Security?  The tendency to become dependent on a handout if it's given often enough is universal.  We now have three generations who have been (or are being) brought up to believe that it's government's responsibility to provide for them in their old age.  Social Security, which began as a "safety net," has become every American's "right."  Never mind that the system is poorly managed, has a horrible return on investment, and cannot be sustained without either raising the tax rate (very unpopular and only postpones the problem) or increasing the retirement age (also very unpopular).

The idea of privately managed retirement funds to replace Social Security is interesting and even attractive in some ways.  If people actually invested 4% of their gross income responsibly, they would have a nice cushion for retirement after 40 or 50 years of work.  Properly controlled over the long term, that would solve the Social Security problem quite nicely.  However, the potential for abuse is high and we'll still have to mantain the old Social Security system for those people who don't want to invest on their own and would rather trust government to do it for them  (yes, I'm as surprised as you are that such people exist), or who invest foolishly or otherwise squander thier 4% and come looking for a handout later.

In other words, the President's proposal creates another bureaucracy within the Social Security Administration, reduces the amount of money going into a system that's already bleeding profusely, and ultimately wouldn't save us a thing.  Economists and policymakers might think it will work, but they're notoriously bad at taking human nature into account.

Of course, that's all just my opinion and I could be wrong.

Wednesday, 02 February, 2005

Handling legacy data

I have a new client these days:  a small division of a major publisher.  This division represents several different "imprints" that the company has developed or acquired over the years.  Currently, those many imprints have their Web presence scattered over a handful of hosting providers using different content management and e-commerce systems.  The idea is to consolidate them so that there is one hosting provider and a single CMS/e-commerce solution.  The primary driver here is the employees rather than upper management.  Being a large company, and a publishing company in particular, there is some resistance to change so we have to move carefully.

In a discussion with the client today, one of their corporate IT managers (a big champion of this effort) discouraged us from trying to use a Web service to interface our new systems directly with the existing back end database that handles the manual order processing and accounting systems.  Those are old mainframe databases, with the typical legacy restrictions like limited field widths, upper-case characters, and inconsistent field usages that have evolved over the years.  The reason?  To paraphrase his observation:  "Connecting a Web service to our back end database is the fastest way to spread bad data throughout the organization."  In this case, "bad" doesn't necessarily imply "wrong."  Just poorly formatted and inconsistent.

The answer is to create a middle tier that collects data from multiple legacy sources, uses heuristics and a healthy bit of human intervention to determine which of many possible conflicting pieces of information is authoritative, and then store that data in the format that downstream systems can use.  You can then rewrite or eliminate some of the legacy systems over time without affecting the downstream applications.  On the surface this might look like an expensive way to go, but it's much less painful and more reliable than trying to reconcile conflicting data at the application end, or changing the legacy system's data storage rules to accommodate new systems.

Tuesday, 01 February, 2005


Today marks 14 years since Debra and I stood in my Dad's house in Phoenix and promised to spend the rest of our lives together.  That seems like an age ago when I think of all the different things we've done since then.  Sometimes it seems like just yesterday, though, when I look at her smiling from across the room.  It hasn't always been easy.  We have our disagreements, but the love and respect on which our relationship is based allow us to disagree civilly.

Maybe that's what's missing in so many relationships today:  mutual respect.  I hear my friends proclaim "we're in love," and yet I'll see them treat their wives or husbands with a complete lack of respect.  Belittling your spouse in public (or in private, come to think of it) isn't respectful.  It might get a laugh or two, but he or she will resent it.  Casual acquaintances might be able to get away with that kind of nasty banter.  Marriages and strong friendships will not survive it.

The mutual infatuation inevitably cools, and if that was the entire basis of your relationship then the relationship won't survive.  I've seen people marry for lust, money, power, and all manner of other things.  The ones that last are based on friendship and mutual respect.  As with any friendship, there are times when you'd like to have a little time away from each other.  That's difficult to do, living in the same house.  You have to learn to give the other space without resenting it, and to welcome the return of affection without complaint.  Otherwise the relationship turns into a drawn out war, with silent treatments, screaming matches, infidelity, and ultimately, thankfully after all that fighting, divorce.

Not so eloquent as some of my friends, I'll admit, but I think it gets the point across.  The love isn't gone just because you sometimes can't feel it.