Having worked for a number of different development shops on a number of different applications, one thing stands out: It gets a bit old doing the same thing repeatedly!
Usually, at least IMHO, software systems consists of some percentage (say ~30%) that is domain specific, and where the real value exists. The rest of the software system (~70%) consists of frameworks, utilities, and other code that is there to present, support, and facilitate the critical, domain specific portion (~30%).
Obviously, the problem of "doing the same thing repeatedly", does not lie with the domain specific portion (~30%), as this code is usually unique to the domain! No the problem, lies with the code that makes up the rest of the system (the ~70%)! This other code seems to be more or less the same over and over again. Why do we waste so much time rebuilding the same code over and over again?
Well, partly this is due to new languages. Partly it is due to the latest silver bullets (such as OO, EJB, AOP, etc...). But, IMO, a large part is due to Software Licenses. Either you can't get to the source code (to determine if it is any good, or at least to track down bugs), OR you can get to the source code, but the Software License is too restrictive.
I am in the camp that thinks that Open Source is the way most software should exist (at least the aforementioned ~70% portion that is common), but I am also of the opinion that the GPL's viral nature is too restrictive. Note: While the LGPL would seem to be acceptable, there are legitimate situations (such as the need to create monolithic binaries) where the runtime linking restriction of the LGPL gets in the way.
For these reasons, and to preserve my own sanity by hopefully NOT recreating ALL of that ~70% over and over again, I have decides to create new versions of chunks of that ~70% and release them as Open Source by placing them in the Public Domain.
There is a rumor that in our litigious society, that it is not even safe to give away anything. To that end, each source code file should start with a hopefully valid disclaimer (along the lines of the SAX license). I urge anyone who chooses to utilize this code to leave this disclaimer intact.
Of course, I would appreciate any feedback, bug discoveries, bug fixes, or other contributions.
Club - Midp: For 'equitable' sharing of responsibilities.
LifeEvent - Midp: For recording 'events' in your life.
Template Filler - Programmatic Text Substitution.
Version 1.2 - Tests, and JavaDoc.
SQL Where Clause Support, modeled after the expression stuff in TopLink.
Version 1.03 - Tests, and JavaDoc.
Simple Peer To Peer Chat programs.
Version 0.03 - Works, but No Tests or JavaDoc.