Wednesday, July 20, 2005

Review - Oracle JDeveloper 10g

Oracle JDeveloper 10gOracle JDeveloper 10g: Empowering J2EE Development
by Harshad Oak

3 out of 5 stars

Sometimes you just get lucky. You write a book about a fairly obscure and expensive Java IDE and then, without any warning, the company that makes the IDE releases it to the general public for free. The book is mostly a summary of the features of JDeveloper and doesn't go in deep into any area. If you are interested in a book to get you started with JDeveloper then this might fill your need. If you are looking for a book to show you the power of JDeveloper and help you get deep into its capabilities then this isn't the book for you.

The book has some major shortcomings; first and foremost that it was written using the preview version of 10g. Because of this there are some screen differences and the flow isn't always exactly as described. It would have been better if the author had waited until the final release version. Also, because JDeveloper was formerly a purchased product, there is quite a bit of information available free from the Oracle web site. You can find tutorials, demos, product tours, etc on the Oracle Technology Network (OTN). Finally, the book doesn't cover writing your own custom extensions and instead points the reader to OTN.

So what does the book offer? It is a fairly basic overview of the features available in JDeveloper. The author looks at servlet/jsp development, UML, web services, EJB, database interaction, Swing, and a few other features including the Application Development Framework (ADF). It covers everything at a fairly high level so at the end of the book you might not know how to do a lot in JDeveloper but you will know what JDeveloper is capable of doing. There really isn't a better JDeveloper book on the market however. A book about JDeveloper with the detail available in the many Eclipse books is still waiting to be published.

This earned 2 stars on Amazon. The book is published by Apress.

This review and all my other reviews can be seen on My Amazon Reviews page.

Friday, July 08, 2005

Review - JavaServer Faces in Action

JavaServer Faces in ActionJavaServer Faces in Action
by Kito Mann

3 out of 5 stars

JavaServer Faces (JSF) is one of the newest technologies in the Java toolbox and is designed to make developing web applications as easy in Java as it is in .Net. JSF is designed mainly to be used inside of an IDE by dropping JSF components onto a screen from a palette. This book is an introduction to JSF and although it is far from perfect, it is still a worthwhile read.

The book starts with an introduction to JSF with a good overview of the component technology and how it works as well as a brief discussion of some of the IDEs that support JSF. The next few chapters discuss the components in depth and the book bogs down. There is too much detail with very little in the way of code samples. To some extent this might make sense since the components are meant to be dropped from a palette, but at the same time it makes it very difficult to follow along without some understanding of how the components would be used in an application. Starting with chapter 8, the author tries to put it all together with a sample application. Unfortunately, it is presented as a development case study instead of a JSF case study. We get three chapters of screens with no code behind it that includes prototype versions and final versions. This seemed very unnecessary and helped to inflate the page count. It isn't until chapters 12 and 13 that we finally get to see some detail code but by then I had forgotten what the screens introduced four chapters earlier were supposed to be doing. The book ends with a chapter on Struts integration and a chapter on developing your own custom components.

There are bonus chapters available on the Manning web site, but since some of the bonus chapters are important to understanding the material in the book, unless you are reading the book while sitting at your computer, this isn't very helpful. The book would have been much better with some serious editing and rearranging of topics. The sample application should have been simplified and combined with the component reference material presented earlier. Code and screens should have been discussed together. The bonus chapters should have been incorporated into the printed version of the book.

I don’t want you to get the impression that this is a poorly written or useless book. In fact, there is a lot of good material here and after reading this book you will have a thorough understanding of JSF. The author gives very clear (if not concise) explanations but the book is too long and parts are difficult to wade through.

This earned 3 stars on Amazon. The book is published by Manning.

This review and all my other reviews can be seen on My Amazon Reviews page.

Monday, June 27, 2005

Review - Head First Design Patterns

Head First Design PatternsHead First Design Patterns
by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra

5 out of 5 stars

Disclaimer: I served as a technical reviewer for several chapters of this book.

Understanding design patterns and how they are used in developing an application is a critical skill. It is important that developers be able to make use of the same lexicon when discussing application architecture. Books like "Design Patterns" by Eric Gamma, et al (affectionately referred to as the gang of Four, or GoF) do well to catalog design patterns and provide this lexicon but they are difficult to use as a guide to learning and understanding design patterns, especially for the less-experience developer. "Head First Design Patterns" provides the skills required to learn and understand what design patterns are and how to use them and does it in a fun, easy-to-read way.

Although this book does present many of the patterns found in the GoF book, it is not a design pattern catalog. Its real goal is to help the reader look at their applications in new ways to discover how design patterns can simplify their development efforts. Patterns are covered in great deal, some may say in almost too much detail, but the end result is a thorough understanding of the patterns under discussion as well as the whole reasoning behind using patterns in the first place.

Each pattern is discussed in a similar way. It generally starts with a programming problem that has been handed to the development team. They look at a typical, non-design pattern solution and point out the problems with this solution, usually involving issues with making future changes. The team then starts looking for alternate solutions and discovers a design pattern. The application is then refactored using the design pattern. Simplified UML diagrams and easy to follow Java programs are used throughout the book. All of this is done is an amusing way that will keep the reader interested and not distracted.

I can strongly recommend this book for any developer with a sense of humor who wishes to understand design patterns. Even if you are not a Java programmer, the programs are simple enough for any developer using an object oriented language to understand. The book does a great job of explaining object oriented design goals and showing how each pattern fits into those goals. You won't find a discussion of every design pattern known but you will find a highly instructive discussion of some of the most common patterns. Reading this book will provide you with the skills to understand design patterns and to understand why you should be using them.

This earned 5 stars on Amazon. The book is published by O'Reilly.

This review and all my other reviews can be seen on My Amazon Reviews page.

Friday, June 24, 2005

Review - XML 1.1 Bible - 3rd Edition

XML 1.1 BibleXML 1.1 Bible
by Elliotte Rusty Harold

5 out of 5 stars

Elliotte Rusty Harold is that rare technical author who can write about anything and make it interesting. In this case, he has written 1,000 pages on XML providing us with an excellent guide book to this technology. Whether you are a beginner or advanced user of XML, there will be something in this book for you.

The book is divided into five parts. The first part discusses the basics of XML giving us an introduction to what XML is, what it is used for, and explaining the basics of creating a well-formed XML document. Part two discusses DTDs and explains how namespaces are used. Part three looks at various style languages including CSS and XSL. The section on CSS will be useful to anyone wishing to use CSS to format their HTML documents. Part four gives us a tour of some supplemental XML technologies including XLinks, XPointers, XInclude, and Schemas. The chapter that most interested me was on Schemas and the explanations were clear and complete, leaving no mystery about how to use this technology. The final part looks at a few XML applications including XHTML, RDDL, and SVG. The book does not cover writing programs to process XML documents using SAX or DOM, for example. The author has another book on that topic if that is of interest to you.

Each part of the book does an exceptional job of explaining the topic. The author gives us plenty of examples to make the text crystal clear. The author writes as a colleague helping out fellow programmers and not as an instructor droning away at a blackboard. You really get the idea that the author enjoys XML and enjoys explaining it. If you are interested in working with XML this book is truly an indispensable guide.

This earned 5 stars on Amazon. The book is published by Wiley.

This review and all my other reviews can be seen on My Amazon Reviews page.

Wednesday, June 22, 2005

Review - Lucene in Action

Lucene in ActionLucene in Action
by Erik Hatcher, Otis Gospodnetic

5 out of 5 stars

Lucene is an open source, search engine library that provides a sophisticated API that can be used to index documents and provide advanced search capabilities. Although using Lucene is not particularly difficult, like many open source projects, the available documentation leaves something to be desired. This book nicely fills that missing area.

The book starts with an introduction explaining both what Lucene is and also what it isn't. The next couple of chapters show us how to use the Lucene classes to index documents and then search for those documents. The authors next show us how to improve our searches by using different analyzers including how to write our own custom analyzers. Custom analyzers can allow, for example, searches using common misspellings or words that sound alike. The book moves on to look at the advanced search features that are available to the developer as well as explaining how to add your own features into Lucene. Since Lucene works only with text data, the authors next show us how to convert various data formats such as Word documents, HTML documents, and PDFs into text formats to allow Lucene to index and search them. The authors wrap up the main portion of the book with a look at some of the tools and extensions available that can provide some nice additional functionality such as highlighting search words in the found documents. The final chapter is a look at some real-life case studies of Lucene contributed by various authors. Some of the writing here is rather weak and seems, at least in some cases, to be little more than ads for the various sites and products.

The book is very well written and gives a good in-depth exploration of Lucene. The authors give plenty of code snippets showing the features of Lucene and provide a complete application to review as well. Anyone interested in using Lucene and wants more than the little documentation available should consider getting this book. One thing that annoyed me about the book was the constant pushing of JUnit. Most of the code samples include some traces of unit testing and seeing blocks of code with "assertEquals" everywhere was distracting to say the least. The authors should have considered that not everyone is using JUnit and that when you are trying to understand code, additional off-topic lines are simply confusing.

This earned 5 stars on Amazon. The book is published by Manning.

This review and all my other reviews can be seen on My Amazon Reviews page.

Monday, May 09, 2005

Review - Murach's Beginning Java 2, JDK 5

Murach Beginning Java 2, JDK 5Murach's Beginning Java 2, JDK 5
by Doug Lowe, Joel Murach, Andrea Steelman

2 out of 5 stars

The earlier edition of this book was a well written tutorial for the beginner Java programmer but it was also in need of an update. The release of the JDK 5 edition of "Beginning Java 2" attempts to answer that need. The new edition is almost 100 pages longer and the extra pages have been used to give greater detail on object oriented programming and to cover some of the new additions to the language such as generics. Unfortunately, the new edition contains too many mistakes and is less well organized than its predecessor.

A few examples of mistakes in the book will explain my complaints. In the discussion of abstract classes, the book tells us that subclasses of an abstract class must override all the abstract methods of the parent class. This, of course, is not true if the child class is also abstract. In the discussion of threads, the book explains synchronization of methods using a method that does not need to be synchronized. The explanation makes it appear that method variables are shared by threads. The book tells us that primitives are passed by value and objects are passed by reference. Of course, Java always passes by value although the value passed may be a reference. There are also problems with the sequence in which language features are introduced. For example, int and double are introduced early, but the reader must wait forty pages to discover that there are other primitive data types.

Overall, the new release of Beginning Java 2 represents a step backward in the Murach family of books. This book could have used much more careful editing and a better sequence of topics. If you are looking for a tutorial or textbook I can not recommend this edition.

This earned 2 stars on Amazon. The book is published by Mike Murach & Associates.

Due to a bug in the way Amazon does reviews, I can't publish this review on Amazon since I wrote a review of an earlier edition. My other reviews can be seen on My Amazon Reviews page.

Friday, April 29, 2005

Review - Murach's C#

Murach C#Murach's C#
by Joel Murach, Doug Lowe

5 out of 5 stars

This is an excellent book for the beginning C# programmer. The book uses a "paired-page" format where the page on the left gives descriptions of a concept and the page on the right provides examples, syntax, and additional information. Although this does lead to some repetition, overall it provides clearer explanations of concepts that are laid out in front of you all at once. It also makes it easier to go back, find, and review information read previously.

The book starts with a tour of C# which leans heavily on Visual Studio. The first three chapters cover using VS.NET and very little C# code is presented. In fact, explanations of how to work in Visual Studio are provided throughout the book. The next two sections, covering 12 chapters, cover the details of programming in C# and writing object oriented code. The coverage of OO is excellent and it will remove much of the mystery associated with OO programming. Database programming using ADO.NET is covered at a good level of detail in five chapters. The final section covers reading and writing files including using the .NET classes to read and write XML files.

In many ways this book provides a level of detail not found in other books with plenty of code samples to help clarify the material. The only thing not covered is ASP and web forms. I can highly recommend this book to anyone interested in learning C# or to anyone planning to teach a C# programming course. The book is well designed as a textbook for a programming class. It includes objectives, a summary, a list of important terms, and programming exercises at the end of each chapter. A student workbook and an instructor CD are available.

This earned 5 stars on Amazon. The book is published by Mike Murach & Associates.

The review can be seen on Amazon on My Amazon Reviews page.