Microsoft does well by their customers… and even better by their non-customers

I was curious to read today about Microsoft’s new Windows Genuine Advantage changes coming in Windows Vista Service Pack 1.

The current draconian system of locking down machines that appear to be running pirated versions of Windows has not been well received, apparently, especially a few weeks back when a buggy update was released prematurely and left thousands of “genuine” customers without working copies of Windows. So Microsoft is softening the approach, as described in the article linked above.

In the new version, PC users found to have a pirated copy of Vista will continue to be able to use their computers, but with unmistakable signs their operating system is a fake. The desktop wallpaper will turn black, and a white notice will appear alerting users to the problem. Each time they log in, they will be prompted to buy legitimate software, and every hour, a reminder bubble will appear on the screen.

Users with a high tolerance for irritation can put off switching to genuine software indefinitely, but those who relent and buy a real copy of Windows can do so at reduced prices — $119 for Windows Vista Home Premium, half the regular retail price.

OK, well that does seem to be an improvement, but… wait a minute! Read that second paragraph closely. Surely it can’t mean what I think it means, but it sounds like what they’re saying is that if you pirate Windows first, and then after enduring the automated nagging for an indefinite period of time, you’re entitled to buy Windows for half the regular price paid by loyal customers who purchase a legitimate copy up front.

Well, at least it’s consistent with Vista’s backwards approach to system security. (Throw up excessive warnings to the user about nearly everything they’re about to do, but don’t actually restrict their access to those things based on permissions.)

Forget what I said before; we have a winner!

It’s a given that anything I post here is going to be brain-deflatingly stupid. But this one goes beyond even what I would have expected of Microsoft. Fortunately, thanks to a highly effective Google search, I was able to solve the problem in minutes.

The problem was this: For a site I’m working on, we are manipulating the 404 error feature to allow users to set up customized URLs. If the URL entered doesn’t match a real page, it gets fed into this 404 error script, which looks up the path in a database and redirects the user to their customized page. A bit of a hack, but it’s pretty slick.

As usual, I am developing the site using Firefox as my test browser. But… UH-OH! Surprise! When giving a demo of this feature today using Internet Explorer, we discovered it didn’t work! Internet Explorer was not returning the server’s 404 error page, instead using its own internal version (which we’ve all seen and most generally ignore).

Drat! What to do? Well, as it turns out (thanks to the aforementioned Google search), the problem is quite simple. To quote the unbelievable but, as I verified, 100% accurate description I found on this page:

Internet Explorer has a lightly-documented “feature” that stops it from serving any custom 404 error page that is less than 512 bytes long. Your visitors will instead be sent to IE’s own 404 page, which is generic and suggests they use an MSN search to “look for information on the Internet.” That’s one way to lose visitors! Make sure your custom 404 error page is over this limit — about 10 full lines of text and HTML should be enough.

Yep, that’s it. I did my best Bart Simpson-at-the-blackboard impersonation, filling my 404.html file with a large comment block wherein I repeated (about 130 times, for good measure) the phrase “This block exists solely to force Internet Explorer to load this page.”

Sure enough, it worked. D’oh!

Thinking a bit more about this, I at least think I understand why Microsoft chose to do this. “If the server’s default 404 error page is so short,” I imagine them musing, “then it probably doesn’t offer users much helpful information. And since our wonderful web browser is much more important to our users than the web pages themselves, let’s just butt in and do things our way. (Is there really any other way anyway?)”