Database Backed Web Sites: The Thinking Person's Guide to Web Publishing!
by
PhilipGreenspun, ZDPress, 1997,
ISBN 1562765302
The Associated Web site is http://www.photo.net/wtr/dead-trees/
a
Computer books these days seem to come in one of three flavors: Overly Simplistic, Academic Tome, or Expositions of
General Principles.
The Overly Simplistic ones are usually based on a single product and written in under 3 months. Included in this category are the dummies books, the learn <topic> in 21 days books, the Unleashed books, etcetera.
The Academic Tomes are either boring and simplistic (undergraduate and first year graduate) or boring and complex (later years). And, in either case, they hide
the useful information.
And the General Principles books usually contain stuff that is relevant to almost any project. Advanced C++ is in here, as are virtually all the patterns books (except, of course, for Patterns for Dummies). There are some GP books that attempt to cover a specific area, but they usually don't make much sense until you've got a few projects
under your belt (for example, Hay's Data Model Patterns is
a great book, but not where a person wanting to learn
more about database programming should start).
Which is one reason why I tend to piss and moan before learning a new technology. Take when I started to learn about
Distributed Computing for example. I don't
want to read the 800 pages of moronic drool that
undoubtedly made their way into Corba Unleashed.
Neither do I want to read an academic tome on network security models ("complete with pseudocode in a hard
to read language invented just for this book") or
an ORB vendor's manuals (most of which go into great
detail explaining how to build "the bank example" but
completely neglect anything difficult). It seemed
like a simple thing, wanting to learn about distributed
computing, but getting from that want to becoming
reasonably skilled at building applications (and
understanding their innards) is astonishingly
difficult. There's no reference, no overview, no
good book for beginners.
Which is why I'm so amazed by Greenspun's book. I
had wanted to learn about dynamic web sites, but
was really hesitant. It seems like a simple subject,
but one that has its fingers in a lot of pies. Lots
of chances for people to cover part of the story,
lots of chances for people to write cookbooks without
explaining the underlying ideas, lots of chances
for people to write 21 Days books that just plain sucked
and lots of chances for me to waste time reading the
wrong book or just spinning my wheels.
Greenspun's book belongs to the mostly empty
fourth category: Surveying an application area
with an intent to build. It's an overview, with
important technical details explained, and warnings
about pitfalls that aren't obvious, and lots of
interesting sidenotes that firmly attach the subject
to what you already know.
It's a good book; it may even be a great book.
It's an introductory book about a single subject
(hooking a database into a web server) that frequently wanders outside the alloted subject into related matters (what makes a web site good, how to administer a web site).
It is a practical manual (any programmer who reads
this book will have a solid grasp of the subject and
will be ready to go out and hook databases to web
servers with elan) without having much in the way of
code or boilerplate recipes and without being product specific.
It's written from experience-- there
are lots of warnings, lots of examples drawn from
real projects, lots of information about avoiding
pitfalls. And yet, it's short, pithy, and an
easy read.
In short, it's a roadmap to the technology, covering
the obvious important issues (CGI scripts, connecting
to databases) and the
ones that are important, but that a first-timer might
easily overlook (for example, Chapter 7: Learning from
Server Logs. 20 pages that explain what logs do and
why they're useful. Good info, nicely presented).
The only flaw I found in it was the author's
obvious fondness for Lisp (a forgiveable bias, but
displaying it so broadly is bad pedagogy). The book
is well worth the money and well worth reading.
WilliamGrosso
Ditto on everything William says about the book.
This is a great overview book for technically savvy people who are moving from having a simple website into the web database game, or for non-technical people who need to get quickly to knowing what questions to ask of developers, webmasters, and vendors.
Greenspun's writing style is refreshingly irreverent.
Also worth checking out is his story-behind-the-book skewering of the technical publishing industry. See
http://www.photo.net/wtr/dead-trees/story.html --
DaveSmith
The chapter about databases is just about the best introduction to the subject I've ever read. If you have to deal with someone who hasn't a clue about relational databases, let them read Chapter 11.
--
RobCrawford
CategoryBook