Still writing the legacy chapter. Totally coincidentally, Michael Feathers, author of Working Effectively With Legacy Code, just wrote on an issue similar to what I'm dealing with right now: The Bad Code Kata. I imagine Feathers had a similar problem when writing his book about legacy code.
An Apple Comment A Day
So Apple is apparently holding a press conference Friday about iPhone 4, although they haven't officially confirmed that it's about the antenna issue.
By the way, I keep seeing dark speculation about why early reviewers of the phone didn't see this issue. Though I do think the tech press isn't always pure, I don't think you need to invoke a conspiracy in this case. I assume that since the phone was in an NDA that it was being used in a case a large percentage of the time to hide it, which by most accounts sharply reduces the issue. Also, Mossberg's early review did mention an intermittent service drop (3rd and 4th paragraphs from the end) -- he just wasn't able to diagnose it. Which doesn't excuse Apple from finding the problem, just means we can probably rest the conspiracy talk in this case.
As for me, I still can't get over how great the screen is, but I think my expectations got raised too high on the still camera -- I'm getting more grain than I expected in places that I wouldn't have considered low light. Still, it's a big improvement. As I said, I can reproduce the antenna issue, but it hasn't yet been a practical problem for me.
Josh Owens has a short but sweet post on how to pick an open source tool when there are multiple options available.
Here is a slide show on how enumerators work in Ruby, it comes from a talk by Rein Henrichs, but is pretty easy to follow even without the speaking.
Antony Marcano has a brief historical anecdote on the history of the term Waterfall as applied to software.