Channels ▼

Dr. Dobb's Programmer's Bookshelf Newsletter

Dr. Dobb's Programmer's Bookshelf Newsletter

Book Reviews

Six Books, Seven Paragraphs

I am clearly obsolete. Not only do I prefer e-mail to instant messaging, I have a first and a last name, both spelled conventionally, and neither containing any nonalphabetic characters. Recycle me now.

But while you're waiting for the big green truck to arrive, have a look at 37signals' Defensive Design for the Web. It (They? Pronouns have become so tricky) is/are a Chicago-based design firm, and this book is what they know about designing web sites that gracefully handle missing pages, out-of-stock items, and glitches in multistep registration processes. Its/their lean writing, clean layout, and carefully explained examples earned a double handful of yellow sticky notes, and a "must read" recommendation.

Ian Langworth and chromatic-with-a-small-c's Perl Testing is just as well written, but aimed at a much smaller audience. As the title suggests, its focus is how to test, and test with, Perl. There's lots of good stuff here, and I particularly liked the organization: Each topic includes "How Do I Do That?", "What Just Happened?", and "What About...?" sections. However, you have to be a fairly strong Perl programmer to make sense of it all--I used to teach the language, but still found myself lost in the forest at least once a chapter.

Next up is Jared Richardson and William Gwaltney's Ship It!, which is a "lite" version of Hunt and Thomas's instant classic The Pragmatic Programmer, with bits and pieces of other Pragmatic books stirred in. (Fair notice: The Pragmatic Bookshelf published my last book, too.) Everything you'd expect is here, from the importance of version control and an automated build-and-test cycle, to "tracer bullet" development and advice on how to handle common problems. None of it is new, but it's all good stuff that the world needs more of.

The fourth book this month is Stuart Langridge's DHTML Utopia. I picked it up primarily because of the "Covers Remote Scripting/AJAX" splodge on the front cover. While there's actually less than a dozen pages on that particular topic, the rest of the book was well worth reading. After a quick introduction to how dynamic HTML works, Langridge shows how to make pages come alive with JavaScript. Animation, form validation, and yes, the asynchronous client/server communication promised in the splodge are all here, carefully dissected and clearly explained. I particularly liked the way this book shows the whole of each code sample first, then repeats snippets while explaining how they work, instead of the other way around.

Bryan Basham et al.'s Head First Servlets & JSP is as thick as the previous four books are thin, but don't let that stop you from buying it. At first (or even second) glance, the kung fu movie stills and art school layout make it look like a "for morons" title, but there's a lot of hard-core technology in its almost 900 pages. The book covers all the topics in Sun's Certified Web Component Developer exam: servlet configuration and lifecycle, custom tag development, a handful of design patterns (including Model-View-Controller), and a brief taste of the Struts framework. The book's frenetic energy wore me out after a while, but I learned a lot from it, and my students (who are 20 years younger than me) have nothing but good things to say about it.

Finally this month is Barry Rosenberg's Spring Into Technical Writing for Engineers and Scientists. Rosenberg teaches the subject at MIT, and once you're past the probably-worked-better-in-person jokes in the first couple of pages, it's clear that this material is based on first-hand experience. The first major part of the book covers general principles of grammar, organization, and so on; the second analyzes particular kinds of documents--manuals, web sites, proposals, PowerPoint presentations, and so on--while the third describes the editing and production process. There's a lot of crunch in this granola, and I'd recommend it to anyone with a thesis or a business plan to write.

Defensive Design for the Web
37signals, Matthew Linderman, and Jason Fried
New Riders, 2004
246 pp., $24.95
ISBN 073571410X

Head First Servlets & JSP
Bryan Basham, Kathy Sierra, and Bert Bates
O'Reilly & Associates, 2004
886 pp., $44.95
ISBN 0596005407

DHTML Utopia: Modern Web Design Using JavaScript & Dom
Stuart Langridge
SitePoint, 2005
318 pp., $39.95
ISBN 0957921896

Perl Testing: A Developer's Notebook
Ian Langworth and chromatic
O'Reilly & Associates, 2005
180 pp., $29.95
ISBN 0596100922

Ship It! A Practical Guide to Successful Software Projects
Jared Richardson and William Gwaltney Jr.
The Pragmatic Bookshelf, 2005
198 pp., $29.95
ISBN 0974514047

Spring Into Technical Writing for Engineers and Scientists
Barry J. Rosenberg
Addison-Wesley, 2005
352 pp., $29.99
ISBN 0131498630

Greg is a DDJ contributing editor, and can be reached at His most recent book is Data Crunching: Solve Everyday Problems Using Java, Python, and More.

Jerry Pournelle Recommends...

There are two Computer Books of the Month. Maven: A Developer's Notebook, by Vincent Massol and Timothy O'Brien (O'Reilly & Associates, 2005), is about the Maven Java "project comprehension tool" for building your project. Chances are if you don't work on Java projects (and perhaps even if you do), you have never heard of Maven; which is one reason to look into this book, if only to see whether you ought to learn more.

Second is Brian Hook's Write Portable Code: An Introduction To Developing Software for Multiple Platforms (No Starch Press, 2005). I am neither a user nor an admirer of any variant of C--I remain stubbornly convinced that strongly typed languages with range checking make for far better code with far less debugging--but experienced C users advise me that I will not go wrong by recommending this book.

Maven: A Developer's Notebook
Vincent Massol and Timothy O'Brien
O'Reilly, 2005
220 pp., $29.95
ISBN 0596007507

Write Portable Code: An Introduction To Developing Software for Multiple Platforms
Brian Hook
No Starch Press, 2005
272 pp., $34.95
ISBN 1593270569

Jerry is a science-fiction writer and senior contributing editor to You can contact him at Top Ten Programming Books Last Month

(1) Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

(2) HTML for the World Wide Web with XHTML and CSS: Visual QuickStart Guide, Fifth Edition
Elizabeth Castro

(3) UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition
Martin Fowler

(4) Head First Servlets and JSP: Passing the Sun Certified Web Component Developer Exam
Bryan Basham, Kathy Sierra, and Bert Bates

(5) Sun Certified Programmer & Developer for Java 2 Study Guide (Exam 310-035 & 310-027)
Kathy Sierra and Bert Bates

(6) Effective Java Programming Language Guide
Joshua Bloch

(7) JavaScript: The Definitive Guide
David Flanagan

(8) The Pragmatic Programmer: From Journeyman to Master
Andrew Hunt and David Thomas

(9) Sams Teach Yourself SQL in 10 Minutes, Third Edition
Ben Forta

(10) Excel 2003 Power Programming with VBA (Excel Power Programming With Vba)
John Walkenbach

Recent Releases

The Little Black Book of Computer Security
Joel Dubin
29th Street Press, 2005
150 pp., $19.95
ISBN 1583041206

DDJ subscriber Dubin's book discusses computer security in the context of physical security, IT security policy, and even hiring practices, as well as the dirty tricks that hackers possess. The book is being used in the Information Security program at Norwich University, and IT security managers and auditors will find the checklists useful for organizing a comprehensive IT security program.

C++ Cookbook
D. Ryan Stephens, Christopher Diggins, Jonathan Turkanis, and Jeff Cogswell
O'Reilly, 2005
573 pp., $44.95
ISBN 0596007612

Most C++ programmers are familiar with the sorts of things they have to rewrite on each new project: date and time parsing/arithmetic, string and text, working with files, parsing XML, using the standard containers, and so on. These are the kinds of problems this book covers.

Understanding the Linux Kernel, Third Edition
Daniel P. Bovet and Marco Cesati
O'Reilly, 2005
923 pp., $49.95
ISBN 0596005652

By including hardware details, the book takes a bottom-up approach in studying Linux components, starting with topics that are hardware-dependent and progressing toward those that are totally hardware-independent. Among the topics the book describes are process and memory management, the Virtual Filesystem layer and the second and third extended filesystems, process creation and scheduling, essential interfaces to device drivers, Interprocess Communication (IPC), and program execution.

Distributed Systems Architecture: A Middleware Approach
Arno Puder, Kay Romer, and Frank Pilhofer
Morgan Kaufmann, 2005
344 pp., $54.95
ISBN 1558606483

Middleware is the bridge that connects distributed applications across different physical locations, with different hardware platforms, network technologies, operating systems, and programming languages. This book describes middleware from two different perspectives: from the viewpoint of the systems programmer and from the viewpoint of the applications programmer.

Wicked Cool Java: Code Bits, Open-Source Libraries, and Project Ideas
Brian D. Eubanks
No Starch Press, 2005
224 pp., $29.95
ISBN 1593270615

This book contains tips on: Converting a nonXML text structure into XML using a parser generator, and working with XML APIs from the Java core and from open-source projects; experimenting with a Java simulator for the Cell Matrix to build and test cell circuits, and then connect them in a distributed system with others across the Internet; working with open-source class libraries for scientific and mathematical applications; creating dynamic music and sound in Java, and applying some Java APIs for simple data sonification; and reusing code in ways that open-source Java projects allow by taking advantage of the wealth of free Java libraries.

Apache Derby -- Off to the Races: Includes Details of IBM Cloudscape
Paul C. Zikopoulos, George Baklarz, and Dan Scott
IBM Press, 2005
600 pp., $39.99
ISBN 0131855255

IBM's database experts have written a guide to making the most of Apache Derby--and its commercial counterpart, IBM Cloudscape--in any development or production environment. This book introduces the Apache Derby/IBM Cloudscape technology and shows how to install and configure it, and how to build robust business applications and web services with it, one step at a time.

C++ Standard Library Practical Tips
Greg Reese
Charles River Media, 2005
576 pp., $49.95
ISBN 1584504005

This book provides a practical reference to the C++ Standard Library filled with common programming solutions; covers a variety of topics from general principals of Standard Library programming to text strings, vectors, and numeric algorithms; and shows the practical application of the C++ Standard Library, as opposed to just explaining how the library works.

Practical Perforce
Laura Wingerd
O'Reilly, 2005
336 pp., $39.95
ISBN 0596101856

Perforce is one of several open-source software configuration management (SCM) systems that developers increasingly rely upon to keep track of software versions and all the components that go into them during a product life cycle. Practical Perforce provides an introduction to this product and a detailed overview of SCM in general.

Contact Us

To contact Dr. Dobb's Programmer's Bookshelf Newsletter, send e-mail to Deirdre Blake, DDJ Managing Editor, at

All content copyright 2005, CMP Media LLC.

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.