One of the most unpleasant tasks is making a good-looking, standards-compliant web design that works on all browsers. Far and away, the most annoying browser is Internet Explorer 6. Stuff that works fine on Firefox, Opera, Safari, and even IE7 just does not work on IE6.
I wish I could just say "to hell with IE6" and not support it, but according to Google Analytics, over 70 percent of Trainster users are using IE6. So like it or not, I am stuck with making it work.
Last week, I tried out Trainster on Safari for the first time. Like Opera, Safari is a very strict browser when it comes to interpreting HTML, so it is good for testing out a site. If it works with Opera/Safari, it should work with anything. I found a few problems, further confirmed by the excellent W3C Markup Validation Service.
Thinking that standards compliance would solve all of my problems, I set out to make all of Trainster HTML 4.01 strict. It took a lot of work, especially since there are a lot of little nitpicky things that one needs to do in order to be HTML 4.01 strict. But I slogged through it, and Trainster is now HTML 4.01 strict (yay!). And strict compliance did fix everything... except for IE6. A few hours after pushing the changes live, complaints started to roll in from IE6 users saying that the site was all messed up.
Mind you, it is not that easy for me to test IE6. You can't even run IE6 on Vista, so I had to install Virtual PC 2007 and download a special virtual machine from Microsoft Support that has Windows XP with IE6 on it. And sure enough, once I loaded it up on IE6, the site didn't look right.
Fast forward over two hours of pulling my hair out trying to figure this out, and it turns out I was bitten by the IE6 xml prolog "feature". Any seasoned web developers out there are probably nodding their head in sad agreement at this point... For those who don't know, if you have this one innocent-looking line at the beginning of your HTML page:
<?xml version="1.0" encoding="iso-8859-1"?>
Then IE6 will disregard any specific DOCTYPE instructions that you have otherwise given and render the page however it sees fit (called "quirks mode"). ARGGGHHGGHHHHHH! Luckily this behavior has been removed for IE7. So I removed the line and all is well.
I'm not sure what the point of this blog entry is, other than to vent a little bit and perhaps save some other poor soul from suffering the same fate some day.
Things I really like about Vista
- GUI Refresh/Update - looks really nice (esp. alpha blending tricks)
- Start menu is vastly superior (Apple spotlight-style)
- BitLocker hard drive encryption (haven't gotten it to work yet, but it will be cool when I do)
- Windows-Tab functionality (cycles through open windows graphically)
- ReadyBoost technology (uses flash drives to augment system RAM)
- Built-in disk defrag is much better, no longer need separate program (sorry Diskeepeer!)
- Way too many "do you want to allow this" prompts (installing a simple program can require up to 6 confirmations!)
- If Vista doesn't know your devices, finding drivers is a chore... I had to find new drivers for my video and sound, and it wasn't easy (all my friends who rip on installing Linux should try installing Vista sometime...)
My usual routine with any USB device is to just plug it in straight out of the box and see if it works. Unfortunately, with this camera, Windows couldn't locate "SONYPVU1.SYS" and prompted me for its location. This is usually a sign that you have to run the install CD that came with the device, so I obediently pulled out the Sony install CD, ran it, and waited through the forced reboot.
Plugged in the camera a second time: Same problem. What the heck?! I hit Google and found out that a lot of people have this problem. As near as I can tell, Microsoft ships SONYPVU1.SYS as part of Windows XP standard build, but for some unknown reason, certain OEMs (like Dell) strip it out of their builds. End result: My new Sony camera had zero chance of working out of the box with my Dell PC.
Inexcusably, all three companies involved (sony.com, dell.com, and microsoft.com) have zero information on their support web sites about how to solve this problem. Luckily I am savvy enough to be able to track it down after wasting a bunch of time diagnosing the problem, but what about the average consumer?
Sony, Microsoft, and Dell: Not sure who is to blame, maybe all three of you, but shame on you! This sort of thing should not be happening in 2006.
If you need the file, here it is: sonypvu1.sys
Here's what happens: I suspend my laptop and stick it in my backpack. Plenty of battery left at this point. After some period of time, Windows decides it's been suspended long enough and decides to hibernate. So it wakes up and then the bug strikes (see unhelpful error message above). Unfortunately, it doesn't go back into suspend, and proceeds to completely drain my battery until it's completely dead.
This is a really annoying bug, one that makes the suspend feature on my laptop almost useless. (I've tried disabling suspend, but the bug still happens.)
If anybody knows how to fix this problem, please help :-)
The offending patch had something to do with Microsoft.NET. Every so often, I would dutifully try to install the update, only to have it fail for no reason at all (messages like "The update failed to install" were not very helpful in diagnosing the problem).
I dug around a bit, figured out the hotfix number, and tried downloading the patch .exe directly from microsoft.com and installing it, only to have it prompt for an .msi file halfway through the install. Again, no help was given on how to proceed or fix the problem.
I was finally able to track down some help with Google (link1, link2): I had to download dotnetfx.exe, unzip it to a directory, download the patch, run the patch, and (when prompted) point the patch to the unzipped directory to get a file that it needed. Once I did all of this, the patch finished installing and I could return to the serenity of a taskbar tray free of the yellow shield.
My big question is: What gives with the error reporting? Why wasn't more information given on the reason for the failure and how to fix it. Even better, since my copy of WinXP knows that it was in trouble, and since I am a registered user of a valid copy of XP, how come my OS couldn't "phone home" and report the problem so that somebody from Microsoft could help me fix the problem.
Anyway, I'm posting this here in the hopes of helping out any other poor souls who are currently trapped in a similar situation.