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.
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
Head First Servlets & JSP
Bryan Basham, Kathy Sierra, and Bert Bates
O'Reilly & Associates, 2004
886 pp., $44.95
DHTML Utopia: Modern Web
318 pp., $39.95
A Developer's Notebook
Ian Langworth and chromatic
O'Reilly & Associates, 2005
180 pp., $29.95
Ship It! A Practical Guide to
Successful Software Projects
Jared Richardson and William Gwaltney Jr.
The Pragmatic Bookshelf, 2005
198 pp., $29.95
Spring Into Technical Writing for Engineers and Scientists
Barry J. Rosenberg
352 pp., $29.99
Greg is a DDJ contributing editor, and can be reached at [email protected] 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
220 pp., $29.95
Write Portable Code: An Introduction To Developing Software for Multiple Platforms
No Starch Press, 2005
272 pp., $34.95
Jerry is a science-fiction writer and senior contributing editor to BYTE.com. You can contact him at [email protected]jerrypournelle.com.
Amazon.com Top Ten Programming Books Last Month
Design Patterns: Elements of Reusable Object-Oriented Software
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
HTML for the World Wide Web with XHTML and CSS: Visual QuickStart Guide, Fifth Edition
UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition
Head First Servlets and JSP: Passing the Sun Certified Web Component Developer Exam
Bryan Basham, Kathy Sierra, and Bert Bates
Sun Certified Programmer & Developer for Java 2 Study Guide (Exam 310-035 & 310-027)
Kathy Sierra and Bert Bates
Effective Java Programming Language Guide
The Pragmatic Programmer: From Journeyman to Master
Andrew Hunt and David Thomas
Sams Teach Yourself SQL in 10 Minutes, Third Edition
Excel 2003 Power Programming with VBA (Excel Power Programming With Vba)
The Little Black Book of Computer Security
29th Street Press, 2005
150 pp., $19.95
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.
D. Ryan Stephens, Christopher Diggins, Jonathan Turkanis, and Jeff Cogswell
573 pp., $44.95
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
923 pp., $49.95
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
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
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
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
Charles River Media, 2005
576 pp., $49.95
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.
336 pp., $39.95
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.
To contact Dr. Dobb's Programmer's Bookshelf Newsletter, send e-mail to Deirdre Blake, DDJ Managing Editor, at [email protected].
All content copyright 2005, CMP Media LLC.