T
Tim Sutherland
http://www.rubyweeklynews.org/20051127.html
Ruby Weekly News 21st - 27th November 2005
==========================================
Ruby Weekly News is a summary of the week's activity on the ruby-talk
mailing list / the comp.lang.ruby newsgroup, brought to you by Anonymous.
(Thanks whoever it was, this week's newsletter would have been a no-show
without you.)
[Contribute to the next newsletter.]
Articles and Announcements
==========================
* The Ruby Grammar Project
--------------------------
MenTaLguY announced the creation of The Ruby Grammar Project, the goal
of which is to produce a formal specification for Ruby's syntax and an
ANTLR grammar. His aim is to describe the language as it exists,
rather than proposing new syntax.
* Distributing Rails Applications (tutorial)
--------------------------------------------
Erik Veenstra announces a new version of his tutorial, Distributing
Rails Applications, updated for rails 0.14.3.
* Frappr! map for ruby-lang
---------------------------
Daniel Cremer has created a Frappr! map for ruby-lang.
* RailsConf 2006, June 22-25, Chicago IL
----------------------------------------
| Ruby Central, Inc. is pleased to announce the First International
| Rails Conference (http://railsconf.org). The conference will be held
| in Chicago, IL, USA from June 22-25, 2006.
|
| Brought to you by the same organization that has driven RubyConf for
| five years running, RailsConf is destined to be a one-of-a-kind
| affair.
|
| We already have David Heinemeier Hansson, the creator of Rails as
| well as Dave Thomas, of The Pragmatic Programmers, lined up as
| keynote speakers. Watch this space for more, exciting speaker
| announcements as we get closer to the event.
|
| Registration will be limited, so be sure to subscribe to our RSS
| feed to be notified when registration opens. We're expecting the
| conference to sell out. Don't let yourself be one of the unlucky
| ones that misses the cutoff!
|
| This is your chance to be part of history. Be there for the FIRST
| one. Get the t-shirt.![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
User Group News
===============
* Not-yet Phoenix.rb
--------------------
James Britt writes:
| The 2nd meeting of Refresh Phoenix will be held on Tuesday, December
| 6, at the Common Ground coffee house in Scottsdale, AZ.
|
| Refresh Phoenix is a community of designers and developers working
| to refresh the creative, technical, and professional culture of
| Internet developers in the Phoenix metropolitan area.
|
| At the first meeting earlier this month there was strong showing of
| people either currently using Ruby, or looking to get started.
| Refresh Phoenix isn't specifically about Ruby, but is a means for
| helping designers and developers organize projects and meetings, and
| I plan to use this next meeting to reboot the Phoenix Ruby Users
| Group (AKA Phoenix.rb).
|
| Where:
|
| Common Grounds Coffee House
| 8658 E Shea Blvd # 1, Scottsdale, AZ
| (480) 222-4870
|
| http://rubyurl.com/qck
|
| When:
|
| On Tuesday, December, 6th from 6-8pm, though the semi-official stuff
| starts around 7pm.
|
| More info:
|
| http://refreshphoenix.org/
Quote of the Week
=================
MenTaLguY on the Ruby Grammar Project:
| Don't like ->{} ? Don't look at us. If matz says we get stabby
| blocks, we get stabby blocks.
Threads
=======
warning: default `to_a' will be obsolete
----------------------------------------
David Corbin wonders what to use in place of foo.to_a, now that
Object#to_a is being obsoleted.
Christian Neukirchen suggests [*foo].
James Edward Gray II recommends Array( foo ).
Either one works identically to the former foo.to_a, returning the same
object if it is already an array.
Trans belatedly recommends Array[foo] instead, but Markus Koenig points
out that his suggestion is equivalent to [foo], not to [*foo].
system() on windows
-------------------
system() can behave very differently on Windows; different Rubyists
present explanations and workarounds.
PLATFORM tests
--------------
Kaspar Schiess raises the prospect writing of a library which can be used
to test platform strings to determine whether the program is running on
some flavor of Windows or Unix, since there are so many possible
variations.
Several other posters point out that it is better to test for specific
features and fall back as needed, rather than make assumptions based on
the platform string (which can be misleading or ambiguous).
As Kero succinctly puts it: "Duck platforming"
problem with .each do
---------------------
Lady Michelle Bhaal writes in concerning a Net::HTTP snippet:
| Hiya. The book does things this way, so why doesn't it work for me?
| What's going on?
Lloyd Zusman replies:
| It turns out that Net::Http#get no longer returns a pair of values. It
| has changed between ruby version 1.6 (from the edition of the book that
| you probably have) and 1.8. This is explained in the method's latest
| documentation...
|
| In version 1.1 (ruby 1.6), this method returns a pair of objects, a
| Net::HTTPResponse object and the entity body string. In version 1.2
| (ruby 1.8), this method returns a Net::HTTPResponse object.
recursion
---------
cyberco writes:
| I'm trying to print every combination of three characters from the range
| (a..z). I thought recursion would be the most elegant solution, but that
| got me quite confused
Any suggestions?
Erik Terpstra responds:
('aaa'..'zzz').to_a
| Or 'a'..'zzz' if you want every combination `up to' 3 characters.
Not recursive, but certainly elegant.
Other posters presented a variety of recursive solutions.
Symbol#inspect bug?
-------------------
Dominik Bathon notices that Symbol#inspect doesn't always return a valid
symbol literal. For example:
irb(main):001:0> p :"9"
:9
=> nil
irb(main):002:0> :9
SyntaxError: compile error
(irb):2: syntax error
from (irb):2
matz reports that this is fixed in Ruby 1.8.4.
valgrind and embedded ruby
--------------------------
Heiko Leberer notices that Ruby is producing warnings under valgrind when
allocation exceeds a certain threshold. He wonders whether he is doing
something wrong, or whether this is a Ruby bug.
The answer appears to be the warnings are a side-effect of the marking
process used by Ruby's garbage collector, and are harmless.
New Releases
============
Turing 0.0.7
------------
Michal announces Turing 0.0.7, an easy-to-use and extensible Captcha
implementation. Turing provides not only image-based Captchas, but also a
textual Turing::Challenge which should be more friendly to
visually-impaired users.
ruby/audio 0.1.0
----------------
ruby/audio is a convenience wrapper around NArray and libsndfile. It
should make audio work in Ruby much, much easier.
Puppet Beta Two
---------------
Luke Kanies announced the second beta release of Puppet, a Ruby-based
server automation framework.
| It lets you centrally manage every important aspect of your system using
| a cross-platform specification language that manages all the separate
| elements normally aggregated in different files, like users, cron jobs,
| and hosts, along with obviously discrete elements like packages,
| services, and files.
The new version boasts significantly expanded functionality and cfengine
integration to ease migration.
Rant 0.5.0
----------
Rant is a flexible build tool written entirely in Ruby, similar to Rake.
RRobots 0.1
-----------
Following on fron last week's thread, Simon Kröger introduces RRobots, his
Ruby variation on the fighting-code-robots theme.
| RRobots is a simulation environment for robots, these robots have a
| scanner and a gun, can move forward and backwards and are entirely
| controlled by ruby scripts. All robots are equal (well at the moment,
| maybe this will change) except for the ai.
xampl 0.1.0
-----------
Xampl is a tool for developing Ruby programs. It facilitates the `M' part
of an MVC architecture. It is meant to be very easy to use, supportive of
idiomatic Ruby usage, and mostly invisible. It is similar to some parts of
J2EE.
win32-service 0.5.0
-------------------
win32-service is a library for writing Windows services in Ruby, and is
part of the Win32Utils project.
This version introduces a service_init hook which can be used for
long-running initialization tasks which would otherwise cause the service
to timeout on startup. is a library for writing Windows services in Ruby,
and is part of the Win32Utils project.
This version introduces a service_init hook which can be used for
long-running initialization tasks which would otherwise cause the service
to timeout on startup.
RWB 0.2.0
Ruby Weekly News 21st - 27th November 2005
==========================================
Ruby Weekly News is a summary of the week's activity on the ruby-talk
mailing list / the comp.lang.ruby newsgroup, brought to you by Anonymous.
(Thanks whoever it was, this week's newsletter would have been a no-show
without you.)
[Contribute to the next newsletter.]
Articles and Announcements
==========================
* The Ruby Grammar Project
--------------------------
MenTaLguY announced the creation of The Ruby Grammar Project, the goal
of which is to produce a formal specification for Ruby's syntax and an
ANTLR grammar. His aim is to describe the language as it exists,
rather than proposing new syntax.
* Distributing Rails Applications (tutorial)
--------------------------------------------
Erik Veenstra announces a new version of his tutorial, Distributing
Rails Applications, updated for rails 0.14.3.
* Frappr! map for ruby-lang
---------------------------
Daniel Cremer has created a Frappr! map for ruby-lang.
* RailsConf 2006, June 22-25, Chicago IL
----------------------------------------
| Ruby Central, Inc. is pleased to announce the First International
| Rails Conference (http://railsconf.org). The conference will be held
| in Chicago, IL, USA from June 22-25, 2006.
|
| Brought to you by the same organization that has driven RubyConf for
| five years running, RailsConf is destined to be a one-of-a-kind
| affair.
|
| We already have David Heinemeier Hansson, the creator of Rails as
| well as Dave Thomas, of The Pragmatic Programmers, lined up as
| keynote speakers. Watch this space for more, exciting speaker
| announcements as we get closer to the event.
|
| Registration will be limited, so be sure to subscribe to our RSS
| feed to be notified when registration opens. We're expecting the
| conference to sell out. Don't let yourself be one of the unlucky
| ones that misses the cutoff!
|
| This is your chance to be part of history. Be there for the FIRST
| one. Get the t-shirt.
User Group News
===============
* Not-yet Phoenix.rb
--------------------
James Britt writes:
| The 2nd meeting of Refresh Phoenix will be held on Tuesday, December
| 6, at the Common Ground coffee house in Scottsdale, AZ.
|
| Refresh Phoenix is a community of designers and developers working
| to refresh the creative, technical, and professional culture of
| Internet developers in the Phoenix metropolitan area.
|
| At the first meeting earlier this month there was strong showing of
| people either currently using Ruby, or looking to get started.
| Refresh Phoenix isn't specifically about Ruby, but is a means for
| helping designers and developers organize projects and meetings, and
| I plan to use this next meeting to reboot the Phoenix Ruby Users
| Group (AKA Phoenix.rb).
|
| Where:
|
| Common Grounds Coffee House
| 8658 E Shea Blvd # 1, Scottsdale, AZ
| (480) 222-4870
|
| http://rubyurl.com/qck
|
| When:
|
| On Tuesday, December, 6th from 6-8pm, though the semi-official stuff
| starts around 7pm.
|
| More info:
|
| http://refreshphoenix.org/
Quote of the Week
=================
MenTaLguY on the Ruby Grammar Project:
| Don't like ->{} ? Don't look at us. If matz says we get stabby
| blocks, we get stabby blocks.
Threads
=======
warning: default `to_a' will be obsolete
----------------------------------------
David Corbin wonders what to use in place of foo.to_a, now that
Object#to_a is being obsoleted.
Christian Neukirchen suggests [*foo].
James Edward Gray II recommends Array( foo ).
Either one works identically to the former foo.to_a, returning the same
object if it is already an array.
Trans belatedly recommends Array[foo] instead, but Markus Koenig points
out that his suggestion is equivalent to [foo], not to [*foo].
system() on windows
-------------------
system() can behave very differently on Windows; different Rubyists
present explanations and workarounds.
PLATFORM tests
--------------
Kaspar Schiess raises the prospect writing of a library which can be used
to test platform strings to determine whether the program is running on
some flavor of Windows or Unix, since there are so many possible
variations.
Several other posters point out that it is better to test for specific
features and fall back as needed, rather than make assumptions based on
the platform string (which can be misleading or ambiguous).
As Kero succinctly puts it: "Duck platforming"
problem with .each do
---------------------
Lady Michelle Bhaal writes in concerning a Net::HTTP snippet:
| Hiya. The book does things this way, so why doesn't it work for me?
| What's going on?
Lloyd Zusman replies:
| It turns out that Net::Http#get no longer returns a pair of values. It
| has changed between ruby version 1.6 (from the edition of the book that
| you probably have) and 1.8. This is explained in the method's latest
| documentation...
|
| In version 1.1 (ruby 1.6), this method returns a pair of objects, a
| Net::HTTPResponse object and the entity body string. In version 1.2
| (ruby 1.8), this method returns a Net::HTTPResponse object.
recursion
---------
cyberco writes:
| I'm trying to print every combination of three characters from the range
| (a..z). I thought recursion would be the most elegant solution, but that
| got me quite confused
Erik Terpstra responds:
('aaa'..'zzz').to_a
| Or 'a'..'zzz' if you want every combination `up to' 3 characters.
Not recursive, but certainly elegant.
Other posters presented a variety of recursive solutions.
Symbol#inspect bug?
-------------------
Dominik Bathon notices that Symbol#inspect doesn't always return a valid
symbol literal. For example:
irb(main):001:0> p :"9"
:9
=> nil
irb(main):002:0> :9
SyntaxError: compile error
(irb):2: syntax error
from (irb):2
matz reports that this is fixed in Ruby 1.8.4.
valgrind and embedded ruby
--------------------------
Heiko Leberer notices that Ruby is producing warnings under valgrind when
allocation exceeds a certain threshold. He wonders whether he is doing
something wrong, or whether this is a Ruby bug.
The answer appears to be the warnings are a side-effect of the marking
process used by Ruby's garbage collector, and are harmless.
New Releases
============
Turing 0.0.7
------------
Michal announces Turing 0.0.7, an easy-to-use and extensible Captcha
implementation. Turing provides not only image-based Captchas, but also a
textual Turing::Challenge which should be more friendly to
visually-impaired users.
ruby/audio 0.1.0
----------------
ruby/audio is a convenience wrapper around NArray and libsndfile. It
should make audio work in Ruby much, much easier.
Puppet Beta Two
---------------
Luke Kanies announced the second beta release of Puppet, a Ruby-based
server automation framework.
| It lets you centrally manage every important aspect of your system using
| a cross-platform specification language that manages all the separate
| elements normally aggregated in different files, like users, cron jobs,
| and hosts, along with obviously discrete elements like packages,
| services, and files.
The new version boasts significantly expanded functionality and cfengine
integration to ease migration.
Rant 0.5.0
----------
Rant is a flexible build tool written entirely in Ruby, similar to Rake.
RRobots 0.1
-----------
Following on fron last week's thread, Simon Kröger introduces RRobots, his
Ruby variation on the fighting-code-robots theme.
| RRobots is a simulation environment for robots, these robots have a
| scanner and a gun, can move forward and backwards and are entirely
| controlled by ruby scripts. All robots are equal (well at the moment,
| maybe this will change) except for the ai.
xampl 0.1.0
-----------
Xampl is a tool for developing Ruby programs. It facilitates the `M' part
of an MVC architecture. It is meant to be very easy to use, supportive of
idiomatic Ruby usage, and mostly invisible. It is similar to some parts of
J2EE.
win32-service 0.5.0
-------------------
win32-service is a library for writing Windows services in Ruby, and is
part of the Win32Utils project.
This version introduces a service_init hook which can be used for
long-running initialization tasks which would otherwise cause the service
to timeout on startup. is a library for writing Windows services in Ruby,
and is part of the Win32Utils project.
This version introduces a service_init hook which can be used for
long-running initialization tasks which would otherwise cause the service
to timeout on startup.
RWB 0.2.0