I have a couple of books that have showed up on my desk recently.

The first is “Test-Driven Development in Microsoft .NET”, by James Newkirk and Alexei Vorontsov. They started writing the book while working at ThoughtWorks, though Jim is now working at Microsoft in the Patterns & Practices group. I reviewed early drafts of the book, and Jim was nice enough to drop by a signed copy a week ago. I confess that I haven't opened it again - one of the disadvantages of reviewing books is that you get the feeling that you already know what the book says, despite the fact that the book has undoubtably changed since you read it. I like the practical approach they've taken in this book, and I think Jim (I don't know Alexei) is largely immune to the more fervent side of the XP movement.

The second book just showed up today - it's “TCP/IP Sockets In C#”. I'm embarrassed to admit that while I remember helping out on this book, I don't remember exactly what I did, but the authors were nice enough to send me a copy. I have a feeling I'll be delving into this a bit deeper since all the socket code I've written has been very cookbook-ish.

The third book is Hardcore Java, which may seem like a strange thing for me to be reading, but I wanted to understand some of the best practices around Java so I can better relate them to what we do in C#. I'm reasonably sure that I ordered this book, though I confess I was a bit surprised when I pulled it out of the shipping cardboard.

Oh, and to round things out, I'm also re-reading “Flight: My life in Mission Control“, Chris Kraft's excellent biography about the flight control side of Mercury, Gemini, and Apollo. I think I like it slightly better than “Failure is not an option” by Gene Kranz.