Ruby Weekly News 22nd-28th November 2004

(Apologies for missing out accents etc. in people's names in the previous
Ruby Weekly News editions I posted. The web versions had them but my
conversion-to-plain-text process inadvertently stripped them out.)

                    Ruby Weekly News 22nd-28th November 2004

···

----------------------------------------

   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
--------------------------

     * [Most popular wiki in Ruby seeks kind maintainer]

           David Heinemeier Hansson is looking for someone to take over
           maintenance of [Instiki], a Wiki platform written in Ruby.
           "Instiki just surpassed 8,000 downloads on RubyForge, which makes
           it the most downloaded piece of software there if you don't count
           Ruby itself." ... "Who's willing for glory and honor?" Alexey
           Verkhovsky said he'd do it if no-one else volunteered.

     * [POPL 2005 Call for Participation]

           David Walker posted the Call for Participation in the annual
           symposium on Principles of Programming Languages (POPL) - 32nd
           Annual ACM SIGPLAN - SIGACT. The hotel registration deadline is
           December 21, 2004 and the main conference is in California on
           January 12-14, 2005.

     * [Ruby/DL translation]

           Benjamin Peterson [translated] the Ruby/DL tutorial from Japanese
           to English.

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

     * [Table Helper for Ruby on Rails ]

           Bauduin Raphael released [Table Helper] for [Rails]. It's used for
           creating an HTML table out of an Array.

     * [Nitro 0.5.0]

           George Moschovitis announced a new version of his web application
           framework [Nitro]. It now provides Og (Object-Relational mapping)
           as a stand-alone library.

     * [Checkpointing Ruby applications (DragonFlyBSD only)]

           Michael Neumann wrote a Ruby wrapper for [DragonFlyBSD]'s
           sys_checkpoint system call. A running application can be dumped to
           disk and resumed later on. He mentioned that it could be useful
           for web frameworks that use Continuations and are therefore not
           able to be dumped with Marshal.

     * [xmlresume2x 0.1.0]

           Thomas Leitner submitted the first release of [xmlresume2x], used
           for converting Résumés (CVs) written in the [XML Résumé Library
           Format] into various output formats, including LaTeX, text, HTML
           and PDF.

     * [D-Bus/Ruby 0.1.4] [DBus/Ruby 0.1.5]

           Leon Breedt announced version 0.1.4 of [DBus/Ruby], his Ruby
           binding for the D-BUS message bus (one use of D-BUS is in recent
           Linux distributions to provide a generic Hardware Access Layer -
           HAL - to applications). He later released version 0.1.5 with GEM
           package support (it was already on RPA).

     * [rem 0.0.7]

           yyuu updated [Rem]. This is a debugger for Ruby code, supporting
           command-line and remote debugging.

     * [Pimki]

           Assaph Mehr created a Personal Information Manager (PIM) called
           [Pimki] based off a modified [Instiki] base. It includes support
           for "mind maps" (graph of Wiki connections), blogs and TODO lists.

     * [win32-file 0.4.0]

           On behalf of the [Win32Utils] team, Daniel Berger announced a new
           version of win32-file. It now provides File.nopen, File#nread and
           File#nwrite corresponding to CreateFile(), ReadFile() and
           WriteFile() respectively. These provide win32-specific options
           (e.g. access retrictions) and may enable "much, much better
           performance" in some situations.

     * [a non-heinous acceptance test rig inside MiniRubyWiki]

           Phlip modified his Wiki software MiniRubyWiki to enable people to
           create simple unit tests through an HTML form interface.

     * [RubyInline 3.2.0]

           Ryan Davis declared that [RubyInline] 3.2.0 was ready. This is the
           Ruby analogue to Perl's Inline::C, allowing inline C and C++ in
           Ruby code.

     * [Net::SSH 0.5.0]

           After two months of refactoring, Jamis Buck released a new version
           of [Net::SSH] ("a pure-Ruby implementation of the SSH2 client
           protocol").

     * [RSS Parser 0.1.1]

           Kouhei Sutou released [RSS Parser] 0.1.1. API improvements mean
           that it is now easy to do operations like merging RSS feeds.

     * [One-Click Installer 1.8.2-14 RC10]

           Curt Hibbs announced a new release-candidate of the Windows Ruby
           One-Click Installer. The most important change is the inclusion of
           FreeRIDE 0.9.0.

     * [Multiplexer - linear non-blocking I/O]

           Mikael Brockman announced a library called [Multiplexer] which
           uses continuations to make non-blocking I/O easier to use. There
           were a number of replies to his announcement, pointing out that
           callcc is implemented in Ruby using threads, and that threads
           doing I/O end up using select.

     * [RDT 0.5.0]

           Chris Williams improved [RDT] (Ruby Development Tools), a set of
           Eclipse plugins that enable the use of Eclipse as a Ruby IDE. With
           this release comes integrated support for Test::Unit (red/green
           bars).

     * [Ruwiki 0.9.0]

           Austin Ziegler added new features including anti-spam measures to
           [Ruwiki], a Wiki server written in Ruby. Ruwiki has features like
           project namespaces not found in other Wiki systems, and RubyForge
           will be modified in a few weeks to provide Ruwiki support for the
           projects hosted there.

     * [cros-0.1 prerelease]

           Simon Strandgaard made an early release of cros: an "Operator
           Stacking" system. It provides a framework whereby a web browser
           can be used to fill in a grid of "operators" which manipulate data
           (e.g. graphics, sound, text) and pass the result onto the next
           operator. It appears to be a tool for graphically creating 'demos'
           for fun.

     * [FreeRIDE 0.9.0]

           Curt Hibbs announced a new major version of the Ruby IDE
           [FreeRIDE], with many bugfixes for the Windows platform.

Threads
-------

   Interesting threads this week included:

  [Ruby and the XBox]
  -------------------

   Phlip noticed that the programming language [Lua] is often used in
   computer games (for example, World of Warcraft) and wondered how
   well-suited Ruby would be to this arena. Niklas Frykholm pointed out some
   of the advantages of Lua - it has a small, simple implementation and
   standard library, incremental garbage collection, and no built-in object
   model (making it easy to map to C++ objects).

  [Marshal vs. YAML vs. something else], [YAML Problems Clearinghouse]
  [YAML question (hi _why!)]
  --------------------------------------------------------------------

   During a discussion on [Instiki], Francis Hwang asked what formats people
   prefer for representing objects on disk. YAML, XML and Ruby's Marshal were
   all discussed. The thread became focused on some areas for improvement in
   YAML, for example the way default values are supported.

  [[SUMMARY] Object Browser (#8)], [[SOLUTION] Object Browser (#8)]
  -----------------------------------------------------------------

   Solutions to last week's Ruby Quiz (creating a program to graphically
   browse Ruby objects) were discussed.

  [[QUIZ] Banned Words (#9)], [[QUIZ: Solution] Banned Words (#9)]
  ----------------------------------------------------------------

   Fredrik Jagenheim came up with this week's Ruby Quiz:

  "At work we discovered that they installed a spam filter that throws away
  e-mail that it considers spam. It doesn't use any Bayes Filter, it simply
  checks for certain words that it considers 'banned'. One word we discovered
  was 'sex', which is a Swedish word for the number six. So the phrase
  "I'll be home at six o'clock." will be classified as spam, thrown away and
  never seen.
   
  The Ruby Quiz I propose is to figure out which words are banned. Since the
  filter is a black box, we can only find out which words they are by sending
  email through it. The real problem is to find out how to do it with as *few*
  emails as possible."

  [How to avoid inheriting Object?]
  ---------------------------------

   itsme213 asked how he could create an object that doesn't inherit from
   Object. He wanted to start with a "blank slate" without all the methods
   instances of Object have. Matz suggested that he still inherit from Object
   but undefine methods apart from some essential ones like __id__ and
   __send__.

   Mauricio Fernández pointed out that [evil.rb] provides objects that don't
   inherit from Object. evil.rb is a library that uses Ruby/DL to provide
   access to internal Ruby interpreter data structures from Ruby. In this way
   it lets the programmer do "evil" things that often break Ruby in
   surprising ways.

  [ruby-dev summary 24741-24958]
  ------------------------------

   Kazuo Saito posted a summary of the Japanese ruby-dev list for the past
   week. The [summary index] is also available. URABE, Syohei created a list of
   maintainers/developers of the various libraries distributed with Ruby. This
   will be a very useful resource.