[#389739] Ruby Challenge — teresa nuagen <unguyen90@...>

Here is a ruby challenge for all you computer science lovers out there,

22 messages 2011/11/05
[#389769] Re: Ruby Challenge — "Jonan S." <jonanscheffler@...> 2011/11/05

Totally unrelated to any husker computer science programs right? Like

[#389905] Re: Ruby Challenge — Stephen Ramsay <sramsay.unl@...> 2011/11/09

Jonan S. wrote in post #1030330:

[#389907] Re: Ruby Challenge — aseret nuagen <unguyen90@...> 2011/11/09

> You mean like the professor for the course? Because that would be me .

[#389915] Re: Ruby Challenge — Robert Klemme <shortcutter@...> 2011/11/09

On Wed, Nov 9, 2011 at 4:52 AM, aseret nuagen <unguyen90@aim.com> wrote:

[#389792] Tricky DSL, how to do it? — Intransition <transfire@...>

I'd want to write a DSL such that a surface method_missing catches

18 messages 2011/11/06

[#389858] Compiling Ruby Inline C code - resolving errors — Martin Hansen <mail@...>

I am trying to get this Ruby inline C code http://pastie.org/2825882 to

12 messages 2011/11/08

[#389928] Forming a Ruby meetup group... — "Darryl L. Pierce" <mcpierce@...>

Where I work we have a local Ruby group that used to meet up, until the

12 messages 2011/11/09

[#389950] The faster way to read files — "Noé Alejandro" <casanejo@...>

Does anybody know which is the fastest way to read a file? Lets say

18 messages 2011/11/09

[#390064] referring to version numbers in a gem — Chad Perrin <code@...>

How do I specify and access a gem's version number within the code of the

28 messages 2011/11/11

[#390238] RVM problem, plz help — Misha Ognev <b1368810@...>

Hi, I have this problem:

15 messages 2011/11/16

[#390308] any command line tools for querying yaml files — Rahul Kumar <sentinel1879@...>

(Sorry, this is not exactly a ruby question).

11 messages 2011/11/18

[#390338] Newbie - cmd question — Otto Dydakt <ottodydakt@...>

I've literally JUST downloaded ruby from rubyinstaller.org.

21 messages 2011/11/19
[#390342] Re: Newbie - cmd question — Otto Dydakt <ottodydakt@...> 2011/11/19

OK thank you, I uninstalled & reinstalled, checking the three boxes at

[#390343] Re: Newbie - cmd question — "Ian M. Asaff" <ian.asaff@...> 2011/11/19

did you type "irb" first to bring up the ruby command prompt?

[#391154] Re: Newbie - cmd question — "Hussain A." <hahmad@...> 2011/12/12

Hi all,

[#391165] Re: Newbie - cmd question — Luis Lavena <luislavena@...> 2011/12/12

Hussain A. wrote in post #1036281:

[#390374] Principle of Best Principles — Intransition <transfire@...>

I seem to run into a couple of design issue a lot and I never know what is

16 messages 2011/11/20

[#390396] how to call Function argument into another ruby script. — hari mahesh <harismahesh@...>

Consider I have a ruby file called library.rb.

10 messages 2011/11/21

[#390496] How to make 1.9.2 my default version using RVM — Fily Salas <fs_tigre@...>

Hi,

25 messages 2011/11/24

[#390535] Is high-speed sorting impossible with Ruby? — "Gaurav C." <chande.gaurav@...>

Well, first of all, I'm new to Ruby, and to this forum. So, hello. :)

39 messages 2011/11/25
[#390580] Re: Is high-speed sorting impossible with Ruby? — Joao Pedrosa <joaopedrosa@...> 2011/11/27

Hi,

[#390593] Re: Is high-speed sorting impossible with Ruby? — "Gaurav C." <chande.gaurav@...> 2011/11/27

Joao Pedrosa wrote in post #1033884:

[#390600] Re: Is high-speed sorting impossible with Ruby? — Douglas Seifert <doug@...> 2011/11/27

A big gain can be had by disabling the garbage collector. Here is my best

[#390601] Re: Is high-speed sorting impossible with Ruby? — Douglas Seifert <doug@...> 2011/11/27

I've thrown various solutions up on github here:

[#390650] Loading a faulty ruby file - forcing this — Marc Heiler <shevegen@...>

Hi.

10 messages 2011/11/29

[#390689] Stupid question — James Gallagher <lollyproductions@...>

Hi everyone.

22 messages 2011/11/30

Re: model "lift-passengers" and concurrent programming

From: Sam Duncan <sduncan@...>
Date: 2011-11-13 20:14:27 UTC
List: ruby-talk #390141
On 14/11/11 08:51, Roman Faceless wrote:
> Hi,
>
> I'm trying to write a model of an elevator with one button. Elevator can
> take passengers along the way when going down.
>
> But in my code some error. Because passengers press a button only when
> the elevator carries passengers. And no passengers push the button when
> the elevator is free.
>
> I took a producer-consumer model.
>
>
> require 'semaphore'
> t0 = Time.now
>
> max=5#the maximum number of passengers
> c = 10#number of iterations
>
> tp = []#producer
> tc = []#consumer
>
>
> ffrom=Array.new(max)#floor, where the button is pressed
> fto=Array.new(max)#floor, which requires the passenger
>
> prod_from=[]#producer: floor where the passenger has been taken
> prod_to=[]#producer:floor where the passenger has arrived
> cons_from=[]#consumer: floor where the passenger has been taken
> cons_to=[]#floor where the passenger has arrived
>
> buf = Array.new(max)#buffer of lift
> s1 = Semaphore.new(buf.size)#overflow protection
> s2 = Semaphore.new(0)
> m  = Semaphore.new(1)
> first=true
>
> producer = Thread.new do#producer
>    i = 0
>    j=0
>    c.times do
>      #sleep(rand(5)%5)
>      good_pas=false
>      m.P
>      d = rand(8)+1
>      puts "button is pressed on the #{d}th floor" unless(first)
>      unless(first)then
>        if((d>fto[j])and(d<=ffrom[j]))then
>          good_pas=true
>          puts "passenger can be allowed\n"
>        else
>          puts "passenger can't be allowed\n"
>        end
>      end
>      j = ( j + 1 ) % buf.size unless(first)
>      m.V unless(good_pas)
>      ffrom[i]=d
>      fto[i]=rand(8)+1;
>      first=false
>      while(fto[i]==ffrom[i])do fto[i]=rand(8)+1;  end
>      prod_from<<ffrom[i]
>      prod_to<<fto[i]
>      tp<<  d
>      s1.P
>      m.P unless(good_pas)
>      puts "\nfrom the #{ffrom[i]}th floor passenger came and asked for
> #{fto[i]}th floor"
>      buf[i] = d
>      m.V
>      s2.V
>      i = ( i + 1 ) % buf.size
>    end
> end
>
> consumer = Thread.new do#consumer
>    i = 0
>    c.times do
>      s2.P
>      m.P
>      d = buf[i]
>      puts "\npassenger arrived from the #{ffrom[i]}th floor to the
> #{fto[i]}th floor"
>      cons_from<<ffrom[i]
>      cons_to<<fto[i]
>      m.V
>      s1.V
>      tc<<  d
>      i = ( i + 1 ) % buf.size
>    end
> end
>
> producer.join
> consumer.join
>
> puts "\nproducer - floors where the passenger went into the
> lift:\n\t["+prod_from.join(',')+"]"
> puts "produser - floor where the passenger came out of the
> lift:\n\t["+prod_to.join(',')+"]"
> puts "consumer - floor where the passenger went into the
> lift:\n\t["+cons_from.join(',')+"]"
> puts "consumer - floor where the passenger came out of the
> lift:\n\t["+cons_to.join(',')+"]"
>
> puts "\n\n:prod_from==cons_from: #{prod_from==cons_from}"
> puts "\nprod_to==cons_to: #{prod_to==cons_to}"
> puts "time: #{Time.now - t0}"
>
>
> Can someone give me some advice about rhis problem?
>
Can you post your semaphore implementation?

Sam


In This Thread