From: timsuth@... (Tim Sutherland) Date: 2005-01-05T14:51:34+09:00 Subject: Ruby Weekly News 27th December 2004 - 2nd January 2005 http://www.rubygarden.org/ruby?RubyNews/2004-12-27 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 (TimSuth). 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 turning back." Threads ------- 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: IRC: #ruby2c rubyforge: http://rubyforge.org/projects/ruby2c/ Propaganda: http://www.zenspider.com/~ryand/Ruby2C.pdf" [Bare-bones Ruby] [2] [3] ------------------------- 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 Ruby: "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 interfaces?" 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://metaeditor.sourceforge.net/embed/ and http://www.rubygarden.org/ruby?EmbedRuby. Robert Klemme added http://www.rubycentral.com/book/ext_ruby.html#S6. Edgardo Hames replied to (4) with a link describing modules/mix-ins in Ruby. [Ruby Philosophy] ----------------- 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 question." 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 Smalltalk." [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. [Merry Christmas] ----------------- 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 sister. New Releases ------------ * [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 single executable. * [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 Ruby 1.8.2. * [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. * [rubytorrent] William Morgan released a Ruby BitTorrent client.