Ruby Weekly News 10th - 16th January 2005

http://www.rubygarden.org/ruby?RubyNews/2005-01-10

                   Ruby Weekly News 10th - 16th 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
   (TimSuth).

Articles and Announcements
--------------------------

     * [Tutorial: Distributed pipes with DRb]

           Ilmari Heikkinen wrote a document (DistributedPipes) that
           describes how the author used the DRb (Distributed Ruby) library
           to write a distributed mp3 encoding system. This is then
           generalised to work with any program that uses pipes for
           communication.

     * [RedHanded welcomes two bloggers from Japan]

           [whytheluckystiff] announced that "Daigo Moriwaki and Michiaki
           Baba from Japan will be joining [RedHanded] this week. They will
           be blogging about activities in Japan and general Ruby stuffs."

     * [Building, Packing and Distributing Ruby Applications]

           Erik Veenstra wrote a [tutorial] that describes how to distribute
           a Ruby application as a single executable that includes the Ruby
           interpreter and the program (using Erik's Tar2RubyScript and
           RubyScript2Exe tools).

Threads
-------

  [apt-listbugs]
  --------------

   Thursday wrote:

  "I didn't see Debian's apt-listbugs in raa or rubyforge so it was kinda
  neat to find out it uses ruby. If you use Debian and Ruby, you might be
  interested in taking a look at the code.
   
  http://packages.debian.org/unstable/admin/apt-listbugs
   
  apt-listbugs is written and maintained by Masato Taruishi.
   
  Description:
   
  apt-listbugs is a tool which retrieves bug reports from the Debian Bug
  Tracking System and lists them. Especially, it is intended to be invoked
  before each upgrade/installation by apt in order to check whether the
  upgrade/installation is safe."

  [Web Testing in Ruby]
  ---------------------

   Laurent Julliard asked

  "I'm trying to find a Ruvby package that would allow us to test a web based
  application directly through the Web interface. The idea here is that
  the Ruby testing application would basically behave like a web browser
  : GET/POST requests, manipulate HTML forms received as objects so
  that it is easy to fill them out and send them back to the server"

   Daniel Berger said this sounded like Perl's "LWP and/or WWW::Mechanize
   modules" and several people listed [WebUnit] which is designed to solve
   exactly this problem.

   JonathanKohl:

  "There is Chris Morris' IEC and the new Watir library. Currently both
  utilize the Internet Explorer "automation" interface (referred to as
  COM, OLE, ActiveX, etc.) using WIN32OLE. IEC works more with form
  submits, while Watir manipulates objects on a web page by sending
  messages to objects. Both IEC and Watir can be downloaded from Rubyforge:
  http://rubyforge.org/projects/wtr/"

   Bret Pettichord:

  ... "we plan to use dependency
  injection to allow Watir-based tests to run either using the IE/COM driver,
  like they do currently (Windows only), or a new driver that will use
  Selenium to allow the tests to run in any browser on any platform.
   
  Selenium is sever-side test automation software that currently supports
  in-browser testing on IE, Mozilla and Firefox on Windows, Mac and Linux.
  Seriously. The tests actually run in your browser of choice using a
  javascript automation engine that is implanted into the browser from the
  server. It's not fast, but it is very accurate and convincing.
   
  You can see this for yourself, if you point a browser of your choice at
  http://selenium.thoughtworks.com/demo1/TestRunner.html
   
  This is just a very rough mock up of what we are aiming for. The version of
  Selenium that is currently released only works with the static test files
  that you see in this demo, which i think is pretty boring. But we have
  prototypes checked in that allow Java and Ruby scripts to execute against
  this very same API."

  [[SUMMARY] LCD Numbers (#14)]
  -----------------------------

   Last week's [Ruby Quiz] was summarised by James Edward Gray II. The task
   was to write a program that displays LCD style numbers at adjustable sizes
   in simple ASCII-art with '-' and '|'.

  "There were three main strategies used for solving the problem. Some used a
  template approach, where you have some kind of text representation of your
  number at a scale of one. Two might look like this, for example:
   
         [ " - ",
           " |",
           " - ",
           "| ",
           " - " ]

  "The second strategy used was to treat each digit as a series of segments that
  can be "on" or "off". The numbers easily break down into seven positions:
   
          6
         5 4
          3
         2 1
          0
   
  Using that map, we can convert the two above to a binary digit, and some did:
   
         0b1011101"

   The third strategy was to use a finite state machine.

  [[QUIZ] Animal Quiz (#15)]
  --------------------------

   This week's [Ruby Quiz] is by Jim Weirich.

  "It works like this. The program starts by telling the user to think
  of an animal. It then begins asking a series of yes/no questions
  about that animal: does it swim, does it have hair, etc. Eventually,
  it will narrow down the possibilities to a single animal and guess
  that (Is it a mouse?).
   
  If the program has guessed correctly, the game is over and may be
  restarted with a new animal. If the program has guess incorrectly, it
  asks the user for the kind of animal they were thinking of and then
  asks for the user to provide a question that can distinguish between
  its incorrect guess and the correct answer. It then adds the new
  question and animal to its "database" and will guess that animal in
  the future (if appropriate)."

   Solutions were posted under the same thread.

  [Segfault in timer.rb]

   Erlend Oye got segfaults when running RSSScraper under builds of Ruby
   1.8.2 and 1.9.1 that he had created with cygwin. They all seemed to be
   occuring when Thread.start was called.

   Ville Mattila pointed out

  "The cygwins signal handling is not most robust and ruby threading
  implementation depends on working signals. However there is cygwin1
  delopment snapshots that might cure Erlend's problem. Erlend could
  you check the latest snapshot from http://cygwin.com/snapshots/
   
  Also I think you'll get better OS features (OLE and stuff like that)
  if you use native ruby i.e. one click installer or compile it
  yourself (migw or msvc)."

   The [One-Click Ruby Installer] for Windows currently uses Microsoft's
   Visual Studio compiler (MSVC) and users can also build Ruby with the MingW
   system (Minimalist GNU for Windows), see the HowToBuildOnWindows wiki page
   for instructions. Neither of these suffer from the cygwin issues.

New Releases
------------

     * [XDCC-Fetch 1.239]

           martinus was happy to announce the first release of [XDCC-Fetch],
           a GUI tool for collecting, searching and downloading broadcasted
           XDCC announcements within IRC channels.

     * [YARV: Yet Another RubyVM 0.1.0]

           SASADA Koichi released version 0.1.0 of [YARV], a project aiming
           to develop the fastest Virtual Machine for Ruby in the world.

     * [Ruby Facets, v0.6.1]

           trans updated [Ruby Facets], a collection of extensions for core
           Ruby classes. "Methods are stored in their own files, allowing for
           extremely granular control of requirements."

     * [sys-uname 0.7.0]

           Daniel Berger improved sys-uname, a Ruby library that provides
           platform information similar to that returned by the unix uname
           command. It works on win32 as well as unix systems. The Windows
           support now uses WMI + OLE instead of a C extension.

     * [Net::SFTP 0.9.0] [Net::SSH 0.9.0]

           Jamis Buck released the first in a planned series of beta releases
           of his pure-Ruby SFTP client [Net::SFTP] with the aim to arrive at
           version 1.0.0 before too long. Jamis also announced a new version
           of [Net::SSH], a pure-Ruby SSH2 client.

     * [Syntax 0.5.0]

           Jamis Buck intoned "[Syntax] is an experimental Ruby library for
           syntax highlighting source code. Currently, it supports Ruby, XML,
           and YAML."

     * [xmlresume2x 0.2.1]

           Thomas Leitner delivered a new release of [xmlresume2x], a tool
           which converts résumés stored using the [XML Résumé Library
           format] into various output formats.

     * [Nitro + Og 0.8.0]

           George Moschovitis updated [Nitro], his web application framework
           and Og, an object-relation mapping library. Changes include a new
           automatic validation system and many important bug fixes.

     * [Tar2RubyScript 0.4.3]

           Erik Veenstra made some enhancements to [Tar2RubyScript], a tool
           that transforms a Ruby program into a single file, easing
           distribution.

     * [EasyPrompt 0.1.0]

           Francis Hwang made the initial release of the EasyPrompt library,
           which provides a simple interface for interactive prompts in
           command-line programs.

     * [Instiki 0.9.2 - OSX build]

           Alexey Verkhovsky reports that "[t]hanks to Ben Schumacher, a
           native OSX build of Instiki 0.9.2 is now available". (Instiki is a
           Wiki implementation.)

     * [Nemo 0.1.0 + Wee 0.4.0]

           Michael Neumann announced Kevin Howe's Nemo project along with an
           updated version of Wee (developed by Michael). "Nemo is a
           web-application platform that uses object metadata to
           automatically construct web-interfaces (Editors and Viewers). It
           is highly object-oriented with strong emphasis on reusable
           components."

     * [Ruby Vector Graphics 0.3.0]

           Tim Hunter issued an update to [RVG], "a library for drawing 2D
           graphics with an API based on the SVG specification". It uses
           RMagick (the Ruby binding for ImageMagick and GraphicsMagick). New
           in this release is support for patterns.

     * [Pimki 1.4]

           Assaph Mehr updated [Pimki], a personal information manager (PIM)
           based on the Instiki wiki system. This release incorporates the
           Instiki changes in Instiki 0.9.2, fixes some bugs and adds
           features like edit on double-click.

     * [CreditCard 1.0]

           Lucas Carlson introduced [CreditCard], a library that can "tell
           you whether a credit card number is self-consistent using known
           algorithms for credit card numbers". Lucas intends to develop a
           full payment processing gateway for Ruby in the future.

     * [Flash/Ruby 0.1.0]

           leon breedt announced the first public release of Flash/Ruby,
           which is a Ruby binding for a library he wrote called libflash. It
           is used to embed Macromedia Flash in a GTK+ application.

     * [RubyScript2Exe 0.3.1]

           Erik Veenstra updated [RubyScript2Exe], which collects a Ruby
           application along with the Ruby interpreter into a single
           executable for Windows or unix. RubyGems support has been
           improved, and .dll and .o files are correctly handled.

Thanks for the news Tim. Very nice, very helpful.

I've noticed though that a number of threads go unmentioned. I know there's no
way to really delve into them all, but I was thinking, it might be possible
to put together a script that takes a from and to date, crawls over ruby talk
archive, and builds a base "template" for the news. It could list all thread
subjects and all [ANN] with links too. Then one could more easily go back and
fill in the info. Should save plenty of time.

Anyhow, just a thought.

Thanks again.
T.

···

On Tuesday 18 January 2005 05:11 am, Tim Sutherland wrote:

http://www.rubygarden.org/ruby?RubyNews/2005-01-10

                   Ruby Weekly News 10th - 16th 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 (TimSuth).

Articles and Announcements
--------------------------

     * [Tutorial: Distributed pipes with DRb]

           Ilmari Heikkinen wrote a document (DistributedPipes) that
           describes how the author used the DRb (Distributed Ruby) library
           to write a distributed mp3 encoding system. This is then
           generalised to work with any program that uses pipes for
           communication.

     * [RedHanded welcomes two bloggers from Japan]

           [whytheluckystiff] announced that "Daigo Moriwaki and Michiaki
           Baba from Japan will be joining [RedHanded] this week. They will
           be blogging about activities in Japan and general Ruby stuffs."

     * [Building, Packing and Distributing Ruby Applications]

           Erik Veenstra wrote a [tutorial] that describes how to
distribute a Ruby application as a single executable that includes the Ruby
interpreter and the program (using Erik's Tar2RubyScript and RubyScript2Exe
tools).

Threads
-------

  [apt-listbugs]
  --------------

   Thursday wrote:

  "I didn't see Debian's apt-listbugs in raa or rubyforge so it was kinda
  neat to find out it uses ruby. If you use Debian and Ruby, you might be
  interested in taking a look at the code.

  Debian -- Details of package apt-listbugs in sid

  apt-listbugs is written and maintained by Masato Taruishi.

  Description:

  apt-listbugs is a tool which retrieves bug reports from the Debian Bug
  Tracking System and lists them. Especially, it is intended to be invoked
  before each upgrade/installation by apt in order to check whether the
  upgrade/installation is safe."

  [Web Testing in Ruby]
  ---------------------

   Laurent Julliard asked

  "I'm trying to find a Ruvby package that would allow us to test a web
based application directly through the Web interface. The idea here is that
the Ruby testing application would basically behave like a web browser

  : GET/POST requests, manipulate HTML forms received as objects so

  that it is easy to fill them out and send them back to the server"

   Daniel Berger said this sounded like Perl's "LWP and/or WWW::Mechanize
   modules" and several people listed [WebUnit] which is designed to solve
   exactly this problem.

   JonathanKohl:

  "There is Chris Morris' IEC and the new Watir library. Currently both
  utilize the Internet Explorer "automation" interface (referred to as
  COM, OLE, ActiveX, etc.) using WIN32OLE. IEC works more with form
  submits, while Watir manipulates objects on a web page by sending
  messages to objects. Both IEC and Watir can be downloaded from Rubyforge:
  http://rubyforge.org/projects/wtr/"

   Bret Pettichord:

  ... "we plan to use dependency
  injection to allow Watir-based tests to run either using the IE/COM
driver, like they do currently (Windows only), or a new driver that will
use Selenium to allow the tests to run in any browser on any platform.

  Selenium is sever-side test automation software that currently supports
  in-browser testing on IE, Mozilla and Firefox on Windows, Mac and Linux.
  Seriously. The tests actually run in your browser of choice using a
  javascript automation engine that is implanted into the browser from the
  server. It's not fast, but it is very accurate and convincing.

  You can see this for yourself, if you point a browser of your choice at
  http://selenium.thoughtworks.com/demo1/TestRunner.html

  This is just a very rough mock up of what we are aiming for. The version
of Selenium that is currently released only works with the static test
files that you see in this demo, which i think is pretty boring. But we
have prototypes checked in that allow Java and Ruby scripts to execute
against this very same API."

  [[SUMMARY] LCD Numbers (#14)]
  -----------------------------

   Last week's [Ruby Quiz] was summarised by James Edward Gray II. The task
   was to write a program that displays LCD style numbers at adjustable
sizes in simple ASCII-art with '-' and '|'.

  "There were three main strategies used for solving the problem. Some used
a template approach, where you have some kind of text representation of
your number at a scale of one. Two might look like this, for example:

         [ " - ",
           " |",
           " - ",
           "| ",
           " - " ]

  "The second strategy used was to treat each digit as a series of segments
that can be "on" or "off". The numbers easily break down into seven
positions:

          6
         5 4
          3
         2 1
          0

  Using that map, we can convert the two above to a binary digit, and some
did:

         0b1011101"

   The third strategy was to use a finite state machine.

  [[QUIZ] Animal Quiz (#15)]
  --------------------------

   This week's [Ruby Quiz] is by Jim Weirich.

  "It works like this. The program starts by telling the user to think
  of an animal. It then begins asking a series of yes/no questions
  about that animal: does it swim, does it have hair, etc. Eventually,
  it will narrow down the possibilities to a single animal and guess
  that (Is it a mouse?).

  If the program has guessed correctly, the game is over and may be
  restarted with a new animal. If the program has guess incorrectly, it
  asks the user for the kind of animal they were thinking of and then
  asks for the user to provide a question that can distinguish between
  its incorrect guess and the correct answer. It then adds the new
  question and animal to its "database" and will guess that animal in
  the future (if appropriate)."

   Solutions were posted under the same thread.

  [Segfault in timer.rb]

   Erlend Oye got segfaults when running RSSScraper under builds of Ruby
   1.8.2 and 1.9.1 that he had created with cygwin. They all seemed to be
   occuring when Thread.start was called.

   Ville Mattila pointed out

  "The cygwins signal handling is not most robust and ruby threading
  implementation depends on working signals. However there is cygwin1
  delopment snapshots that might cure Erlend's problem. Erlend could
  you check the latest snapshot from Cygwin Snapshots

  Also I think you'll get better OS features (OLE and stuff like that)
  if you use native ruby i.e. one click installer or compile it
  yourself (migw or msvc)."

   The [One-Click Ruby Installer] for Windows currently uses Microsoft's
   Visual Studio compiler (MSVC) and users can also build Ruby with the
MingW system (Minimalist GNU for Windows), see the HowToBuildOnWindows wiki
page for instructions. Neither of these suffer from the cygwin issues.

New Releases
------------

     * [XDCC-Fetch 1.239]

           martinus was happy to announce the first release of
[XDCC-Fetch], a GUI tool for collecting, searching and downloading
broadcasted XDCC announcements within IRC channels.

     * [YARV: Yet Another RubyVM 0.1.0]

           SASADA Koichi released version 0.1.0 of [YARV], a project aiming
           to develop the fastest Virtual Machine for Ruby in the world.

     * [Ruby Facets, v0.6.1]

           trans updated [Ruby Facets], a collection of extensions for core
           Ruby classes. "Methods are stored in their own files, allowing
for extremely granular control of requirements."

     * [sys-uname 0.7.0]

           Daniel Berger improved sys-uname, a Ruby library that provides
           platform information similar to that returned by the unix uname
           command. It works on win32 as well as unix systems. The Windows
           support now uses WMI + OLE instead of a C extension.

     * [Net::SFTP 0.9.0] [Net::SSH 0.9.0]

           Jamis Buck released the first in a planned series of beta
releases of his pure-Ruby SFTP client [Net::SFTP] with the aim to arrive at
version 1.0.0 before too long. Jamis also announced a new version of
[Net::SSH], a pure-Ruby SSH2 client.

     * [Syntax 0.5.0]

           Jamis Buck intoned "[Syntax] is an experimental Ruby library for
           syntax highlighting source code. Currently, it supports Ruby,
XML, and YAML."

     * [xmlresume2x 0.2.1]

           Thomas Leitner delivered a new release of [xmlresume2x], a tool
           which converts résumés stored using the [XML Résumé Library
           format] into various output formats.

     * [Nitro + Og 0.8.0]

           George Moschovitis updated [Nitro], his web application
framework and Og, an object-relation mapping library. Changes include a new
automatic validation system and many important bug fixes.

     * [Tar2RubyScript 0.4.3]

           Erik Veenstra made some enhancements to [Tar2RubyScript], a tool
           that transforms a Ruby program into a single file, easing
           distribution.

     * [EasyPrompt 0.1.0]

           Francis Hwang made the initial release of the EasyPrompt
library, which provides a simple interface for interactive prompts in
command-line programs.

     * [Instiki 0.9.2 - OSX build]

           Alexey Verkhovsky reports that "[t]hanks to Ben Schumacher, a
           native OSX build of Instiki 0.9.2 is now available". (Instiki is
a Wiki implementation.)

     * [Nemo 0.1.0 + Wee 0.4.0]

           Michael Neumann announced Kevin Howe's Nemo project along with
an updated version of Wee (developed by Michael). "Nemo is a
web-application platform that uses object metadata to
           automatically construct web-interfaces (Editors and Viewers). It
           is highly object-oriented with strong emphasis on reusable
           components."

     * [Ruby Vector Graphics 0.3.0]

           Tim Hunter issued an update to [RVG], "a library for drawing 2D
           graphics with an API based on the SVG specification". It uses
           RMagick (the Ruby binding for ImageMagick and GraphicsMagick).
New in this release is support for patterns.

     * [Pimki 1.4]

           Assaph Mehr updated [Pimki], a personal information manager
(PIM) based on the Instiki wiki system. This release incorporates the
Instiki changes in Instiki 0.9.2, fixes some bugs and adds features like
edit on double-click.

     * [CreditCard 1.0]

           Lucas Carlson introduced [CreditCard], a library that can "tell
           you whether a credit card number is self-consistent using known
           algorithms for credit card numbers". Lucas intends to develop a
           full payment processing gateway for Ruby in the future.

     * [Flash/Ruby 0.1.0]

           leon breedt announced the first public release of Flash/Ruby,
           which is a Ruby binding for a library he wrote called libflash.
It is used to embed Macromedia Flash in a GTK+ application.

     * [RubyScript2Exe 0.3.1]

           Erik Veenstra updated [RubyScript2Exe], which collects a Ruby
           application along with the Ruby interpreter into a single
           executable for Windows or unix. RubyGems support has been
           improved, and .dll and .o files are correctly handled.

--
( o _ カラチ
// trans.
/ \ transami@runbox.com
[8,16,20,29,78,65,2,14,26,12,12,28,71,114,12,13,12,82,72,21,17,4,10,2,95].
each_with_index{|x,i| $><<(x^'Begin landing your troops'[i]).chr}
-Tadayoshi Funaba

Hey!

http://www.rubygarden.org/ruby?RubyNews/2005-01-10

I can't see the news there on that URL. :frowning:

- ----------------------------
Eustáquio "TaQ" Rangel
eustaquiorangel@yahoo.com

Usuário GNU/Linux no. 224050

That would be an interresting idea for a Ruby-Quiz: Write a program
that finds the most interesting threads of a given period.

martinus

That's a very good idea. I'll do that :slight_smile:

One problem with summarising so many threads into just a few is that what is
an interesting thread depends on the reader. So naturally the selection is
biased by my own interests. For example, if the reader is interested in
Tcl/Tk then there were a couple of good threads last week. If they care
about language design then the ``Inheritance of class variables'' thread
would be a must. There were also discussions on garbage collections, C
extensions, SWIG etc. The Unicode thread should probably have been included.

I have noticed that covering all the [ANN]'s takes a lot of time, since
there are usually so many. Your idea will cut down this time, enabling me to
spend more time covering threads.

Thanks.

···

In article <200501180813.16508.transami@runbox.com>, trans. (T. Onoma) wrote:

Thanks for the news Tim. Very nice, very helpful.

I've noticed though that a number of threads go unmentioned. I know there's no
way to really delve into them all, but I was thinking, it might be possible
to put together a script that takes a from and to date, crawls over ruby talk
archive, and builds a base "template" for the news. It could list all thread
subjects and all [ANN] with links too. Then one could more easily go back and
fill in the info. Should save plenty of time.

Anyhow, just a thought.

Funny, it works for me, and no-one has edited the page since I posted. What
browser are you using, and can you access other rubygarden pages?

···

In article <41ED1193.9040101@yahoo.com>, Eustaquio Rangel de Oliveira Jr. wrote:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hey!

Captcha

I can't see the news there on that URL. :frowning:

Oh. You are quite welcome. Glad to be a help.

T.

Hey. Just had another small idea. Let's keep an eye out for the best
quote of week. I think that might be a nice little addition.

In article <1106143961.571103.239830@c13g2000cwb.googlegroups.com>, trans.
wrote:

Hey. Just had another small idea. Let's keep an eye out for the best
quote of week. I think that might be a nice little addition.

Okay. Send me any interesting quotes you see.

Hey. Just had another small idea. Let's keep an eye out
for the best quote of week. I think that might be a nice
little addition.

Okay. Send me any interesting quotes you see.

Okay, but it'll certainly will take more then this here pair of eyes.
Why not start with this quote itself to get the word out for others to
keep an eye out :wink: