Sponsored links

Valid XHTML 1.0!
Valid CSS!

Product: Book - Paperback
Title: Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity
Publisher: Apress
Authors: Joel Spolsky
Rating: 5/5
Customer opinion - 5 stars out of 5
Candid with Great Cadence

I've been a fan of the Joel on Software web site for a couple years now and have frequently referenced it in intercompany e-mails on everything from the development process to office layout. That was always a bit ethereal, now the heft of this actual, physical book is very pleasant. I plan to display it prominently in my cube but for now I am carrying it with me like a schoolboy.

Joel has terrific insights into the software world and into business in general and speaks with a "human voice"; he is not timid about expressing a well-formed opinion, yet he does so with a rhythm and sense of humor that makes it painless even when we recognize that we are, ourselves, guilty of some of the criticisms being leveled. This is a fun read. Hey, Joel, thanks for sharing.

Product: Book - Paperback
Title: MDA Explained: The Model Driven Architecture--Practice and Promise
Publisher: Addison-Wesley Professional
Authors: Anneke Kleppe, Jos Warmer, Wim Bast
Rating: 4/5
Customer opinion - 4 stars out of 5
Informative, but premature

The MDA looks like a very promising solution to big problems.

Big problems, almost by definition, have lots of parts. Today, that means databases, network protocols, incompatible languages, distributed processing on disparate platforms, and more. Building any one part on any one platform is easy enough. The problem is to guarantee that the database, the Enterprise Bean interfaces, the HTML forms, and everything else match each other. There are two ways to make matching work. First, you can spend the rest of your life running around and looking at all interacting pairs of things, hoping that nothing changed while you weren't looking. Second, you can derive all those parts automatically from a common source. That's what the MDA is about.

The MDA defines hierarchies of meta- and meta-meta-models. If you read between the lines, you'll probably see that each level of meta-abstraction requires a successively more knowledgeable, capable developer. This book works at the highest levels, so probably won't make much sense to entry-level staff with a more concrete and immediate view. (I shudder to think about maintenance of high-level tools by entry-level staff, and it will happen, somewhere some day.) The MDA approach assumes complete fluency with the UML, MOF, OCL, and other alphabet soup. That is necessary because the MDA half-defines transformation rules that convert a specification, in successive steps, into code. It's a bit like the filter approach of XSLT.

The good news is that one specification can be transformed into a database schema, a Java Bean, a web form, and more, by applying different transformations to the spec. Consistency is ensured, at least to the extent that the different transformation rules are correct and consistent.

There are a few problems with the MDA approach. First, the authors point out that it's just not there. It's a blue-sky spec, with no underlying implementations. A few vendors have declared their products MDA-compatible. I'm reminded that a block of wood with two nails driven in wass compatible with the electrical safety specs from the old Ma Bell days. Non-interference is a form of compatibility, just not a very interesting one.

Second, if you have a small problem, though, you're stuck. The only apparent way for MDA to handle a small problem is first to turn it into a big problem, then solve that. Victims of heavy-weight CASE tools in light-weight projects will have some experience of that already.

Third, and most critical, is that it just isn't complete enough. The transformation rules, at least as shown here, don't really have the expressive power needed for generating compilable code. That operation, the one that matters, seems to be "implementation dependent", i.e. jungle rules. Also, despite the authors' assurance (sec 12.1.3) that MDA really will generate code that doesn't need manual involvement, they have no shown that. Quite the opposite. The sample application (p.120) shows how the model generates a business-rule method, but gives no indication how that method's body is to be defined!

The MDA is interesting, but perhaps not the "paradigm shift" that the authors claim. In many ways, it's like the common code-generating CASE tools writ large. Getting to the authors' ultimate vision will take years, many incremental steps, and probably a good bit of pain on the developers' part.

Still, software is getting bigger and software problems are getting bigger. They need to be tamed somehow, and maybe the MDA will address important parts of the problems. I'm watching and waiting, but getting on with my business in the mean time.


Product: Book - Paperback
Title: Programming Embedded Systems in C and C ++
Publisher: O'Reilly
Authors: Michael Barr
Rating: 4/5
Customer opinion - 4 stars out of 5
Embedded System Fundamentals

Having great regard for O'Reilly books, I had expected great breadth and depth from an O'Reilly book titled "Programming Embedded Systems in C & C++". However, this text takes disappointingly small steps towards 80x86 based embedded systems. The ARCOM systems are well designed, but much more expensive than the text would suggest.
The chapter on A Decent Embedded OS, ADEOS, does not provide or describe a complete working OS. Jean LaBrosses' texts "MicroCOS II : The Real-Time Kernel" and "Embedded Systems Building Blocks..." do.
Better Bang per Buck:
Having been a 68xx, PIC and 80x86 programmer for years, I would now recommend ATMEL systems AVR xxxx- Code Composer Studio Free, AVR In Circuit Emulators (ICE) - Inexpensive, C & C++ or other free or inexpensive compilers & resources.
THe books by "Embedded Systems Programming" Journal authors are also generally quite excellent - "Math Toolkit for REAL-TIME programming" & TCP/IP Lean being good examples.

Product: Book - Paperback
Title: SSH, The Secure Shell: The Definitive Guide
Publisher: O'Reilly
Authors: Daniel J. Barrett, Richard Silverman
Rating: 4/5
Customer opinion - 4 stars out of 5
Great for understanding SSH, useful for configuring it.

I find too often that SysAdmins simply slap a pre-configured SSH onto their systems and do not truly understand how it works. Tasked with implementing SSH at my UNIX site, I found this book to be useful both in understanding SSH, and actually configuring it. This book is heavily weighted towards SSH1 and SSH2 and provides a wonderful amount of detail. However, I found it's coverage of OpenSSH to be lacking. I had to search the internet for a good deal of supplementary material to get OpenSSH working the way I wanted it to.
I truly enjoyed the books explanation of how a secure channel is established before login occurs. This explains the "magic" of the authentication process that is so integral to SSH. Its explanation of publickey authentication is also excellent. It helps you to really understand what SSH is for and how it can be used.
Examples are a bit too cluttered at times and are lost on the reader. I was also expecting a better explanation on how to "implement and administer" SSH at my site. For example, creating SSH packages and keeping known_host files updated. I have found the most useful information on these topics from various internet articles.
If you're truly interested in the inner-workings of SSH, I would strongly recommend this book.