Speakers
- Ben Alex
- Michael Alford
- Andres Almiray
- Scott Andrews
- Alex Antonov
- Alef Arendsen
- Mattias Arthursson
- Shay Banon
- Jean Barmash
- Antranig Basman
- Chris Beams
- Burt Beckwith
- Peter Bell
- Tim Berglund
- Imad Bernoussi
- Jonas Boner
- Jon Brisbin
- Jeff Brown
- Kent Brown
- Dennis Callaghan
- Isaac Christoffersen
- Andy Clement
- Christophe Coenraets
- Adrian Colyer
- Michael Cote
- Hamlet D'Arcy
- Joshua Davis
- Scott Davis
- Hans Dockter
- Keith Donald
- Christian Dupuis
- Justin Edelson
- Mike Esler
- Mike Evans
- Danno Ferrin
- Robert Fischer
- Adam Fitzgerald
- Andrew Glover
- Jeremy Grelle
- Filip Hanik
- Colin Harrington
- Rob Harrop
- Ryan Heaton
- Jennifer Hickey
- Pete Higgins
- Hal Hildebrand
- Al Hilwa
- Juergen Hoeller
- Jim Jagielski
- Steve Jin
- Rod Johnson
- Mike Keith
- Jack Kennedy
- Mik Kersten
- Paul King
- Dave Klein
- Mark Kralj-Taylor
- Guillaume LaForge
- Costin Leau
- Scott Leberknight
- Peter Ledbrook
- Charles Lee
- John Lewis
- Patrick Linskey
- Martin Lippert
- Mat Lowery
- Wayne Lund
- Randy MacBlane
- Andi Mann
- Maudrit Martinez
- Ross Mason
- Tom McCuch
- Richard McDougall
- Sudhir Menon
- Marty Messer
- Russell Miles
- Jim Moore
- Ryan Morgan
- Justin Murray
- Billy Newport
- John Newton
- Peter Niederwieser
- Glyn Normington
- Brian Oliver
- Pratik Patel
- Prasad Pimplaskar
- Mark Pollack
- Alexandru Popescu
- Arjen Poutsma
- Yan Pujante
- Cameron Purdy
- Jags Ramnarayan
- Mark Richards
- Thomas Risberg
- Jared Rodriguez
- John Rymer
- Vipul Savjani
- Stefan Schmidt
- Mark Schwartz
- Nati Shalom
- Ken Sipe
- Brian Sletten
- Javier Soltero
- Randy Stafford
- Mike Stenhouse
- Matt Stine
- Rossen Stoyanchev
- Venkat Subramaniam
- Dave Syer
- Matthew Taylor
- Mark Thomas
- Greg Turnquist
- Thomas Van de Velde
- Erwin Vervaet
- Scott Vlaminck
- Alexander von Zitzewitz
- Chris Wall
- Craig Walls
- Lucas Ward
- Kevin Whinnery
- James Williams
- David Winterfeldt
- Chip Witt
- Eberhard Wolff
- Aaron Zeckoski
- Oleg Zhurakousky
- Ari Zilka
- Kris Zyp
Pratik Patel
Enterprise Architect
Pratik's specialty is in large-scale Java applications for mission-critical use. He has designed and built enterprise applications in the retail, health care, financial services, and telecoms sectors. Pratik holds a master's in Biomedical Engineering from UNC, has worked in places such as New York, London, and Hong Kong, and currently lives in Atlanta, GA.
Blog
Why developers agree more often than disagree
Posted Monday, April 19, 2010
Recently I've seen some interesting blog posts from attendees of No Fluff Just Stuff conferences (nfjs). These posts essentially say this: the speakers agree too much with each other. I'd like to more »Solution: FUTEX_WAIT hangs Java on Linux / Ubuntu in vmware or virtual box
Posted Sunday, January 24, 2010
Ok, I'm documenting this for those that hit this same problem. Is it taking a LONG time to run some Java app, making it seemingly hang? This happens when running Ubuntu more »Diggin' Clojure and Compojure
Posted Wednesday, January 13, 2010
Over the xmas holidays I started learning Clojure. I'd been putting it off for a long time (since I saw Stuart Halloway present on it 9 months ago) so I read carefully through this lengthy article on Clojure more »Grails was so electric, it brought down the power grid
Posted Wednesday, November 18, 2009
Last nite's AJUG started off great. Burr, our venerable AJUG leader, started with a discussion on what stuff people wanted to see covered in AJUG in 2010. more »Get RAD with Grails @ AJUG Nov 17
Posted Friday, November 13, 2009
I'm pleased to be presenting a session on Grails at the Atlanta Java User's Group (AJUG) next week. See details hereAJUG This is an intro level session, but I'm hoping people ask some advanced questions so I can more »Presentations
Groovy and Grails in the Enterprise
Dynamic languages running on the Java Virtual Machine are starting to gain traction for software development, specifically for large enterprise projects. This session explores obstacles to introducing dynamic languages into the enterprise, example applica more »Virtualization for development
We've all heard about virtualization for deploying applications. How about leveraging virtualization for development? In this session, we'll look at some time saving tips and build a virtual VM for development and testing. more »Enterprise JPA & Spring 3.0 - Tips and Tricks for JEE Persistence
As with many technologies, the basics are easy. The hard part comes when the developer needs to do sophisticated integration, development, and testing as part of an enterprise application. A large enterprise application requires the developer to think of more »There's a Plugin for that!
The objective of this session is to give the attendee a survey of the many useful plugins for the Grails platform. The presenter will also give his top ten list of Grails plugins, all in an entertaining style. We'll do deep dives into the internal working more »Enterprise Spring JMS
Spring provides a number of nice utilities for developing with JMS. These libraries are low-level, giving you total control in code. However, with this great power you must carefully think about how you design your application. more »Dynamic languages running on the Java Virtual Machine are starting to gain traction for software development, specifically for large enterprise projects. This session explores obstacles to introducing dynamic languages into the enterprise, example applications that can ease the way, and issues surrounding integrating a dynamic language to Java projects. Using several code examples that demonstrate the power of using a dynamic language like Jruby or Groovy, attendees will gain insight into how dynamic languages are making in-roads to the enterprise. This session focuses on non-GUI related usages – whereas most people think of dynamic languages for Web development. The target audience for this session is enterprise developers and enterprise architects.
Dynamic Languages for the JVM for the enterprise Why even bother using a dynamic language when Java works for me? When's the right time to use a dynamic language? Where's the right place to start using a dynamic language? Obstacles you'll face: political, developer training, integration Aren't dynamic languages just good for Web stuff? Examples of dynamic languages in the enterprise Code demo: sophisticated scripting on the JVM – building integrating with databases and messaging (JMS)
We've all heard about virtualization for deploying applications. How about leveraging virtualization for development? In this session, we'll look at some time saving tips and build a virtual VM for development and testing.
Developer can make creative use of virtualization software like VMWare for development. In this session, we'll discuss how to create a virtual development environment and the benefits of doing so. We'll also look at several great ways to use virtualization for other development and testing tasks. Driven by demos and live usage of virtualization, the attendee will gain insight into virtualization and how it can be applied to make development tasks easier.
As with many technologies, the basics are easy. The hard part comes when the developer needs to do sophisticated integration, development, and testing as part of an enterprise application. A large enterprise application requires the developer to think of issues that affect the development, scalability and robustness of the application. This presentation will cover the advanced topics described below with a focus on the new persistence features in Spring 3.0 and JPA 2.0.
A large enterprise application often will have several sub-projects that each contain their own JPA persistence unit. This opens up a number of questions around how to organize the persistence units and how the code between sub-projects should interoperate. Developers will gain insight into these issues and will see a couple of solutions using live code examples.
Many enterprise applications require integration with an application server's JTA mechanism. JTA integration allows for JPA components to work with container managed transactions and distributed transactions. A typical usage scenario for JPA & JTA is this: read from a database using JPA, perform some business logic, put a message on a queue, write to the database (again using JPA). A JTA transaction allows you to ensure that the entire set of operations is committed or a rollback is performed. In this presentation, the developer will understand the limitations and configuration of using JTA and JPA together ? primarily through real code examples.
Once unit tests are written, developers often gloss over doing fine-grained integration testing just for their persistence layer. Integration testing with JPA means simply one thing: running your JPA components against your target database, for example, Oracle. Overlooking this aspect leads to problems being discovered later in the test cycle (UAT for example) and makes it more difficult to find and fix bugs. This presentation will use live code examples to explain a strategy for getting integration testing for free by reusing unit tests.
Using optimistic locking versus pessimistic locking seems clear cut to most developers. However, a full understanding of the issues with using pessimistic, or datastore, locking is required before making this decision. Developers will get information in the trade offs when using strategy or the other, and how these strategies can be used together with the same persistence unit.
The objective of this session is to give the attendee a survey of the many useful plugins for the Grails platform. The presenter will also give his top ten list of Grails plugins, all in an entertaining style. We'll do deep dives into the internal working of these Grails plugins so you can understand and troubleshoot Grails plugins effectively. This session is also valuable for those looking to develop plugins - the attendee will gain insight into the many techniques used to integrate plugins into the Grails framework.
We'll look at the presenter's favourite Grails plugins in tv-show style count-down. This will help the attendee learn about the most used and most useful plugins. The attendees are also encouraged to share their experiences with plugins.
Spring provides a number of nice utilities for developing with JMS. These libraries are low-level, giving you total control in code. However, with this great power you must carefully think about how you design your application. This session covers tips and tricks for working with Spring and JMS for large scale applications.
In this session we'll do a review of the JMS capabilities of the Spring framework. It is expected that the attendee will have basic Spring and basic JMS knowledge. We'll look at code for reading and publishing to JMS. The focus of this session is the usage of Spring in a high throughput environment - hence we'll spend time discussing connection caching, pooling, and reconnection. We'll also look at other libraries that can help you do more advanced messaging than the low-level tools in the base Spring framework.
Books
by Pratik Patel and Karl Moss
- Java Database Programming with JDBC by Pratik Patel and Karl Moss is an updated edition of the authors' guide to the Java Database Connectivity (JDBC) standard for database programming under Java. While the original edition was perhaps geared more to those developers who needed to write their own JDBC database drivers, a fairly arduous task, this new edition provides more background information on database connectivity issues in Java and so will be even more useful to the casual or intermediate programmer. After a general introduction to JDBC and Structured Query Language (SQL), useful even to beginning programmers, the authors start by building a simple database-aware applet. New chapters on "servlets," Java components that run on the server-side and manage database operations, as well as a general discussion of middleware technologies are particularly good. Database access for JavaBean components (from Sun Microsystems JDK 1.1) is also discussed, including working code for two database-aware beans. This book also includes a quick introduction to the Java language (which will only be helpful if you already know C/C++), a detailed reference for the JDBC API, and a working example of a text-based JDBC driver. Though this book is still oriented toward the JDBC driver developer, the authors now provide enough general discussion of JDBC architectural issues to make it worthwhile to any programmer who needs to ramp up on what JDBC is and what capabilities it offers.
by Pratik Patel and Karl Moss
- Java Database Programming with JDBC by Pratik Patel and Karl Moss is an updated edition of the authors' guide to the Java Database Connectivity (JDBC) standard for database programming under Java. While the original edition was perhaps geared more to those developers who needed to write their own JDBC database drivers, a fairly arduous task, this new edition provides more background information on database connectivity issues in Java and so will be even more useful to the casual or intermediate programmer. After a general introduction to JDBC and Structured Query Language (SQL), useful even to beginning programmers, the authors start by building a simple database-aware applet. New chapters on "servlets," Java components that run on the server-side and manage database operations, as well as a general discussion of middleware technologies are particularly good. Database access for JavaBean components (from Sun Microsystems JDK 1.1) is also discussed, including working code for two database-aware beans. This book also includes a quick introduction to the Java language (which will only be helpful if you already know C/C++), a detailed reference for the JDBC API, and a working example of a text-based JDBC driver. Though this book is still oriented toward the JDBC driver developer, the authors now provide enough general discussion of JDBC architectural issues to make it worthwhile to any programmer who needs to ramp up on what JDBC is and what capabilities it offers.
by Pratik R. Patel, Alan D. Hudson, and Donald A. Ball
- Enables readers to master the Java programming language for internet applications while expanding the scope of online development, and the accompanying CD contains powerful sample applets and a copy of Netscape Navigator. Original. (Intermediate).