Saturday, February 8th, 2003
I recently got some code from an old friend / coworker of mine. It’s a project that he’d been working on outside of work, still not ready for the prime time and as yet, the project didnt even have a name. I know he’d been working on it a while and I was fairly excited about seeing the results. Anyone that knows me knows that I like to build software from its source, rather than use something pre-built. I also dont want to fight with something to make it work either! In the case of my friend’s project he didnt have a make file, or a build.xml or anything. First hurdle: how was I going to build the code and try it out?
It didnt take long to have an ant build running. I have a standard build.xml file that does all of the basic compile / run / clean / distribute kind of steps that all I need to is edit properties specific to the project at hand. This build file has evolved from one project to the next. Its simple, does what I want, and takes me about 5 minutes to bring a new project up to speed with a clean build environment if I need it. Plus, it gives other people a single point of entry if they want to look at my source and build a working application. I highly reccommend creating a single automated build script!
Building the code was interesting, thanks to JDK 1.4 and 1.3.1 differences. He’s using JDK 1.4. I think it took about an hour to spin around the code commenting out the pieces that broke on my computer. One positive thing I will say about his code is that he’s isolated most of those 1.3.1 / 1.4 differences in a single file. All I need to do is find out how I can code a work around and swap that file out. I’m thinking that there must be a way, through dynamic class loading, to do this. I’ll post it later if I come up with a plan.
Getting the right batik libraries was another bump in the road to seeing his application running. This was the feature that he has most been proud of: the application could display text, HTML and SVG images. I want to try runnning the batik code on my machine: folks in work have commented that it is memory hungry. Anyone have that experience?
The final experience in the application was pretty much what I expected though there was a feeling of being let down. I know he’d worked hard on it and poured himself into the project. What I was seeing didnt seem to reflect the amount of effort somehow. I know his output on our team was higher than this when we worked together. I found out what happened when I took a look at the code and I realized that my own software design paradigm had shifted over the last six months. He’d complained to me that he felt the code was hard to follow and I agree having seen it. The problem is how to put into words what I saw?

