Cover V05, I03


Books: A User's Report

Elizabeth Zinkann

Choosing the reviews for this column was not easy. However, I did find some new editions of old favorites and some new additions to include: Standard C: A Reference, by P. J. Plauger and Jim Brodie; The Programmer's Job Handbook, by Gene Wang; Portable Shell Programming by Bruce Blinn; UNIX System Administrator's Companion, by Michael R. Ault; The New Internet Navigator, by Paul Gilster; The Internet Tool Kit, by Nancy Cedeño; and Internet for Cats, by Judy Heim. I reviewed books covering a range of topics that I hope will assist you and one that will make you smile.

Standard C: A Reference
by P. J. Plauger and Jim Brodie
Prentice Hall Series on Programming Tools and Methodologies
ISBN 0-13-436411-2
HTML Diskette Included

Every computer programmer possesses at least one (and usually more than one) reference that he or she uses frequently. For C and C++ programmers, the Standard C books by Plauger and Brodie are likely to be among the core source books. Standard C : A Reference is actually the third edition of this book, although the names vary slightly (Standard C: A Programmer's Reference and ANSI and ISO Standard C: Programmer's Reference were the earlier editions). Plauger and Brodie retain the style of the earlier books, modifying and adding text to reflect Amendment 1 to the C Standard. These revisions appear in both the language and library sections of the book and are easily identifiable as Amendment 1 modifications.

However, a new dimension awaits the user of this book. The diskette provided with the book furnishes the material in Hypertext Markup Language (HTML), which is the current lingua franca of the World Wide Web (WWW). With the aid of a WWW browser (available either from public domain or commercial sources), Plauger's and Brodie's reference can be easily accessed via computer. I installed it on my computer, and it worked very well. The large number of links provided enable the browser to search and find a topic quickly, particularly from either the Table of Contents or the Index.

This is a straightforward and readable book and an invaluable reference for C and C++ programmers. The inclusion of the HTML diskette enables the user to access the information without referring to the printed version of the text. Similarly, the printed version allows the reader access without a computer. The online version allows the reader the flexibility to discover why a program does not execute in the expected way and how to fix it immediately. I highly recommend this book as a source for every C programmer.

The Programmer's Job Handbook
by Gene Wang
Osborne / McGraw-Hill
ISBN 0-07-882137-1

Since the technical business world discovered downsizing and rightsizing, the job search for programming positions has become more difficult. Gene Wang attempts to restore some stability and logic to this procedure. He first identifies some traits of a good programmer, then examines today's job market. The overview of the job market includes descriptions of the different types of programming jobs (corporate programming, software development, research and development, contracting, embedded systems, client-server, and database programming) as well as job titles, categories, and the results of a 1995 Computerworld salary survey. Wang also discusses how to find the ideal job, covering the resume, interview, followup, and the most recent search tool, the Internet.

Computer programmers tend to be logical and detail oriented. However, these traits alone are not enough to ensure success. Wang suggests seven skills that leading programmers rate as highly desirable, if not absolutely necessary, for success. He also discusses the right tools, including languages, editors, browsers, visual tools, libraries, and testing tools. One of the most valuable chapters features the "hot technologies" for the programmer today. Wang defines component programming, the software cycle, and how to select the right company. The appendices feature Internet Job Search Fundamentals and More Great Sources of Information for Your Programming Career.

The Programmer's Job Handbook provides a nontechnical guide to a technical world. Wang has produced an extremely readable text, with the emphasis on what every programmer can and should do to succeed. He provides insight from many leading software experts, which is not only informative and helpful, but also enjoyable to read. This book should be read by every programmer, whether entry-level or experienced.

Portable Shell Programming
by Bruce Blinn
Hewlett-Packard Company
ISBN 0-13-451494-7
Diskette included

Shell programming occupies a unique position in a UNIX user's repertoire. It can be used to prototype a program or to automate repetitive tasks without the complexity of a language. Every beginning UNIX book contains one or two chapters devoted to shell programming, and some books focus on a specific shell: Bourne, Korn, or the C shell. Blinn addresses the topic with examples, in the same way that language programming books demonstrate how to use a specific language, such as C or Pascal. Since the Bourne shell is the most generic of the shells, the author presents the examples in the Bourne shell syntax.

The introductory chapters detail the Bourne shell syntax: Shell Syntax, Shell Variables, Shell Functions and Built-In Commands, and Using Files. Blinn also explains the environment, its variables, signals, and remote command execution. Parsing Command Line Parameters, Using Filters, and Shell Utilities, including arithmetic operations, string manipulation, user interaction, and files and directories augment the syntax foundation. Additional chapters look at debugging, portability, and common questions and problems. The Appendices consist of a Comparison of UNIX Shells and a Syntax Summary. Blinn provides example shell scripts throughout the book, but two chapters in particular demonstrate various uses for shell programming: Examples of Shell Functions and Examples of Shell Scripts. These examples enable beginners to learn shell programming more easily and quickly than syntax descriptions, and experienced readers can readily identify the shell's exceptions.

The accompanying diskette contains all of the scripts presented in the book. As a UNIX user and programmer, I found Portable Shell Programming an excellent reference and tool. If you work with more than one type of UNIX system and you discover that a variant does not support a favorite command, it's an easy matter to use shell programming and existing commands to reproduce it. The chapter I found most interesting, Common Questions and Problems, highlights the most frequently encountered difficulties (and solutions), including variables, newlines, comments, and interfacing with sed and awk. Portable Shell Programming is an excellent resource, whether used as a troubleshooting reference or as a programming guide.

UNIX System Administrator's Companion
by Michael R. Ault
John Wiley & Sons, Inc.
ISBN 0-471-11144-9

One of the vaguest aspects of UNIX administration relates to the system administrator's job description, since every company defines the position differently. Some companies require minimum administration tasks, while others expect a combination systems analyst, administrator, manager, and miracle worker. Ault begins his book with an explanation of what a system administrator is and what tasks are generally associated with that position. Describing his book as the middle ground, he explains concepts that elsewhere are either treated as assumed knowledge or presented in a more complex manner. Consequently, this book will often complement other books or manuals.

Ault addresses the tasks that most system administrators must perform for different types of UNIX systems and gives a brief, generic description of administrative duties. He discusses UNIX kernel configuration, specifically for System V Release 4 (SVR4), Berkeley Software Distribution (BSD), and the Hewlett-Packard (HP-UX) UNIX systems. He continues with startup and shutdown procedures, UNIX File Systems, System Backup and Restore, UNIX User Administration, UNIX Communication, Terminal and Peripheral Administration, System Auditing, and System Tuning. Ault outlines the general steps needed to accomplish a designated task, then describes the exercise in detail. If a UNIX variant, such as SVR4, BSD, HP-UX, or AIX, differs significantly from the general guidelines, he addresses those instructions separately. UNIX File Systems explains disk systems, file systems, files, security, monitoring file systems, fixing broken file systems with fsck, and file system defragmentation. System Backup and Restore details backup media, types of backup, and numerous backup techniques.

The system administrator is usually responsible for the addition and removal of users, although many systems provide an automated utility to perform this task. Ault demonstrates how to manually assign users and also how to automate the procedure if your system doesn't include one of the management tools. The concluding chapters feature communications, specifically sendmail and uucp; peripheral administration, including terminals, X-windows terminals and printers; system auditing; and system tuning.

UNIX System Adminstrator's Companion provides an extremely straightforward and readable guide for UNIX administrators. Ault explains the occasionally cryptic UNIX manuals and provides techniques for the administrator who may not be an experienced UNIX user. He also furnishes tips on both basic and advanced UNIX topics, such as troubleshooting and security management, for all major versions of UNIX. This book provides an excellent complement to your system's documentation -- you will appreciate it more each time you use it.

The New Internet Navigator
by Paul Gilster
Foreword by Vinton G. Cerf, President, The Internet Society
John Wiley & Sons, Inc.
ISBN 0471-12694-2

The Internet Navigator, by Paul Gilster, provided an excellent introduction to the Internet. The first and second editions explored the Internet from different perspectives. Whether the reader needed an explanation of TCP/IP or packet switching, or simply needed to know how to use gopher or telnet, Gilster addressed it. He did not limit his focus to either users or administrators. In this equivalent to the third edition, he has completely revised and expanded the previous editions. Therefore, even the title has evolved to The New Internet Navigator. Fortunately for previous users of The Internet Navigator, Gilster has retained the book's prior organization. The inside covers (both front and back) list several World Wide Web, gopher, and ftp sites worth the user's perusal, and the author also includes brief instructions for accessing these sites.

One of the most significant additions to the text discusses the electronic mail program Eudora. Originally designed for Macintosh users, Eudora is now available to IBM-compatible PC owners. Most of the guidelines for using the email program are straightforward, but the initial configuration could generate some confusion for the casual user. Gilster explains how to correctly customize Eudora so that your email will arrive accurately at your computer. Other new capabilities use the graphical interfaces now available, such as Wsarchie (Microsoft Windows), Anarchie (Macintosh), WSGopher (Microsoft Windows), and Turbo Gopher (Macintosh). The section discussing the World Wide Web (WWW) has also expanded considerably.

This book provides a reference for every type of user: beginning, experienced, advanced, or administrator. The New Internet Navigator is a superb addition to any library: private, corporate, or public.

The Internet Tool Kit
by Nancy Cedeño
ISBN 0-7821-1688-4

The Internet holds a vast store of resource and reference material. Using the basic tools the Internet offers, the traveler can access almost every conceivable topic via telnet, gopher, or ftp. However, many users limit themselves to the few tools and the World Wide Web (WWW) furnished by their providers. The best Internet tools reside on the Net itself. Cedeño describes these tools, tells where they are, and explains how to get them. The cost is minimal (browsing time not included) and the versions are current.

The front and back inside covers provide some useful information in table format: Which Tool Is Right For the Job? lists popular tasks, the appropriate tools, and descriptions. What Kind of File is That? displays filename extensions and their corresponding file type, and What Does It Mean? defines several popular acronyms. The amount of material, both serious and frivolous, that the Internet offers can overwhelm both experienced and new users. New users either learn how to navigate, become frustrated, and abandon the superhighway, or discover how to accomplish a few tasks, but don't attempt anything more complex. Cedeño addresses several topics to aid both novice and veteran users. The basic tools are familiar, although the variations on the tools may be new. The author discusses various file transfer (ftp), telnet, mail, gopher, WWW, and news utilities. Files often perplex the user, depending on the file format employed (this is also known as the "I've got it. Now how do I read (view) it?" syndrome). Therefore, Cedeño also addresses compression, uuencoding and decoding, and image formats. She looks at some advanced WinSock and HTML (HyperText Markup Language) tools as well. The appendices include The UNIX Shell Game and Connecting Windows to the Internet.

Cedeño presents a description of each utility mentioned, along with where and how to obtain it (and related files), installation procedures, and brief instructions. She writes in a clear, lucid style that is easily readable and understandable. The information and tools she endorses include productive if not essential tools for the Internet user. This is a helpful guide for users, with easy to follow step-by-step instructions.

Internet for Cats
by Judy Heim
Illustrated by Alan Okamoto
No Starch Press
Distributed by Publishers
Group West
ISBN 1-886411-07-7

Although I do not own a cat (or is it vice versa?), many of my friends do, and when conversing online, there is often an interruption followed by a burst of unexpected characters, usually undecipherable. When the text once again is readable, the first line is usually "Sorry, but my cat . . .". Now, in this expose by Judy Heim, we learn that it is not merely an accident, but a plan by the cat population. The plan is detailed in a section entitled "How to Step on the Keyboard Properly." The book is divided into two sections: Internet for Cool Cats and Internet Help for Humans. The first part contains How To Be A Net Surfer If You're a Cat, Cats Who Send E-Mail, Cats with Web Pages, Internet Catteries After Dark and Other Virtual Diversions for Cats, and Cat Boutiques on the Infobahn. The second part includes Internet Haunts for Cats and Humans; Finding Smart Vets and Practical Medical Advice in Cyberspace; and Internet Cat FAQ Goddesses Offer Advice on Love, Life, Cat Toys, and How to Live with a Human Without Going Insane. The Appendix, entitled More from Cat Cyberspace, provides Recommended Reading.

Heim and illustrator Okamoto also devote some space to cat emoticons and graffiti, and the author uses puns liberally (Cat-A-Log, for example). There are Cat Net Surfer Tips sprinkled throughout the book. ("If you're sitting on the keyboard and the computer starts beeping relentlessly, don't move. Curl your tail and look around innocently. It's not your fault.") This book is humorous and does explain the strange typing that the cat owner's conversation occasionally displays. As for the rest of us, we will just have to admit that we can't type.

About the Author

Elizabeth Zinkann has been involved in the UNIX and C environment for the past 11 years. She is currently a UNIX and C consultant, and one of her specialties is UNIX education. In addition to her cmoputer science background, she also has a degree in English. Elizabeth can be reached via CompuServe at 71603,2201 (Internet format:, or at America Online (