Ruby Weekly News 30th May - 5th June 2005

Discussion in 'Ruby' started by Tim Sutherland, Jun 7, 2005.


    Ruby Weekly News 30th May - 5th June 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.

    Articles and Announcements

    RubyGems and the FreeBSD ports tree

    Jonathan Weiss is working on integrating RubyGems with the FreeBSD
    ports tree. He requests testers.

    Stats comp.lang.ruby

    Balwinder Singh Dheeman posted the weekly statistics for
    comp.lang.ruby. 70% of the posts came from the ruby-talk mailing list
    (which is bi-mirrored with the newsgroup).

    Tom Copeland followed up with a [graph] showing the number of users
    added to [RubyForge] each month.

    Google Summer of Code update

    David A. Black announced that "Unfortunately, it's official that the
    Google Summer of Code program is not accepting any more sponsoring
    organizations, so Ruby Central will not be able to serve in that

    See also the threads [Google pays students to develop open source]
    and [Google Summer of Code: status of Ruby Central].

    As Phil Tomson noted, Google publically announced the program and
    opened the application process on the 31st of May. The deadline for
    applications was the next day: June 1st.

    Possible training classes for Ruby programming and for Ruby on Rails

    Curt Hibbs: "Later this year, there could be a commercial offering of
    training classes for both the Ruby Programming Language and also for
    Ruby on Rails. I'm not directly involved with this, but I's like to do
    what ever I can to help make sure it happens."

    He requests those interested to contact him via his blog so he can
    guage the level of support.

    Gambit Codefest

    Greg Brown (with James Edward Gray II) announced "We are currently in
    Day 2 of a 9 day codefest to complete the Gambit gaming library which
    won a RubyCentral grant this year. I created a [livejournal account]
    to keep everyone up to date on the latest news from the codefest."

    He also linked to the CVS repository, "which is being updated just as
    fast as we can write the stuff."

    RubyGems HackFest Weekend #1 is complete!

    In other fest've news, Ryan Davis announced that the first weekend of
    the RubyGems HackFest was complete.

    "We started our RubyGems Hackfest Saturday, with a turnout of 6
    people. Five were regulars from Seattle.rb, and we even got someone up
    from Portland!"

    A "package listing command extension" was added, and .gemrc now
    supports .cvsrc-style command option specifications. RubyGems was
    changed to no longer require Date and lots of unit tests were written.
    require_gem is around two times faster than before.

    Ruby User Groups

    Omaha Ruby User's Group

    Blaine Buxton announced the second meeting of the Omaha Ruby User's
    Group, held on June 6 2005 at the Eagle Run Shopping Center.

    June 5 Toronto Ruby User Group meeting

    Mike Stok foretold that the Toronto Ruby User Group would have their
    monthly meeting on Sunday June 5th at Sushi Rock.

    Austin.rb - aka ARCTAN

    Jim Freeze greeted "fellow Austinites and Texans", announcing ARCTAN's
    weekly Ruby lunch at Chez Zee. It is "this Thursday at 11:20".

    Reminder: Hamburg.rb meeting tonight

    Stephan Kämper reminded those in Hamburg, Germany to come to the
    Hamburg.rb meeting on June 1st.

    Quote of the Week

    The thread [Ruby-VTK-0.2.0]:

    Seiya Nishizawa:
    | Ruby-VTK is a ruby wrapper of VTK (The Visualization
    | Tollkit:

    Brian Schröder:
    | Very good thing and the timing is perfekt! I'll go
    | ahead and investigate it right away. How did you know I'd need this
    | today ;)

    | Yes, I can use telepathy to get your thinking :)
    | I developed it, but I don't test it much. You have to sacrifice
    | yourself for debuging. Thank you!!

    Josef `Jupp' SCHUGT noticed the "Tollkit", and gave dictionary definitions
    of "toll and "tool":
    | I send this message to the list because not only Seiya Nishizawa may
    | benefit from this:" ... "As a rule of thumb, two identical vowels
    | mean a long vovel - this is pretty much the same in Japanese.

    Lyle Johnson:
    | What is a "vovel"?

    Mark Probert:
    | I think that it is a little creature, much like a shrew,
    | that spends much of its time seaching for food, its favourite being
    | worms, that spend much of their lives a little underground.
    | The vovel hunts for its prey by placing its long flat nose nose in
    | into the ground and then flicking back strongly with its head."

    Joel VanderWerf:
    | "Ok, I'm beginning to appreciate the lore of the
    | "vovel", but what is a "nose nose"?
    | Oh, well, as long as it "flicks like a vovel", it doesn't really
    | matter how the nose is implemented, does it?"

    Link of the Week

    by Steve Yen.

    It's a ("< 10%" completed) clone of Ruby on Rails, written in a mixture of
    client and server-side Javascript.

    Unlike Rails (and other web application frameworks) TrimJunction will be
    designed around "offline, occasionally connected databases". It will do as
    much on the client as possible and only synchronise with the server when
    it needs to.

    (Validation, for example, is done first on the client, and only on the
    server when you synchronise.)

    "The Junction project will be exploring this effect to see if lightweight
    disconnected web applications and re-synchronizing data on reconnect are

    Steve's blog at also contains a number of
    interesting ideas about Javascript.

    (Thanks to Martin DeMello for suggesting this link.)


    Interesting threads included ...

    Whiteout (#34)

    James Edward Gray II wrote this week's [Ruby Quiz].

    "Perl programmers have all the fun. They have an entire section of the
    CPAN devoted to their playing around. The ACME modules are all fun little
    toys that have interesting if rarely very useful effects."

    The quiz is to port ACME::Bleach to Ruby. It is used to translate programs
    into whitespace (with an initial require 'whitespace' line so that they
    are still executable).

    Package, a future replacement for setup.rb and mkmf.rb

    Christian Neukirchen started thinking about whether the Ruby build and
    install scripts mkmf.rb and setup.rb could be improved.

    "I have looked into how other languages install source and compile
    extensions, and the library I liked best so far is Python's distutils."

    An example distutils setup script:
    from distutils.core import setup

    setup (name = "Distutils",
    version = "0.1.1",
    description = "Python Module Distribution Utilities",
    author = "Greg Ward",
    author_email = "",
    url = "",

    packages = ['distutils', 'distutils.command'])

    Christian intends to write a Ruby equivalent of distutils, calling it

    "But now, I'll ask you: Are you satisfied with the way installing Ruby
    extensions and libraries works? Do you think there is a place for Package?
    Do you have further improvements or can provide alternative ideas?"

    Austin Ziegler noted that if Package was going to deal with binary
    extensions then it "absolutely *must* work perfectly well on Windows. It
    has to work better than setup.rb, and setup.rb works mostly well for that.
    Gems, much less so."

    Christian added, "Package will try to provide a more clean (no icky
    globals, for example) API for the things mkmf.rb does. I think I'll start
    with a recent mkmf.rb and refactor it heavily."

    ruby-dev summary 26128-26222

    Minero Aoki posted the latest English summary of the Japanese list

    It included the release of Ruby 1.8.3 preview1, issues with hashing
    Hashes, and a suggestion by WATANABE Hirofumi that ropt be bundled with
    Ruby and preferred over optparse.rb since the latter is too hard to use.

    The latter statement induced Aredridel to say that he thought it was
    actually the optparse library that had the easier API - "ropt looks more
    difficult, even if it is more succinct."

    Eric Hodel said that optparse requires too much typing for a program that
    only needs a few options, however `a slow loris with poison elbows' posted
    the following example to counter:

    require 'optparse'
    require 'ostruct'
    opt =
    p = {|p|
    p.on('-c C') {|o| opt.color = o}
    p.on('-i I', Integer) {|o| = o}

    puts "color is: #{opt.color} (#{opt.color.class})"
    puts "integer is: #{} (#{})"

    RubyScript2Exe and GUI toolkits

    Erik Veenstra began, "I know that some of you use RubyScript2Exe in
    combination with a GUI toolkit, like TK, FXRuby, WxRuby, RubyWebDialogs
    and others."

    "Since I can't test all combinations of RubyScript2Exe, OS-versions,
    Ruby-versions and toolkits, I need your help to build a list of success
    stories, failures and tweaks."

    There were several replies, including one from Jamey Cribbs; "I have used
    RubyScript2Exe in several FXRuby applications. The latest and biggest is
    an I.T. Infrastructure Management System, which is a FXRuby app going
    against an Oracle database. Using RubyScript2Exe, I can create one
    executable that is a little over 2MB in size."

    Calling a procedure with dinamyc name

    Marcelo Paniagua had the code table.client_id (arising from his use of the
    KirbyBase embedded database management system). How do you use such an
    interface when the fieldname is dynamic? (Stored in a String.)

    Francis Hwang enlightened:

    field = 'client_id'
    client_id = table.send field

    Building a business case for Ruby

    Joe Van Dyk attempted to introduced Ruby at work and was told

    | XXXX already has Product Standards for Python and Perl as
    | Scripting/Dynamic languages. And for Java as a full programming
    | language.
    | Ruby offer nothing significant not found in these XXXXX Standard
    | languages, and an addition language just adds variation.

    Joe: "Boo, I say! Boo!"

    What could Joe say to convince them to allow Ruby?

    There were replies giving some of the advantages (and differences) of Ruby
    relative to Python and Perl, but also some discussion on the benefits of
    additional languages in general.

    James Britt wrote:
    | Boo, perhaps, but try turning this around. Suppose Ruby, not Python,
    | were already on The List, and someone comes to you to make a case for
    | adding Python.
    | What do want to hear to convince you? What are you tossing back when
    | told of Zope, or Twister, or the extensive Python XML tools, or the
    | amount of documentation, or how it's a great beginners' language, or
    | whatever Pythonistas think makes a compelling case?

    To Joe's request for "Examples of existing Ruby usages in large scale
    applications", Ben Giddings pointed to the [RealWorldRuby] page on the
    RubyGarden wiki, and added "I think the NASA and NOAA stuff are some of
    the best sources for real world, large-scale stuff. I'm sure Ara will tell
    you more about what he's doing."

    Lothar Scholz: "You can add BMW here. Sorry if i tell you more i must
    shoot you."

    Dan Fitzpatrick:
    | We build large applications for "huge companies that [fly] really big
    | expensive things". We switched to Ruby in January of this year and have
    | not looked back since. Ruby is an excellent platform for large-scale
    | application development in my opinion because of the excellent namespace
    | system, speed of development, code maintainability, and speed of
    | execution. Our Ruby system currently services over 200 airlines (all 10
    | of the top 10), 800 aircraft part manufacturers and repair facilities,
    | and more than a thousand part suppliers. We deliver data on 350,000,000
    | inventory items and 2 million repair capabilities to 8,000 users.

    The last word goes to Ben, who said
    | More tools can be a better thing (until your toolbelt gets so heavy
    | that it pulls your pants down and starts showing butt-crack).

    Interesting discovery...

    Austin Ziegler ran Shugo Maeda's new profiler over PDF::Writer with a
    sample PDF, and found that about 3% of the time was in Kernel.respond_to?;
    there were twenty million such calls. Almost all of these were arising
    from Marshal.dump.

    Austin's guessed that Marshal was using respond_to? to check whether
    custom dumpers were defined.

    This led people to discuss two methods for checking whether a method
    exists; respond_to? or calling it and rescuing NoMethodError.

    It was felt that whichever performed better would depend on whether the
    method `usually existed' or `usually did not exist'.

    Eric Hodel said that in any case, the NoMethodError technique was

    class C
    def a; Object.no_such_method; end

    The NoMethodError would falsely conclude that C#a does not exist.

    (On the other hand, respond_to? can also be incorrect because of

    ternary operator confusion

    Belorion didn't understand why 'true ? a.push 1 : a.push 2'
    was a syntax error.

    Phrogz said that 'true ? a.push(1) : a.push(2)' works.

    This led to a discussion over the merits of Ruby having optional
    parentheses for method calls.

    Eric Mahurin thought that the `(' and `)' should be mandatory. "Why do
    people feel the need to drop the ()? I didn't like it in Perl and I don't
    like it in Ruby. Do people just want something that is kind of like shell

    ES said that "uniform access" was one reason - it allows you to write instead of or foo.get_bar() - without alluding to
    whether bar points `directly' to an instance variable or does something

    Charles Hixson said that this could have been achieved by making the
    parentheses optional only when there were zero parameters.

    Austin Ziegler gave another reason "I use it in PDF::Writer because it
    makes certain parts feel more like a DSL (domain specific language) than a

    Hal Fulton said "Personally I like poetry mode in many cases (not all)."
    He asked if Eric would want to have to write code like the following:


    loop() { puts "I'm an infinite loop!" }


    Ruby in C#

    PD: "I am currently working on a project in C# which requires the use of a
    Ruby interpreter. I also need to extend Ruby to interact with some methods
    built into the host application. So I want to know if all this is possible
    and if so, how would I go about doing it?"

    Between them, Mark Hubbart and James Britt listed the options, two of
    which were bridges between the Ruby and .NET worlds and one which is an
    experimental Ruby interpreter written in C#.

    Ruby/Odeum vs. Lucene: Part 2

    Zed A. Shaw updated his performance analysis of full-text search engines,
    comparing Ruby/Odeum and Lucene.

    "The gist of the analysis is that Ruby/Odeum is slower than Lucene, but
    uses a lot less memory."

    New Releases

    eric3 3.7.0

    Detlev Offenbach enhanced Eric3, an IDE for Ruby and Python.

    New features include a Ruby class browser, support for generating KDE
    UIs, a debugger and syntax highlighting for Ruby.

    AllInOneRuby 0.2.3

    Erik Veenstra released AllInOneRuby 0.2.3. This tool is a
    "just-in-time and temporary installation of Ruby" - a compressed
    executable for Windows, Linux or MacOS X that includes the Ruby
    interpreter and runtime libraries.

    RubyScript2Exe 0.3.5

    Erik Veenstra also updated a related project - RubyScript2Exe. This
    one transforms a Ruby application into a standalone, compressed
    executable for Windows, Linux or MacOS X that bundles your code
    alongside the Ruby interpreter and runtime libraries.

    RubyWebDialogs 0.2.0

    Erik Veenstra put out the latest version of RubyWebDialogs, a way of
    implementing a "graphical user interface" using an API that underneath
    uses HTML and an internal web server. Your web browser is then the
    frontend for the application.

    ShortURL 0.2.0

    Vincent Foley slipped out ShortURL 0.2.0 then 0.3.0. ShortURL is a
    library that uses the URL shortening services rubyurl and tinyurl.

    See also his initial announcement [TinyUrl class] and follow-up
    [ShortURL 0.0.1].

    newsstats 1.1.2 (pre-release) is released

    Dr Balwinder S Dheeman released a pre-release (!) of newsstats, a tool
    for computing weekly statistics for a newsgroup.

    librend 0.0.1

    Ilmari Heikkinen introduced "an OpenGL scenegraph engine written
    mostly in Ruby with some critical sections inlined in C."

    "Librend is a simple scenegraph engine on top of OpenGL, SDL, Imlib2,
    GLEW and Cairo that aims to make it quick and easy to write apps that
    mix 2D, 3D and vector graphics."

    There was a lot of interest in the project.


    Ara.T.Howard released the initial version of parseargs, "a library
    that faciltates the parsing of arguments and keywords from method
    paramters, setting of default values, validation, contraints via class
    based or duck based typing, and coercion/convincing to type/ducktype
    when possible."

    Observing the version number, Hal Fulton quipped "Hmm, I think I used
    a prior version of it... ;)"

    Joel VanderWerf:
    | Was that, or ;)
    | Ruby folks are so conservative in version numbering that it
    | wouldn't be surprising to see negative versions...
    | "Your library looks nice, but I'm not going to use use it until
    | it goes positive."

    RubyLexer 0.6.2

    Caleb Clausen announced version 0.6.2 of RubyLexer, "a hyper-correct
    stand-alone lexer of Ruby in Ruby."

    Bugs were fixed and error handling improved. Input can now come from a
    String. Performance enhancements were also added.


    dave released a dRb-based application for KDE that allows you to share
    YAML data over a secure network. He plans to use the experience of
    creating this application to write a QtRuby tutorial.


    Seiya Nishizawa issued Ruby-VTK-0.2.0, a wrapper for the VTK
    Visualization Toolkit, "an open source, freely available software
    system for 3D computer graphics, image processing, and visualization."

    See also Quote of the Week.

    Nitro + Og 0.18.1

    George Moschovitis released new versions of Nitro and Og. Nitro is a
    web application framework, while Og is an object-relational mapper.

    Support for WEBrick was improved. Thread safe mode was "added again"
    in Og. Error reporting was improved and template overloading added.
    Plus more...

    Ruby/GLEW 0.0.1

    Ilmari Heikkinen announced the first public release of Ruby/GLEW with
    a "yah!"

    "Ruby/GLEW provides bindings for the OpenGL Extension Wrangler
    Library", "making it possible to use OpenGL extensions like shaders
    and rectangular textures from Ruby."

    Imlib2-Ruby 0.5.1

    Paul Duncan fixed a memory leak and improved error reporting in

    "Imlib2 is a fast image rendering library used by the Enlightenment
    window manager and the Feh image viewer".

    Rubilicious 0.1.5

    Paul also released the latest bindings for the social bookmarking site, Rubilicious.

    Numerous bugs were fixed, plus support was added for tag bundles and
    custom HTTP User-Agent strings.

    Elsewhere he wrote "You have no idea how confusing it was on my poor
    fingers and brain to release one program with a version of 0.5.1, then
    immediately release a different program with a version of 0.1.5."
    Tim Sutherland, Jun 7, 2005
    1. Advertisements

  2. Tim Sutherland <> wrote:
    > Josef `Jupp' SCHUGT noticed the "Tollkit", and gave dictionary definitions
    > of "toll and "tool":
    > | I send this message to the list because not only Seiya Nishizawa may
    > | benefit from this:" ... "As a rule of thumb, two identical vowels
    > | mean a long vovel - this is pretty much the same in Japanese.
    > Lyle Johnson:
    > | What is a "vovel"?
    > Mark Probert:
    > | I think that it is a little creature, much like a shrew,
    > | that spends much of its time seaching for food, its favourite being
    > | worms, that spend much of their lives a little underground.
    > | The vovel hunts for its prey by placing its long flat nose nose in
    > | into the ground and then flicking back strongly with its head."
    > Joel VanderWerf:
    > | "Ok, I'm beginning to appreciate the lore of the
    > | "vovel", but what is a "nose nose"?
    > |
    > | Oh, well, as long as it "flicks like a vovel", it doesn't really
    > | matter how the nose is implemented, does it?"

    You missed the best bit!

    Hal Fulton:
    | Two identical noses in a row typically indicate a single long
    | nose.

    Martin DeMello, Jun 7, 2005
    1. Advertisements

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Tim Sutherland
    Feb 1, 2005
  2. Tim Sutherland

    Ruby Weekly News 6th - 12th June 2005

    Tim Sutherland, Jun 14, 2005, in forum: Ruby
    Tim Sutherland
    Jun 14, 2005
  3. Tim Sutherland

    Ruby Weekly News 13th - 19th June 2005

    Tim Sutherland, Jun 21, 2005, in forum: Ruby
    Tim Sutherland
    Jun 21, 2005
  4. Tim Sutherland
    Christophe Grandsire
    Sep 12, 2005
  5. Tim Sutherland

    Ruby Weekly News 24th - 30th October 2005

    Tim Sutherland, Nov 1, 2005, in forum: Ruby
    Tim Sutherland
    Nov 1, 2005
  6. Tim Sutherland
    Dec 13, 2005
  7. Tim Sutherland
    Tim Sutherland
    Feb 7, 2006
  8. Tim Sutherland

    Ruby Weekly News 5th - 11th June 2006

    Tim Sutherland, Jun 14, 2006, in forum: Ruby
    Tim Sutherland
    Jun 14, 2006