Wednesday, December 22, 2004

Review - SWT/JFace in Action

SWT/JFace in ActionSWT/JFace in Action
by Matthew Scarpino, Stephen Holder, Stanford Ng, Laurent Mihalkovic

4 out of 5 stars

SWT and JFace are the graphical libraries developed by IBM as an alternative to Swing to improve performance of GUI applications (specifically Eclipse) written in Java. This book offers a thorough introduction to SWT/JFace. The authors avoid getting into a Swing vs. SWT/JFace debate although they do provide a comparison of the two libraries.

The book starts with a look at writing a program in SWT and then rewriting it using JFace. The authors compare the two approaches and give a good description of why you would want to use one over the other. The next few chapters look at the basic widgets, layout managers, event handling, and graphics contexts. Later chapters cover more advanced widgets such as trees, viewers, tables, menus, dialogs, and wizards. The last chapter looks at GUI development using Eclipse's Rich Client Platform. The appendices cover development within Eclipse and integrating SWT/JFace applications with OLE and ActiveX.

Overall this book does a great job of explaining SWT/JFace at a good level of detail. The book includes a reasonable amount of code samples as well as UML diagrams that help explain how these libraries work. The authors should have chosen a better sample application to demonstrate use of the libraries and there aren't enough screen shots included which may leave you wondering what some of the widgets look like. Other than these two minor complaints, this is an excellent book to learn how to use SWT/JFace and I can strongly recommend it.

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

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

Thursday, December 16, 2004

Review - Core Java 2, Fundamentals

Core Java 2, FundamentalsCore Java 2, Fundamentals
by Cay Horstmann, Gary Cornell

4 out of 5 stars

This is the seventh edition of this book and in some ways it hasn't changed much since the first edition. The first edition was aimed at C++ programmers who were looking to transition to the new language. The seventh edition is still fast-paced and detailed and aimed for the experienced programmer. This is not an easy-to-follow tutorial for the beginner programmer. The authors assume that you already know the basics of programming even if it isn't with an object oriented language. The book might make a fairly good college textbook but not as a first language.

The book covers the main areas that you would expect in an introductory Java book with a few surprises. The book gives a little bit of the history of Java and shows how to install and run Java from the console and Eclipse (but not NetBeans). There is an early introduction to reflection but exception handling isn't covered until well into the book. Swing is covered in a fair level of depth. J2SE 5.0 changes are covered throughout the book with the many examples written to show off the new additions to the language. Threading and Collections are not covered but rather are saved for volume two.

Overall this is a well written book but the target audience is getting small. How many C++ programmers can be left that don't already know Java? If you are looking for an introductory tutorial then this book may be a bit too advanced. Through seven editions, Core Java has changed little other than to reflect language changes. Perhaps it's time to rethink the franchise.

This earned 4 stars on Amazon. The book is published by Prentice Hall.

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

Review - Explorer's Guide to the Semantic Web

Explorer's Guide to the Semantic WebExplorer's Guide to the Semantic Web
by Thomas B. Passin

4 out of 5 stars

The semantic web is an intelligent web, that is, a web that can be intelligently used by computers. There are two things you need to know about the semantic web. First, it doesn't exist. Second, it may never exist. If this isn't enough information for you, and you want to look at what the future may hold in the area of an intelligent web, then I can't think of a better way to get an introduction to the technologies and ideas that may be part of the semantic web than by reading this book.

The author of the book takes the layers of the semantic web as proposed by the W3C and looks at each one in turn, skipping over the familiar XML and XML schema layers. The author starts with the RDF layer and gives one of the best explanations of RDF and RDF schema that you will find. RDF is the potential meta-data language of the semantic web and the author makes it clear and understandable. Other than XML, RDF is the most real layer of the W3C layer cake so this section is also the most accessible. The next chapter delves into ontology which is vaguer and less clearly defined. The chapter on web services seems a bit unnecessary except as how they fit into the semantic web. A chapter on how intelligent agents may work is included. The last section deals with how information may be verified for truthfulness and authenticity.

If you are interested in RDF then you may want this book just for that section. If you are interested in what the semantic web might look like then this book may be of interest. If you are looking for practical programming samples or ways to build intelligent agents then this isn't the book for you. This is an explorer's guide for those having no fear to tread into unknown waters. This part of the web is still uncharted but this book will help you learn what technologies may be used to fill in the missing pieces of the map.

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

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

Monday, December 13, 2004

Review - Building Portals with the Java Portlet API

Java Reflection in ActionBuilding Portals with the Java Portlet API
by Jeff Linwood, David Minter

4 out of 5 stars

Portals are becoming more popular as companies are looking for a single web-based entry point into their various applications. Java provides a standard portal model with JSR 168. This book is a thorough introduction into JSR 168 that will help get portal developers up to speed into this relatively new specification.

The book starts with an excellent introduction into developing portlets. The first seven chapters cover all the details of developing portlets. Response and request objects are covered in detail. The portlet life cycle is clearly explained. Deployment descriptors are discussed. Integrating with Servlets and JSPs is described. The remainder of the book covers more advanced topics. Anyone working with a portal knows the problems with providing single sign-on to multiple applications. The authors discuss this issue giving several examples. The authors cover syndication, searching, personalization, web services, content management, and more.

My only complaint with the book is that it uses the Apache Pluto portal, which is not in final release yet. Pluto is an open source portal but it is complicated to distribute content to it (you are forced to use Maven). When the book explains how to distribute portlets to Pluto it gets a little confusing because the authors need to explain multiple configuration files, some of which are exclusive to Pluto. Other than this one problem, the book gives a solid introduction to developing a portal providing detailed information of both the basics and many advanced concepts. Clearly the authors understand portal development and know how to pass that information on to their readers.

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

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

Wednesday, December 08, 2004

Review - Java Reflection in Action

Java Reflection in ActionJava Reflection in Action
by Ira R. Forman and Nate Forman

5 out of 5 stars

There are only a handful of books that every Java programmer should own. This book manages to enter into that elite group of books by providing exceptional coverage of an area of Java programming that is generally poorly covered and often misunderstood. Reflection is a topic that many programmers know about but don't truly understand. Reflection can provide simple ways to get out of complex problems, which makes it well worth knowing. Reflection is one of those tools that you never knew you needed until you learn it.

The authors of this book are a father/son team that have been working with reflection for years. They attack reflection in small pieces, making each topic crystal clear before moving on to the next. In keeping with the "action" from the title, the authors show examples of each aspect of reflection, breaking down each line of code with complete explanations.

The book starts with the basics of reflection, looking at how to examine a class at runtime and dynamically load it. The book then moves on to demonstrating how to use the Proxy class. Later chapters show how to examine the call stack, customize class loaders, and transform one class into another. Performance is covered with a chapter that gives some good examples of benchmarking the cost of using reflection. The book ends with a look at the impact of Java 1.5 on reflection.

The best advice I can give is, buy this book. You will be amazed at the things that you didn't know you could do with Java.

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

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

Wednesday, November 24, 2004

Review - Pro Jakarta Velocity

 Pro Jakarta VelocityPro Jakarta Velocity
by Rob Harrop

5 out of 5 stars

I have always been a strong supporter of Velocity. I even wrote an article for JavaRanch about Velocity back in March. Velocity is an open source template framework designed to simplify the task of generating content such as web pages, email, or any other text-based output. The Velocity documentation available from Apache is short, low on examples, and leaves holes (even if it is fairly good compared to some other open source projects). This book fills in the gaps and gives excellent coverage of the many features that are available with Velocity.

The book starts with an introduction to Velocity and then explains how to install and configure it. The author then discusses the Velocity Template Language, examines its shortcomings, and demonstrates how to get around them. Best practices are covered early in the book. Although Velocity is normally thought of as a web-based framework, the author doesn't let us forget that it can be used for both stand-alone and web applications and gives us detailed chapters on both. Velocity tools are well covered including Anakia, which can be used to transform XML. The Velocity architecture is explained as well as ways to extend that architecture.

The examples are well thought out and give good coverage of the features of Velocity. The most interesting part of the examples is how little work it is to integrate Velocity into a well-designed framework. The author shows how Velocity fits into both Struts and Spring, demonstrating that Velocity is not meant to replace these frameworks but rather to simplify content generation in any framework. I can strongly recommend this book for anyone interested in Velocity. For anyone not interested in Velocity, the question is, why not?

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

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

Monday, November 15, 2004

Review - Effective Enterprise Java

Effective Enterprise JavaEffective Enterprise Java
by Ted Neward

5 out of 5 stars

As anyone who has programmed using Servlets, JSPs, and EJBs knows, the complexities of integrating multiple layers of code can drive you to distraction. If you aren't careful, you can create an application that performs poorly under load, is difficult to maintain, and is impossible to port from one platform to another. The tricks that a programmer needs to avoid these problems often come painfully with experience. The author has taken his experience and given us a book that is well-written, easy to understand, and provides plenty of excellent advice that will help you produce superior applications. The best part is that the advice you get is practical advice from someone who has actually experienced the pain and suffering of J2EE development. This book deals in the reality of development and not pie-in-the-sky theory.

The book contains seventy-five items of discussion broken up into seven main areas. The items cover a wide range of topics from the broad, "Keep it simple" to the specific, "Never cede control outside your component while holding locks." The items cover everything from architecture, "Define your performance and scalability goals," to coding, "Use HttpSession sparingly." Even if a particular item is not of interest to you, there will be plenty of other items that will be of interest.

This book is not a tutorial or beginner's book. It is expected that the reader already has some experience with Enterprise Java. If that describes you, make sure you get this book to avoid more pain and suffering. You will end up a better J2EE developer and your applications will be cleaner and easier to maintain.

This earned 5 stars on Amazon. The book is published by Addison-Wesley.

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