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
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.