Sponsored links

Valid XHTML 1.0!
Valid CSS!

Product: Book - Hardcover
Title: Mastering Windows 2000 Server
Publisher: Sybex Inc
Authors: Brian M. Smith, Doug Toombs, Mark Minasi
Rating: 5/5
Customer opinion - 5 stars out of 5

Ordering today.. but if it's half as good as MASTERING NT4- it will be money well spent. Mark has a way of avoiding the DRY-MICROSOFT-PRESS lingo and explaing so it's understandable. My Mastering NT4 has been my District Bible that I don't leave home without. Way to go Mark- If your ever down in Texas look me up

Product: Book - Paperback
Title: Understanding the Linux Kernel (2nd Edition)
Publisher: O'Reilly
Authors: Daniel P. Bovet, Marco Cesati
Rating: 3/5
Customer opinion - 3 stars out of 5
mixed, other books are better

I've been reading kernel books for nearly 20 years -- this is not recommended.

Some of the chapters and explanations I liked, others I felt were dry and lacking. The code examples seem to run through a non-deterministic preprocessor -- the code is supposed to describe 2.4.18, but the code snippets don't quite match the actual code (while generally working the same way, the algorithms/loop structure are often rewritten and the macros are sometimes expanded). I find it very useful when books comment on actual code examples, this is "kinda massaged code" -- I found it very frustrating when I actually looked at the kernel tree when they had snippets in the book.

I often found it necessary to look at the actual code to give more context (but the code rarely matched verbatim -- very strange). And when they did rewrite algorithms, I found the kernel 2.4.18 source to be MORE lucid.

The explanations without code were adequate, and I found some to be illuminating. Perhaps since the book has two authors, different authors wrote different chapters? (I liked some chapters and didn't like others).

If you want a general understanding of how kernels work, Andy Tanenbaum's "Operating Systems: Design and Implementation" where he elaborates on Minix is very useful -- with a complete Minix system (Minix is more of a teaching tool, which it does well, Linus looked at lMinix and wanted a more useful system, hence Linux).

I found Robert Love's "Linux Kernel Development" very good (I read the 1st edition, still need to read the second edtion). And Linux Device Drivers (Corbet and Rubini) is very good and has excellent examples (but the examples may need some work to build on a current kernel -- had this problem with the 2nd edition).

Product: Book - Paperback
Title: SQL: The Complete Reference, Second Edition
Publisher: McGraw-Hill Osborne Media
Authors: James R Groff, Paul N. Weinberg
Rating: 5/5
Customer opinion - 5 stars out of 5
Indepth, with complete coverage.

Super book for beginning to advanced SQL. I was able to teach myself SQL from this book in conjunction with another, called The Practical SQL Handbook.

Product: Book - Hardcover
Title: Pattern-Oriented Software Architecture, Volume 1: A System of Patterns
Publisher: John Wiley & Sons
Authors: Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal, Peter Sommerlad, Michael Stal
Rating: 4/5
Customer opinion - 4 stars out of 5
Clear and wide-ranging

This is an unusual book in the pattern genre. It presents a number of patterns, categorized by archtiectural level. That's just the first part of the book, though. The third of the book is about the process of using, relating, collecting, and distributing patterns.
Only chapter 2 really addresses patterns for the strategic, architectural level of a software system. It does a very adequate job, using a variety of notations, examples, and analysis steps. This book is from 1996, so time has changed our view of some patterns. "Reflection," for example, has become pervasive in applications based on plugins and software components. It is also a fundamental API in the major langauges (Java and C#) released since this book was published - perhaps reflection should be downgraded to an "idiom". That's just nitpicking, though, since reflection is even more important now than when the book was written.
For contrast, the authors present additional design patterns (including some from Gamma's book) for use at tactical design levels. They also discuss idioms patterns that typically involve just a few lines of code within on function. The contrast between the three different levels of implementation and design gives a useful discussion. The authors also present a weak chapter on "systems" or "langauges" of patterns The discussion is OK as far as it goes. The weakness is in what it omits. After reading this brief chapter, the programmer has very little practical information about choosing patterns from some library for some task. The poor programmer has no information at all about how to link patterns together, and that's a real stumbling block for beginning pattern users.
The final section of the book is really sociology. It's about the pattern community, what that community is for, and how to be a working member. I find the discussion un-helpful, but I expect opinions to differ.
Even today, this is a good second book (after Gamma's 'Design Patterns') on patterns and pattern usage. It lack the depth and precision of Gamma's book, and tends to add words without adding meaning. On the positive side, it's broader than Gamma's, and addresses a wider range of implementation levels.