Ruby Weekly News 22nd - 28th May 2006


Ruby Weekly News 22nd - 28th May 2006

Ruby Weekly News is a summary of the week’s activity for the
mailing list, and its mirror equivalents the ruby-talk google group
the Ruby forum. (The comp.lang.ruby newsgroup used to be equivalent,
is now independent.)

This week’s newsletter is brought to you by Tim S…

[ Contribute to the next newsletter ]

Articles and Announcements

 * Recipients of Google Summer of Code awards

   David A. Black: "On behalf of Ruby Central, the mentoring
   organization, I am very pleased indeed to announce the students 

have been awarded grants through the Google Summer of Code
program for

   There were 10 grants.

 * 'Ruby for Rails' book

   David A. Black's eagerly anticipated book Ruby for Rails - Ruby
   techniques for Rails developers is ready and shipping, as a 

print book and in PDF. It includes a foreword by David Heinemeier
Hansson and is published by Manning Publications.

   > Ruby for Rails helps Rails developers achieve Ruby mastery. 

> chapter deepens your Ruby knowledge and shows you how it
connects to
> Rails. You’ll gain confidence working with objects and classes
> learn how to leverage Ruby’s elegant, expressive syntax for
> application power. And you’ll become a better Rails developer
> through a deep understanding of the design of Rails itself and
> to take advantage of it.

   See also the thread "Ruby for Rails Rocks!" which includes quotes
   like "It's a spectacular effort" and "It's beautifully written, 

brilliantly sequenced".

 * Interviews at O'Reillynet

   Pat Eyler announced two interviews at the O'Reillynet blog.

   The first is with Zed S., "the author of Mongrel (and a bunch 

other Ruby frameworks and utilities", and the second is with Luis
Lavena, a contributor to Mongrel (also available in German).

 * If It's Not Nailed Down, Steal It ...

   James B. (editor-in-chief of Ruby Code & Style) mentioned an
   article by Topher Cyll entitled "If It's Not Nailed Down, Steal 

Pattern Matching, S-Expressions, and Domain Specific Languages in

   > Ruby Code & Style is the premiere online zine by and for the 

> community. We’re always on the lookout for quality articles
> towards Ruby developers (and we’re now able to pay the

 * InfoQ Ruby Community "unlaunched"

   Obie F. announced the unlaunching of InfoQ ("Tracking 

and innovation in the enterprise software development
community"), a
site which has news clippings and articles around Java, .NET,
SOA and agility.

   (Unlaunched, because it's not quite ready for the previously 

official lanch.)

   Obie is the Ruby community editor, and invites those who may wish 

contribute news or articles to contact him.

   > BTW, the founder of, Floyd Marinescu, is famous for
   > starting, one of the world's most popular
   > technical websites. He's a big fan of Ruby and Rails and we're 

> of working together to be the first site to give Ruby
> along with Java, .NET and other topics such as Agile and SOA.

   (Also read the thread if you're interested in whether Ruby is a 

or violin, then continue into “Musical Instruments and


Brite - A ruby compiler for the .NET platform

Pascal H. started work on a project to write a compiler for Ruby
targets .NET’s Common Language Runtime (CLR). “Get it, try it, read
and tell me what you think. Is this project worth continuing?”

Projects with similar goals include Ruby.NET from the Queensland
University of Technology and IronRuby by Wilco Bauwer.

These projects differ from the Ruby .NET bridges such as Ruby/.NET
or rubydotnet in that the bridges use the existing Ruby runtime.

rubynuby - confused by method name “inject”

Jeff P.:

Can anybody explain to me how the Enumberable#inject method is
“injecting” something into something? I find it very difficult
method names when I don’t “get” them.

An inject example:

module Enumerable
def sum(start=0)
inject(start) { |total, x| total + x }

[1, 2, 3].sum # -> 6
%w(foo bar baz).sum(’’) # -> “foobarbaz”

Francis C. said that the name came from the Smalltalk
and others mentioned fold and reduce as names of similar functions in
other languages. (Especially Lisp.)

Joel VanderWerf gave a good answer: whenever you see “inject”, think
“accumulate” instead.

Zed and Luis drop the bomb on Ruby’s poor performance

cremes pointed out two recent interviews on the O’Reillynet blog (see
announcement above) that say the Ruby interpreter is slow (but that
2.0 will be better, and Rails apps can be fast due to good built-in
caching features), and asked why people on the ruby-talk list aren’t
talking about performance all the time.

Peter H. and others said that the Ruby community isn’t ignoring
performance problem, it’s just that the majority of the community
have a performance problem with Ruby.

(Of course, if you are working in an area where Ruby’s performance is
insufficient, you will probably choose not to use it, and won’t be
part of
the community.)

Luis L. commented on an area he would like to use Ruby with if it

I work with special MPEG2 playback hardware, some of them analog
others with digital interface (ASI-DVB)

Even that I like ruby, cannot use to interface that hardware,
because the quantity of computation needed in the results turns
ruby in
a slow, memory comsuming pig.

The good news is that Ruby 2.0 will include YARV (Yet Another Ruby
which will provide a nice speedup.

Differences between Ruby 1.8 and 1.9

Vlad G. asked about the differences between Ruby 1.8 (stable
branch) and
1.9 (development branch), and was directed to Mauricio F.'s
“Changes in Ruby 1.9” document.

Proposing: A new Ruby Windows installer

Enterprise A. had a proposal for making a Ruby Windows
that uses rubygems to include libraries, thinking that this would
make it
easier to create installer releases, since the “Ruby Windows
seems to lag behind the general releases”.

Curt H.:

The lag this time around is an anomaly. The 1.8.2 release of the
one-click installer, for example, was out within a week of the ruby
release. But there were a number of problems with the way it was
that was making it harder to be timely.

So, as Ryan pointed out, I completely rewrote the build system with
goal of reducing the turnaround time. Withe the new build system it
should be possible to reduce that lag time to a few days.

Curt also said that releases could be sped up if more people join the
one-click installer team. “I have been asking for help repeatedly
over the
years without much response. So far, only Ryan L. and
Date have helped.”

Enterprise A.: “Well, maybe this is the real problem with the
community then?”
James B.: “You are the community. Among others, of course.”

There were discussions about compiling extensions with MSYS (GNU
tools) or
Microsoft VC++6.

John L.: “Jumping in real late on this thread - but I know there are
folks on the VC++ team at MSFT who really want to help get Ruby
using C++ 14.0 (the release that ships with VS 2005).”

Dungeon Generation (#80)

Kev J. came up with this week’s Ruby Q.:

This week’s task is a dark and dangerous one. Since the late
1970’s, a
particular type of game has appealed to a particular type of
Games? From the 70’s? Yep, there can only be one type of (computer)
with that lineage that’s still going strong (ish) after all these

  • the Rogue-like game!

“Here’s the task for this week. To write a dungeon creation program
will generate and display a typical Rogue-like dungeon”.

David B.: “Oh, hell yes. I hereby preemptively declare this, Best.
Quiz. EVER.”

FasterCSV RCR?

James Edward G. II said he was considering submitting the FasterCSV
inclusion in Ruby’s standard library.

“It’s a pretty mature library now, has a CSV compatibility mode, is
feature rich (including many CSV lacks), and is wicked fast in
I see it recommended regularly and get lots of positive feedback.”

There was discussion around replacing the csv.rb that’s currently in
standard library with FasterCSV, and how it would affect
(Turning on compatibility mode currently has a performance hit.)

Summer of Code Advice For Ruby Central Applications

Ryan L.: “If you submitted an application to Ruby Central in
Google Summer of Code and it got rejected, you may be wondering what
can do.”

For one thing, don’t get too upset: it isn’t personal. We received
eligible applications, but Google only sponsored 10 of them. Bad
if you were of the 74, you got rejected. Good news: you had about a
1 in
8 chance of being selected.

So how can you increase your chances next year?

He went on to give seven points of advice.

James Edward G. II pointed out, showing
progress on replacing the current ruby-lang site with better design
and content.

Chris said “I think it looks great! Any reason we haven’t switched
to which James replied “Yes, we’re not finished with the content, but
are hard at work on it.”

New Releases

win32-eventlog 0.4.0

Daniel B. announced a new version of win32-eventlog, on behalf of
Win32 Utils Team.

It is now pure-Ruby and has a gem package, as well as an important
for EventLog#tail.

Botp Pena: “Works like a charm. Thank you Daniel/Park, and the rest
of the
win32 team. This is a killer util for windows admins.”

RbYAML-0.1: Pure Ruby YAML parser and emitter.

Ola B. released version 0.1 of RbYAML, a pure-Ruby parser and
emitter of
YAML. (As opposed to the YAML C extension that’s part of Ruby’s

foxGUIb 0.6 released

“dear (FX)Ruby hackers,” wrote Meinrad R. as he proudly
foxGUIb 0.6, an interactive GUI designer for FXRuby.

“there is also a small surprise for you which will be announced
by a friend of mine ;)”

The surprise was Mike Parr introducing a user-guide for foxGUIb.

sls – Sy’s ls

Sy Ali created a simple Ruby script for associating descriptions with

“sls allows a description to be associated [with] a filename, so that
directory listing will also come up with the file descriptions
each filename.”

Rant 0.5.6

Stefan L. fixed some bugs in Rant, a flexible build tool written in
Ruby, and released 0.5.6.

rcov 0.4.0 (code coverage) - scriptability, accuracy, unrotten

Mauricio F. released the latest version of his code coverage
analysis tool for Ruby programs.

rcov output now looks much nicer, the tool is easier to use from
scripts (and absolutely trivial to use from rake tasks), plus a lot
internal refactoring and bug-fixing.

He offered thanks to Robert F. and Andre N. for their comments
suggestions that contributed to this release.

Jeff R.: “This is awesome. It’s enlightening and sad to see the
of some of my unit tests, but without a doubt I’m hooked. Visually
at the test coverage (or lack thereof) is really much more effective
I thought.”

Mongrel 0.3.13 Pre-Release Update – Yep, Again

Zed S. announced another Mongrel 0.3.13 pre-release. “At this rate
0.3.13 release may just turn into 0.4.”

“Mongrel is a fast HTTP library and server for Ruby that is intended
hosting Ruby web applications of any kind using plain HTTP rather
FastCGI or SCGI. It is framework agnostic and already supports Ruby
Rails, Og+Nitro, and Camping frameworks.”

Ruby-VPI 0.6

Ruby-VPI 0.6, a Ruby interface to Verilog VPI, was released by Suraj
Kurapati. “It lets you create complex Verilog test benches easily and
wholly in Ruby.”

A comprehensive user manual is now included, and the test generation
was improved.