The Windows Registry

There are a number of places in Windows where Microsoft has solved an existing problem by overcorrecting, and causing other problems well down the road. One of the places this is currently most obvious in Vista is the way you are bombarded by a flurry of “allow/decline” messages every time you do anything that modifies the system. They had to do something about stuff getting installed behind your back, and opted for irritating overkill.

Another place is the registry.

The registry exists for a very good reason. Wayyyy back in the dark days of Windows 3 and DOS, getting your computer configured, adding hardware, and telling your machine where all of the programs were required editing a series of files scattered throughout the hard drive. Programs would place these configuration files in seemingly random locations, and many installation programs for new hardware or software would misread or worse, break the configuration files.

The benefits gained were many. System files were collected into one location where drivers and add-ons could easily find them. The same was true for program preferences. It provided a fast and consistent means of storing this information. Access to most of these settings was through control panels unless you jumped through hoops to manually edit them, reducing the number of potential errors. On top of that it’s structure as used in Windows 2000 and XP allowed corporate computer policies and settings to be configured and enforced centrally. All this was achieved without having to worry about file permissions. There’s even a degree of built-in backup, and many errors could be recovered using the last known good state.

That said, I’ve all too many times run into serious issues when the registry gets messed up. This could be the user settings loaded with your profile when you log in, or worse, the machine settings. How software installation, uninstallation, and reinstallation is handled also is much more difficult than it should be. Finally, it accumulates cruft over time.

Let’s tackle the last, first. Any system of settings can leave behind bits and pieces. Personal program preferences are the worst. Even on a Mac, deleting a program does not get rid of the preference files that store all of your settings. That said, these preferences aren’t read and loaded until their respective program loads, so all they do is tie up space on your hard drive, and have little or no impact. In Windows, if the uninstaller either deliberately leaves the preferences, or forgets them, they are now part of the ‘hive’, are loaded when the computer starts or when you log in, and are yet another point for the registry to become corrupted and fail, even if they are not being used. Besides, tying up this room in memory means longer load times and more memory used up that can be used to run programs, etc.

Remember — all things being equal, something more complex is more likely to break. That’s why we engineers value simplicity in design, and “Rube Goldberg” is something of an insult.

Programs entering themselves into the registry is also a reason for a common complaint among Windows users that Mac users find criminal – program portability. If you have to reinstall Windows in anything other than “repair” mode (and sometimes even then) you are virtually guaranteed to spend hours, if not days, reinstalling every piece of software on the computer. If you decide you will be using a certain program on your shiney new desktop, you can’t simply copy the program file over. By contrast, about the only programs on a Mac requiring full reinstallation are drivers and the Adobe suite. Everything else can run from any directory, and if it doesn’t find a set of preferences, creates a default. Many programs are installed by simply copying them to your hard drive and they can be moved or copied by simply dragging the programs to their new home. At worst you may have to copy the license file out of the system preferences as well, or re-key the license. You don’t even have to put them in the “Applications” folder — the equivalent of “Program Files” in Windows. Getting rid of those same programs is as easy as dragging them to the trash. This is possible because there is not a central registry that tracks locations of program files which breaks if you manually move the file, and because Mac programs are smart enough to create a default set of preferences.

What’s worse is when your registry gets corrupted. This can be corruption of the actual data, or corruption of the structure. Both can result in programs crashing, failing to start up, or worse, the computer never starting at all.

If the data is corrupt, then sometimes it can be manually tracked down and corrected. Usually this is easiest by removing and reinstalling the program, unless of course the uninstaller forgets to remove the relevant registry keys. If the structure is corrupt, it’s a nightmare. You cannot even access, much less delete, the relevant keys to fix the problem. At this point, getting the problem fixed becomes “interesting” in a chinese-curse way, and unless you have on tap very recent backups of the registry that are also clean, you will likely have to reinstall (in the case of system registry problems) or wipe the user account (user registry settings). Few things are more frustrating than trying to get a clean and functional user profile working in a roaming-profile environment.

In short, the registry had solved a number of problems, but has also brought a number of headaches along that just get worse and worse as a computer ages and more programs get added and removed. This is why many Windows experts would recommend a reinstall every year or two, and many tech support lines commonly ask you to reinstall Windows when troubleshooting a problem.

9/11

There is a lot that can be be said. Much of it really doesn’t need to be, to many people. My own family had a short discussion of this last night. I didn’t watch the french documentary of the firefighters that I taped when it was aired last year. I know that I once rented United93 – and didn’t watch it, though I intend to at one point. My wife likely never will.

One thing I know I share with a lot of people who remember that day vividly is the sequence of the impressions. The shock at the first crash: no-one knew what was going on, and many of us thought of it as a tragic disaster, but no more. Bad things, after all, happen. This is despite our best efforts, and often our failings at proper attentiveness contributes.

Then we heard of the second jet, and a cold certainty sets in. One I last felt with the USS Cole. This was no mistake.

Once again I stared at the debris left over from an act of war against our nation, by an enemy we had refused to acknowledge.

We are still at war. We have been since at least the 1970’s. It changed its nature in the early 1990’s, and without the will to enforce the cease-fire and finish the war, we kept our troops in a position that was lose-lose for our nation. We are now stuck in Iraq. Whether through bumbling, conscious choice, or subconscious strategic brilliance, that country is now a honeypot for AQ, Syria, and every fanatic that wishes to lop off heads and stone people over a cigarette or skimpy clothing. Iraq is the decisive battlefield and AQ has dug in and defined what they term victory – kicking us out of Iraq so they can take over.

If that is what happens, it will be a strategic disaster of unimaginable proportions. As a result, regardless of what we call victory, we must not allow what Iran, AQ, and their ilk call victory. That means that failing all else, we must not leave Iraq until there is a stable government that will not be a breeding ground for terrorists, and will treat fairly with the West.

Even when that is done, the war will go on, but we must still fight. If we are not willing to fight for the survival of our culture and our identity, despite our imperfections and hangups, then all of our vaunted tolerance, freedom, egalitarianism, and relative lack of class structure will vanish along with our sins.

Why I’m Glad I Don’t Depend on Windows…

except to make money off the fact that other people do depend on it.

To make a long story short, Microsoft had some issues with their database that determines if your computer has a valid copy of Windows Vista or XP on it, and the validation servers were unavailable. Many people all over the world had their computers automatically check in over those few days because they were installing a new copy of Windows or updating or installing something like Windows Defender that required a validation check. Those people were immediately placed in a “reduced” mode that shut off features on their computers.

update: Of course, this all makes my earlier rant on the problems of software activation schemes look prescient.

update2: And the guys from User Friendly throw in their two cents…