12th - 18th December 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 Tim Sutherland.

User Group News

Threads

stable sort_by?

Patrick Gundlach wanted a “stable” sort_by method.

(Jim Weirich: “A stable sort will leave items in the original order if their keys are equal.”)

Robert Klemme gave a technique for doing a stable sort with Ruby’s built in Enumerable#sort_by method.

Simply change enum.sort_by {|x| calculate_key(x) } to

i=0
enum.sort_by { |x| [ calculate_key(x), i+=1 ] } 

Math::PI?

Daniel Schüle asked where to find Math::PI, saying “am I missing some module with math constants or are the users .. me in this case :) supposed to define them on our own?”

Ara T. Howard replied: Math::PI.

Is there any chemistry-related ruby application?

Hanjo Kim, working in the “cheminformatics” field, asked if Ruby has any applications related to Chemistry.

Bil Kleb thought that the SciRuby might have something, and Tanaka Masahiro said there is a “ChemRuby” library that is being funded and developed.

RRobots (#59)

Simon Kroeger came up with this week’s Ruby Quiz (which turned into a two-week special):

RRobots, Inc. is always looking for new talented pilots. Recently they lost so many skilled employees in a show battle against one of their competitors that they decided to try something new.

Write an AI for a robot that competes against others on a battlefield. A competition between submitted AIs then takes place on 27th December 2005. (Make sure you submit your entry before then.)

ruby-dev summary 27761-28026

Koichi Sasada posted the latest summary of the Japanese list ruby-dev, used to co-ordinate development of Ruby itself. (The equivalent English list is ruby-core.)

It includes a note of denial-of-service (DoS) vunerabilities in WEBRick and Ruby’s bundled XML-RPC library (found by Akira Tanaka). “Problems were fixed on ruby 1.8.3, so it is recommended for all to use ruby 1.8.3 or later. There are also patches for ruby 1.8.2.”

Ruby 1.8.4 preview2 was released.

The summary also covered:
  • Complex<=> issues.
  • rb_funcall2 calling protected methods (for C extensions).
  • The addition of a Ruby/Tk example.
  • Improved super behaviour in a particular case.
  • A request for a GC method to cause the garbage collector to be run “always”. (For debugging.)
  • A suggestion for adding time literals like 19850412T101530.

String.to_sym?

robertj asked if Ruby had a String#to_sym method for getting symbols from strings.

Nobu: String#to_sym (added in Ruby 1.8 as an alias for #intern.)

Purpose of Ruby Talk

Gary Allum asked what is the “purpose” of the ruby-talk mailing list (and its bi-directional usenet mirror comp.lang.ruby) – i.e. which topics is it acceptable to discuss?

James Britt said that questions specific to particular applications or libraries are best sent to their specific mailing lists, where available. (In particular, Rails questions should go to the Rails list.)

Otherwise, it’s the right place for Ruby questions. (Daniel Cedilotte noted there is the ruby-core mailing list for development of the Ruby interpreter and standard libraries.)

Chad Perrin: “As far as I can tell, there’s no specific topic focus to ruby-talk—just some “anti topics” that get summarily directed elsewhere.”

Several people said that ruby-talk is a very friendly place, and requested that we all help keep it that way :-)

New Releases

Ruby SNMP 0.6.0

Dave Halliday following “tons” of feedback on the previous version, released Ruby SNMP 0.6.0, with several enhancements and fixes.

eric 3.8.1

Bugs were fixed in Detlev Offenbach’s Eric3, a Ruby and Python IDE.

ruby queue : rq-2.3.1

Ara.T.Howard released ruby queue 2.3.1, “a tool used to create instant linux clusters by managing sqlite databases as nfs mounted priority work queues.”

Rote 0.3.0 (doc/web)

Ross Bamford released Rote 0.3.0, a Ruby templating / documentation builder.

Instant Rails 1.0 preview6

Curt Hibbs released Instant Rails 1.0 preview6.

Instant Rails is a one-stop Rails runtime solution containing Ruby, Rails, Apache, and MySQL, all preconfigured and ready to run. No installer, you simply drop it into the directory of your choice and run it. It does not modify your system environment. This release of Instant Rails for Windows, but there are plans for ports to Linux, BSD, and OSX.

Rant 0.5.4

Stefan Lang updated the Rant build tool. A bug was fixed, compatibility for Ruby 1.8.3 added, plus a new method sys.write_to_binfile.