George Ou posted a recent blog post about a Cheap Firewall or PBX appliance for $93; while I’m not sure the George realized it,his was the post that knocked my first Blog Entry here at Geekend off the most recent post spot. That’s not a big deal, but the actual content of the Blog entry George wrote was quite ironic because of its subject, and the fact that it replaced me, of all people. You see, George was talking about buying his el cheapo computer to run as an IPCop/CopFilter box. And once upon a time, I was involved with the development teams for SmoothWall and IPCop (which forked from SmoothWall), while my Geek Goddess wife, Rebecca, is the World Wide Translation Coordinator for IPCop even now (and someday, in some of these posts, I’ll explain why she truly is a Geek Goddess; you’ve already seen how geeky our teenage son is in that first post.)
Why am I writing then? Because it reminded me of some of the good times in those development teams. While today, some of those folks are hardly on speaking terms with each other, and some have moved on, or even dropped off the face of the earth, there were good people working on those projects. Even more, there were some really good ideas in those people: sometimes workable, sometimes not, sometimes useful, sometimes not. But for brief periods, in both cases, all of the developers and contributors were important. I believe that even today, the development teams take pride in their people even more than the already excellent software they write.
However, like everything else in life, a development team can be sucked dry at times, or become broken when a piece is not taken care of or maintained properly. In the two cases, there were distinctly different reasons why I eventually left active work with them.
With SmoothWall, it ultimately came down to the fact that it was impossible to support the development effort without a stable source of funding for the effort. Some members of the SmoothWall team went out and attempted to develop a revenue stream to provide some support for those who were doing development. But when money became involved, it ultimately hurt the team, even as it may have potentially saved the project itself. After all, a commercial project by definition could not be the wide open development environment that SmoothWall started with, and some of the contributors needed. Good ideas, even a few great ideas, were left “on the table” as some of the developers had to be put off to try to build a stable commercial project; sometimes, it almost became arbitrary, with some developers being “In” and some “Out” of the development stream based on whether or not they were going to be working on the commercial release (similar issues, but on a different scale, have occasionally occurred in the Linux Kernel development; we were just those issues, writ small). It was inevitable that feelings would eventually be hurt, people would feel marginalized, and someone would eventually Fork the project, although it was still somewhat of a shock when it happened.
It didn’t help, of course, that by their nature, many people drawn to Open Source Development efforts like this are “Alpha Geeks”, the Geek equivalent of the traditional Alpha Male. The Alpha Geeks were each determined that there was only ONE way forward, their way, when in reality there were many viable ways forward. Both sides became polarized (we won’t make allusions to modern American Politics here) and both ended up being wrong (and right) about many different things. I didn’t leave SmoothWall with the fork initially (my wife and I had the impossible dream of bridging the middle, and helping bring the project back to one codebase). I still remember the conversation Rebecca and I had at dinner one night where we found “The Middle Course” that would have (potentially) reunited the two, and fund a full development stream for SmoothWall, of the effort of writing up our first Business proposal, and of giving it out to some of the folks involved on both sides. It might have even worked if personalities hadn’t gotten involved by that point. When it was pushed aside and rejected out of hand by both sides, we left, too.
IPCop and SmoothWall went their separate ways, sometimes even copying each other over the years, but both have been phenomenally successful regardless, perhaps even becoming better products than SmoothWall would have been if it had never forked, due to the rivalry that developed between the two teams that propelled each to try just a little harder to build a product just a little better.
In the case of IPCop, my status with the project was always much more tenuous. While I was never an “Official” team member (by my choice),I was asked to help develop code that went into the On-the-fly language localization code (the ability to change the language given on the system interface pages). Some of the protocols I developed for storing the language data are still the way the system works (and infact, I did a (small) part of the original effort on localization back for SmoothWall, as well, though log data display was my specialty for SmoothWall).
The bulk of my code has now been rewritten when the web interface was switched from Perl to Python, but the data files and the techniques used are still based at least partially on my work. It was a fairly open secret that I was the one who wrote the first Language Selection code for IPCop at the time; if you got sick of seeing the checkboxes for the various languages, now you know who to blame. But by the time I got to working with IPCop, some of my own enthusiasm for doing this kind of development was understandably burned out. My wife still pings me for ideas every once in a while, but other than that, I’ve regressed to being a loyal user, and (to an extent) living up in a small way to my old title of “Evangelist”.
With all that said, therefore, I’ll close with this: Are you using SmoothWall or IPCop? If not, then why the heck not? In this era of the Wild, Wild, Internet, you can’t be too protected on your home network. From a purely Geekend point of view, both of these are MUCH less than a full Geekend’s worth of work, but can save you MANY Geekends of worrying about the security of your network.