In David Brin's Kiln People, if you needed to be in multiple places at the same time you could simply send copies of yourself and then "inload" their memories. At Java in Action I definitely could have used a ditto or two. I quite often wanted to go to at least two of the tracks and sometimes all three.
Note: Most session slides are available from TheServerSide. Justin Gehtland's Ajax slides can be downloaded from Relevance.
On Wednesday, I went to Cameron Purdy's Building High Availability and Scalable Performance into J2EE Applications, Ramnivas Laddad's Aspect-oriented Programming: Myths and Realities (slides) and Keith Donald's Building an Enterprise Application with Spring (slides). All three talks were pretty good. I also had some good conversations during the breaks. Interesting tidbits from wednesday included:
On thursday, I went to Justin Gehtland's Ajax: Learn How to Develop Next Generation Rich Web Applications (slides, demo code), Kito Mann's Architecting JavaServer Faces Applications, Doug Clarke's High Performance Persistence, and Chris Pearson's Practical JMS. All of these talks were good but Justin's talk on Ajax was excellent and made the whole trip worthwhile. The best part was the discussion of the Javascript libraries such as Prototype and Scriptaculous. I learned alot about Ajax that I've been able to apply to current projects. I also enjoyed Kito's talk on JSF and plan to spend more time looking at that framework.
Friday started off with an interesting talk by Matt Raible: Comparing Java Web Frameworks: JSF, Struts, Spring, Tapestry and WebWork . The live coding didn't go as well as it should have but overall it was a really informative talk. I think Matt deserves a medal for trying to code with five different web frameworks on stage. Notable tidbits include:
Richard Steele gave an interesting talk on using AspectJ to inject faults (slides) into programs in order to improve the code coverage of the tests, e.g. use advice to throw an exception when a particular method is called. If you have nicely structured application that uses dependency injection then you can do a lot of this kind of testing with mock objects. But if your application isn't that well structured or you want to simulate faults during integration testing then its worthwhile considering using AOP.
Matt Raible gave another good presentation on Developing Next Generation Web Applications with Ajax in Spring . My memory of that talk is a little hazy but I think he talked about a couple of Ajax frameworks including DWR, which let's you make remote calls to Java objects from JavaScript and is integrated with Spring, and DHTMLHistory, which allows Ajax applications to work with the back button.
The final presentation was Clinton Begin talking about Dealing with Enterprise Database Challenges In an Object Oriented Application (slides) . As you might expect, the emphasis was on using iBATIS to solve database access problems. iBATIS is certainly the best way to execute SQL statements directly if you cannot use an object/relational mapping framework (Hibernate/JDO). But, the trick is to know when to use ORM, which is a lot more productive, and when to use SQL via iBATIS.
Overall, it was a great conference. Lots of interesting conversations and a lot of really useful information. I hope to go again next year.