[#394281] Can someone throw me a bone — Bob Baird <lists@...>

Hi all,

14 messages 2012/04/02

[#394311] using hash as database? Secure databases with ruby? — ruby rocks <lists@...>

I am new to programming and am learning ruby as my first language. I

16 messages 2012/04/03
[#394315] Re: using hash as database? Secure databases with ruby? — Hassan Schroeder <hassan.schroeder@...> 2012/04/03

On Tue, Apr 3, 2012 at 10:30 AM, ruby rocks <lists@ruby-forum.com> wrote:

[#394318] Re: using hash as database? Secure databases with ruby? — ruby rocks <lists@...> 2012/04/03

Hassan Schroeder wrote in post #1054862:

[#394320] Re: using hash as database? Secure databases with ruby? — Florian Gilcher <flo@...> 2012/04/03

[#394321] Re: using hash as database? Secure databases with ruby? — ruby rocks <lists@...> 2012/04/03

Florian Gilcher wrote in post #1054875:

[#394375] Call for comments - Structure — Hal Fulton <rubyhacker@...>

Greetings, fellow Rubyists...

14 messages 2012/04/04

[#394390] Design pattern question — James French <James.French@...>

Hi group,

15 messages 2012/04/05

[#394471] How to pull out specific part of a variable and set to another variable? — "Charlie B." <lists@...>

I have a variable that is a long string. The variable looks like this:

9 messages 2012/04/09

[#394492] New to Ruby, tutorial gives wrong example. — Roger McDonald <lists@...>

I am just starting with Ruby with intention to learn and perhaps use it

11 messages 2012/04/10

[#394533] A Beginner's Question about Metaprogramming — Phil Stone <lists@...>

Hey guys, have a question about Ruby programming and found this forum

20 messages 2012/04/10

[#394616] How to test if array element exists? — Soul Surf <lists@...>

I'm new to Ruby and just want to test if an array element exists. Here's

11 messages 2012/04/13

[#394642] how to avoid escaping special chars after backslah in string — Lucky Nl <lists@...>

Hi friends,

13 messages 2012/04/13
[#394645] Re: how to avoid escaping special chars after backslah in string — Roger Pack <lists@...> 2012/04/13

so what's your ideal syntax here?

[#394658] Why doesn't Fixnum#to_d exist? — Mark Campbell <nitrodist@...>

http://stdlib.rubyonrails.org/libdoc/bigdecimal/rdoc/index.html

15 messages 2012/04/13
[#394660] Re: Why doesn't Fixnum#to_d exist? — Bartosz Dziewoński <matma.rex@...> 2012/04/13

It does exist, but it's in a separate file - bigdecimal/util or utils,

[#394663] Re: Why doesn't Fixnum#to_d exist? — Mark Campbell <nitrodist@...> 2012/04/13

Yes, that file has the String#to_d, Float#to_d and Rational#to_d.

[#394675] Operator overloading of the subscript operator — Ralph Shnelvar <ralphs@...32.com>

I understand that operators (e.g. +, -, *, []) are nothing more than method names so that

16 messages 2012/04/14
[#394677] Re: Operator overloading of the subscript operator — "Jan E." <lists@...> 2012/04/14

Hi,

[#394678] Re: Operator overloading of the subscript operator — Ralph Shnelvar <ralphs@...32.com> 2012/04/14

Jan,

[#394767] Capital Cyrillic letter in Ruby class name (UTF-8) — Vladimir Kerimov <lists@...>

Hi matz,

22 messages 2012/04/17

[#394803] Why must I know whether I extend a class or a module? — Marc Heiler <lists@...>

Hi.

18 messages 2012/04/18
[#394843] Re: Why must I know whether I extend a class or a module? — Intransition <transfire@...> 2012/04/19

On Wednesday, April 18, 2012 1:13:17 PM UTC-4, Marc Heiler wrote:

[#394853] How can i make the colorful font with black background for puts? — gmspro gmspro <lists@...>

puts 'Hello World."

10 messages 2012/04/19

[#394865] finding duplicates in an array and its index number — newto ruby <lists@...>

Hi,

11 messages 2012/04/19

[#394964] To developers of Ruby: Feeble documentation - weakness of Ruby and the Ruby on Rails (2nd edition) — Sergey Ezhov <lists@...>

RGlyZWN0bHkgSSBhcG9sb2dpemUgZm9yIG15IEVuZ2xpc2ggLSBJIHVzZWQg

13 messages 2012/04/23
[#394971] Re: To developers of Ruby: Feeble documentation - weakness of Ruby and the Ruby on Rails (2nd editio — Brian Candler <lists@...> 2012/04/23

I think you are a bit confused.

[#394969] gem-packed script with DATA section does not work — Wybo Dekker <wybo@...4all.nl>

The attached minimal gem contains a script that reads "Hello World!"

20 messages 2012/04/23
[#394970] Re: gem-packed script with DATA section does not work — Xavier Noria <fxn@...> 2012/04/23

DATA points to the contents after the __END__ directive of the executable

[#394973] Re: gem-packed script with DATA section does not work — Wybo Dekker <wybo@...4all.nl> 2012/04/23

On 2012-04-23 11:39, Xavier Noria wrote:

[#394988] Re: gem-packed script with DATA section does not work — Ryan Davis <ryand-ruby@...> 2012/04/23

[#394997] Re: gem-packed script with DATA section does not work — Peter Zotov <whitequark@...> 2012/04/23

Ryan Davis писал 23.04.2012 22:58:

[#395024] -BEGINNERS- Where do I Start? — "Thought M." <lists@...>

Hello World....... I am very new to code but have been glancing at it

13 messages 2012/04/25

[#395035] if if if statment — fox foxmaster <lists@...>

Hi all,

19 messages 2012/04/25

[#395085] Wrappng up my Text Game! Need Help! — Jared Hobbs <lists@...>

Hi, everyone. This is my first post!

18 messages 2012/04/26

[#395099] ruby/shoes GUI - sqlite, how to isert a variable key in table? — "Danilo L." <lists@...>

Hello, I am struggling to insert a variable into a table, for example:

17 messages 2012/04/27
[#395104] Re: ruby/shoes GUI - sqlite, how to isert a variable key in table? — Zachary Scott <zachary@...> 2012/04/27

Hi Danilo, How are you enjoying shoooes?

[#395105] Re: ruby/shoes GUI - sqlite, how to isert a variable key in table? — Michel <michel.revesche@...> 2012/04/27

[#395113] why does this return 255 bits instead of 256 (and general bit byte hex string array crypt mayhem :P) — instance_variable ok <lists@...>

So I am doing something that requires me to manipulate things on the bit

14 messages 2012/04/27

[#395193] delete character from array — Ok Ok <lists@...>

Here is my question...

17 messages 2012/04/30
[#395196] Re: delete character from array — Ok Ok <lists@...> 2012/04/30

Yes that was exactly it. I have one more question maybe you can help me

When are numbers NOT Magic? Example.

From: Greg Willits <lists@...>
Date: 2012-04-19 05:30:31 UTC
List: ruby-talk #394838
A risky and lengthy post, I'm hoping you'll indulge me on. Stack
Overflow doesn't like opinion questions, and I wasn't sure where else to
go to get the opinions of a well-informed group of folks. I figure the
Ruby community is about as uniformly a good-practices OCD bunch as any.
If you have a suggestion for a better place to have this discussion,
please do let me know.

Magic Numbers. Virtually every example of one is obvious. I have a case
I think is NOT a magic number, and neither readability nor
maintainability are improved by using a constant label.

The definitions of a magic number that I like are:

"Unique values with unexplained meaning or multiple occurrences which
could (preferably) be replaced with named constants."
http://en.wikipedia.org/wiki/Magic_number_%28programming%29 (3rd bullet)

"The term magic number is also used in programming to refer to a
constant that is employed for some specific purpose but whose presence
or value is inexplicable without additional information."
http://www.linfo.org/magic_number.html (last line)

There's some critical details there which open the door for cases where
literal numerals are not magic numbers. I for one do not subscribe to
open-ended -1, 0, 1, 2 are not magic numbers just because. IMO, context
is everything. I do not like literal 1 being used to compensate for 0/1
based offsets. I prefer to see new_variable = variable + ZERO_OFFSET
because I still want to know WHY that 1 is there. I don't want to have
to asssume it is because of zero offset. So, that should tell you I'm in
favor of being cautious with magic numbers.

OK, so here's my case...

Setup: a bunch of floating point values displayed on a web page.
Essentially a dashboard of a bunch of measured things. Each number has a
distinct engineering-based relevance to the precision which is
displayed. In other words, it's not a repetition of money values where
of course you would create a MONEY_DISPLAY_PRECISION constant for 2
decimal places to centralize that definition.

Each value has unique units.

Each value's precision is uniquely meaningful based on real-world
measurement technology and accuracy. Changing one value's precision
doesn't mean you'd want to change any of the others.

Each value is displayed in only one place in the application. So there's
no incentive to create a constant to prevent redundant literals.

The precision is not something the user can choose. The application must
hard code the displayed values, because the precision is meaningful. So
there's no incentive to have a variable.

The software has a generic method to render a floating point number as a
string with thousands separators and with a specified precision.

SomeClass#float_as_thousands_with_precision(value, precision)

Which would get used something like:
<span>
  <%= float_as_thousands_with_precision(volts, 1) -%>
</span>
<span>
  <%= float_as_thousands_with_precision(amps, 2) -%>
</span>
<span>
  <%= float_as_thousands_with_precision(watts, 2) -%>
</span>

I contend, those are NOT magic numbers.

Using the above definitions (and others I found like them), such numbers
do not need constants because:
-- each number is a single instance (no redundancy)
-- each number is independent from the other (no shared cause & effect
on precision)
-- each number's purpose is very clear from from both the  function name
and argument name (no need to clarify purpose)

I know somone out there will say, "well, why not make a constant for
them? What does it hurt?"

I say, why do it? It's more code to maintain with no benefit. If people
can justify not making constants for clearly varying purposes of using 1
in code just because it's a 1, then I contend this is even a more
justifiable case to not bother with a constant.

OK, that's my exhaustive argument.

What say ye? Do these require constants? Are they magic numbers?

-- 
Posted via http://www.ruby-forum.com/.

In This Thread

Prev Next