BookwormUSENIX

 

salus_peter by Peter H. Salus
<peter@pedant.com>

Peter H. Salus is a member of ACM, the Early English Text Society, and the Trollope Society, and is a life member of the American Oriental Society. He has held no regular job in the past lustrum. He owns neither a dog nor a cat.


Too many books. Too little time. But there are four that really stand out. However, before starting, I need to make a formal apology. On two occasions I've taken Addison Wesley to task for allowing Kernighan and Plauger's monumental Software Tools to go out of print. Just before last Christmas I was told that I was mistaken, it was out of stock, but reprinting. I now have a pristine copy of the "26th Printing, December 1998." It's a pity that (like Rick Blaine) "I was misinformed." As of the end of January, Amazon.com, Powell's, and Bookfind couldn't locate it, either.

Hardware History

Ceruzzi (A History of Modern Computing) has done all of us a great service.

This is a fine, solid history of the commercial computer from 1945 to the pres-ent; from the time that computers were people to the time that they are children's "toys."

Both the hardware/engineering and the human elements are traced, and I was pleased to see that (for example) the founding of SHARE (in 1955) was included, as I consider that the beginning of "free software," or (at least) shareware. The only disappointing thing about this History is the fact that it slights languages and operating systems. While the first decade or so after the Second World War was one of hardware innovation, from 1955-57 on, software came to the fore.

Chapter 3 (pp. 79-108) concerns the early history of software, but it is full of lacunae. These are not errors! I think that Ceruzzi decided what to include and what not to include. And this is obvious in the detailing of the hardware, too.

In software, most of the OS and language work of the last decades is ignored. Ada, Smalltalk, Icon, Tcl, and Perl are among the languages unmentioned. Chorus, Mach, and Linux are among the operating systems. CTSS is mentioned on pp. 155f., but Corbato's name never appears. We are told that C was derived from B, but neither BCPL nor its creator, Martin Richards, is to be found.

At least part of this is understandable: Ceruzzi is a curator at the National Air and Space Museum, and museums have always been worse at collecting things that aren't "hard."

Ceruzzi wrote an excellent book on computers from 1935 to 1945, Reckoners: The Prehistory of the Digital Computer, some years ago. Despite the "sins" of omission, Ceruzzi presents an outstanding history of much of the hardware and some of the software of the past half-century. I can't wait for his next one.

Security

Denning (Information Warfare and Security) has produced a first-rate book. But I have a confession to make: I was a reader of the manuscript for Addison Wesley and am thanked in the "Preface." If this makes my review invalid, I'm sorry. Furthermore, I am complimenting Denning's work despite the fact that she is a strong proponent of key escrow, to which I am opposed.

Denning has produced a volume of great importance: not a book about how to set up password files or firewalls, but a sober, adult discussion of the dangers of what she calls "information warfare."

Denning starts out by recounting a tale of five Dutch crackers who broke into US DoD computers in 1991. She then moves on to her view of information warfare, going into real detail about offense, defense, and the value of such resources to the opposing sides. She limns this going from playgrounds to battlegrounds.

The next sections are fascinating to read against Bill Cheswick's paper at SANE'98 in the Netherlands. Denning is far more sober than Cheswick, but the warfare/
battlefield analogies of Denning are completely analogous to Cheswick's moats, sieges, treachery, etc.

Because of the nature of information warfare, Denning delivers a lengthy section on methods of attack: Using open sources to spy on individuals, copyright infringement, deception, hoaxing, defamation, spam wars, insider abuse, wiretapping, packet sniffing, telecommunications fraud, and about two dozen other things are detailed.

Finally, Denning looks at defensive measures, ending up with national policies.

One of the very best aspects of this book is the manner in which the frequent anecdotes are employed to increase the salience of subjects under discussion.

At the very end of Information Warfare and Security, the author writes, "The connection between encryption policy and security is not simple, and may be vastly overstated. Security demands much more than encryption, and encryption deployment is affected by factors other than government policy."

She's right.

Image Manipulation

GIMP is the GNU Image Manipulation Program, a "free" version of Adobe's Photoshop, designed to be used on a variety of UNIX and Linux platforms. There was an article about GIMP in the November 1997 Linux Journal; now there's a respectable and beautifully illustrated book (The Artists' Guide to the GIMP) for prospective users. Hammel deserves the thanks of all those who design and work with computerized images. In barely 300 pages, he manages to introduce GIMP and elucidate the majority of its features, with high-quality images to show exactly what the GIMP tools and filters do.

GIMP is another demonstration of the bazaar taking over from the cathedral. I hope it becomes as widely used as it deserves.

Practice Makes Perfect

I mentioned Software Tools at the beginning of this column. It is still one of the best and most useful books on the "tool" philosophy. But The Practice of Programming is an absolute must for anyone reading ;login:! I am writing this on the basis of a draft manuscript, but the book will be out by the time you read this. In nine sections ("Style," "Algorithms and Data Structures," "Design and Implementation," "Interfaces," "Debugging," "Testing," "Performance," "Portability," and "Notation"), Kernighan and Pike serve up a scintillating volume that covers the gamut of skills and problems encountered by programmers.

My favorite passage is in Section 5.2:

Oops! Something is badly wrong. My program crashed, or printed nonsense, or seems to be running forever. Now what?

Beginners have a tendency to blame "the compiler," the library, or anything other than their own code. Experienced programmers would love to do the same, but they know that, realistically, most problems are their own fault.

The book ends with a brief epilogue and a three-page appendix: "Collected Rules." If I had my druthers, every high school and college student taking programming would be compelled to learn them. Among the best:

Be clear.

Be accurate.

Keep records.

Test incrementally.

Use standard compilers.

Don't assume ASCII.

Don't assume English.

Thanks, Brian and Rob.

Note

I've gotten a heap of books on ATM and another pile on Networking/Internet-working. They take a lot of time to actually look at. I hope to devote all (or most) of the June column to a number of these.

Books reviewed in this column:

Paul E. Ceruzzi
A History of Modern Computing
Cambridge, MA: MIT Press, 1998. Pp. 398.
ISBN 0-262-03255-4

Dorothy E. Denning
Information Warfare and Security
Reading, MA: Addison Wesley, 1999. Pp. 522.
ISBN 0-201-43303-6

Michael J. Hammel
The Artists' Guide to the GIMP
Seattle, WA: SSC, 1999. Pp. 340.
ISBN 1-57831-011-3

Brian W. Kernighan & Rob Pike
The Practice of Programming
Reading, MA: Addison Wesley, 1999. Pp. 250+.
ISBN 0201-61586-X

 

?Need help? Use our Contacts page.
First posted: 9 Apr. 1999 jr
Last changed: 9 Apr. 1999 jr
Issue index
;login: index
USENIX home