TicketStumbler + Twisted
When some quirks started showing up in some of our code, I went looking for a replacement for some of it and found my way to Twisted. From the site:
Twisted is an event-driven networking engine written in Python
I started asking around in their IRC channels (#twisted and #twisted.web on Freenode) and it was brought to my attention that the portion of the framework I wanted to use was lacking quite a few features and was, in the words of a couple Twisted developers, “crap.” I was then faced with a decision: Did I use it anyway, making quick additions and changes where necessary for my uses, or did I take the time to really do it right and contribute lots of code back to the project?
Ultimately, I decided it would be worth it to help the project even if it did delay some additions around here for a little while. The central reason for this is quite simple: Open Source Software is REALLY important. Most of the websites flying through your internet tubes each day wouldn’t exist if it weren’t for high-quality, free, constantly-improving software. In fact, I can almost guarantee you wouldn’t be reading this right now without it.
From our servers to our website down to this very blog, most everything here at TicketStumbler is based on Open Source Software. This means two things: First, that we are very dependent on OSS, but more importantly that we’ve done a lot of “taking” without too much “giving” in return. Of course, this holds true for the vast, vast majority of sites out there, but we decided to do something about it (and if you have a website, you should too!) Of course, there are other ways to contribute to Open Source projects. The main way being donations, as we’ve done with numerous projects including the awesome Django framework. However, the best method is probably by contributing code; people have argued that money may be useless to Open Source projects.
There were other reasons for this decision, though:
1. Everyone is so nice!
The first thing you’ll notice when visiting the Twisted IRC channels is how nice and helpful everyone is. There are a few regulars in the channels who happen to be long-time developers of Twisted and if I didn’t know better I’d think their sole purpose in life is to hang around IRC answering questions and being ridiculously helpful to everyone who comes in. Like a cute girl you can’t possibly say “no” to, I couldn’t help but help! This isn’t an anomoly of Twisted, though; most Open Source projects succeed in large part because of the great communities that develop around them.
2. Open Source projects force best practices
I’ll share a secret with you: I never got on the Test Driven Development bandwagon. I didn’t really get it; I’m supposed to write tests for code I haven’t even written? Why don’t I just test it manually as I go along, it has to save time, right? After only a day attempting to adhere to the TDD requirement of Twisted development, I am nearly sold on the whole thing. There is something very comforting (and simple!) about running a single command and seeing if any of my code changes broke existing functionality or if it fails under certain circumstances.
If that weren’t enough, one of the awesome developers mentioned earlier even offered to help me learn the ways of TDD via a personal course his company sells — for free! On top of the perk of having access to great software I’ve been given the opportunity to get some incredibly useful training, just for doing my developer civic-duty of contributing back.
3. It feels good!
After submitting my first patch to the project I just felt good. It made me happy to give back to a project I’m planning to use, if even in a small way to start. When I think about the countless man-hours dedicated to writing, testing, fixing, and improving code I use each day it makes me glad to know that I didn’t only take and take.
—–
TicketStumbler makes the lives of event-goers easier whereas Open Source projects like Twisted make the lives of developers easier. This first project is one in what I hope will be a long list of contributions back to the software that keeps me from going crazy (or at least crazier). I’ll be writing code for Twisted for some time to come, but down the road I plan to give back to other projects, too. I’m thinking I owe a whole lot to Django, beyond the monetary contributions made by TicketStumbler Inc. and help provided in their IRC channel (#django on Freenode).
This is a call to action for all start-up developers out there: Set some time aside to contribute back to the projects that run your business. You’ll thank me later.
Mike Montano on 06 Sep 2008 at 11:50 pm #
Great work guys! You’re totally right about the #twisted channel on freenode — the twisted “gods”, as I call them, seem to be there night and day answering even the simplest of questions.