Issue #25 - January 20, 2011
Welcome to issue 25 of Ruby Weekly. No new design yet. I've been overwhelmed with the Ruby course I'm running at CodeLesson.com. 24 eager students :-) Nonetheless, the Ruby Weekly beat goes on:
Rails Installer Released: Ruby + Rails on Windows in One Installation
RailsInstaller is a new project from Wayne E Seguin (of RVM fame) that brings RubyInstaller-style simplicity to getting Ruby and Rails set up on Microsoft Windows (XP, Vista, or 7). In a single wizard-driven installation you get Ruby 1.8.7-p330, Rails 3, Git, and SQLite 3.
Sanitize 2.0.0 Released
Sanitize is a popular Nokogiri-powered HTML sanitization library for Ruby that first came out in 2008. Ryan Grove has now unveiled version 2. It's been significantly restructured but other wins include HTML 5 support by default and improved whitespace preservation.
The Road to Faster Tests
Jamis Buck of 37signals wasn't impressed with Basecamp's Test::Unit powered test suite taking 15 minutes to run. Here, he presents a 'travelogue' of how he walked through the issue and cut the time down dramatically with some tweaks.
HandlerSocket: The NoSQL MySQL and Ruby
Ilya Grigorik demonstrates how to set up and use the HandlerSocket library from your own Ruby apps in his inimitably succinct style. HandlerSocket lets you work directly on data stored in MySQL's data stores without using SQL, meaning you get crazy levels of performance.
How to Create Custom RSpec 2 Matchers
In RSpec matchers are nothing but methods available in the context of an example. You use them to make sure that a given expectation is met. Piotr Solnica has put together an *awesome* post that demonstrates how to create your own matchers for RSpec 2.
Screencast: Building a Delicious Clone in Rails 3.0.3 - Step 1
Charles Max Wood kicks off a series of (free) screencasts about building a Delicious clone in Rails 3.0.3. This time out he generates the basic Rails app, sorts out his Gemfile, and installs and configures some useful gems like Cucumber, RSpec, Devise, and Cancan.
Zero-Copy Data Transfer In Ruby (on Linux)
Phil Whelan explains the concept behind 'zero-copy', a Linux feature allowing for faster transfer of data between pipes, file-descriptors and sockets, and demonstrates how you can use this functionality in your Ruby projects.
Video: History of RDoc and RubyGems
Eric Hodel's RubyConf 2010 talk about the history of two significant parts of the Ruby landscape. He covers how both projects evolved over time and became what they are today. The talk is 36 minutes long.
ActiveRecord Golf: An ActiveRecord Model in 6 Lines
Avdi Grimm demonstrates how to create a very simple ActiveRecord model in as few lines as possible. A DataMapper version is also shown for comparison.
Fetching source index for http://rubygems.org/?
If you've ever been waiting for a 'source index' to be fetched from http://rubygems.org/ you might have wondered why it can take so long. If so, Nick Quaranto spills the beans and highlights some problems with the process.
Notable libraries and code
SafeShell: Sanitization for Shell Arguments
Need to call out to shell commands to process user-submitted files from your app? Pete Yandell points out some potential security flaws and presents SafeShell, a solution that keeps everything 'safe.'
Googl: Google URL Shortener API
Googl is a 'Google URL Shortner API in Ruby' from Brazilian development company Zigotto. As well as letting you shorten (and expand) URLs with Google's service, it lets you authenticate and retrieve analytics info for the shortened URLs too.
Apiary: Event-Driven API Server in a Box for your Ruby Classes
Wynn Netherland shows off Joshua Hull's Apiary, a library that gives you a module that can be included into your class(es) to get an event-driven API server 'out of the box'.
UTF8: A UTF-8 Aware String Class for Ruby 1.8.x
UTF8 is a lightweight UTF8-aware String class written in C by Brian Lopez and meant for use with Ruby 1.8.x.
Last but not least..
Git Immersion - A Git Tutorial
Git Immersion is a well-produced hand-holdy Git tutorial and walkthrough by Edgecase (who also created the popular Ruby Koans site). If you're not yet up to speed with Git or have been putting it off, check it out.