T
Tim Sutherland
http://www.rubyweeklynews.org/20060702.html
Use the link above for a nicer version of this newsletter that's formatted
for the web, including links to threads and other sites. You can also
subscribe to a newsletter-only mailing list, or to RSS/Atom feeds.
Ruby Weekly News 26th June - 2nd July 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.
[ Contribute to the next newsletter ]
Articles and Announcements
==========================
* European Rails Conf -- talk proposals now being accepted (ruby-talk)
======================================================================
David A. Black: "We're now accepting proposals for talks at the
European Rails Conference, to be held September 14-15 in London.
Accepted speakers will get free admission to the conference."
Proposals must be submitted by July 21, 2006.
"David, for Ruby Central, Inc. and Skills Matter, Ltd., co-producers
of the 2006 European Rails Conference".
User Group News
===============
* European Rubyists (ruby-talk)
-------------------------------
Austin Ziegler is taking a vacation in Europe soon, and would like to
meet up with European Rubyists.
* Munich.rb -- User Group Meeting in Munich, Germany (ruby-talk)
----------------------------------------------------------------
Urban Hafner's trying to organise a meeting in Munich on July 15th or
16th, in response to Austin's message that he'd be in Munich some time
in July. Is anyone else interested?
* Ruby Ireland - Irish ruby and rails user group (comp.lang.ruby)
-----------------------------------------------------------------
Aidan Finn has formed a mailing list for Irish Ruby users who are keen
on forming Ruby and/or Rails groups.
* Northern Virginia Ruby user's group meeting 6/28/06 (ruby-talk)
-----------------------------------------------------------------
The NovaRUG group (Northern Virginia, U.S.) met on the 28th June. The
next meeting is on July 19.
Threads
=======
RAA and web services? (ruby-talk)
---------------------------------
Daniel Berger: "Does the RAA have any sort of web service backend? I saw
hints that it might be added at some point but nothing definite."
There were not yet any replies.
Iconv and incompatible encodings (ruby-talk)
--------------------------------------------
Alex Young wanted to "lossily convert between partially incompatible
encodings", such as from UTF-8 to 7-bit ASCII.
Paul Battley said that the iconv library has "//IGNORE" and "//TRANSLIT"
options for ignoring or transliterating unconvertable characters. He gave
the example of converting "caffè" into "caff" or "caff`e", and also showed
how to turn it into "caffe" with the Unicode library.
Why is there no Smalltalk-like IDE for Ruby? (comp.lang.ruby)
-------------------------------------------------------------
See also the same topic in ruby-talk.
Joseph Moore: "I shout my question to the entire Ruby + Smalltalk
community: Smalltalk has had amazing IDEs for decades, why not Ruby?
Smalltalkers, Ruby needs your help!"
There were many replies.
The Smalltalk language itself has a high level of integration with its
development environment, rather than the IDE being bolted-on as an
after-thought.
In Ruby (as with most languages) the entire `world' of the program is
re-created each time it is run, whereas a Smalltalk program is
image-based (in most implementations), and evolves over time,
preserving its state even when it is `restarted'.
So, for example, in order for a Ruby IDE to work out what methods a class
has, it must perform complex analysis of the static source code text (and
since methods may be conditionally defined at runtime, this is impossible
to do perfectly in all cases). In Smalltalk, the system knows what methods
the class has: it just needs to look at its current state.
Some advantages of Ruby's `re-create world from plain-text sources files',
and in general having a separation between development environment and
language runtime, were also put forward.
m17n and unicode (ruby-talk)
----------------------------
The difference between m17n and unicode, as described by Logan Capaldo:
Summer of code: ruby-breakpoint GUI client (ruby-talk)
------------------------------------------------------
Florian Gross' Google Summer of Code project (ruby-breakpoint
improvements) was discussed, particularly regarding a GUI vs web interface
for visualising Ruby objects.
Florian: "I still think that a real GUI client will be able to do things
that are hard to do with a web one, though, so I'll focus on the GUI one
first."
Rational about the Gem package format? (ruby-talk)
--------------------------------------------------
Why is the gem package format a tarball containing files "data.tar.gz" and
"metadata.gz" (plus now two corresponding ".sig" files)?
"Why not just have the metadata stored in with the data and not worry
about double layers?", asked Trans.
Mauricio Fernandez explained that to extract a single file from a .tar.gz
(gzipped tarball), you must first decompress the entire file, so if this
was necessary then extracting the meta-data would be slow and use a lot of
memory. (Although he noted that RubyGems currently decompresses the entire
file into memory anyway.)
The format is also easy to extend - simply add more files to the outer
layer. As well, the "data.tar.gz" can be constructed before "metadata.gz",
enabling the latter to easily store a cryptographic digest of the data.
Regex Comparison Causing Massive Memory Usage (ruby-talk)
---------------------------------------------------------
A regular expression in Charset.is_utf8(str) from the SOAP library was
examined after Mike Harris reported that passing in a 200 KB string
resulted in memory usage exceeding 2 GB.
Xavier Noria said that the regex could potentially cause a lot of
unnecessary backtracking, and Florian Gross proposed a change to prevent
the problem.
QInputDialog syntax (ruby-talk)
-------------------------------
Graham Smith was having trouble converting between the C++ syntax used in
the Qt documentation, and what is needed for QtRuby.
(Qt is a multi-platform GUI toolkit, used most prominently in KDE.)
Ed Borasky highly recommended the "Rapid GUI Development with QtRuby"
PDF from the Pragmatic Bookshelf. It's written by Caleb Tennis and costs
US$8.50 (it's a "Friday" book).
Pau Garcia i Quiles seconded the recommendation, and also said
"C++ GUI Programming with Qt3" is a good book if you're going to be
doing serious Qt development (even though it is C++ oriented).
Your editor stopped halfway through writing this summary to buy the PDF,
and it does indeed look like a nice introduction
Time To Pick the Mongrel BUGS Mascot! (ruby-talk)
-------------------------------------------------
Zed Shaw (the author of the Mongrel Ruby web application server) was sent
a page of "ugly ugly ugly dogs" by Bradley Taylor, and he just had to use
one of them for the Mongrel BUGS mascot (replacing the current beetle).
The group sent in their favourite choices. "I like MISS ELLIE" was all
James Edward Gray II had to say.
RedLetter Ruby Journal (ruby-talk)
----------------------------------
The "RedLetter Ruby Journal" faltered without any publications, as its
editor Sam Flywheel was apparently unable to attract enough writers.
Several people complained that they had not yet received refunds on their
subscriptions despite requesting them, and Pat Eyler noticed Sam had now
announced "Tabula: The Journal of MySQL Development".
PDF::Writer and i18n (comp.lang.ruby)
-------------------------------------
Pawel Chmielewski asked about representing non-English characters with
PDF::Writer, as the library didn't appear to support UTF-8.
Austin Ziegler, the library's author, said that PDF::Writer will never
support UTF-8 directly, because its not in the PDF standard.
The default character set used by PDF::Writer is similar to Latin-1, and
additional characters are supported via "encoding character maps". This is
briefly described in the PDF::Writer manual, and the documentation will be
expanded in the next release.
creating graphical application with video (ruby-talk)
-----------------------------------------------------
Geert Fannes: "I have to teach my sister how to create an application that
can show pictures and small video files on a windows-based system and get
some user input in return. Being able to work fullscreen is optional, but
would be nice."
Ilmari Heikkinen suggested Ruby/SDL or Ruby-GNOME2 + gstreamer.
Geert managed to get streaming video working with Ruby/SDL, using the
"smpeg" library, but felt its performance wasn't very good. He plans to
try SDL with "ffmpeg" instead (and hopes there is an existing Ruby library
wrapping SDL/ffmpeg).
"The good thing is that I could compile both SDL and ffmpeg using MinGW"
under Windows.
C-Style Ints (#85) (ruby-talk)
------------------------------
Ruby Quiz this week is by Aaron Patterson.
New Releases
============
RubyScript2Exe 0.4.3 (ruby-talk)
--------------------------------
Erik Veenstra made a new RubyScript2Exe release, with improved RubyGems
support, and followed it up with version 0.4.4 to fix a bug that was
introduced.
"RubyScript2Exe transforms your Ruby script into a standalone, compressed
Windows, Linux or Mac OS X (Darwin) executable."
id3lib-ruby 0.4.0 (Unicode fixes) (ruby-talk)
---------------------------------------------
id3lib-ruby by Robin Stocker now works properly with Unicode frames, and
some methods in the API were renamed.
KirbyBase 2.6 (ruby-talk)
-------------------------
Jamey Cribbs: "I would like to announce version 2.6 of KirbyBase, a small,
pure-Ruby database management system that stores its data in plain-text
files."
It no longer over-rides NilClass#method_missing.
na_str-0.0.0 : combining narray with mmap for persistant numerical data
-----------------------------------------------------------------------
(ruby-talk)
-----------
na_str is a new library that will intrigue users of NArray (a library for
"fast calculation and easy manipulation of large numerical arrays into the
Ruby language").
Written by Ara. T. Howard, it provides a way of sharing NArray data with
other Ruby objects. An example library, na_map, combines NArray and mmap
so that data can be modified "with no explicit io on the users part and
partial change to numerical grids can occur very quickly and
persistently."
Interestingly, na_str uses rb_str_new4() internally. This creates a string
that shares an internal memory region with another.
Mongrel 0.3.13.3 Needs Debuggers (ruby-talk)
--------------------------------------------
Zed Shaw needs people to test the 0.3.13.3 pre-release.
See also Mongrel 0.3.13.2 Pre-Release-RailsConf, which included a change
to try and "reap dead threads as soon as possible," especially when there
are too many open files.
For SciTE Users: Snippets (ruby-talk)
-------------------------------------
Mitchell Foral created a Lua module for SciTE that mimicks the Textmate
editor's "snippet" system.
From the documentation:
The website includes screencasts.
RMagick 1.13.0 (comp.lang.ruby)
-------------------------------
RMagick, the Ruby library for the ImageMagick and GraphicsMagick
image-manipulation libraries, had some bugs fixed and features added,
including Image#auto_orient to automatically orient an image from its EXIF
data.
fUnit-0.1.3 - A Fortran Unit Testing Framework (comp.lang.ruby)
---------------------------------------------------------------
Bil Kleb posted "funit", a Fortran unit testing framework (where you write
tests in Ruby).
Radiant CMS 0.5 - Grindstone (ruby-talk)
----------------------------------------
John W. Long quietly set loose the first official release of Radiant, "a
no-fluff content management system designed for small teams."
Ruby Reports 0.4.11 (ruby-talk)
-------------------------------
Ruport 0.4.11, the "Mr. Sparkle" Edition, was released by Gregory Brown.
This is a cleanup and bugfix release, and also has a couple of new
features.
In other news, Dudley Flanders has joined the project as a developer, more
documentation will soon be written (including a Ruport cookbook), and the
developers now hang out on the #ruport IRC channel on freenode.
RubyGems 0.9.0 Release (ruby-talk)
----------------------------------
Jim Weirich announced the "much anticipated" release of RubyGems 0.9.0.
Support for authenticating proxies and improved integration with
documentation tools were also added.
mkrf 0.1.0 released (ruby-talk)
-------------------------------
Kevin Clark's mkrf had its first release. mkrf is similar in purpose to
mkmf (and mkmf2), but creates Rakefiles instead of Makefiles (it is used
for building Ruby C extensions).
Asked how it compares with mkmf2, he enumerated advantages of using
Rakefiles over Makefiles (gem packaging, rdoc generation built in ...),
and also said he was keeping the code clean so it could be incorporated
into RubyGems at some point.
Ruby-GNOME2-0.15.0 (ruby-talk)
Use the link above for a nicer version of this newsletter that's formatted
for the web, including links to threads and other sites. You can also
subscribe to a newsletter-only mailing list, or to RSS/Atom feeds.
Ruby Weekly News 26th June - 2nd July 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.
[ Contribute to the next newsletter ]
Articles and Announcements
==========================
* European Rails Conf -- talk proposals now being accepted (ruby-talk)
======================================================================
David A. Black: "We're now accepting proposals for talks at the
European Rails Conference, to be held September 14-15 in London.
Accepted speakers will get free admission to the conference."
Proposals must be submitted by July 21, 2006.
"David, for Ruby Central, Inc. and Skills Matter, Ltd., co-producers
of the 2006 European Rails Conference".
User Group News
===============
* European Rubyists (ruby-talk)
-------------------------------
Austin Ziegler is taking a vacation in Europe soon, and would like to
meet up with European Rubyists.
* Munich.rb -- User Group Meeting in Munich, Germany (ruby-talk)
----------------------------------------------------------------
Urban Hafner's trying to organise a meeting in Munich on July 15th or
16th, in response to Austin's message that he'd be in Munich some time
in July. Is anyone else interested?
* Ruby Ireland - Irish ruby and rails user group (comp.lang.ruby)
-----------------------------------------------------------------
Aidan Finn has formed a mailing list for Irish Ruby users who are keen
on forming Ruby and/or Rails groups.
* Northern Virginia Ruby user's group meeting 6/28/06 (ruby-talk)
-----------------------------------------------------------------
The NovaRUG group (Northern Virginia, U.S.) met on the 28th June. The
next meeting is on July 19.
Threads
=======
RAA and web services? (ruby-talk)
---------------------------------
Daniel Berger: "Does the RAA have any sort of web service backend? I saw
hints that it might be added at some point but nothing definite."
There were not yet any replies.
Iconv and incompatible encodings (ruby-talk)
--------------------------------------------
Alex Young wanted to "lossily convert between partially incompatible
encodings", such as from UTF-8 to 7-bit ASCII.
Paul Battley said that the iconv library has "//IGNORE" and "//TRANSLIT"
options for ignoring or transliterating unconvertable characters. He gave
the example of converting "caffè" into "caff" or "caff`e", and also showed
how to turn it into "caffe" with the Unicode library.
Why is there no Smalltalk-like IDE for Ruby? (comp.lang.ruby)
-------------------------------------------------------------
See also the same topic in ruby-talk.
Joseph Moore: "I shout my question to the entire Ruby + Smalltalk
community: Smalltalk has had amazing IDEs for decades, why not Ruby?
Smalltalkers, Ruby needs your help!"
There were many replies.
The Smalltalk language itself has a high level of integration with its
development environment, rather than the IDE being bolted-on as an
after-thought.
In Ruby (as with most languages) the entire `world' of the program is
re-created each time it is run, whereas a Smalltalk program is
image-based (in most implementations), and evolves over time,
preserving its state even when it is `restarted'.
So, for example, in order for a Ruby IDE to work out what methods a class
has, it must perform complex analysis of the static source code text (and
since methods may be conditionally defined at runtime, this is impossible
to do perfectly in all cases). In Smalltalk, the system knows what methods
the class has: it just needs to look at its current state.
Some advantages of Ruby's `re-create world from plain-text sources files',
and in general having a separation between development environment and
language runtime, were also put forward.
m17n and unicode (ruby-talk)
----------------------------
The difference between m17n and unicode, as described by Logan Capaldo:
Unicode says, lets make ONE universal character set and map all our
strings into it.
m17n says not every language is the same, not every concept of a
character is the same, let's support all the languages and character
sets we can.
Ruby's m17n will have support for Unicode, but it will be an option for
an encoding, not the only encoding.
Summer of code: ruby-breakpoint GUI client (ruby-talk)
------------------------------------------------------
Florian Gross' Google Summer of Code project (ruby-breakpoint
improvements) was discussed, particularly regarding a GUI vs web interface
for visualising Ruby objects.
Florian: "I still think that a real GUI client will be able to do things
that are hard to do with a web one, though, so I'll focus on the GUI one
first."
Rational about the Gem package format? (ruby-talk)
--------------------------------------------------
Why is the gem package format a tarball containing files "data.tar.gz" and
"metadata.gz" (plus now two corresponding ".sig" files)?
"Why not just have the metadata stored in with the data and not worry
about double layers?", asked Trans.
Mauricio Fernandez explained that to extract a single file from a .tar.gz
(gzipped tarball), you must first decompress the entire file, so if this
was necessary then extracting the meta-data would be slow and use a lot of
memory. (Although he noted that RubyGems currently decompresses the entire
file into memory anyway.)
The format is also easy to extend - simply add more files to the outer
layer. As well, the "data.tar.gz" can be constructed before "metadata.gz",
enabling the latter to easily store a cryptographic digest of the data.
Regex Comparison Causing Massive Memory Usage (ruby-talk)
---------------------------------------------------------
A regular expression in Charset.is_utf8(str) from the SOAP library was
examined after Mike Harris reported that passing in a 200 KB string
resulted in memory usage exceeding 2 GB.
Xavier Noria said that the regex could potentially cause a lot of
unnecessary backtracking, and Florian Gross proposed a change to prevent
the problem.
QInputDialog syntax (ruby-talk)
-------------------------------
Graham Smith was having trouble converting between the C++ syntax used in
the Qt documentation, and what is needed for QtRuby.
(Qt is a multi-platform GUI toolkit, used most prominently in KDE.)
Ed Borasky highly recommended the "Rapid GUI Development with QtRuby"
PDF from the Pragmatic Bookshelf. It's written by Caleb Tennis and costs
US$8.50 (it's a "Friday" book).
Pau Garcia i Quiles seconded the recommendation, and also said
"C++ GUI Programming with Qt3" is a good book if you're going to be
doing serious Qt development (even though it is C++ oriented).
Your editor stopped halfway through writing this summary to buy the PDF,
and it does indeed look like a nice introduction
Time To Pick the Mongrel BUGS Mascot! (ruby-talk)
-------------------------------------------------
Zed Shaw (the author of the Mongrel Ruby web application server) was sent
a page of "ugly ugly ugly dogs" by Bradley Taylor, and he just had to use
one of them for the Mongrel BUGS mascot (replacing the current beetle).
The group sent in their favourite choices. "I like MISS ELLIE" was all
James Edward Gray II had to say.
RedLetter Ruby Journal (ruby-talk)
----------------------------------
The "RedLetter Ruby Journal" faltered without any publications, as its
editor Sam Flywheel was apparently unable to attract enough writers.
Several people complained that they had not yet received refunds on their
subscriptions despite requesting them, and Pat Eyler noticed Sam had now
announced "Tabula: The Journal of MySQL Development".
PDF::Writer and i18n (comp.lang.ruby)
-------------------------------------
Pawel Chmielewski asked about representing non-English characters with
PDF::Writer, as the library didn't appear to support UTF-8.
Austin Ziegler, the library's author, said that PDF::Writer will never
support UTF-8 directly, because its not in the PDF standard.
The default character set used by PDF::Writer is similar to Latin-1, and
additional characters are supported via "encoding character maps". This is
briefly described in the PDF::Writer manual, and the documentation will be
expanded in the next release.
creating graphical application with video (ruby-talk)
-----------------------------------------------------
Geert Fannes: "I have to teach my sister how to create an application that
can show pictures and small video files on a windows-based system and get
some user input in return. Being able to work fullscreen is optional, but
would be nice."
Ilmari Heikkinen suggested Ruby/SDL or Ruby-GNOME2 + gstreamer.
Geert managed to get streaming video working with Ruby/SDL, using the
"smpeg" library, but felt its performance wasn't very good. He plans to
try SDL with "ffmpeg" instead (and hopes there is an existing Ruby library
wrapping SDL/ffmpeg).
"The good thing is that I could compile both SDL and ffmpeg using MinGW"
under Windows.
C-Style Ints (#85) (ruby-talk)
------------------------------
Ruby Quiz this week is by Aaron Patterson.
Write a class that can represent a signed or unsigned number with an
arbitrary number of bits. This class should support all bitwise
operations ( & ^ ~ | ), basic math operations ( + - / * ), and
comparison operators.
New Releases
============
RubyScript2Exe 0.4.3 (ruby-talk)
--------------------------------
Erik Veenstra made a new RubyScript2Exe release, with improved RubyGems
support, and followed it up with version 0.4.4 to fix a bug that was
introduced.
"RubyScript2Exe transforms your Ruby script into a standalone, compressed
Windows, Linux or Mac OS X (Darwin) executable."
id3lib-ruby 0.4.0 (Unicode fixes) (ruby-talk)
---------------------------------------------
id3lib-ruby by Robin Stocker now works properly with Unicode frames, and
some methods in the API were renamed.
KirbyBase 2.6 (ruby-talk)
-------------------------
Jamey Cribbs: "I would like to announce version 2.6 of KirbyBase, a small,
pure-Ruby database management system that stores its data in plain-text
files."
It no longer over-rides NilClass#method_missing.
na_str-0.0.0 : combining narray with mmap for persistant numerical data
-----------------------------------------------------------------------
(ruby-talk)
-----------
na_str is a new library that will intrigue users of NArray (a library for
"fast calculation and easy manipulation of large numerical arrays into the
Ruby language").
Written by Ara. T. Howard, it provides a way of sharing NArray data with
other Ruby objects. An example library, na_map, combines NArray and mmap
so that data can be modified "with no explicit io on the users part and
partial change
persistently."
Interestingly, na_str uses rb_str_new4() internally. This creates a string
that shares an internal memory region with another.
Mongrel 0.3.13.3 Needs Debuggers (ruby-talk)
--------------------------------------------
Zed Shaw needs people to test the 0.3.13.3 pre-release.
See also Mongrel 0.3.13.2 Pre-Release-RailsConf, which included a change
to try and "reap dead threads as soon as possible," especially when there
are too many open files.
For SciTE Users: Snippets (ruby-talk)
-------------------------------------
Mitchell Foral created a Lua module for SciTE that mimicks the Textmate
editor's "snippet" system.
From the documentation:
Basically, snippets are pieces of text inserted into a document, but can
execute shell code at run-time, contain placeholders for additional
information to be added, and make simple transforms on that information.
This is much more powerful than SciTE's abbreviation expansion system.
The website includes screencasts.
RMagick 1.13.0 (comp.lang.ruby)
-------------------------------
RMagick, the Ruby library for the ImageMagick and GraphicsMagick
image-manipulation libraries, had some bugs fixed and features added,
including Image#auto_orient to automatically orient an image from its EXIF
data.
If you're using a web hosting service and it has a very old version of
RMagick installed, please consider asking your service provider to
upgrade. I've fixed several memory leaks in recent releases so if you're
running into memory usage problems with your web app upgrading could
really pay off.
fUnit-0.1.3 - A Fortran Unit Testing Framework (comp.lang.ruby)
---------------------------------------------------------------
Bil Kleb posted "funit", a Fortran unit testing framework (where you write
tests in Ruby).
Radiant CMS 0.5 - Grindstone (ruby-talk)
----------------------------------------
John W. Long quietly set loose the first official release of Radiant, "a
no-fluff content management system designed for small teams."
Ruby Reports 0.4.11 (ruby-talk)
-------------------------------
Ruport 0.4.11, the "Mr. Sparkle" Edition, was released by Gregory Brown.
This is a cleanup and bugfix release, and also has a couple of new
features.
In other news, Dudley Flanders has joined the project as a developer, more
documentation will soon be written (including a Ruport cookbook), and the
developers now hang out on the #ruport IRC channel on freenode.
RubyGems 0.9.0 Release (ruby-talk)
----------------------------------
Jim Weirich announced the "much anticipated" release of RubyGems 0.9.0.
This release includes a number of new features and bug fixes. The number
one change is that we can now download the gem index incrementally. This
will greatly speed up the gem command when only a few gems are out of
date.
Support for authenticating proxies and improved integration with
documentation tools were also added.
mkrf 0.1.0 released (ruby-talk)
-------------------------------
Kevin Clark's mkrf had its first release. mkrf is similar in purpose to
mkmf (and mkmf2), but creates Rakefiles instead of Makefiles (it is used
for building Ruby C extensions).
Asked how it compares with mkmf2, he enumerated advantages of using
Rakefiles over Makefiles (gem packaging, rdoc generation built in ...),
and also said he was keeping the code clean so it could be incorporated
into RubyGems at some point.
Ruby-GNOME2-0.15.0 (ruby-talk)