The Last 2 Weeks in Ruby: Rails 3.2.6, Savon 1.0, RailsInstaller for OS X, Pow 0.4.0, Rails 2 Asset Pipeline
Welcome to this week's Web-based syndication of Ruby Weekly, the Ruby e-mail newsletter. While I have you, be sure to follow @RubyInside on Twitter as I'm going to be posting news more frequently there than on the Web site in future.
The latest highlights include: Rails 3.2.6, RailsInstaller for OS X, Pow 0.4.0, Rails 2 Asset Pipeline, Sidekiq 2.0, and Savon 1.0.
Headlines
Rails 3.2.6 Released: Fixes More Vulnerabilities
Rails 3.2.4 was released a few weeks ago fixing two serious security vulnerabilities (explained in another post below). Rails 3.2.5 then followed a day later as 3.2.4 introduced a nasty scoping bug.. and.. now Rails 3.2.6 to continue to fix those bugs. They're tricky blighters.
RailsInstaller for OS X: Ruby, Rails, Git, and More in One Download
Engine Yard's RailsInstaller has long been a popular way to install Rails, Ruby, Git, Sqlite and other tools in one hit on Windows. Now it's here for OS X too.
Announcing Pow 0.4.0 With xip.io Support
37signals' Sam Stephenson has unveiled the latest version of the popular Mac OS X zero-configuration web server for Ruby webapp development. Port proxying is one of the new features.
Take My 30 Second Ruby Webcast Survey
I'm planning to run some Ruby oriented 'webcasts' (live, 30-60 minute presentations + live coding) and have a handful of ideas. I want to see which are the most popular and would appreciate your help (or even your own ideas).
Early Access to Avdi Grimm's 'Confident Ruby' Available
Avdi Grimm, author of the popular Exceptional Ruby and Objects on Rails, is working on his new book, Confident Ruby. It's still under development but you can get access now in return for some money or, intriguingly, a postcard.
JewelryBox 1.3 Released: The Official OS X RVM GUI
JewelryBox is a GUI app that brings OS X and RVM together in a loving embrace. 1.3 brings improved usability, gemset management, and Mountain Lion compatibility (it's a signed app, so no GateKeeper complaints either).
From our sponsor
Michael Hartl's Rails Tutorial 2nd Edition, Out Now
Michael Hartl has just announced the official release of the 2nd edition of his popular Rails Tutorial screencast series. It's 15 hours of 'over the shoulder' training in Rails 3.2 using Twitter Bootstrap, Ruby 1.9, and full on test driven BDD.
Reading
RSpec's New Expectation Syntax (Coming in 2.11)
Myron Marston shows off a new syntax for expectations in RSpec. It looks like "expect(foo).to eq(bar)" versus the more typical "foo.should eq(bar)". What's the motivation? Learn more here.
Removing config.threadsafe! from Rails
Core Rails developer Aaron 'tenderlove' Patterson looks at why the 'config.threadsafe!' directive can be removed from Rails and demonstrates the issues involved.
Rails Pull Request: Enable threadsafe! By Default
A 2 character pull request that triggered a big discussion about the role of 'threadsafe!' in future Rails apps, best summarized by the Aaron Patterson article linked above.
Setting Up an Ubuntu 12.04 Rails Development Environment
Includes Postgres, RVM, and some handy bash aliases.
Forgotten Rails Features: HTTP Streaming
One of a series of posts looking at interesting Rails features that are no longer in the spotlight. Here, Robert May looks at the HTTP streaming features introduced in Rails 3.1.
Using vim-slime with Pry for REPL Perfection
Alan MacDougall demonstrates how you can set up vim so that you can send Ruby code straight from the editor into an interactive Pry session.
A Write Up of the SQL Injection Vulnerability in Rails
Louis Nyffenegger gives a scrappy yet practical explanation of the latest vulnerability in Rails (which has been fixed by Rails 3.2.4/5).
PhoneGap vs RubyMotion
A somewhat chalk and cheese comparison framework wise but a reasonable discussion of the pros and cons of deploying a similar app using both technologies. An interesting sidenote is it compelled one of the creators of PhoneGap to write a post in response.
Future Versions of Pow Won't Automatically Support RVM
It seems automatic support for .rvmrc files to set the Ruby environment is going away in Pow. There's a simple workaround (using the .powrc file for each project) but it's worth noting for the future.
Ruby Is Faster Than Python, PHP and Perl(?)
Uh-oh, controversy alert! Tony Arcieri attacks the myth that Ruby is the slowest language out there with a look at the Alioth Programming Languages Shootout.
Watching and Listening
RailsCasts on Brakeman: The Rails Vulnerability Scanner
Ryan Bates looks at the Brakeman gem, which will scan the Ruby code of a Rails application and alert you to common security vulnerabilities.
Ruby Rogues 59: Security with Rein Henrichs
The Rogues sit down with Rein Henrichs to talk about Ruby and Rails app security from password storage and network sniffing through to the GitHub hack and Rails vulnerabilities.
An Intro to Sinatra
At the Pittsburgh Ruby Brigade Language User Group, Carol Nichols gave a 45 minute introduction to Sinatra, the lightweight DSL for building webapps in Ruby.
Creating A Blog Application in Rails 3.2
An hour long screencast by John Ash walking through the development of a blogging webapp in Rails 3.2.
Evented Ruby vs Node.js
A 40 minute talk by Jerry Cheung from RailsConf 2012.
Dangers of Session Hijacking (RailsCasts)
Ryan Bates of RailsCasts takes a look at the dangers of 'session hijacking' and shows off a way to improve the situation on a Rails app.
Introducing the 'Giant Robots Smashing into other Giant Robots' Podcast
Courtesy of Ben Orenstein and Thoughtbot comes a new development oriented podcast based around Thoughtbot's popular Ruby and Rails blog.
Matz's Keynote at Euruko 2012
This year, the annual European Ruby Conference landed in Amsterdam and here's Matz's keynote to enjoy on Vimeo.
Geoffrey Grosenbach's Euruko Keynote
Let the always mellifluous murmurs of PeepCode's Geoffrey Grosenbach wash over you in this 40 minute keynote.
Using Ruby to Craft and Test Beautiful Command Line Applications
From RubyConf India comes a talk by Shishir Das and Nikhil Mungel about building elegant command line apps with Ruby (on Unix-like systems, naturally). Video good, audio not so good.
Libraries and Code
API Taster: Visually Test Your Rails Application's API
A handy tool that works out endpoints from your routes file and then lets you perform requests direct from the Web browser. A clever idea.
Rails 2 Asset Pipeline: Familiar Asset Handling for Those On Rails 2
An interesting backport of some of Rails 3.1+'s most interesting functionality by Michael Grosser.
cod: IPC Made Simple
A small library striving to 'change the way people do IPC in Ruby.' It abstracts away the toll of using IO.pipe, Sockets and other primitives and allows message oriented communication via a simple interface.
Slacker: Test Framework for SQL Server 2005 and 2008 Programmable Objects
An RSpec-based transacted BDD framework/engine for the automated testing of SQL Server programmable objects (think stored procedures, table/scalar functions, etc.) Runs on both Windows and Linux.
Redis Store: Redis Stores for Ruby Frameworks
Redis Store provides a full set of stores (Cache, I18n, Session, HTTP Cache) for all the modern Ruby frameworks like: Ruby on Rails, Sinatra, Rack, Rack::Cache and I18n. It natively supports object marshalling, timeouts, single or multiple nodes and namespaces.
Talks: Let Your Ruby Programs Talk To You
A gem that hooks into the text to speech tools available on both Mac OS X and Linux.
Savon 1.0 Released: 'Heavy Metal' SOAP Client
Okay, SOAP might not be the big deal it once was, but many APIs and enterprise technologies still use it, and Savon, even pre-1.0, has been a popular choice for using SOAP from Ruby.
BubbleWrap: Cocoa Wrappers and Helpers for RubyMotion
BubbleWrap is a collection of (tested) helpers and wrappers used to wrap CocoaTouch code and provide more Ruby-like APIs.
Sinew: Collect Structured Data From Web Sites (by Scraping)
Sinew collects structured data from the Web (using scraping techniques) via a Ruby DSL built for crawling, a robust caching system, and integration with Nokogiri.
Announcing Virtus 0.5.0 (Part of DataMapper 2 Is Done)
Virtus is a key part of the forthcoming DataMapper 2 which provides attributes for plain Ruby objects. You can now use Virtus in modules, dynamically extend objects on the fly, and Structs can be used as an embedded value in other objects.
Doodle: Extended Attribute Accessors for Objects
A Ruby gem for creating extended attribute accessors with defaults, conversions and validations (along similar lines to last week's 'SmartProperties' item).
nanoc 3.4 Released
The popular Web site generation / publishing tool (think a more flexible Jekyll) gets an update.
Markdown Engine Wrapper
An abstraction and wrapper library that gives access to several different Ruby Markdown libraries both in Ruby and via a command line app called 'markdown'.
Mina: Fast Deployment and Server Automation Tool
Mina lets you build and run scripts to manage your app deployments on servers via SSH. Ruby based and framework/project agnostic.
Sidekiq 2.0 Released, Gets Scheduled Jobs
Sidekiq is a simple but efficient background job processor for Ruby (and Rails.) It's designed to be Resque-compatible but is faster as many jobs can execute in parallel. Version 2 adds scheduled jobs so you can say 'send this email 3 days from now.'
Parts of RubyMotion Open Sourced
RubyMotion is a Ruby compiler/framework for iOS that has recently taken the Ruby world by storm. Its creator, Laurent Sansonetti, has now open sourced parts (but not all) of the framework so that the community can contribute to and extend the platform.
IProcess: Transport Ruby Objects Between Processes
IProcess, short for Inter Process Communication(IPC) Process, is a collection of classes you can use to transport Ruby objects between processes running on UNIX-like operating systems.
SmartProperties: Ruby Accessors 'on Steroids'
Bored of plain old attr_accessors? Include the SmartProperties module and use the property method along with a name and optional configuration parameters to define new properties along with input conversion, validation, and default values.
Jobs
Rails Software Engineer at Mulu.me (Los Angeles)
Join a killer engineering team to build out a social shopping application where users earn for a cause. You'll be working with Ruby, Rails, JavaScript, PostgreSQL, and building a product you're proud of with an awesome team.
Rails Developer at IBM [Emeryville, California]
As interested in technical verve as years of experience, IBM has positions for junior and senior engineers with a focus on those experienced with Rails, JavaScript, CSS and jQuery.
Head of Tech or Lead Developer - Purpose (New York, NY)
Manage a new technology initiative for an established agency. The project aims to build tools for the “ethical consumer” and the hands-on role includes all aspects of development, management and deployment. Competitive comp + stock options.
RoR Developers at Quri (San Francisco, CA)
Quri, a San Francisco-based mobile and web startup that's transforming the $350 billion trade marketing industry, is seeking an experienced Ruby on Rails engineer to join our growing team.
Web Developer - Threespot (Washington DC)
Responsible for more than development, testing, & documentation of web-based software & technical solutions, our Developers are involved in all stages of client engagements, from application design through specifications documentation & production programming. (Ruby welcome!)
Want to post a job? Click here for more info.
Last but not least..
Why Our Code Smells
A well put together slide deck by Brandon Keepers of GitHub with some interesting points on code smells, primarily focusing on testing.
Ruby Fiddle: Ruby Snippets in the Browser
If you've done any JavaScript work, you might be familiar with 'JSFiddle' a popular site that previews HTML, JS, and CSS you supply in the browser. Ruby Fiddle aims to do similarly for Ruby, though the code runs remotely.