(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.