Random thoughts on life and software development.

Browsing Posts published by Peter White

Randall Schulz, Jordan Sterling, and David Wake gave this presentation, detailing how we scaled our test automation platform, at Silicon Valley Code Camp ’11.

Dave Duke and I gave this presentation at Silicon Valley Code Camp ’11.

This is the slide deck from an internal interactive “Tech Talk” I gave while introducing Spring to my employer at the time.

Well, it’s not exactly fifteen minutes but an interview I had with the Code Generation Network has just been published. There’s a lot of overlap with my last blog but that never found it’s way to java.blogs so this still might be new to some of you who’ve never considered using code generation with your J2EE projects – it’s easier than you might think!

It’s been two months since my last entry so I’ve been lagging on the blog. However, I’ve been busy as a bee and have learned quite a bit from my recent project experience…

For starters, let me say that I am a huge fan of Hibernate, XWork/WebWork2 and SiteMesh! IMHO, this combination allows you to create applications with a consistent look and feel, as well as a clean well-structured code base with a minimum amount of fuss. I’ll admit that WebWork2 is still a bit rough around the edges (hey, it’s beta – what do you expect?) but I think this is going to be a killer framework once it hits the release stage.

As for XDoclet, I believe it’s an excellent tool but I’ve stopped using it in favor of writing my own code generator. Why would I write my own code generator you may ask? For starters, I’ve gotten pretty comfortable with creating Hibernate mapping files and it makes more sense (to me, at least) to use my Hibernate mapping files as the meta data for my code generator and from there I can generate my domain objects, DAOs, WebWork2 Actions & xwork.xml file, JSPs, etc. My secondary motivation is that my work on Full Circle has halted during my contract work due to the long hours and I feel that taking the time to write a code generator that will build a skeletal application from my Hibernate mapping files would be a lot more efficient and productive than hammering out one module at a time. Lastly, I finally got around to reading Code Generation in Action and it’s really turned me on to the subject. The code generators in the book are based on Ruby, REXML and ERb which are easy enough to follow for a non-Ruby programmer. However, I found some of Ruby’s and ERb’s syntax to be a bit more cluttered than I’d prefer so I looked into a Python-based solution (I’ve been looking for an excuse to learn Python) and ran across Cheetah which has been incredibly easy to use. I’ve only been using Python and Cheetah for the last couple of nights but my code generator is already generating my domain objects, DAOs & WebWork2 action classes so I can’t imagine this being any easier.

As for the work front, I just wrapped up a major contract project so I’m taking some time off to spend with the family for the holidays, to finish my code generator and kick-start Full Circle, and to look for something more permanent before I accept my next contract project. If I’m lucky, I’ll find something that allows me to continue working with these great technologies or any of the various technologies on my to-do/wish list. 🙂

Well, I meant to post this earlier last week but my family was getting ready for a trip to India while I was gearing up for a new project. Between my wife and 2 year old daughter wanting me to see everything they packed for a three week trip, I didn’t get much done last week… This weekend, however, has been a different story. 🙂

I’m not at liberty to discuss the application domain aside from the fact that it’s a financial services application demo. The exciting part about it, for me, is that it’s a fairly complex application and I’m the project lead so I got to choose the technologies for the project. I’ve been “playing” with Hibernate, XDoclet, WebWork2 and SiteMesh since my last project so I’m actually getting paid to dive deeper into these tools. 🙂 Up to this point, most of my time has been spent modeling the data-tier and using Ant with XDoclet to generate all of the Hibernate mapping files and database schema. I should be back at the web-tier and using the XWork validation framework for the first time in the next couple of days so it should be a fun week!