Some Truly Excellent Books

Copyright (c) 1999-2001 by Rich Morin
published in Silicon Carny, September 1999


One of the side benefits of writing a column is the fact that I get to look at lots of books. Sometimes these are books that I requested; other times they simply show up at my door. In either case, I enjoy looking them over and then (as in this column) telling you which ones I liked the best.

Please note, however, that this column does not attempt to be comprehensive or even totally current in its coverage. Rather, it's a totally subjective, impressionistic review of some my favorite book acquisitions over the last several months. I liked these books a lot; perhaps you will, too.

Cluster Computing

Gregory Pfister didn't start out to write a definitive work on cluster computing. He was just putting together some notes in self-defense and things got away from him. His pain is our gain, however; "In Search of Clusters" is a really wonderful book.

Possibly because of its informal beginnings, the book is quite interesting and extremely readable. Even I, who have neither the time nor the budget to consider setting up a cluster of computers, found myself happily reading about the issues involved.

My only problem with the book, in fact, is that it doesn't specifically cover Beowulf, the Linux-based cluster technology developed by NASA's Beowulf Project. The general background provided by the book, however, would be appropriate to any would-be cluster-maker.

Data Basics

Asking around recently for some good books on SQL, I was referred by some seasoned SQL hackers to "Understanding SQL" and "Joe Celko's SQL for Smarties". Both of these books have been around for a while, but SQL isn't changing much, so that's probably OK. (Joe Celko has another edition coming out soon, by the way, if you're not in a big hurry.)

If you already know SQL pretty well, but want to pick up some advanced tricks, you might want to go straight to Celko's book. On the other hand, having a good reference to the basics may not be such a bad idea...

For coverage of more esoteric data handling approaches, I recommend "Managing Gigabytes". This book, based on an Open Source package called mg, describes the creation of a large-scale, online document archive (the New Zealand Digital Library).

In doing so, it covers a range of topics in the areas of data compression and indexing, examining underlying issues and available techniques. The result is a readable and authoritative survey course; I found it both interesting and educational.

Perliana

O'Reilly & Associates doesn't own Perl, but they have a solid grip on its published documentation. They now have something like a dozen volumes related to Perl, and the quality is generally very high. If you're serious about learning Perl, you really should have "Learning Perl", "Programming Perl", and the "Perl Cookbook" near your desk.

More advanced Perlers should add "Advanced Perl Programming" and "Mastering Regular Expressions". Perlers with specialized needs should consider "Learning Perl/Tk", "Programming Web Graphics with Perl and GNU Software", "Web Client Programming with Perl", "Writing Apache Modules with Perl and C", and the (four-volume plus CD-ROM) "Perl Resource Kit".

If you to have your Perl references online, you might consider getting "The Perl CD Bookshelf". The CD-ROM contains indexed HTML versions of six popular Perl titles, bundled with a hard-copy version of "Perl in a Nutshell".

A few gems of Perliana are available from other publishers. Lincoln Stein's "Official Guide to Programming with CGI.pm" is short, readable, and definitive. Nigel Chapman's "PERL: The Programmer's Companion" is an excellent "programmer's introduction to Perl", but it may be a bit chewy for beginning programmers. All modesty aside, "MacPerl: Power and Ease" is the book to get if you're interested in using MacPerl.

Brian Kernighan

Brian Kernighan doesn't need my plaudits, but I'll offer them anyway. He is an absolutely top-notch technical writer and editor who has brought a number of great books into existence.

Brian's collaborations include several classic references: "The AWK Programming Language" (with Al Aho and Peter Weinberger), "The C Programming Language" (with Dennis Ritchie), "The Elements of Programming Style" (with P.J. Plauger), "The UNIX Programming Environment" (with Rob Pike), and most recently, "The Practice of Programming" (with Rob Pike).

The latter three books are short, elegant courses in Unix and programming philosophy. They should be read by any aspiring Unix programmer; even seasoned Unix programmers could benefit from scanning through them...

Bibliographic Citations

Advanced Perl Programming
Sriram Srinivasan
O'Reilly, 1997, ISBN 1-56592-220-4

CGI Programming with Perl (2nd. Ed.)
Shishir Gundavaram
O'Reilly, 2000 (est.), ISBN 1-56592-419-3

In Search of Clusters: (2nd. Ed.)
The Ongoing Battle in Lowly Parallel Computing
Gregory F. Pfister
Prentice Hall PTR, 1998, ISBN 0-13-899709-8

Joe Celko's SQL for Smarties:
Advanced SQL Programming
Joe Celko
Morgan Kaufman, 1995, ISBN 1-55860-323-9

Learning Perl (2nd. Ed.)
Randal L. Schwartz, Tom Christiansen
O'Reilly, 1998, ISBN 1-56592-284-0

Learning Perl/Tk
Nancy Walsh
O'Reilly, 1999, ISBN 1-56592-314-6

Managing Gigabytes (2nd. Ed.):
Compressing and Indexing Documents and Images
Ian H. Witten, et al.
Morgan Kaufman, 1999, ISBN 1-55860-570-3

MacPerl:
Power and Ease
Vicki Brown, Chris Nandor
Prime Time Freeware, 1997, ISBN 1-881957-32-2

Mastering Regular Expressions
Jeffrey E. F. Friedl
O'Reilly, 1997, ISBN 1-56592-257-3

Official Guide to Programming with CGI.pm
Lincoln Stein
Wiley, 1998, ISBN 0-471-24744-8

Perl:
The Programmer's Companion
Nigel Chapman
Wiley, 1997, ISBN 0-471-97563-X

Perl Cookbook
Tom Christiansen, Nathan Torkington
O'Reilly, 1998, ISBN 1-56592-243-3

Perl in a Nutshell
Ellen Siever, et al
O'Reilly, 1998, ISBN 1-56592-286-7

Perl Resource Kit -- UNIX Edition
Larry Wall, et al
O'Reilly, 1997, ISBN 1-56592-370-7

Programming Web Graphics with Perl & GNU Software
Shawn P. Wallace
O'Reilly, 1999, ISBN 1-56592-478-9

Programming Perl (2nd. Ed.)
Larry Wall, et al.
O'Reilly, 1996, ISBN 1-56592-149-6

The Awk Programming Language
Alfred V. Aho, et al.
Addison-Wesley, 1988, ISBN 0-201-07981-X

The C Programming Language (2nd. Ed.)
Brian W. Kernighan, Dennis M. Ritchie
Prentice Hall, 1988, ISBN 0-13-110362-8

The Elements of Programming Style
Brian W. Kernighan, P. J. Plauger
McGraw-Hill, 1988, ISBN 0-07-034207-5

The Perl CD Bookshelf
O'Reilly & Associates
O'Reilly, 1999, ISBN 1-56592-462-2

The Practice of Programming
Brian Kernighan, Rob Pike
Addison-Wesley, 1999, ISBN 0-201-61586-X

The UNIX Programming Environment
Brian Kernighan, Rob Pike
Prentice Hall, 1984, ISBN 0-13-937681-X

Understanding SQL
Martin Gruber
Sybex, 1990, ISBN 0-89588-644-8

Writing Apache Modules with Perl and C
Lincoln Stein, Doug MacEachern
O'Reilly, 1999, ISBN 1-56592-567-X

Resources

Addison Wesley
http://www.awl.com
                            
Beowulf	Project
http://www.beowulf.org
                            
Morgan Kaufman
http://www.mkp.com
                            
O'Reilly
http://www.oreilly.com
                            
Prentice-Hall
http://www.prenhall.com
                            
Prentice-Hall PTR
http://www.phptr.com
                            
Sybex
http://www.sybex.com
      

About the author

Rich Morin (rdm@cfcl.com) operates Prime Time Freeware (www.ptf.com), a publisher of books about Open Source software. Rich lives in San Bruno, on the San Francisco peninsula.