16th - 22nd January 2006

Ruby Weekly News is a summary of the week’s activity on the ruby-talk mailing list / the comp.lang.ruby newsgroup / Ruby forum, brought to you by Tim Sutherland and Jonathon Mah.

Articles and Announcements

  • "Learn to Program" is now available
  • Dave Thomas: “Just a quick note to say Chris Pine’s new book, Learn to Program, is now available and shipping.”

    Surgeon asked how it relates to the online version that’s been around a while, and Dave Burt said that the online version’s good, but the book is better.

  • JRuby at JavaOne 2006
  • Charles O Nutter and Tom Enebo will be giving a JRuby presentation at the JavaOne 2006 conference.

    “We should have most of the milestones I talked about at RubyConf completed, and oughta have plenty more cool demos to run. If all goes well, we may have Rails running under JRuby too.”

    (JRuby is a Ruby interpreter written in Java. It also provides interoperability between Ruby and Java code – the two (?) Ruby-Java bridges being an alternative approach.)

  • Calling all Freebsders.
  • Dick Davies posted a heads up for FreeBSD users; the ports tree is going to include 1.8.4 “Any Day Now”. It has been at 1.8.2 for a while.

    Luc Heinrich noted that DarwinPorts has recently done the same.

User Group News

  • Stockholm User Group
  • Dr Nic asked if Stockholm had a Ruby User Group, and everyone said no, but that’d be cool, and they met on January 19th at a restaurant called “Grill Ruby”.

Threads

Script's Parent Directory

Chris Newman was “looking for a Ruby equivalent to Perl’s FindBin module,” which returns the directory containing the running script (as opposed to the current working directory). Austin Ziegler replied that File.dirname(__FILE__) gives you this.

thousandth separator

bmgz is in need of a library for formatting numbers with thousandth separators, e.g. 1000000.00 becomes “1,000,000.00”.

Gene Tani posted a couple of options: a one-liner “snippet”, and the flexible Numeric#format_s from Gavin Sinclair’s Extensions library.

Delaying Quote Expansion

Kevin Olbrich asked how to delay double-quoted expansion of "string #{variables}". Eero Saynatkari mentioned this simple method:
str = '"Value #{foo}"'
foo = 123
eval str  #=> "Value 123" 
James Edward Gray II pointed to ERB, the standard templating library included with Ruby.
require 'erb'
str = 'My number is <%= bar %>.'
bar = 1986
ERB.new(str).result(binding)  #=> "My number is 1986." 

get the name of the day from Time.now

misiek wanted to get the current day of the week as a name like Mon instead of the number returned by t.wday (where t = Time.now).

Antonio Cangiano suggested t.strftime("%a") for “Mon” and t.strftime("%A") for “Monday”. (strftime = String-format-time.)

“ri strftime, will give you the complete list of options.”

Another option is to require 'time' then Time::RFC2822_DAY_NAME[t.wday].

New Releases

Rake 0.7.0 Released

Jim Weirich added some interesting features to the Rake build tool, including parallel execution of pre-requisites and namespace support for task names.

TeensyWeb 0.2.0

From Jon A. Lambert, TeensyWeb 2.0, “a combination Wiki, Forum and Subversion Repository browser”.

Now with installation documentation and RSS feeds.

Radius 0.0.1 -- Powerful Tag-Based Templates

John W. Long was pleased to come out with Radius, “a small, but powerful tag-based template language for Ruby inspired by the template languages used in MovableType”.

Nathaniel S. H. Brown: “Nice work. Would love to see a .rad extension for Rails at some point :)”

RMagick gets face-lift, book and movie deal

Timothy Hunter released RMagick 1.1.0, the Ruby interface to the ImageMagick and GraphicsMagick image processing libraries. It also includes a 2D drawing API.

One of the new methods is Image#vignette, which was originally an RMagick example program, but has now made its way into ImageMagick itself :-)

All known bugs were fixed, crop_resized added for creating thumbnails, and more.

In other RMagick news,
Apress’s new book, The Definitive Guide to ImageMagick, by Michael Still, devotes a chapter to using ImageMagick from Ruby programs via RMagick.

test-unit-benchmark-0.1

rubikitch created a tool called Test::Unit::Benchmark, used for showing how long each unit test took to run.

“Because this program is very short, it is an easy example of AspectR, aspect oriented programming for Ruby.”

TeensyMUD 2.7 released - Baby Got Back!

“Baby Got Back” said Jon A. Lambert, announcing TeensyMud 2.7, “the original only ruby mud with smoking hot T&A action”.

ppp-1.0.0

rubikitch, announcing yet more software, introduced ‘ppp’, an alternative to Kernel#p, with ppp, pppp, ppm and ppmp commands.

All for debugging.

Nitro + Og 0.27.0 Client code, WebFile, Elements improved, New examples RDocs

George Moschovitis released new Nitro and Og versions.

Nitro is a web application framework and Og an object-relational database mapping library.

As usual with these releases there are a huge number of interesting features, including “groundbreaking client side action/scripting support”, where you write Ruby code that results in Javascript.

“A domain specific language is provided for the client action to implement stuff like ajax async updates, scriptaculous visual fx and more.”

This support also includes “morphers”, which enable you to set properties like draggable="true" and “auto_complete="true" on HTML input tags to cause mystical wonders to occur.

A WebFile system was also added, to make it easy to upload files.

Lots lots more.

George: “The latest Nitro/Og releases are a real community effort ;-)”

Librend 0.4

Ilmari Heikkinen released version 0.4 of Librend, a realtime graphics rendering library for Ruby.

It uses SDL, and also supports sound.

FreeRIDE 0.9.5 - The Free Ruby IDE

The release of FreeRIDE 0.9.5 was heralded by Laurent Julliard.

Thanks to Jonathan Maasland for the new ‘projects’ support, and to Martin Leech for quick keystrokes to comment/uncomment blocks of code. Many usability enhancements were also made.

“FreeRIDE aims to be a full-featured, first-class IDE on a par with those available for other languages, with all the best-of-breed features that you would expect in a high-end IDE.”

irbsh-1.0.0

rubikitch set forth irbsh, an extension of irb/inf-ruby.el for Emacs.

“You can easily execute shell commands and Ruby codes by using irbsh.”

Mongrel 0.1.0 -- A Fast As Hell Mostly Ruby Web Server

Zed Shaw released “a mostly Ruby webserver” called Mongrel. It’s fast, but allegedly cannot yet bake cheddar.

Now for the fun (and surely flamewar generating) statistics on how it  
compares to WEBrick:

WEBrick/Linux:  175 req/sec
Mongrel/Linux:  1350 req/sec

WEBrick/OSX:  5.3 req/sec
Mongrel/OSX:  304.4 req/sec

There weren’t yet any flames, so we’ve put the quote in an emotionally coloured box to try and stir things up.

0.1.1 was later released, adding the “It Works Now, Maybe” feature.

RedHanded chipped in with comm’try.

testunitxml-0.1.3

Henrik Martensson introduced Test::Unit::XML, which adds assertions for checking XML documents.

RubyCLR first drop

John Lam announced a new Ruby / .NET bridge called RubyCLR.

Generics aren’t yet supported, but it’s a “super high priority item”.

Ruby-GetText-Package-1.1.1

Ruby-GetText-Package now has a Greek locale (by damphyr), bugfixes and support for Rails tests.

Masao Mutoh: “Thanks to: Kazuhiro NISHIYAMA, Nick Snels, damphyr, Karel Miarka.”

ICU4R 0.1.0 - initial release

Lugovoi Nikolai let the initial release of ICU4R out of the bag.

“ICU4R is an attempt to provide better Unicode support for Ruby, based on ICU library.”

FarPy GUIE v0.4

FarPy GUIE, used for graphically designing wxWidget GUIs, now supports wxRuby.