Tuesday, July 12, 2005

APUE v2

I love W. Richard Stevens' books. All of them.

Yes, even volume 3 of TCP/IP Illustrated, which everyone else I've talked to about it seems to feel is worthless.

The man was a genius, and there's a reason his family got a standing ovation at USENIX when they accepted his lifetime achievement award for him the year after he died. He touched generations of unix hackers with his writing, and despite the age of the books they remain as worthwhile today as the day they were first released.

Even so, some of them are starting to show their age, so when Bill Fenner and Andrew Rudoff updated volume one of Unix Network Programming I was overjoyed. They did a fantastic job of bringing it up to date with everything that happened in the unix networking world since the last version was released, and I'm confident that the next 10 years worth of unix hackers will be well served by that volume.

That left only Advanced Programming in the Unix Environment (APUE) as truly in need of updating, and today I saw on slashdot that the new edition of it was out. I stopped at B&N on the way home after work and snagged a copy, and so far I have to say I'm quite pleased. It's slightly thicker (and heavier) than the original, and they've added a few chapters that seem useful, although honestly I haven't had time to do more than skim them so far...

But the absolute best part of the whole thing has to be the cover, which bears one of my favorite Dilbert cartoons, the one that ends with the stereotypical bearded unix hacker telling Wally "Here's a nickel, kid. Get yourself a better computer."

Worth the price of admission, no question asked.

2 comments:

  1. If it wasn't for Stevens we'd all be using DECNet ; )
    I am astonished at the level of detail in his books.

    ReplyDelete
  2. Stop recommending books! You always make them sound so interesting and I know I'll never have time to read them all.
    That being said, um... do you know of any good reference books about using Tk with Python? :)

    ReplyDelete