[#366855] what is the correct way to extend native methods? — Maurizio De Santis <desantis.maurizio@...>

Hello!

15 messages 2010/08/01
[#366857] Re: what is the correct way to extend native methods? — James Harrison <oscartheduck@...> 2010/08/01

> return self.select{ |val| val.to_s =~ args[0] } if args.size == 1

[#366864] Re: what is the correct way to extend native methods? — Maurizio De Santis <desantis.maurizio@...> 2010/08/01

James Harrison wrote:

[#366866] Re: what is the correct way to extend native methods? — Brian Candler <b.candler@...> 2010/08/01

Maurizio De Santis wrote:

[#366916] How to remove leading &nbsp; from string — Lucky Nl <lakshmi27.u@...>

Hi

13 messages 2010/08/02

[#366931] Iteration through File.file? misses entries for which File.file?(entry) == true — Kyle Barbour <kyle@...>

Hello everyone,

11 messages 2010/08/02

[#367167] Project name ownership and conflict — Emmanuel Gomez <emmanuel.gomez@...>

I recently had a discussion with a fellow Ruby developer that revealed a

13 messages 2010/08/05

[#367169] Abstracting exception handling — Martin Hansen <mail@...>

Hello,

15 messages 2010/08/05
[#367173] Re: Abstracting exception handling — Brian Candler <b.candler@...> 2010/08/05

> I suspect something is going out of scope and lost?

[#367176] Re: Abstracting exception handling — Martin Hansen <mail@...> 2010/08/05

I was hoping for a setup like this in two files:

[#367177] Re: Abstracting exception handling — Andrew Wagner <wagner.andrew@...> 2010/08/05

What kind of stuff are you doing in my_script.rb? Defining a class? A

[#367179] Re: Abstracting exception handling — Martin Hansen <mail@...> 2010/08/05

Andrew Wagner wrote:

[#367372] Is there any human talkable ruby library? — Sniper Abandon <sathish.salem.1984@...>

Is there any human talk able(like Eliza ) ruby library?

12 messages 2010/08/09

[#367438] Determining whether the running ruby is outdated? — Lars Olsson <lasso@...>

Hi,

14 messages 2010/08/10

[#367540] Ruby is in Grave Danger! — Gregory Brown <gregory.t.brown@...>

Dear Friends,

34 messages 2010/08/11

[#367631] Parsing, BNF, TreeTop, GhostWheel, ... — Philipp Kempgen <lists@...>

Hi,

13 messages 2010/08/12

[#367664] libstdc++ — Pw Ktp <amar.seeam@...>

when trying to install a gem i am getting a 'libstdc++' not installed

24 messages 2010/08/13
[#367666] Re: libstdc++ — Brian Candler <b.candler@...> 2010/08/13

Pw Ktp wrote:

[#367668] Re: libstdc++ — Pw Ktp <amar.seeam@...> 2010/08/13

Brian Candler wrote:

[#367670] Re: libstdc++ — Brian Candler <b.candler@...> 2010/08/13

OK, probably missing headers as Daniel said. Try:

[#367671] Re: libstdc++ — Pw Ktp <amar.seeam@...> 2010/08/13

Brian Candler wrote:

[#367703] Question about learning Ruby effectively — Chan Nguyen <cnguyen@...>

Hi everyone,

12 messages 2010/08/14

[#367781] Unix Philosophy in Ruby Programing — Diego Bernardes <di3go.bernardes@...>

I use Linux about 5 years, but, this year that i started to "use" linux.

22 messages 2010/08/16

[#367833] can i do this in ruby? a simulation process — Bruce Wayner <winshocker@...>

still i don't know how to begin my program on this problem:

56 messages 2010/08/17
[#367834] Re: can i do this in ruby? a simulation process — Jean-Julien Fleck <jeanjulien.fleck@...> 2010/08/17

> Requirements:

[#367837] Re: can i do this in ruby? a simulation process — Bruce Wayner <winshocker@...> 2010/08/17

Jean-Julien Fleck wrote:

[#367839] Re: can i do this in ruby? a simulation process — Jean-Julien Fleck <jeanjulien.fleck@...> 2010/08/17

> Cheers Thanks, anyway i already did writing and other stuff but the only

[#367849] Re: can i do this in ruby? a simulation process — Andrew Wagner <wagner.andrew@...> 2010/08/17

Hmm, I may or may not disagree with you on what the output should be. I

[#367850] Re: can i do this in ruby? a simulation process — Brian Candler <b.candler@...> 2010/08/17

Andrew Wagner wrote:

[#367853] Re: can i do this in ruby? a simulation process — Andrew Wagner <wagner.andrew@...> 2010/08/17

>

[#367858] Re: can i do this in ruby? a simulation process — Bruce Wayner <winshocker@...> 2010/08/17

A superhighway connects one large metropolitan area to another.

[#367862] Re: can i do this in ruby? a simulation process — Andrew Wagner <wagner.andrew@...> 2010/08/17

>

[#367867] Re: can i do this in ruby? a simulation process — Jean-Julien Fleck <jeanjulien.fleck@...> 2010/08/17

> You bring up an interesting point about going

[#367873] Re: can i do this in ruby? a simulation process — Andrew Wagner <wagner.andrew@...> 2010/08/17

Well, it may be interesting, but not in terms of the question originally

[#367911] Re: can i do this in ruby? a simulation process — brabuhr@... 2010/08/17

On Tue, Aug 17, 2010 at 7:34 AM, Andrew Wagner <wagner.andrew@gmail.com> wrote:

[#367922] Re: can i do this in ruby? a simulation process — brabuhr@... 2010/08/17

On Tue, Aug 17, 2010 at 1:19 PM, <brabuhr@gmail.com> wrote:

[#367937] Re: can i do this in ruby? a simulation process — Bruce Wayner <winshocker@...> 2010/08/18

can someone post some code here: I'm only a newbie in ruby :( and

[#367946] Re: can i do this in ruby? a simulation process — Brian Candler <b.candler@...> 2010/08/18

Bruce Wayner wrote:

[#367952] Re: can i do this in ruby? a simulation process — Bruce Wayner <winshocker@...> 2010/08/18

sorry I'm totally suck in ruby here is my code:

[#367965] Re: can i do this in ruby? a simulation process — Brian Candler <b.candler@...> 2010/08/18

> sorry I'm totally suck in ruby here is my code:

[#367967] Re: can i do this in ruby? a simulation process — Brian Candler <b.candler@...> 2010/08/18

>> if $delay1==0;

[#367884] Making File.open work on gzipped files — Martin Hansen <mail@...>

Hello all,

15 messages 2010/08/17
[#367893] Re: Making File.open work on gzipped files — Brian Candler <b.candler@...> 2010/08/17

> This works nicely, but I would like it to work on gzipped files too.

[#367919] Re: Making File.open work on gzipped files — Martin Hansen <mail@...> 2010/08/17

Thanks Brian,

[#367910] Ruby GC question (MRI, JRuby, etc) — Chuck Remes <cremes.devlist@...>

My basic understanding of the garbage collectors in use by the various Ruby runtimes is that they all search for objects from a "root" memory object. If an object cannot be reached from this root, then it is collected.

11 messages 2010/08/17

[#367983] Ruby 1.9.2 is released — "Yuki Sonoda (Yugui)" <yugui@...>

-----BEGIN PGP SIGNED MESSAGE-----

23 messages 2010/08/18
[#368021] Re: [ANN] Ruby 1.9.2 is released — botp <botpena@...> 2010/08/19

2010/8/18 Yuki Sonoda (Yugui) <yugui@yugui.jp>:

[#368023] Re: [ANN] Ruby 1.9.2 is released — botp <botpena@...> 2010/08/19

> weird, since rvm does install it fine.

[#368000] Ruby Code Parsing — Jonathan Bale <webmaster@...>

I have a Perl friend asking me questions about how ruby parses its code.

15 messages 2010/08/18

[#368005] Check existence of object and it's property at the same time — Cory Patterson <coryp@...>

I run into this from time to time and I was wondering if there is a

10 messages 2010/08/18

[#368076] Shoes 3 released — Steve Klabnik <steve@...>

Hey there everyone. We've just released Shoes 3, "Policeman", to

19 messages 2010/08/19

[#368199] A small problem for arrays — Unc88 Unc88 <unc88@...>

I have 2 array. ar_1, ar_2

11 messages 2010/08/21

[#368343] gem list --remote does not work on windows running ruby 1.9.2p0 — botp <botpena@...>

Title says all.

9 messages 2010/08/24

[#368384] ffi-ncurses 0.3.3 — "Sean O'Halpin" <sean.ohalpin@...>

I've just released version 0.3.3 of the ffi-ncurses gem. This fixes

22 messages 2010/08/25
[#368423] Re: ffi-ncurses 0.3.3 — "R.. Kumar 1.9.1 OSX" <sentinel1879@...> 2010/08/26

Sean O'halpin wrote:

[#368500] Re: ffi-ncurses 0.3.3 — "Sean O'Halpin" <sean.ohalpin@...> 2010/08/27

On Thu, Aug 26, 2010 at 11:20 AM, R.. Kumar 1.9.1 OSX

[#368533] Re: ffi-ncurses 0.3.3 — botp <botpena@...> 2010/08/28

On Fri, Aug 27, 2010 at 10:05 PM, Sean O'Halpin <sean.ohalpin@gmail.com> wrote:

[#368538] Re: ffi-ncurses 0.3.3 — Rahul Kumar <sentinel1879@...> 2010/08/28

[#368546] Re: ffi-ncurses 0.3.3 — botp <botpena@...> 2010/08/28

On Sat, Aug 28, 2010 at 2:34 PM, Rahul Kumar <sentinel1879@gmail.com> wrote:

[#368556] Re: ffi-ncurses 0.3.3 — "Sean O'Halpin" <sean.ohalpin@...> 2010/08/28

On Sat, Aug 28, 2010 at 9:47 AM, botp <botpena@gmail.com> wrote:

[#368623] Re: ffi-ncurses 0.3.3 — Rahul Kumar <sentinel1879@...> 2010/08/30

[#368471] how about Array#collect_until — timr <timrandg@...>

I am wondering if anyone has implemented an Array#collect_until method

14 messages 2010/08/27

[#368506] select tr>3 with nokogiri — Pen Ttt <myocean135@...>

13 messages 2010/08/27

[#368690] Namespaces too looooooong — Iain Barnett <iainspeed@...>

Hi,

18 messages 2010/08/31
[#368692] Re: Namespaces too looooooong — Joel VanderWerf <joelvanderwerf@...> 2010/08/31

On 08/30/2010 05:51 PM, Iain Barnett wrote:

[#368694] Re: Namespaces too looooooong — Iain Barnett <iainspeed@...> 2010/08/31

Re: can i do this in ruby? a simulation process

From: Brian Candler <b.candler@...>
Date: 2010-08-18 13:58:27 UTC
List: ruby-talk #367965
> sorry I'm totally suck in ruby here is my code:

For a newbie, it's a fine start, and this is the best way to learn.

In addition to the previous comments, I make the following observations:

>  $depart = rand(35)

I don't see any need to process the first car any differently from the 
subsequent ones, which means you should be able to simplify your code a 
lot, by putting *all* the car processing inside the loop.

In my case I assumed the first car left at time 0, but you could equally 
have it start at time 5-35.

Both cases are easily handled. Just initialize depart to 0 outside the 
loop, and then add 5-35 either at the top of the loop, or at the end (if 
the first car departs at time 0).

>      if $delay1==0;
>         $delay1 = $delay1+(1);
>      elsif $delay1==1
>         $delay1 = $delay1+(1);
>      end

I'm not sure what the above is trying to do. Both branches of the 'if' 
are saying $delay1 = $delay1 + 1, so you could replace all that with 
just

    $delay1 = $delay1 + 1

Or there is an equivalent shortcut,

    $delay1 += 1

If you want an integer random number between 1 and 30, you can do 
rand(30)+1

In my case I decided to go with floating point random numbers - rand*30 
gives a value between 0 and 29.99999 ... - but both are reasonable 
intepretations of the original question.

If you've decided to use integers, you have to decide if 5..35 includes 
both ends of the range. To get a value between 0 and 20 *inclusive* you 
need rand(21).

>   sleep($delay1)
>  $EXT = Time.now
>   sleep($delay2)
>  $CEXT = Time.now

I'd take this out. Firstly it's very slow to run the simulation in real 
time; secondly, you can't wait until the first car has arrived before 
the second one sets off; and thirdly, you can't rely on Time.now because 
your computer could be very busy doing other things which could result 
the sleep taking longer than you think. That is, sleep(n) only 
guarantees to sleep for *at least* n seconds, not exactly n seconds.

I suggest you simply calculate arrival time as departure time plus 
transit time.

> $passenger2= 1;
>  $delay101 = rand(10)

Here you calculate $delay101, but then never use it.

$passenger2 and $passenger1 are fixed, so at some point you need to 
consider some logic for choosing the number of passengers at random. But 
this can wait for now; simplifying the problem so that all cars have 2 
passengers, for example, will get you going more quickly.

>   $i = 1+1;

That's the same as $i = 2

By the way, you don't need semicolons at the end of the line. You only 
need them if you're putting multiple statements on the same line.

>       if $delay1==0
>          $delay1+(2)
>       elsif $delay1==1
>          $delay1+(2)
>       end

Those lines don't do anything at all. Note that

     $delay1+(2)

is the same as

     $delay1 + 2

which calculates a value, and then discards it, because it's not 
assigned anywhere.

I can't see what the $ET logic in this loop is doing, so I think you 
should add some comments to describe it, and if you can't, then think 
about rewriting it :-)

>     $totalTravel = $timewait.to_i

You haven't initialised $timewait, so this is the same as nil.to_i, 
which always returns zero. As a result, you always see a Total Traveling 
Time of 0 for the second and subsequent cars.

This is another good reason for not using global variables. If you had 
written

    total_travel = timewait.to_i

then ruby could have given you a helpful runtime error. You have not 
assigned to timewait earlier, so it's not a local variable, and neither 
do you have a method called 'timewait'.

This is also another good reason for treating all the cars the same, so 
that there's only one set of logic.

A minor stylistic point: conventionally, foo_bar is preferred over 
fooBar as a local variable name.

Finally: running the program with ruby -w will also spring up a few more 
warnings. These are because

   puts ("hello")

is considered bad form. Either omit the space before the parentheses, or 
leave out the parentheses altogether. i.e.

   puts("hello")    # fine
   puts( "hello" )  # also fine
   puts "hello"     # also fine

I hope there are a few useful pointers in there. So in summary:
* use local variables (foo) not global variables ($foo)
* process all cars inside the loop, so the first car isn't special
* calculate the departure and arrival times, don't use sleep and 
Time.now

I think you should now be able to assemble a program which loops round, 
printing the start and end times of each journey. Then you can add the 
random choice of number of passengers. Feel free to post your revised 
code as you go.

Once you've done that, all we need to do is work out the earliest time 
in which 500 people have arrived.

HTH,

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

In This Thread