[#365153] synchronize a "mocked" clock in a distributed system — Chuck Remes <cremes.devlist@...>

I've been banging on a problem for a few days now and don't feel any closer to solving it. I'm hoping some of the big brains on the ruby ML can shed some light. Following are a few paragraphs with a brief system overview before I state the problem. I apologize in advance for this question being only tangentially related to Ruby the language. :)

13 messages 2010/07/01
[#365164] Re: [Q] synchronize a "mocked" clock in a distributed system — Tony Arcieri <tony.arcieri@...> 2010/07/01

On Thu, Jul 1, 2010 at 3:10 PM, Chuck Remes <cremes.devlist@mac.com> wrote:

[#365214] RubyGoLightly Progress Report — Eleanor McHugh <eleanor@...>

I seem to have been missing in action for the best part of six months so =

14 messages 2010/07/02

[#365320] Why am I not getting the expected output? — Abder-rahman Ali <abder.rahman.ali@...>

I have the following code: http://pastie.org/1032525, but always getting

11 messages 2010/07/06

[#365351] best way to make .rb into an executable for linux? — David Ainley <wrinkliez@...>

I have a pretty basic .rb script that I would like to turn into an

11 messages 2010/07/06

[#365374] Hashes don't allow preceding commas by design? — Iain Barnett <iainspeed@...>

This is the output from irb that shows ruby 1.9.1 doesn't like hash =

12 messages 2010/07/07

[#365413] What is meant by those lines of code in this script? — Abder-rahman Ali <abder.rahman.ali@...>

I came across the following script from "Why's poignant guide to Ruby".

9 messages 2010/07/07

[#365504] FIRST PROGRAMMING PROBLEM Array — Francisco Martinez <calabazag@...>

Hi...I'm trying to solve a very simple exercise but this is one of my

12 messages 2010/07/09

[#365513] what about allowing to specify, which end belongs to which start? — Jan Lelis <prog@...>

Hi Ruby mailing list,

24 messages 2010/07/09
[#365541] Re: what about allowing to specify, which end belongs to which start? — Caleb Clausen <vikkous@...> 2010/07/10

On 7/9/10, Jan Lelis <prog@janlelis.de> wrote:

[#365548] Re: what about allowing to specify, which end belongs to which start? — Robert Klemme <shortcutter@...> 2010/07/11

On 10.07.2010 17:54, Caleb Clausen wrote:

[#365551] Re: what about allowing to specify, which end belongs to which start? — Caleb Clausen <vikkous@...> 2010/07/11

On 7/11/10, Robert Klemme <shortcutter@googlemail.com> wrote:

[#365555] Re: what about allowing to specify, which end belongs to which start? — Robert Klemme <shortcutter@...> 2010/07/11

On 11.07.2010 13:32, Caleb Clausen wrote:

[#365574] Re: what about allowing to specify, which end belongs to which start? — Caleb Clausen <vikkous@...> 2010/07/11

On 7/11/10, Robert Klemme <shortcutter@googlemail.com> wrote:

[#365570] How to pass a hash as a param to a method called through eval? — Alex Stahl <astahl@...5.com>

Hi Folks - I've got a data-driven app I'm building, and I'd like to be

14 messages 2010/07/11

[#365615] Try Ruby is back online. — andrew mcelroy <sophrinix@...>

Greetings,

10 messages 2010/07/12

[#365721] Ruby garabage collector — Abder-Rahman Ali <abder.rahman.ali@...>

In the "Why's poignant guide to Ruby" book, it states the following:

22 messages 2010/07/13

[#365752] What does this do? — Abder-Rahman Ali <abder.rahman.ali@...>

I have this portion of code from "Why's poignant guide to Ruby" book.

12 messages 2010/07/13

[#365828] click a javascript dialog window in Firefox — Mario Ruiz <tcblues@...>

Hi,

9 messages 2010/07/14

[#365844] Return nothing when looking outside the bounds of 2D array? — Shawn W_ <shawnw@...>

I have a 2D Array. I have written a method

22 messages 2010/07/14
[#365850] Re: Return nothing when looking outside the bounds of 2D array? — w_a_x_man <w_a_x_man@...> 2010/07/14

On Jul 14, 3:56=A0pm, Shawn W_ <sha...@internode.on.net> wrote:

[#365853] Re: Return nothing when looking outside the bounds of 2D array? — Shawn W_ <shawnw@...> 2010/07/15

Thx. Don't quite understand that code. I tried plugging in some nils but

[#365869] Re: Return nothing when looking outside the bounds of 2D array? — Shawn W_ <shawnw@...> 2010/07/15

A better way to describe it.

[#365871] Re: Return nothing when looking outside the bounds of 2D array? — Dave Howell <groups.2009a@...> 2010/07/15

I was going to suggest using the 'case' statement instead of all those =

[#365938] Re: Return nothing when looking outside the bounds of 2D array? — Shawn W_ <shawnw@...> 2010/07/16

Okay, just found out that...

[#365944] Re: Return nothing when looking outside the bounds of 2D array? — Martin DeMello <martindemello@...> 2010/07/16

On Fri, Jul 16, 2010 at 11:11 AM, Shawn W_ <shawnw@internode.on.net> wrote:

[#365847] Ruby best practice for "always on" app/service? — yermej <yermej@...>

I'm building an app that will essentially be a web service client. It

10 messages 2010/07/14

[#365988] client-side Ruby on iPad/iPhone? — Jeff Pritchard <jp@...>

I've seen jRuby and IronRuby, and really want to use them since i really

12 messages 2010/07/17

[#366015] ruby abstraction — "James O'Brien" <jeob32@...>

Hi,

17 messages 2010/07/18

[#366053] LoadError: no such file to load -- tk — Rich Leblanc <rl001@...>

I'm trying to install Ruby on a 64 bit Windows 7 machine following this

46 messages 2010/07/19
[#366063] Re: LoadError: no such file to load -- tk — Roger Pack <rogerpack2005@...> 2010/07/19

[#366082] Re: LoadError: no such file to load -- tk — Rich Leblanc <rl001@...> 2010/07/19

Roger Pack wrote:

[#366085] Re: LoadError: no such file to load -- tk — Eric Christopherson <echristopherson@...> 2010/07/19

On Mon, Jul 19, 2010 at 3:26 PM, Rich Leblanc <rl001@pacbell.net> wrote:

[#366086] Re: LoadError: no such file to load -- tk — Rich Leblanc <rl001@...> 2010/07/20

Eric Christopherson wrote:

[#366135] Re: LoadError: no such file to load -- tk — Roger Pack <rogerpack2005@...> 2010/07/20

[#366140] Re: LoadError: no such file to load -- tk — Rich Leblanc <rl001@...> 2010/07/20

Roger Pack wrote:

[#366147] Re: LoadError: no such file to load -- tk — Roger Pack <rogerpack2005@...> 2010/07/20

Rich Leblanc wrote:

[#366153] Re: LoadError: no such file to load -- tk — Rich Leblanc <rl001@...> 2010/07/20

Roger Pack wrote:

[#366179] Re: LoadError: no such file to load -- tk — Rich Leblanc <rl001@...> 2010/07/21

Rich Leblanc wrote:

[#366115] Count occurences of vars in array — Vitaliy Yanchuk <fuksito@...>

Hello, everyone.

18 messages 2010/07/20
[#366116] Re: Count occurences of vars in array — Jean-Julien Fleck <jeanjulien.fleck@...> 2010/07/20

Hello,

[#366120] Re: Count occurences of vars in array — Vitaliy Yanchuk <fuksito@...> 2010/07/20

Jean-Julien Fleck, thanks.

[#366152] Can't get ruby 1.9 to work after install on OSX — Musdev Musdev <devrubygem@...>

Hello

12 messages 2010/07/20

[#366196] how to make "gem install rmagick" work? — Jian Lin <blueskybreeze@...>

I wanted to install rmagick on Win7 but it can't install:

10 messages 2010/07/21

[#366226] Text to Binary — Umm Whyshouldisay <kipthemudkip@...>

Hi! I'm new to the forums. I'm also a bit new to Ruby. I already know

13 messages 2010/07/21

[#366254] finding last line in a file — Ted Flethuseo <flethuseo@...>

Hi everyone,

15 messages 2010/07/22
[#366256] Re: finding last line in a file — Urabe Shyouhei <shyouhei@...> 2010/07/22

Take a look at the doc for File.readline.

[#366257] Re: finding last line in a file — Urabe Shyouhei <shyouhei@...> 2010/07/22

(2010/07/22 14:08), Urabe Shyouhei wrote:

[#366319] Typical Ruby (non-rails) project structure. — Carl Jenkins <carljenkins@...>

What is/are the best-practice(s) for a Ruby project structure?

18 messages 2010/07/22

[#366418] Ruby books designed especially for beginngers — Kaye Ng <sbstn26@...>

Hey experts, i need your advice.

12 messages 2010/07/24

[#366611] Which Ruby is in use? — Hassan Schroeder <hassan.schroeder@...>

Is there a way to tell from within a program which executable is being

23 messages 2010/07/27
[#366614] Re: Which Ruby is in use? — "Joseph E. Savard" <joseph.savard@...> 2010/07/27

[#366617] Re: Which Ruby is in use? — Hassan Schroeder <hassan.schroeder@...> 2010/07/27

On Tue, Jul 27, 2010 at 2:20 PM, Joseph E. Savard

[#366620] Re: Which Ruby is in use? — Joel VanderWerf <joelvanderwerf@...> 2010/07/27

Hassan Schroeder wrote:

[#366622] Re: Which Ruby is in use? — Hassan Schroeder <hassan.schroeder@...> 2010/07/27

On Tue, Jul 27, 2010 at 3:10 PM, Joel VanderWerf

[#366624] Re: Which Ruby is in use? — Joel VanderWerf <joelvanderwerf@...> 2010/07/27

Hassan Schroeder wrote:

[#366625] Re: Which Ruby is in use? — Hassan Schroeder <hassan.schroeder@...> 2010/07/27

On Tue, Jul 27, 2010 at 3:52 PM, Joel VanderWerf

[#366626] Re: Which Ruby is in use? — Joel VanderWerf <joelvanderwerf@...> 2010/07/27

Hassan Schroeder wrote:

[#366629] tool to compare DB schema against DDL file — Fabian Marin <fmg134s@...>

First of all any feedback from you guys will be of tremendous help.

14 messages 2010/07/28

[#366727] my script just read one line? — Junhui Liao <junhui.liao@...>

Dear all,

19 messages 2010/07/29
[#366729] Re: my script just read one line? — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2010/07/29

On Thu, Jul 29, 2010 at 1:43 PM, Junhui Liao <junhui.liao@uclouvain.be> wro=

[#366766] Re: my script just read one line? — Junhui Liao <junhui.liao@...> 2010/07/29

Dear Jes炭s Gabriel y Gal叩n and all,

[#366774] Re: my script just read one line? — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2010/07/30

On Fri, Jul 30, 2010 at 1:58 AM, Junhui Liao <junhui.liao@uclouvain.be> wro=

[#366784] Re: my script just read one line? — Junhui Liao <junhui.liao@...> 2010/07/30

[#366786] Re: my script just read one line? — Jes俍 Gabriel y Gal疣 <jgabrielygalan@...> 2010/07/30

On Fri, Jul 30, 2010 at 2:18 PM, Junhui Liao <junhui.liao@uclouvain.be> wro=

[#366792] Re: my script just read one line? — Junhui Liao <junhui.liao@...> 2010/07/30

Dear Jes炭s Gabriel y Gal叩n,

[#366755] .any?{} Behavior — John Sikora <john.sikora@...>

I find the following behavior interesting (so interesting that I

28 messages 2010/07/29
[#366797] Re: [].all?{} and [].any?{} Behavior — Rick DeNatale <rick.denatale@...> 2010/07/30

On Thu, Jul 29, 2010 at 5:27 PM, John Sikora <john.sikora@xtera.com> wrote:

[#366809] Re: [].all?{} and [].any?{} Behavior — Josh Cheek <josh.cheek@...> 2010/07/30

On Fri, Jul 30, 2010 at 10:49 AM, Rick DeNatale <rick.denatale@gmail.com>wrote:

[#366837] Mocking a method with a block — Fernando Guillen <fguillen.mail@...>

Hi people,

12 messages 2010/07/31

Re: Return nothing when looking outside the bounds of 2D array?

From: Dave Howell <groups.2009a@...>
Date: 2010-07-16 21:30:48 UTC
List: ruby-talk #365973
On Jul 15, 2010, at 14:45 , Shawn W_ wrote:

> Dave Howell wrote:
>> I was going to suggest using the 'case' statement instead of all =
those=20
>> elsifs, but then I realized there was an even better way.
>>=20
>> class Array2D
>>=20
>>  Delta=3D[[0,0], [0,1], [1,1], [1,0], [1,-1], [0,-1], [-1,-1], =
[-1,0],=20
>> [-1,1]]
>>  attr_reader :width, :height
>>=20
>>  def initialize(width, height)
>>    @width =3D width
>>    @height =3D height
>>    @data =3D Array.new(@width) { Array.new(@height) }
>>  end
>>=20
>>  def [](x, y, z)
>>    deltaX, deltaY =3D *Delta[z]
>>    x =3D x + deltaX % @width
>>    y =3D y + deltaY
>>    @data[x][y] unless y<0 or y>@height
>>  end
>>=20
>>  def []=3D(x, y, z, value)
>>    deltaX, deltaY =3D *Delta[z]
>>    x =3D (x + deltaX) % @width # modulus % allows wrapping
>>    y =3D y + deltaY
>>    @data[x][y] =3D value unless y<0 or y>(@height-1)
>>  end
>> end
>>=20
>>=20
>> Obviously the Delta array takes the place of the elsif chains in both =
[]=20
>> and []=3D. Also, :width and :height are defined with attr_reader, not=20=

>> attr_accessor, since it doesn't do any good at all to change those=20
>> values after the array has been created.
>=20
> Just be aware I'm a complete newb at programing and Ruby, so the more=20=

> elegant the code, the harder it is for me to read.

Well, for what it's worth, it could have been 'eleganted' far more =
unreadably than this. {grin}


> David, I tried your solution but it still falls over. Don't you need =
to=20
> specify what happens if y<0 or y>(@height-1) is the case? I tried...
>=20
>    if y<0 or y>(@height-1)
>        nil
>      else
>        @data[x][y] =3D value
>    end
>=20
> ...but that didn't work? It falls over the moment it looks north from=20=

> the top row, or looks south east from the bottom row.

As you've discovered, "unless" is the same as "if not", and=20

	(result) if (test)=20

is the same as

	if (test) then
		(result)
	else
		nil
	end

Note that you can also do=20

	myAnswer =3D if (test) then
			(result)
		else
			nil
		end

which is the same as

	if (test) then
		myAnswer =3D (result)
	else
		myAnswer =3D nil
	end

So, putting it all together, you could say

	myAnswer =3D (result) if (test)

If (test) is true, myAnswer will get (result). If it's not true, it will =
get nil.


>=20
> Also, I understand the line...
>=20
> deltaX, deltaY =3D *Delta[z]
>=20
> ...is allocating the Delta array values to the deltaX and deltaY=20
> variables based on the direction z given, but what is the * symbol=20
> doing?

Splitting the array into pieces. Except that when I tested it just now, =
it's apparently unnecessary. I didn't know that!

> By the way, my program uses a hex grid, not a square grid - I posted a=20=

> square grid just for clarity. Adjacent cells directions change for odd=20=

> and even rows on a hex grid, but I think I can just create two Delta=20=

> arrays (Delta_even and Delta_odd) and modify the 1,0,-1 values for =
each,=20
> then check for odd/eveness in y.

I've worked with hex grids before. You don't need a pair of arrays, you =
can model a hex grid with a normal 2-d array.=20

Hex: 0=3Dsame, 1 =3D upper right, 2 =3D right, 3 =3D lower right, 4 =3D =
lower left, 5 =3D left, 6 =3D upper left, with [0,0] in the upper left =
of the grid.

	Delta=3D[[0,0], [0.5,-1], [1,0], [0.5,1], [-0.5,1], [-1,0], =
[-0.5,-1]]

If you're in an odd row (y%2 =3D=3D1), then add 0.75 to x. If you're in =
an even row, add 0.25. Then drop the decimal part to get your x,y =
values.

	x =3D (x + deltaX + 0.25 + (0.5 if y%2 =3D=3D1).to_f).to_i

The ".to_f" is needed because if y%2 is NOT =3D=3D 1, the result is =
"nil", and you can't add nil to a number, so the .to_f converts 'nil' to =
"0.0".=20

Imagine each co-ordinate is a brick in a normal wall of bricks. Every =
other row is slid over a bit, so you have to zig-zag in order to go =
'straight down" the wall. You might need to play around with it to see =
why it works . . .

> The error I'm getting is...
>=20
> undefined method `[]=3D' for nil:NilClass (NoMethodError)
>=20
> ...when the program hits this part of the code...
>=20
> Array2D[x,y,1] =3D "X "

I don't consider myself a hard-core Ruby expert, so I wouldn't be =
surprised if there was a bug in my code. On the other hand, I'll bet =
part of the problem is that you appear to be confusing a Class with an =
instance. You can't (or shouldn't normally be able to) assign anything =
to "Array2D".=20

	myTerritory =3D Array2D.new
	myTerritory[3,4,1] =3D "X "

	enemyTerritory =3D Array2D.new
	enemyTerritory[2,3,1] =3D "X "


Now, it *is* possible to define Array2D in a way that would let you say =
something like Array2D[x,y,1] =3D "X " and have it work, but we haven't =
done that here and I don't think you want to. There are . . . =
ramifications . . .=

In This Thread