This Month in Ruby: PeepCode Acquired, Rails 3.2.14, And More

Welcome to a roundup of Ruby news, articles, videos, and more, for July 2013 cobbled together from my e-mail newsletter, Ruby Weekly.

Highlights include: PeepCode acquired by Pluralsight, Practicing Ruby archives made public, Rails 3.2.14, and an interesting interview with Matz.

Featured

The First Four Volumes of Practicing Ruby, Now Available Online
Practicing Ruby is a high quality, paid Ruby journal run by Gregory Brown, but he’s made archives of over 60 articles available to the public. There’s a ton of stuff to enjoy here.

PeepCode Acquired by Pluralsight
Ruby and Rails screencasting pioneer Geoffrey Grosenbach has announced he has sold Peepcode to Pluralsight, a large online training provider.

The Plan for RSpec 3
RSpec 2.0 was released in October 2010 and RSpec 2.14 will be the last RSpec 2 feature release. Work on RSpec 3 has begun and Myron Marston shares what’s going to be involved.

Rails 3.2.14 RC1 and RC2 Released
A variety of bug fixes for Rails 3.2 arrived in 3.2.14 RC1 with one minor regression fixed in RC2. Final due soon.

The Future of Computing – An Interview with Matz
Last year, Ruby’s creator Yukihiro ‘Matz’ Matsumoto released a book called The Future of Computing (only in Japanese, I believe) and did an interview with a Chinese publisher. Fred Wu has translated it into English.

RSpec 2.14 Released
Myron Marston unveils the last 2.x feature release of the popular spec framework and announces work is well underway for the future RSpec 3. 2.14 includes a new feature called ‘spies’ which is shown off here.

Functional Programming and Ruby
At GoRuCo 2013, Pat Shaughnessy gave a 40 minute talk comparing Haskell (a functional language) to Ruby and looked at how to implement common functional patterns in Ruby. Well explained and backed by good slides.

Reading

Streaming with Rails 4
Saurabh Bhatia looks at Rails 4’s support for live streaming (the ability to send partial requests out to the client on the fly).

Reading the Ruby Source to Understand Rails Idiosyncrasies
I’m not sure you always need to dig quite so deep but Eno Compton takes an interesting journey through MRI’s source code to see the difference between Range#cover? and Range#include?

Speed Up Heroku Deploys
Alex MacCaw was suffering from slow deploys to Heroku but he found a workaround.

Shoes 4 – A Progress Report
Shoes was a graphical toolkit put together by Why the Lucky Stiff that made it simple to create GUI apps in Ruby. Since Why disappeared, others have picked up work on it, and Shoes 4 is set to be a complete rewrite.

Put Yourself on Rails with A Push of A Button
A technique for quickly bringing up a workspace for doing Rails work (including terminals, a Rails console, a Rails server, etc.)

Multitenancy with Rails: An E-book by Ryan Bigg
Ryan Bigg, of Rails in Action fame, is writing an e-book about building a multi-tenanted Rails app.

Incremental Redesign with Rails
Lars Klevan shows how to use prepend_view_path to make in-progress redesigns on a production codebase simpler.

How to Declutter Your ‘lib’ Directory
If you have an established Rails project, its ‘lib’ folder might be getting a little full. Kuba Suder looks at ways to clean it up and put things elsewhere.

Design Patterns: The Template Method Pattern
An introductory Ruby-oriented look at arguably the simplest design pattern.

Object Oriented Rails: Writing Better Controllers
Damien Le Berrigaud of Pivotal Labs tries to avoid stubs and mocks and leans on dependency injection to test his controllers’ code.

Vimscript And You
HashRocket’s Jonathan Jackson demonstrates how you can use RSpec against Vim to aid in the development of a Vim plugin with Vimscript.

MotionPhrase: Next Level Localization for RubyMotion Applications
PhraseApp is a translation management tool for producing multilingual Web sites, Rails apps, etc, but it also works for localizing RubyMotion apps too, as demonstrated here.

Ruby’s Eigenclasses Demystified
Andrea Singh looks at Ruby’s quirky ‘eigenclasses’ (a.k.a. metaclasses) and explains things in both code and diagrams. Dates from 2011 but worth revisiting.

The Self-Pipe Trick Explained
Jesse Storimer shows off a cute Unix trick/technique in Ruby.

Practical RSpec Wrapping
Why would you want to use around hooks in RSpec? Dru Riley explains.

Using PostgreSQL’s ‘hstore’ in A Rails Application on Engine Yard Cloud
If you want to take advantage of schemaless features without abandoning your relational database, using ‘hstore’ within Postgres is a great option. Here’s an introduction on using the hstore PostgreSQL extension in a Rails app.

Implementing Subdomain and Custom Domain Support in Rails
A look at how one development team implement subdomain and custom domain features in their Rails app.

Events

dotRB: The Largest Ruby Conference in France (October 18, Paris)
Following on from a successful ‘dotJS’ JavaScript event comes dotRB. Announced speakers so far include Steve Klabnik, Konstantin Haase, and Brian Ford.

Watching

11 Talks from La Conf Paris
Some big names to enjoy here including Yehuda Katz, Amy Hoy, Sandi Metz, and Steve Klabnik.

Deathmatch: Bundler vs Rubygems.org
At GoRuCo 2013, Andre Arko told the story of the quest to make ‘bundle install’ faster.

How to Set Up RSpec
A well produced 6 minute screencast.

To Know A Garbage Collector
Mike Bernstein discusses his experiments with MRI Ruby’s garbage collector, his investigations into other languages and the influence of their GC implementations, the history of the subject, and more.

Kata and Analysis with Jim Weirich
From RubyConf India 2013 comes a live coding session by the inimitable Jim Weirich where he walks through the popular ‘roman numeral’ conversion kata using TDD along the way.

Aaron ‘tenderlove’ Patterson’s RubyConf India 2013 Keynote
An hour with Ruby and Rails core contributor Aaron ‘tenderlove’ Patterson covering esoteric Ruby stuff and Postgres to career advice and cats. Warning: The audio is rather poor here and cuts out entirely for the second half so don’t waste your time if this will drive you crazy.

5 Minutes of EuRuKo 2013
European Ruby conference (EuRuKo) took place in Athens last month and Clemens Helm has put together a 5 minute collection of clips and insights from the event. Includes Matz, Xavier Noria, Benjamin Smith, Pat Shaughnessy and Steve Klabnik.

Nokogiri: History and Future
Nokogiri is the most popular way to parse and process XML in Ruby and at GoRuCo 2013, Mike Dalessio gave a short 11 minute talk on the origins of the project, how to determine if it suits you, and looks at some of the tooling around it.

Libraries, Code and Tools

Upton: A Web Scraping Framework
A Ruby-based web-scraping framework that abstracts away the common parts of web scraping so developers can concentrate on the unique parts of their project.

LanguageFilter: Detect and Optionally Filter Multiple Categories of Language
Wave goodbye to sex, hatred, profanity, violence, etc, in your app.

Lita: A Ruby Chat Bot with Redis-based Storage
Can be twisted to work with any chat service and extended with plugins.

Pkgr: Make A Debian Package Out of A Rails App in 5 Minutes
A high-level tool that turns Rails applications into native Debian packages.

Flynn – Open Source Platform As A Service, Powered by Docker
Flynn is an as-yet-unreleased Heroku-inspired system to simplify deploying and maintaining apps. Instead of using complex config management systems, Flynn allows self-serve management of containerized deployments. The creator is currently trying to raise money to work on the project.

Jobs

Software Craftsperson at Bendyworks
If you’re the type of person who learns new languages as a matter of course, contributes to open source for fun, and ships code with a calm and collected professionalism: you seem like our kind of developer. Join our world-class team in Madison, Wisconsin.

Senior backend- / API-developer at Rabble (Stockholm, Sweden)
Tired of bullshit ads? Help us develop Sweden’s leading app for mobile offers, where customers and businesses meet on equal terms! Join us in the heart of Stockholm to play with geospatial data and Ruby API’s all day long!

Ruby on Rails developer at SupaDupa (London, UK)
We’re looking for an experienced Ruby on Rails developer to join the small team behind SupaDupa.me, an e-commerce platform aimed at creatives. Excited about the challenge of working on the full stack, from front-end dev to system administration? Get in touch!

Ruby Programmer: IT and System Automation
Want to change the future of education? We are trying to build an awesome team that enjoys challenges and results. Interested? Come work with us in beautiful Switzerland.

Ruby Developers at HouseTrip (London, UK)
Want to work with a 18-person team of passionate Ruby developers who love good code and care for their product in central London? We are currently hiring. Ranked by Wired Magazine the number two start-up in London (2012), HouseTrip is Europe’s largest holiday rental booking website!

Last but not least..

ruby -run -e httpd . -p5000
Run a local HTTP server with a single line of Ruby. Just one character longer than the classic python -m SimpleHTTPServer but more obviously flexible (plus, it’s Ruby ;-)).

This Week in Ruby: Matz on Ruby 2.0, Numerous Conference CFPs, Tenderlove on define_method

Welcome to this week’s roundup of Ruby news, articles, videos, and more, cobbled together from my e-mail newsletter, Ruby Weekly. Sorry these roundups have been missing for a couple of months, I’ve been focusing very heavily on the e-mail newsletters which are continuing to grow like crazy! 🙂 I hope to get back into blogging more soon.

Matz on Ruby 2.0
Matz spoke about Ruby 2.0 (‘the happiest release ever’) for 30 minutes at the Heroku Waza event a week ago and the video is already available to watch. He stresses that “Ruby 1.8 will die soon” and encourages everyone to upgrade.

Dynamic Method Definitions
Aaron ‘tenderlove’ Patterson says that “depending on your app, using define_method is faster on boot, consumes less memory, and probably doesn’t signigicantly impact performance” compared to eval-based techniques. (And he has the numbers to prove it.)

Steel City Ruby Conference 2013 CFP Now Open
Steel City Ruby takes places in Pittsburgh, PA on August 16-17 and the CFP is now open if you want to submit a talk. The Burlington Ruby Conference has a CFP open too, as does RubyConf India.

Reading

Inspecting Rails 4 using Ruby 2.0 and TracePoint
Matt Aimonetti shows off a practical use for Ruby 2.0’s TracePoint execution tracing functionality.

Visualizing Memory Leaks in Ruby 1.9
Conrad Irwin on some clever work to extend ObjectSpace with a new find_references method to perform better analysis on object and memory usage on Ruby 1.9.

Parsing TOML in Ruby with Parslet
Recently, GitHub founder Tom Preston-Werner created an interesting INI-influenced ‘TOML’ format. In this series of posts, Nathan Witmer looks at what’s involved in building a parser for TOML using the Parslet PEG parser construction library.

Introducing Ress: A System for Building Mobile Optimized Rails Apps
Matthew Robertson introduces his new system for building mobile-optimized Rails applications using semantic, media query-based device detection and server side component optimization.

Ruby 2.0 Walkthrough: The Best Bits
Some slides from my yet-to-be-released ‘Ruby 2.0 Walkthrough’ that quickly skim through what I consider to be the ‘best bits’ (and not just the headline features).

Rails + Ember.js
An introduction to the open source Ember.js JavaScript app framework for Rails developers.

Watching and Listening

Sinatra in SIX Lines: How to Do Crazy Stuff with Ruby
A talk by Konstantin Haase at Ruby Australia.

Libraries and Code

Phusion Passenger 4.0 Release Candidate 4
Leading Rack-based app deployment tool Passenger gets yet another step closer to the 4.0 release.

time-lord: A Human DSL for Time Expressions
A gem that gives you more human like expressions for time and space math. Get fun like 1.hour.ago.to_range and 200.minutes.ago.to_words

identity_cache: Opt-in Read-through ActiveRecord Caching, From Shopify
IdentityCache lets you specify how you want to cache your model objects, at the model level, and adds a number of convenience methods for accessing those objects through the cache. Uses Memcached as the backend cache store.

neg 1.1.0: A Small PEG Parser Library
“One could say it’s a small brother of Parslet.”

Jobs

Web Application Developer for Big Nerd Ranch
Seeking smart, kind folks who want to make the world a little better through developing, training and writing about cutting-edge code.

JS / Ruby Developer at ReplayPoker (Full-Time, Remote)
Looking for a challenge? Our company is looking for a top-notch junior to mid level developer to join our small team and make a big difference!

Last but not least..

RTanque: A Robot Programming Game for Rubyists
Players program the ‘brain’ of a tank and then send their tank into battle with other bots. Based upon the Java project ‘Robocode.’

The Last Week in Ruby: A Great Ruby Shirt, RSpec Team Changes and a Sneaky Segfault Trick

Welcome to this week’s roundup of Ruby news cobbled together from my e-mail newsletter, Ruby Weekly.

Highlights include: A time-limited Ruby shirt you can order, a major change in the RSpec project, how to make Ruby 1.9.3 a lot faster with a patch and compiler flags, a sneaky segmentation fault trick, several videos, and a few great jobs.

Featured

The ‘Ruby Guy’ T-Shirt
Grab a t-shirt with a cute ‘Ruby Guy’ mascot on the front in time for Christmas. Comes in both male and female styles in varying sizes. Only available till Thursday December 6 though as it’s part of a temporary Teespring campaign (Note: I have no connection to this, it just looks cool.)

David Chelimsky Hands Over RSpec to New Project Leads
After several years at the helm, David Chelimsky is handing over the reins to Myron Marston and Andy Lindeman for RSpec and rspec-rails respectively. Thanks for all your hard work, David.

Upgrading to Rails 4: A Forthcoming Book (in Beta)
Andy Lindeman of the RSpec core team is working on a new book designed to bring you up to speed with Rails 4. It’s in beta so you can support him now, if you like.

Reading

Making Your Ruby Fly
Andrei Lisnic demonstrates a few compile time ‘tricks’ you can use to make your MRI Ruby 1.9.3 faster. The benchmark results are compelling.

Avoiding the Tar Pits of Localization
Jeff Casimir gave a talk on the ‘Ruby Hangout’ about the trickiness of handling internationalization and localization and some tools and libraries you can use to help. Lots of notes here or you can watch the video.

Recovering From Segfaults in Ruby, The Sneaky Way
We’ve probably all seen the dreaded ‘segmentation fault’ from Ruby before. Charlie Somerville demonstrates a rather clever but sneaky way you can ‘recover’ from them in plain Ruby. As he says, you probably don’t want to use this trick seriously.

Use Rails Until It Hurts
Evan Light pushes back a little against the recent wave of OO purity and, as DHH calls it, ‘pattern vision.’

Speeding Things Up With jRuby
MRI’s global interpreter lock prevents running code in parallel without forking the Ruby process. That’s where JRuby can help.

Try RubyGems 2.0
Michal Papis demonstrates how you can give the forthcoming RubyGems 2.0 a spin using RVM.

Watching and Listening

Rapid Programming Language Prototypes with Ruby and Racc
At RubyConf 2012, Tom Lee demonstrated how you can use Racc, a LALR(1) parser generator that emits Ruby code from a grammar file, in the process of creating a simple programming language of your own.

A Tour Into An Oddity With Ruby’s Struct Class
In which I look into why Struct.new(:foo?).new(true).foo? doesn’t work, even though the Struct-produced class and its instances are valid. I dive into the MRI source code a bit to get to the bottom of things. 12 minutes in all.

RubyTapas 027: Macros and Modules
Avdi Grimm’s latest Ruby screencast for non-subscribers to his Ruby video site.

A Rails 4.0 Roundup in 3 Videos
A summary and links to three Rails 4 related videos (all linked in RW before) by Marco Campana. A handy catch up if you didn’t already.

Libraries and Code

Introducing the Rails API Project: Rails for API-only Applications
A set of tools to use Rails for building APIs for both heavy Javascript applications as well as non-Web API clients. This isn’t entirely new but the project has now become more formally established.

Zuck: A Little Helper to Access Facebook’s Advertising API
An early, prototype-stage gem but you may still find it useful.

Jobs

Blazing Cloud is looking for software artisans
to join us in handcrafting beautiful mobile experiences. We are looking for people who believe in a whole product-approach and agile development practices, and have a strong sense of quality.

Last but not least..

Come Speak at O’Reilly Fluent 2013
OK, it’s slightly offtopic but I’m the co-chair for O’Reilly’s JavaScript, HTML5 and browser technology event and I know many Rubyists are also involved in these areas. Our CFP is open until December 10 and we have lots of awesome stuff lined up.

This Week in Ruby: Ruby 2.0 Refinements, Cost of GC::Profiler, and BritRuby Cancelled

Welcome to this week’s roundup of Ruby news, articles, videos, and more, cobbled together from my e-mail newsletter, Ruby Weekly. If you’ve been celebrating Thanksgiving this week, I hope you’re having a good break.

Highlights include: Charles Nutter on Ruby 2.0 refinements, the cancellation of the British Ruby Conference, and DHH’s latest object instantiation (thanks Doug Renn).

Featured

Refining Ruby (or The Best Study of Ruby 2.0 Refinements Yet)
I’ve editorialized the title somewhat but this article by Charles Nutter is a great look into the world of ‘refinements’ in Ruby 2.0, what they’re intended for, and all of the challenges they throw up, both for developers and language implementers.

The British Ruby Conference.. Cancelled
It’s a pretty long story but the British Ruby Conference, which I was getting rather excited about.. is no more. There’s a statement as to why but if you want to join the melee of conversation, try here or here. Luckily other attempts are now afoot – news coming soon.

DHH’s Latest Project: Colt Heinemeier Hansson
It’s DHH’s latest release 🙂 Congratulations to him and his growing family. And before anyone complains about having a human interest story here, cheer up a bit – it’s Thanksgiving 😉

Edge Rails Now Tested on Ruby 2.0 with Travis CI
Little to read but Ruby 2.0 is now most clearly on the edge Rails developers’ radar.

Reading

Deploying Ruby Applications to AWS Elastic Beanstalk with Git
Just last week, Amazon announced Ruby support for its AWS Elastic Beanstalk semi-automated deployment and scaling system. This tutorial by Loren Segal fills in all the blanks by walking us through using it from start to finish with a Rails app.

Zen and The Art of Speaking at RubyConf 2012 – The dRuby Way
An excellent story and walkthrough about both preparing a talk for RubyConf 2012 and what happened while the speaker was there. More articles like this please.

The Cost of Ruby 1.9.3’s GC::Profiler
James Golick presents an examination of the flaws in Ruby 1.9.3’s included garbage collector instrumentation in his typically punchy style. Luckily he presents a potential solution too: GC::BasicProfiler.

Is Your Application Running with Ruby – Slow?
Two developers moved a large Ruby webapp between two machines and experienced a 50% drop in performance. Why? Clue: It was something to do with RVM.

A 2012 Mac Setup for Ruby development
We see articles like this quite often but there are a lot of handy links here despite not being particularly Ruby focused.

A Lightweight ‘CMS’ Using Ruby and Google Drive
An interesting approach to content management. Let users enter text in a Google Drive spreadsheet, grab it with Ruby, and use the data to create your content or templates locally.

A ‘yield’ Gotcha Every Ruby Developer Should Be Aware of
It’s not a true yield gotcha but is something you might trip over nonetheless regarding earlier than expected returns. Luckily, ‘ensure’ blocks help save the day.

Profiling Ruby (or How I Made Rails Start Up Faster)
Four steps: measure, find the problem, fix, and repeat.

Watching and Listening

Guest User Records – RailsCasts
Ryan Bates is back with another Rails Cast, this time demonstrating how to create a ‘temporary guest record’ in a Rails app so users can try out apps without filling in their information up front.

Matz Speaking at LinkedIn about Ruby
Back in October, Matz spoke at LinkedIn about his background, Ruby’s history, and his current work. I enjoyed this.

Libraries and Code

Convert Syck to Psych YAML Format
Change has been afoot with Ruby’s attitude to YAML parsing for a while now but the shift from Syck to Psych can still cause issues. If you still have legacy Syck-produced YAML files around that are causing problems, this code might help.

Daybreak: A Simple Key/Value Store for Ruby
Very lightweight and very Ruby (in the best possible way).

chruby: Changes The Current Ruby
An ‘ultra-minimal’ (around 80 lines) alternative to RVM and rbenv. chruby allows one to install rubies into /usr/local/$ruby, /opt/$ruby or ~/.rubies/$ruby but install gems into ~/.gem/$ruby/$version. chruby only modifies $PATH, $GEM_HOME and $GEM_PATH, and does not hook cd or rely on shims.

Jobs

Last but not least..

Giles Bowkett: ‘I Wrote An eBook In A Week’
Being silly enough to not send me a copy for review or give me a title, all I can do is say Giles has written an interesting sounding book about how ‘DHH gets OOP wrong’ but why that’s OK. It costs money but hopefully we’ll see some reviews soon. He does have a no-quibble refund policy, however, and his writing is always an eye opener.

This Week in Ruby: Ruby 2.0 Refinements, Cost of GC::Profiler, and BritRuby Cancelled

Welcome to this week’s roundup of Ruby news, articles, videos, and more, cobbled together from my e-mail newsletter, Ruby Weekly. If you’ve been celebrating Thanksgiving this week, I hope you’re having a good break.

Highlights include: Charles Nutter on Ruby 2.0 refinements, the cancellation of the British Ruby Conference, and DHH’s latest object instantiation (thanks Doug Renn).

Featured

Refining Ruby (or The Best Study of Ruby 2.0 Refinements Yet)
I’ve editorialized the title somewhat but this article by Charles Nutter is a great look into the world of ‘refinements’ in Ruby 2.0, what they’re intended for, and all of the challenges they throw up, both for developers and language implementers.

The British Ruby Conference.. Cancelled
It’s a pretty long story but the British Ruby Conference, which I was getting rather excited about.. is no more. There’s a statement as to why but if you want to join

Continue reading “This Week in Ruby: Ruby 2.0 Refinements, Cost of GC::Profiler, and BritRuby Cancelled”

This Week in Ruby: MRI 1.9.3-p327, Rails 3.2.9, Capybara 2.0, and the Fukuoka Ruby Award

Welcome to this week’s roundup of Ruby news, articles, videos, and more, cobbled together from my e-mail newsletter, Ruby Weekly.

Highlights include: MRI 1.9.3-p327, Rails 3.2.9, Capybara 2.0, and the Fukuoka Ruby Award.

Featured

Ruby 1.9.3-p327 Released: Fixes a Hash-Flooding DoS Vulnerability
Carefully crafted strings can be used in a denial of service attack on apps that parse strings to create Hash objects by using the strings as keys. This new patch level release of 1.9.3 counters the issue.

2013 Fukuoka Ruby Award Competition
Each year Matz and the Government of Fukuoka in Japan run an award for Ruby programs. Submit by November 30th to enter – it doesn’t have to be an all new app either. The grand prize is 1 million yen (about $12,000).

Capybara 2.0.0 Released: The Acceptance Test Framework for Webapps
Not backwards compatible with Capybara 1.x so be careful and read the notes. It also drops support for Ruby 1.8.

Reading

Printing ‘Hello, World’ in Style (Concurrently)
Daniel Szmulewicz looks at what’s involved in using Celluloid and two actors to print out ‘Hello, World’.

Matz Is Not A Threading Guy
Jesse Storimer talks about the status of concurrency in Ruby and Matz’s opinions in a Q+A session at RubyConf. Reinforcing the status quo, Matz said: ‘Using multiple processes is the best way to do concurrency in MRI for the near future.’

rspec-rails and Capybara 2.0: What You Need to Know
Andy Lindeman of the RSpec core team talks about the new Capybara 2.0 release and what you need to be aware of when using it with RSpec and Rails.

Why Ruby Class Methods Resist Refactoring
Bryan Helmkamp demonstrates why he thinks class methods are much trickier to refactor than instance methods.

Reference Graphs as Tools for Refactoring
A quick look at using graphs of references in order to refactor Ruby code.

Watching and Listening

How I Set out to Benchmark an Algorithm and Ended Up Fixing Ruby
Joshua Ballanco wanted to build a delegation library but got lured into the worlds of benchmarks and garbage collectors.

Ten Things You Didn’t Know You Could Do in Ruby
A month ago, we linked to the slidedeck of James Edward Gray II’s Aloha on Rails talk with 101 various Ruby tricks and code snippets. Now the video is available too! Enjoy.

The Ruby Rogues on Documenting Code
The Ruby Rogues tackle a sore subject: documentation.

Libraries and Code

ruby-lint: Static Code Analysis and Linter for Ruby
Currently a prototype and work in progress so your mileage may vary. It makes it possible for developers to detect errors such as undefined or unused variables and the use of non existing methods.

Spinel: A New, ‘Ruby-Infused’ Open Source Game Engine
Spinel is a new open source game engine still under development that uses ‘mruby’ (the embeddable Ruby interpreter Matz is currently working on) as its scripting layer while leaning on speedy C/C++ under the hood.

Version Cake: An Unobtrusive Way to Version APIs in Your Rails App
Easily version views with their API version in the filename (e.g. index.v3.xml.builder). The cool part is if a request comes in for a different version, the closest version will be used.

Jobs

Test Driven JavaScript and Ruby Developer [San Francisco and Santa Monica, CA]
Carbon Five builds web and mobile products for startups, institutional companies and non-profit organizations using a finely tuned agile process with cutting edge tools and technology. Join a team of seasoned pros in a highly-collaborative environment and work on a new project every couple of months.

Last but not least..

Write Faster Rails Tests: Insights via E-mail
Get an infrequent e-mail from Thoughbot’s Ben Orenstein packed with battle tested advice for speeding up your Rails apps’ tests.

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.

This Week in Ruby: JRuby 1.7.0, Passenger 4.0b1, Ruby 2.0 Feature Freeze

Welcome to this week’s Web-based syndication of Ruby Weekly, the Ruby e-mail newsletter.

Highlights include: a massive release for JRuby, a promising beta for Phusion Passenger 4.0, the announcement of a ‘feature freeze’ for Ruby 2.0, the Rails Rumble 2012 results, and just what did the Rails Rumble winners use to power their apps?

Featured

Ruby 2.0.0 ‘Feature Freeze’ Announced
Right on schedule, the core Ruby team have announced a ‘feature freeze’ for the forthcoming Ruby 2.0. All this means for now is that no features not already approved by matz will make it into 2.0.0.

Working with TCP Sockets: Jesse Storimer’s New Ruby E-Book
Jesse Storimer (‘Working with Unix Processes’) has released his latest book, Working with TCP Sockets. If you want to learn more about socket programming from a Ruby POV, check it out.

The 2012 Rails Rumble Results
A superb Rumble with 500 teams taking part and findthin.gs, a TV series and movie search tool, took the lead with the judges, with ‘Deploy Button’ being the public’s favorite.

Reading

Yehuda Katz: My Problem With Turbolinks
Rails 4.0’s ‘Turbolinks’ feature has been.. a little controversial. Yehuda explains what they are, as well as why he’s not entirely happy with them. And as a Rubyist who’s also very deep into JavaScript, his opinion counts for a lot.

Rails Rumble Winners, A Gem and Technology Teardown
The folks at Dwellable looked at the Gemfiles of the ten Rails Rumble winners and put together some interesting stats of what gems and technologies they used. Winning technologies included jQuery, CoffeeScript, Bootstrap, Sass, RSpec, Sidekiq and Haml.

Eating The (Ruby) 1.9 Elephant
The New Relic engineering team on the trials, tribulations, and eventual success in switching their app over to Ruby 1.9.

Version Your Ruby Objects with Aversion
Include the Aversion module into your objects and whenever the state of that object changes, Aversion remembers the change and keeps track of the history. Clever idea though beware of memory use if you go over the top with it.

Try mruby Today
mruby is a smaller, embeddable Ruby implementation that Matz is currently working on. This post by Richard Schneeman digs into what it’s about and how to give it a go for yourself. Aimed at an introductory level.

Create a Custom Slider With RubyMotion
A complete walkthrough of customizing a UISlider to get your own custom look and feel for a control within an iOS app built on RubyMotion.

Hybrid Concurrency Patterns: Threads and Events in Harmony with Celluloid
Describing a slide deck with ‘Ruby developers need to stop using EventMachine. It’s the wrong direction’ is a sure-fire way to get attention 🙂

Growing a Rails Application: How We Made Deploy Fast Again
The developers at PagerDuty brought their deploy time down from 10 minutes to 50 seconds. How? You gotta read for that.

Watching and Listening

Aaron Patterson on ‘Rails 4 and the Future of Web’
Earlier this month at Aloha Ruby Conference 2012, Aaron ‘tenderlove’ Patterson gave a keynote on a myriad topic of topics including threading, Rack, locking, and cats and how they relate to Rails 4.

Cache Digests (RailsCasts)
Episode 387 of RailsCasts is here(!) and Ryan Bates looks at the cache_digests gem which automatically adds a digest to fragment cache keys based on the template (so if a template changes the cache auto-expires).

The Ruby Rogues Discuss Service-Oriented Design with Paul Dix
Service-oriented design is the idea of taking a complex application with many parts and splitting them out into more modular parts that communicate with each other. Paul Dix chats to the Rogues about the concept.

Libraries and Code

GitLab 3 Released: An Open Source GitHub-Clone-In-A-Box, Sorta
GitLab is an open source Rails app that provides an interface for git repository hosting and management. Version 3 includes an in-page file editor. It takes a lot of inspiration from GitHub, though that’s not a bad thing.

RubyInstaller 1.9.3-p286 Released
In the last issue, we mentioned the new MRI 1.9.3-p286, released to patch up a couple of security vulnerabilities. Now, the Windows-based RubyInstaller distribution is also up to date (there’s also a build of 1.8.7-p371 if you’re still on 1.8.)

Gamebox: A Game Template for Building and Distributing Gosu Games
Generate a game and get it up and running quickly. Could be very handy for contests like Ludum Dare! It’s not new but somehow I hadn’t seen this before.

FIFO: Queueing Library Using Amazon’s Simple Queue Service
FIFO is a Ruby queueing library built on top of Amazon SQS. Like DelayedJob it encapsulates the pattern of executing tasks in the background but doesn’t rely on a database.

LiterateRandomizer: A Random Sentence and Paragraph Generation Library
Rubber tree and watched him. Vulgarized the larger than the faithful presence! Go slowly protruded round the beginning of shoulders.

Jobs

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

gSchool: An Intensive 6 Month Web Development Training Program
An intensive 6 month program to learn Ruby, Rails, JavaScript, CSS and HTML5 from scratch so you can build your own webapps. Run by esteemed Rubyist, Jeff Casimir.

The Past 2 Weeks in Ruby: 1.9.3-p286, JRuby 1.7RC2, Sidekiq Pro and Much More

Welcome to this week’s Web-based syndication of Ruby Weekly, the Ruby e-mail newsletter (just passed 17,000 subscribers – c’mon, sign up! :-)). 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 from now on.


The latest highlights include:

Featured

Ruby 1.9.3-p286 Released
The latest, official production patch-level release of MRI 1.9 is out. The primary motivation was for fixing a couple of security vulnerabilities and a handful of bugs.

A Whirlwind Tour of Rails 4
Andy Lindeman presents a 40 minute tour of some of the forthcoming Rails 4’s new features, including strong_parameters, Russian Doll caching, PATCH verb support, removal of Rails 2 finder syntax, and more. Recording and audio quality is very good.

The British Ruby Conference: Standard Tickets Now on Sale
Rubyists like Avdi Grimm, Russ Olsen, Dr Nic Williams, Aaron Patterson (and many more!) will be in Manchester, England in March 2013. Join us by grabbing a ticket now.

101 Things You Didn’t Know Ruby Could Do
James Edward Gray II just gave a talk at the Aloha Ruby Conference covering a bundle of random tricks you can do with Ruby. Here’s the slidedeck.

Sidekiq Pro: A Commercial, Supported Version of Sidekiq
Sidekiq is a efficient background job processor (think Resque on steroids) that’s free and open source, but creator Mike Perham is now offering a commercial variant with extra features and support.

RubyConf Australia 2013 Call for Proposals Open till October 31st
The conference itself is in Melbourne between February 20-22, 2013. Fancy a trip to the homeland of Dr Nic?

Reading

7 Ways to Decompose Fat ActiveRecord Models
Some handy tips and examples on breaking apart ‘fat models’ into separate objects that each encapsulate a concept.

So You Want To Optimize Ruby
Charles Nutter of the JRuby core team explains some of the ‘hard problems’ Ruby implementations need to solve before getting all gung-ho with benchmarks.

Explain: A Ruby Source to Natural Language Compiler
An interesting experiment in automatically converting Ruby code to English prose.

Would You Like A Mobile App With That?
Want to build your first Rails API-backed iPhone app? Follow along with Richard Schneeman here.

Lazy User Registration for Rails Apps
Goes into the concept of having your auth system providing an omnipresent anonymous user which can then be ‘upgraded’ to a regular user when the visitor chooses.

An Interview with Xavier Noria, The Code Gardener
Xavier Noria (a Ruby Hero and Rails core contributor) faces Pat Shaughnessy for an interview about how he got started with Ruby and Rails, what’s coming in Rails 4.0, and more.

Booleans are Baaaaaaaaaad
John Nunemaker is back and flying the flag for state machines saying that ‘using true/false for state is bad.’ Several interesting comments on this one; go join the fray.

Ruby Microframeworks: Camping and Cuba
Dhaivat Pandya looks at two unconventional webapp ‘microframeworks’.

How to Win a Hackathon
The Rails Rumble is just around the corner, so Brian Burridge has put together a series of seven short posts looking at how to do well in a hackathon situation.

Moving Forward With The Rails Asset Pipeline
A look at what’s happening with the Rails asset pipeline in Rails 4.0 and beyond.

Automating Web Performance with mod_pagespeed
mod_pagespeed is a just in time (JIT) performance compiler for the web. This free and open-source Apache module automates all of the most popular web-performance best practices by dynamically rewriting and optimizing your website assets. Google’s Ilya Grigorik shows it off.

Capistrano + Rails + Bundler + RVM + Unicorn + EC2 == Deployed
Practical instructions for deploying a Rails app on Amazon EC2 using Capistrano, RVM, Bundler and Unicorn.

Watching and Listening

Exploring RubyGems (RailsCasts)
In a mere 7 minutes, Ryan Bates offers some tips on researching gems to decide which ones to choose, or when to build something from scratch.

Ruby’s Symbols Explained
Never quite got your head around how Ruby’s symbols work and what they represent? Here’s a video from my Ruby Reloaded course now available to watch on YouTube.

Go Ahead, Make a Mess!
Sandi Metz, OO guru and author of ‘Practical Object-Oriented Design in Ruby’, talks about using the principles of object oriented design to make ‘messes’ in code manageable. Sandi always gives great talks; check it out.

How to Find Valuable Gems
At RailsConf 2012, Nathan Bibler talked about ways to find the right gems for your project (along similar lines to Ryan’s video above). My answer, of course, is to read Ruby Weekly and check out RubyFlow 😉

The Ruby Rogues on (Physical) Developer Environments
A discussion about ergonomics, chairs, standing desks, working in coffee shops, colors, multiple monitors, background noise, and more with the five always charming and chatty Ruby Rogues.

Live Reloading with Rails 4
Aaron ‘tenderlove’ Patterson shows off something he’s working on that brings live reloading functionality to edge Rails.

PeepCode Releases ‘Meet Chef’ Screencast
Chef is a handy sysadmin and server configuration tool and former 37signals sysadmin Joshua Sierles goes through the basics of building Chef recipes including for deploying Rails apps.

RubyTapas Episode 7: Constructors
Avdi Grimm continues with his RubyTapas project with this free episode digging into how Ruby constructs new objects and how to customize constructors for your own ends.

Libraries and Code

Opal: Ruby to JavaScript Compiler
A source-to-source compiler (so no special VM required) and the compiled code aims to be fast and efficient by mapping directly to underlying JavaScript features and objects where possible. Not the first such experiment but well presented.

Selfstarter: Roll Your Own Crowdfunding
A project called Lockitron raised $1.9m recently in a crowdfunding campaign. They had to build their own Kickstarter-esque software as Kickstarter rejected them and.. it’s in Rails and they’ve shared the source.

Fun with Unicode Math in Ruby
Want to use Unicode’s square root, sine, fraction, infinity, pi, or other mathematical symbols in your Ruby code? The unicode_math gem gets you there.

node-mruby: Embedding Ruby into Node.js
mruby is an embeddable Ruby interpreter and node-mruby makes it possible to embed mruby into Node.js. Very much a prototype/work in progress for the curious.

digest-sha3-ruby: An SHA-3 Library for Ruby
Based on the reference C implementation and attempting to maintain the typical ‘Digest’ API style, Phusion has released a library that implements the SHA-3 (Keccak) cryptographic hashing algorithm.

Poltergeist 1.0: Hooking Up Capybara to PhantomJS
Allows you to run your Capybara tests on a popular and powerful headless WebKit browser: PhantomJS.

ClientSideValidations 3.2 Released: A Key Release
ClientSideValidations extracts the validations from your Rails models and applies them to your forms directly on the client. 3.2 brings quite a few changes and extras, such as support for Rails 4.0’s Turbolinks feature.

Jobs

Ruby Engineer
Zendesk is looking for a Ruby engineer to join a team in San Francisco that’s focused on improving the application from the inside out. We care about elegant code and we are passionate about shipping great software – just like you.

Last but not least..

rubytune: Rails Shop Specializing in Performance and Troubleshooting
Joshua Sierles (ex-37signals) and Sudara Williams (ex-Engine Yard) have launched a consultancy focused on providing scaling, performance and server advice for Rails developers.

Next Ruby Reloaded Course to be Announced Soon
From time to time I run an online Ruby course aimed at intermediate Rubyists looking for a refresher or Rails developers who want more of a deep dive into Ruby itself. The 5th run finished a few weeks ago and I’ll be opening registration for Ruby Reloaded 6 very soon. Sign up to the list at the far bottom of the page to get a discount code and notified first (since it fills quickly.) Thanks!

This Week in Ruby: Rails Rumble Dates, Active Admin 0.5, Protected Methods in Ruby 2.0

Welcome to this week’s Web-based syndication of Ruby Weekly, the Ruby e-mail newsletter (Now at 16,300 subscribers! C’mon.. check it out ;-)).

Highlights include: an announcement over the dates for this year’s Rails Rumble, releases of Active Admin 0.5 and Bundler 1.2, as well as Aaron Patterson looking at a difference in Object#respond_to? in the forthcoming Ruby 2.0.

Featured

The Rails Rumble is Back! Dates and Details Announced
The popular 48 hour Ruby development contest is back and will run this October 13th and 14th. Registration opens on October 1st. Learn all about it here.

Active Admin 0.5.0 Released
Active Admin is a popular administrative interface generation system for Rails and a new version has been a long time coming. 0.5 introduces batch actions (i.e. select multiple rows and delete them all), a customizable root route, and more view components and factories.

Bundler 1.2 Released
The vital dependency management tool gets an update and now supports specifying Ruby versions in Gemfiles, local git repos, and using ‘bundle package’ to package git and local path dependencies.

‘Why The Lucky Stiff’ Documentary to Screen at RubyConf 2012
Fabio Akita talks about Why The Lucky Stiff, a creative and enigmatic Rubyist who disappeared from the Web back in 2009, and reveals that a documentary about his work is under production and due to be shown at RubyConf 2012.

ConFoo 2013 Call for Papers is Open
The Call For Papers is only open for 10 more days and the conference itself is in February 2013.

Reading

Protected Methods and Ruby 2.0
Aaron Patterson looks at how the behavior of Object#respond_to? will change with regards to protected methods in Ruby 2.0.

Backbone.js and Rails
Wondering exactly what you need to do to create a Backbone.js app that leans on
Rails? This blog post (first in a series of two) covers it with an example app and an in-depth look at rendering with Mustache.

How to Easily Create Single Page Apps with Sprockets
A short and sweet example of using Sinatra and Sprockets for the back-end of a single page webapp.

A Ruby exit, exit!, SystemExit and at_exit Blunder
Phil Whelan discovers that the ‘exit’ method doesn’t always do what its name seems to suggest..

Pragmatic Concurrency With Ruby
A delightfully in-depth look at some Ruby concurrency topics by Dotan J. Nahum.

Performing Linear Regression with Ruby
A walkthrough of the basics of linear regression (useful in statistical analysis) and using Ruby to perform simple linear regression.

Random Ruby Tricks: Class.new
Steve Klabnik shares some pointers to using Class.new to summon up new classes.

Ruby Tidbit: __LINE__ and Heredocs
An interesting quirk in how __LINE__ works in association with here documents. Makes sense but I’d never thought about this before.

Building a Geofencing System with Ruby and MongoDB
A short series of posts by John Murray that digs into using Ruby and MongoDB to build a ‘geofencing’ system.

PiecePipe Examples: Map, Aggregation and Group-By
Shawn Anderson shows off PiecePipe, a Ruby library for writing code where you focus on the flow of data through a pipeline of steps without worrying about the iteration and ‘glue code.’ An interesting approach.

Code Tuning, A Programming Pearl in Ruby
Daniel Lobato seems to share my love for the classic ‘Programming Pearls’ book and digs into optimizing a simple sequential search through an array.

What’s New in the Upcoming SimpleForm 2.1.0
SimpleForm is a popular Rails form plugin and this post shares some of what will be in the forthcoming 2.1.0 release.

Watching and Listening

A 2 Hour Introduction to Ruby On Rails
At a recent Boston Ruby Group Project Night, Dan Pickett gave a 2 hour long ‘introduction to Rails’ workshop, building a Rails app along the way.

JRuby Basics (RailsCasts)
Ryan Bates wanders off of the usual Rails-focused trail to give a 10 minute tour of JRuby, including how to set it up and use Java classes from within Ruby.

FnordMetric (RailsCasts)
FnordMetric is a Redis and Ruby based realtime event tracking app that’s great for keeping track of user activity in your Rails app. Ryan Bates demonstrates.

The Ruby Rogues Discuss ‘Growing Object Oriented Software Guided by Tests’
The inimitable Ruby Rogues spend an hour discussing the superb ‘Growing Object Oriented Software Guided by Tests’ by Steve Freeman and Nat Pryce. If you haven’t read this book yet, you should check it out.

Why The Lucky Stiff Documentary Trailer
A short 2 minute preview of a documentary about Why The Lucky Stiff that’s planned to be screened at this year’s RubyConf.

Libraries and Code

Labrador: A Web-based Client for Your Rails Development Databases
Aims to be database agnostic and includes Pow integration and automatic database integrations. Looks really nice.

Rubysh: Ruby Subprocesses Made Easy
Makes shelling out easy with a sh-like syntax layer for Ruby.

pg_power: ActiveRecord Extension for PostgreSQL
An ActiveRecord extension which lets you take advantage of several special PostgreSQL features with Rails, including PostgreSQL schemas, partial indexes, foreign keys, and comments.

Zeus: Boot Any Rails App in Under A Second
A new Rails app preloader, but one that takes a radically different approach to Spork and has very delicate Ruby and OS version requirements.

Ruby Decorators: Python-esque Method Decorators for Ruby
It’s not a new idea but I like Fred Wu’s simple implementation of Python-like method decorators using the unary + operator and method_added.

Jobs

Software Engineer – Experienced / Senior [New York City]
Are you an innovative software engineer with skills equivalent to 5–7 years of Java or Ruby experience? Do you want to be a key member of an incredibly driven team that knows how to have fun? We’re building our team from 14 to 21 this year. Join us!

Ruby Developer, Nature Publishing Group (London, United Kingdom)
Passionate about technology and science? Come join our team of Ruby developers at the Nature Publishing Group, responsible for the most influential scientific journals in the world for over 140 years.

Last but not least..

5500 Flashcards on Web Development With Rails
Jack Kinsella has released a free set of 5500 questions and answers on various aspects of Ruby, Rails, JS and CoffeeScript development. They’re designed to be used with Anki, a free open source flashcard viewer.

What is ARGF.class in Ruby 1.9?
A question on Stack Overflow shows off an interesting quirk in Ruby 1.9. Why does “ARGF.class” give such a curious response? Two respondents try to come up with an answer.

A Mega Ruby News and Release Roundup for July 2012 in 97 Links

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.

Headlines

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

Phusion Shares A Sneak Peek of the Phusion Passenger 4.0 Roadmap
After a period of radio silence, the Phusion guys are back on the air! With their Passenger system being the most popular way to serve up Ruby apps, all eyes are on the forthcoming Passenger 4.0 and here they explain some of what’s coming up.

Edge Ruby/Ruby 2.0 Adds %i and %I To Notate An Array of Symbols
As %w and %W notates a string into an array of words, %i and %I does the same but into an array of symbols. Coming to an MRI near you.. eventually. Why not %s and %S? They’re already taken. In this case, the ‘i’ stands for intern/interned.

Now In Print: ‘Deploying Rails’ by Tom Copeland and Tony Burns
Make sure your next production deployment goes smoothly with this hands-on book, which guides you through the entire production process. Dives into Puppet, Capistrano, Vagrant, Nagios, Ganglia, and all that sort of devops-y stuff.

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.

Code Climate (Metrics Service) Is Now Free for Open Source Projects
Code Climate is a hosted software metrics tool for Ruby apps and it’s now available to use for free on public open source projects.

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.

Reading

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.

Is It Live? Rails 4.0 To Get ‘Live Streaming’ Support
Rails 4.0 will be getting real-time data streaming support as it’s just been baked into rails-edge. Aaron Patterson shows it off in this post (yep, you can play with it now!)

Florian Hanke Benchmarks Unicorn, Thin and Ricer
In trying to make his Picky semantic search engine tool faster, Florian Hanke has tried to find the fastest Ruby Web daemon for his uses.

Getting Your Heart Rate Using R and Ruby
A fun post looking at marrying up R and Ruby to tell your heart rate from a small bit of video.

Ruby Constructs: Classes, Modules and Mixins
LivingSocial’s Matt Aimonetti clears up some concepts and misconceptions around classes, modules and mixins and how you should or shouldn’t use them.

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.

The Hitchhiker’s Guide to Riding a Mountain Lion
Apple’s latest operating system dropped yesterday and Prem Sichanugrist of Thoughtbot shares some insights into the upgrade process for Rubyists.

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.

Rails, Objects, Tests, and Other Useful Things
Noel Rappin reflects on the various ‘Object-Oriented Rails’ and ‘fast tests’ discussions going around the Ruby world as of late.

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.

Processing Images with CarrierWave
An entry level tutorial to managing uploaded files in a Rails app using CarrierWave.

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.

Streaming Zlib Processing for Ruby (in Ruby Core/2.0)
Eric Hodel has checked in a patch that adds streaming zlib processing to Ruby core. Why’s this a big deal? For starters, significant memory savings when compressing large files.

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.

Case Study: Using Ruby Tools for Non-Ruby Projects
A look at using Ruby tools (like Bundler and Guard) to automate common Web development workflows.

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

RubyMotion Tutorials: A Resource Site
A simple resources site aiming to collect together links relevant to learning or working with RubyMotion.

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.

Functional View and Controller Testing with RubyMotion
RubyMotion (the Ruby toolkit for building iOS apps) now features a new testing layer that lets you write functional specifications for the views and controllers of your apps.

My Favorite Bundler Feature
Jerod Santo loves being able to crack open his gems.

The History of Ruby in Version Numbers
A simple GitHub gist showing what versions of MRI Ruby were released when.

Watching and Listening

Active Record Deep Dive (in 11 Short Videos)
Richard Schneeman explains ActiveRecord’s query interface in several short screencasts. You’re bound to pick something up.

Using MiniProfiler with Rails (RailsCasts)
MiniProfiler allows you to see the speed of a request conveniently on the page. Ryan Bates shows off its usage with Rails.

Making a Rails App Fast and Scalable
Slide deck for a talk given by Richard Schneeman on making a Rails App fast and scalable.

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.

Five Things You Didn’t Know Your Documentation Tool Could Do
Loren Segal, the creator of Ruby documentation tool YARD, looks at some of YARD’s lesser known features and shows off ways to visualize your code, get basic code metrics, and ensure overall quality in your documentation.

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 (RailsCasts)
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

Synack: Send Messages to OS X Mountain Lion’s Notification Center
A client/server wrapper for terminal-notifier that allows arbitrary messages to be sent to OS X 10.8’s Notification Center.

Ricer: Fast Rack-Compliant Ruby Web Server Written in C
Unfortunately named but claims to be faster than Thin and Unicorn.

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.

Clean Tests: Sugar for Making Test::Unit Tests Clearer
Dave Copeland’s Clean Tests aims to bring clarity to Test::Unit tests and provides a Given/When/Then structure for clarifying intent.

Brakeman 1.7.0 Released: The Rails Security Scanner
Adds support for a recent HTTP digest auth vulnerability and includes numerous improvements.

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.

Graphene: Stats and Graphs From Collections Of Ruby Objects
A new Ruby gem for transforming collections of Ruby objects into subtotals, percentages, tables and graphs.

Stamp: Format Dates and Times Using Human-Readable Examples
Sick of arcane strftime formatting? Give Stamp an ‘example’ of a date format you want and it’ll dish up a similar date or time for you. Not new but somehow I missed it till now!

csv_shaper: DSL for Creating CSV Output
CSV Shaper claims to make the painful world of CSV rendering and formatting easier. Supports both pure Ruby and Rails.

Sex Machine: Get Gender from First Name
This unfortunately named gem leans on a open source name-to-gender tool to give similar functionality to Rubyists.

classy_enum: Class Based Enumerator Gem for Rails
Adds class-based enumerator functionality to ActiveRecord attributes.

Rubyception: A Realtime Rails Log in Your Browser
Add Rubyception to your Rails project, navigate to /rubyception and get WebSocket-powered live log updates.

Axlsx: Office Open XML Spreadsheet Generation Library
Complete xlsx generation with support for charts, images, automated column width, customizable styles and full schema validation.

Announcing minitest-rails: Extra MiniTest Support for Rails
minitest-rails is a library that enables you to test your Rails 3 apps using minitest, the testing framework that comes in the Ruby 1.9 standard library. Documentation and a short introductory screencast included.

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.

Jim Weirich’s Approach to ‘Programming with Nothing’
1800 lines of a cold and lonely place. Intense.

Jobs

Senior Software Engineer (Ruby) at FreeAgent [Edinburgh, Scotland]
FreeAgent are looking for a talented and passionate software engineer to join their engineering team in a senior capacity to work on their popular online accounting software.

Software Engineer at Webdoc SA [Switzerland]
You’ll join the team that develops Webdoc (a rich media sharing site) and work across the stack – Rails, MongoDB, mySQL and JavaScript.

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.

This Week’s Ruby News: Ruby 1.8.7-p370, Rubyist Text Editor Poll Results, MagicRuby and More

Welcome to this week’s Web-based syndication of Ruby Weekly, the Ruby e-mail newsletter (which just turned 100 weeks old this week – issue 100! :-))

Highlights include: Ruby 1.8.7’s last ever bug fix release, the Ruby OpenSource Challenge, a new open source code review system, and the results of a Rubyist text editor poll.

Headlines

Ruby 1.8.7-p370 Released: The Last Bug Fix Release for 1.8.7
Still using 1.8.7? Right on schedule, this is your last bug fix release, with only security fixes available for the next year before 1.8.7 is abandoned entirely.

The Ruby OpenSource Challenge
Backed by a large variety of prize givers and sponsors, the Ruby OpenSource Challenge encourages you to help improve the Active Admin project.

RubyShift 2012: Ukrainian Ruby Conference, September 29-30
Call for proposals and registration are now both open.

The Ruby Greener Test Challenge (A Windows Challenge)
Luis Lavena is well known for his efforts to make Ruby better on the Windows platform, and he’s put out a call to action to clean up the 9 failures and 2 errors in MRI’s test suite.

MagicRuby – A Ruby conference *inside* Walt Disney World!
Join us October 5 and 6, 20120 for MagicRuby 2012. This year we’re dropping some knowledge inside of Disney’s Hollywood Studios Theme Park! Our CFP and registration (only $199 – $49 for Disney passholders) are OPEN, so head over to our site for more info.

Reading

Constant Stubbing in RSpec 2.11
It’s not out yet but Myron Marston gives us a look at a new feature coming to the forthcoming RSpec 2.11: the ability to stub constants.

Vim for Ruby on Rails (and A Sexy Theme!)
Last week’s link to using Sublime Text 2 was popular but this week’s turn is Vim! Aston J aims to show off why Vim is a good choice for Rails development along with a bevy of commands.

Watching

Libraries and Code

Barkeep: An Open Source Code Review System
Billing itself as a “friendly code review system”, Barkeep is a self hosted tool to do code reviews on your projects. It can watch commits made to any Git repository, see diffs, write comments, and have comments e-mailed to your collaborators.

Flowdock Open Sources ‘Oulu’: An EventMachine-Driven IRC Gateway
Flowdock, a collaboration app with chat support, has open sourced their EventMachine-based IRC gateway. Could come in particularly handy if you want to integrate IRC with your own apps.

OmniContacts: Rack Middleware for Importing E-mail Contacts
A library that enables users of an application to import contacts from their email accounts (currently supports Gmail, Yahoo and Hotmail.) As a Rack middleware, you can use with any Rack-based framework, including Rails.

Seedbank: Organize Your Rails App’s ‘Seed Data’
Seedbank allows you to structure your Rails seed data instead of having it all dumped into one large file.

Rack-Policy: Middleware for Complying With the EU ePrivacy Directive
If you’re not based in the EU, you can ignore this idiotic piece of legislation but otherwise Rack-Policy helps your Ruby webapps comply with getting implied consent before any cookies can be stored on your visitors’ machines.

Image Sorcery: A Ruby ImageMagick Library ‘That Doesn’t Suck’
Image Sorcery leverages all three of ImageMagick’s command line tools, mogrify, convert, and identify, to give you image processing functionality, minus the memory leaks. (Looks a lot like MiniMagick on the surface.)

Periscope: Expose Your Scopes to the World
Periscope makes it easy to chain your scopes from the query parameters on your index actions. Includes support for ActiveRecord, MongoMapper, Mongoid and DataMapper.

Twitter Gem Hits Version 3.0
The popular ‘twitter’ gem has reached version 3.0 (now at 3.0.2). Only a changelog to go on but lots of changes you’ll need to be aware of if you use the library.

Ruby OpenSSL Cheat Sheet
August Lilleaas shares a collection of examples for using Ruby’s OpenSSL bindings (as found in the Ruby standard library).

Jobs

Rails Developer at OneLogin [San Francisco]
Join a team of Ruby engineers building the industry’s easiest-to-use Identity and Access Management solution for enterprises. 2-3 years of experience with Rails necessary and community involvement a big plus.

Last but not least..

What Is Your Primary Text Editor for Ruby Development?
Now at over 4,000 votes, this poll is an interesting look at what text editors Rubyists are using. It looks like the era of TextMate has truly passed.

This Week in Ruby: Rails 4 Sneak Peeks, A Gist Drama, and a CoffeeScript Book (by a Rubyist!)

Welcome to this week’s Web-based syndication of Ruby Weekly, the Ruby e-mail newsletter.

Highlights include: MagicRuby 2012, a code structure/patterns ‘drama’, Mark Bates’ new CoffeeScript book, minitest 3.2.0, and the Ruby Rogues chatting with Jim Weirich (who I met for the first time this week, ironically at a JavaScript conference!)

Headlines

‘Programming in CoffeeScript’ by Mark Bates, Now Available
Mark Bates, a Ruby developer, was won over by CoffeeScript and has written a book for Addison-Wesley which has now been published. Despite being a language that compiles down to JavaScript, CoffeeScript has become relevant to Rails developers in recent times given its inclusion in Rails 3.1+.

Reading

Am I Doing It Wrong?
A month ago, Rubyist Justin Ko asked fellow Rubyists if his code in a Rails project was poorly designed or not. The initial consensus was that he’d done a good job but then last week DHH weighed in and.. it got a bit ‘dramatic.’

My (new) Favourite RSpec Pattern
Jordan Maguire shares an interesting RSpec technique and there’s some interesting debate in the comments. It seems popular, though Geoffrey Grosenbach raises doubts about its readability.

Tutorial: Reddit in 10 Lines of Code
A curious walkthrough of taking an existing ‘Reddit in Sinatra’ and using some ‘seldom used features of Ruby’ to cram it down to 10 lines of dense Ruby code.

Generating Random URL-safe tokens with SecureRandom
Burke Libbey shows off a single liner that can generate a URL safe token using something from the Ruby standard library.

Rails 4.0 Sneak Peek: Queueing
A quick look at the new queueing API in edge Rails (to become Rails 4.0).

Watching and Listening

Facebook Authentication in Rails (RailsCasts)
Ryan Bates shows us how to create a new Facebook application, configure it, add authentication with the omniauth-facebook gem and top it off with client-side authentication using the JavaScript SDK.

Complex Made Simple: Sleep Better with TorqueBox
At RailsConf 2012, Lance Ball spoke about TorqueBox, a popular Ruby application server built on JRuby and JBoss AS7 that provides asynchronous messaging, scheduled jobs, long-running processes, caching, and more.

The Ruby Rogues Discuss SOLID with Jim Weirich
The Rogues sit down with Ruby old-hand and all round nice guy Jim Weirich to talk about the ‘SOLID’ principles of object oriented design.

The Changelog Interviews Laurent Sansonetti about Ruby Motion, MacRuby and More
The Changelog guys caught up with RubyMotion creator Laurent Sansonetti to talk about MacRuby, RubyMotion, MonoTouch, and more.

Libraries and Code

Rack Canonical Host: Middleware for Defining A Canonical Host Name
Rack middleware for defining a single hostname as the canonical host for your app. Requests for other hostnames will get redirected to the canonical host.

SoundCord: Perform Comparisons for Phonetically Similar Terms
A phonetic algorithm matches two different words with similar pronunciation to the same code, which allows phonetic similarity based word set comparison and indexing. SoundCord is initially aimed at Brazilian Portuguese but English and Spanish support is not far behind.

Jist: Publish GitHub ‘gists’ from Ruby
Jist is a gem that allows you to publish a gist from Ruby or the command line including file uploads and OAuth2 authentication.

ffi-http-parser: Ruby FFI Bindings to the ‘http-parser’ Library
http-parser is a high performance HTTP message parser written in C by Joyent. ffi-http-parser can hook your Ruby scripts up to it for parsing both HTTP requests and responses.

Jobs

Back End Developer, SoundCloud, Berlin, Germany
Soundcloud is looking for an über-talented back end web developer with knowledge of the latest web development tools and methodologies. As part of our A-team, you will be faced with the challenges of developing the world’s leading audio sharing platform.

Sr. Ruby on Rails Software Engineer
Do you live to work hard, play hard, live life big? Then consider working at G5. G5 has created a digital experience management platform designed to allow clients to optimize their online experience. Our mission is to help our customers and employees thrive.

Last but not least..

Sublime Text 2 for Ruby
A look at the Sublime Text 2 programmers’ text editor including why it’s a good fit for Rubyists and how to set it up in a productive manner.

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. Sadly, the shootout is rather flawed but the real take away is that all four languages aren’t far apart.

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.

The Mega Ruby News and Release Roundup for May 2012

Welcome to the bumper pick’n’mix of Ruby and Rails news and releases for May 2012, fresh from the pages of Ruby Weekly (which, unsurprisingly, comes out once every week – on Thursdays).

Highlights include: RubyMotion’s release, the JRuby guys are moving to Red Hat, Spree 1.1, DHH’s RailsConf keynote, and JRuby 1.7.0 preview 1.

Headlines

RubyMotion Released: It’s Ruby, but for iOS
The biggest Ruby news of the month! RubyMotion is a Ruby implementation and toolchain for iOS by Laurent Sansonetti, the former MacRuby lead developer, that lets you build iPhone and iPad apps.

DHH’s RailsConf 2012 Keynote (YouTube)
DHH rails against conservatism, people who think about the newbies, and ex-hippies, while celebrating progress and getting the audience to chant “I will not fear change, I will not fight progress”. “Stay hippie,” he closes.

Spree 1.1 (Rails E-commerce Platform) Released
Spree is a popular Rails-based e-commerce system and the 1.1.0 release brings support for Rails 3.2, an API overhaul, and more.

Read A Chapter From ‘Ruby Under a Microscope’, A Forthcoming E-Book
Prolific Ruby blogger Pat Shaughnessy has been working on a new e-book about Ruby language and MRI internals. It’s not finished yet but he’s sharing a single preview chapter for free right now. Enjoy.

Everyday Rails Testing with RSpec by Aaron Sumner
A new e-book written by Aaron Sumner that digs into building confidence with testing Rails apps using RSpec. It comes in PDF, EPUB and Mobi formats. Always handy to have up to date efforts in this regard.

OpenShift (Red Hat’s Answer to Heroku?)
OpenShift is Red Hat’s new, free auto-scaling ‘platform as a service’ for webapps. It supports Java, Ruby, Node, Python, PHP and Perl and seems to be a reasonable entry into a world made popular by Ruby’s own Heroku.

Startups Court Dev Bootcamp’s Ruby Grads with $79K Average Salary
A rare human interest story for Ruby Weekly! Dev Bootcamp is a 10 week $12K bootcamp program for people to get up to speed with Rails development and of their latest batch, 14 of 17 developers ready to get a job got an offer at an average salary of $79K.

The Bastards Book of Ruby
Billing itself as ‘a programming primer for counting and other unconventional tasks,’ the online Bastards Book teaches Ruby programming via practical data processing tasks. It’s aimed at non-programmers and especially journalists, researchers, scientists, etc.

JRuby Core Team Members Moving to Red Hat
At JRubyConf this week, it was revealed that Thomas Enebo and Charles Nutter – key members of the JRuby core team – are moving from Engine Yard to Red Hat. Learn more about what they’ll be up to here.

First Alpha of ruby_parser 3.0 Released
ruby_parser (RP) is a long standing Ruby parser written in pure Ruby but till now it had the disadvantage of not supporting Ruby 1.9 parsing. Now it does! Still only an alpha but a good release to see.

MRI Accepts Google Patch for Google NativeClient (NaCl) Support
Still early days on this but Google has been working on a proof of concept port of Ruby to its NativeClient technology (which lets you compile software to run in Chrome).

Vermont’s First Ruby Conference, July 28 – 29, 2012
Burlington Ruby Conf 2012 will take place in Burlington, Vermont on July 28 – 29th. Join like-minded Ruby enthusiasts for Vermont’s first Ruby conference, hosted on beautiful Lake Champlain.

JRuby 1.7.0 Preview 1 Released
1.7 is proving to be a big release for JRuby and the first preview is out. A key change is that Ruby 1.9.3 is now the default runtime mode (but 1.8 is still available as an option) and support for Java 7’s invokedynamic brings some major performance boosts (when running on the right JVM.)

Heroku’s ‘Cedar’ Stack Now in General Availability
The popular ‘Cedar’ stack on Heroku that allows you to run multiple processes, multiple languages, and more is now out of beta and is ‘generally available’.

Reading

What Makes an Awesome Command-line Application?
David Copeland, the author of Build Awesome Command-Line Applications with Ruby, shares some pointers to building good command line apps in Ruby.

Ruby HTTP Client Performance Shootout Redux
Jonathan Rochkind puts several HTTP client libraries through their paces. Eric Hodel, author of net-http-persistent, gives the write up a thumbs up so that’s good enough for me.

Exhibit vs Presenter
Mike Pack explores the ‘exhibit’ and ‘presenter’ decorator patterns. And if all this sounds like buzzword bingo to you, this is a pretty accessible introduction!

A Vision for Cucumber 2.0
Cucumber is a popular natural language accepting testing toolkit for Ruby and in this post Matt Wynne has collected together ideas from various Cucumber maintainers to see what’s coming in Cucumber’s future.

Schemaless SQL
The slides from a talk from Railsconf 2012 by Heroku developer Will Leinweber who shows off some powerful new features in Postgresql for working with schemaless data as well as JSON datatypes and embedded JavaScript.

Meet 6 Misunderstood Ruby Features
Targeting C++ developers who are learning Ruby, Arpan Sen looks at six areas of Ruby that might trip them up: class hierarchy, singleton methods, self, method_missing, exception handling, and threading. If you already know your stuff though, steer clear.

Multiple Ruby Version Support on Heroku
With the release of Bundler 1.2.0 beta and the Ruby ‘build pack’ you can now select the version of Ruby you want to run on Heroku. Learn more here.

Mixins: A Refactoring Anti-Pattern
An interesting stroll through measuring complexity and refactoring with Steve Klabnik.

Five Common Rails Mistakes
Experienced Rails developer Mike Perham shares a handful of common mistakes he sees in most Rails apps.

How To Get 4x the Performance Out of Heroku with Unicorn
A look at using Unicorn and a Procfile to increase the number of processes that are handling Web requests when using Heroku.

Getting Started with Ember.js and Ruby on Rails
Fresh from the official Ember site comes a guide to building a simple, personal photoblog application using Ember.js and Rails 3.2.

Benchmark Your Bundle
See how long it takes to load each individual library referenced by your Gemfile.

Passing Open Files Between Processes with UNIX Sockets
Jesse Storimer shares a neat technique for using UNIX sockets as a conduit to passing file descriptors between processes.

Backbone.js, CoffeeScript, Jasmine, HAML and Rails Working Together
A holistic walkthrough by Jeremy Walker tying together a bunch of modern Web development technologies.

A Better Way to Set Up Rails on Windows
Don’t flame me about this, but what’s the best way to get a Rails environment running on Windows for development work? Use VirtualBox and a VM says Roshan Choxi of programming training company Bloc.

Three Quick Rails Console Tips from 37signals
Dig into your app with the ‘app’ method, play with helpers, and find out where certain methods are defined (more a general 1.9 trick though).

Anaphora in Ruby, 2012 Edition
Esteemed essayist Reg Braithwaite updates a popular 2009 article about ‘anaphora’ in Ruby, namely language elements that can refer back to earlier used objects or results. A lot of geekery to enjoy here.

Integrating Rails and jQuery Mobile
There are some rough edges when integrating Ruby on Rails and jQuery Mobile for your mobile application and jQuery Mobile core contributor John Bender shows you how to smooth these out.

Objectify: A Better Way to Build Rails Applications
Objectify is a framework that codifies good object oriented design practices for building maintainable Rails applications. In this post, James Golick explains the motivations.

You Don’t Have to Use Bundler to Create New RubyGems
Not a new or provocative opinion, but nonetheless an interesting introduction to the ‘Ore’ project generator which I didn’t know about before.

Injection Vulnerabilities in Ruby Apps Through Bad Regexes
A pretty simple issue but one that I suspect is commonplace.

Tossing Out IRB for Pry
Pry is a powerful and popular alternative to the IRB Ruby console. In this post, Phil Aquilina shows off a few reasons why to give it a go.

CoffeeScript Love: Testing CoffeeScript in Rails
MochaRails is a mountable Rails engine that serves a browser-based Mocha test suite, along with your development JavaScript files, via the Asset Pipeline.

The Development of Sequel
A slidedeck by Jeremy Evans about his work on the popular database interaction library.

Why Our Code Smells
A great slide deck by Brandon Keepers.

Watching and Listening

The Rails API Gem – RailsCasts
Ryan Bates looks at the ‘Rails API’ gem (recently linked in Ruby Weekly) and demonstrates how it can be used to build an API-only Rails app.

10 Minutes on Rails Engines
Ryan Bigg presents a well-recorded ten minute tour of Rails engines, what they are, how they work in different versions of Rails, how to build them, and examples of their usage in Forem and Spree.

Sandboxing Ruby Code: Lessons from the Battlefield
A talk by Tejas Dinkar and Jasim Basheer from RubyConf India 2012 looking at the process of running untrusted code on your server using various sandboxing techniques.

rbenv and Bundler
An hour long talk from the Pittsburgh Ruby Brigade presenting a history of rbenv and Bundler, debating the merits of rbenv and RVM, and showing off rbenv-bundler, a new plugin which ties rbenv and Bundler together.

Making Little Classes Out of Big Ones with Avdi Grimm
In a ‘Lunch n’ Learn’ session with Avdi Grimm, he takes a look at the pros and cons of four different techniques for breaking a too-big class into smaller pieces. 50 minutes long.

RubyMotion with Laurent Sansonetti
As Ruby Weekly may have shown, the RubyMotion Ruby + iOS developer tools have been a big hit lately and their creator Laurent Sansonetti dropped in to chat with the Ruby Rogues about what it all means.

RailsCasts on ‘Squeel’ – a SQL DSL
Squeel provides a comprehensive DSL for writing SQL queries in Ruby, all built upon Arel. Ryan Bates gives us a tour in just 9 minutes.

Libraries and Code

Focused Controller: Bringing Real OOP to Rails Controllers
Jon Leighton notes that classical Rails controllers violate the Single Responsibility Principle (part of the SOLID group of OO programming principles). Focused Controller aims to resolve that by splitting up responsibilities into an object each. The usage example shows it off best.

Initial Queue Implementation on Edge Rails
It seems Rails 4 is getting a built-in unified API for queueing! Enjoy this GitHub commit jam packed with comments and discussion on the development of this feature.

Sublime Text 2 Guard Plugin
This project provides integration of Guard (a tool that handles and responds to events on file system modifications) into the Sublime Text 2 editor. Handy if you want your tests to run automatically but then see the results directly in ST2.

Thor: Toolkit for Building Command Line Interfaces
Thor is not a new tool but it has a new Web site so check it out. It makes an interesting alternative to Rake for certain use cases (although ultimately Rake and Thor should serve different purposes).

Firehose: Build Real-Time Web Applications
Firehose is both a Rack application and JavaScript library that makes building scalable real-time web applications easy. You’ll need to dig in a bit though as it’s a little buzzwordy on the surface.

Kandan: A Slick, Rails-Powered Open Source Live Chat App
A fan of online chat apps like Talker or Campfire? Kandan is an open source Rails app that claims to be ‘the slickest chat app out there!’ I had it up and running on Heroku within a couple of minutes.

DataMiner: Download, Parse and Import Many Data Formats into AR Models
DataMiner by Seamus Abshere is a Ruby library that can download data archives, extract them, parse the data contained, and then import that data into ActiveRecord models.

Monologue: Mountable Rails Blogging Engine
Monologue is a basic mountable blogging engine in Rails built to be easily mounted in an already existing Rails app, but it can also be used alone.

Mechanize 2.5 Released
The popular Web request and Web site interaction library has been updated.

Ampex: A(nother) Practical Use Of Ruby’s & Operator
The ampex library takes the idea from ‘&:symbol’, and adds a little more flexibility. An interesting idea.

Introducing Live for RubyMotion
Live is a gem for RubyMotion implementing some of the ideas presented in Bret Victor’s awesome ‘Inventing on Principle’ talk. It interfaces with the REPL and allows you to control it from the comfort of your preferred text editor.

ActiveRecord Reputation System (from Twitter)
The Reputation System gem makes it easy to integrate ‘reputation systems’ into Rails applications and decouple the system from the main application.

rake-rails: Bringing Rails Commands to Rake
Ever get confused between which things you should use ‘rake’ for and which you should use the ‘rails’ command for? Andy Lindeman brings them both together with rake-rails.

CLAWS: Command Line AWS
A command line based AWS (Amazon Web Services) console with Capistrano integration.

Sextant: Bringing Your Rails Routes to a View
Sextant is a simple addon to give you a /rails/routes URL while in development on a Rails app, as a way to see the routes your app implements. Interestingly, this functionality is being merged into the forthcoming Rails 4.0 as standard.

Jobs

Senior Developer at AT&T [Palo Alto, California]
An opportunity to join a new and rapidly growing group within AT&T called ‘The Foundry’ that works at the cutting edge of new technologies and turns them into new opportunities for AT&T. A love of programming and proficiency with technologies like Ruby, JavaScript, and HTML5 is essential.

Senior Software Engineer at Zendesk [San Francisco]
Popular hosted helpdesk service Zendesk is looking for a senior engineer with 2+ years of Rails experience.

Senior Web Technologist at Holiday Extras UK
Do you spend your leisure time tinkering with the latest NoSQL du jour or playing with the latest AWS toy? Do you dream of big data? Is GitHub the first thing you think of when someone says the word fork? If so, Holiday Extras is looking for techies like you.

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 🙂

The Mega March 2012 Ruby and Rails News and Release Roundup

And again, a mixture of travel, illness, and exhaustion have prevented me from my weekly updates on here (although Ruby Weekly is still going out on a weekly basis!) so here’s a bumper update for all of the top Ruby and Rails news from March 2012.

Highlights include: Matz wins a prize, Ruby is approved by the ISO, some awesome jobs, Bundler 1.1, Vagrant 1.0, Rails 3.2.3, Avdi Grimm’s Object on Rails book, the Pragmatic Programmers release some more awesome books and, of course, a lot more.

Headlines

Matz Wins FSF’s 2011 Award for the Advancement of Free Software
Free Software Foundation president Richard M. Stallman announced the winners of the FSF’s annual free software awards recently with Ruby’s own Yukihiro ‘Matz’ Matsumoto picking up the Award for the Advancement of Free Software. He joins a short list of open source heroes including Alan Cox, Larry Wall, and Guido van Rossum.

Released: ‘The Rails View’ by John Athayde and Bruce Williams
Working in Rails’ view layer can be tricky with brittle, complex views all too easy to rustle up. This book digs into strategies and approaches for upping your Rails view game and breaking free from tangles of logic and markup in your views. Two thumbs up.

Objects on Rails: How to Apply Classic OO Ideas to Rails Apps
For a while now, Avdi Grimm has been slaving over a delicious ‘developer’s notebook’ documenting guidelines, techniques, and ideas for applying classic object-oriented thought to Rails apps. He’s now released it free to read on the Web. I recommend reading this, it’s good.

Ruby Language Accepted As An International Standard by ISO
Dalla Rosa noticed a press release from Japan’s IT Promotion Agency which notes that the long awaited Ruby specification (not to be confused with RubySpec) has been approved by the International Standards Organization as the ISO/IEC 30170 standard.

Rails 3.2.3 Released
The usual laundry list of minor changes but the biggest deal here is the default value of ‘config.active_record.whitelist_attributes’ becomes ‘true’, inspired by the recent GitHub mass assignment issue. Note that the change only affects newly generated apps but you can learn more in this post.

Yehuda Katz Raises $40k for ‘rails.app’, an OS X Rails Environment Installer
Recently Yehuda Katz (well known as the lead architect behind Rails 3) launched a campaign to raise $25k to build a Ruby and Rails environment installer for OS X. It has now gone on to raise over $40k but left some in the community wondering quite what was really needed.

Vagrant 1.0: Virtualized Development for the Masses
Vagrant is a popular VirtualBox-driven Ruby tool for quickly building and deploying virtual machines for development and testing purposes. After years of development, it has reached the all important 1.0 release. Congrats!

Bundler 1.1 is Out!
No official blog post yet, but Bundler 1.1 is out and you can grab it with a gem install bundler. The big win on this release is significantly improved performance when fetching gemsets with complex dependencies.

GitHub Public Key Security Vulnerability and Mitigation
GitHub experienced a security issue involving mass assignments in Rails. They’ve fixed it up now but you might want to get up to speed with what happened.

The Ruby on Rails Tutorial, Now With Twitter’s Bootstrap
Michael Hartl has updated the new Rails 3.2 version of his popular ‘Rails Tutorial’ to use Twitter’s increasingly popular Bootstrap framework.

ActiveResource Removed From Edge Rails (and Rails 4.0)
Just as it says in the title, but take care to scroll down to see the full story, since the proposal was initially deferred but has now been implemented. Active Resouce is now available as a separate project.

The Prags Release ‘The dRuby Book’
Learn from legendary Japanese Ruby hacker Masatoshi Seki in this first English-language book on his own Distributed Ruby library (DRb). Pick up distributed programming ideas straight from the source here. Available in print and e-book formats.

Reading

Exploring Ruby’s Regular Expression Algorithm
Pat Shaughnessy, Ruby implementation spelunker extraordinaire, digs into Oniguruma, the regular expression engine used by MRI Ruby 1.9. What does it do and how does it process your regexes?

Why You Should Be Excited About Garbage Collection in Ruby 2.0
Could it be Pat Shaughnessy again? Yes, sirree. Here he digs into the ‘bitmap marking’ garbage collection algorithm that promises to reduce Ruby’s memory consumption in Ruby 2.0.

Using MiniTest::Spec With Rails
Ken Collins has been working on minitest-spec-rails, a gem that makes it reasonably trivial to use MiniTest::Spec (part of the Ruby 1.9 stdlib) with Rails. Learn how here. Ignore the date on this article, it was just updated!

Building Backbone.js Apps With Ruby, Sinatra, MongoDB and Haml
An extensive tutorial by Addy Osmani on building a Backbone.js at both the front and back ends. The server side part is powered by Ruby’s light but powerful webapp DSL Sinatra.

Zero to Jekyll in 20 Minutes
Jonathan Jackson explains how to use the popular Jekyll blog-focused static Web site generator from scratch.

What Would Happen If You Ran ‘bundle update’ Right Now?
Is there a bundle command to tell you what would be updated with bundle update, without actually making those updates? With Bundler 1.1.. yes there is!

GitHub’s Ruby Style Guide
The folks at GitHub have put together a document outlining the Ruby styles and conventions they use for their internal apps. Plenty of good practice in here, along with a little opinion.

Learning More About JRuby from Charles Nutter
Pat Shaughnessy has interviewed Charles Nutter of the JRuby core team and digs into the meaning behind JRuby, what JRuby is well suited for, how its internals work, and where JRuby is headed in the future.

A Use of Enumerable#chunk
Enumerable#chunk is a not particularly well known method in the Enumerable module (and therefore available to your arrays and hashes by default) and in this post, Eric Hodel shows off a use for it.

How to Use Bundler Instead of RVM Gemsets
Stephen Ball recently heard Bundler maintainer Andre Arko say that Bundler can obviate the need to use RVM gemsets. In this post, he investigates the idea.

Rails Is Just An API
Alex MacCaw says there’s nothing wrong with relegating Rails to the API layer.

Tailin’ Ruby: ‘Faking’ Tail Call Optimization
By default, Ruby doesn’t implement tail call optimization (although it can be enabled in various ways in 1.9) so Magnus Holm set out to try and ‘fake’ it. An interesting experiment.

How to Test External APIs
It’s common to integrate with an external API and in order to effectively test the integration, you might want to stub it out. Jared Carroll of Carbon Five shares a testing strategy using stubs for an external API.

Ruby 2.0’s Enumerable::Lazy
Innokenty Mihailov’s Enumerable::Lazy patch was accepted into Ruby trunk this week which gives us some ActiveRecord 3-style ‘lazy evaluation’ features on enumerations in Ruby. Worth checking out as a key new feature to come along in Ruby 2.0.

API Versions in Rails Routes: A Mind Blowing Answer?
Ryan Bigg promises to ‘blow your mind’ in his answer on Stack Overflow that shows some Rails 3 routing magic (in the context of versioning an API through the URL).

Sinatra + Heroku = Super Fast Deployment
Darren Jones demonstrates creating a very simple Sinatra app and deploying it on Heroku.

Getting the Most out of Bundler Groups
Bundler lets you create different ‘groups’ in your Gemfile so different environments can have different dependencies. Iain Hecker shows off some uses for this feature.

Yehuda Katz’s Proposal for Improving Mass Assignment (in Rails)
After the GitHub issue (above), Rails 3 guru Yehuda Katz came up with a proposal for improving how mass assignment works in Rails. I don’t agree with the approach but it sparked an interesting discussion.

The NOR Machine: Building a CPU With Only One Instruction
Have you ever developed in an assembly language? Have you developed an assembly language? Ever developed a CPU running your own assembly language? Alexander Demin shows you how in this fun Ruby-oriented walkthrough.

Flexible Searching with Solr and Sunspot
Mike Pack outlines how the Solr full text search server can benefit your project’s indexing capabilities and shows how Solr can be used within a Rails app using Sunspot.

A Common .ruby-version File For Ruby Projects
Got .rvmrc and .rbenv-version (and possibly more) floating around your projects? What if we had an ecosystem of fabulous Ruby managers that all understood the semantics of a generic dotfile like ‘.ruby-version’? Here’s a proposal to weigh in on.

Wizard-ify Your Rails Controllers with Wicked
Multi-page ‘wizards’ are popular in both desktop software and webapps and Wicked by Richard Schneeman brings a way to make them easier to produce in a Rails app.

Load Balancing and Reverse Proxying with Nginx (for Rails Apps)
Nginx is a modern, open-source, high-performance web server that’s well known in the Rails hosting world. In this post, Justin Kulesza demonstrates how to do a load balanced, reverse proxying setup with Nginx for a Rails app.

What is docrails?
docrails is a branch of Ruby on Rails with public write access where anyone can push documentation fixes. Xavier Noria explains how it works.

The Hardest, Most Rewarding Job I’ve Ever Had
Mitchell Hashimoto of the Vagrant project (which recently hit 1.0 – above) shares his take on the history of Vagrant and the experiences it brought him. Always nice to see a post like this.

Watching and Listening

RailsCasts on Copycopter
Copycopter provides an interface that clients can use to edit the text in a Rails application. Learn how to deploy a Copycopter server using Heroku and integrate it in a Rails application through I18n.

PeepCode Play by Play: Jim Weirich
PeepCode continues its Play by Play screencast series with Jim Weirich, the author of the ubiquitous Rake build tool for Ruby and chief scientist at EdgeCase. Want a view over an experienced Rubyist’s shoulder? This is a good place to go.

Don’t Fear The Threads: Simplify Your Life with JRuby
An epic 161 slide slide-deck by David Copeland, focused on threading and JRuby.

Inside Ruby: Concurrency and Garbage Collection Explained
Matt Aimonetti’s presentation from Ruby Argentina has finally been released. Skip a few minutes in unless you want to enjoy Matt’s Spanish skills.

14 Presentation Videos from ArrrrCamp 2011
Videos from last year’s ArrrrCamp have been released, including presentations by Corey Haines, Elise Huard, Jim Gay, Anthony Eden and John Long.

RubyConf Argentina 2011 – Day 1
It must be the week for releasing conference videos. RubyConf Argentina (back in November 2011) has released theirs too.

Refinery CMS Basics with RailsCasts
Ryan Bates shows off how to quickly build a Rails app with out of the box content management using the Rails-based CMS, Refinery CMS.

Love Your Lib Directory
Brian Cardarella shares some conventions over the use of the ‘lib’ directory within Ruby projects and libraries. A 20 minute talk given at Boston.rb.

Ruby Rogues on Bundler with Andre Arko
The lovable rogues are back for another hour long podcast, this time discussing the Bundler project with its maintainer Andre Arko.

Libraries and Code

Rubydeps: Create Dependency Graphs from Test Suites
Rubydeps is a tool to create class dependency graphs from test suites. It runs your suite, records the call graph between the classes, and uses this info to create a Graphviz dot graph.

Weary: Framework and DSL for Building RESTful Web Service Clients
Mark Wunsch’s Weary is a suite of tools built around the Rack ecosystem that makes it both easy to build elegant clients for (ideally RESTful) Web services.

store_configurable: A Hash for Config Options on ActiveRecord Objects
A zero-configuration recursive hash for storing a tree of options in a serialized ActiveRecord column.

S3itch: Amazon S3 WebDAV Proxy for Skitch
Popular OS X screenshot tool Skitch is dropping its native file sharing component so Mathias Meyer has built a Sinatra-based proxy that can accept files over WebDAV and then upload them to S3.

minitest-metadata: Metadata for your MiniTest Test Cases
minitest-metadata allows you to set metadata (key-value) for your test cases so that before and after hooks can use them.

RSpec is Not The Reason Your Rails Test Suite is Slow
In a simple gist, RSpec maintainer David Chelimsky dispels the myth that RSpec drags slowness around with it, wherever it goes.

Ry: The Simplest Ruby Version Manager
We have RVM, we have rbenv.. we now have ‘ry’ too! It bills itself as the ‘simplest Ruby virtual environment’ and its major design goal is to explicit, unobtrusive, and easy to query. It can also lean on ruby-build to install new versions.

Rake-Pipeline: Rake-Powered Asset Packaging
A system for packaging assets for deployment to the web built as an extension to Rake. Developed by the masterminds over at Living Social.

Capital: ‘Top Off’ Your ActiveRecord Columns
Capital extends what’s returned via your model’s columns, converting values to and from ‘rich objects.’ It’s inspired by MongoMapper’s serialization.

Ruby-Doc.com: Ruby and Rails API Docs Hosted on S3
Rob Cameron was getting tired of slow or inaccessible Ruby and Rails docs so has rendered and put up an entire set of Ruby and Rails API docs (various versions) on Amazon S3.

VCR 2.0.0 Released: Recording Your Tests’ HTTP Interactions
VCR is a library for recording a test suite’s HTTP interactions to replay during future runs. Version 2 is now out and brings a lot more flexibility, custom request matchers and serializers, request hooks, and more.

‘wow how come I commit in master? O_o’
The Rails commit that started the drama around the GitHub / Rails mass assignment issue. Linked for posterity but also because the comments turned into the typical meme-fest.

Zonebie: Timezone Randomization for Robust Time Tests
Zonebie helps you hunt down bugs in code that deals with timezones by randomly assigning a different timezone on each run.

Metriks: A Simple, Lightweight Ruby Metrics Experiment
An experiment in making a thread-safe, low impact library to measure performance metrics in your Ruby apps. One of the most interesting uses is to have it update your process’s title so the metrics info appears live in ps or top!

md2man: Markdown to Man Page
A Ruby library and command-line program that converts Markdown documents into UNIX manual pages.

Rocket Pants: Tools for Building Well Designed Web APIs
A humorously named and highly opinionated toolkit for building well-designed Web APIs, with a focus on Rails.

MethodProfiler: Get Performance Info about Methods on Your Objects
MethodProfiler collects performance information about the methods in your objects and creates reports to help you identify slow methods. The collected data can be sorted in various ways, converted into an array, or pretty printed as a table.

Jobs

Rails Developer at On The Beach [Manchester, UK]
One of the better designed and more creative job ad pages I’ve seen!

Ruby and Web Developer at Hubbub [Highbury, London, UK]
Pass a simple API challenge to apply..

Last but not least..

‘Working With Unix Processes’ by Jesse Storimer
Jesse Storimer doesn’t think you should need to learn C to pick up some intricacies of Unix and Unix-style systems. In this (pay for) e-book he takes a Ruby based approach at explaining file descriptors, processes and forking, signals, and more.

Cloudinary: Image Manipulation in the Cloud
A lot of webapp developers seem sick of installing things like ImageMagic to do image cropping and scaling. Cloudinary adds another solution. It’s a commercial service but makes it easy to do image manipulations via URLs.

Heroku Add-ons Catalog
There are lots of add-ons for the Heroku cloud hosting service nowadays but Ivan Schneider thought they were hard to scan through, merely being in an alphabetical list, so he built a different way to browse them.

The Mega Ruby News and Release Roundup for February 2012

Oops! I forgot to post the weekly Ruby news updates from Ruby Weekly to Ruby Inside in February so.. here’s a mega roundup of all that was new in the Ruby and Rails worlds in February 2012. I’ll try to keep posting every week from here on – sorry.

Highlights include: a new Ruby 1.9.3 release, REE’s end of life, Spree 1.0, some Rails 4 news, Devise 2.0, a new private gem hosting service.. and that’s just scratching the surface 🙂 Enjoy! (And don’t forget to subscribe to Ruby Weekly if you want to receive something like this every week via e-mail or The Ruby Show if you want it in podcast/audio form.)

Headlines

Ruby 1.9.3-p125 Released
Patchlevel 125 of Ruby 1.9.3 is the latest production release of MRI. It adds LLVM/clang support (ideal for OS X Lion users), GCC 4.7 support, and includes security fixes in the OpenSSL extension.

Ruby Enterprise Edition 1.8.7-2012.02 released; End of Life Imminent
Phusion has unveiled the latest release of REE which is based on Ruby 1.8.7-p358 and RubyGems 1.8.15 and is compatible with XCode 4 and OS X Lion. However, REE is being slowly retired and no Ruby 1.9 version is forthcoming for several reasons.

Full Draft of ‘Rails Tutorial’ 2nd Edition is Now Available
Michael Hartl, author of ‘Rails Tutorial’, has finished a draft of a new Rails 3.2-focused edition of the popular book and Web site. This is a popular way to learn Rails and it’s only getting better!

Spree 1.0 Released (Rails-based E-commerce System)
Spree is almost certainly the most popular, fully featured Rails-based e-commerce system and its creators are proud to announce the release of version 1.0.0. This follows the $1.5M seed funding of Spree’s parent company in October 2011.

RubyMine 4.0 (Ruby IDE) Released
RubyMine is a popular Ruby and Rails IDE by JetBrains (the folks behind IntelliJ IDEA). A focus has been put on improving its performance and UI, but it now also supports all of Rails 3.2 features, including CoffeeScript compilation right from the IDE.

Refinery CMS 2.0.0 Released
Refinery CMS is a Rails based CMS which in its new 2.0.0 incarnation is now fully Rails 3.2 and asset pipeline compliant. This post sums up some of the changes. Congrats to them.

For Rails 4, PATCH Is The New Primary HTTP Method for Updates
Xavier Noria of the Rails core team shares a new development that’s in edge Rails (and due to be released in Rails 4): switching to using HTTP’s ‘PATCH’ verb for making partial updates to resources.

British Government’s New Portal Built on Ruby, Rails and Sinatra
The British Government has launched the beta of ‘gov.uk’, a new attempt to centralize government Web sites. Ruby is not a focus of this article but it’s revealed that Ruby makes up ‘most of the application code’ with a mixture of Rails and Sinatra.

Reading

The History of Rubinius
A beautifully presented magazine article by Evan Phoenix about the background to Rubinius’ creation and its development all the way up to 1.0. Not much tech stuff in here but a truly heartwarming story about the little Ruby implementation that could.

The Joke Is On Us: How Ruby 1.9 Supports the Goto Statement
Pat Shaughnessy is back with a dive into Ruby’s support for the concept of “goto” (a la your favorite pre 1990s programming languages). Did you realize Ruby has a hidden feature to support GOTOs and labels? Neither did I. Wow!

The Pry Ecosystem (the awesome alternative to IRB)
Pry is a popular alternative to IRB and in this post, its creator John Mair looks at several of the additional plugins people have developed for it.

Five Favorite ‘Hidden’ Features in Rails 3.2
Jose Valim shows off five features of Rails 3.2 that he particularly digs. An enjoyable list; I didn’t know of any of these.

How To Build a Naive Bayes Classifier
Want to do spam detection, classification, language detection or similar? Bayes classification may be for you. This post walks through how it works before producing a Ruby implementation.

An Introduction to Ruboto: Ruby + Android
Marc Berszick presents a practical introduction to Ruboto, technology that allows you to run Ruby scripts on Android devices.

A Chat with Nick Quaranto About RubyGems.org Internals
An interesting and extremely visual interview with Nick Quaranto of RubyGems.org about how the site works and how gems are stored and distributed. Lots of interesting stuff in here.

Using Rails 3.2 With Ruby 1.9.3 on Heroku
Daniel Kehoe has updated his Rails on Heroku tutorial to support Rails 3.2 and Ruby 1.9.3. Want to get a new Rails app up and running on Heroku? This is a fine place to start.

37signals: Code Statistics for Basecamp Next
37signals’ Basecamp was the app from which Rails was initially extracted, so it’s interesting to see how 37signals are using Rails to build the next, fully rewritten version. The real value here is in the comments where DHH answers many questions about their stack.

Building A Unix Shell in Ruby
The first article in a series where ‘Working with Unix Processes’ author Jesse Storimer implements a Unix shell in pure Ruby code.

Is Ruby Interpreted or Compiled?
Pat Shaughnessy returns with yet another great article diving into the world of Ruby intepreters and execution. This time he looks at the compilers in Rubinius and JRuby and what they’re producing.

Rails Went Off The Rails: Why I’m Rebuilding Archaeopteryx In CoffeeScript
The never-dull Giles Bowkett explains why he thinks Rails is old and busted and picks quite a few Ruby related scabs along the way. Sure, it’s dramatic, but you might enjoy it.

Ruby Patterns from GitHub’s Codebase
Zach Holman of GitHub presents some things that the developers at GitHub have done to help with the maintainability and reliability of their Ruby apps. Key takeaways are their ‘bootstrap’ script and using TomDoc for documentation.

Let’s Write a Gem
Stephen Ball presents a two part series on building a Ruby library and gem from scratch including best practices like BDD.

Work-Stealing and Recursive Partitioning with Fork/Join in JRuby
The Fork/Join framework in JDK7 implements a clever work-stealing technique for parallel execution. Ilya Grigorik explains what it does and shows off some JRuby-based examples.

Watching & Listening

Ruby Trick Shots: 24 Ruby Tips and Tricks in a Screencast
Over the years I’ve collected 100+ bite-sized Ruby tips and tricks that I’ve seen surprise other Rubyists. I have bigger plans for them but decided to record a video showing off 24 of them. Enjoy these.. Ruby trick shots!

Watch Steve Klabnik Hacking on RubyGems
Steve Klabnik has shared a 50 minute video of him working on a pull request for the RubyGems project. It’s not a focused or narrated video but if watching a master at work sounds interesting to you, check it out.

Ruby Freelancers — A New Podcast on the Business of Ruby Dev
Ruby Freelancers is a new podcast focusing on the art of being a freelance Ruby or Rails developer. Things kick off with Charles Max Wood, Eric Davis, Evan Light, and Jeff Schoolcraft at the helm.

Play by Play with Aaron ‘Tenderlove’ Patterson
PeepCode has released the latest in its ‘play by play’ series with a two hour peep over the shoulder of popular Rubyist Aaron Patterson’s shoulder. It costs a little money but it has gotten an excellent reaction so far.

Twitter Bootstrap Basics by RailsCasts
If you’re not yet sick of hearing about Twitter Bootstrap or want to learn how to work with it using Rails, Ryan Bates’ latest screencast is a great place to start.

Code

Devise 2.0 Released: The Flexible Auth System Grows Up
Devise 2.0 is here but it’s aimed at deprecations rather than new features. Nonetheless, it adds Rails 3.2 support and supports e-mail reconfirmation. Beware though, it now only supports Rails 3.1 and above.

Sidekiq: Efficient Resque-compatible Message Processing for Rails 3
Got lots of Resque processes running at once? Sidekiq offers ‘simple, efficient message processing’ for Rails 3 applications and due to its actor-based concurrency, a single Sidekiq process could do the work of many Resque ones.

Virtus 0.2.0: Attributes on Steroids for Plain Old Ruby Objects
Virtus is a partial extraction of the DataMapper Property API with which you can extend your Ruby objects with attributes that require data type coercions. Handier than it sounds; see the README examples.

AlterEgo: Hosted Two Factor Authentication for your Web App
A gem to access AlterEgo, a two factor authentication service built by MailChimp, the folks I use to send Ruby Weekly each week 🙂

Prickle: A Simple DSL Extending Capybara
Capybara has become the de facto Ruby acceptance test framework for web apps and Prickle takes things a step further with extra methods for finding elements, performing actions, and more.

Newman: A Microframework for Email-based Apps
Still in a highly experimental state, Newman is a micro-framework aiming to do for email-based applications what Rack and Sinatra have done for web apps. Gregory Brown leads the project.

Heads Up: A Rails and JS Powered Desktop Heads Up Display
Heads Up is a simple HUD showing your calendar items for today, your unread emails and custom notes. The interesting part is it’s an OS X app, yet it’s built on Rails, JavaScript (using Spine), Rack::Offline and MacGap.

A Patched Ruby 1.9.3-p0 for A 30% Faster Rails Boot
A somewhat adhoc set of patches to boost the performance of Ruby 1.9.3-p0 have been floating around on GitHub this week. Tread with caution but it may appeal to you. Hopefully the ideas will make their way into MRI proper.

Plymouth: Start Pry in the Context of a Failed Test
Pry is an awesome alternative to the IRB Ruby console and Plymouth will automatically bring up a Pry session when a test fails in your suite, putting you right into the context of the failure. Supports Bacon, Minitest and RSpec.

SimpleForm 2.0: Rails Form Creator, Now With Twitter Bootstrap Support
SimpleForm is a popular DSL for creating forms in Rails apps and version 2 is now out. It includes a new wrapper API to create custom input stacks and also includes some integration features for Twitter Bootstrap.

UnixUtils: Like FileUtils But For Using Unix Tools
Like FileUtils, but provides access to zip, unzip, bzip2, bunzip2, tar, untar, sed, du, md5sum, shasum, cut, head, tail, wc, curl, etc. The README explains why you wouldn’t want to just spawn these yourself.

Ruby Jobs of the Month

Miscellaneous

Ruby Reloaded #5 Coming in March, Sign Up to be Notified
No big announcement yet but you can now sign up to be notified when Ruby Reloaded 5 is taking place (sometime in March) as well as get a discount. If you don’t know what Ruby Reloaded even is (it’s an online course I run), you can read about that too! 🙂

Flowstone 2: A Ruby-based Graphical Programming Environment
Flowstone is a commercial Ruby-based graphical development environment aimed at the robotics and device control field. Certainly looks interesting from the screenshots and a restricted free version is available to download (Windows only).

Ruby and Rails Documentation Apps for the iPhone and iPad
Pandalab has put together two free, reasonable looking iPad and iPhone apps for looking up Ruby 1.9 and Rails 3 documentation (note: they offer an in app purchase to remove their ad). If only I’d bought my iPad into the office today to try them out..

Gemfury: A Private Gem Hosting Service in the Cloud
Gemfury is a hosted service for private and custom gems. Upload your gems, enable Gemfury as a source, and you can securely deploy any gem to any host.

Events

This Week in Ruby: Rails 3.2, Rails Tutorial, and Why You Should Learn Smalltalk

It’s the latest Web-based syndication of Ruby Weekly, the weekly Ruby and Rails e-mail newsletter (which just tipped 11K subscribers). Ruby Weekly now has a ‘tips’ page where you can submit links for potential inclusion so if you’re releasing something or have written a cool post, fill out the form and you may be in Ruby Weekly next week 🙂

Headlines

Rails 3.2 Released
DHH has unveiled Rails 3.2! Not quite as big a deal as 3.1 but has a faster development mode, faster route recognition, a tagged logger, and more. With Rails master now aiming at 4.0.0, it seems 3.2 may be the last version of Rails to support Ruby 1.8.

Ruby on Rails Tutorial, 2nd Edition (Updated for Rails 3.2)
Michael Hartl’s “Rails Tutorial” site has been incredibly popular over the last year and he’s now finishing up a 2nd edition that’s fully updated to Rails 3.2 standards. The first 5 chapters are already good to go and can be read no-cost, as always, at railstutorial.org.

Articles and Tutorials

Backing Up with Backup: A Neat DSL for Backup Operations
Pat Allan loves Michael van Rooijen’s ‘backup’ gem so much that he wants to to convince you to use it, by showing you two examples of why he finds it so useful. It does seem pretty handy..

Why Every Ruby Developer Should Learn Smalltalk
Smalltalk was the first purely object oriented language (though Simula included objects before it) and it heavily inspired Ruby’s initial development. Victor Savkin thinks that Rubyists could learn a lot from playing with Smalltalk.

The Right Way to Code DCI in Ruby
DCI (Data, Context and Interaction) is an interesting object oriented pattern that’s been discussed in the Ruby community lately, but Mike Pack thinks most articles oversimplify its use. In this post, he digs into the idea.

The ‘Rails and Spine.JS’ Series
Ken Collins is working on a series of posts about using the Spine.js JavaScript MVC framework alongside a Rails app. This is the first of three posts so far.

systemd Socket Activation and Ruby
systemd is a system and service manager for Linux (and replacement for the System V init daemon). Here, Marcin Kulik looks at how a socket-based Ruby server can take advantage of systemd’s socket activation feature.

RVM Stable (and More)
Michal Papis of Engine Yard looks at the ‘stable’ release of RVM (Ruby Version Manager) and how to install and use it. Some handy RVM tips here.

Media

RailsCasts: Upgrading to Rails 3.2
In the latest RailsCasts episode, Ryan Bates looks at the newly released Rails 3.2 and shows off some of its new features. Short and sweet in just 9 minutes.

Web Programming and Updating Frameworks with Yehuda Katz
The Ruby Rogues sit down with Yehuda Katz to discuss Web frameworks, JavaScript, Rails, Merb, Sinatra, Rack, and more. And just why is to_json a problem? If you have a spare hour, find out 🙂

Libraries and code

SitemapGenerator: Generate XML Sitemaps from Ruby
Originally a Google idea, XML sitemaps are now used by several search engines and SitemapGenerator will generate Sitemap 0.9 compliant sitemaps for you from Ruby. Includes Rails integration too but is otherwise framework agnostic.

tconsole: A MiniTest Testing Console for Rails
tconsole is a testing console for Rails based around MiniTest (also supporting Test::Unit). It allows you to issue commands concerning what tests to run, and see their test output.

Lisp in 32 Lines of Ruby
Implementing a small Lisp interpreter is the super geeky equivalent of ‘hello world’ and Michael Fogus (author of The Joy of Clojure) deftly pulls it off in 32 lines of Ruby here.

Ruby Jobs of the Week

Rubyist (or Pythonista) Required at RackSpace [San Antonio, Texas]
Hosting company Rackspace is looking for a developer with Ruby or Python experience (and maybe even Erlang!) to work in its foundation software development team. If Git, Capistrano, MongoDB, and Rails are all interesting to you, check it out.

This Week in Ruby: Nominate Your Ruby Heroes, Include/Extend, Ruby on Netbeans, Jekyll-Bootstrap, and more

Welcome to this week’s Web-based syndication of Ruby Weekly, my Ruby e-mail newsletter.

Headlines

Vote for your ‘Ruby Hero’ in the Ruby Hero Awards
The Ruby Heroes awards run each year and present 6 community nominated ‘heroes’ with an award at RailsConf. Nominations are now open so go and drop your nomination for the Rubyist whose code has brightened up your life the most in the past year.

Heroku Receives InfoWorld’s Technology of the Year Award
Sorry it’s just a press release but it’s great to see a company that came up from the Ruby world continue to do well. Congrats to the Heroku team.

Articles and Tutorials

Hashes and Encapsulation
Jon Leighton demonstrates why accessing hash elements in a “obj.hashthings[‘foo’]” style isn’t the way to go and how to act in a way that respects encapsulation, a tenet of object orientation.

Explaining Ruby’s Include and Extend
Aaron Lasseigne gives a simple introduction to the ideas behind the ‘include’ and ‘extend’ methods.

Why Sinatra’s Halt is Awesome
Myron Marston draws attention to Sinatra’s ‘halt’ method which you can use to immediate stop a request within a filter or route, and explains why he likes it for handling exceptions in Sinatra apps.

Replace Your Test Helpers with a Reusable API
Eric Hodel makes an interesting argument that instead of leaning on test helper files all of the time, perhaps there are common bits of functionality you can bake into your library or app’s own APIs.

assert_nothing_tested..
Ryan Davis demonstrates why his popular minitest testing library doesn’t have an assert_nothing_raised assertion by picking on a relatively useless test in Rails.

A Workaround for Ruby Support on Netbeans 7.1
Back in February 2011, Netbeans (a popular IDE) dropped its official support for Ruby but the JRuby team offered to pick up the slack. Thomas Enebo has been working on it and has some code to make Ruby support work on Netbeans 7.1 here.

Rails or Sinatra: The Best of Both Worlds?
Over at RubySource, Darren Jones rounds up the opinions and assessments of several well known Rubyists when it comes to choosing Sinatra or Rails for a project. An interesting high level collection of ideas.

Media

The Ruby Rogues on Versioning and Releases
The world’s favorite Ruby podcast, Ruby Rogues, is back with an episode all about the versioning of code, Ruby libraries, gems, and more. This time out, James Edward Gray II takes the helm.

Private Pub (RailsCasts)
Private Pub is a gem for use with Rails to publish and subscribe to real-time messages through Faye. You get real-time updates through an open socket without tying up a Rails process. Ryan Bates shows you how to use it in a mere 7 minutes.

Libraries and code

ROFLBALT: A Terminal-based ASCII Side Scroller Game
At RailsCamp X, Paul Annesley and Dennis Hotson built this nifty little side scrolling game which works straight from your terminal (256 color support needed though). Surprisingly good for a quick effort.

TwoStroke: A JavaScript Implementation Written in Ruby
Charlie Somerville presents an interesting working (but incomplete) JavaScript implementation, written entirely in Ruby. One of those projects that may seem useful somewhere down the line but for now is just a neat idea.

Guard::RSpectacle: An RSpec Plugin for Guard
Guard::RSpectacle automatically tests your application with RSpec when files are modified. This sounds like guard-rspec on the surface, but RSpectacle acts as an ’embedded’ runner within a running Rails app and reloads changed files on the fly.

Juvia: An Open Source Commenting System from Phusion
For a while now, Hongli Lai of Phusion (the geniuses behind Passenger and REE) has been working on a Rails-based open source commenting system that you can include into your site using JavaScript.

Jekyll-Bootstrap: A Quick Way to Start Off Your Own Jekyll-Powered Site
Jekyll is a blog-focused static site generator, and Jekyll users often recommend cloning an existing Jekyll blog to use as a starting point. Jekyll-Bootstrap takes this idea to the next level by attempting to be the definitive Jekyll framework to clone.

OEmbedr: Lightweight, Flexible OEmbed Consumer Library
oEmbed is a format for allowing an embedded representation of a URL on third party sites OEmbedr makes consuming oEmbed from any source simple.

Hobson: A Resque-based Distributed Test Runner
Hobson distributes your test suite across N machines and aggregates the results live on a locally run webapp. I haven’t tried it yet but on a trawl through the source code it seems to be for Cucumber and RSpec only.

Vesper: A New Sinatra-based Webapp Framework
Yes, it’s ‘yet another’ webapp framework but Vesper is based on top of Sinatra, already has several plugins, and features a handy 6 minute screencast on its homepage.

Ruby Jobs of the Week

Ruby Framework Engineer Job at Zendesk [San Francisco]
The fantastic folks over at Zendesk, the help desk and support ticket app, are looking for a creative and seasoned Ruby engineer to focus on improving their code base. They want full stack engineers who can improve and refactor their frameworks and lead an open source effort by publishing some of the resulting gems.

Last but not least..

Owning Rails: Marc Andre Cournoyer’s Online Rails Masterclass
Marc Andre Cournoyer (of Create Your Own Programming Language fame) is running another of his highly praised 2 day, online Rails masterclasses. Marc’s given me a discount code you can use to get 80 dollars off – it’s ‘rubyweekly’. I disclose that I make a commission on this but I won’t promote trash and the testimonials speak for themselves 🙂

The Programming Language Masterclass: Another Marc-Andre Class
Along similar lines, Marc Andre Cournoyer also runs a more general class aimed at giving you an understanding of the inner workings of programming languages and programming language implementation. ‘SAVEME50’ gets you a discount and it’s in mid February.