Which books do you keep on hand?

There are a handful of books that I make a point of keeping close to my desk as general reference guides. I thought I'd take some time to share my list and see if there are others out there that I'm missing. Suggestions for specific languages, concepts, or principles are welcome.

The first that I keep on hand is O'Reilly's SQL in a Nutshell. My edition is pretty old (2000?), but it details SQL syntax differences between MS SQL Server, Oracle, MySQL, and postgres. On conversion projects, I haven't found a better reference, but I use it for a general reference also. If you're working with databases and just need a syntax reference, I'd suggest it without hesitation.

Next, I keep Elliot Rusty Harold's XML Bible on hand. I originally bought this about four years ago when I had about two days to teach myself XML and start making things functional. It covers the basics of XML, XSLT, DTD, and even XML Schema. I use it less now, but it's been a great resource to pick up as needed.

Next, since I'm deep into Java projects at this point, I picked up Mike Clark's Pragmatic Project Automation from the Pragmatic Programmers. Before picking this up, I had written various Ant build scripts, Unit Testing, and simple deployment procedures, but this managed to tie them all together. He does a great job at taking simple concepts and building them higher and higher until you get a complete and extensive build script which handles numerous aspects of the process. This little blurb doesn't do Mike's book justice, so I should probably write a full review at some point. If you're interested in Mike, his blog is linked on the left.

Finally, I keep Martin Fowler's Patterns of Enterprise Application Architecture and Refactoring close at hand. Reading through both of them the first time was a slog, but being familiar enough with the concepts to quickly flip to the relevant section has been incredibly useful in both the design of systems and in communicating those concepts to others. I've previously written a review on Refactoring. If you're interested in Martin, his blog is linked on the left.

What books do you keep nearby?

Which ones have found a place on your bookshelf and simply refuse to go away?

Which books made you slap your forehead and say "I should have thought of that"?

I've been Considering

I've been considering picking up Donald Knuth's The Art of Computer Programming, but I haven't ever had a chance to flip through them and get a feel for the content.

Books I use alot:

By O'Reilly:
Dynamic Html, Danny Goodman
Javascript the Definitive Guide, David Flanagan

By Wrox:
Professional PHP Programming
Professional PHP4

New Riders:
Web Application Development with PHP 4.0, T. Ratschiller, T. Gerken
MySQL, Paul DuBois

I also use O'Reilly Safari, where I have a 10 book shelf. I have the latest books I list here by O'Reilly and use them sometimes instead of the paper books. Just depends what kinda of mood I'm in and if I know what I want is in the paper book, I'll use that. If I'm not sure what I am looking for I will use Safari so I can search.