Rails Israel 2013: Rubygems, Bundler, and Production Is an Iceberg

jerusalem-tour(Jerusalem courtesy the inimitable @konstantinhaase)

Last week I went to Tel Aviv, Israel for the Rails Israel and DevConTLV conferences, where I gave three talks on new developments in the Ruby community. The first talk was about how Bundler took down Rubygems.org last year, what we did to fix it, and the lessons that we learned as a result.

I also shared useful but little-known features of Bundler. Bundler is a super-useful tool for installing and managing dependencies, but it has a bunch of features most people don't know about. You can use Bundler to boost your development productivity with commands like bundle gem, bundle open, and others. You can also use Bundler to make sure you run your app on the right version of ruby, search through every gem in your Gemfile, and to check for newer versions of the gems you use.

Finally, I explained how production environments are different from development and how that difference can lead to problems. Even though developers interact with development 90% of the time, users always interact with code in production. It's incredibly important to remember that production and development are fundamentally different environments. Armed with that knowledge, it's possible to make tradeoffs that produce the best results possible in production.

Israel has a vibrant web development scene. They're even planning a RailsGirls Tel Aviv event soon! Israel has web development events supporting budding developers, including not just Rails Israel, but also DevConTLV and TechCon Ramallah.  The conference organizers even took all the speakers on a tour of Jerusalem! It was great to see thousands of years of history in person.

The speakers came from all over the world, including North America, South America, Europe, and the Middle East, and I learned some pretty awesome stuff. Konstantin Haase gave two excellent talks, including how to (sort of) replace Rack and Sinatra in 9 lines of code, as well as an explanation of why cookies are fatally flawed for authentication. Vicent Martí gave an extremely interesting talk explaining how GitHub is re-architecting their backend git servers. The changes are primarily to support more git repos while needing less servers, and are possible due to using libgit2 to read git repos instead of needing to shell out to the git command.

I've posted slides from all three of my talks on Speaker Deck. If you'd like to learn more, you can also check out the Bundler website or contact me at Cloud City Development.


Andre, Cloud City Development Senior Developer, known for well-tested code that's maintainable over time, thinks every new feature is a chance to leave the codebase in better shape than it started. For over 12 years, he's built and run web applications and specializes in sharing knowledge via pairing. He's been the lead developer of Bundler, the Ruby dependency manager, for more than 5 years; co-authored the third edition of The Ruby Way, a book about how to use Ruby in an idiomatic way; and founded Ruby Together, the non-profit Ruby Trade association. No matter what software you need to build, chances are good that he'll be able to give you specific examples of the tradeoffs to keep in mind, and help your company choose the options that will make you the most successful.

Got a question about ruby dependency management?

Or need a second pair of eyes on your Rails app?

Contact us today for a complimentary 30 minute consultation.

get in touch