“Open Source Software” isn’t about source code
While thinking about the slides for my upcoming talk at Mongo Boston, I had an interesting thought. It’s nothing earth shattering, but I wanted to write it down and see where it took me.
Lets take a look at the open source ecosystem surrounding MongoDB, and for this example we’ll focus on the Ruby space and some of the stuff I’ve played with at Punchbowl. You have MongoDB itself, which is written in C++. There’s MongoMapper, an ORM. There’s Rack-GridFS, a Rack middleware for directly accessing files stored in GridFS. There’s OpenIDAuthentication, a library for doing OpenID auth in MongoDB. There’s Roachclip, a plugin I wrote for MongoMapper which combines the fun of Thoughtbot’s Paperclip image processing with the ability to store all the assets in GridFS through Joint. There are literally hundreds of open source software projects out there that anyone can pick up and use in a hobby or in a business.
Some of this software has documentation. Some doesn’t. It’s all open source, though. So you can download it, crack it open in a text editor, and just go figure it out. See a problem or notice a lack in functionality? Most of this software is using version control (hi Github); just fork and fix it. What used to be:
Maybe your contributions will get pulled into the mainline, maybe your version will remain a fork and start to get used by others, or maybe nobody else will ever use it but you.
Such is the life of open source source code. In my opinion, it’s pretty damn cool. But this coolness is NOTHING compared to what open source is really about.
What I’ve started to realize over the past year is that “Open Source Software” isn’t about the last part of the Github URI: the repository name. Open Source Software is really about the second to last part: The Author.
Open Source Software is about the people. MongoDB isn’t just a C++ repository; it’s Kristina, Mike, Kyle, Dwight & Elliot (among others). MongoMapper, OpenIDAuthentication, Rack-GridFS, Roachclip & Paperclip aren’t just Ruby libraries; they are John Nunemaker, Brandon Keepers, Blake Carlson, yours truly & Jon Yurek (again, among others).
There is obviously value in the code: it does stuff. The code can also teach you stuff. The code can show you how to properly build shareable, modular and properly tested pieces of software. The code can teach you the black arts of meta-programming and the Ruby object model.
But I assure you that no matter how much awesomeness is in the code, there is at least 7 times more awesomeness in the brains of the people who built it. Those people who first had a need for it. The people who struggled through the bugs. The people who had a dozen false starts that might not get reflected by the current HEAD. That experience is PRICELESS. And it’s all available if you just ask.
So, ask. Say hi.
Every single one of those people, and countless more, are “Open Source”. You can get at them on mailing lists, IRC, and Github Issues. You can email them directly or tweet at them. Most of the time, they’ll answer (and don’t get pissed if they don’t answer — sometimes people get busy).
So if you are using Open Source Software just for the source code, you’re missing out. Use these people. Ask questions. Get a conversation going. That’s the real meaning of Open Source Software.
Check out my jockstrap
I’ve been working on a lot of gems lately. Got sick of writing the same stuff over, so I put it all in a repo up on github called Jockstrap (http://github.com/ryana/jockstrap). Use it if you want. Let me know if you got other useful stuff to throw in.
PS. Decided against the obvious opening image (NSFW) on this one. So instead you get a picture I took at a bar with my brand new iPhone4 this weekend. It’s incredible, by the way… too bad Tumblr keeps showing it upside down when I upload.
Replacing github gems w/ gemcutter is a mistake
It’s been two weeks since github dropped their gem support for gemcutter, and it’s been one annoyance after another (gems being out of date and not being able to fork, mostly). I see no value in the separation of code and gem hosting (and I’ve been kinda surprised at the bandwagon gathering over how great this is).
So no offense @qrush — gemcutter is cool, and has it’s place —, but I’m asking someone to try and put me in place with respect to why this was a good idea. Because until someone does, I’m going to jump on the anti-bandwagon: @github, please bring back gem building/hosting.