"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
cowtowncoder.com -- 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).