This Week in Ruby: Rubinius 2.0-rc1, Rake 10, Refactoring video, Passenger 4.0 supports JRuby, and more
Welcome to this week's roundup of Ruby news, articles, videos, and more, cobbled together from my e-mail newsletter, Ruby Weekly.
Highlights include: Passenger 4.0 gets support for JRuby and Rubinius, Ben Orenstein's awesome refactoring video, Pat Shaughnessy's new 'Ruby Under a Microscope' book, AWS adds Ruby support to Elastic Beanstalk, and more.
Featured
Rubinius 2.0.0 Release Candidate 1
Sadly the Rubinius blog seems to be on hiatus but plenty of people noticed Rubinius 2.0.0rc1 has been tagged. Rubinius is an alternative Ruby implementation largely written in a subset of Ruby itself and the 2.0 release brings 1.9 syntax to the fore.
Pat Shaughnessy's 'Ruby Under a Microscope' Now Available
It's a great time for indie books in the Ruby world lately and this is no exception. Pat's book is a truly deep dive into Ruby's internals with lots of diagrams and lucid explanations to help you along the way.
Phusion Passenger 4.0 Now Supports JRuby and Rubinius
Phusion's popular Ruby app deployment module for Nginx and Apache takes another leap forward by extending support from just MRI to JRuby and Rubinius. This could be big.
Refactoring from Good to Great
Thoughtbot's Ben Orenstein takes a brave approach of ditching slides and going with live coding to boldly refactor where no presenter has refactored before.
Amazon Adds Ruby Support to AWS Elastic Beanstalk
Amazon's Elastic Beanstalk service provides a way to quickly deploy and manage apps within AWS's cloud of services (EC2, S3, etc.) It now supports Ruby apps by using Phusion's Passenger (I hope Amazon are paying Phusion handsomely for this :-))
Reading
Yet Another Ruby Shootout: MRI 1.9.3 vs MRI 2.0 vs Rubinius 2.0
Igor Alexandrov picks up where Antonio Cangiano left off by benchmarking MRI 1.9.3-p286, MRI 2.0.0-preview1 and Rubinius 2.0.0-rc1. As always with benchmarks, don't read too deeply but it seems Ruby 2.0.0 holds its own so far.
'require is slow in its bookkeeping; can make Rails startup 2.2x faster'
An issue on the official MRI issue tracker that shares a patch which can improve the performance of 'require'. Follows on to the work seen optimizing code loading in Ruby 1.9.3 in June 2011.
Ruby 2.0 Preview Available on Heroku
It's still only a preview so don't pull out your production apps yet, but Heroku's polyglot stack supports Ruby 2.0 preview 1 without much work at all.
Reinventing Wheels of Future: Matz's RubyConf Keynote Slides
No technical content as such but Matz celebrates the reinventing of wheels and confesses his love for PHP. Worth a quick swipe through for the sentiments.
Game Development and Ruby
Another slide-deck from RubyConf, this time sharing some options and opinions on game development in Ruby.
RubyConf Roundup: Day One
If you missed RubyConf, here are some handy notes for the talks that Mike Leone attended.
Dead Simple Login System for Rails Apps with OmniAuth and Facebook
In just six special steps with Gal Steinitz.
Let's Not: Refactoring RSpec Specs with Plain Ruby Methods
A look at using plain Ruby methods rather than DSL constructs with RSpec.
Thinking in Objects
Josh Susser drops some object orientation principles on us in his RubyConf 2012 slides.
Building a Peer-to-Peer Chat System using Multicasting in Ruby
IP multicasting allows you to send a datagram to multiple recipients on a network. In this post John Pignata looks at multicasting and creates a simple chat system using Ruby's socket library.
Ruby's EventMachine Part 3: Thin
Phil Whelan continues his blog series looking at EventMachine, this time with a quick explanation of how the Thin Web server library uses it.
Making Queries More Composable with ActiveRecord and Arel
Mike Swieton says it isn't always clear how to get ActiveRecord and Arel to tackle certain difficult database queries so he shares some pointers he figured out here.
A High Level Overview of Acceptance Testing
A straightforward slidedeck from Andy Lindeman of the RSpec core team.
Upgrading to Rails 4 - A Parameters Security Tour
A look at what's going to change for parameters in controllers from Rails 3 to Rails 4.
Profiling JRuby with NetBeans
The NetBeans IDE includes a profiler for Java which you can twist to profiling JRuby apps instead. Patrick Polycrystal shows us how.
Collecting Metrics from Ruby Processes with Zabbix Trappers
'Zabbix Trappers' will be my new name if I ever get abducted by aliens and taken to their home planet. (Back in the real world, Zabbix is an 'enterprise-class open source distributed monitoring solution.')
Watching and Listening
RailsCasts Digs Into Rails 4.0's Turbolinks
A 7 minute tour of 'turbolinks' (as will feature prominently in Rails 4.0) with Ryan Bates.
Wrangling Large Rails Codebases
Stephan Hagemann looks at ways to wrestle with large Rails apps to get faster test suites, cleaner structures, and generally more flexible apps.
Modular & Reusable Front-End Code With HTML5, Sass and CoffeeScript
Keeping your Rails app's front-end code clean can be tricky. Find out how to keep things tidy and reusable using the HTML5 document outline and modular Sass and CoffeeScript.
To Mock or Not to Mock
Mock objects for testing purposes have their supporters and detractors. At Rocky Mountain Ruby 2012, Justin Searls gave a 'broad-stroke survey' of the different ways developers use mocks/test doubles and guidelines to bring everyone to a happy medium.
Yay! Mocks!
45 minutes with Corey Haines.
Git and GitHub Secrets
Zach Holman, GitHub's chief of spreading the love, gives us a peek behind the Git and GitHub curtains and shares some tricks and tips applicable to both.
Life Beyond HTTP
There's a whole world of interesting network protocols beyond HTTP says Anthony Eden. In this 30 minute talk, he provides examples of interacting with them using Ruby.
Let's Talk Concurrency
José Valim of the Rails core team shares a digest of what he's recently learned about concurrent programming and techniques.
The Farmhouse Podcast: Rubyist Talk from Los Angeles
Hard to describe but I've been enjoying this podcast from The Farmhouse. The latest episode features Shane Becker and Evan Phoenix discussing the Puma Ruby Web server. Steve Klabnik features on two earlier episodes.
Libraries and Code
Rake 10.0 Released: Yes, Version 10
Ruby's make-like build utility takes a small step for Jim Weirich but a giant leap for version-kind by going from 0.9 to 10.0. Why? Jim explains.
A Rails Membership Subscription or SaaS Site with Stripe
A Rails 3.2 application with recurring billing using Stripe. Open source and ready to roll.
Rails 3.2.9 Release Candidate 1 Released
Don't get overexcited. Bug fixes and tweaks.
IProcess 3.1.0: Ruby Tools for Subprocesses and IPC
Provides a number of abstractions on top of spawning subprocesses and interprocess communication. It has an easy-to-use API that supports synchronous and asynchronous method calls and custom serialization.
Espresso: A New Scalable Web Framework Aimed at Speed and Simplicity
I don't think we've had a new Ruby framework for a while so.. enter Espresso :-) Has a few interesting ideas but without being too alien to existing Rails, Ramaze, or Sinatra fans.
Ruboto 0.9: The JRuby on Android Platform
Now supports Ruby classes directly subclassing Java classes.
A Simplified Version of Ruby's Object System, Implemented in Ruby
A clever experiment by James Coglan. It's intended to model inheritance and method lookup in as little code as possible, for ease of understanding by Rubyists.
Jobs
Sr. Rails Engineer at VMware Socialcast (San Francisco)
Socialcast is looking for a passionate, experienced Ruby and Rails Engineer to join our growing Engineering team! Continue your career in a start-up atmosphere focusing on fast experimentation with the latest technologies and frameworks (Rails 3 and Ruby 1.9).
Ruby on Rails Developer at Litmus (Remote, anywhere!)
Litmus, the e-mail testing and analytics company, offering a great salary, full health care benefits and 28 days paid vacation. We're looking for great developers wherever you live in the world. Come and see what our team have to say about working here.
Rails Software Engineer at Sleepy Giant (Newport Beach, LA, Chicago)
Sleepy Giant is a game company based in Newport Beach. We are looking for Rails developers to join our talented team. You will work on high-profile, high-scale game services and franchise development projects, including green-field systems engineering.
Last but not least..
The British Ruby Conference: Giving 15% of Sales for Movember
The British Ruby Conference is in Manchester, England in March 2013 with lots of lovely speakers (and I'll be there!) and for this month only will be giving 15% of ticket sales to the Movember cause. Come join in the fun.
Official (Private) RubyMotion Training Available
The folks behind RubyMotion, the Ruby development toolkit for iOS devices, are now offering official RubyMotion training to groups of 15 or more.