Speakers
- Dan Allen
- Aaron Bedra
- Tim Berglund
- Rohit Bhardwaj
- David Bock
- Stevie Borne
- Jeff Brown
- James Carr
- Scott Davis
- Jeremy Deane
- Keith Donald
- Michael Easter
- Robert Fischer
- Neal Ford
- Brian Gilstrap
- Andrew Glover
- Brian Goetz
- Stuart Halloway
- David Hussman
- Mark Johnson
- Dave Klein
- Scott Leberknight
- Tiffany Lentz
- Howard Lewis Ship
- Chris Maki
- Matthew McCullough
- Alex Miller
- Ted Neward
- Michael Nygard
- Pratik Patel
- Mark Richards
- Brian Sam-Bodden
- Srivaths Sankaran
- Nathaniel Schutta
- Aleksandar Seovic
- Ken Sipe
- Brian Sletten
- Matt Stine
- Venkat Subramaniam
- Burr Sutter
- Vladimir Vivien
- Mark Volkmann
- Craig Walls
- Richard Worth
John Carnell
Manager - Platform Engineering w/Thrivent Financial
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
The Art of Producing Software: Applying Lean Concepts to Transform Your Software Development Organization
Waste is an insidious beast that drains the productivity of development teams and the organizations they work in. Many organizations are now realizing that by turning their gaze inward they can streamline their overall development processes, deliver higher quality products faster and save significant amounts of money.
This talk will look at how to use Lean and Toyota Production Systems manufacturing techniques to streamline how your team builds software.
Waste is an insidious beast that drains the productivity of development teams and the organizations they work in. Many organizations are now realizing that by turning their gaze inward they can streamline their overall development processes, deliver higher quality products faster and save significant amounts of money.
In this talk we will look at the "Lean" techniques first developed by companies like Toyota and how they can be applied to common software development practices. We will walk through such concepts as identifying the different types of waste you might encounter in a software development effort, using Value Stream Mapping (VSM) to help measure the impact of that waste and different techniques you can use to eliminate that waste.
You will see a real-world case study of how the Lean methodology helped one company realize a significant costs savings. By the time the talk is done you will be able to take the lessons learned and use them to build real-world, hard dollar business cases that you can show to your upper management.
Audience: This talk is geared towards new and existing technical leaders. This talk will include very little technology and non-leads might find this talk not directly useful to their day-to-day work.
It's All About Leadership
The role of the technical lead has radically changed over the last several years. It used to be the technical lead was about being the senior developer on a team that made sure the code was getting written. You were the individual who knew the most about the technology stack you wrote the applications with.
This talk will look at the ten most common traits needed for leadership and will look at how they can be applied to yourself or other technical leads in your team.
The role of the technical lead has radically changed over the last several years. It used to be the technical lead was about being the senior developer on a team that made sure the code was getting written. You were the individual who knew the most about the technology stack you wrote the applications with.
However, as projects have gotten larger, technical leads now have to deal with such things as offshore development teams, more complex projects and shorter delivery times, the role of a technical lead has now shifted from being less about technology and more about leadership. Many of us have been on projects where the technical leadership was the critical inflection point between success and failure.
This talk will look at the ten most common traits needed for leadership and will look at how they can be applied to yourself or other technical leads in your team. The talk will cover such topics as communication, planning and working through people problems. We will also talk about how you as a technical leader can remain relevant in our fast-paced field.
Audience: This talk is geared towards new and existing technical leaders. This talk will include very little technology and non-leads might find this talk not directly useful to their day-to-day work.
Racing with Rhinos: Using Springs and Grails to Achieve Competitive Velocity
One of the holy grails of an enterprise architecture team is to provide a light-weight development framework that can be used to quickly build first-to-market applications while still providing a migration path for these applications to a more robust corporate enterprise stack. (e.g. J2EE).
This talk will look at how you can leverage Grails, Groovy and Spring to build applications that can start small and grow to integrate with your enterprise systems.
One of the holy grails of an enterprise architecture team is to provide a light-weight development framework that can be used to quickly build first-to-market applications while still providing a migration path for these applications to a more robust corporate enterprise stack. (e.g. J2EE).
Until recently, this type of development stack has been unattainable. However, with the explosion of development frameworks like Ruby on Rails and Grails this type of flexibility is within reach of any development organization.
This talk will look at how you can leverage Grails, Groovy and Spring to build applications that can start small and grow to integrate with your enterprise systems. Some of the topics covered include: key design patterns that should be leveraged to enable flexibility in Grails, how to use Spring within Grails to provide a layer of abstraction to move to a full J2EE stack and using Web Services (SOAP and REST) to provide easy access to corporate data sources.
Limber Groovy: Making Your Code More Flexible with Groovy
Groovy is an extremely powerful and dynamic scripting language that can allow development teams to build extreme flexibility into their applications. However, leveraging this flexibility in Groovy requires developers to break many of the paradigms they have built over the years surrounding such things as object-oriented design and programming with static languages.
This talk will start with the basics by showing Java developers how to script enable their applications using Groovy, functional programming techniques and exploring the ins and outs of the Groovy Meta-Object Programming (MOP) model.
Groovy is an extremely powerful and dynamic scripting language that can allow development teams to build extreme flexibility into their applications. However, leveraging this flexibility in Groovy requires developers to break many of the paradigms they have built over the years surrounding such things as object-oriented design and programming with static languages.
This talk will start with the basics by first showing Java developers how to script enable their applications using Groovy. The talk topics will then progress into more intermediate subjects like how to use functional programming techniques to build flexibility in your code. We will specifically be looking at how the prudent use of things like closures can eliminate some of the more common design patterns like the Template Method and Visitor patterns.
Finally, we will explore the ins and outs of the Groovy Meta-Object Programming (MOP) model.
Books
by John Carnell and Jeff Linwood
-
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.
by Matjaz Juric, Nadia Nashi, Craig Berry, Meeraj Kunnumpurath, John Carnell, and Sasha Romanosky
-
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
by Bjarki Holm, John Carnell, Tomas Stubbs, Poornachandra Sarang, Kevin Mukhar, Sant Singh, Jaeda Goodman, Ben Marcotte, Mauricio Naranjo, Anand Raj, and Mark Piermanini
-
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
by Kevin Mukhar, Todd Lauinger, and John Carnell
-
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