Saturday, September 30, 2006

The Bureau and the Mole, by David A Vise

The Bureau and the Mole: The Unmasking of Robert Philip Hanssen, the Most Dangerous Double Agent in FBI History, by David A Vise

This is a biography of two people: Robert Hanssen, a man that provided highly-classified secrets to the Russians for over 20 years, and Louis Freeh, the FBI Director that caught him. While a captivating story, I found it to be a fairly pedestrian read. It felt more like a novelization of a movie-of-the-week instead of an examination of what makes someone a traitor. The book was light on details, only scratching the surface of the interesting points of espionage: procedures and trade craft and the effects of the information sold. Instead, we get volumes of quotations from Hanssen’s pornography writings (including an entire appendix) that can only be considered gratuitous. It was pretty interesting, but I prefer more depth in a biography.

First Sentence:
Ever since his childhood days in the Norwood Park neighborhood of Chicago, Bob Hanssen had been something of a loner.

Friday, September 29, 2006

Dolphins at Daybreak, by Mary Pope Osborne

067988338X.01._AA_SCMZZZZZZZ_.jpg

Both my sons are currently reading Magic Tree House stories. I’d never read any entries of this collection and was curious, so picked one of them up. It is a cute, short adventure story that sneaks in a lesson or two as it goes. (A pearl is created by a bit of sand being trapped in an oyster—fascinating!) Oddly, it appears that Morgan Le Fay is a hero here, instead of the more typical Arthurian villain. As this is book nine in the series and not book one I don’t know if there is a reason she has been rehabilitated, but it struck me as odd. Clearly a kid’s book, but anything that keeps my boys reading I support wholeheartedly!

First Sentence:
Jack stared out the kitchen window.

Working Effectively with Legacy Code, by Michael C. Feathers

Working Effectively with Legacy Code, by Michael C. Feathers

I bought this book at a conference I attended last year. The place I was working had a serious legacy code base and was in desperate need of refactoring. Unfortunately, I didn’t get too far into the book before I realized the development group there was no where near mature enough to accept this sort of change. The founder continually pestered me to stop spending so much time testing and just get software out. He honestly didn’t (doesn’t) understand the purpose of automated tests, much less any realistic quality process. Needless to say we didn’t get along too well and I left not long afterwards. My current employer also has a large legacy code base, but fortunately the organization is much more willing to embrace change. So, I picked this back up again as it seems now seems useful.

Working Effectively with Legacy Code is mainly a patterns book. It covers both how to get unruly code into an automated test harness and once there, how to refactor it. In general, refactoring is better covered in Martin Fowler’s Refactoring, but as the title suggests, many of the patterns here deal specifically with situations commonly found in legacy code: “Dependencies on Libraries Are Killing Me,” “My Application Has No Structure,” and “I Don’t Understand the Code Well Enough to Change It” are three chapter titles. As with most pattern books, it all seems very straightforward once you read it but before reading it you’d be hard-pressed to succinctly explain the techniques.

Many thoughts expressed here I wholeheartedly agree with. “Safety first. After the tests are in place, you can make the code much cleaner.” The echo of test driven development, this idea is essential to confidently modifying existing code. Without solid tests, refactoring is a guessing game at best. Feathers also recommends avoiding “big bulky unit tests that take forever to run.” In fact, he goes as far as saying that any test that takes 1/10th of a second is considered slow. In his mind, if it talks to a database, communicates across a network, or touches the file system, it isn’t a unit test. While I think that is taking things a bit too far, the sentiment is admirable.

Another interesting quote: “Architecture is too important to be left exclusively to a few people. It’s fine to have an architect, but the key way to keep an architecture intact is to make sure that everyone on the team knows what it is and has a stake in it.” This is exactly right. A good software architect is responsible for the big picture, not for the nitty-gritty details. If you are on a team where the architect does all the design and expects the developers simply to code up his designs, start looking for a new job!

One last message: when developing software, always keep your focus; do only one thing at a time. If you bite off too much at once, you end up thrashing. While especially true for refactoring untested or legacy code, this is very good advice for any development project.

First Sentence:
Changing code is great.

Saturday, September 16, 2006

The Godfather Returns, by Mark Winegardner

The Godfather Returns, by Mark Winegardner

I'm a huge fan of the epic The Godfather and of course the movies. (The movies currently make up the best movie trilogy of all time, although I suspect Spider-Man will capture this crown next spring. But I digress.) Trying to follow in the footsteps of Puzo is no easy task, but Winegardner does an admirable job. It covers the period of time from the purge where Michael takes control of the families (as seen at the end of the first movie) to a few years after the death of Fredo (Fredo dies at the end of the second movie; the book continues on a bit).

For the most part, I really enjoyed this book. The characters are consistent (mostly consistent anyway; Johnny Fontaine was not a whiner here) with previous renditions, and the plot meshes well with the established canon. The style is much like Puzo, complete with graphic violence and extended flashbacks (we see what made Michael a war hero, for instance). Combined with an interesting plot this makes for a really good read. What wasn't so good was the heavy blurring of fictional and real characters. Johnny Fontaine in the originals was clearly a nod to Frank Sinatra, but there Fontaine was a whiner that owed his entire success to the mob where Sinatra clearly was friendly with organized crime but had an undeniable talent. In this book Fontaine becomes much more Sinatra-like, winning an Oscar, becoming the top musical draw in the country, and becoming part owner in a casino. I found this distracting, and it only got worse. A political family named Shea that is a dead ringer for the Kennedy family is introduced, complete with an arrogant ambassador patriarch who got his start running liquor and one son getting elected President and another being the Attorney General. There is even a scene where President Shea visits the West Coast and doesn't stay with Fontaine, causing Johnny to physically destroy a helicopter pad he'd had built. There is a sequel in the works where this analogy appears to be continued; the preview text strongly hints at a Presidential assassination. While this strong parallel to our world didn't ruin this novel, it did kill a great deal of suspense as it was clear what was going to happen.

This is an interesting sequel because it assumes both the book and the movies as source material. While with the vast majority of films adapted from the written word take some liberties and thus have inconsistencies, it isn't so jarring here—the first film was so faithful to the novel it was named Mario Puzo's The Godfather rather than just The Godfather. It has been at least 20 years since I read the book but was able to pick up the characters and events quickly because the movies had kept them fresh. If you haven't read The Godfather or seen the movie saga, this book isn't going to make much sense. If you loved the originals, though, you will enjoy this as well, even if only for the sense of nostalgia you'll get by seeing favorite characters in new situations.

First Sentence:
One a cold spring Monday afternoon in 1955, Michael Corleone summoned Nick Giraci to meet him in Brooklyn.

Thursday, September 14, 2006

The Burglar on the Prowl, by Lawrence Block

The Burglar on the Prowl, by Lawrence Block

Bernie Rhodenbarr, the most honest burglar you’ll ever meet, is as amusing here as ever. As with the other Bernie books I wouldn’t call this a well-crafted mystery, but I will call it a lot of fun. The ending comes complete with the hero bringing every single character in the story together in the same room and demonstrating exactly what happened and how each one was involved. Think Clouseau without the slapstick. In the earlier volumes I found the many coincidences hard to swallow, but now I see them for the parodies of the genre they are. These are fun books and I’ll certainly read more.

First Sentence:
“The man,” said my friend Marty Gilmartin, “is an absolute ... a complete ... an utter and total ...”

Monday, September 11, 2006

A Farewell to Arms, by Ernest Hemingway

A Farewell to Arms, by Ernest Hemingway

A classic I’d never read, I’d been looking forward to this one. While a compelling read, I was surprised to find this so depressing. Hemingway has a very bleak outlook on life, as captured in this quote: “But those that will not break [the world] kills. It kills the very good and the very gentle and the very brave impartially. If you are none of these you can be sure it will kill you too but there will be no special hurry.” If there is a literary antithesis to Chicken Soup for the Soul, this is it!

I like to believe that life is what you make of it. I believe that hard work will lead to well-deserved rewards. I believe that Superman and Robin Hood are still alive in Hollywood. I believe in true love and karma. This book, however, incessantly espouses the exact opposite ideology, hammering on the inability of positive forces such as love and friendship to counter the grim realities of life. Yes, this is about a soldier during World War I—hardly a situation that simply whistling a happy tune will make pleasant—but the further the hero gets from the front, the more bleak his existence becomes. Even Shakespeare ends Romeo and Juliet, one of the most tragic epics ever written, with the grieving, feuding families realizing the error of their ways. While I don’t need every story to end with the hero and his soul mate riding unicorns into paradise and riches, I do prefer a heavier dose of karma than found here.

First Sentence:
In the late summer of that year we lived in a house in a village that looked across the river and the plain to the mountains.

Dragonsblood, by Todd McCaffrey

Dragonsblood, by Todd McCaffrey

Dragonsblood takes place in two time periods, one soon after the dragons were initially genetically engineered, and one five centuries later with a much lower technological base. If you’ve read any Pern stories, you won’t find much new here: a girl who can hear all dragons, a plague, a race against time for a cure, time-travel to find healthy dragons and riders, and recovered technology from the past saving the present. For Pern, though, familiar is comfortable.

There are two main story lines, with the narrative jumping back and forth between them. While this isn’t an uncommon technique, it isn’t handled all that well here. Secondary plots are started but vanish without a thought a chapter later. Characters are introduced only to be killed off before they have become anything more than a shallow caricature. The ending is ludicrous at best; marginally educated characters in a largely agrarian society find a trove of lost information and in a week are suddenly discussing advanced biology, comfortable using microscopes and computers, and genetically engineering a cure for a plague. All this leads me to believe that like his last book, this is a young adult book in trade dress. It isn’t going to hold the attention of an adult not already enamored with Pern, but I can easily see a younger audience eating it up.

First Sentence:
Four men stood in a knot around the Star Stones of Fort Weyr.

Search This Blog