[#396148] Facebook Group — Moses Aronov <mosesaro@...>

There is a facebook group that was recently created so we could all communicate with other fellow developers

13 messages 2012/06/05
[#396178] Re: Facebook Group — Chad Perrin <code@...> 2012/06/06

On Wed, Jun 06, 2012 at 01:55:48AM +0900, Moses Aronov wrote:

[#396186] Inexplicable Argument Error — Doug Jolley <lists@...>

I am encountering a very strange argument error. I simplified my code

12 messages 2012/06/06

[#396229] Thread#kill is not rescued by "rescue Exception" — Iñaki Baz Castillo <ibc@...>

Hi, let me show this easy code:

13 messages 2012/06/07

[#396333] Is "a,b=c,d" atomic? or do I need a Mutex? — Iñaki Baz Castillo <ibc@...>

Hi, I have two methods that could be called by different threads and

10 messages 2012/06/10

[#396357] ffi - Popping image on top of the screen — "Damián M. González" <lists@...>

Ey guys, how are you? I`m developing an application in Ruby, using

12 messages 2012/06/11

[#396373] Why should I learn ruby? — Kasper Steensig <lists@...>

I have wondered whether I should learn ruby or python hence they are

16 messages 2012/06/11

[#396503] Syntax Highlighter — Intransition <transfire@...>

Would you agree that Ruby shouldn't lack for a syntax highlighting library

18 messages 2012/06/14

[#396589] Unsubcripe — Suresh Rajkumar <sureshrajchennai@...>

Unsubcipe my mail address from the group.

13 messages 2012/06/18

[#396615] Symbols and Strings... — Hal Fulton <rubyhacker@...>

Hello, all...

29 messages 2012/06/18
[#396620] Re: Symbols and Strings... — Eric Hodel <drbrain@...7.net> 2012/06/18

On Jun 18, 2012, at 15:09, Hal Fulton wrote:

[#396641] Re: Symbols and Strings... — Robert Klemme <shortcutter@...> 2012/06/19

On Tue, Jun 19, 2012 at 12:31 AM, Eric Hodel <drbrain@segment7.net> wrote:

[#396643] Re: Symbols and Strings... — Hal Fulton <rubyhacker@...> 2012/06/19

Personally, I don't have a problem with "reducing the contract"

[#396646] Re: Symbols and Strings... — Robert Klemme <shortcutter@...> 2012/06/19

On Tue, Jun 19, 2012 at 5:17 PM, Hal Fulton <rubyhacker@gmail.com> wrote:

[#396659] Re: Symbols and Strings... — Hal Fulton <rubyhacker@...> 2012/06/19

> > Freezing an object also reduces its contract.

[#396678] Re: Symbols and Strings... — Robert Klemme <shortcutter@...> 2012/06/20

On Tue, Jun 19, 2012 at 10:12 PM, Hal Fulton <rubyhacker@gmail.com> wrote:

[#396701] Re: Symbols and Strings... — Henry Maddocks <hmaddocks@...> 2012/06/20

[#396702] Re: Symbols and Strings... — Bartosz Dziewoński <matma.rex@...> 2012/06/20

2012/6/20 Henry Maddocks <hmaddocks@me.com>:

[#396703] Re: Symbols and Strings... — Henry Maddocks <hmaddocks@...> 2012/06/20

[#396710] Re: Symbols and Strings... — Jeremy Bopp <jeremy@...> 2012/06/20

On 06/20/2012 03:58 PM, Henry Maddocks wrote:

[#396627] Does ERB have recursive template support? — Todd Wei <lists@...>

I want to use ERB template library to do some code generation. It

10 messages 2012/06/19

[#396649] Looking for a better way to add a method to a core class than monkey patching — Iain Barnett <iainspeed@...>

Hi all,

17 messages 2012/06/19
[#396670] Re: Looking for a better way to add a method to a core class than monkey patching — Avdi Grimm <groups@...> 2012/06/20

Please do not monkey patch core libraries in gems, unless the *purpose* of

[#396685] Benchmark obsession? — "Jan E." <lists@...>

Hi,

23 messages 2012/06/20
[#396709] Re: Benchmark obsession? — Ryan Davis <ryand-ruby@...> 2012/06/20

[#396815] Array#sample is Set#sample and not Array#sample ! — Michel Demazure <lists@...>

Arrays are ordered, sets are not. Sampling an array should give random

11 messages 2012/06/25

[#396877] CSV.open problem, help please — Kaye Ng <lists@...>

This code doesn't seem to work

21 messages 2012/06/27

[#396896] Copying text from MS Word and wrapping in HTML - help please — Adam Holloway <lists@...>

Hi,

11 messages 2012/06/27

[#396966] Interactions between 'new' and 'initialize' ? — Cees Zeelenberg <lists@...>

In JRuby, I am extending an existing Java Class with a Ruby initialising

9 messages 2012/06/28

[#396975] stack level too deep for quicksort code — bei zhao <lists@...>

Hi, below is my quicksort implementation in ruby(using the first element

12 messages 2012/06/28

[#396996] Accessor Methods with a Twist — Doug Jolley <lists@...>

I am surprised that the code shown below returns, 'Doug'. I would

15 messages 2012/06/29

[#397001] ruby performance — anaray anaray <lists@...>

Hi,

33 messages 2012/06/29
[#397007] Re: ruby performance — Bartosz Dziewoński <matma.rex@...> 2012/06/29

The MRI is, unfortunately, slow as balls, and there's not much you can

[#397008] Re: ruby performance — Hans Mackowiak <lists@...> 2012/06/29

Bartosz Dziewo=C5=84ski wrote in post #1066673:

[#397010] Re: ruby performance — Bartosz Dziewoński <matma.rex@...> 2012/06/29

2012/6/29 Hans Mackowiak <lists@ruby-forum.com>:

[#397011] Re: ruby performance — Bartosz Dziewoński <matma.rex@...> 2012/06/29

2012/6/29 Hans Mackowiak <lists@ruby-forum.com>:

[#397047] Re: ruby performance — "Andreas S." <lists@...> 2012/07/01

Bartosz Dziewo=C5=84ski wrote in post #1066681:

[#397048] Re: ruby performance — Bartosz Dziewoński <matma.rex@...> 2012/07/01

2012/7/1 Andreas S. <lists@ruby-forum.com>:

[#397068] Re: ruby performance — Robert Klemme <shortcutter@...> 2012/07/02

On Sun, Jul 1, 2012 at 1:42 PM, Bartosz Dziewo=C5=84ski <matma.rex@gmail.co=

[#397086] Re: ruby performance — Dan Connelly <lists@...> 2012/07/02

Here's my contribution:

Re: Benchmark obsession?

From: Ryan Davis <ryand-ruby@...>
Date: 2012-06-20 21:50:53 UTC
List: ruby-talk #396709
On Jun 20, 2012, at 07:43 , Jan E. wrote:

I kinda feel like I'm being called out as I'm on record (many times) for =
2/3rds of your examples so I'll address them specifically:

> "Don't concatenate strings, use string interpolation instead"

Using a recent real example from this list where I suggested =
interpolation:

    m.ClassMethodString + " " + m.ClassMethodString + ": " + =
m.ClassMethodInteger.to_s

mmmmm java code.

1) slower        -- several more method calls
2) wasteful      -- creates much more garbage
3) longer/uglier -- I'd argue that it is much less elegant

vs

    "#{m.ClassMethodString} #{m.ClassMethodString}: =
#{m.ClassMethodInteger}"

1) clarity   -- it's just a string.
2) elegance  -- it's JUST a string AND you don't need those stupid #to_s =
calls.
3) efficient -- takes less time, uses less memory, makes less garbage, =
and even easier to read.

> "Don't use Enumerable#inject to build up objects" etc. etc.

Given #inject's other alias, #reduce, it is obvious that you don't use =
#inject for building up other objects. Even in a functional style of =
programming you'd _never_ see it building up anything. You'd see it =
REDUCING (folding) an object. If #inject is applied in a non-folding =
manner, it isn't functional, it is just dumb. Don't pretend otherwise =
(and if you do pretend otherwise, go read more books on lisp--start with =
SICP). The second I see a semicolon (or return) in an inject, I =
immediately suspect that someone is writing clevar/stupid code.

I don't have any recent examples from the list, but I'm on record in =
multiple mediums ranting against people who use #inject improperly. I'll =
make up one based on examples I've seen time and time again:

    return im_a_lazy_bastard.inject(Hash.new 0) { |h, o| =
h[o.really_really_lazy] +=3D 1; h }

vs

    counter =3D Hash.new 0
    thingies.each do |o|
      counter[o.key] +=3D 1
    end
    return counter

1) I use #each because it adds CLARITY. I want to enumerate each =
element. I'm not folding anything.
2) Yes, it's faster. I don't actually care about that nearly as much as =
#1.
3) Yes, it is more lines:
   1) but only if you write the inject version that way.
   2) I use the Weirich Method [1][2] of choosing {} vs do/end. =
INCREASING clarity and intent.
   3) each line is a stand-alone concept that helps increase clarity.

Here is a perfect example of an actual folding application of #inject:

    classname.split(/::/).inject(Object) { |k, n| k.const_get n }

vs:

    k =3D Object
    classname.split(/::/).each { |n| k =3D k.const_get n }
    k

As you can see, the #inject version is incredibly clear and concise. The =
second example takes longer to figure out. That is what the natural fit =
of a well designed method is supposed to do.

---

Come to think of it (!!!) I DO have a real world example of inject that =
I used in my Ruby Sadism talk:

if MODELS.keys.inject(true) {|b, klass| b and =
klass.constantize.columns.map(&:name).include? =
association.options[:foreign_key]} then
  # ...
end

Have fun with that... It's probably the most egregious use of inject =
I've ever found. The original author actually argued that he wrote it =
that way "for maintainability".

[1]: http://onestepback.org/index.cgi/Tech/Ruby/BraceVsDoEnd.rdoc
[2]: =
http://talklikeaduck.denhaven2.com/2007/10/02/ruby-blocks-do-or-brace


In This Thread