[#354233] Ruby & IRC — Rajinder Yadav <devguy.ca@...>

Hi I am thinking about playing around with IRC Internert Relay Chat

16 messages 2010/01/01

[#354265] "Dummy" IO object to push and pull data? — Shay Hawkins <gohegdeh@...>

Hello,

35 messages 2010/01/02
[#354266] Re: "Dummy" IO object to push and pull data? — Ryan Davis <ryand-ruby@...> 2010/01/02

[#354273] Re: "Dummy" IO object to push and pull data? — Shay Hawkins <gohegdeh@...> 2010/01/02

Ryan Davis wrote:

[#354303] Re: "Dummy" IO object to push and pull data? — Brian Candler <b.candler@...> 2010/01/02

Shay Hawkins wrote:

[#354308] Re: "Dummy" IO object to push and pull data? — Brian Candler <b.candler@...> 2010/01/02

Oh, and there is also IO.pipe, which is unidirectional under most Unix

[#354309] Re: "Dummy" IO object to push and pull data? — Shay Hawkins <gohegdeh@...> 2010/01/02

Brian Candler wrote:

[#354311] Re: "Dummy" IO object to push and pull data? — Caleb Clausen <vikkous@...> 2010/01/03

On 1/2/10, Shay Hawkins <gohegdeh@comcast.net> wrote:

[#354352] Re: "Dummy" IO object to push and pull data? — Shay Hawkins <gohegdeh@...> 2010/01/03

Caleb Clausen wrote:

[#354354] Re: "Dummy" IO object to push and pull data? — Tony Arcieri <tony@...> 2010/01/03

On Sun, Jan 3, 2010 at 3:07 PM, Shay Hawkins <gohegdeh@comcast.net> wrote:

[#354358] Re: "Dummy" IO object to push and pull data? — Shay Hawkins <gohegdeh@...> 2010/01/04

Tony Arcieri wrote:

[#354383] Re: "Dummy" IO object to push and pull data? — Brian Candler <b.candler@...> 2010/01/04

Shay Hawkins wrote:

[#354402] Re: "Dummy" IO object to push and pull data? — Shay Hawkins <gohegdeh@...> 2010/01/04

Brian Candler wrote:

[#354381] Is ruby's regex slower? — Ruby Newbee <rubynewbee@...>

Hi,

33 messages 2010/01/04
[#354384] Re: Is ruby's regex slower? — Josh Cheek <josh.cheek@...> 2010/01/04

On Mon, Jan 4, 2010 at 2:54 AM, Ruby Newbee <rubynewbee@gmail.com> wrote:

[#354387] Re: Is ruby's regex slower? — Wybo Dekker <wybo@...> 2010/01/04

[#354433] Re: Is ruby's regex slower? — Roger Pack <rogerpack2005@...> 2010/01/04

[#354448] Re: Is ruby's regex slower? — Kornelius Kalnbach <murphy@...> 2010/01/05

Roger Pack wrote:

[#354453] Re: Is ruby's regex slower? — Marnen Laibow-Koser <marnen@...> 2010/01/05

Kornelius Kalnbach wrote:

[#354461] Re: Is ruby's regex slower? — Robert Klemme <shortcutter@...> 2010/01/05

On 01/05/2010 12:37 PM, Marnen Laibow-Koser wrote:

[#354519] group in the array — Kolya17 Kolya17 <lastdrv@...>

Hi!

15 messages 2010/01/06

[#354619] Non-blocking communication between Ruby processes — Iñaki Baz Castillo <ibc@...>

Hi, I run Unicorn which is a Rack http server using N forked worker process=

30 messages 2010/01/07
[#354622] Re: Non-blocking communication between Ruby processes — Robert Klemme <shortcutter@...> 2010/01/07

On 01/07/2010 02:18 PM, I=F1aki Baz Castillo wrote:

[#354625] Re: Non-blocking communication between Ruby processes — Iki Baz Castillo <ibc@...> 2010/01/07

El Jueves, 7 de Enero de 2010, Robert Klemme escribi=F3:

[#354640] Re: Non-blocking communication between Ruby processes — Robert Klemme <shortcutter@...> 2010/01/07

On 01/07/2010 03:07 PM, I=F1aki Baz Castillo wrote:

[#354643] Re: Non-blocking communication between Ruby processes — Iki Baz Castillo <ibc@...> 2010/01/07

El Jueves, 7 de Enero de 2010, Robert Klemme escribi=F3:

[#354645] Re: Non-blocking communication between Ruby processes — Iki Baz Castillo <ibc@...> 2010/01/07

El Jueves, 7 de Enero de 2010, I=F1aki Baz Castillo escribi=F3:

[#354656] Stopping String Escaping. — Phil Cooper-king <phil@...>

Hi,

14 messages 2010/01/07
[#354664] Re: Stopping String Escaping. — Brian Candler <b.candler@...> 2010/01/07

Phil Cooper-king wrote:

[#354746] Ruby editing style rules and recommendation? — Nathan Oyama <nate@...>

I asked a question 'Decimal in for loop?' and two members were kind

12 messages 2010/01/09

[#354781] The Ruby GUI debacle — Ruby Student <ruby.student@...>

Team,

40 messages 2010/01/10
[#354794] Re: The Ruby GUI debacle — James Britt <james.britt@...> 2010/01/10

Ruby Student wrote:

[#354803] Re: The Ruby GUI debacle — Ruby Student <ruby.student@...> 2010/01/11

James, I don't remember if the problems was with Netbeans or something

[#354825] Re: The Ruby GUI debacle — Florian Gilcher <flo@...> 2010/01/11

>=20

[#354874] bellhop 1.0.0 released — Gregory Brown <gregory.t.brown@...>

Hi folks,

12 messages 2010/01/11

[#354901] How to close a TCP socket? (TCPSocket#close doesn't close it) — Iñaki Baz Castillo <ibc@...>

Hi, perhaps I miss something but when I close a TCP connection using=20

8 messages 2010/01/12

[#354910] Is 'rescue' expensive ? — "R. Kumar" <sentinel.2001@...>

If i use something like:

12 messages 2010/01/12

[#354915] 3D with Ruby (Ogre ?) — Marc-antoine Kruzik <kadelfek@...>

Hello, I'm french, sorry for my mistakes.

24 messages 2010/01/12
[#354920] Re: 3D with Ruby (Ogre ?) — Brian Candler <b.candler@...> 2010/01/12

Marc-antoine Kruzik wrote:

[#354945] NOOB Question on Instance Variable — BlueHandTalking <jet@...>

I have a class photo. It belongs_to a project.

13 messages 2010/01/12

[#354974] WIN32OLE memory leaks — Chuck Remes <cremes.devlist@...>

In my ruby code I am making a call out to a COM object that is

21 messages 2010/01/12
[#354979] Re: WIN32OLE memory leaks — Luis Lavena <luislavena@...> 2010/01/12

On Jan 12, 6:19=A0pm, Chuck Remes <cremes.devl...@mac.com> wrote:

[#355014] Re: WIN32OLE memory leaks — Chuck Remes <cremes.devlist@...> 2010/01/13

[#355002] Ruby Regex — Sriram Varahan <sriram.varahan@...>

Hello,

15 messages 2010/01/13

[#355036] Recommended Reading (also: Arrays/Hashes) — Zach Bartels <no@...>

Hi all,

20 messages 2010/01/13

[#355085] How to know the OS architecture (32 or 64 bits)? — Iñaki Baz Castillo <ibc@...>

Hi, is there a reliable way under Ruby to know the OS architecture (32 or 6=

27 messages 2010/01/14
[#355136] Re: How to know the OS architecture (32 or 64 bits)? — Walton Hoops <walton@...> 2010/01/15

On 1/14/2010 4:12 PM, I単aki Baz Castillo wrote:

[#355138] Re: How to know the OS architecture (32 or 64 bits)? — Walton Hoops <walton@...> 2010/01/15

On 1/15/2010 9:36 AM, Walton Hoops wrote:

[#355142] Re: How to know the OS architecture (32 or 64 bits)? — Iñaki Baz Castillo <ibc@...> 2010/01/15

El Viernes, 15 de Enero de 2010, Walton Hoops escribi=C3=B3:

[#355143] Re: How to know the OS architecture (32 or 64 bits)? — Iñaki Baz Castillo <ibc@...> 2010/01/15

El Viernes, 15 de Enero de 2010, I=C3=B1aki Baz Castillo escribi=C3=B3:

[#355159] Re: How to know the OS architecture (32 or 64 bits)? — Walton Hoops <walton@...> 2010/01/15

On 1/15/2010 9:59 AM, I単aki Baz Castillo wrote:

[#355102] Float Points error — "THAKUR PRASHANT SINGH" <Prashant_Singh.Thakur@...>

Hi,

13 messages 2010/01/15

[#355228] GPGME gem - cannot figure out how to decrypt data — Daniel Frank <ruby-talk-2597@...>

Hello,

11 messages 2010/01/17

[#355266] Can't install gems (Windows) — Sal <salbass575@...>

I am unable to install any gems now on my Windows 7 machine running

25 messages 2010/01/17

[#355281] basic question: passing a modifiable argument to a routine — lalawawa <usenet@...>

Arguments to subroutines seem to be passed by value in ruby

10 messages 2010/01/18

[#355392] Creating GUI applications with Ruby 1.9.1 — Alpha Blue <jdezenzio@...>

I'm wanting to port over a GUI app I created into ruby so that it

24 messages 2010/01/19

[#355461] Looking for object.inherits?(Classname) — Xeno Campanoli <xeno.campanoli@...>

I'm looking for a way to make sure an object being passed is in some class

13 messages 2010/01/20

[#355487] Best practices when writing destructive code — Adam Akhtar <adamtemporary@...>

Im going to be making and removing lots of directories using ruby and Im

10 messages 2010/01/20

[#355530] ruby bounties--list of bounties — Roger Pack <rogerdpack2@...>

Fifth time's a charm (durn spam filters)

34 messages 2010/01/21
[#355574] Re: [ANN] ruby bounties--list of bounties — Charles Oliver Nutter <headius@...> 2010/01/21

On Thu, Jan 21, 2010 at 12:07 AM, Roger Pack <rogerdpack2@gmail.com> wrote:

[#355739] Re: ruby bounties--list of bounties — Roger Pack <rogerpack2005@...> 2010/01/24

[#355742] Re: ruby bounties--list of bounties — Charles Oliver Nutter <headius@...> 2010/01/24

On Sat, Jan 23, 2010 at 11:49 PM, Roger Pack <rogerpack2005@gmail.com> wrote:

[#355766] Re: ruby bounties--list of bounties — Aaron Patterson <aaron@...> 2010/01/25

On Sun, Jan 24, 2010 at 09:15:56PM +0900, Charles Oliver Nutter wrote:

[#355784] Re: ruby bounties--list of bounties — Charles Oliver Nutter <headius@...> 2010/01/25

On Mon, Jan 25, 2010 at 6:29 AM, Aaron Patterson

[#355795] Re: ruby bounties--list of bounties — Mike Dalessio <mike.dalessio@...> 2010/01/25

On Mon, Jan 25, 2010 at 7:37 AM, Charles Oliver Nutter

[#355802] Re: ruby bounties--list of bounties — Charles Oliver Nutter <headius@...> 2010/01/25

On Mon, Jan 25, 2010 at 6:25 PM, Mike Dalessio <mike.dalessio@gmail.com> wrote:

[#355547] Unexpected Hash#first return under Ruby1.9 — Iñaki Baz Castillo <ibc@...>

Hi, Ruby 1.9 implements "first" method for Hash (as Hash are ordered now).

12 messages 2010/01/21

[#355563] Rails ADODB.Connection Error — gregarican <greg.kujawa@...>

I know this isn't exclusively a Rails list, so I apologize in advance.

12 messages 2010/01/21

[#355600] Ruby c extensions on windows — Philliam Auriemma <phil.auriemma@...>

Hey guys,

15 messages 2010/01/22

[#355638] Argh?! :) kEND, $end and kELSE in a simple program — Jet Koten <jetkoten@...>

Hi,

15 messages 2010/01/22

[#355667] How to use WIN32OLE to Save As PDF — Joe Peck <joep@...>

Hi,

12 messages 2010/01/22

[#355797] Nested hash with arrays for default value — Glen Holcomb <damnbigman@...>

I'm trying to find a "nice" way to make a nested hash with an empty array a=

12 messages 2010/01/25
[#355803] Re: Nested hash with arrays for default value — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2010/01/25

On Mon, Jan 25, 2010 at 6:48 PM, Glen Holcomb <damnbigman@gmail.com> wrote:

[#355891] Open Source Subversion Hosting — Intransition <transfire@...>

Looking for Rubyist's recommendations for free open-source Subversion

21 messages 2010/01/26
[#355892] Re: Open Source Subversion Hosting — Marnen Laibow-Koser <marnen@...> 2010/01/26

Thomas Sawyer wrote:

[#355939] can't update and install gem — Johny ben <joh13ny@...>

os:win xp

11 messages 2010/01/27

[#355962] Why does `source .bashrc` complain "command not found"? — Adam Akhtar <adamtemporary@...>

Is it just me or is this something that just cant be done?

10 messages 2010/01/27

[#356010] Use Non-Java Version of Gem — Bryan Richardson <btrichardson@...>

Hello all,

12 messages 2010/01/27

[#356042] gsub not working to replace a 'Chinese' Charater. — Ryan Smith <sunraise2005@...>

gsub not works for me when replace 'DBCS'(double byte character set)

12 messages 2010/01/28

[#356076] rdoc_osx_dictionary 1.0.1 Released — Ryan Davis <ryand-ruby@...>

rdoc_osx_dictionary version 1.0.1 has been released!

19 messages 2010/01/28
[#356082] Re: rdoc_osx_dictionary 1.0.1 Released — hi there <johnsonqu@...> 2010/01/29

If installed gems share the same class name, eg. mime-types mimetype-fu

[#356084] Re: rdoc_osx_dictionary 1.0.1 Released — Ryan Davis <ryand-ruby@...> 2010/01/29

[#356120] Re: rdoc_osx_dictionary 1.0.1 Released — Ryan Davis <ryand-ruby@...> 2010/01/29

[#356122] Re: rdoc_osx_dictionary 1.0.1 Released — Ryan Davis <ryand-ruby@...> 2010/01/29

[#356153] "require 'rubygems'" In Your Library/App/Tests Is Wrong? — Joe Wangkauf <tmo1138@...>

16 messages 2010/01/30
[#356154] Re: "require 'rubygems'" In Your Library/App/Tests Is Wrong? — Xavier Noria <fxn@...> 2010/01/30

On Sat, Jan 30, 2010 at 6:05 PM, Joe Wangkauf

[#356158] Re: "require 'rubygems'" In Your Library/App/Tests Is Wrong? — Josh Cheek <josh.cheek@...> 2010/01/30

I wonder how many people _don't_ use rubygems. What creates more work,

[#356162] Refining the use of file joins or file expand_path — Alpha Blue <jdezenzio@...>

Both bits of code process the same result which is finding .rb file

26 messages 2010/01/30
[#356177] Re: Refining the use of file joins or file expand_path — pharrington <xenogenesis@...> 2010/01/31

On Jan 30, 9:24=A0pm, Alpha Blue <jdezen...@gmail.com> wrote:

[#356179] Re: Refining the use of file joins or file expand_path — Alpha Blue <jdezenzio@...> 2010/01/31

pharrington wrote:

[#356182] Re: Refining the use of file joins or file expand_path — Ryan Davis <ryand-ruby@...> 2010/01/31

[#356183] Re: Refining the use of file joins or file expand_path — Alpha Blue <jdezenzio@...> 2010/01/31

Ryan Davis wrote:

[#356190] Inheritance related problem — "R. Kumar" <sentinel.2001@...>

Note: this is *not* a ruby bug. its a general query.

20 messages 2010/01/31

Re: why is rails/ruby automatically rounding to whole numbers.

From: Josh Cheek <josh.cheek@...>
Date: 2010-01-23 04:51:27 UTC
List: ruby-talk #355701
On Fri, Jan 22, 2010 at 7:57 PM, Morgan Morgan <nagromh@gmail.com> wrote:

>      @wtf= 751 / 750
>
>     returns 1 in the view
>
>      @wtf= 3 / 750
>
>     returns 0 in the view
>
>      @wtf= 749 / 750
>
>      returns 0 in the view.
>
>
> can somebody explain what's going on here.  i'm just trying to calculate
> percents.
> --
> Posted via http://www.ruby-forum.com/.
>
>
First an example. Lets say you were managing a school, you had two
Philosophy courses, the first course has 1 student, the second course has 6
students. You want to balance them, how do you do this? With 7 students
total, and 2 courses, 7/2 is 3.5, so we chop one student in half and put 3.5
students into each course. Unfortunately, students who have been chopped in
half tend to be poor learners (and the janitor hates cleaning up blood). So
instead, you put 3 in the first course, and 4 in the second.

In this case, we have 7/2, and expect 3 and 4, rather than 3.5 and 3.5

So why do you get the results you do in your examples? It has to do with how
variables are stored. In lower level languages, the program has to know
ahead of time what kind of number to expect (because of how memory is
managed), so you specifically declare to the translator what kind of
variables you are storing. When you declare something as an int, it cannot
then become a float, because that is not what you have declared (it is fixed
at the time that the program code is generated, and can't change at run time
if you get 10/6 instead of 10/5, this is called static).

So when you say 1/2, the answer may be 0.5, but that is a number with a
decimal place (called float, which stands for floating point, meaning that
the decimal place can move around between digits, for example 1.23 vs 12.3),
but the variable you are storing it in may be an integer, so it has no way
to store this float. In order to store it, the result is made into an
integer by removing everything after the decimal place (known as
truncating).

This is how things have been for a very long time, and now that dynamic
languages are becoming popular, they are largely maintaining this behaviour,
because integers and floats are typically used in very different ways, so it
would complicate a lot of situtions if they could switch back and forth
without you explicitly saying it should be allowed. For example, if you have
some code that you want to be executed some number of times that was
calculated (called a loop), then if the calculation returns 5 it is straight
forward, but it could come back as 5.2 or 5.3, or some other non integer.
What does it mean to execute code 5.3 times? In places where discrete
quantities are expected, how do they deal with the remainder? It does not
make sense to have 4.5 students in a class, and it does not make sense to
execute the code 5.3 times. We expect integer quantities.

So in most languages, integers and floats are considered to be separate
things, and will not switch back and forth unless you specifically say to do
so.

In 751 / 750, those are both integers, the interpreter assumes that if you
are dividing two integers, you want the result to be an integer as well,
since the result is about 1.0013 it simply truncates the remainder, leaving
one. When you say 749/750, it does the same thing, but this time the result
is about 0.9987, so it truncates the remainder, leaving zero.

This is one facet of the issue, but the other is that it is not simple to go
from floating point back to integer. A number like 1/3 is 0.3 with the three
repeating. This cannot be represented with any finite number of digits, so
if you multiplied it by three, expecting to get one again, how would you
know that the next digit after the last one was also a three? How would you
go from that number back to the integer one?  For example, if floating point
numbers could store 4 decimal places, then 16667/50000, and 8333/25000, and
1/3 would all look like 0.3333, but only the last one should return the
integer 1, when multiplied by 3. So there are issues with converting from
floats back to integers as well.

We could just make all numbers floating points, or even generalize them to
more abstract representations, such as stored functions like the square root
of 2 (which has an infinite number of non-repeating digits), but then it
would be difficult to quickly compare them to other numbers, and we couldn't
know how much room they take to store (necessary in many languages, and for
lots of useful things. For example, to access databases quickly, we need to
know how much room a given field takes so we can calculate the location of
the next field and go there directly without looking at all the information
in between. Or so we can make sure that there will be enough room to store
it on the device we have selected). We also wouldn't be able to quickly do
heavy math operations on these abstract representations. So we accept a
representation that is not precise, the float. It's a trade off. But it
prevents us from knowing for sure that 0.3333 times 3 is 1, so generally we
do not allow conversion to floating points unless that is really what we
need for the given step. We keep track of where we want our integers, and
where we want our floats.

You can see, there is a lot of ambiguity with numbers, and numbers that
track their decimal place are used in very different ways than integer
numbers, which are usually selected because they come in discrete
quantities.

This is why we consider the two to be different, which is why the
interpreter does not immediately convert integer numbers into floating point
numbers, which is why 751/750 is one, and 749/750 is zero. Integer divided
by integer assumes the result should be integer, but 751/750.0 is
1.00133333333333, because one of the parameters was a float, so it assumes a
float result is acceptable.

Most languages behave in this manner.

Hope that helps, just remember when dividing integers, the remainder will be
truncated, so if you need the remainder, convert one of the arguments to a
float first.

In This Thread

Prev Next