[#376274] Best Linux Distro for Ruby? — Nick Hird <boondox@...>

What are some of the better linux distro's for ruby development? I know

15 messages 2011/01/02

[#376329] Is singleton class of an object already created? — Samnang Chhun <samnang.chhun@...>

I would like to know is there any ways to check is singleton class of an

12 messages 2011/01/04

[#376333] Threading in ruby — "Vishnu I." <pathsny@...>

Hi

13 messages 2011/01/04
[#376335] Re: Threading in ruby — Robert Klemme <shortcutter@...> 2011/01/04

On Tue, Jan 4, 2011 at 8:41 AM, Vishnu I. <pathsny@gmail.com> wrote:

[#376339] ripl - an irb alternative - 0.3.0 released — ghorner <gabriel.horner@...>

ripl, a light modular alternative to irb, has reached 0.3.0. ripl

32 messages 2011/01/04

[#376382] Class Initialization? — Kedar Mhaswade <kedar.mhaswade@...>

I have a class and two class methods: self.encode and self.decode. The

14 messages 2011/01/05
[#376385] Re: Class Initialization? — Andrew Wagner <wagner.andrew@...> 2011/01/05

On Wed, Jan 5, 2011 at 9:33 AM, Kedar Mhaswade <kedar.mhaswade@gmail.com>wrote:

[#376388] Petition to add Metasploit Project as Ruby success story — Christian Kirsch <Christian_Kirsch@...7.com>

I noticed the Ruby success stories on the Ruby website. I would like to mak=

10 messages 2011/01/05

[#376453] Block variable - How is it read in English? — SW Engineer <abder.rahman.ali@...>

Following the "Ruby on Rails Tutorial", and under section "6.1.1

16 messages 2011/01/06

[#376574] Best way for Array#find+transform ? — "Jonas Pfenniger (zimbatm)" <jonas@...>

There is a pattern that I'm using quite regularly, but I'm not

17 messages 2011/01/08
[#376575] Re: Best way for Array#find+transform ? — Anurag Priyam <anurag08priyam@...> 2011/01/08

> I know I can come up with a new method on Array that would shorten this t=

[#376576] Re: Best way for Array#find+transform ? — Anurag Priyam <anurag08priyam@...> 2011/01/08

> paths.map{|path| File.join(path, filename)}.select{|name| File.exist?(path)}

[#376577] Re: Best way for Array#find+transform ? — "Jonas Pfenniger (zimbatm)" <jonas@...> 2011/01/09

2011/1/8 Anurag Priyam <anurag08priyam@gmail.com>:

[#376579] Re: Best way for Array#find+transform ? — David J. Hamilton <groups@...> 2011/01/09

Excerpts from Jonas Pfenniger (zimbatm)'s message of Sat Jan 08 16:05:05 -0800 2011:

[#376586] Re: Best way for Array#find+transform ? — "Jonas Pfenniger (zimbatm)" <jonas@...> 2011/01/09

2011/1/9 David J. Hamilton <groups@hjdivad.com>:

[#376606] Re: Best way for Array#find+transform ? — David J. Hamilton <groups@...> 2011/01/10

Excerpts from Jonas Pfenniger (zimbatm)'s message of Sun Jan 09 04:08:10 -0800 2011:

[#376680] Parallel Assignments and Elegance/Complexity Ratio. — Kedar Mhaswade <kedar.mhaswade@...>

In SICP, I read that "Programs should be written for people to read, and

15 messages 2011/01/11
[#376697] Re: Parallel Assignments and Elegance/Complexity Ratio. — Josh Cheek <josh.cheek@...> 2011/01/11

On Tue, Jan 11, 2011 at 8:29 AM, Kedar Mhaswade <kedar.mhaswade@gmail.com>wrote:

[#376682] JRuby 1.6.0.RC1 released — Thomas E Enebo <tom.enebo@...>

The JRuby community is pleased to announce the release of JRuby 1.6.0.RC1.

14 messages 2011/01/11

[#376744] Case statements - Just beautification — flebber <flebber.crue@...>

I just want to clarify case statements the name after the word case is

10 messages 2011/01/12

[#376792] Ruby is interpreted and scripting language? — Sai Babu <sateesh.mca09@...>

I am ruby fresher.

16 messages 2011/01/13

[#376855] Retrieving and copying element from array — Simon Harrison <simon@...>

If I have an array like this:

11 messages 2011/01/13

[#376898] What are your ruby rough cuts ? — "Jonas Pfenniger (zimbatm)" <jonas@...>

Hi rubyists,

32 messages 2011/01/14
[#376930] Re: [poll] What are your ruby rough cuts ? — David Masover <ninja@...> 2011/01/15

On Friday, January 14, 2011 07:34:04 am Jonas Pfenniger (zimbatm) wrote:

[#376937] Re: What are your ruby rough cuts ? — Joseph Lenton <jl235@...> 2011/01/15

David Masover wrote in post #975080:

[#376959] Why Quby? (was Re: What are your ruby rough cuts ?) — David Masover <ninja@...> 2011/01/15

On Saturday, January 15, 2011 04:42:58 am Joseph Lenton wrote:

[#377020] Obscure syntax error — Rolf Timmermans <molfie@...>

Hi all,

16 messages 2011/01/17

[#377052] Calling by Reference - Two Questions — Mike Stephens <rubfor@...>

I know I'm not the first person to get stumped by how to get Ruby to

15 messages 2011/01/18

[#377072] The most recommended way of naming methods in Ruby — Edmond Kachale <edmond.kachale@...>

Rubists,

14 messages 2011/01/18
[#377082] Re: The most recommended way of naming methods in Ruby — Phillip Gawlowski <cmdjackryan@...> 2011/01/18

On Tue, Jan 18, 2011 at 9:16 AM, Edmond Kachale

[#377121] Improving performance of hash math — dblock <dblockdotorg@...>

I am trying to improve performance of Euclidian distance between two

13 messages 2011/01/19

[#377226] Totally lost in learning Ruby — Hilary Bailey <my77elephants@...>

This is my second attempt to understand Ruby. I completely read 1)

61 messages 2011/01/21
[#378239] Re: Totally lost in learning Ruby — Hilary Bailey <my77elephants@...> 2011/02/08

Hi everybody,

[#378246] Re: Totally lost in learning Ruby — Robert Klemme <shortcutter@...> 2011/02/08

On Tue, Feb 8, 2011 at 3:16 AM, Hilary Bailey <my77elephants@gmail.com> wro=

[#377236] using gems installed via 'sudo gem install' — "Piotr S." <thisredoned@...>

I've installed ruby-opengl through sudo gem install because there were

15 messages 2011/01/21

[#377362] pg gem 0.10.1 wth Ruby 1.9.2 does not work with method @pg_conn.exec_prepared(stmt_name, parameters) — Zeno Davatz <zdavatz@...>

Hi

9 messages 2011/01/24

[#377388] The finer points of postfix conditionals. — Jon Leighton <j@...>

Hi,

13 messages 2011/01/24

[#377411] Obtain data from .csv — Kamarulnizam Rahim <niezam54@...>

Sample of .csv file:

19 messages 2011/01/25

[#377609] why is overloading invalid in ruby. — Ted Flethuseo <flethuseo@...>

I don't understand why when I try to overload I get an error. Can I

36 messages 2011/01/27

[#377645] If you had the choice between Ruby & Groovy — Noah Cutler <sit1way@...>

Hey All.

15 messages 2011/01/28

[#377650] IDE? — <johan.tempelman@...>

Hi,

13 messages 2011/01/28

[#377703] Zlib::GzipReader and multiple compressed blobs in a single stream — Jos Backus <jos@...>

Hi,

11 messages 2011/01/28

[#377761] New to programming AND new to Ruby — "Cassandra K." <cassandra.k@...>

Hello. I am trying to teach myself Ruby. I have no background in

13 messages 2011/01/31

[#377785] 2011: Which Ruby books have you read? And which would you recommend? — "Aston J." <azzzz@...>

I know there are a lot of threads about books, but some of them are as

16 messages 2011/01/31

[#377800] How to know the exit status within at_exit() block? — Iñaki Baz Castillo <ibc@...>

Hi, my program invokes "exit true" or "exit false" and I want to catch

17 messages 2011/01/31

Re: Enumerable.inject_with_index?

From: Benoit Daloze <eregontp@...>
Date: 2011-01-27 13:10:04 UTC
List: ruby-talk #377589
On 27 January 2011 01:42, redstun <redstun@gmail.com> wrote:
> Interesting, thanks Colin.
>
> As you said, the code you demonstrated, could performer better, meanwhile
> it's somewhat less elegant.
>
> IMHO the code is ok, we just have more space inside the
> interpreter/runtime to get improved, like in JVM, the JIT compiler could
> compile all of the 4 lines of code in to the same machine instructions an=
d
> yield the same performance.
>
> The dynamic nature and elegance design of Ruby certainly sacrificed
> performance at somewhat level, but =A0that doesn't stop you and me from u=
sing
> it, right? :-)
>
> Anyway, thanks for the benchmark demo, I just ran it on my machine, with
> both MRI and JRuby,
> MRI 1.8.7
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0user =A0 =
=A0 system =A0 =A0 =A0total =A0 =A0 =A0 =A0real
> each_with_index.inject(0) =A0 4.930000 =A0 0.000000 =A0 4.930000 ( =A05.0=
36288)
> inject(0) =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 3.088000 =A0 0.000000 =A0 3=
.088000 ( =A03.080176)
> each_with_index =A0 =A0 =A0 =A0 =A0 =A0 2.668000 =A0 0.000000 =A0 2.66800=
0 ( =A02.668153)
> each =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A01.700000 =A0 0.000000=
 =A0 1.700000 ( =A01.713098)
>
> JRuby 1.5.6
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0user =A0 =
=A0 system =A0 =A0 =A0total =A0 =A0 =A0 =A0real
> each_with_index.inject(0) =A0 1.918000 =A0 0.000000 =A0 1.918000 ( =A01.9=
18000)
> inject(0) =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 1.058000 =A0 0.000000 =A0 1=
.058000 ( =A01.058000)
> each_with_index =A0 =A0 =A0 =A0 =A0 =A0 0.979000 =A0 0.000000 =A0 0.97900=
0 ( =A00.979000)
> each =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A00.624000 =A0 0.000000=
 =A0 0.624000 ( =A00.624000)
>
> Like your result the raw each runs the fastest, but we can also find that=
,
> the result of each_with_index.inject with JRuby is already close to that =
of
> raw each with MRI.
>
>
> On Tue, Jan 25, 2011 at 5:43 AM, Colin Bartlett <colinb2r@googlemail.com>=
wrote:
>
>> I'm curious as to when and why people use each_with_index and/or
>> inject, etc, instead of a somewhat less elegant, and admittedly
>> possibly less flexible, more direct approach. (Which usually(?) takes
>> about the same number of characters for the code.)
>>
>> ary =3D [3, 4, 5]
>> rrr =3D ary.each_with_index.inject(0) { |sum, (v, index)| sum + v * inde=
x }
>> p rrr #=3D> 14
>> index =3D -1; rrr =3D ary.inject(0) { |sum, v| index +=3D 1; sum + v * i=
ndex }
>> p rrr #=3D> 14
>> rrr =3D 0; ary.each_with_index { |v, index| rrr +=3D v * index }; rrr
>> p rrr #=3D> 14
>> index =3D -1; rrr =3D 0; ary.each { |v| index +=3D 1; rrr +=3D v * index=
 }; rrr
>> p rrr #=3D> 14
>>
>> require "benchmark"
>> kt =3D 500_000
>> Benchmark.bmbm() do |bm|
>> =A0bm.report( "each_with_index.inject(0)" ) { kt.times {
>> =A0 rrr =3D ary.each_with_index.inject(0) { |sum, (v, index)| sum + v * =
index }
>> =A0} }
>> =A0bm.report( "inject(0)" =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ) { kt.times {
>> =A0 index =3D -1; rrr =3D ary.inject(0) { |sum, v| index +=3D 1; sum + v=
 * index }
>> =A0} }
>> =A0bm.report( "each_with_index" =A0 =A0 =A0 =A0 =A0 ) { kt.times {
>> =A0 rrr =3D 0; ary.each_with_index { |v, index| rrr +=3D v * index }
>> =A0} }
>> =A0bm.report( "each" =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0) { kt.t=
imes {
>> =A0 index =3D -1; rrr =3D 0; ary.each { |v| index +=3D 1; rrr +=3D v * i=
ndex }
>> =A0} }
>> end
>>
>> #=3D>
>> Rehearsal -------------------------------------------------------------
>> each_with_index.inject(0) =A0 2.410000 =A0 0.000000 =A0 2.410000 ( =A02.=
404242)
>> inject(0) =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 1.000000 =A0 0.000000 =A0 =
1.000000 ( =A01.000677)
>> each_with_index =A0 =A0 =A0 =A0 =A0 =A0 0.840000 =A0 0.010000 =A0 0.8500=
00 ( =A00.846287)
>> each =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A00.640000 =A0 0.00000=
0 =A0 0.640000 ( =A00.640142)
>> ---------------------------------------------------- total: 4.900000sec
>>
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0user =A0 =
=A0 system =A0 =A0 =A0total =A0 =A0 =A0 =A0real
>> each_with_index.inject(0) =A0 2.380000 =A0 0.020000 =A0 2.400000 ( =A02.=
392590)
>> inject(0) =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 1.000000 =A0 0.000000 =A0 =
1.000000 ( =A00.999785)
>> each_with_index =A0 =A0 =A0 =A0 =A0 =A0 0.850000 =A0 0.000000 =A0 0.8500=
00 ( =A00.846178)
>> each =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A00.640000 =A0 0.00000=
0 =A0 0.640000 ( =A00.639366)
>>
>> (My apologies if the benchmarks are ragged and unaligned.)
>>
>>
>

Just to complete with 1.9 (ruby 1.9.3dev (2011-01-26 trunk 30659)
[x86_64-darwin10.6.0]) results:

Rehearsal -------------------------------------------------------------
each_with_index.inject(0)   1.220000   0.000000   1.220000 (  1.220411)
inject(0)                   0.560000   0.000000   0.560000 (  0.568007)
each_with_index             0.510000   0.010000   0.520000 (  0.516797)
each                        0.400000   0.000000   0.400000 (  0.405471)
---------------------------------------------------- total: 2.700000sec

                                user     system      total        real
each_with_index.inject(0)   1.250000   0.000000   1.250000 (  1.268727)
inject(0)                   0.570000   0.010000   0.580000 (  0.582921)
each_with_index             0.510000   0.000000   0.510000 (  0.510591)
each                        0.390000   0.000000   0.390000 (  0.401833)

Only each_with_index.inject is notably slower, others are similar.

In This Thread