John Carnell - Biography - No Fluff Just Stuff

John Carnell

Manager - Platform Engineering w/Thrivent Financial

John Carnell

John Carnell is the manager of Platform Engineering for Thrivent Financial, a Fortune 500 financial services company. In addition, John is a prolific speaker and writer. He has spoken at national conferences, such as Internet Expo, the Data Warehousing Institute, and numerous No Fluff Just Stuff Software Symposiums.

John has authored, coauthored, and been a technical reviewer for a number of technical books and industry publications. His latest book, Pro Apache Struts with Ajax, was published in late 2006.

PRESENTATIONS

It's All About Leadership
Limber Groovy: Making Your Code More Flexible with Groovy
Racing with Rhinos: Using Springs and Grails to Achieve Competitive Velocity
The Art of Producing Software: Applying Lean Concepts to Transform Your Software Development Organization

BOOKS

Professional Struts Applications: Building Web Sites with Struts, Object Relational Bridge, Lucene, and Velocity

Building web applications that are maintainable and extensible requires a significant amount of design and planning before even a single line of code can be written. However, by leveraging pre-written development frameworks, a development team can reduce the amount of time it takes to deploy an application, while at the same time promoting reuse. Traditionally, development frameworks required significant amounts of time and energy to implement. The alternative to implementing a framework was to purchase one, but this was often an expensive option that required a significant commitment to one software vendor.

Open source software has changed all of this. There are now several freely available Java development frameworks that can be used for developing web applications. These frameworks are straightforward to use, and because you have ready access to the frameworks' source code, they are also easy to customize for any organization's environment.

This book acts as a roadmap that will demonstrate how to use Jakarta development frameworks to solve everyday web application development challenges. Using our unique Problem-Design-Solution approach we will explore how the development frameworks from the Jakarta project, such as Struts, Velocity, Lucene, Cactus, and ObjectRelationalBridge can be used to develop web applications.

For each problem, the books discusses the solution's design and then how to implement it using the relevant framework. The problem domains covered include: Navigation, Screen layout, Form Validation, Business Rules, and Persistence.

J2EE Design Patterns Applied

Aimed at the intermediate to advanced Java developer or architect, J2EE Design Patterns Applied offers a compendium of the latest thinking on using Java effectively to build scalable enterprise systems. Filled with hints and excellent "best practices" on software patterns, this book will be nearly indispensable for anyone who wants to become an expert at Java design. While there are a good many available books on software patterns, this is one of the few that concentrate on reusable software designs specifically geared toward the Java 2 Enterprise Edition (J2EE), a popular option for Web applications today. The authors have catalogued several dozen J2EE patterns garnered from Sun Microsystems and online resources.

The tendency for any book on software patterns is to dissolve into software engineering jargon, and you'd expect this title to do the same given the abstract names for many patterns listed in its early sections (for example, "Intercepting Filter," "View Helper," and "Service-to-Worker" are hardly catchy names). While the authors do provide the "official" UML and pattern descriptions for these J2EE patterns, the real surprise is that they use a handful of longer case studies to show off each pattern in action. First there is a hotel booking application to show off Web tier patterns. Next comes an excellent case study on persistence patterns used to simplify working with EJBs and databases. Patterns for improving performance and scalability are illustrated with a travel booking application.

In each case, the authors manage to introduce a number of important patterns while anchoring their presentation with a practical and interesting discussion of real applications. This approach makes this title succeed on several levels, both in presenting essential patterns and demonstrating how these designs often work together in real Web solutions.

The end result is a text on software patterns that provides some of the best thinking on J2EE design today in a remarkably readable and engaging format. In all, this title will be absolutely required reading for anyone who lays claim to be an expert on today's J2EE platform. --Richard Dragan

Oracle 9i Java Programming: Solutions for Developers Using PL/SQL and Java

This is a book about putting Java to work in the Oracle database. It concentrates on real-world applications that developers can put to immediate use in their day-to-day jobs and, in addition, gives in-depth consideration to the question of when it is appropriate to use Java from a performance perspective (including benchmarks). The examples in the book clearly distinguish between situations where:

Java can provide functionality that PL/SQL cannot. We exploit Java's capabilities for accessing system resources outside the database - such as operating system commands and network sockets. We also make use of powerful Java Utilities for messaging and generating graphics. For example, we develop an application whereby a pie chart image is generated from a query, and then automatically distributed to interested parties (using JavaMail) Java can be used to smoothly complement the programming capability of PL/SQL. An example here would be the use of PL/SQL packages to handle complex data types and schedule tasks in the database, in conjunction with the file transfer (FTP) or compression capabilities of Java.

The book is divided into four sections:

Section I is a fast-paced Java tutorial for PL/SQL programmers
Section II covers database access with JDBC and SQLJ and shows how to smoothly and correctly convert between Java and native SQL data types
Section III is the real heart of the book, where what has been learned is applied to practical problem solving with Java and PL/SQL
Section IV takes a detailed look at performance issues. Having considered Java application tuning and SQL tuning separately, we take a detailed look behind the scenes of Java database access and try to illustrate how you should choose between Java and PL/SQL for database operations

Beginning Java Databases: JDBC, SQL, J2EE, EJB, JSP, XML

Java has evolved into a robust, high performance programming language that is well suited to a range of different environments, be it on a middle tier Application Server or a client browser. Regardless of the architecture of your application you are using, it will almost certainly need to make use of data that is stored in some form of database. Relational databases are the data store of choice in the vast majority of businesses, and have also evolved enormously over the recent years, into powerful and feature-rich data management systems.

This book aims to teach you how to use these two powerful technologies to build successful Java database applications. You will find out how relational databases work and how you can use them in your Java programs, through the JDBC interface. You will see how to apply your new skills in an enterprise environment and by the end will be building sophisticated web-enabled Java database applications that incorporate other technologies, such as XML.

This book covers:

Using the JDBC API to build database-driven Java applications
Introduction to new JDBC 3.0 features
SQL and relational database design
Object-relational mapping frameworks and techniques
Debugging your application and logging its activities
Applying Java and JDBC skills in a J2EE environment
Integrating XML into you Java database applications