July 2008

On the Path to Camping 2.0

It feels so good when open-source is actually working. Especially when you’re the one contributing (not just sitting there and receiving patch after patch). Even better when you realize that your patches makes the project active again.

It’s been 21 months since the latest release of Camping. That’s a shame. Because it isn’t the reality. Camping has progressed slow, but sure since the release of 1.5. The problem is that there are no specific goals for 1.6, which leads to the “let’s just fix another bug first”-syndrome.

The project was about to halt. Everyone wanted 1.6, but _why was busy tying his shoes and even though he had given the project to the community no one dared to take the leadership. 1.6 remained as a wet dream for over-heated campers.

The mailing list was pretty dead when Jenna “Bluebie” Fox stumbled upon Camping. Her arrival made me re-discover the 4k microframework. But this time I didn’t care about creating apps, I wanted to see what was behind the 4 kilobytes.

Beneath the backpack

When you start looking inside Camping, you’ll discover that it consists of deep, black magic. Where else have you seen a method which generates anonymous classes intended to be inherited? Let me guess… No where?

That’s the best thing about Camping: You’ll learn so much by just looking at the source code. Even though you might not want to use any of these tricks in your own code, it sure has made me a better programmer.

The big question: What could I do to improve Camping?


Rack. Sometimes I mistake it for 42.

I think aside from Rack, camping 2.0 is all about polish… It changes all the little niggly annoying bits to be better, if not, perhaps, perfect.


Rack includes Rack::Request and Rack::Response. Camping handles all that kinda stuff by itself. What if we simply replace it with some calls to Rack?


But the project really came back to life when I started showing my work off, and everyone seemed to have some little annoyance or suggestion to make Camping better!

The Joy of Open Source

I’ve really enjoyed the development of Camping 2.0! I provided the starting point, and thanks to tremendous feedback from the whole community I think we have ended up with a solid release (when it eventually will be released). It would be completely, utterly wrong to state that I have done everything by myself.

Bluebie has been an important contributor; maybe not with code, but with thought-through criticism on every not-so-good-idea I’ve proposed. Zimbatm has committed some good code, and through the whole process _why has made sure everything works as expected.

Nobody’s perfect and it’s so much easier to contribute when you know that other people actually care about your code and take an interest in it.


Unfortunately, Camping 2.0 isn’t released yet. There’s not much left to do, _why just has to clean things up and make sure every single byte is needed. This might take some time; he wrote this over a week ago:

Why the Lucky Stiff: I have two things left: I need to figure out if I want to merge zimbatm’s Markaby patch. And I’d like to go through Rack a bit more myself and see if I can cut down the work we’re doing. Hopefully today or tomorrow, though!

If you can’t wait until he’s done, you can grab the source at GitHub. I’m also providing gems if you prefer that:

sudo gem install camping --source http://gems.judofyr.net/