RubyFlow : The Ruby Community Blog

Home   Submit   Sign Up   Log In   leaders   Twitter   RSS Feed  

PeterCooper — 215 posts

Only available to Kickstarter backers till now, The Ruby 2.0 Walkthrough is now available to the public for $29 ($5 off with code FRIDAY). It's a compilation of videos (plus a PDF e-book) that covers the changes between Ruby 1.9 and 2.0 with examples and explanations. It also includes The Ruby 1.9 Walkthrough for free which is even more in-depth and covers all the Ruby 1.8 to 1.9 changes. If you want a preview, check out this 7 minute about Ruby 2.0's TracePoint feature to get a feel for the sort of videos in the package.
Pat Shaughnessy (author of Ruby Under a Microscope) and I recently sat down and took a tour of the MRI Ruby codebase. It's suited to people who've never looked under the hood before, not the C extension and implementation junkies - sorry! ;-) If the MRI codebase intimidates or confuses you, you'll pick up a few things here about how classes and methods are defined and what goes where. So go check it out.
It seems that sometimes.. the split is not enough! (Yes, Bond theme - 100% cheese.) If you've got a string that just won't split, there might literally be more to it than meets the eye. I use this as a springboard to launch into some Ruby whitespace shenanigans! Enjoy.
I'm putting together a free e-book of Ruby tricks and techniques that I've seen surprise other Rubyists I know. To commit myself to the project, I've recorded a screencast of 24 random tricks from my selection. Enjoy!
After seeing some similar attempts in Python, I decided to create a simple Ruby-based DNS server. It supports A and CNAME records. It's ripe for refactoring and you could easily attach it to a data store (like, say, Redis) or be used to do various DNS tricks.
After upgrading to Ruby 1.9.3-p0 I found that any exception in Ruby resulted in Ruby segfaulting on the TextMate Ruby bundle output screen. I found this gist where people were discussing the error and have some tips inside this RubyFlow post for you to fix the error yourself. [more inside]
Recently I released Ruby 1.9 Walkthrough, a video-based guide to Ruby 1.9. It's the most comprehensive and up to date walkthrough of 1.9 right now (and includes 1.9.3 specifics). To celebrate the release of Ruby 1.9.3 I've taken 50% off till the end of Tuesday (November 1st) so it's just $12.

James Edward Gray II (of Ruby Quiz, Ruby Rogues, and Ruby guru fame) said:
The scope is absolutely epic. I know Ruby 1.9 pretty dang well and I still managed to learn probably ten things from the video.I realized you showed so much more than that, but very few viewers will have my level of knowledge of 1.9 going into it. It's an extreme data dump and I doubt anyone could fail to learn something from it. You've done a bang up job.
Check out The Ruby 1.9 Walkthrough site for info (and a 5 minute sampler) and if you're not ready for it yet, I'll probably do this again when 1.9.4 drops sometime in 2012 ;-)
Yugui has announced the release of Ruby 1.9.3 RC1. 1.9.3 is on its way! But what's new? I summarized the changes over 1.9.2 at Ruby Inside and also linked to a talk by Yuki on the same topic. Highlights include a change in Ruby's licensing, faster loading performance, and a better garbage collector.
After weeks of research and recording, I've released The Ruby 1.9 Walkthrough, a pay-for 3 hour screencast (it costs money, sorry!) that provides the most thorough and up to date tour of Ruby 1.9.2 and 1.9.3's features if you're coming from Ruby 1.8.7. If you haven't yet taken the plunge and are wondering what's new, what's gone, or what's just plain different, this is for you :-)
MiniTest is in the Ruby 1.9 standard library and its MiniTest::Spec sub-library provides an elegant and quick way to do spec-style testing. I've written a brief introduction to MiniTest::Spec on Ruby Inside so you can quickly give it a try for yourself. (On Ruby 1.8, just do gem install minitest)
If you've seen people saying to run gem install rubygems-pwn on Twitter (which I don't advise!), it's because it's a proof of concept for a vulnerabilty in RubyGems. The rubygems-pwn project on GitHub has more information about it, but essentially you can push arbitrary Ruby code into gemspec parameters which will then be executed later on. The vulnerability has been discussed in the rubygems repo where a fix has already been made but, hopefully, more general fixes should be made available soon. (If you want to see the direct example of a malicious gemspec, look here.)

Update: RubyGems 1.8.10 has been released to address this vulnerability.
Last weekend, hundreds of coders took part in Ludem Dare, a 48 hour game coding contest. Minecraft's creator "Notch" created a cool little game in Java called Prelude of the Chambered. So far, I've spent two days porting it to JRuby. It's not complete but you can play the first few minutes OK now (get weapon, push rocks, kill bats, etc.) The performance is nowhere near as good as in Java but that's the next step, so if you're a JRuby expert, I expect pull requests.. :-)
Chris Ledet noticed the recent drama about the cruftiness of Ruby's official site and immediately set to work on his own attempt. It's called and it's an impressive attempt in such a short time. Does it just splinter efforts or does it continue a proud tradition of reinvention in the Ruby community? We'll see!
Ruby 1.9.2p290 has been released but without any real explanation of what it's all about, so I've written a summary of the changes and how to upgrade to it.
RubyConf 2011 ticket sales are now open and the schedule has also been unveiled. Some great sessions. I've written more about it at Ruby Inside.
Over on Ruby Inside, I've put together a post that links to a great written writeup of installing and using Postgres for Rails development by 37signals' Will Jessop but also a screencast version of my own. Enjoy. It has some Rebecca Black action in there.
A few days ago I wrote about how ruby-edge (and Ruby 1.9.3) got a faster file loading patch giving a boot speed improvement of 30-40% on Rails 3.0 apps. Well, someone's made up a similar patch for Ruby 1.9.2 and I explain how to get it running on Ruby 1.9.2-p180 right now. Want your Rails 3.0/Ruby 1.9 specs to fly a little faster? Here's your ticket.
Xavier Shay has put together a blog showing how he's tweaked Ruby's require in Ruby HEAD to be a lot more efficient, with the result of Rails 3.0 app startup times being significantly improved. My own experience testing out this patch resulted in a 36% reduction in app startup time - nice!
The Ruby Rogues (this week, Charles Max Wood, Aaron Patterson, Peter Cooper, James Edward Gray II, and Fernand Galiana) have a new episode of their podcast up where they discuss databases, key value stores, and the SQL/NoSQL debate.
Rails 3.0.8 RC1 Released
Aaron 'tenderlove' Patterson has written a highly stylized announcement of Rails 3.0.8 RC1's release:
This is a release candidate! It means that we (the rails core team) are asking *you* (our lovely users) to test out the code that we'd like to release! This is your chance to VETO our release of Rails 3.0.8 final!
Powder: Making Pow Even Easier
Powder is a gem that makes using 37signals' handy Pow server even easier. It turns adding a project to your Pow setup down a simple powder at the command line, powder open to load the page in your browser, and that's it.
I just live-blogged David Heinemeier Hansson's RailsConf 2011 where he focused on the 'asset packaging' and pipeline features coming in Rails 3.1 (which he also said would be available in Release Candidate form this week).
It's new and scrappy and we're still finding our feet, but Ruby Rogues is a new podcast chaired by Charles Max Wood and featuring Aaron 'tenderlove' Patterson, David Brady, James Edward Gray II, and me, Peter Cooper. The big issue in the first episode is our opinions about testing.. prepare to be shocked.
Eric Hodel has unveiled RubyGems 1.8.0 and Ryan Davis has written an interesting post about what that means to all of us. In short, lots of deprecations and a call to report more bugs instead of whining about them.
Padrino is a framework of helpers for building powerful webapps upon the Sinatra webapp library. And now, the Padrino team has just announced Padrino 0.9.25 which, it seems, is a more significant release than the point update implies. Updates and improvements include the all-new "Padrino Cache", full support for Erubis and Slim rendering, support for unobtrusive JavaScript handlers, and a revamped routing implementation.
Marc Andre Cournoyer (of Create Your Own Programming Language and Talker fame) has unveiled his "Owning Rails" masterclass. It's going to be in May and costs money but should offer an awesome, intensive Rails learning experience. You can find out more at too.
Over on Ruby Inside I've just written about the latest Rails 3.1 storm in a teacup. Yeah, Rails 3.1 is bringing CoffeeScript, Sass, and jQuery into the fold. Luckily, Jason Seifer has released to clear things up for us. On a more serious note, though, if you're new to CoffeeScript, this presentation should do a great job of selling it to you.
From 37signals comes an interesting new Ruby project: POW!! It's a "zero-config Rack server for Mac OS X" by Sam Stephenson and it allows you to "knock out Rails & Rack apps like a superhero." Pretty bodacious stuff and people have been raving about it over Twitter and Hacker News all day.
Aaron "tenderlove" Patterson has unveiled Rails 3.0.6, a release focused around bug fixes and a significant security fix on auto_link. Other joy includes "Un-deprecating the reorder method in ActiveRecord" and "Fixing schema support for the mysql adapter".
MacRuby Moving to GitHub
Till now, MacRuby has been based on SVN so contributing hasn't been as easy as it might be. It's good news, then, that Laurent Sansonetti has today announced that MacRuby is moving to GitHub. The MacRuby codebase will be located on GitHub but ticketing features, etc, will remain as-is.
Jeff Casimir has announced that he's running a Rails testing workshop for charity the day before RailsConf 2011 kicks off (so on May 15, 2011). Your instructors will be Jeff Casimir, Nick Gauthier, Matt Yoho, Marc Peabody and you'll learn all about RSpec, Test::Unit, Capybara, Cucumber and more. If you want to be fully "test fluent" before the conference starts, it sounds like a good session.
I've posted images of the foreword that why the lucky stiff produced for Beginning Ruby. A lot of people haven't seen them and they're another delightful part of the _why oeuvre.
MacRuby 0.10 Released
Laurent Sansonetti has released MacRuby 0.10, the latest version of the Mac OS X-focused Ruby implementation. 0.10 is the latest stepping stone on the way to a forthcoming 1.0 release and includes XCode 4 support and an improved macruby_deploy system.
InfoEther is a popular Ruby and Rails consultancy and one of America's first. Several well known Rubyists work there including Rich Kilmer, Chad Fowler, Tom Copeland and Bruce Williams. Today they've announced they've been acquired by 'social commerce' company LivingSocial. One heck of a recruitment drive!
Sinatra 1.2.0 Released
Konstantin Haase has just announced the release of Sinatra 1.2.0. It now supports the Slim Template Engine, inline Markaby, conditional filters, named captures, and more. Congrats to the whole Sinatra team.
Phusion (the folks behind Passenger) have unveiled their latest creation - a webapp performance monitoring and behavior analysis service called Union Station. It's currently free during the beta phase (though only the first 1000 apps will be accepted) but will eventually be a paid service.
Why Use Rubinius?
Brian Ford of the Rubinius project explains why you should be using Rubinius, whether you're a hobbyist, pro developer, language enthusiast, manager, or even philosophy student. An interesting yet light-hearted look at the benefits of a rapidly maturing Ruby implementation.
MacRuby 0.9 Released
The MacRuby team have announced the release of MacRuby 0.9 - the OS X focused, LLVM-powered implementation of Ruby. They note that this release is focused on stability, compatibility and performance improvements and that no major new features are expected before 1.0.
Some interesting Rubinius blog posts in the last couple of days. First, Brian Ford showed us what's next for Rubinius (including scarily good concurrency, Windows support, JIT fun and more) and then Yehuda Katz decided to get us comfortable with Rubinius' pure Ruby internals. There's a lot of great stuff to pick up from both of these posts if the nitty-gritty of implementing Ruby interests you.
Phusion (the Passenger guys) have released Ruby Enterprise Edition 1.8.7-2011.02 (try saying that quickly) in response to the recent Ruby security vulnerabilities. It gives you an up to date Ruby 1.8.7 with all of Phusion's memory and performance tweaks along with RubyGems 1.5.
Eric Hodel has announced that "RubyGems' Gem Activation is Changing." In short, edge RubyGems and RubyGems 1.6 will 'lazily activate' gems meaning their load paths won't be added to $LOAD_PATH until needed. Eric is inviting people to help test the new approach. In other news, RubyGems will no longer 'chew on RAM' either..
Not the sort of news we love to share but.. Ruby 1.8.7, 1.9.1, and 1.9.2 have all been updated today due to vulnerabilities. The first is in FileUtils. The second is with $SAFE (on 1.8.x only). has released Introduction to Haml, a (free) screencast that introduces you to a popular (but somewhat divisive) Ruby templating library. If you already love/hate Haml, this isn't going to sway you but if you're new to it, check it out.
I needed to be able to read .webloc files (the files created when you drag URLs to the desktop in OS X) so I created webloc - a library that lets you both read and write said files. Works on Ruby 1.9.2 and 1.8.7 and reads both Safari and plist style .webloc files.
Stare in awe at this awesome 'spinning globe' Ruby quine at まめめも.
Given the recent nightmares Gawker (and some of its users) have been having, I should reassure you that the passwords on RubyFlow are (and always have been) salted and SHA-1 hashed. Nonetheless, use different passwords everywhere or a tool like 1Password where possible! Also consider this a reminder to check your own apps' password systems.. :-)
The Flying Camera is an OS X OpenGL game written in MacRuby developed during the 2010 Super Game Dev Weekend. If you fancy digging into a MacRuby + OpenGL project, this is a great place to start.
It's been at least a year since I invited everyone to have their say on where RubyFlow should be going (or not going!), what features are missing (or should be removed!), and so forth, so here we go. Post a comment here spilling out anything you want to say, suggest, praise, or criticize, and I'll read them all (and maybe even throw in some ideas of my own).
RMagick needs new maintainers
The current maintainers of RMagick, the image manipulation library, are no longer able to maintain it and are seeking new maintainers to take over the reins. RMagick has its detractors but this is a high profile Ruby library, so if you're feeling brave..
RSpec 2.0 is released
As of 53 minutes ago, RSpec 2.0.0 hit the gem servers and is now released. Learn more about what's new, some exciting stuff in there!
Rails 3 Upgrade Handbook - $9 Special
Jeremy McAnally has just announced he's reduced the price of his Rails 3 Upgrade Handbook to $9 (from $12) for the next 3 days in celebration of Rails 3's release. I read it a while back and.. it's good - check it out.
John Nunemaker demonstrates how to build your own (simple) object mapper.
I've launched Ruby Weekly, a weekly (each Thursday) e-mail newsletter with a roundup of the week's top Ruby and Rails links. It's not designed to replace any other site but is aimed at those who would find a weekly e-mail a better way to keep up. Enjoy!
Ryan Norbauer is selling his, Ruby-related clothing site. In the last 2 years, it's taken in about $16K and fulfilment, etc, is handled by a third party. There's more information relating to the sale here.
Kirk Haines of Engine Yard has written a primer on memory allocation in Ruby MRI.
Caught up in the iPad fever today? Ruby Inside and RubyFlow are now optimized for the iPad! No zooming necessary — it's a slick full-screen experience. (Screenshot of how they look.) RubyFlow's iPhone experience has also been marginally improved.
Sinatra 1.0 has been released today. Install with gem install sinatra or check it out on GitHub. Congratulations to the team!
Awsymandias is a library that helps you set up and tear down complicated AWS environments. In addition to offering a clean, fluent domain model for working with instances and groups of instances it allows you to persist role-to-instance-id mappings to SimpleDB, allowing you to manage your stack from multiple different machines.
Rack::Throttle is a Rack middleware for limiting HTTP request rates to Rack-based Web applications. It's public domain and is also on GitHub.
RSense is a code completion and type inspection system designed for use with Vim and Emacs. It's based on JRuby but includes everything ready to go out of the box. It seems to have blown up in the Japanese Ruby world but I hadn't see any English language mentions of it yet..
LightMongo is a lightweight Mongo object persistence layer for Ruby which makes use of Mongo's features rather than trying to emulate ActiveRecord. It's an interesting alternative to the already popular and somewhat awesome MongoMapper.
I'm going to be doing a little extra development on RubyFlow soon, so I want to get a feel for what ideas and suggestions you all have for it. I can't promise anything but all ideas will be read and appreciated - just leave a comment here :-) Even if it's a small design tweak or "leave it alone", go for it!
I've decided to open up to public submissions. If you want some publicity or want to promote your plugin/library/whatever, you can now write a post for Rails Inside and I'll put it up. Anything that's not very poorly written or total nonsense will probably be accepted!
So the beta of Rails 3.0 is now out! I've published some instructions on how to install it.
I'm (ab)using my founder's privilege, sorry! My next major project (after Ruby Inside and Ruby Flow) is heading for release soon and since it's aimed squarely at developers, you guys are my ideal audience! It's called hasn't launched yet but please sign up and you'll get the first look and eventually some discounts and freebies. Also, no spam.. you'll only ever get up to 3–4 e-mails since it's just a launch list.
Sorry, it's just humor, but what if MacRuby 1.0 were the "one more thing" during Steve's tablet keynote? More seriously, native iPhone apps powered by MacRuby would rule, so even GC on the iPhone would be a great addition in the next firmware release.
Maglevity - A Blog About MagLev
Maglevity is a blog by Peter McLain (a MagLev developer) about the MagLev Ruby implementation.
Though first announced in early 2008, the highly anticipated super-implementation MagLev has finally got its first public alpha release. I've written about it on Ruby Inside and shown how to get it running.
SmallRuby is a new Ruby implementation for the Smalltalk/X virtual machine. On some selected benchmarks, SmallRuby trumps existing Ruby implementations 10-40x performance-wise (though take this with a pinch of salt for now). This is a project worth watching..
"g" is a new library that provides a global "g" method that you can use to inspect objects much in the same way as Kernel#p. The difference is that the output goes to Growl, a popular OS X global notifications tool. It's technically an easy gem install and go, but if you have problems with it not finding Growl, this blog post about getting ruby-growl working should salve your distress.
Under the tutelage of Koichi Sasada, a Japanese junior high student has boosted the performance of several key methods in the edge/next version of Ruby 1.9.
Today Mike Gunderloy posted about his "tools of the trade" that he uses for his Ruby and Rails development. I thought this would make an interesting post on Ruby Inside - linking to all of your similar blog posts about what kit you use. So, if you want to be featured, make a similar post on your own blog (or in comments here) and we'll do a post in a week or two!
Long overdue, the redesign of Ruby Inside is live! There's now a search function, featured posts, an extended "popular Ruby links today" section (though to be improved further), an iPhone stylesheet, and a bunch of other fun. Rails Inside has picked up a new design too in a more controversial purple colorway..
Coulda is a new testing library by Evan Light that provides "Cucumber-like BDD power but with an internal DSL." Further: "coulda believes that the best way to reuse code is the good ol’ fashioned method. Instead of sharing files of regexps mapped to procs, you just write methods. That simple.
Lapsus is a time tracking software currently in beta that has been developed specifically with Ruby and Rails developers in mind. You don't have to start/stop timers, it detects when you're working (in TextMate, etc). Developer John Gallagher is keen for people to sign up to join the beta.
RVM: Ruby Version Manager
Ruby Version Manager (RVM) makes it ridiculously easy to use multiple versions of Ruby at the same time. You install RVM, tell it to "use" a certain Ruby distribution, and if you haven't got it, it'll install it. You can then switch around at will and "ruby" and "gem" will work independently on each. There's also a writeup on Ruby Inside.
Via Twitter I just learned about BDDCasts. It's a commercial screencasting site with two screencasts so far. It covers Cucumber, RSpec, and Rails. The author appears to be Jeffrey Schoolcraft.
RIO: Ruby I/O Facilitator
It strikes me as extremely idiomatic but Rio bills itself as a "Ruby I/O facilitator" that abstracts the abilities of many of Ruby's IO classes. It's not new, but it hasn't been on RF before.
It seems that Ruby hero, why the lucky stiff, is missing (or has been the victim of a significant hack). why is mostly known in Ruby land as the creative genius behind things like Hpricot, Hackety Hack, Shoes, RedCloth, and Camping.
Yes, RubyFlow is sporting a new design - shaking things up. 2 main new features: 1) profile editing, 2) posts and comments show avatars based on your Gravatar. To have the avatar show, you need to edit your profile and supply your Gravatar-enabled e-mail. There are a few more minor tweaks also.
Randal L Schwartz has interviewed David Heinemeier Hansson for his FLOSS Weekly show. DHH talks about Rails, 37Signals, and how he came to coding late in life (relatively speaking).
In collaboration with icon designers Iconshock, we're giving away 6 free Ruby and Rails related icons for you to use over at Ruby Inside.
I'm often mentioning amazing Ruby libraries or tools I've seen to people and assume they must have heard of them (examples: Chronic, Ramaze, Feedzirra). Often, people are surprised and delighted to learn about new stuff I thought was common knowledge. So what libraries or tools do you think are underrated or poorly exposed? I bet there's a ton of stuff I'd find interesting that you know about that I've never seen before. Let's all share and enjoy :)
Carl Mercier has forked Brightbox's Is It Ruby 1.9 Ruby 1.9 Gem compatibility web app to make Is It JRuby that tracks which gems work with JRuby. (Found through John Leach of Brightbox.)
Ruby Inside is looking for a writer (only one, alas) to contribute 12-20 posts per month. All the details within this RubyFlow post...
Tanner Burson has crammed a Sinatra app (with included tests) into a single Rackup file. What's interesting is that the app will only run if the specs passed - whoa!
Out of the box, the admin_data plugin allows you to not only browse and quickly search data but also do advanced searches on a field by field basis. You can check out a live demo. Get the source code from GitHub. (Posted on behalf of someone else.)
Aman Gupta and Joe Damato did some investigation of EventMachine and Ruby's garbage caching and found a wee bug which, when resolved, made garbage collection 2-3x faster and a Web-related test 14 times quicker.
Melvin Ram has written a walkthrough for setting up a Rails app on a fresh server using Moonshine on a new Ubuntu server.
I upgraded Rubyflow to Rails 2.3.2 yesterday (to take advantage of a new feature) and even though everything seemed okay, the server had an old version of Rack and this caused some sporadic, nasty features that caused issues with posting comments and items (but not all the time!). Turns out it's called the "Rails 2.3 params" issue and relates to having a pre-1.0 version of Rack installed. So.. now fixed :) Be aware of this if you upgrade your own apps.. (Update: Turns out to be something far more insidious.. a Rack 1.0 vs Passenger bug.. see in the thread for details.)

Anyway, RubyFlow also has a new feature. See those posts with a little crown and a red highlight? Those are "featured" posts that I'm marking off as being particularly noteworthy (often because I want to mention them on Ruby Inside). The leaderboard page has also gotten a little upgrade.
a.k.a. How JRuby makes Ruby fast. Charles Nutter takes us on a walk through JRuby's differing levels of optimization and what effects they have. A great read.
A few days ago I saw smaz, a C library by Salvatore Sanfilippo that's great for compression short strings. RSmaz is my pure Ruby port of this library (complete with tests). If, for some reason, you want to compress short strings by 10-60%, check it out.
A week ago, libxml-ruby 1 was released and rather quickly some benchmarking results of libxml-ruby vs Hpricot, REXML and Nokogiri went up. Unexpectedly, they showed libxml-ruby as about 10% slower than Nokogiri. Turns out this shouldn't be and Charlie Savage has worked out why and resolved the problem. Nice investigation.
JRuby 1.2.0 Released
Thomas Enebo has announced the release of JRuby 1.2.0. Lots of performance increases and support improvements, as well as significantly improved Ruby 1.9 support. Check it out - it's super fast (faster than 1.9.1 with my basic benchmarks).
Planet Argon have released the results of the Rails Hosting Survey 2009. Lots of people using Git, mod_rails, and Capistrano :)
A Ruby Inside reader wrote in last week asking me to run an article linking to projects they could look at that demonstrate good Ruby style and coding practices (after I had said Heist was a good demonstration of this). So.. rather than just post all my own opinions, I thought I'd get some input! What libraries, apps, plugins, etc, do you think show a very high quality of coding? All suggestions welcomed, and if you leave a name/URL with your comment I'll try and credit you in the article.
Sorry, it's all in Japanese and it's all a bit voo-doo like to me, but there's some interesting code and slides amongst it. Takuma Mori has been working on running Ruby apps on the iPhone and this presentation has some interesting slides. It seems quite a few steps beyond Rhodes though is extremely experimental I gather.. Update: Some info in English.
Aaron Patterson (of Nokogiri fame) is calling on all Rubyists to send Jim Weirich a letter to both support him and encourage him to release new version of Rake. There's some sort of deprecation issue that needs to be sorted out it seems.
Ryan Tomayko has released Shotgun, a "forking implementation of Rackup." Its primary use is for reloading apps on every request to make life easier in development (particularly if your Rack-based app doesn't do reloading itself).
Jesse Andrews has put together some short and sweet instructions for setting up log rotation for your Rails app's log files when running under Passenger.
sinatra-rubygems by Jesse Newland is a re-implementation of RubyGems' "gem server" functionality in a Sinatra app.
Ruby Turns Sweet 16
Yesterday was Ruby's sixteenth birthday.
How to Update a C Extension for Ruby 1.9.1
Banisterfiend demonstrates the porting of a C-backed extension up to Ruby 1.9.1.
The developers at Rails consultancy Intridea have started Intridea University. Their first class is Introduction to Rails and runs February 27 through March 1. Adam Bair and Joe Grossberg will be teaching.
You thought Rubinius was dead? You're wrong! Brian Ford reports on some new tweaks that have increased performance by over 4x. Update: Make that a 2x increase. Sorry!
My latest release is iPhoneFlow - it's just like RubyFlow, but for iPhone developers. If iPhone development is your schtick, come join us. It's still early so you could get on top of the leaderboard still ;-)
Guide to Rails Metal
Just found a pretty cool introduction to Rails Metal and how to use it in a practical manner, including accessing the request info, the session, view helpers, and so on.
Simply install the rails-dev-boost plugin and stop wasting your time waiting for Rails to reload the whole universe for you :). Now fully compatible with Rails 2.2 and 2.3 (but not anything lower).
Classy Web Development with Sinatra is a set of two screencasts by Adam Keys on the Sinatra Web application framework. I'm going to be reviewing them for Ruby Inside shortly, but if you've already seen them and have opinions to share, leave a comment and I might include it in the Ruby Inside post (with a link too, if you like)!
Luke Crawford, the new CTO of Muxtape, has written about how Muxtape has come to move from PHP over to Ruby and Rails. A Muxtape API is also in the works and they'll be looking for Rubyists to get involved - exciting stuff.
New stuff.. 1) You can now view a "leaderboard" of RubyFlow members - yes, this was requested and I thought it was fun. - 2) The posting interface is much, much improved. - 3) Beta support for search, via /search/[query] - also, each search has an RSS you can subscribe to if you want filtered news! - 4) Lots of minor tweaks, improved HTML sanitizing, stuff like that. Thoughts? Love the new features? Hate the new features? Got some ideas of your own? Leave a comment! (And, at the same time, work your way up the leaderboard - lol!

If you're reading this via RSS, please come visit the main site and check out the overall improvements.
Robby Russell of Planet Argon has set up a 5 minute Rails hosting survey. Why should you take it? Well.. the results will be collated anonymously and shared with the community afterwards, so not only will your answers help out Planet Argon, but they could help shape the Rails hosting market generally. The questions are all simple to answer - how much experience do you have, do you use automated deployment, how many apps have you got in production, etc.
John Leach of Brightbox (Rails hosting company) has announced the release of a new Ubuntu package for Passenger & Apache. I've used it on my Linode (sorry BB!) to get a Rails stack up and running in a few minutes. BrightBox has also announced the start of a 50% off sale for the rest of January - good if you need Rails (and other Rack-based frameworks?) hosting in Europe, I'd say.
Neeraj has put together a cool demonstration of validating non-ActiveRecord models (but using AR validations) in Rails. This could be very useful!
Someone I know is writing a feature on the Rails / Merb merger for the 2nd issue of The Rubyist (Ruby magazine). He/she will be interviewing several people but also wants to get a general community feel for the opinions surrounding the merge. So, say anything you want here on RubyFlow, get it all off your chest (extreme, intelligent, thoughtful, or otherwise) and you could be quoted and get your name in a shiny magazine article! (If you don't want to be quoted, make sure you make that clear in your comment..)
It's less than five minutes old, but Jeremy McAnally has released krauter, a new router for Rails. It's described as "Tiny (200 lines fool!), quick (adding routes so fast it hurts and competes with current router otherwise), and agile ('s not more agile. But it sounds cool.)"
Google has released opensocial-ruby-client, a library that enables you to work with OpenSocial services from Ruby. It's open source, but sadly you need to sign some sort of document before you can contribute patches and the like..
Garrick van Buren has written a clever little script that uses rb-appscript and XMLRPC to send photos from iPhoto to a Wordpress blog. It's surprisingly short and effective.
Merb and Rails Merge
Is April 1st late this year? DHH announces that Merb is being merged into Rails 3! Wowsers!
irb & script/console tips
Thoughtbot has put together some irb (interactive Ruby) and script/console (for Rails) tips.
A script / set of commands that show how to install Phusion Passenger and Ruby Enterprise Edition on Ubuntu.
On Ruby Inside we've just run Sinatra: 29 Links and Resources, but the comments are filling up with extra apps and links to check out. If you want to get on the Sinatra bandwagon, this is the place to start!
Rather unusually, a video of David Heinemeier Hansson commenting on Merb's recent PR joust with Rails has cropped up on Vimeo. In it he appears to be fed up with the "amount of bullshit" coming from the Merb group. Whether this video was uploaded by David himself or not is uncertain (I believe he doesn't like the initialism "DHH" so it seems odd for that to be his username).
Rails 2.3's Metal
DHH has introduced Rails Metal to edge Rails (to become Rails 2.3) - a Rack middleware for processing low-level requests (hence "on the metal") without putting them through most of the Rails stack.
Dr Nic has written an excellent roundup of how to future proof your Ruby code using multiruby pending the release of Ruby 1.9.1.
On Rails Inside, Mike Gunderloy has written a summary of libraries and plugins to access Amazon Web Services (such as S3, Simple Queue Service, EC2 and DevPay) from Ruby and Rails applications.
AlterEgo - State Pattern for Objects
AlterEgo is a Ruby implementation of the State pattern as described by the Gang of Four. It differs from other Ruby state machine libraries in that it focuses on providing polymorphic behavior based on object state. In effect, it makes it easy to give an object different “personalities” depending on the state it is in.
Getting the Merb on Linode
Grant Michaels has put together a walkthrough of installing Merb - running on a JRuby stack - on a Linode VPS. It'll work for Linux generally, however, and has even be useful to me on OS X. It's a bit of a mish-mash, but you'll probably find something useful in here.
I'm putting together a series for Ruby Inside that will profile some of the Ruby developers who've had a prominent effect or done a lot for the Ruby (and Rails) community in 2008. I have a few names already, but who would you nominate? I don't want to miss anyone obvious. This post is also a good way for you to show appreciation to any Ruby developers who've had an effect on you in the last year. So, yeah, this is a bit of a "love in" post! :-) Thanks in advance.
Rails 2.2 Enters World, Opens Eyes
To celebrate the release of Ruby on Rails 2.2, Ruby Inside is running Rails 2.2 Released - 27 Links and Resources to Get You Going!
Remember Gregory Brown, the Ruby developer who got $11,000 in donations to work full-time on an open source Ruby library? He's written a summary of how it all went.
Workling 0.4.1 is out. Workling is a Rails plugin that makes it easy to do "background work" relating to your Rails application. It now supports the popular RabbitMQ as a queue backend.
Creating Filesystems with Ruby and FUSE
Creating Filesystems with Ruby and FUSE: A walkthrough of creating your own file system on Linux using Ruby, FUSE, and the fusefs library.
Merb 1.0 Released
Merb 1.0 has been released so here are 44 different links to help you use it!
We've stopped using RSpec... say Rails development team ENTP. They're now back to Test::Unit but improved with Jeremy McAnally's context. Others in the comments suggest shoulda. Is it curtains for RSpec?
It's in Japanese, but mocksmtpd is a "mock" SMTP mail server written in Ruby for receiving mail.
A nasty DataMapper bug?
Cory O'Daniel claims to have found a massive flaw^H^H^H^H glitch in DataMapper 0.9.6 that results in 90 SQL queries being performed for just one simple lookup. Not being a DataMapper expert myself - is there any merit in this bug?

Update: It has now been fixed in dm-core. Awesome work all round.
Symbian, creator of the eponymous mobile platform, has released a port of Ruby 1.9 for.. Symbian.
Why you're drawn to mobile development: Rubyists are famous for trying new things, whether it's Erlang, Haskell, Amazon's cloud services, etc. Jon Dahl of RailsSpikes looks at why we're drawn to mobile development and mentions prominent Rails developer Hampton Catlin's successful iPhone app. Perhaps this post will encourage you to get some iPhone on your résumé? :)
ImageTooth is a library that provides programmers and users a simple way to generate images for odontograms from Ruby programs. You can choose between PNG and JPEG output.
Hampton's Ruby Survey Results Are In!
The results of Hampton Catlin's Ruby Survey are in. 1,224 people responded. 74% have read the Pickaxe. 40% are atheist.
Building Ruby on Nokia N810
A look at how to build Ruby on the Nokia N810 Internet tablet.
Ezra Zygmuntowicz writes that Engine Yard is looking for three new employees including a Ruby developer and two systems engineers.

I wouldn't normally post job related stuff here (especially as Engine Yard is a sponsor of RubyFlow) but Engine Yard is one of the top companies in the Ruby space to work for, so it'd be a real shame if the right people didn't get to hear about these jobs. (Note: I've not been paid or asked to post about this.)
Writers needed for Ruby Inside & Rails Inside (paid). I am looking to take on a writer/writers for Ruby Inside and/or Rails Inside. More information inside..
I'm creating a non-profit quarterly Ruby / Rails magazine and am looking for contributors. The "magazine" will act as a cultural artifact of the Ruby scene. About 15 Rubyists will supply a page of any content of their choosing, perhaps tips, art, rants, coding stories, self promotion, whatever. Blogs may be deleted in the future, but paper lives on!

The magazine itself will be sold at the lowest possible price; non-profit. Full color - about 24 pages per issue. Content can either be provided production ready (with, yes, pretty much full control over the design) or just in textual / other form and then adapted for print by me. I anticipate a deadline of the start of September with a view to publish the first issue as Quarter 4 of 2008 in October. If you're interested or know someone you'd love to appear in such a publication, post comments here. Thanks!
Accessing GMail with IMAP from Ruby
How to access Google Mail with IMAP from Ruby.
Posting to a Wordpress blog from Ruby
A look at posting to a Wordpress blog using Ruby and Atompub.
DataMapper Cheat Sheet
It's a cheat sheet for Datamapper, a popular Ruby ORM (and good alternative to ActiveRecord for many things).
RubyGems 1.2.0 Released
Eric Hodel announces the release of RubyGems 1.2.0. No big new features, but some added conveniences worth checking out.
Why MacRuby Matters
A summary of why MacRuby matters, its progress so far, and why it will replace RubyCocoa as the de facto way to develop Cocoa applications using Ruby.
First there was Ruby Inside, but now there's also ... *drum roll* ... Rails Inside! It hasn't been fully launched yet, but I felt RubyFlow's audience would be a great first audience to trial it with :) All comments welcomed here.
Guide to hacking Rubinius
Adam Wiggins has put together a quick start guide to hacking on Rubinius, an alternative Ruby implementation.
Capistrano 2.4.0 Released
Jamis Buck announces the release of Capistrano 2.4.0. It includes improved git support, an improved sudo helper, and numerous other enhancements.
MacRuby 0.2 Released
Laurent Sansonetti of Apple has released MacRuby 0.2. MacRuby is an alternative OS X focused implementation of Ruby that uses the Objective-C common runtime to improve Ruby's performance.
The Absolute Moron's Guide to Capistrano, Git and Thin Edition. An update of the earlier Absolute Moron's Guide to Capistrano featuring some extra tips for Git and Thin users (versus SVN and Mongrel).
Tips, help and links needed for Ruby Inside RSpec Roundup: I'm looking at creating a "round up" of useful RSpec tutorials, links, videos, resources, tips, blog posts, anything like that, for Ruby Inside. If you've written an article about RSpec (or want to - you'll get traffic!) or want to recommend something I can link to, please leave a comment here.
Sequel 2.0 Released
Sequel 2.0 has been released. Sequel is a popular database / SQL abstraction library. It provides thread safety, connection pooling and a concise DSL for constructing database queries and table schemas, as well as a simple ORM layer.
UK Rails hosting company Brightbox has released a Ubuntu Hardy package of mod_rails / Passenger. It's available from the Brightbox repository at and is called libapache2-mod-passenger
Robert Fischer posts about his issues with the lack of commitment for XML on Ruby. He doesn't like REXML too much either.

I want to write something on Ruby Inside to encourage people to get involved with implementing XML libraries (or improving those we already have). As no XML expert, however, I need your input to put out the call. Feel free to comment here on RubyFlow and let's get a discussion going.
21 Ruby Tricks
21 Ruby Tricks that you should know about (or at least recap).
Shoes: More Advanced Graphics Support
Shoes, WhyTheLuckyStiff's GUI app toolkit, now has improved graphics support with some Photoshop-esque effects and better syntax.
Lockdown is an authentication / authorization system for Rails (ver 2.x). It includes support for user groups and permissions with a nice Ruby syntax to enforce the security constraints.
TextMate Bundle for Merb
Thanks to Dr. Nic and Enginge Yard, there's now a TextMate bundle for Merb.
Ruby Kaigi 2008 Announced
RubyKaigi 2008 (Japan's Ruby conference) has been announced. Tickets are available to buy on Saturday, May 10.
An interesting set of instructions on what to do if using as a Gem source breaks your RubyGems. The short version: Remove as a source, update your RubyGems install, then add it back.
Rails Views Entirely in JavaScript
How to write your Rails views entirely in JavaScript. Interesting idea, but I'm not sure of the benefit of this yet..
With merely 10 minutes to fix this morning's spam issue before I have to go out (now!) there were a whole range of balls ups and mistakes made, and so.. we're now back on Sunday's database. Sorry!

In any case, changes have been made to avoid the spam issue in future. All users need to now be approved (once they've done a post and proven they're not spammers) before their items appear in the RSS and Twitter feeds, reducing their motivation.

Note: All existing users have been marked as approved.
The unstoppable Dr Nic has put together a JavaScript GitHub badge widget that allows you to show off which projects you're working on at GitHub.
Picolena is a Ruby gem that provides an app that works as a Ferret-powered document search engine (accessible over HTTP).
An interesting introduction to TextMate's Ruby bundle. A good place to start if you use TextMate but haven't used any of the mnemonics and snippets the Ruby bundle provides (like me).
tm_syntax_highlighting is a new Rails plugin that allows you to do TextMate-style syntax coloring in your app (GitHub repository).
The Ruby Hoedown for 2008 is going down in Huntsville, Alabama on August 8 and 9. Keynote speakers so far are David Black and Chris Wanstrath. Engine Yard and Ruby Central are sponsoring.
Hobofields is an automatic migration generator. Annotate your model with the fields required as you go, then Hobofields generates the required migrations.
Have seen a rather clever Web server in a single line of Ruby code over at Code Snippets.
Great news! GitHub, the de-facto Git repository host / social network, now directly serves Ruby Gems hosted in Git repositories. This is a really big deal.
Version 0.4.7 of the Mack framework has been released. Significant improvements to this modular "Rails-lite" framework are namespaced routes and easy file upload capabilities (just two lines of code in a controller).
The Rails Spikes blog presents 5 little-known Rails methods. Namely: query_attribute, polymorphic_path, debug, a Rake task, and extract_options!
Logic based CAPTCHA for Rails
BrainBuster is a logic based CAPTCHA for use in Rails applications. Rather than give users a complex image to read, they get asked a question instead.
Dave Thomas, of the Pragmatic Programmers, has announced the availability of the beta of Agile Web Development with Rails, Third Edition. It's significant because it finally brings the book up to Rails 2.x standards. The beta is available as a PDF for $24.
A Look at Ruby Debuggers by Werner Schuster takes a look at the various debugger options available to Ruby developers (options for MRI, JRuby, Rubinius and Iron Ruby are included).
Bowled Over By RubyCocoa is an up to date, well illustrated tutorial covering how to develop an OS X application (with specs!) using RubyCocoa and XCode.
Are you a Twitter user? If so, check out RubyFlow on Twitter and follow.
Masquerade is a Rails powered OpenID server application, made available under the MIT license. Developer Dennis Blöte has written a blog post with more information.
PHP to Ruby documentation
The guys behind Rails for PHP Developers have an interesting new feature. On, you can just go and you see the documentation for the fopen function.. well, now you can do the same with or, etc., and it gives you the Ruby / Rails equivalent! Here's the homepage for the reference.
JRuby 1.1.1 Released
JRuby 1.1.1 has been released. It fixes some compatibility issues and introduces some minor performance enhancements. is a new Ruby / Rails search site developed by Atlantic Dominion Solutions. Rather than being a Google driven affair, it appears to be custom made and heavily focused on Ruby-only news sources.
Pure Ruby barcode generation library
Barby is a pure Ruby barcode generation library that's just been released.
Dustin Arthur Smith maintains a list of AI / Artificial Intelligence related Ruby plugins / libraries.
Heel: small static Web server
Heel is a "small static Web server" written in Ruby and using Thin that serves up a directory over HTTP.
Tranexp is a new Ruby library by Dr. Nic Williams that translates text between languages using the Tranexp web service.
RubyFlow-Ja is a Japanese translation of RubyFlow by Erubis creator Makoto Kuwata. It'll be linked permanently on RubyFlow soon.
Forkoff is a library by Ara Howard that forks off separate processes to more efficiently and quickly process data stored in enumerable objects. Very clean and easy to use.
Text Algorithms for Ruby
A Collection of Text Algorithms for Ruby. Basically, just a set of classes that perform various text functions, such as stemming, soundex analysis, Levenshtein distances, etc.
Preview 1 of Ruby 1.8.7 has been released. There appears to be a significant amount of backporting going on from 1.9, so 1.8.7 could turn into a very useful stepping stone.
Rubinius is Friendly!
Part two of the Rubinius For The Layman series: How Rubinius is Friendly. It mostly focuses on Rubinius' more verbose and detailed error backtraces.
Tim Pope has put together a list of best practices for contributing to Rails now it's running on Git. Ideal for those new to Git and wondering how to keep working on Rails.
Jonathan Cummins walks through a few easy steps to get a Rails application working on SQL Server.
Julian Raschke has announced the release of Gosu 0.7.9 for Mac OS X and Windows. Linux support is to follow. Gosu is one of the best and easiest game development libraries on Ruby, so it's worth a try if you haven't checked it out yet.
Ruby to JavaScript Compiler
RubyJS compiles / converts Ruby code into JavaScript that can run on most major browsers.
Vidar Hokstad presents mini reviews of 19 different Ruby-based templating engines. This is a surprisingly good round up.
Twitter (Ruby library) is a Ruby library and command line client for the Twitter status / micromessaging social network. It's not the first Ruby Twitter library but it certainly looks clean and well written.
RDoc 2.0.0 Released
RDoc 2.0.0 has been released, a significant release of the most popular Ruby documentation generator. The biggest improvement seems to be a new implementation of ri that yields some major performance increases.
Tioga is a Ruby library that produces "publication quality" charts and graphs. It outputs PDF and uses LaTeX for the text processing. The example results look like standard science paper fare.
Gregory Brown and Michael Milner have written a great article / walkthrough of Ruport, the Ruby report generation library, for O'Reilly. It seems a pretty solid introduction for those not quite ready to buy the Ruport book.
Graham Ashton explains how to make opening source code for specific Ruby Gems in TextMate a snap. This could come in handy, I'm always inspecting the source and have had to learn the path off by heart!
A comprehensive look at timezone support in Rails 2.1. Good place to start to get your app prepared for 2.1 (coming in the next week or two) if you need to deal with time zones.
Action Messager is an ActionMailer-esque library / plugin for your Rails applications that makes it just as easy to send instant messages as to send e-mails.
The 120 seconds guide to JRuby on Rails is a delightfully concise and direct walkthrough creating a very basic Rails application using JRuby very quickly.
Parallel Each with Peach
Peach is a cute Ruby library that provides threaded parallel versions of the "each", "map", and "delete_if" iterators (as peach, pmap and pdelete_if respectively.) It's like a lighter, green threaded attempt at a MapReduce for Ruby.
HotRuby News
A few weeks ago, Ruby Inside posted about HotRuby, a JavaScript VM for opcodes produced by Ruby 1.9. Now, JavaScript mastermind John Resig posts with his own impressions of the system. What makes his post especially worth a read is the number of insightful comments.
RubyForge Goes Git
Dr. Nic announces that RubyForge now supports Git as an SCM in addition to CVS and SVN.
Mack is a new Ruby Web application framework that's a bit like an ultra-modular Rails. It uses Rack, and claims to be generally faster than both Rails and Merb.
Ruby Flow Launches
Ruby Flow Launches. This is an incredibly meta / circular post, but it's a good way to kick things off.
Rails Jedi
Rails Jedi is only a handful of posts old, but it's one of the better new Ruby / Rails related weblogs I've seen come along in recent months. Hopefully he'll keep it going!
Ruby's Not Ready?
Ruby's Not Ready says one Python die-hard. A 6500 word essay (diatribe?) picking apart Ruby piece by piece and explaining just how much it sucks.