Welcome to the bumper pick’n’mix of Ruby and Rails news and releases for July 2012, fresh from the pages of Ruby Weekly (now at 15,400 subscribers – give it a look).
Highlights include: Rails 3.2.7, Phusion Passenger Enterprise, RubyMine 4.5, O’Reilly’s “Learning Rails 3”, GitHub’s funding, and Rails 4.0’s live streaming support.
Phusion Passenger Enterprise Released
The chaps at Phusion have unveiled their latest release: Passenger Enterprise. Passenger is a popular Apache and Nginx module for deploying Ruby webapps and the ‘Enterprise’ variant includes rolling restarts, a live IRB console, and more.
Rails 3.2.7 Released
Contains an important security fix for apps using digest authentication from Action Pack. But 3.2.8 is just around the corner..
RubyMine 4.5 Released: JetBrains’ Commercial Ruby IDE
RubyMine 4.5 introduces suport for formatting and code insight for Slim and Sass, MacRuby syntax highlighting, Capistrano deployment support, extra Sinatra integration, and more. It’s a commercial IDE but the one I’ve heard the most good things about.
GitHub Takes $100m of Funding
The Ruby world celebrates its latest home grown business success, GitHub, who this week announced they’ve received $100m in funding from Andreessen Horowitz. Will every Rubyist eventually work there? Watch this space.
RSpec 2.11 Released
The popular BDD framework takes another step up the version ladder with 2.11. It supports the new ‘named subject’ syntax, you can stub constants for the duration of an example, and on Rails specs now run in a random order by default. And more, naturally.
O’Reilly’s ‘Learning Rails 3’ Now in Print
Learning Rails 3 by Simon St. Laurent, Edd Dumbill, and Eric J Gruber takes an interesting ‘outside in’ approach to teaching Rails, well suited for front end developers looking to make the leap. There’s a free sampler PDF you can check out.
Your First Ruby Native Extension: C
A quick how-to from someone who admittedly ‘knows barely any C or Java’ that explains how to wire up some simple C code into a native Ruby extension ready for building a gem.
Objects, Classes and Modules
The latest excerpt from Pat Shaughnessy’s forthcoming ‘Ruby Under A Microscope’ book. This time he looks at how MRI Ruby implements and stores objects and classes internally.
Building An API for Fun With Grape
Grape is an API-oriented Rack-based microframework for building HTTP accessible APIs. It’s been around a while but this post gives a quick introduction.
Tell, Don’t Ask (with Ruby Objects)
Bad for your relationships but good object oriented programming advice. Ben Orenstein shows off some quick before and after examples of telling your objects what to do rather than querying them to make decisions.
Why I Don’t Like factory_girl
This post won’t be without controversy but Steve Klabnik outlines why he thinks the convenience of factories has ‘set Rails testing strategies and software design back two years.’ Worth a read even if you disagree.
Advanced Caching in Rails: Revised (for 2012)
Adam Hawkins has recently updated his series of Rails caching posts. It aims to teach you everything you need to know to work with any different caching level inside your Rails app.
Zendesk’s Road to Ruby 1.9
Zendesk is a popular help desk app and their dev team explains how their Ruby 1.9 upgrade project went. The end result? A 2-3x improvement in response time for their app.
Four Guidelines That I Feel Have Improved My Code
GitHub’s John Nunemaker riffs on some interesting ideas he’s brought into his Ruby development practices including the single responsibility principle, sensible interface design and high/low testing.
Arel’s ‘merge’ Method: A Hidden Gem
Arel is the beautiful relational algebra library that works alongside ActiveRecord in Rails 3 to let you do complex queries easily. Ben Hoskings shows off an interesting method Arel makes available to merge query conditions together.
Don’t Make Your Code ‘More Testable’
Gregory Moeck reflects on the mocking and OO design trends in the Ruby world and proposes a way forward to think about the ‘testability’ of our code (or not, as the case may be).
How Can I Contribute to Ruby On Rails?
Steve Klabnik, now a memeber of the Rails Issue Team, shares some quite insights and FAQs into the process of contributing ideas, source, or documentation to Rails.
Watching and Listening
PeepCode’s Rails 3 Play by Play with Yehuda Katz
PeepCode has released the latest in their ‘look over a developer’s shoulder’ screencast series, this time focusing on Yehuda Katz (of Rails 3 fame). In an 80 minute session, he builds the backend for a scoring system using Rails 3.
The Well Grounded Nuby
At Boston Ruby Group recently, David A Black (of Well Grounded Rubyist fame) gave a talk about getting the fundamentals of Ruby right.
Sidekiq allows you to move jobs into the background for asynchronous processing. It uses threads instead of forks so it’s more memory efficient than, say, Resque.
Your Face in 10 Minutes… with MacRuby!
At GoRuCo 2012, Haris Amin gave a 10 minute lightning talk about creating a desktop Mac face detection/recognition app with MacRuby. Links to code, slides, and the Vimeo video within.
An ActiveRecord-Based Reputation System (RailsCasts)
If you need to calculate an average user’s rating or sum up a number of votes, consider using the ‘activerecord-reputation-system’ gem. Here Ryan Bates covers the basics and presents a from-scratch solution.
Libraries and Code
TwitterCLDR: Improving Internationalization Support in Ruby
Twitter’s engineering team has released a library that uses Unicode’s Common Locale Data Repository (CLDR) to format certain types of text into their localized equivalents. Currently supported types of text include dates, times, currencies, decimals, percentages, and symbols.
RLTK: Ruby Language Toolkit
A collection of classes and methods designed to help programmers work with languages in an easy to use and straightforward manner. Includes generators for lexers and parsers, LLVM bindings, and more.
webmachine-ruby 1.0 Released
webmachine-ruby is a Ruby port of Erlang’s Webmachine which lets Rubyists expose interesting parts of the HTTP protocol to their applications in a declarative way. Don’t understand? Check the examples.
Happy (Ruby) Web Developer (London, UK)
We sell expensive stuff to investment bankers. We run on Ruby. We enjoy using the best tools and technologies available. If you want to be a happy programmer (and join us on our summer trip to Ibiza), get started by solving our quiz.
Senior Ruby on Rails Developer (Cologne, Germany)
“Ich will nicht nach Berlin!”- simfy cologne is looking for talented Ruby on Rails backend developers. You feel at home with large Rails enterprise applications? Join simfy – one of the world’s leading music streaming services – and put our visions to life.
Senior Ruby Developer (Cambridge, MA)
Litmus, the e-mail testing and analytics company, offers a great salary, full health care benefits, 28 days paid vacation, beer fridge and Sonos sound system. They’ll also buy you lunch every day.
Last but not least..
AdhearsionConf Returns for 2012: CFP Now Open
Billing itself as the ‘conference at the Intersection Of Ruby and Voice’, the AdhearsionConf organizers have announced the conference will be back on October 20-21 in Palo Alto. No registration yet but the call for presentations is now open.
MiniProfiler: A New Profiler for Ruby
MiniProfiler is a production and development profiler that you can use to quickly isolate performance bottlenecks, both on the server and client. This post demonstrates how it works.
Writing FizzBuzz Without Modulus Division
Upon a request by JEG2, some Rubyists had a go at solving the old FizzBuzz problem without doing modulus division. This entry by Magnus Holm is a real mindbender and leans heavily on flip flops.