Cover V08, I12


Books: A User's Report

Elizabeth Zinkann

This column contains a book review that doesn't involve administration, programming, or design. However, it is an enjoyable book, guaranteed to be on many Christmas wish lists, and written by the Webmaster at Xerox PARC. I also reviewed a beginning UNIX book, an extraordinary software testing guide, and included mini-reviews on a Macintosh hardware book and a UNIX shell programming book. Specifically, the books are: Do Fish Drink Water? Puzzling and Improbable Questions and Answers by Bill McLain (William Morrow and Company, Inc. ); UNIX by Experimentation by Timothy S. Ramteke (Prentice Hall); Testing Computer Software, Second Edition by Cem Kaner, Jack Falk, and Hung Quoc Nguyen (John Wiley & Sons, Inc.); the Macworld Mac Upgrade and Repair Bible by Todd Stauffer (IDG Books); and UNIX Shells by Example, Second Edition by Ellie Quigley (Prentice Hall).

Do Fish Drink Water?
Puzzling and Improbable Questions and Answers
by Bill McLain
William Morrow and Company, Inc.
ISBN 0-688-16512-5
304 Pages

Every systems administrator expects some questions from users. The queries usually range from the simple “When will the system be up?” to the more complex “How does sendmail work?” Most of them are predictable and computer related. Webmasters typically receive more general questions, comments, and feedback concerning links, Web site appearance, and company specific inquiries. When Bill McLain, Webmaster at Xerox PARC, began answering his email, he discovered questions covering an unexpectedly diverse range of topics and interests. McLain was soon responding to questions including: “What makes pepper so hot?”, “Why do I get a headache when I eat ice cream too fast?”, “Why don't beeswax candles drip?”, and “What is the correct way to eat an Oreo cookie?” Luckily for readers, McLain has compiled many of the unusual questions, the respective answers, related information, noteworthy Web sites, and selected anecdotes into a wonderfully entertaining book.

The author organized the content into twenty chapters, each containing several questions and answers. The topics of the chapters feature (in alphabetical order) queries relating to: the Animal Kingdom, Clothing and Apparel, Finance, Food, Geography, History, Holidays, Language, Literature, the Human Body, Music, Odds and Ends, Off the Wall, Religion, Science, Sports, Transportation and Travel, the United States, Weather, and the World. Each chapter includes four to ten questions and answers (fortunately, the answers match the questions), and each question/answer set also contains two other sections: Factoids and Did You Know? As its name suggests, the Factoid section contains related publicized beliefs (half-truths that have been reiterated so often that they've become accepted) and the Did You Know? part offers lesser known associated details and trivia. A short list of useful Web sites concludes each chapter, occasionally with a personal McLain anecdote. The book's final section outlines Exploring the Internet and demonstrates the essential for finding answers via the Web.

Do Fish Drink Water? presents an intriguing, enjoyable, and informative foray into the worlds of folklore, science, history, geography, and more with a superb guide. McLain shares some of the more interesting questions that he has received in a captivating and addictive style. (A favorite of mine explains the “green flash” or green moon, although it doesn't mention anything about green cheese.) It is readable by users of all platforms (UNIX/Linux, Macintosh, NetWare, and even Windows [3.x, 95, 98, and NT]).

Throughout the twenty chapters (reminiscent of Twenty Questions), the author not only presents facts, lore, and trivia, but also demonstrates successful Internet research techniques. The question and answer format allows the reader to browse through it for a few minutes or an hour. (It should be noted, however, that this is a difficult book to stop reading once you have started!) Do Fish Drink Water? Puzzling and Improbable Questions and Answers by Bill McLain is an outstanding book and will be an excellent Christmas gift, both to give and to receive.

UNIX by Experimentation
by Timothy S. Ramteke
Prentice Hall
ISBN 0-13-020944-9
182 Pages

UNIX may be learned in many different ways; its concepts, practices, commands, and idiosyncrasies are well documented, both off and online. Anyone desiring UNIX knowledge today has a variety of choices: college courses, independent learning centers, CBT (computer-based training) offerings, and books, to name the most popular methods. In UNIX by Experimentation, Ramteke provides a text for both independent and structured class use, with the assumption that the reader has access to a UNIX system. The author addresses the fundamental concepts in the following sequence: Operating System Concepts, Basic Commands, Directories, Text Editing, Basic File Manipulation, Advanced File Manipulation, Working in C Shell and tcsh, UNIX Networking, and Programming in Bourne Shell. The Appendix documents the vi editor. Each chapter employs a similar format: Concepts to Learn, Commands to Learn, Sample Session Experiments, Homework, and Lab Assignments.

The first section introduces the concepts through a definition of the terms that will be used in the chapter. The Commands to Learn section surveys the commands, options, and a brief description of the commands that will be utilized in the chapter. The Sample Sessions present two aspects of the examples in separate columns. Ramteke displays how the session appears on the screen and provides a commentary of what actually is happening. He demonstrates both some wrong and right examples and explains why they fail and how to correct them. Each chapter concludes with both Homework and Lab Assignments either for instructors to use in a classroom setting or for an individual wishing to learn more about the chapter's concepts and practices.

Ramteke describes the major design issues, both of UNIX and of most operating systems in an excellent and understandable manner. The examples are also clear and discussed at a beginner's level. The author encourages the student to experiment and become familiar with the UNIX environment. His “play-by-play” descriptions are effective and illustrate what various commands and their options do. Anyone trying to learn UNIX will appreciate Ramteke's clear and straightforward explanations.

(Note: For those students who want to learn UNIX but don't have access to a UNIX system, the MKS Toolkit is a superb way to emulate UNIX on a personal computer. Mortice Kern Systems ( has been providing UNIX capabilities for Windows, DOS, and OS/2 users for more than a decade. Its simple configuration and outstanding documentation allow users to install and use it within a short period of time. It is also an excellent tool to allow users who are constantly switching between systems to achieve a uniform environment.)

Testing Computer Software
Second Edition
by Cem Kaner, Jack Falk, and Hung Quoc Nguyen
John Wiley & Sons, Inc.
ISBN 0-471-35846-0 479
Pages $34.99

Software testing occupies an unique niche in the programming world; it is one of the most important steps in the software creation and improvement process. However, effective testing procedures remain a neglected and underrated part of the software process. Computer science students are taught how to program and create products, but not equally instructed on how to break them. (Note: an instructor I once had summed up testing in one sentence: Try every way you can think of to break the program, both logically and illogically.) It is obvious to any software user that testing procedures lack something. If these methods were effective, new software and versions would work. A recent experience with an upgrade to an important software program crashed the computer I had been working on. My subsequent call to technical support was an exercise in futility, because no one could figure out what had gone awry.

In Testing Computer Software, authors Kaner, Falk, and Nguyen present the essential principles of testing combined with realistic procedures. They illustrate how to test software, how to report the test results, and also how to manage a software testing group. The authors have divided the topics into three major parts: Section 1 -- Fundamentals, Section 2 -- Specific Testing Skills, and Section 3 -- Managing Testing Projects and Groups. In Section 1 -- Fundamentals, the authors present the basics of good testing through the following chapters: An example test series; The objective and limits of testing; Test types and their place in the software development process; Software errors; and Reporting and analyzing bugs. Section 2 -- Specific Testing Skills examines issues facing the more experienced tester with chapters discussing: The problem tracking system, Test case design, Testing printers (and other devices), vocalization testing, Testing user manuals, Testing tools, and Test planning and test documentation. Section 3 -- Managing Testing Projects and Groups details Tying it together, Legal consequences of defective software, and Managing a testing group. The Appendix describes Common software errors, including User interface errors, Error handling, and Control flow errors.

The second edition of Testing Computer Software provides guidelines for anyone involved in the testing phase of the software process. It could easily be used as a textbook, or as a resource for someone already responsible for testing. Kaner, Falk, and Nguyen highlight which elements of testing are the most important and how to apply different priorities to your specific environment. The writing style is superb, illustrating practical, effective, and thorough practices for the beginning tester, the project leader, and the manager of a testing division. Testing Computer Software fills a void in the computer science curriculum and furnishes a complete reference for programmers and testers alike. This book should be required reading for everyone involved in the software process.

Macworld Mac Upgrade and Repair Bible
by Todd Stauffer
IDG Books
ISBN 0-7645-3217-0 943
Pages $39.99
CD-ROM Included

Although the last place many readers expect to find a Mac hardware book is in a UNIX magazine, it really does have a legitimate place in this column. Macs can run UNIX, and they also have a place in the Linux world, with MKLinux. They can also be networked with workstations and servers. For these purposes, an administrator does need to know about the different Mac configurations, and Stauffer's book is an extraordinary reference for any of these topics. The author addresses the topic in four sections: Getting Ready to Upgrade, Performing the Upgrade, Troubleshoot and Repair, and Tweak and Recover the Mac OS. The Appendices include Vendor Listings, Online Resources, and What's on the CD-ROM. Stauffer covers hardware issues, performance improvements, new developments, and ways to repair older Macs to work with newer computers. He also shows how to best access whichever type of Mac you have, provides references for online help, and the best places to buy that new part or software. Anyone who needs to integrate a Macintosh into an existing network should read this valuable and complete reference. It is an outstanding and complete guide for everyone who needs to know something or everything about a Macintosh.

UNIX Shells by Example
Second Edition
by Ellie Quigley
Prentice Hall
ISBN 0-13-021222-9
654 Pages

This book by Ellie Quigley, an instructor in Silicon Valley, is an adventure in shell programming. It addresses all three major UNIX shells (C, Korn, and Bourne) plus the data manipulation tools sed, awk, and grep, and the Perl language. In this updated version, Quigley provides an introduction to shell programming, the shell environment, and the three major shells; she also illustrates how to use grep, sed, and awk, and discusses the use of regular expressions. The author details the three shells and examines how each shell works, utilizing many examples and explanations.

Quigley's format is to provide an example and follow it immediately with an explanation, within the same diagram. Her writing style is extremely clear, guiding the reader through beginning to advanced techniques. This is an exceptional way for anyone to learn the several different approaches to shell programming within one volume.

About the Author

Elizabeth Zinkann has been involved in the UNIX and C environment for the past 13 years. She is currently a UNIX and C consultant, and one of her specialties is UNIX education. In addition to her computer science background, she also has a degree in English. Her writing has also appeared in Linux Magazine, Performance Computing, and Network Administrator. Elizabeth can be reached at: