Friday, February 08, 2008

Woodstox pre-history

"So How Did It All Start?"

As an author of a highly publicized software package, one often has to answer questions like above. That -- in addition to the fame, money and chicks -- is one of fringe benefits of being an uber-geek programmer doG.

But, ask you: how does that relate to me? Sadly, not in any way, shape or form. But I just thought I'll start with such a claim to grab your attention.

Anyway: the other day I started thinking about how I would answer such a question if anyone ever asked it. Interestingly, I am already having hard time remembering exactly when did Woodstox project start, as well as important milestones there have been. This despite the fact that it hasn't been a life-long hobby (although countless hours have been spent on it). What is curious here is just the difference between new projects, where you can usually remember details well ("see, I added that feature on tuesday, this other one on thursday, and that thing will be done... say, tomorrow"). But it doesn't take all that long to start losing track of history.

In Woodstox' case, I am lucky enough to have left a trail of mini update notes via crude Woodstox news section at Codehaus. That log points to mid-2005 being one of highlights, release of version 2.0 with its full DTD-validation (full albeit not fully compliant, as I learn during 3.0 development...). That is a starting point, at least, outlining more recent, and somewhat less active, development history (although, granted, 2.0 -> 3.0 development cycle may have burnt more time than either getting 1.0 or getting 2.0 out the door).

But there was obviously some history before 2.0 release. I am no Microsoft, and my versioning scheme does not skip Important Release Numbers like 1.0!

Ok, but what REALLY happened?

Now, while I do not keep diary, I happen to have something similar at my disposal. My old linux desktop file system still has a copy of the earliest Woodstox home page (which, back in the day, was hosted here at -- heck, I suspect I ordered the domain just to have a kewl domain for Woodstox, if my memory serves me), along with matching timestamps for downloadable files. So sequence of events, assuming timestamps are correct, is as follows:

  drwxr-xr-x  3 tatu tnt  4096 May 30  2004 0.7
  drwxr-xr-x  4 tatu tnt  4096 Jun 21  2004 0.8
  drwxr-xr-x  4 tatu tnt  4096 Aug 13  2004 0.8.8
  drwxr-xr-x  4 tatu tnt  4096 Aug 13  2004 0.9.0
  drwxr-xr-x  4 tatu tnt  4096 Aug 25  2004 0.9.1
  drwxr-xr-x  4 tatu tnt  4096 Oct 11  2004 1.0-final
  drwxr-xr-x  4 tatu tnt  4096 Oct 23  2004 1.0.1
  drwxr-xr-x  4 tatu tnt  4096 Nov 14  2004 1.0.2
  drwxrwxr-x  4 tatu tnt  4096 Mar  2  2005 1.0.3
  drwxrwxr-x  4 tatu tnt  4096 Mar 10  2005 1.0.4
  drwxrwxr-x  4 tatu tnt  4096 Mar 23  2005 1.0.5

So, given that I think version 0.5 must have been the first official release (ok ok, so my versioning scheme does have its quirks starting with "half versions"), which probably was cut somewhere in March 2004, Woodstox project could soon celebrate its 4th birthday. As such it has probably outlived commercial systems I have ever implemented...

Now, looking back in time is enlightening in many ways. Although exact release dates in this case are of historical curiosity value, if any, they can have surprisingly high indirect value: they can help one remember more important things that happened at around same time. For example, the thing that triggered my starting the project must have been the death of my-then-coolest project at Sun Microsystems (the [in]famous Voyager content management system!). Seeing it get killed due to politics, to be replaced by something more absurdly stupid than the Bad-News-powered rocket ship from the Hitchhiker's guide was just the kick in the balls I needed to spend less time at work, and focus on something cool outside working hours. That, and a very session by the Great Pragmatic Programmer mr. Dave Thomas, that I also listened to at about same time, explaining why one must have The Plan for skill development. Developing an xml parser may not seem like the optimal choice, but it "just seemed like a good idea at the time".

Woodstox project also was one of things that made it easier to stay at that job (although switching to a different team to avoid having to implement that idiotic replacement system) for almost a year, before I could move on to better things (despite having basically lost all my respect for my managers and company, not to mention motivation). And interviews to this Better Thing (which is still my job after this time) must have occured at almost exact day I released version 1.0! (or, rather, night after I flew back from Seattle). And, very very close to 9 months before birth of my younger daughter... :-)

Scary but true -- when it's raining, it's pouring. I better check timeline of Jackson and Aalto Xml Processor in a year or two. Or perhaps even my First Open Source project, JUG (Java Uuid Generator).

blog comments powered by Disqus

Sponsored By

Related Blogs

(by Author (topics))

Powered By

About me

  • I am known as Cowtowncoder
  • Contact me
Check my profile to learn more.