The Mega April 2012 Ruby and Rails News Roundup »

Created at: 27.04.2012 17:45, source: Ruby Inside, tagged: Compilation Posts Miscellaneous News

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


more »

The Mega March 2012 Ruby and Rails News and Release Roundup »

Created at: 12.04.2012 03:17, source: Ruby Inside, tagged: Compilation Posts Miscellaneous News

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.


more »

The Past 2 Weeks in the World of Ruby: 40 Links to Bring You Up to Speed (January 2012) »

Created at: 06.01.2012 17:03, source: Ruby Inside, tagged: Compilation Posts Miscellaneous News

Ruby Weekly has just tipped over 10,000 subscribers but I know not everyone is into getting their news via e-mail, so here's the latest frequent roundup of the latest Ruby and Rails news for you, all on the Web :-)

Key News, Releases, and Headlines

Hungry Academy Application Process Closes This Weekend
LivingSocial's 'Hungry Academy' will provide a paid, on-site 5 month Ruby and Rails learning experience and mentorship program to a small group of lucky applicants. Interested? You've only got a few days left to apply.

DOS Attack Vulnerability Found in Ruby 1.8's Hash Algorithm
Ruby 1.8.7-p352 and earlier are affected by a wide reaching (as in Python and Java are also affected!) hash related vulnerability. Ruby 1.9 is entirely unaffected.

JRuby 1.6.5.1 Released: Fixes the Hashing Vulnerability
JRuby 1.6.5.1 is a minor patchlevel release of JRuby that's mostly interesting because of the potential hash-based DOS vulnerability it papers over. Plenty of info in this post.

KidsRuby 1.0 Released
KidsRuby is a kid-focused (but just as useful for adults!) Ruby editor aimed at being an environment for teaching the Ruby language. It includes tutorials and a Logo-esque turtle graphics system for more visual types of learning.

Rack 1.4.0 Released
Rack is the modular Ruby Web server interface that sits between servers like Apache and nginx and systems like Rails or Sinatra. Rack 1.4 drops support for Ruby 1.8.6 and includes a bevy of tweaks, bug fixes and minor new features (including support for the 'teapot' HTTP status code ;-)).

Articles and Tutorials

Never Create Ruby Strings Longer Than 23 Characters
A linkbaity title but an interesting article nonetheless by Pat Shaughnessy about a curiosity of how MRI Ruby 1.9 handles strings. Why are 24 byte strings far slower to process than 23 byte ones? Find out here.

Giving Rails 2 the Rails 3.1 Asset Pipeline
Not quite ready for Rails 3.1 yet but still want an asset pipeline on your Rails 2 app? Davis W Frank was in that situation and in this post explains how he sorted it out.

The & Operator in Ruby
Pan Thomakos looks at the uses for the & operator and its associated methods in Ruby, including bitwise ANDing, set intersection, and the unary &.

Ruby Gems API Console: Play with RubyGems.org's API on the Web
An interesting API console that's set up to play with the RubyGems.org JSON API. Click the drop down to the left to see all of the prebuilt requests.

MiniTest Quick Reference
MiniTest is the unit testing library that comes in the Ruby 1.9 standard library and which also acts as a compatibility layer for test/unit on 1.9. Matt Sears has put together a handy round up of the assertions and matchers offered by MiniTest::Unit and MiniTest::Spec.

Structural Design Patterns in Ruby
Gregory Brown looks at seven structural design patterns laid out by the Gang of Four, the Adapter, Bridge, Composite, Proxy, Decorator, Facade and Flyweight.

'bundle exec rails' Executes Bundler.setup 3 Times
Rails core team member Santiago Pastorino notes that running 'bundle exec rails' is an inefficient mistake and explains why. (TLDR: Just use 'rails', it'll work out the particulars.)

1 and 2 Letter Ruby Gems
Mike Gunderloy looks at Ruby gems that only have a single letter as their name. It's a mixture of junk and curiosities.

'Kestrels, Quirky Birds, and Hopeless Egocentricity' by Reg Braithwaite
Ruby's own 'Raganwald' has compiled his essays about combinatory logic, method combinators and Ruby meta-programming into a handy and inexpensive e-book. Cerebral stuff.

Libraries and code

Momentum: A Rack Handler for SPDY Clients
SPDY is a experimental networking protocol developed by Google (and already used in Chrome) for delivering Web content more quickly. Momentum is a Rack handler that can receive connections from SPDY clients and run Rack apps. Lots of info in the README.

Webmachine: Expose Your App's Resources Via HTTP Declaratively
webmachine-ruby is a port of Erlang's Webmachine. Both projects aim to expose parts of the HTTP protocol to your application in a declarative way, so you're less concerned with handling requests directly and more with describing the behavior of the resources in your app.

EmberJS-Rails: Ember.js for Rails 3.1 Developers
Ember.js is the new name for the Sproutcore 2.0 framework, a powerful system for building rich JavaScript-driven Web applications.

Celluloid 0.7: Actors for Concurrent Programming in Ruby
Celluloid provides a simple and natural way to build fault-tolerant concurrent programs in Ruby. With Celluloid, you can build systems out of concurrent objects just as easily as you build sequential programs out of regular objects. 0.7 has just been released.

Gitview: A JS Widget to List GitHub Repositories
Gitview is a JavaScript widget you can include on any page to show off your GitHub repositories. Github-badge has done this for years, but Gitview has an interesting GitHub style presentation format including the weekly commit bars.

Screencasts, Presentations, and Podcasts

Some Thoughts on Ruby Classes After 18 Months of Clojure
An enjoyable 25 minute romp through Brian Marick's thoughts on structuring objects in Ruby based on his experiences with the Clojure Lisp dialect.

Sending HTML Email (RailsCasts)
Ryan Bates is back for his weekly RailsCasts episode, this time looking at how to not only send HTML e-mail, but how to put it together (along with the obligatory inline CSS) too.

Debugging Scary Crashes of Rubinius
Dirkjan Bussink has been debugging memory corruption in Rubinius and has put together a 55 minute video explaining how he debugged it. Surely a must watch for any wannabe Rubinius hackers. A 453MB download though..

'Architecture the Lost Years' by Robert Martin at Ruby Midwest 2011
I really enjoyed this keynote by 'Uncle Bob' at the recent Ruby Midwest 2011 conference. He talks about application architecture and how the typical 'Rails way' of approaching it has key disadvantages compared to a decoupled approach.

ActiveRecord Anti-Patterns for Fun and Profit
At November's Ruby Midwest 2011, Ethan Gunderson gave a talk on common mistakes made when working with ActiveRecord and how to make everything all better.

Smalltalk On Rubinius (or How to Implement Your Own Programming Language)
At September's Golden Gate Ruby Conference, Konstantin Haase gave a talk about implementing a programming language using Ruby and the Rubinius compiler tool chain.

Getting Started with Rails: RailsCasts
Ryan Bates takes it back to basics this week with a quick 7 minute sweep through some of the sites, tools, and books you'll find useful when starting out with Rails as of late 2011.

Vim for Rails Developers Screencast
An inexpensive 34 minute screencast by Ben Orenstein that teaches you how to use the popular Vim text editor when working with Rails projects. Ben has a lot of experience in this area.

The Ruby Rogues on Benchmarking and Profiling
Aaron 'tenderlove' Patterson rejoins the Rogues for an hour long chat about benchmarking and profiling Ruby code. There's a lot of depth here and it makes for a typically good and roguish listen.

Ruby Jobs

C/Unix Agent Engineer [Portland, Oregon]
New Relic, the Web app performance monitoring and management folks, are looking for someone who loves Ruby but is an experienced C or C++ developer who understands multithreading, database contention, and object-oriented design.


more »

9 Ruby and Rails Jobs for January 2012 »

Created at: 03.01.2012 00:06, source: Ruby Inside, tagged: Miscellaneous

jobs.pngRecently Forbes wrote about the rise of 'developernomics', noting that companies are seeing programmers as a 'safe haven' investment in otherwise troubled times. Maybe.. maybe not.. but the Ruby and Rails job market is as hot as ever, so if you're looking for a new position, be sure to negotiate well! ;-)

To promote a job, see our Post A Job page. Your listing not only ends up on the Ruby Inside and RubyFlow sidebars but also in the 10114 subscriber Ruby Weekly for free (as a bonus) and on our 7305 follower @rubyinside Twitter account.

Senior Engineer - Edinburgh, United Kingdom

FreeAgent, the pioneers in web-based accounting, is looking for a senior engineer to join their engineering team in a brand new office in beautiful Edinburgh. It's a fantastic opportunity to join a young, exciting and fast-growing company, and help develop a much-loved and high-traffic customer-facing web app — click here to learn more.

Ruby Developers (Jr and Sr) for Awesome Social Media Tech Co. - Redwood City, California

Wildfire Interactive is looking for a Ruby Developers (both junior and senior) to work on social media technology (lots of working with the Twitter API, for example). They want truly talented Ruby developers with a passion for clean code and great products. Their current technology stack includes Ruby on Rails & Sinatra, and they're in the process of building a number of pure Ruby components so it's not just a Rails job — click here to learn more.

Ruby on Rails Developer - Austin, Texas

Facilities Technology Group is a small company with a software product used by thousands of hospitals around the country to manage and maintain the maintenance of equipment. They're busy migrating an old ASP classic based version of their product to Rails and are looking for a Ruby on Rails Developer to help join the team to make it happen — click here to learn more.

Back and Front End Developers at New Relic - Portland, Oregon

If you've been reading Ruby Inside for a while, you'll already know New Relic, the leaders in webapp performance management and monitoring. They've got a couple of different positions open, first they're looking for a back end Rails developer and.. a front-end Rails developer too!

Software Engineer and Generalist - San Francisco, California

Samasource is an award-winning technology social enterprise that provides dignified, internet-based work to people living in poverty. They're looking for a Software Engineer / generalist to join their team and write code that meaningfully impacts the human condition — click here to learn more.

Software Developer - Lewisville, Texas

Geoforce, Inc. is looking for a Ruby and JavaScript Developer to work in a team environment to write and maintain Ruby and Javascript code. Experience with geospatial tools is a big plus — click here to learn more.

Senior Java/Ruby Software Engineer - Oakland, California

Outbid.com is a unique peer-to-peer auctioning platform designed to allow users to host their very own live online auctions. They're looking for a senior Java/Ruby Software Engineer to join their growing product development team — click here to learn more.

Network Software Engineer - Pittsburgh, Pennsylvania

Carnegie Mellon University is looking for a Network Software Engineer to be responsible for the design and development of network-related systems and services that operate, automate, and protect Carnegie Mellon's campus and global data networks — click here to learn more.

To promote a job, see our Post A Job page. Your listing not only ends up on the Ruby Inside and RubyFlow sidebars but also in the 10114 subscriber Ruby Weekly for free (as a bonus) and on our 7305 follower @rubyinside Twitter account.


more »

A Lagom Review of O’Reilly’s ‘Sinatra Up and Running’ »

Created at: 14.12.2011 17:15, source: Ruby Inside, tagged: Miscellaneous

Sinatra Up and Running is a new book published by O'Reilly and written by Alan Harris and Konstantin Hasse that covers the popular Sinatra web application DSL in a brisk 103 pages, acting as a tutorial to newcomers and a handy reference for old hands.

TLDR: It's a short, sweet, relatively cheap and very well written book about Sinatra. Recommended. Buy here.

An interesting quirk of Scandinavian society is the concept of Jante Law. It knocks down standing out and being individual, in favor of communal harmony. It's typically used in a negative context to lament restrictions and lack of risk taking within Nordic society (DHH touched on this briefly in a recent Mixergy interview) but the flip side of the Jante coin is lagom: the idea and ideal of having just the right amount of something.

Sinatra Up and Running is, second to K&R, the most lagom technical book I've read. At a mere 102 pages you may wonder whether it's worth buying - it is. Unlike most technical books - yes, including mine - it skips the waffle and provides a perfect level of detail going through from what Sinatra is, to how it works, and on to an example project that covers just 13 pages. Don't be fooled, though, this isn't one of those tiny format O'Reilly handbooks; it's a regular, full size book - just a thin one!

Structure

The book is split into three key sections:

  1. Sinatra's "fundamentals." We cover similar ground to the Sinatra README but I prefer the less generic examples in the book. How to build routes, use views, use sessions, caching, HTTP headers, and even Sinatra 1.3's new streaming functionality.
  2. Behind the curtain. The bulk of the book takes a peak under the kimono into areas where online documentation occasionally trips over or fails to mention. How is Sinatra implemented and what is its basic execution model? How do you create extensions for it? How does it integrate with Rack middleware? And how can you use Sinatra in a modular style?
  3. Blog engine project. A snappy run through a simple Git and Sinatra powered 'blogging' system.

As a core piece of printed documentation for a project, the book does a great job at sharing the basics, inspiring you to dig further and, of course, its short length puts Sinatra into context with the gargantuan Rails framework, where even a 400 page book would struggle to cover the essentials.

So, should you buy it?

Sinatra Up and Running is a good book and well written. I enjoyed it and picked up or was reminded of quite a few interesting bits and pieces. I'll probably refer to it from time to time. If your Sinatra experiences are rather on and off or you've not played with it for a while, it's a great, well-paced introduction.

If, however, you're already a Sinatra guru and/or working with Sinatra on a day by day basis and have all of the main patterns memorized, there's not a great deal you're going to get out of it. Buy it to be a completionist or to support the authors, but if you want a book demonstrating in depth how to integrate Sinatra with everything or how to big giant Web applications, this isn't for you.

Inexperienced Rubyists may also find the book's direct no-nonsense style intimidating. If you know what a code block is, you're good to go. This may seem like a bizarre observation to most Rubyists, but I've encountered many beginners who've wanted to "build a Web site" and immediately leapt into an advanced Rails book, only to be confused. If you're still new to Ruby, read The Well Grounded Rubyist or Beginning Ruby first.

And I'm going to stop here, because that would be lagom :-)

Where to buy

There are several options for buying the book. Check out O'Reilly (print, PDF, Mobi, and ePub), Amazon.com (print and Kindle), and Amazon.co.uk (print and Kindle) or your own favorite local bookstore.


more »