ContinuousIntegration: http://del.icio.us/popular/ContinuousIntegration
Ruby
Rails
testing
tools
cruisecontrol
agile
ContinuousIntegration
RubyFlow - the community based companion site to Ruby Inside - has been on fire! I’m finding out about lots of new stuff on there that then gets included into Ruby Inside posts. It’s the place to be if you want the most up to date Ruby and Rails news, but don’t mind putting up with a bit of ‘noise’.
Every two weeks or so I’m going to summarize some of the best items from RubyFlow here on Ruby Inside, so that you can still keep up with the latest developments even if you don’t want to be soaked in the firehose of Ruby news over there.
For the period April 24 to May 5, 2008:
Net::SSH 2.0 Released: Jamis Buck announces the release of Net::SSH 2.0 and the availability of Net::SFTP 2.0, Net::SCP 1.0, Net::SSH::Gateway 1.0 and Net::SSH::Multi 1.0.
Webistrano 1.3: Webistrano 1.3 has been released; read the announcement. Webistrano is a Web UI for managing Capistrano deployments. It lets you manage projects and their stages like test, production, and staging with different settings. Those stages can then be deployed with Capistrano through Webistrano.
Automatic Migration Generator: Hobofields is an automatic migration generator for Rails / ActiveRecord users. Annotate your model with the fields required as you go, then Hobofields generates the required migrations.
Capistrano 2.3.0: Yehey! Capistrano 2.3.0 is released. It has many new tasty features!
Rails 2.1 Features: A summary of some of the nice new features coming in Rails 2.1. In short, many of the rough spots are being patched over!
Ruby and TextMate: 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).
John Lam on Iron Ruby: A video update on Iron Ruby from John Lam recorded by David Laribee.
MetricFu: Jake Scruggs demonstrates how to use MetricFu to produce good looking metrics and reporting for your Rails application.
Merb Blogging Software: Announcing Feather, a Merb based blogging engine with a lightweight core framework, and a robust set of plugins, now open source and ready for contributions!
Parsing Quoted Strings: If you need to parse quoted strings in Ruby, a lesser-known module called Shellwords from the Ruby Standard Library is a handy utility.
![]()
Following on from this weeks’ launch of Github, it’s worth rounding up some of the best Ruby-related Git content out there.
For those who still aren’t familiar with what it is, Git is a distributed source code management / revision control system. It’s vaguely similar to Subversion, CVS, Mercurial, or Bazaar in terms of managing source code, but with significant differences to all of these in varying areas. If you use any of these systems, however, Git will be of interest to you.
Git Tutorials and Introductions
The Git Screencast - A tutorial type screencast and technical walkthrough by Geoffrey Grosenbach. Well worth the $9.
Git vs Subversion - Are you a diehard Subversion user wondering what the hoopla’s all about? Find out how Git compares to Subversion.

Git Cheat Sheet - A rather well designed and comprehensive “cheat sheet” that most Git users will find useful.
Linus Torvalds on Git - The famous / seminal video given by Linus Torvalds, the initial creator of Git, that introduced many of us to the tool.
Git: A Talk by Randal Schwartz - An hour long Google TechTalk on Git given by Randal Schwartz (a prominent Perl developer). I’ve seen a few people suggesting that this talk is better than Linus’, although I haven’t watched it all myself yet.
Git and Ruby
Git on RubyForge - Do you publish libraries on RubyForge? If so, you might be aware they support both CVS and SVN for source code management.. but Dr Nic fills us in that they now support Git too! Dr Nic continues to explain how to set it all up to work.
GitNub - A “pretty Git repository browser” for OS X. It’s not particularly powerful yet, but has proven a great demonstration of how Git and Github are driving people to work together. It’s also a cute example of a RubyCocoa application, forgetting the Git side of things!
Ruby-Github - A Ruby library that provides access to Github’s API.
Ruby/Git - A Ruby library that interacts with Git repositories generally.
Rails moves from SVN to Git - David Heinemeier Hansson’s announcement of the movement of the Rails source code from a public SVN repository to Github.
InfoQ’s Ruby and Git Roundup - InfoQ have their own Git and Ruby roundup, like this post. It’s pretty good but, as acknowledged in the Github post, I only noticed it after starting this post.. so, you get two roundups for the price of one!
Setting up CruiseControl.rb with Git - Chris Bailey demonstrates how to use Git along with CruiseControl.rb, the continuous integration tool.
Rake task to move from SVN to Git - Technoweenie presents an interesting Rake task that can export code from SVN and bring it into a new Git repository in one hit.
General Git Resources
Git Magic - A ridiculously indepth list of Git related resources and tips.
Cleaning Migrate Your Subversion Repository to a Git Repository - A handy guide to moving an SVN repository over to Git. Short and sweet!
Show your Git branch name on your command line - This is incredibly useful. A short shell script that shows your current Git branch within your command prompt (if you’re within a Git repository, of course).
Git HOWTO Index - Links to a handful of interesting posts from the Git mailing list. Mostly focused on more advanced topics.
A Three Finger Salute to Git - Rubyist Geoffrey Grosenbach (of Peepcode fame) comes up with a clever technique to use the new MacBook Pro / MacBook Air “multi touch” functionality to make pulling and pushing to a Git repository a “three finger” operation! A little wacky, but very clever.
Github-Campfire - A Sinatra app that pushes your Github commit info to a Campfire chat room.
Git Hosting
GitHub isn’t the only Git repository hosting option out there. There are two other significant ones:
repo.or.cz - The grandaddy of Git repository hosts. Free, public, and the first centralized Git host. It’s nearly entirely used by open source projects.
Gitorious - An older, Githubesque Git repository host which, sadly, didn’t quite get the attention it should have. Still used by quite a few projects though, and is free to use.

It’s been the programming world’s worst kept secret, but the covers are finally off as GitHub officially launched today. No more beta invites needed - hurrah!
GitHub is, officially, a Git repository hosting service (where Git is a source code control system - think decentralized, distributed SVN) built by Chris Wanstrath (Err the Blog), Tom Preston-Werner (creator of Chronic and God), and PJ Hyett. GitHub’s early users are calling it a “social programming network,” a “FaceBook for coders,” and all sorts of wonderful things. This is because Git’s decentralized nature makes it easy to fork, branch and merge code, and so does GitHub, which makes GitHub an ideal platform for collectively working on software, especially open source.
As of Rails 2.1 (coming very soon), GitHub will be the new official home of the Rails source repository, and the Merb, RSpec, Capistrano, Prototype and Scriptaculous projects are also on board, along with hundreds of other Git repositories created by beta users.
GitHub is a commercial offering (though from two open source devotees), but with an incredibly generous free level, meaning that the service is free for most reasonably sized open source projects (that is, the free level covers that sort of open use). There are, of course, a wide range of plans available for the whole gamut of users.
If you haven’t yet given Git a go, don’t fear, as a round up of Git tutorials, tips and tricks (with a Ruby slant, naturally) is coming next here on Ruby Inside. That said, I’ve just noticed InfoQ has already posted something similar, so read that if you’re feeling impatient.
Ruby 1.9 Coming To Symbian OS
David Wood talks about the development of a port of Ruby 1.9 for Symbian OS (as used in many portable devices). The port includes TCP/IP and filesystem access, although GUI-level features are expected to be implemented by third party developers if the interest is there. An initial release is scheduled for April 2008. (Thanks to Jose Marinez for the lead.)
Rubyizumi - Open Source Ruby-Powered RMTP Server
The official site says it best: “RubyIZUMI is an open source RTMP Server for Flash Video/Audio Streaming. It is written in (Pure) Ruby and it supports to broadcast MP4(H.264 + AAC).”
Ruby Inside in Indonesian!
The Indonesian version of the official Ruby homepage is now live, and features translations of Ruby Inside posts! If anyone else is interested in doing the same for their own language, feel free. Good work guys.
Ruby-Processing Continues to Evolve

Just a month ago I posted “Using the Processing Graphics System for Ruby” and I’ve had news that thanks to the interest produced by that post, the Ruby-Processing project is progressing by leaps and bounds. Jeremy Ashkenas writes:
The cross-platform issues were hammered out in short order, support for native libraries was added (so now you can use Ruby to write OpenGL visualizations), fullscreen support has been added, and now, today, there’s a new script to export your sketch to an applet. So you can now check out Ruby-Processing sketches in your browser without having to download a thing.
Exhibit A: The WishyWorm demo. Click to toggle translucent backgrounds.
Exhibit B: The Contextual Tree. This one shows off Ruby metaprogramming — it uses a context-free drawing DSL that I’ve been working on. (Which isn’t quite ready for prime time, and so will bork out on you now and again.) Click to generate new trees.
Exhibits C, D, and E: I’ve also exported the other three demos from the Ruby-Processing download.
This is great news for those who want to play with Ruby, generate graphics, and share the results on the Web.
Sun and University of Tokyo Developing Multiple Virtual Machine Environment for Ruby and JRuby
Sun and the University of Tokyo have announced that they’re going to work on developing a “multiple virtual machine environment” for both Ruby and JRuby, enabling multiple programs to run at the same time within the same process. The press release is a month old but skipped my attention as I haven’t found any significant mentions of it anywhere else. Verbatim:
A group led by Professor Ikuo Takeuchi at the Graduate School of Information Science and Technology, the University of Tokyo will collaborate with Sun’s Tim Bray (Director of Web Technologies) and the members of the JRuby team to implement a multiple virtual machine (MVM) environment on both Ruby and JRuby. The MVM environment is expected to make Ruby programs run more efficiently than was previously possible. The results of the research are scheduled to be open sourced via the broader community of Ruby developers, which could inspire further innovations.
Previously, running more than one application simultaneously on Ruby required multiple interpreters, leading to excessive memory consumption. The proposed MVM environment could generate multiple VM instances on a single interpreter, allowing applications to run more efficiently. The collaborative research aims to clarify such technical issues as the definition of common interfaces for using MVM, parallelization of VM instances and memory sharing, and then to implement technologies that can be used on Ruby and JRuby. While Ruby has already been widely in use in commercial and other environments, the research on MVM will further enhance the performance and utility of Ruby.
The collaborative research is scheduled to continue until the end of September 2009. For the first year, Sun will contribute funding to the research. In addition to the principal researchers from Sun’s JRuby team and Professor Takeuchi’s group, various other researchers and programmers will be invited to join in this research.
I suspect Rubinius will be a production-ready option by September 2009, but it’ll be interesting to see what Sun and the University of Tokyo come up with.