Ruby Weekly News 22nd - 28th May 2006


#1

http://www.rubyweeklynews.org/20060528.html

Ruby Weekly News 22nd - 28th May 2006

Ruby Weekly News is a summary of the week’s activity for the
ruby-talk
mailing list, and its mirror equivalents the ruby-talk google group
and
the Ruby forum. (The comp.lang.ruby newsgroup used to be equivalent,
but
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 

who
have been awarded grants through the Google Summer of Code
program for
2006."

   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 

softbound
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. 

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

and
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 

of
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 

It:
Pattern Matching, S-Expressions, and Domain Specific Languages in
Ruby".

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

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

 * InfoQ Ruby Community "unlaunched"
 -----------------------------------

   Obie F. announced the unlaunching of InfoQ ("Tracking 

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

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

announced
official lanch.)

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

to
contribute news or articles to contact him.

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

proud
> of working together to be the first site to give Ruby
top-billing
> 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 

piano
or violin, then continue into “Musical Instruments and
Programming
Languages”.)

Threads

Brite - A ruby compiler for the .NET platform

Pascal H. started work on a project to write a compiler for Ruby
that
targets .NET’s Common Language Runtime (CLR). “Get it, try it, read
it,
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
Bridge
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
remember
method names when I don’t “get” them.

An inject example:

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

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

Francis C. said that the name came from the Smalltalk
language,
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
Ruby
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
a
performance problem, it’s just that the majority of the community
don’t
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
were
faster:

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

Even that I like ruby, cannot use to interface that hardware,
mostly
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
VM),
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
installer
that uses rubygems to include libraries, thinking that this would
make it
easier to create installer releases, since the “Ruby Windows
Installer
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
built
that was making it harder to be timely.

So, as Ryan pointed out, I completely rewrote the build system with
the
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
Shashank
Date have helped.”

Enterprise A.: “Well, maybe this is the real problem with the
Ruby
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
compiling
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
person.
Games? From the 70’s? Yep, there can only be one type of (computer)
game
with that lineage that’s still going strong (ish) after all these
years

  • the Rogue-like game!

“Here’s the task for this week. To write a dungeon creation program
that
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
for
inclusion in Ruby’s standard library.

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

There was discussion around replacing the csv.rb that’s currently in
the
standard library with FasterCSV, and how it would affect
compatibility.
(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
the
Google Summer of Code and it got rejected, you may be wondering what
you
can do.”

For one thing, don’t get too upset: it isn’t personal. We received
84
eligible applications, but Google only sponsored 10 of them. Bad
news:
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.

new.ruby-lang.org

James Edward G. II pointed out http://new.ruby-lang.org/, showing
the
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
yet?”,
to which James replied “Yes, we’re not finished with the content, but
we
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
the
Win32 Utils Team.

It is now pure-Ruby and has a gem package, as well as an important
bugfix
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
standard
library.)

foxGUIb 0.6 released

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

“there is also a small surprise for you which will be announced
tomorrow
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
files.

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

Rant 0.5.6

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

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

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
external
scripts (and absolutely trivial to use from rake tasks), plus a lot
of
internal refactoring and bug-fixing.

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

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

Mongrel 0.3.13 Pre-Release Update – Yep, Again

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

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

Ruby-VPI 0.6

Ruby-VPI 0.6, a Ruby interface to Verilog VPI, was released by Suraj
N.
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
tool
was improved.