Thursday, July 26, 2007

Harry Potter and the Deathly Hallows Book Review

I know this has nothing to do with IT, but because I tend to like Harry Potter, I thought I would post my review of this novel:

This review contains spoilers, do not continue reading if you want to read the book for yourself.

Stars: **** (out of 5)

I would love to say that I love this book, but I don't love it. While it is a good effort to ending the Harry Potter series, it really does leave some to be desired. There are many issues that are addressed in such a simplistic (shallow?) way, that it just doesn't ring true.

Let's start with what this book isn't. I thought that each book was supposed to chronicle Harry's life at Hogwart's? This final book didn't chronicle anything much at Hogwart's (save the final battle, if you can call it that). Yes, after book Six, Harry was supposed to set on a quest to find the Horcruxes. No, Harry does not end up back at Hogwart's in any educational way in Year 7. We, as the reader, don't even get to say goodbye to the place (or many of the people). By the time the dust settles, the book is over. This is especially frustrating as much of the novel is set outside of Hogwart's.

Close to half of the book is spent with Harry, Hermione and Ron on-the-run moving about the countryside in a tent with no direction. No wonder Ron leaves for a while. Even he saw just how useless this part of the novel is. In every previous novel, Harry's always had a breadcrumb trail neatly laid out in front of him. So, why is this book different? If Dumbledore truly had a plan, then the breadcrumbs would have, again, been neatly laid out for Harry (and definitely visible). Yet, Harry just didn't or couldn't find the crumbs for months on end.

When Harry finally does find the trail (sort of) and ends up back at Hogwart's, the teachers rally behind him immediately. This kind of made me wonder what the point of having Harry, Ron and Hermione on the run most of the novel? Why didn't Harry go directly to Hogwart's in the first place? If most of the teaching staff was that supportive of Harry and his quest, then that's the place where the novel should have started (and where Harry should have gone first, not last). Sure, there were a couple of things that came out of their boring travels, but they could have gotten that information or those items in a different way.

The romance aspects of the novel were lackluster at best. JK had been building these relationships up slowly throughout the series, but it basically all falls into place in a rather odd, rapid and not very meaningful or romantic way. In fact, the whole Cho Chang thing is completely left hanging with no real closure. Cho appears in one part of the novel as if something might happen, but then it's just left hanging.

The people and animals who died in the novel had no real thought put behind why they died. They seemed to die just to be killed off, but without real purpose. Sure, there's a 'battle' going on, but if a character is to die, they should die in a way that at least makes their death seem more acceptable. Many of the people who die, die out of sight. So, we only hear of their death third hand or because their body is being carried by someone. The characters who die in front of the reader die without any real explanation or reason. They're just dead. Again, little thought went into these deaths. Sure, some people will die in an epic battle, that's a given. But, it makes more sense when it's in the line of battle or because of a specific event. Obviously, there are random deaths in real life, but this isn't real life. This is a fanciful novel and these people are supposed to be Wizards and Witches with 'spells' on their side.

The loose ends that are left open from the previous novels are closed, at least the ones that Rowling deems worth closing, a little too neat and tidy. They were all closed not with a twist, but in a very straight forward and expected way. Almost like presents wrapped with neat little bows. These closures, then, end up a bit anti-climactic and, at least for me, unsatisfying.

Harry eventually pieces together what the 'Deathly Hallows' are, but this thread is really left hanging, more or less. We finally end up knowing what it is and it does help Harry in the end, but only in an indirect (cerebral) way.

This leads to the final Harry and Voldemort thread which closes, not with a long fantastic duel as one would expect, but with a very rapid cerebral closure. This kind of cerebral closure is kind of strange for a 17 year old who shouldn't be (and isn't) quite this 'wise' yet. At least, if Harry had had some revelation or some kind of major light-bulb-goes-on storyline, it might have been more expected and in character. But, the entire series of novels had always painted Harry as this guy who's been thrust into a a fanciful situation and has managed to get out of situations due strictly to luck, not experience.

That's not to say that the novel isn't worth reading. It is. It's just that you shouldn't go into it with the expectation of getting the kind of spectacular closure you would expect from the groundwork laid in the previous six books. Hallows is definitely a good book. But, it is strides away from being an outstanding book. Harry Potter may live on in literary history as media novelty and a great children's series, but it will likely never be considered a master work.

Saturday, July 14, 2007

What is it about Windows? Part II

Click Here to read Part I

The Registry
What is the registry? Well, it's a database of system and application settings. Put simply, it's a database! Now, let's think about that for a moment. Microsoft already makes a REAL database named MSSQL. There are many third party databases including MySQL, Oracle, Ingres, PostgreSQL, NDBM, and the list goes on. So, why did Microsoft opt for some no-named crappily written kludge-of-a-database for such a critical system component as the registry? I mean, who's brilliant idea was this?

So, you're probably thinking, "But some of those databases weren't available back when the registry was introduced". Perhaps MySQL wasn't available then, but MSSQL, Oracle, NDBM and several others were all available. In fact, they even had MSAccess with mdb files or they could have even used Dbase (DBF files), both of which ship with actual repair tools. In fact, all of the databases mentioned support repairing corrupted tables. Why did Microsoft choose this so-called database named, I think, 'SAM'? I'll never know. This database system is extremely easy to corrupt and impossible to repair. There aren't any repair tools available (or none that I know that actually work, that is). So, if the registry hive gets corrupted, Windows won't even boot. Better have a backup of the hives or you'll be backing up, formatting and reinstalling not only the operating system, but all of your applications all over again. A typical MS standby when things just don't work right.

If you're wanting to run a mission critical production system, would you trust your critical data to an operating system that hangs its day-to-day existence on a database that could become corrupted at any turn? This is part of the reason I trust UNIX/Linux a whole lot more. Of course, there are critical files on UNIX that, if corrupted, could prevent UNIX from booting. The difference between UNIX and Windows in this regard, however, is that in the UNIX instance you can easily repair or replace those files and bring the entire system back easily. With Windows, if the registry gets corrupted and you can't boot, you can't easily fix this issue. Windows repair processes cannot fix a corrupted registry. If you don't happen to have a recent backup of the registry, you can't easily drop a new one in place. If you drop a brand new registry in place, it may not boot at all, or it could boot up showing no applications loaded (depending on the corrupted hive).

With the introduction of System Restore in Windows XP, this can aid in recovering the registry, but only if System Restore has done its job and you have a recent backup. I find, however, that System Restore doesn't always do its job properly and that the registry files are weeks old or not relevant. Worse, you can't tell if the hive files are the 'most current' simply by looking and there are no tools to help you find out. Also, 9.9999 times out of 10, you can't simply use the Automated System Recovery (ASR) to restore these files anyway. Every time I've had to recover registry hive files from the System Restore, I've had to do it through a very tedious manual process with the Recovery Console (extremely time consuming). Because of the excessive amounts of time involved in manually using the Recovery Console, I've found another alternative recovery system that boots a live version of Windows from CD so I get a full WIndows environment instead of just an extremely limited shell.

It just amazes me that in this day and age, Windows is still stuck in 1984 with a database that has no recovery tools, no repair tools and no easy way to fix problems that arise. In spite of Microsoft, there is a flourishing community of hackers (the good kind) who have written recovery systems and tools to aid (although not repair) hive corruption. It's unfortunate that as a system administrator, I have to rely on third party tools to fix problems that arise regularly... and Microsoft releases absolutely nothing in this area. There are loads of knowledgebase articles related to corrupted registries, but simply no tools from Microsoft to aid in fixing these issues.

It's most definitely about time for Microsoft to get rid of the extremely old and unreliable registry database system and replace it with an actual database that has journaling, recovery and repair tools.

System Administration + Datacenter Reliability
As a systems administrator and overall IT guy, I have worked with many systems in my 15 year career. I will say that Microsoft's operating systems are the absolute weakest when it comes to systems administration. For everyday easy stuff, like adding users, printers, applications, etc... Microsoft keeps it in the GUI world and makes it 'friendly'. However, most things related to system administration are not in this GUI world. When things break (hard drives die, cards fry, CPU fans break, files go missing, corrupted MFT, etc), there are extremely few tools to help manage, diagnose or fix these issues. Microsoft does provide some limited command line tools to aid in fixing some limited issues. But, once you've gotten to the point where you need a command line tool (which most major failure issues require), you're likely well beyond the tools that are included with Windows (or in the resource kit). Microsoft has basically limited its exposure and systems admin tools to the operating system in GUI mode.

Windows lack of hardware diagnostics and proactive failure monitoring
It is left up to the hardware manufacturer to provide tools/drivers to monitor the hardware for failures as Windows has no provisions for this at all. Even still, the hardware monitoring tools provided by third parties are usually so limited as to be worthless.

For example, most hard drives today support S.M.A.R.T. (Self-Monitoring Analysis and Reporting Technology). This technology has been available for at least 8-10 years. Simplistically, it is a system by which the drive itself keeps a log of how many errors, how often and where on the drive the errors exist. If the errors hit a certain threshold, the drive is marked as 'failed' internally. Yet, Microsoft still does not support S.M.A.R.T. technology natively in the OS. There may be add on softwares that can help this issue, but if, for example, your S.M.A.R.T. drive fails, Windows doesn't report the error at all. It just continues to try to load data from this drive failed or not!

It is this lack of proper simple systems administration tools, diagnostics and proactive hardware monitoring that makes Windows unreliable for data center operation. Basically, you hang your system out to do work, but if things fail, Windows never tells you. Midrange UNIX servers have had these basic diagnostic and monitoring tools for years. Yet, Windows has never gotten there. I've worked on systems that were designed in the late 80's that had monitoring systems available for such things as autoremapping of bad memory sectors, autofailure of bad memory sticks, notifications of failed drives (and the system actually tries to be proactive and detect such things). These were systems that I used back in the early 90's and likely designed in the 80's! Here we are in 2007 and Windows still doesn't have tools and diagnostics such as these! ... And Microsoft has the gall to call one of their products a 'Datacenter' version!

(continued in Part III)

Monday, July 2, 2007

Spam Poison

If you haven't noticed, there's a small image that says SPAM POISON. Basically, this icon links to the Spam Poison site that, in turn, has links leading to an unlimited amount of junk email addresses. Because of the Spam Poison site, if a bot tries to crawl this site looking for email addresses, that bot will deep link into an unlimited supply of junk email addresses. This effectively poisons any list that the bot is attempting to create. Thus, if any email addresses get posted on this blog, rest assured that the presence of the Spam Poison banner effectively makes any email list they attempt to create from this blog into a worthless piece of junk. If you don't see the Spam Poison banner, then that site is not protected from email culling and you should think twice before posting your full email address.

If you want to protect your web site from being crawled for email addresses, simply click on the Spam Poison image and follow the instructions on how to implement it on your site. This might be worthwhile also placing it onto your corporate web site on pages that contain corporate email addresses. I have followed their links on their site and they are part of the Spam Daily site which appears to be a legitimate organization. The idea they have implemented is an excellent technique to combat email culling that is so prevalent by spam houses today.