Sponsored links

Valid XHTML 1.0!
Valid CSS!

Product: Book - Paperback
Title: Advanced UNIX Programming (2nd Edition) (Addison-Wesley Professional Computing Series)
Publisher: Addison-Wesley Professional
Authors: Marc J. Rochkind
Rating: 4/5
Customer opinion - 4 stars out of 5
Technical excellence; worth owning

(reviewed for the Calgary Linux Users Group Guild)
There is a saying which goes, "UNIX is user-friendly; it's just picky about who its friends are." Upon reading Advanced UNIX Programming, I get the impression that Marc Rochkind may at one time have been a close friend of UNIX, but having become a little disillusioned by what UNIX has become in the 19 years since his first edition, is willing to settle for being a calm, professional acquaintance. His opening chapter provides two main reasons why this has happened: first, the UNIX kernel has grown from providing 70 or so system calls, to over 600 for an implementation that provides Single UNIX Specification and POSIX compliance; and second, there are so many flavours of UNIX out there (including Linux) that none of them implement exactly the same set of system calls. Thus the increasing complexity and diversity of UNIX implementations makes it difficult to know all that can be called UNIX intimately. Rochkind's book presents enough material to make the reader an acquaintance, leaving the building of a friendship as an exercise for the highly committed.
Rochkind makes a careful selection of just over 300 of the most important system calls and groups them into a handful of broad topics: I/O (file and terminal), processes and threads, inter-process communication (including sockets), signals, and timers. He takes great care to highlight what is available in Solaris (version 8), Linux (SuSE 8), BSD (FreeBSD 4.6), and Darwin (6.8; MacOS 10.2.8), and how to write something that has a hope of running on all of them. The system calls he describes are the ones anyone writing UNIX applications must know about. That is his target audience, and he meets that target squarely. If you are not already a C programmer and UNIX user, this book will not be useful for you.
The book contains exercises and several code samples. Some of the larger chunks of code implement a simple shell, an HTTP client, and a full-screen text-mode menu system. This is not trivial stuff; it is reflective of the title, and demonstrates in a short space how to put the kernel to use. Rochkind also includes some example code that should work, but will not, just to illustrate that things are not as simple as they could be. He then walks the reader through the necessary corrections, bringing enlightenment as he goes. Each chapter contains this mix of tutorial material, useful to those who are starting to explore the UNIX kernel and how it can serve their applications, and reference material, useful to those looking for the bit of wisdom a man page cannot provide, but years of experience can.
Rochkind also buries some treasure in the appendices. While his examples are all written in C, since this is the natural language for UNIX programming, he acknowledges that not every program that uses the UNIX kernel is going to be a C program. He describes two downloadable class libraries that map most of the UNIX kernel calls to objects and methods. These allow folk who prefer object-oriented languages to use the kernel without doing violence to their programming paradigm. Ux is a C++ wrapper, and Jtux is a Java wrapper that also works with Jython.
As one might expect, Advanced UNIX Programming contains an extensive bibliography and reference list. If you had all of the works and resources he lists on your shelf, the body of his book would be superfluous. He has distilled things well.
There are two technical things that I found missing from the book. The significant one is a discussion of how to deal with multiple processors, particularly around semaphores and other kinds of locks. This would be a valuable addition to the chapter on inter-process communications, especially now that these machines are becoming more common. The second, and by no means serious, omission is actually one that arises because of what he does include in an appendix: if he can describe a Java class library, why not make a reference to a set of Perl modules, too?
So why do I rate this book as less than outstanding? Well, one reason is a matter of taste. I am not a fan of C preprocessor macro functions, but Rochkind makes heavy use of them in his examples to simplify error trapping and reduce the volume of code that had to be printed. This forced me to read code in a different way than my colleagues and I write it. I found it awkward to pick out the particular system call being used when it was coded as a parameter to a macro. The second is that I found his treatment of signals to be confusing. Admittedly, signal handling is not simple (and the newer signal-handling calls do little to help), but the chapter on signals felt like it was rushed to completion to meet the publication deadline. I read that chapter twice, and am still scratching my head. Add a handful of typographical errors to these irritants, and I wound up with a book that was not a joy to read straight through, but a chore. I will still use the book as an occasional reference, reflecting the comfortable professional relationship, but not intimate friendship, I have with UNIX, and maybe I will learn more on a subsequent reading.

Product: Book - Paperback
Title: Data Mining Techniques : For Marketing, Sales, and Customer Relationship Management
Publisher: *Wiley Computer Publishing
Authors: Michael J. A. Berry, Gordon S. Linoff
Rating: 5/5
Customer opinion - 5 stars out of 5
Very good data mining book!!!

I've purchased this book a week ago. So far I've read until chapter four and have learned a lot already. Descriptions are clear and the authors presented a lot of implementation scenarios/samples.

Product: Book - Paperback
Title: SAS Macro Programming Made Easy
Publisher: SAS Publishing
Authors: Michele Burlew
Rating: 4/5
Customer opinion - 4 stars out of 5
This book is really excellent .

This book is really good for Beginners . Its easy to follow different concepts and macro porcessing was very clearly explained with good examples. This book gives a good understanding of core topics.

Product: Book - Paperback
Title: Microsoft SQL Server(TM) 2000 Reporting Services Step by Step (Pro-Step by Step Developer)
Publisher: Microsoft Press
Authors: Hitachi Consulting, Stacia Misner
Rating: 4/5
Customer opinion - 4 stars out of 5

Initially, I was disappointed by the fact that key files for the book's examples were not available on the accompanying CD.

Within a week, Microsoft posted a download link for the outstanding files. Most pleasant.

In keeping with SQL Server Analysis Services Step-by-Step and DTS Step-by-Step, this book is a fantastic way to pick up the necessary skills to work with Reporting Services. Like the other Step-by-Steps, this book takes a very practical approach to teaching the subject matter. For those of us with a backgound in .NET development, the CD contains 3 additional bonus chapters neat topics on (among other things) extending and customizing Reporting Services for our appplications.

Like I said in an earlier review for DTS Step-by-Step, I hope Microsoft keeps up this great trend going forward with publications covering SQL Server 2005.