# Boids, a use case

**URL:** <https://www.ruby-forum.com/t/boids-a-use-case/185537>\
**Category:** Ruby\
**Created:** [March 22, 2010, 11:50am UTC](https://www.ruby-forum.com/t/boids-a-use-case/185537 "2010-03-22T11:50:40Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![thunk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e495f1/32.png) [@thunk](https://www.ruby-forum.com/u/thunk)\
**Post date:** [March 22, 2010, 11:50am UTC](https://www.ruby-forum.com/t/boids-a-use-case/185537/1 "2010-03-22T11:50:40Z")

</div>

Guys,

My graphical ControlPanel is written in Wee for the web and without  
that there is only a bunch of “boring” text in my current development  
environment. The output is rather domain dependent because that is  
what I need to get done - the Boids are working better and faster than  
I was expecting, but so far I have not been doing some of the more far  
out things that I want to test. Its evolving rather rapidly at this  
point.  
So, I’ll offer to send a kg or two of spent Boid casings to anybody  
interested 🙂 - and that’s about all that makes sense unless somebody/  
some institutions would be interested in working along with me  
somehow. In the meantime there is a framework in there, the edges are  
fairly sharp but I don’t have a lot of time to pull it out and  
substitute something even more trivial than I’m working on.

I’d be happy to share the concept and chat with serious folks about  
the nature of it all the potential uses, otherwise, you won’t be  
seeing my “ramblings” here until I’m at the next stage or so.

Let me repeat what I’ve been trying to say: As far as I can see these  
things would be a worthless exercise in a lot of frustration EXCEPT  
that they seem to be made so simple to “author” / “create” /  
“write”/“program” - whatever it is you want to call it. And, again,  
the benefit I see to this is that people outside the Boid “machine”/  
System/Framework/ or whatever you want to call it can do this -  
anybody, anywhere, anytime thanks to the web.

Let me review a few highlights of it all first:

So what is a “boid”? - well, its a text file, its a ruby class, its  
written in Sections, and theres a DSL class dedicated to unraveling  
the statements of each Section. I keep them as simple as possible. To  
this end a module full of “HelperClases” have really, well, ahhh umm,  
helped. That’s what they do - but they also provide grist to the  
“Experts session” which is how the Boids are to be created/authored  
(but not “programmed” - that’s the point - these babies can be the  
result of “filling out a form” which in a sense is determined by the  
current state of the ClassBase and the Helper Libraries. A lot of  
reflection going on.)

What does a Boid do? It does what you want it to do within the  
confines of your domain. If the author is unknown, and not authorized

- whatever that means in the domain his Boid would like be assigned  
“candidate” stature and wait to be reviewed. If the author is an  
“insider” his Boid might get assigned for immediate duty (which makes  
it all more fun) for the author.

Some boids gather Attributes, Make assertions, and leave a record of  
this. That’s about it. But, although they are fired! serially for  
efficiency they can use the “spent casings” of previous “flights” to  
build upon. Don’t think in 10s or 100s - think in 1000’s and then  
you’ll see the potential of all this. In the 3 domains that I have  
worked on the “verify” Boids make from 2 to maybe 5 assertions - like  
I say they need to be kept simple. There is a “Conclusion” which is  
returns a Pass - NotPassed -Failed status. Every little step, and I  
mean every step, is recorded into the “blackbox” at least for now,  
very useful for debugging.

## Now the Use Case "story’

This is a story because while “the guts” of all this is working I  
don’t have a website up yet using it. I’m a applications guy, and my  
business arrangements with a certain wonderfully talented programmer  
did not work out due to changing goals and my inability to adopt  
quickly to GitHub.

Let’s get past money and go to real lives, and there is a “Boid”  
system online and functioning somewhere that takes has a lot of  
patient records. Every day from the beginning of the project some  
100,000 Boids representing all kinds of Drug related information are  
“fired!” at each patient record. If nothing is found, nothing is  
done, if something is found a text message is sent to the patient and  
the associated doctors and whatever makes sense.

This is pretty close to my actual project - and I just ran my 100 boid  
system with just to layers of knowledge (indications &  
contraindications) on 1000 fairly comprehensive simulated patient  
records - with some 100 health conditions picked on a privatively  
weighted sex/age basis. (Doesn’t really matter for timing does it?)  
It took 55 seconds on my 1/2 state-of-the-art machine.

Now, here’s the story part of this: A doctor in Israel was following  
standard procedures and prescribing Drug XYZ and Drug ABC for a recent  
heart surgery patient. He died, and it was clear that a certain  
“redline” condition together with the combination of drugs was the  
“cause” such as these things go. Drug ABC is fairly new to the market  
but it finding wider and wider use in certain countries.

YOU are taking these same drugs after your heart procedure.

Think what ever you want based on your experience with our health care  
system as it has been, I personally would not expect my doctor to know  
about this for months, and even if he did, I’d put the chances at a  
unsatisfactory level that he would make that connection with his busy  
schedule and things considered.

This is extreme but that’s my purpose in this, I’d like to see some  
serious consideration given to the power of all this Boid stuff, ok?

Let’s look at how things “could have happened” if a system of  
autonomous Boids were being fired! daily at patient records:

When something like this happens - the death of the patient in Israel

- is simply “reported” by something that appears like a form on the  
web. Its a series of prompts that is using reflection to bring up the  
very latest in HelperLibrary names, and ‘?’ methods. This Boid is  
assigned a status, and is automatically put into the stack of Boids on  
the national system. This is cloned to the regional system. The next  
time YOUR patient record is Fired! upon - up pops a series of messages  
authored in Israel only a few hours ago. You get a text message,  
stop taking ABC and can live to play golf for another 10 years 🙂

Note that nobody had to do a thing on the receiving end, it could all  
happen because of the architecture of the system. How complex was  
that Boid? Not very!

=================

There are a lot of Apps possible that could check your computer parts  
shopping cart, check your bicycle design or whatever that could use  
the same concept without all the drama. Day in and day out. My  
project was kicked off in exactly such a scenerio - building my  
Hackentosh and not being sure if all the components would go together  
(they did, I reboot every 3 months or so:) Thank you Asus,).

=================

All in all, I’m 100% ready and willing to share this all with serious  
folks /institutions or whatever on some sort of basis. I’m not ready  
to switch from thinking about software issues to thinking what other  
people think about it.

Thunk

---

<div class="post-metadata">

**Author:** ![thunk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e495f1/32.png) [@thunk](https://www.ruby-forum.com/u/thunk)\
**Post date:** [March 22, 2010, 12:30pm UTC](https://www.ruby-forum.com/t/boids-a-use-case/185537/2 "2010-03-22T12:30:28Z")

</div>

I’ve got a lot of serious work to get done, and based on everything  
I’ve just decided to stop my “rambling” here, and get back 100% into  
the fun stuff - trying to see how far our mutual girlfriend Ruby can  
do at the intersection of my domains of interest.

In the not too far future I can see setting up a Heroku site for the  
“Expert Session” so folks can author a boid and see it get Fired! a  
few minutes later with his name attached telling the world whatever  
when whatever should show up on some constantly running simulator.  
Now THAT would anchor the power of this stuff.

Otherwise, I will save you guys any more ramblings and only check back  
in a few weeks. No need to insult me. Anybody seeing this that sees  
the serious potential can contact me by Email. I’ve already sent off  
screen captures of the Wee based “expert session” and an example boid  
to somebody here. The plan is to use our “[TheSwarmShepards.com](http://TheSwarmShepards.com)” site  
for presenting the technology when its ready.

Thunk

---

<div class="post-metadata">

**Author:** ![thunk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e495f1/32.png) [@thunk](https://www.ruby-forum.com/u/thunk)\
**Post date:** [March 22, 2010, 12:32pm UTC](https://www.ruby-forum.com/t/boids-a-use-case/185537/3 "2010-03-22T12:32:13Z")

</div>

Sorry still no clearer as to what you are talking about.

> what is a “boid”? - well, its a text file, its a ruby class

Oh, well then I’ve been creating boids for years. That is to say that I  
have  
written Ruby classes in text files and yes I too have used DSLs.

Maybe a technical writing course would be in order.

---

<div class="post-metadata">

**Author:** ![thunk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e495f1/32.png) [@thunk](https://www.ruby-forum.com/u/thunk)\
**Post date:** [March 22, 2010, 1:14pm UTC](https://www.ruby-forum.com/t/boids-a-use-case/185537/4 "2010-03-22T13:14:57Z")

</div>

On Mon, Mar 22, 2010 at 12:31 PM, Peter H.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Sorry still no clearer as to what you are talking about.
> 
> > what is a “boid”? - well, its a text file, its a ruby class
> 
> Oh, well then I’ve been creating boids for years. That is to say that I have  
> written Ruby classes in text files and yes I too have used DSLs.
> 
> Maybe a technical writing course would be in order.

No because than the list will be frequented by James, David, yourself  
(I guess) and some others that have experience in this field (sorry  
for being bad with names).  
Furthermore you do not even know if OP is a native speaker and unless  
she is she has much merit for expressing herself in English (and  
although OP is probably male I do not like to base my post on this  
assumption either, if this is considered impolite I would be very sad  
and apologize in advance).

But I would like to make some productive (I hope) criticism too,  
links???

> **[Boids (Flocks, Herds, and Schools: a Distributed Behavioral
Model)](http://www.red3d.com/cwr/boids/)**
>
> Background and update on BOIDS, the 1987 model of group motion in
> flocks, herds, schools and related phenomena. Includes a Java-based
> demonstration and many links to related research and
> applications.

> **[Boids](https://en.wikipedia.org/wiki/Boids)**
>
> Boids is an artificial life program, developed by Craig Reynolds in 1986, which simulates the flocking behaviour of birds. His paper on this topic was published in 1987 in the proceedings of the ACM SIGGRAPH conference. The name "boid" corresponds to a shortened version of "bird-oid object", which refers to a bird-like object.
> As with most artificial life simulations, Boids is an example of emergent behavior; that is, the complexity of Boids arises from the interaction of individual agents (th...

do those apply?  
Thx in advance.

Robert

---

<div class="post-metadata">

**Author:** ![thunk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e495f1/32.png) [@thunk](https://www.ruby-forum.com/u/thunk)\
**Post date:** [March 22, 2010, 2:02pm UTC](https://www.ruby-forum.com/t/boids-a-use-case/185537/5 "2010-03-22T14:02:21Z")

</div>

Sorry I don’t know why Gmail is posting things twice

---

<div class="post-metadata">

**Author:** ![thunk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e495f1/32.png) [@thunk](https://www.ruby-forum.com/u/thunk)\
**Post date:** [March 22, 2010, 2:00pm UTC](https://www.ruby-forum.com/t/boids-a-use-case/185537/6 "2010-03-22T14:00:35Z")

</div>

The OP is displaying an excellent command of English and that is good  
enough  
for me regardless of whether they are a native speaker or not (if not  
then  
I’m even more impressed). However the term boids is a known one and the  
OPs  
use of the term does not click with my understanding and I have a degree  
in  
Artificial Intelligence.

It does not seem like a misunderstanding of the term boids, I suspect  
that  
the OP has appropriated the term for something else. But I cannot fathom  
what. However I am willing to accept that they have an interesting idea  
to  
express if only they would focus. This place (the newsgroup / mailing  
list /  
forum) is a place for communication but at this stage I have learned  
nothing  
about they they are talking about and the whole burden of communication  
seems to be on us, the OP does not seem to be trying to be understood.

---

<div class="post-metadata">

**Author:** ![thunk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/e495f1/32.png) [@thunk](https://www.ruby-forum.com/u/thunk)\
**Post date:** [March 22, 2010, 2:27pm UTC](https://www.ruby-forum.com/t/boids-a-use-case/185537/7 "2010-03-22T14:27:31Z")

</div>

On Mon, Mar 22, 2010 at 7:01 AM, Peter H. \<  
removed\_email\_address@domain.invalid\> wrote:

> Sorry I don’t know why Gmail is posting things twice

Gmail shows you your post in a thread. The mailing list sends everyone  
on  
the list every message, so you also receive the message you sent, which  
gmail also adds to the thread. I think there is an option to tell the  
list  
to not send you emails that you have written, but I like to have it as a  
confirmation that my post was sent.

The point is, you are the only one who sees two posts, the one you sent,  
and  
the one you received.
