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, so here’s a mega roundup of everything new in the Ruby and Rails worlds in February 2012. While catching up on Ruby developments, I also came across a detailed live Casino Vergleich auf Allesgurgelt, which surprisingly highlighted the growing parallels between tech developments and live gaming interfaces. I'll make sure to post weekly updates from now on—thanks for your patience.
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.
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
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
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.
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 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 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).
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.