Cover V06, I10


Books: A User's Report

Elizabeth Zinkann

Between new releases and revised editions, the selection of books includes more choices and more topics each month. My efforts this month include a brief paragraph about Donald E. Knuth's new edition of The Art of Computer Programming, Volume 1: Fundamental Algorithms; UNIX Shell Programming Fourth Edition by Lowell Jay Arthur and Ted Burns (Wiley Computer Publishing, John Wiley & Sons, Inc.); a promised review from an earlier column, Beginning Linux Programming by Neil Matthew and Richard Stones (WROX Press); Not Just Java by Peter van der Linden (The SunSoft Press Java Series, Sun Microsystems, Prentice Hall); and Windows NT in a Nutshell by Eric Pearce (O'Reilly & Associates, Inc.).

The Art of Computer Programming, Volume 1: Fundamental Algorithms, Third Edition by Donald E. Knuth, a classic reference on programming theory practice, has recently been revised. Knuth has modified the implementations to reflect the deletions and additions in programming theory practices. The Art of Computer Programming, Volume 1: Fundamental Algorithms (Addison Wesley Longman), ISBN 0-201-89683-4, is available for $49.44. Additional ordering information may be obtained at Addison Wesley Longman's Web site ( and Donald Knuth's Web page ( or ordered directly from the publisher at (800) 822-6339.

UNIX Shell Programming
Fourth Edition by Lowell Jay Arthur and Ted Burns
Wiley Computer Publishing
John Wiley & Sons, Inc.
ISBN 0-471-16894-7

The concept behind UNIX Shell Programming frequently evokes a puzzled response from non-programmers. Even those who understand UNIX do not always realize the shell's capabilities and importance. Its convenience enables programmers to use shell programs as prototypes to easily demonstrate whether a particular implementation will work. The most popular shell programming applications automate repetitive and tedious procedures for administrators, programmers, and users. In the fourth edition, Arthur and Burns separate the individual topics into three sections: Shell for the Novice, Shell Programming for the User, and Shell Programming for the Power User. The first section, Shell for the Novice, addresses The Power of Shell, UNIX Basics, Shell Fundamentals, Shell Commands, Shell Decisions and Repetitions, and Shell Programming. The second section, Shell Programming for the User, contains User Shell Programming, Structuring Shell Programs, Internet and the Shell, and C Shell. The final section, Shell Programming for the Power User, discusses Rapid Prototyping and Reuse, Shell for Programmers, The Shell Innovator, Shell Mastery, and The UNIX System Administrator. The book also provides the following appendices: A) Reusable Shell Code, B) C Language Prototype, C) Makefile Prototype, D) Shell Syntax, E) Shell Built-in Commands Reference, F) Sed Reference, and G) Awk Reference.

The fourth edition describes HTML (HyperText Markup Language), CGI (Common Gateway Interface), Security, and Internet Reuse Catalogs. Arthur and Burns limit their previous coverage of lex and expand the information detailing the different shells. The third edition described the Bourne, Korn, and C shells; the new revision adds material about BASH, as well as an entire chapter devoted to the C shell. The authors note any differences among the individual shells regarding specific commands or procedures throughout the book.

Arthur and Burns have produced a well-written revision to their original text. They illustrate the various shells and programming procedures through examples, diagrams, screen captures, and accompanying explanations. UNIX Shell Programming, Fourth Edition, is an excellent reference for the experienced shell programmer and a superior guide to the nuances of shell programming for the novice.

Beginning Linux Programming
by Neil Matthew and Richard Stones WROX Press
ISBN 1-874416-68-0

As the popularity of the Linux operating system continues to increase, most computer users, including non-UNIX users, now recognize its name and its more well-known capabilities. Many of its new owners successfully install and configure the Linux system but don't know how to proceed in regards to programming Linux. In Beginning Linux Programming, Matthew and Stones explain how to program Linux, as well as describe the basics of the UNIX operating system. They present: Getting Started; Shell Programming; Working with Files; The UNIX Environment; Terminals; Curses; Data Management; Development Tools; Debugging; Processes and Signals; Inter-Process Communication: Pipes, Semaphores, Message Queues, and Shared Memory; Sockets; Tcl: Tool Command Language; Programming for the Internet: HTML; and Internet Programming 2: CGI. The Appendices include: A) Portability, B) FSF and the GNU Project, C) Internet Resources, and D) Bibliography. The authors assume the reader possesses some knowledge of the C programming language; they demonstrate how to program C using a Linux system. Matthew and Stones begin the book by explaining essential design concepts of a Linux/UNIX system, and illustrate possible C program implementations as the topics become more complex.

This is a well-organized and clearly written book. Each topic is logically developed, enhanced by figures, tables, sidebars entitled FYI, and examples (appropriately named "Try It Out") described in a step-by-step format. Beginning Linux Programming provides the programmer with an excellent introduction and transition to the Linux operating system.

Not Just Java
by Peter van der Linden
The SunSoft Press Java Series Sun Microsystems
Prentice Hall
ISBN 0-13-864638-4

Occasionally new technologies appear (or disappear) so quickly that it becomes difficult to identify them. When the number of acronyms and their corresponding definitions and technologies seem overwhelming, it sometimes takes a higher perspective to understand these new developments and their relationships to existing features. In Not Just Java, van der Linden furnishes that perspective for many of the technical buzzwords and their accompanying concepts. He discusses the following major topics: The Internet, The World Wide Web, Java Systemwide Features, Java Security, Issues, Java Language Specifics, Java Libraries, Client/Server and the Intranet, Enterprise Computing and Databases, and Industry Trends for the New Millennium. The descriptions focus on the most important aspects of the subjects. For example, Chapter 1, The Internet, features Building on the TCP/IP Protocol; The Second Wave: Finding Things; The Third Wave: Commercialization of the Net, How It Runs and Fits Together; Case Study 1: Using the Internet for Learning; and a Summary. Some of the other technologies that van der Linden discusses include Active X, Object-Oriented Programming (encapsulation, inheritance, and polymorphism), Microsoft's COM Model, CORBA, Java Beans, and the JDBC (Java DataBase Connectivity) Library.

Not Just Java investigates some of the newer trends (and their limitations) interspersed with bits of historical facts, anecdotes, and trivia. Most of the chapters possess a summary and a case study that demonstrate how to efficiently and effectively utilize the new technologies. The author has written an interesting and informative book surveying and clearly explaining these technologies. Some of the book's diagrams illustrate the concepts more clearly than the figures used in highly technical books pertaining to the same subject. This is an ideal book to quickly learn about a new process or feature, how it relates to other technical concepts, and simultaneously discover some background material. I enjoyed Not Just Java immensely and recommend it to anyone interested in technical trends.

Windows NT in a Nutshell: A Desktop Quick Reference for System Administrators
by Eric Pearce
O'Reilly & Associates, Inc.
ISBN 1-56592-251-4

The most recent addition to the O'Reilly Nutshell collection, Windows NT in a Nutshell, is a quick reference for NT system administrators. Pearce addresses Using Windows NT, The Control Panel, Administrative Tools, Accessories, RAS and DUN, Using the Command Line, and Uncommon Sense. The Appendices contain: A) NetBIOS, B) TCP/IP, C) Server Versus Workstation, and D) NT Resources. Following the Nutshell tradition, Pearce provides a brief introduction to the Windows NT operating system and its control panel, which also configures the system. He demonstrates how to navigate the GUI hierarchy, and how to bypass GUI and use the DOS-shell commands. Since many administrators no longer operate with just one type of system, Pearce discusses how NT interacts with UNIX, NetWare, and Macintosh systems.

Windows NT in a Nutshell also includes a chapter on RAS (Remote Access Service) and DUN (Dial-Up Networking), plus a chapter devoted to troubleshooting procedures. Pearce covers both 3.51 and 4.0 releases, as well as both Server and Workstation versions. The value of any Nutshell book is the reader's ability to reference it quickly and easily. This is among the best of the Nutshell books, since it informs users how to be administrators, displays more than one way to accomplish a given task, and illustrates exactly what the user/administrator will see for any given task. Anyone working with Windows NT will appreciate the thoroughness of the instructions and the easy reference capability of this book. The callout documentation enables the administrator to see exactly what the system will display as he or she works on it. This is an outstanding addition to the Nutshell library.

About the Author

Elizabeth Zinkann has been involved in the UNIX and C environment for the past 12 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. Elizabeth can be reached via America Online (