The Mega April 2012 Ruby and Rails News Roundup
Welcome to April 2012's bumper pick'n'mix of Ruby and Rails news and releases, fresh from the pages of Ruby Weekly.
Highlights include: Matz's new Ruby implementation, MobiRuby (Ruby for iOS), Passenger 3.0.12, Ruby 1.9.3-p194, TorqueBox 2.0, Adhearsion 2.0, and Dr Nic's App Scrolls.
Headlines
Ruby 1.9.3-p194 Released
A small version bump for Ruby 1.9.3 which includes a security fix for RubyGems (and therefore an updated version) along with oodles of minor tweaks and fixes.
MRuby: A Lightweight Ruby Implementation by Matz
It's been in the making for a while (remember RiteVM?) but this week Matz's new 'lightweight' Ruby implementation, mruby, spread around the Rubysphere like wildfire. The key goal is to produce an embeddable Ruby implementation that has a smaller footprint than MRI.
Announcing 'MacRuby In Action'
MacRuby In Action is a new book hat teaches Ruby developers how to code OS X applications using MacRuby, an OS X-focused Ruby implementation. Jerry Cheung, a senior engineer at Intridea authored the book alongside Brendan Lim and Jeremy McAnally.
Phusion Passenger 3.0.12 Released
The popular Apache and Nginx module for deploying Rack-based Ruby webapps gets an update. It now supports Apache 2.4 and the event MPM.
GitHub Rolls Out An Easier Way to Create Repositories
It's not Ruby specific, but GitHub's prevalence in the Ruby world should make their latest tweaks to the repository creation process interesting to anyone familiar with the service.
The Future of MacRuby?
Matt Aimonetti of the MacRuby project notes that MacRuby's de-facto project leader, Laurent Sansonetti, has been M.I.A. on the project since October and no longer works at Apple. But what does that mean for MacRuby? Matt makes some suggestions.
Adhearsion 2.0 Released: Ruby Telephony Continues to Evolve
Adhearsion is an open-source telephony development framework built in Ruby. The version 2 release brings an all new Web site, updated documentation, support for multiple telephony engines, 'call controllers' and more.
Next Generation MRI Ruby Packages for Ubuntu Available
The Brightbox brainboxes have been hard at work on new MRI Ruby packages (of 1.8.7 and 1.9.3) for Ubuntu. They're ready for you to test right now - instructions inside.
TorqueBox 2.0 Released
TorqueBox is a Ruby application server built on JBoss AS7 and JRuby. In addition to being one of the fastest Ruby servers around, it supports Rack-based web frameworks, and provides simple Ruby interfaces to standard JavaEE services, including scheduled jobs, caching, messaging, and services.
Reading
Extending Ruby with Ruby
Some beautiful, code-driven slides by Michael Fairley that dig into adding new features to Ruby by using Ruby itself. To do this, he takes a feature from each of Haskell, Python, and Scala and adds it to Ruby. The slides are complete with speaker notes so it's easy to follow along.
Read Ruby 1.9: The Online Ruby Book
Not new at all but the site recently went down and I lamented the loss of one of my favorite online Ruby references. Finally it's back online, so it's time to let people who haven't seen it before enjoy its greatness :-)
On mruby and MobiRuby
Matt Aimonetti, a key contributor to MacRuby, riffs on the possibilities opened up by mruby and MobiRuby (both above) while suggesting that it'll take a lot for Ruby to be considered a logical choice for iOS development, even by existing Rubyists.
10 Things You Didn't Know Rails Could Do
The slide deck from a RailsConf presentation given by Ruby demigod James Edward Gray II. In a mere 234 (!) slides, he digs into a lot of interesting Rails crevices. Lots of short examples to enjoy.
The Asset Pipeline for Dummies
Eric Berry explains the Rails asset pipeline from the absolute basics up.
Getting Started With mruby
Matt Aimonetti is a real fan of mruby and shows it off by explaining its purpose, comparing it to Lua, and then by building a barebones C app that calls mruby to run a single line of Ruby code.
Make the Web Fast(er): One Rails App at a Time
A great slide deck by Ilya Grigorik about the role that page loading speed has to play in Web applications. It's not particularly Rails focused at all but it covers key things to be aware of.
MySQL Query Comments in Rails with Marginalia
Noah Lorang of 37signals talks about marginalia, a new gem that adds extra comments to Rails' logs which can help in the debugging and performance monitoring process.
Building an iOS Photo-sharing and Geolocation Mobile Client and API
A fine tutorial in the Heroku Development Center about building a photo sharing service with a native iOS client and Rails backend. All deployed on Heroku, naturally :-)
Rails Tutorial for Devise with CanCan and Twitter Bootstrap
Daniel Kehoe is known for his detailed Rails tutorials and this time he demonstrates how to create a Rails 3.2 application using Devise with CanCan and Twitter Bootstrap, from start to finish.
Introducing DCell: Actor-based Distributed Objects for Ruby
DCell by Tony Arcieri (of Celluloid fame) is an actor-based distributed object oriented programming framework for Ruby. It's hard to explain the concepts involved in a short summary but this post does a great job (think an easier, better structured DRb).
A Sneak Preview of Phusion Passenger 3.2
Phusion has been hard at work on the popular Apache and Nginx module (already mentioned above) and explains the internal overhauls that have taken place in the forthcoming Passenger 3.2.
Lessons Learned Upgrading Harvest to Ruby 1.9.3 (from REE)
Harvest is a popular time tracking webapp that uses Ruby behind the scenes. They've just done a big REE to Ruby 1.9.3 upgrade and in this post T J Schuck shares some notes about the process and the 1.8 to 1.9 issues they encountered.
Some Topics From 'The dRuby Book' Explained
A month ago, I shared the news of the Pragmatic Programmers releasing 'The dRuby Book' by Masatoshi Seki. Here, its translator Makoto Inoue goes through some of the topics covered in the book and shows off some uses of DRb.
User Authentication with Rails and Backbone.js
Backbone.js is a handy JavaScript framework for developing webapps and Rails is similarly handy on the backend. James R Bracy of 42Floors shares how they use Rails and Backbone together and perform user authentication.
Testing Like The TSA
37signals' David Heinemeier Hansson says we need to shake any bad habits of 'over testing' our code, not aim for 100% test coverage, and avoid the 'TSA-style of testing.'
Gregory Brown Releases 15 Practicing Ruby Articles.. At Once!
Gregory Brown promised to keep releasing content from his Practicing Ruby journal and has now released 15 articles at once! Tricky to write this one up but Gregory's work is always a pleasure to read and you are bound to find some useful Ruby reading in here.
On Railcar: An Isolated Rails Environment
After seeing Yehuda Katz's Kickstarter for Rails.app (covered last week) Jeremy McAnally set to work on a similar project called Railcar. Here's the what, why, and how.
Driving Google Chrome via WebSocket API
Ilya Grigorik demonstrates how to control a Google Chrome browser from Ruby using its remote debugging API.
Rails Internals: Mass Assignment Security
A look at Rails' defences against mass assignment issues by Oscar Del Ben.
Matt Wynne On Using Cucumber
Cucumber is the popular framework for executing feature documentation written in plain text in your BDD process. Pat Shaughnessy sits down with Matt Wynne, co-author of The Cucumber Book, to talk about the ideas behind Cucumber and its design.
Watching and Listening
Matz Talks About mruby and Its Possibilities
Back in November 2011, Matz gave a short (9 minutes!) but sweet talk about mruby, what it's about, and where it's headed.
The Ruby5 RailsConf 2012 Podcast
The Ruby5 podcast dedicated an entire episode to RailsConf 2012, summarizing DHH's keynote and talking about some of the other things going on, all in a mere 9 minutes.
RailsCasts on Queue Classic
The PostgreSQL database system can act as a worker queue for Rails apps replacing the need for a separate process to manage background jobs. Ryan Bates shows us how with the 'queue_classic' gem.
Rails Sustainable Productivity with Xavier Shay
At the LA Ruby Conference, Xavier Shay gave a talk about testing, data modelling, code organisation, build systems, and more, while suggesting many Rails Best Practices go against the building of solid and robust applications. 30 minutes long and well recorded/produced.
Migrating to PostgreSQL by RailsCasts
Ryan Bates continues his long line of awesome RailsCasts with a look at how to use the open source PostgreSQL database system with Rails and how to migrate an existing SQLite-backed Rails app to using it.
Designing Hypermedia APIs by Steve Klabnik
Steve Klabnik recently gave a talk on REST and Hypermedia APIs, the topic of his forthcoming book, Designing Hypermedia APIs. Audio isn't great but it's good to see Steve speak.
DSLs in Ruby
Kathy Van Stone delivers a talk about domain specific languages in Ruby, and shows a brief example. The talk is 40 minutes long and the audio quality somewhat better than Steve's talk above.
Ruby Rogues Talk to Jeff Casimir about Ruby Training
The Ruby Rogues sit down with renowned Ruby and Rails trainer Jeff Casimir to discuss his role with the Hungry Academy training program and to talk about the ideas behind training students in the art of programming generally.
Crafting Rails Applications with Jose Valim
The Ruby Rogues sit down with Jose Valim to discuss not only his popular book 'Crafting Rails Applications' but the actual art of crafting Rails apps itself. At 1h20m long, it's a deep dive, but perfect for the car!
Are Interpreters (Python/Ruby/PHP) Immoral?
A developer makes an impassioned plea for developers to learn compiled languages because 'interpreters for non trivial computation' are immoral and 'indefensible' due to their carbon footprint. Hmm.. yeah.. enjoy ;-)
Libraries and Code
rails-api: Rails for API Applications
Several popular Rubyists have built rails-api, a plugin that can trim down usually unnecessary Rails features for API-only apps. They are particularly keen for people to try it out and send in their performance results so that it might be added directly to Rails core in future.
Authority: An ORM Agnostic Authorization System for Rails
Authority helps you authorize actions in your Rails app. It's ORM-neutral and has little fancy syntax. Just group your models under one or more Authorizer classes and write plain Ruby methods on them.
Pry 0.9.9 Released
Pry is a popular (and significantly more powerful) alternative to irb, the interactive Ruby console. Version 0.9.9 of Pry brings line-based code highlighting, method finding, and a torrent of general improvements.
Her: An ORM for REST APIs
Her is an ORM that map REST resources to Ruby objects. It maps HTTP responses to Ruby objects (through JSON) and adds methods to Ruby objects to trigger HTTP requests.
cache_method: An Easy Way to Cache Method Results
cache_method caches the results of calling methods given their arguments. It's like memoization, but the results are stored in Memcached, Redis, etc. so the cached results can be shared between processes and hosts.
redis_failover: A Ruby-based Solution for Redis Master/Slave Failover
Redis Failover is a ZooKeeper-based automatic master/slave failover solution for Ruby by Ryan LeCompte. (Apache ZooKeeper is a tool for centralized server configuration, coordination, and synchronization.)
App Scrolls: Rails App Generation Magic from Dr Nic
The App Scrolls is a magical tool to generate new Rails and modify existing Rails applications (coming) to include your favourite, powerful magic. Authentication, testing, persistence, javascript, css, deployment, and templating - there's a magical scroll for you.
First NMatrix Alpha Released
Get your matrix math and linear algebra on with this prototype Ruby library.
rdoc-spellcheck: Check Your Documentation for Spelling Errors
A library by Eric Hodel that uses libaspell to spell check your RDoc documentation.
Jobs
Developer Advocate/Spokesperson/Evangelist at New Relic [San Francisco]
New Relic is the emerging standard for application performance management and wildly popular in the Ruby world. They're looking for a unique individual who can nimbly walk the line between development and marketing while wearing an Evangelist hat. Sounds fun!
Senior Web Engineer for Rapidly-Growing Education Business (Steve and Kate's Camp)
Steve and Kate's Camp is seeking a senior web software engineer ready to get their hands dirty now and interested in growing and leading a technical team down the road. Experience with TDD/BDD, Ruby, Rails, and devops all useful. Based in Sausalito, CA.
Last but not least..
Instant: A Live, Immediate Ruby Editing and Visualization Tool
An interesting browser based editing environment where the Ruby code you type is processed on the fly. Inspired by an awesome talk by Bret Victor who did something similar with JavaScript.
Rails One Click: Another Simple Rails Installer for OS X
I've mentioned both Rails.app and Railcar in recent issues, but Rails One Click is another entry to the 'Rails installer for OS X' melee. It's a complete installer with a nice design and well suited to beginners. It focuses on installing only the minimum required to get started building a Rails app.
JavaScript Weekly: Like Ruby Weekly But.. for JavaScript!
I've spoken to some readers recently who were surprised to learn I also run a JavaScript weekly newsletter, so I thought I'd give it another mention here. There's lots of exciting stuff happening in the JS world lately so if you want to keep up.. I've got the newsletter for you :-)