From: thunk on


http://gist.github.com/343358

This seems to work with decent performance but I have little/no
experience using some of these features - almost seems "too good to
be true" to this old time programmer that spent days designing/testing
linked lists in the old days.... its 40 lines of code that seems to
have some pretty cool abilities. (And ya, it could be a hash of
hashes...)

I had this idea based on something I saw in 'Builder' and have read
about and tonight I just spent sometime testing it and it just worked
right out of the gate. It seems to work for my special purposes -
will chat about that below if somebody is interested (involves the
Boid project).

Mostly I'd appreciate any kind of warning if this seems to be some
sort of a boon_doggle. Design wise it seems so simple and would allow
me to clean up some issues communication issues (between passes)

I'm not looking for pointers on how to save a line of code or too
worried about conventions just now, please. My question is if this
approach is being used "around" and if it seems likely to stand up to
some fairly heavy use - that would be maybe 500 or so "satz" per pass
in the not so far future.

thunk


ps concerning this and the 'boid' design I now have about 50 boids
in each of two "waves" and I have established communications between
passes. (They are fired! serially) and so on BUT it is just getting
awkward as implemented with some redundancy creeping in. Oh no. I've
been thinking about this for awhile.

The problem is that every "boid" leaves a "casing" and the "casing" is
all that is left after it gets fired. But it is terrible design to
have to expand the "casings" for communications, this is a way to keep
it generic so a Framework can get lifted out of this project
eventually.

Anyway the idea is that each HelperClass assisting the Boid can "throw
anything potentially useful" onto one "WhiteBoard" per pass. Then the
ControlPanel and other things responsible for figuring out "what
happened" can review the WhiteBoard for their specific purposes.

From: Peter Hickman on
[Note: parts of this message were removed to make it a legal post.]

Minor quibble. The code dies not run for me under 1.8.7

white.rb:13:in `method_missing': wrong number of arguments (2 for 1)
(ArgumentError)
from white.rb:13:in `put_satz'
from white.rb:56

Secondly it is hard to make sense of the code without some idea as to what
it is supposed to do, incomplete code at that.

If you could say what the code is supposed to implement, the problem rather
than the solution, then we will have something to say about it. It could be
a perfect implementation with nothing more to be done or it could be the
worst. Without knowing what it is supposed to solve there is little anyone
can say beyond, maybe, some minor tweaks.

The members of this list will be more than willing to help you, but we are
not psychic.

From: Andrew Wagner on
[Note: parts of this message were removed to make it a legal post.]

I would be very interested in hearing more about what problem is being
solved here too.

On Thu, Mar 25, 2010 at 9:36 AM, Peter Hickman <
peterhickman386(a)googlemail.com> wrote:

> Minor quibble. The code dies not run for me under 1.8.7
>
> white.rb:13:in `method_missing': wrong number of arguments (2 for 1)
> (ArgumentError)
> from white.rb:13:in `put_satz'
> from white.rb:56
>
> Secondly it is hard to make sense of the code without some idea as to what
> it is supposed to do, incomplete code at that.
>
> If you could say what the code is supposed to implement, the problem rather
> than the solution, then we will have something to say about it. It could be
> a perfect implementation with nothing more to be done or it could be the
> worst. Without knowing what it is supposed to solve there is little anyone
> can say beyond, maybe, some minor tweaks.
>
> The members of this list will be more than willing to help you, but we are
> not psychic.
>

From: Caleb Clausen on
On 3/25/10, thunk <gmkoller(a)gmail.com> wrote:
>
>
> http://gist.github.com/343358

I'm still trying to understand what you're doing. Sometimes, your
verbiage reminds me of rinda, not that I know much about rinda either.
Your WhiteBoard might be like a Rinda::TupleSpace...? Perhaps you can
to compare and contrast the two?

Unfortunately, documentation on rinda looks kinda sparse... but maybe
this will help some:

http://ruby-doc.org/stdlib/libdoc/rinda/rdoc/index.html

From: thunk on
PS I meant to mention that I did a quick check to use Marshall Dump
and it does not play with the singleton stuff. PickAx 1.9, p421 I
have no immediate need for memory balancing or whatever yet, but the
pickAx book provides some examples on about the same page.