When I was a lad, back in the early 1980s, Prentice-Hall defined good programming books (at least for me). The C Programming Language, The Unix Programming Environment...they set the standard that most other books failed to meet. Five years ago, O'Reilly had clearly captured the flag. From Programming Perl to Linux in a Nutshell, if a propellor-head needed to know it, it could probably be ordered from oreilly.com. They didn't just reflect the explosion in pragmatic programming that accompanied the internet boom; they also helped to shape it and give it direction. These days, though, I'm not sure that any book publisher can see more than thirty seconds ahead. Few of my students in Toronto buy books at all: they turn to instant messenger first ("Hey, does anyone know how..."), and then to Google. So how is O'Reilly coping? Judging from the four books reviewed here, pretty well. First on the list is Laura Wingerd's Practical Perforce. For those who haven't seen it, Perforce is the sweetest version control system ever created. Wingerd has worked on it from the beginning, and the depth of experience that has given her shines through in this thoughtful, well-written book. From basic operations to the complexities of administering repositories used by hundreds of developers, Wingerd patiently shows readers what the real issues are, how best to think about them, and how Perforce can solve them, all without a whiff of marketology. I particularly appreciated her discussion of how to manage branching and merging: even if you're using another system (such as Subversion), the best practices she describes can save you a world of pain. If Practical Perforce was the voice of experience, Google Map Hacks is a little kid going, "Wow! Wow!" in a toy store. The seventy tips and tricks collected in this book range from how to query GM's occasionally-unpredictable interface, to tracking your movements, to browsing Planet Earth for photo shoot locations. I enjoyed this book, in large part because its contributors clearly feel that social engineering is as important as software engineering. Sharing your favorite walks around your community with other people isn't really about coding; it's about drawing attention to beauty, and inspiring change. OK, that sounds pretentious, but it's true, and remember: this particular earthquake has only just begun. Last up is a pair of database books: Beaulieu's Learning SQL and Molinaro's SQL Cookbook. The first one was solid, though not inspiring: it covered everything that a modern introduction to SQL ought to, using the same kind of banking and HR examples that instructors were using twenty years ago. If you're new to relational databases, it's a good a place to start, but don't expect it to set your heart racing. The SQL Cookbook, on the other hand, did provide a few "cool!" moments. Like everyone else, I'm constantly frustrated by the fact that SQL written for MySQL won't run on PostgreSQL, PostgreSQL queries won't run on DB2 or SQL Server, and so on. Well, not only does this book show how to solve commonly-occurring problems, it also explains how the solutions differ for different database packages. I have already replaced a couple of loops from my Python code with calls to RDBMS-specific functions, and the discussion of "Knight's Values" helped me solve a problem that had been nagging me for weeks. As long as O'Reilly keeps publishing books like this, at least one programmer will turn to them before Google.
Alan Beaulieu: Learning SQL. O'Reilly, 0596007272, 306 pages. Rich Gibson and Schuyler Erle: Google Maps Hacks. 0596101619, 366 pages. Anthony Molinaro: SQL Cookbook. O'Reilly, 0596009763, 628 pages. Laura Wingerd: Practical Perforce. O'Reilly, 0596101856, 358 pages.