Last week, we had the author of TDD for a Shopping Website LiveProject. Friday at 11am Ranch time, Steven Solomon will be hosting a live TDD session just for us. See for the agenda and registration link
<pre>Author/s : John Ray, William C. Ray Publisher : SAMS Publishing Category :Other Review by : Lasse Koskela Rating : 9 horseshoes</pre> An "ultimate reference" type of bible for an operating system must be one of the most difficult books to get "right" simply because the volume of potential topics and details to cover is enormous and yet the skill level and knowledge of the reader varies significantly. From the perspective of a long time Windows and Linux user who's about to make the switch for personal (geek) use, I was delighted to realize that the Ray brothers have done a pretty good job at hitting my sweet spot.
This 1400-page tome is split to seven parts and nearly 30 chapters. The first chapters introduce the desktop and some of the basic applications and utilities like the Safari web browser, Mail, iChat, the Spotlight search utility, and so forth. Very basic stuff, explained quite nicely with a couple of screenshots here and there. For me, these introductory chapters had a pretty good match for my preferred verbosity level, although I did tend to start skipping pages with a superficial glance on parts I would probably not be using all that much. The first part ends with a chapter dedicated to the new Automator utility for scripting OS X applications with the AppleScript language. I did feel like I would need some kind of a command reference in addition to the chapter, but it does a good job in getting past the steepest part of the learning curve.
The second part talks about hardware. Starting from how to calibrate your display, the authors describe how to configure your accessories like keyboards, mice, Bluetooth devices, digital cameras, and such--as well as some less ubiquitous devices such as redundant disk arrays. It's mostly screenshots after screenshots and very understandable. I'm tempted to believe my mother could manage with these instructions. The chapter on printer setup is a lot less graphical (which isn't a surprise, really) as it talks about the various print settings and the CUPS printing system in detail, using the web interface for configuring printers. Networking, a topic near and dear to any geek, is also covered in the second part. Again, the authors have provided plenty of screenshots as everything is configured through wizards. I would've preferred more focus on networking, such as on the low-level tools available for determining what's wrong when "the Internet is broken", as well as a bit more instructions on how to configure the built-in firewall. The part finishes with a brief chapter on user management and basic security features like the FileVault.
Speaking of low-level tools, part IV is completely dedicated to all the UNIX (BSD) stuff. File permissions, moving in the file system, inspecting running processes, and so forth. These chapters are written for someone not familiar with the UNIX shell and file system but there are some utilities that I at least wasn't aware of, such as the pushd and popd commands, for example. For a UNIX-newbie, these chapters are probably an excellent introduction. An especially useful piece is the introduction to text editors vi, emacs, and nano--I could imagine a reader unfamiliar with UNIX being a bit lost trying to figure out how to edit a file from the terminal. This part also talks about dealing with printers using command-line tools such as lpr and lpadmin. All in all, the whole of part IV is excellent material if you're new to the UNIX command-line or feel like getting some brushup before getting down to business. One specific aspect that surprised me (positively) was that the authors included material on installing software from the command-line all the way from downloading packages with lynx to building from source using configure and make, not to mention installing and using fink--an apt-get/yum/up2date look-a-like package manager for OS X. I also feel I should mention that the authors have really provided more help than just "first type ./configure, then make, and then make install"--they actually tackle common issues like installation locations. Having said that, I did find it odd that the authors would describe the use of GDB (debugger) in this context...
Part 5 continues the UNIX theme by diving deeper into shell scripting, starting and stopping services manually and upon startup, locating configuration files, and so on. This is all good stuff and well explained (although I'm sure my mother wouldn't quite grok xinetd services without some more help). To finish part V, the X Window System (including the use of remote X11 sessions) is mentioned in passing as well as the Perl and Python scripting languages. A bit odd choices, perhaps. I would've probably left these out in favor of less weight.
Part 6, taking up a hefty 350 pages, is dedicated to configuring a MySQL database server, an Apache web server, an FTP server, a mail server, setting up remote access, and interoperating with Windows file shares using Samba as well as mounting and sharing NFS shares on Tiger itself. The remote access part shows not only how to use familiar tools like ssh, scp, and telnet, but also how to manage public and private keys for certificate based authentication. These topics are covered very nicely as basic tutorials with everything included that's necessary to get started although a lot of space is used for superficially mentioning, for example, how to compile some exotic Apache module. Again, something I would've personally preferred left out completely--just like the whole chapter on programming web applications with Perl and PHP. On the positive side, the chapter showing how to set up the open source Darwin Streaming Server is definitely of assistance when you're in need of streaming QuickTime movies from your OS X powered web server. Similarly, I was delighted to see instructions for configuring SpamAssassin along with the mail server.
The final part starts off by introducing a couple of essential networking diagnostics tools such as traceroute, ping, and lookup. From there, the discussion moves to network security, firewalls, intrusion detection, and some routines with which to avoid the worst case scenario of someone taking over your machine. One essential routine is, of course, regular backups and the authors show a couple of different ways of taking backups of your data.
I haven't yet mentioned one of the most important things SAMS has done right with this book--the binding. You can actually lay the book down next to your keyboard without losing the page every 15 seconds (with the rather obvious exception of the 25 or so first and last openings of the book). Well done indeed. I am definitely happy with this book as my guide to the world of OS X. There's the necessary visual quickstart stuff for getting going with the OS X user interface, and there's the nitty gritty low-level stuff for the inner geek. The only reason why I'm not giving it a full rating is because I felt there was too much "extra" that doesn't really belong into a book about an operating system.