Ruby Weekly News 24th - 30th October 2005

Discussion in 'Ruby' started by Tim Sutherland, Nov 1, 2005.

  1. http://www.rubyweeklynews.org/20051030.html

    Ruby Weekly News 24th - 30th October 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, with contributions from Christophe Grandsire.

    [Contribute to the next newsletter.]

    Articles and Announcements
    ==========================

    * Are there any lecturers or professionals...
    ---------------------------------------------

    Daniel Lewis asked if any "lecturers or professionals" were available
    to give a presentation on Ruby, or on Rails, to the Brookes Computing
    Society in Oxford, England.

    * Monitoring network traffic with Ruby and Pcap
    -----------------------------------------------

    Daniel Berger spotted an article [Monitoring network traffic with Ruby
    and Pcap] on Ars Technica, written by Ryan Paul.

    * OSDC (Melbourne, Australia) open for registrations
    ----------------------------------------------------

    Australia's second Open Source Developers Conference (held in
    Melbourne) is now accepting registrations. (Australia is an island to
    the west of New Zealand.)

    "The conference is running from Monday 5th - Wednesday 7th December
    2005."

    User Group News
    ===============

    * New Haven Ruby Brigade Formed!
    --------------------------------

    The University of New Haven Ruby Brigade have voted to disband :-(
    and re-form as the New Haven Ruby Brigade :), for everyone in Southern
    Connecticut.

    See also [UNH.rb may soon become NewHaven.rb].

    * Beer & Pizza SIG; 8 pm, 10/26, San Francisco, CA, USA
    -------------------------------------------------------

    Rich Morin announced another Beer & Pizza meeting in the San Francisco
    Bay Area - "No program; just a way for folks to get together and chat
    about Ruby, Rails, etc."

    The meeting is (haha, was) on Wednesday, October 26th 2005.

    * Gauteng.rb meetup tonight (Tuesday 25 October)
    ------------------------------------------------

    Luke Randall foretold the first meeting of Gauteng.rb, in Sandton
    City, South Africa.

    * grandrapids.rb November Meeting and Preparing for December
    ------------------------------------------------------------

    November and December meetings for the grandrapids.rb group in Grand
    Rapids, Michigan were covered off by zdennis.

    * VanRuby Meetup Tonight & Canada on Rails Conference Announcement !
    --------------------------------------------------------------------

    Nathaniel Brown announced the next VanRuby meeting (Vancouver), as
    well as "Canada on Rails" on April 13th and 14th 2006; the first
    Canadian conference about Ruby on Rails.

    Quote of the Week
    =================

    * Rent-a-Matz
    -------------

    |> Hmm, how many of you have had Matz in your car? :D
    |> Myself, Eric, some others...

    |Does a rental count?

    Where was rental Matz available? I'd like one.

    matz.
    Threads
    =======

    Ruby Weekly News 17th - 23rd October 2005
    -----------------------------------------

    Last week we cheered James Edward Gray II for reaching a year's worth of
    weeks of Ruby Quiz.

    Curt Hibbs said that it was well deserved, and added that such recognition
    is important, as it "provides people like James with a little extra
    motivation to keep it up."

    | So, the next time you're using some open source ruby project or
    | benefiting from some community effort and you're thinking "this is
    | really nice", don't hesitate to drop a note to the author or to
    | ruby-talk saying thanks. It really does make a difference.

    how private is private in ruby?
    -------------------------------

    Peter Ertl wondered why it was possible to 'send' a private method:

    ####
    class MyUltraSecretKeystore
    private
    def key
    return "nobody-should-read-this-ever"
    end
    end

    ks = MyUltraSecretKeystore.new

    puts ks.send:)key) # -> "nobody-should-read-this-ever"
    ####

    James Edward Gray II indicated that although tools like send could indeed
    be dangerous because of the ways they bypass method scope, it was a
    trade-off with their sheer power.

    Edward Faulkner added that Peter's choice of example indicated a
    misunderstanding of the meaning of "private" :

    | "private" is not intended as a security measure. It's an encapsulation
    | technique. You'll find this is generally true in other languages as
    | well. You can certainly subvert "private" in C++.

    an explanation that Hal illustrated with a very good (and applauded)
    analogy:

    | I made an analogy the other day with the movie Apollo 13. Remember when
    | Bacon's character had been awake for many hours and was, as he said, "a
    | little punchy"? There was a toggle switch which would separate the two
    | modules (and thus doom to death the other two astronauts who were
    | spending their time in the other one). He taped a piece of paper over it
    | saying "NO."
    |
    | That's how "private" works.

    Jeremy Kemper mentioned that currently in Ruby 1.9 one cannot send private
    methods.

    But in the end privacy in Ruby can never be 100% ensured since as David A.
    Black indicated, one can always reopen the class itself and redeclare the
    private methods public.

    What's your Ruby Number? (self.to_i)
    ------------------------------------

    Hal Fulton offered a test to determine your Ruby number "in the spirit of
    the old "purity test" and the "nerdity test" that was derived therefrom."

    The instructions are "cut, paste, run. Or just cut and run."

    Hal suggested that Jim Freeze should get extra points for having a last
    name the same as a method in Ruby's core library, to which David A. Black
    generously offered:

    | We doubled our number of core-method-named people at RubyConf this year,
    | thanks to the presence of Adam Keys as well as Jim Freeze.
    |
    | I'm still holding out for Matt Tainted? or Joe Instance_variable_get.
    | And if anyone legally changes his or her last name to a core method, he
    | or she will be admitted free of charge.

    Ezra Zygmuntowicz:

    | Hopefully we will never have a method called zygmuntowicz ;-) But I
    | thought =~ was pronounced "zygmuntowicz"! ...

    Joel VanderWerf: "That's it. I'm legally changing my name to <=>.
    Sincerely, Mr. Spaceship."

    _why:

    | I think JEGII should keep his score cause he hacked it. David Black
    | deserves more points, though. I ended up with 4, but only because I knew
    | that I couldn't take the test in good conscience without adding a few
    | questions that would severely dock points for unsavory traits.
    |
    | I also filled it out for Minero Aoki, as a kind of fantasy quest. And
    | that really got me excited about starting an RPG based around the
    | premise of being Minero Aoki. Or maybe just a flight simulator.

    Ruby's GC
    ---------

    Jeremy Tregunna asked for a technical description of Ruby's current
    garbage collector.

    Eric Hodel said that the short answer is "a conservative mark and sweep
    garbage collector", and Matz gave the longer one:

    | conservative
    |
    | we use system stack and CPU registers for tracing root as well as
    | usual language roots (global/local variables etc.). jmpbuf is used
    | to access registers.
    |
    | mark and sweep
    |
    | simple mark and sweep, but uses Knuth's algorithm to avoid crash for
    | deep recursion.

    Gabriele Renzi asked about the `generational' GC that he recalled was
    being worked on - "are there some news or this simply never happened and
    I'm crazy?"

    Matz said that a generational GC had been implemented, but it had failed
    to perform better than the current collector. He will try again after YARV
    is merged.

    TumbleDRYer (#53)
    -----------------

    Hugh Sasse created this week's Ruby Quiz. The task is to write a program
    which takes repetitive input and creates a Ruby program that generates the
    input, without the repetition. It's all about DRY: Don't Repeat Yourself.

    "This quiz is about writing a program which we'll call TumbleDRYer, which,
    given repetitive input, will create ruby code to generate that input, such
    that the generating program has much less repetition in it."

    Cleaner syntax for .map (is there already a way, or ruby2 idea?)
    ----------------------------------------------------------------

    Ron M found himself writing code like the following all the time:

    people.map { |person| person.email_addr }

    This is pretty short already, but could we make it even shorter (and less
    repetitive) by adding syntax like people[*].email_addr ?

    The syntax could be extended to support nested arrays, so that
    departments[*].people[*].email_addr would be equivalent to today's

    departments.map { |dept|
    dept.people.map { |person| person.email_addr }
    }

    Trans said that Facets supports something like this already with
    people.every.email_addr, or people.%.email_addr.

    What's wrong with just using map?, asked David A. Black.

    Dave Burt argued that it's too verbose for simple cases, offering the
    example of

    result = array.map { |element| element.transform }

    where the word element is written twice, compared to Groovy, where
    implicit parameters enable

    result = array.map { it.transform() }


    David A. Black came back with a new thread, ["Readability" inflation] in
    which he pondered the suggestions for changing Ruby's syntax that keep
    popping up.

    | I think what's happening is that people who've used Ruby for a while get
    | used to it, and then they sort of shift their readability threshold. In
    | other words, if you've seen this:
    |
    | a.map {|b| b.meth }
    |
    | for several years, then even though it looked beautiful and concise and
    | transparent to you at first, it will start to look verbose and
    | syntactically inefficient. So then you might want to have:
    |
    | a.every.meth {|b| (or implicit var, or whatever) }

    ...

    | So I think there's a kind of readability inflation going on: people who
    | are acclimatized to Ruby start feeling comfortable about going to the
    | "next" level of line-noise and/or compactness.
    |
    | I'd like to sound a note of caution about this. I think it has the
    | potential to disserve Ruby's interests, by moving the language away from
    | the thing that has been proven to be so attractive.

    James Britt had a couple of theories. The first was that early users of
    Ruby were "language geeks" already, who were accustomed to a wide range of
    syntaxes. The second theory is that "Ruby is a "victim" of its own
    success" - users' expectations are raised because it is good for creating
    DSLs (Domain-Specific Languages).

    Several people said they didn't find the { |foo| ... } syntax that great
    when they started with Ruby anyway.

    The thread swung back to the "redundant block argument" topic of the
    original thread, with suggestions like
    playlist.sort_by :track_length
    as an alternative to
    playlist.sort_by { |e| e.track_length }

    Brian Schröder proposed that a well-named argument can make the code
    easier to read. Compare for example
    playlist.sort_by :length
    with
    playlist.sort_by { |track| track.length }

    This can be particularly important with a dynamically typed language
    (perhaps more precisely, "latently-typed") like Ruby, where you don't have
    type declarations in your code telling you what sort of objects you have.
    Your editor can attest that this extra bit of verbosity has proven
    invaluable when it comes to maintaining his own code - especially in
    keeping track of the shape of his data-structures. (For example, that a
    playlist is made up of tracks.)

    New Releases
    ============

    priority-queue 0.1.2
    --------------------

    Brian Schröder polished'n'released his priority queue implementation,
    containing both a pure-Ruby version and a C extension.

    FuseFS-0.5
    ----------

    "Lo, another travesty was visited upon the ruby-talk community ... and
    this one was named ... FuseFS 0.5!", trumpeted Greg Millam.

    FuseFS allows you to define filesystems in Ruby, for example the
    railsfs.rb filesystem which exposes your ActiveRecord objects as files
    containing YAML data.

    Changes were made to update the library to FUSE 2.4, as well as adding the
    ability for filesystems to specify the sizes of their virtual files, and a
    lower-level interface to FUSE (useful for streaming).

    FuseFS is Linux only, for now.

    RubyPhone 0.1 released.
    -----------------------

    Gregarican introduced RubyPhone, which allows a "TSAPI-compliant PBX
    system to join a CTI environment". Mkay.

    Rails 1.0 Release Candidate 3 (0.14.2): A bunch of little things
    ----------------------------------------------------------------

    David Heinemeier Hansson announced the third release candidate for Rails
    1.0, fixing a memory leak with render_component and other issues.

    Instant Rails 1.0 preview3 Released
    -----------------------------------

    Curt Hibbs posted preview3 of Instant Rails 1.0, a "one-stop Rails runtime
    solution containing Ruby, Rails, Apache, and MySQL, all preconfigured and
    ready to run." (Currently Windows-only.)

    Several bugs were fixed and the components were upgraded (including Rails
    to 1.0 preview3.)

    Nitro Spark 0.6.0
    -----------------

    George Moschovitis happily announced a new version of Nitro Spark, a wiki
    system powered by the Nitro web application framework.

    Facets 2005-10-30
    -----------------

    Trans announced the Halloween version of "The Proverbial Zoo-of-More for
    Ruby".

    "Ruby Facets is a cornicopia of extension methods and module/class
    additions for the Ruby programming language."

    rttool-1.0.0
    ------------

    rubikitch released version 1.0.0 of rttool, a program for converting files
    in the RT human-readable table format into HTML and plain-text.

    rttool-1.0.1 was later announced.

    Nitro + Og 0.24.0, Annotations, KirbyBase, SCGI, Og Evolution, Gen, Dynamic
    ---------------------------------------------------------------------------
    CSS...
    ------

    George Moschovitis released new version of Og and Nitro, the former being
    an object-relational mapper library, and the latter a web application
    framework.

    A number of significant features were added.

    gdiff / gpatch 0.0.1 released
    -----------------------------

    Brian Schröder posted gdiff / gpatch version 0.0.1 - pure-Ruby versions of
    the Generic Diff binary-diff format.

    See also [Ruby Quiz for building up Ruby?], which proposed this task as a
    Ruby Quiz, as it will help RubyGems, which has a problem with the index
    file being too large.
     
    Tim Sutherland, Nov 1, 2005
    #1
    1. Advertising

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. Jamis Buck
    Replies:
    6
    Views:
    121
    Simon Strandgaard
    Oct 27, 2004
  2. Tim Sutherland
    Replies:
    4
    Views:
    102
    Trans
    Feb 1, 2005
  3. Tim Sutherland

    Ruby Weekly News 18th - 24th April 2005

    Tim Sutherland, Apr 26, 2005, in forum: Ruby
    Replies:
    1
    Views:
    107
    Ryan Davis
    Apr 28, 2005
  4. Tim Sutherland
    Replies:
    1
    Views:
    191
    Rob .
    May 12, 2005
  5. Tim Sutherland

    Ruby Weekly News 30th May - 5th June 2005

    Tim Sutherland, Jun 7, 2005, in forum: Ruby
    Replies:
    1
    Views:
    162
    Martin DeMello
    Jun 7, 2005
Loading...

Share This Page