Ruby Weekly News 27th December 2004 - 2nd January 2005
A summary of the week's activity on the ruby-talk mailing list / the
comp.lang.ruby newsgroup. This summary is brought to you by Tim Sutherland
Articles and Announcements
* [New Dublin Ruby Meetup Group]
Antonio Cangiano created a [Dublin Ruby Meetup Group] for those
Ruby programmers living in Ireland.
* [Melbourne Ruby Meetup - Thursday, Jan 13]
Matt Pattison announced "Come along to the inaugural Melbourne
Ruby Meetup at Rubicon Cafe Bar in Errol St. North Melbourne. Once
you "cross the Rubicon" and attend a Ruby meetup, there's no
Interesting threads this week included:
[Revival of RubyInRuby?]
Michael Neumann recalled previous work that was done to write an
implementation of a Ruby interpreter in Ruby itself. He thought it would
be good to revive this, and started developing a plan to get it going
again. Ryan Davis reported
"We've got a fairly good start w/ our ruby2c translator. The long term
goal is to reimplement ruby in ruby and translate it to C in much the
same way that Squeak smalltalk does. More info:
[Bare-bones Ruby]  
Leiradella, Andre V Matos Da Cunha has been using the [Lua] language for
various projects including a plugin for a 3D modeller. He was looking for
an OO alternative to Lua for these tasks, and had some questions about
"1) Is it possible to build Ruby without those modules? How?
2) How do I embed Ruby in a host program?
3) What are the functions that must be called to make Ruby load a program,
to create an instance of a class defined in Ruby, to call methods with this
instance etc.? Is this API documented somewhere?
4) Does Ruby support multiple inheritance or something similar to Java's
For (1), gabriele renzi said that most "modules" (libraries distributed
with Ruby) are merely loaded at runtime when a program asks for them (for
example, require 'socket') and therefore can be deleted if they're not
needed. gabriele also answered (2) and (3), pointing out
http://www.rubygarden.org/ruby?EmbedRuby. Robert Klemme added
Edgardo Hames replied to (4) with a link describing modules/mix-ins in
Darren Crotchett was "trying to get a feel for the philosophical
differences between Smalltalk, Ruby and Python".
"I've been reading up on Ruby, a little. I just bought the Programming
Ruby book. It seems to be a lot like Smalltalk. I'm thinking that I like it
better than Python because it seems a lot more consistent like Smalltalk.
But, then I question, if it is good because it is a lot like Smalltalk, why
not just use Smalltalk? I'm sure there must be some good answers to this
Nicholas Van Weerdenburg replied:
"Versus Smalltalk, the impression I get is that Ruby is file-based with
convenience libraries for files, text, system administration, and web
development. That has a much bigger impact then it would seem. It's
sort-of why sed/awk/bash can still useful, even if you know Ruby or
Perl- they are even closer to the file and operating system items you
want to manipulate.
This leads to bottom-up value propositions. I can learn Ruby in a day,
and do really useful things for scripting and automation. I can then
incrementally extend my knowledge, and tackle bigger problems.
So, I don't think there is anything too explicit that Ruby "fixes"
versus Smalltalk. Rather, it's pragmatic file-based focus give a
different feel, and a different utility and learning path then
[GUI toolkit which separates UI specification from driving logic]
Gavri Fernandez wanted a GUI toolkit that allows one to specify the GUI
using markup rather than code. gabriele renzi, Zach Dennis and Nick all
mentioned that wxRuby supports XRC, an XML-based markup scheme for the
wxWidgets GUI toolkit.
[[QUIZ] Cryptograms (#13)]
Glenn Parker created this week's [Ruby Quiz]
"GOAL: Given a cryptogram and a dictionary of known words, find the best
possible solution(s) to the crytogram. Extra points for speed. Coding
a brute force solution is relatively trivial, but there are many
opportunities for the clever optimizer.
A cryptogram is piece of text that has been passed through a simple
cipher that maps all instances of one letter to a different letter. The
familiar rot13 encoding is a trivial example.
A solution to a cryptogram is a one-to-one mapping between two sets of
(up to) 26 letters, such that applying the map to the cryptogram yields
the greatest possible number from words in the dictionary."
Three unsolved cryptograms were given along with a link to a dictionary
file. Discussions and solutions were posted in the thread.
Last week we reported on this thread, which includes Christmas messages in
the form of Ruby code. There was some additional discussion this week,
including a [picture of a cool shirt] given to Simon Strandgaard by his
* [TeX::Hyphen 0.5.0]
Austin Ziegler released what he intends to be the last version of
TeX::Hyphen, a library for hyphenating words. New users should
look at Austin's Text::Hyphen instead.
* [SQLite3/Ruby 0.5.0] [SQLite3/Ruby 0.6]
Jamis Buck made the first release of [SQLite3/Ruby], a pure-Ruby
binding for the SQLite3 database system. (Using the 'dl' library.)
This is an alternative to [Ruby-SQLite], which uses C to wrap the
sqlite client library. Version 0.6 was later released with a
couple of changes.
* [One-Click Installer 1.8.2-14 rc11] [One-Click Installer 182-14 Final]
Curt Hibbs announced the release candidate and then the final
release of the Windows One-Click Installer for Ruby 1.8.2.
* [Tar2RubyScript 0.4.2] [RubyScript2Exe 0.3.0]
Erik Veenstra updated [Tar2RubyScript], a tool for collecting a
Ruby program consisting of several files into one .rb script. A
library archive can now include several libraries and an
application can use multiple library archives. Compression was
added to [RubyScript2Exe], a similar tool that collects a Ruby
program along with the Ruby interpreter and other libraries into a
* [AllInOneRuby 0.2.0]
Erik Veenstra added Linux support to his tool [AllInOneRuby],
which collects a Ruby program and the Ruby runtime into a single
executable that can be run without the user needing to install the
Ruby interpreter beforehand. Windows and Linux are now the
supported platforms. This release also includes adds compression.
* [DBus/Ruby 0.1.9]
leon breedt improved [DBus/Ruby], a Ruby interface to [D-BUS]
("D-BUS is a message bus system, a simple way for applications to
talk to one another"). Service activation is now supported and
error messages are better.
* [Ruby Facets, v0.6.0]
trans declared "Ruby Facets is a cornicopia of core extensions for
the Ruby programming language. It is unique by virtue of the
atomicity of its design. Methods are stored in their own files,
allowing for extremely granular control of requirements. Ruby
Facets is a subproject of [Ruby Calibre]."
* [Tengen 0.1.0]
Laurent Sansonetti released [Tengen], a GNOME program for playing
the board game Go.
* [Nukumi2 0.1]
Christian Neukirchen introduced his web framework tool [Nukumi2],
created primarily for writing blogging tools.
* [Rake 0.4.14]
Jim Weirich updated [Rake] (a build tool like make) to work with
* [RubyGems 0.8.4]
Chad Fowler released a new version of the [RubyGems] packaging
system, bringing speed improvements and some bug fixes. Chad also
reports that RubyGems has been downloaded over 10,000 times.
William Morgan released a Ruby BitTorrent client.