Saturday, June 25, 2005
Contributing to sipXconfig is one of the most exciting things in my career as a software developer. I blame “open source resonance” for that. We programmers are a lazy bunch. It’s a good thing too. I did work in the past with coders that were not lazy and could write code faster than I could delete it – what a pain!
And, since we are lazy, we hate doing stuff over and over again. This is what computers are for. People are for pressing buttons and enjoying a nice glass of their favorite non-alcoholic beverage on quiet evenings on the shore of Lake Geneva (not that I ever enjoyed a quiet evening there, but I suppose every lake deserves a mention in our blog from time to time).
Here’s the impressive list of libraries and tools that sipXconfig is benefiting from. I cannot possibly enumerate all, but I’ll try:
The “big three”:
- Spring – a new plumbing of sipXconfig – declarative dependency manager that behind the scenes performs a magical incantations on our humble Java objects
- Hibernate – crosses the digital divide between object universe of Java and table universe of databases
- Tapestry – encapsulates weird WEB protocols and technologies into cute reusable components meaning there is a chance we will finally have a consistent UI and will be able to forget about copy and paste option in our text editors
Eclipse – our development environment with refactoring support, amazing code browsing capabilities, supernatural auto-completion, and last but not least a satisfied green bar of all test passed. Everyday is discovery, every versions brings a new set of goodies meaning that more can be done in less keystrokes. Suddenly your typing skills are less important than the problem you are attempting to solve.
The risk enablers:
JUnit and family – DBUnit, XMLUnit, WebUnit, HTTPUnit etc. - these guys are responsible for the fact that we can add features and fix bugs till the very late in the release cycle, they ensure that 95% of our nightly builds are actually quite usable, they empower bold architecture changes, they ban code areas that no-one wants to touch because the last person who understood how they worked died in the Great Fire of London; they improve our design, and - if we do stupid things - they leave light out there so that we know how to safely back off
Also all jakarta libraries, checkstyle, dom4j, xerces, digester, postgres, jetty, tomcat, cglib, ognl, subversion: none posible without open source. Open source friendly bug track and test coverage tool (JIRA and clover) deserve an honorable mention too.
So we are indebted: and that’s why we post from time on Tapestry or Spring list showing others how we solved some problems. (Well that, and the fact that we are terrible show-offs and attention seekers.)
And that’s why we hope that more and more people will want to contribute to sipXconfig – filing bugs, implementing new phones or gateways, writing wiki notes. We want to get to the point the resonance works for us too. And when we get there, you’ll be able to manage your toaster with sipXconfig. That reminds me of something. I wonder what is this strange smell from the kitchen....