Sponsored links

Valid XHTML 1.0!
Valid CSS!

Product: Book - Paperback
Title: Designing Web Usability : The Practice of Simplicity
Publisher: New Riders Press
Authors: Jakob Nielsen
Rating: 5/5
Customer opinion - 5 stars out of 5
Excellent Resource

The book really helps to organize material on the web and understand what makes or breaks a web page . It really helpe me to keep the user in mind while designing artistic sites. The author is not very artistically inclined but he is a great expert on organizing information on the web as well as creating the most ease for users.

Product: Book - Paperback
Title: WebLogic: The Definitive Guide
Publisher: O'Reilly
Authors: Jon Mountjoy
Rating: 4/5
Customer opinion - 4 stars out of 5
A comprehensive and useful overview of WebLogic

WebLogic has become a very popular tool for integrating and managing applications in multi-tier environments. Implemented as an application server, it remains one of the leaders in J2EE compliance. There is a lot to WebLogic, and so it is unlikely that any one person would need to be in a situation where expertise in all of its properties and capabilities would be required. Because of its popularity though, for those who must confront it via Web applications, a good general familiarity with it is essential. This book gives a comprehensive overview of WebLogic, and readers who need a particular set of questions answered or need an in-depth review will find it useful. The interest of this reviewer was in performance issues in WebLogic, and so the review will be confined to these issues as they are discussed in the book, as space permits. The book devotes an entire chapter to the performance tuning of WebLogic applications, but some of the other performance issues discussed in the book outside of this chapter include:
1. The Enterprise Java Bean (EJB) container supports checking on value changes so that only persistent fields that have been modified are written to the database. This results in enhanced performance for the EJB. 2. WebLogic provides flow control mechanisms that allow the suppression of messages during times of peak messaging. This ensures that the performance of other WebLogic services will not be affected adversely. 3. The use of cache filters, which enhance application performance by caching various portions of the application without needing code changes. 4. Client-server interactions are optimized when the client is operating within the same virtual machine (VM) as the Remote Method Invocation (RMI) object. Java pass-by-reference semantics when the client and the server object are collocated. 5. The Java Database Connectivity (JDBC) connection pools enhance the performance and scalability of an application by allowing the same physical connection to be shared by multiple applications. Connection testing however can cause delays, since WebLogic will execute the test whenever the connection pool receives a connection request from a client. 6. Although by default WebLogic allows one to retrieve the physical connection associated with a logical connection, it cannot reuse a physical connection, but will instead discard it and replace it with a new connection in the pool. The performance of an application will be degraded if it depends on the physical connections, since any statement cache might not be valid for the new connection in the pool. One can change this default however to allow physical connections to be returned to the pool when they are closed, if one really desires to do so. 7. The performance of JDBC applications can be improved by configuring WebLogic so that it maintains a statement cache for each connection in a connection pool. When a callable statement is created using a connection obtained from the pool, it will be cached so as to avoid recompiling when using it again. 8. The performance of a Java Messaging Service (JMS) server can be adjusted using WebLogic by setting up quotas that restrict the number of messages held in server memory, or by enabling paging so that messages held in memory can be swapped out to a persistent store under threshold conditions. The JMS server can also suppress the rate at which JMS clients produce messages when the server attains threshold conditions. WebLogic uses `flow control" to do this, which delays the time it takes for calls to produce a message to return. The rate of flow of the messages is thus controlled based on a minimum and maximum range. Any degradation in the conditions will cause the flow rate from senders to approach the minimum range. When the conditions improve, the rate will approach the maximum range. The WebLogic flow control mechanism is given detailed discussion in the book. 9. Two types of JMS file stores are possible under WebLogic, namely file-based stores and JDBC-accessible database stores. File stores are faster than JDBC stores, and they do not generate network traffic, whereas JDBC stores will if the database is on a different machine. JMS stores for persistent messages will also degrade application performance. In addition, enabling message paging to a JMS store is more expensive than disabling paging altogether. 10. Message delivery and can be controlled and handled in WebLogic by using either `delayed' or `scheduled' message delivery, time-to-live settings, and redelivery mechanisms. Messaging can affect performance depending on the type of messages exchanged. Server memory, message payloads, network resources, and server support for paging and persistent messaging will all have to be optimized in order to get maximum performance from the JMS server. Message selectors also affect performance, and several mechanisms that are used are discussed in the book. 11. JMS clients can use WebLogic to dynamically create a permanent destination on the JMS server using methods that are asynchronous, and so there may be a large delay between when a request for a new destination is submitted and when the new destination is bound to the Java Naming and Directory Interface (JNDI) tree of the server. Polling will then have to be done by the client regularly in order to find out if the destination has been created. 12. JMS servers can of course be clustered, and JMS clients use connection factories to obtain connections to a JMS server, wherein a load balancing strategy is used to decide which server in the cluster should host the JMS connection. Connection routing can be used to improve scalability, even though it increases network traffic, but network traffic can be minimized for server-side applications. 13. WebLogic uses transaction collocation to reduce network traffic by collocating objects on the server on which the transaction was initiated. If multiple objects are cluster-aware and are engaged in a distributed transaction, WebLogic will collocate the objects on the server on which the transaction had started.

Product: Book - Paperback
Title: XSLT : Programmer's Reference (Programmer to Programmer)
Publisher: Wrox
Authors: Michael Kay
Rating: 5/5
Customer opinion - 5 stars out of 5
Excellent, Excellent, Excellent

I have read numerous texts on XML, some of which refer to XSLT in a passing way. This is the first book that fully documents and explains the usage of XSLT Most other texts rely on a single example to illustrate their message. Which is fine unless the example has nothing to do with your real life problem. Michael Kay takes the more difficult path of describing the subject through the use of abstract ideas, thereby applying the explanation to a wider realm of experience. The book is structured in a manner that I wish more authors would follow. The first part, chapters 1-3 explain the concepts of the XSLT language. This part, although challenging, is worth reading closely. Ample examples elucidate the concepts presented. Chapters 4-7 are a reference on the language itself. The information is precise and all encompassing. Chapters 8-10 present examples of using the language in real world situations, or as Kay states: "developing real industrial applications." If there is a fault to find, it would lie in the presentation of the XSLT products in chapter 10. A more in-depth description of the usage of Xalan, for example, would have been greatly appreciated. At the present time, to use this product you are armed with the API and that's about it. Getting a process up and running is still a challenge. But, given the state of the industry, it's not surprising that this area was not more fleshed out. In summation, I can only agree with the previous reviews and state that this is THE reference to have on XSLT.

Product: Book - Paperback
Title: C++ Coding Standards : 101 Rules, Guidelines, and Best Practices (C++ in Depth Series)
Publisher: Addison-Wesley Professional
Authors: Herb Sutter, Andrei Alexandrescu
Rating: 5/5
Customer opinion - 5 stars out of 5
The Writ of Common Wisdom

You have never seen a book quite like this before. When the authors of this book speak, the C++ community listens, but together they have outdone themselves, and you and I are the happy beneficiaries. This is the first "coding standards" book I've seen that works. The organization is clear and intuitive, the topics are pertinent, and the content is of the highest quality. All the standards contained herein have been rigorously scrutinized (I have hundreds of emails to prove it!) by a generous sampling of the leading contributors in the C++ world, as attested by the acknowledgements in the Preface.

More than just style guidelines and "gotcha" warnings, C++ Coding Standards clarifies the idioms and practices that pertain specifically to successful C++ software. Even better, you can't avoid deepening your mastery of the finer points of C++ as you read. This is the singularly authoritative Writ of Common Wisdom for the entire C++ development experience.

Chuck Allison
Editor, The C++ Source