Mac OS X in a Nutshell - Jason McIntosh, Chuck Toperek & Chris Smith

The preface to Mac OS X in a Nutshell foreshadows some of the book's many problems. The glib reference to Microsoft as "some company in Washington called Microsoft" immediately puts the reader on guard. The next paragraph tells us converts are coming from systems including "... Linux, Solaris, and FreeBSD (from which Mac OS X's Unix core is derived)." It's not clear if the core is derived from all of them or just FreeBSD. In any event the next section states the core is based on the Mach 3.0 microkernel and BSD 4.4 Unix. Already I'm confused about the facts and it doesn't get any better. It seems as if these two sections of the prefix were written by different people who didn't compare notes.

The preface also says "No book can be everything to everyone..." but it appears this one tries to be too much to too many. It points out "Mac OS X in a Nutshell does have an audience: one that first needs some clarification." Six paragraphs later we come to a new section "Who This Book is for." I should think we would have learned that in the previous paragraphs. This doesn't seem to "give you what you need to know in as few words as possible" as promised in one of them.

Throughout the book the style, quality and depth of information is inconsistent at best while the target audience for any given set of paragraphs seems as if it were determined at random. There's also a lot of repetition. One of the authors' favorite tips is to limit the languages used for Finder context searches to speed up the process. It's a good tip but it's presented no fewer than four times.

For the most part Mac OS X in a Nutshell appears to document version 10.2 build 6C115 which was seeded the first week of August, 2002. At some point the authors note the time of writing is January 2003, the printing date. Assuming it was January 1st, it's too bad they didn't wait a week for they would have been able to note Apple's X11 beta, Safari and other developments.. The 6C115 references and the January 2003 date lead to confusion as the reader wonders if some information is too old or just incorrect. For instance, did holding down 'T' during boot ever do anything but boot into firewire target mode? The authors say the effect is to boot off a firewire disk. Are they confused or is the information outdated?

In the same regard, are the omissions because the book is based on an old system or are they simply omissions? The discussion of column mode in the Finder doesn't mention what I think is one of its most useful features. You can play audio and movies in the preview column. I found no reference to iDVD although the other iApps are noted. And what about those pesky .DS_Store files? Why aren't they described in the "Dotfiles" section of the "Filesystem Overview" chapter? Why is there no mention in the discussion of Preference files the common pitfall of running out of disk space and the ensuing corruption issues? A better understanding of the Defaults mechanisms would be useful. Why does the discussion of /var omit /var/vm, often the instigator of corrupt preference files? For that matter virtual memory isn't addressed at all. Why don't the authors tell us the output of the ps command is truncated according to your window's width when they suggest ps | grep? Why isn't the osascript command covered in the "Terminal" or "Applescript" chapters? How about ktrace or fs_usage, arguably the two most important debugging or "understanding how things work" commands? The omissions list is very long indeed.

I'm also put off by failure to define terms and acronyms when they're introduced and often not at all. For example: "NFS server daemons ... accept RPC calls from clients... The portmap daemon maps RPC program numbers to the appropriate TCP/IP port numbers." Is the reader who doesn't know what NFS daemons do expected to know what RPC means? Look up RPC in the index and you'll find yourself back at that paragraph. SOAP is a particularly well used acronym for which I could find no definition. There are many others.

Then there's the credibility issue. There are so many poorly worded, incomplete, dubious or inaccurate statements I wonder if the authors aren't in over their heads in some areas. "Aqua gives you several ways to create a new favorite" confuses me about what Aqua is, as does the reference to an "Aqua application". Three times the Classic environment is referred to as a "watered-down" OS9. Actually the third time it's called a "just slightly watered-down" OS9. But nowhere did I see a description of how it's watered down. In the "Pattern Matching" chapter we're told to use single rather than double quote because it's safer. But we aren't told why it's safer. In the "Directory Services" chapter we're told /etc/services is not used. Later in the "CVS" chapter we're advised to make sure we add an entry to /etc/services to set up pserver. A couple times we get into the Monty Python routines. "There are three ways to launch Classic ... Savvy Unix users will quickly see there's a fourth way..." There are four ways to launch Classic... "Mac OS X gives you five ways to find files..." but two of them are find content. Okay there are three ways to find files. But that doesn't include the, popular in some circles, du | grep. There are four ways to find files... In the "DAMP" chapter the text says MySQL doesn't come with OS X. Then it says it comes pre-installed with recent Mac OS X versions. Then, it says you must download and install MySQL yourself. That's not an argument that's just a contradiction.

We're told when we turn on Web Sharing that "Enabling this service will allow others to access your Sites folder (/Users/username/Sites) from the internet." We're not told it also allows others to access your machine's default Document Root folder (/Library/WebServices/Documents). The Networking section of the same chapter tells us ping will find out what's taking a site so long to respond. But that will only tell us how long a site takes to respond not what's taking it so long. "Where is the shell's configuration file located? It is located in /usr/share/tcsh/examples/rc." But that's only an example configuration file. You have to copy it to somewhere tcsh would look for it. Never mind the fact it won't work with /bin/sh (for example.)

The Filesystem Overview chapter states "HFS+ stores two time-related pieces of metadata with each file; its creation date, and its modification date. UFS stores only modification dates." But UFS also stores time of last access and time of last status change. "Mac OS X includes a C library, netinfo/ni.h, which provides a full program API into NetInfo." Most would call that a header file, not a library.

In the black humor section we find the first example in the "Applescript" chapter is two lines of code to delete all your files. Cute. One hopes it's not syntactically correct.

Okay, enough of that.

Besides the relatively few typos the authors have presented us with some new jargon such as manpages, frontend and flatfile. Noting Objective-C was the "lingua franca" of Cocoa development twice is inexcusable.

The "Tasks and Settings Index" chapter is terribly inconsistent as to when the command line method, the GUI method or both are described. In any event that chapter should be an appendix. Any screenshots with a dark background are unreadable and in general they take up more space than necessary to show the information of interest. There's too much of a Mac OS 9-hugger undertone throughout the book. An entire chapter on Mac OS 9 differences was more than sufficient. The URL's scattered throughout should be collected in an appendix for future reference. There are numerous pointers to sections that don't exist or to see a given chapter from within the very same chapter. Chapter 25, over 200 pages of psuedo manual pages for some subset of commands, should be reduced to include only the commands whose manual pages are missing from, or incorrect in, the OS X distribution. At the very least those commands should be noted as such.

In general the book comes off as disorganized and inconsistent. It seems to want to be both a tutorial and a reference manual. It serves as an unsettling compromise between the two. That's not to say it's without merit. There are 800 pages and at least half of them contain useful information. There were many interesting bits and I learned more than a few new things. It's noted in "About the Authors" that Mac OS X in a Nutshell borrowed from Chuck Toperek's Mac OS X Pocket Guide. I'll want to read that book.

Find out more about Mac OS X in a Nutshell at <http://www.oreilly.com/catalog/macosxian/>