1997Q2/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: Resets and repops -->
<!--X-From-R13: pbqreNvoz.arg -->
<!--X-Date: from major.globecomm.net [207.51.48.5] by mx01.ny.us.ibm.net id 860270895.87831&#45;1 Sat Apr  5 20:08:15 1997 -->
<!--X-Message-Id: 199704052008.UAA253171#out1,ibm.net -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 199704010747.HAA199507#out1,ibm.net -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, Re: Resets and repops</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:coder#ibm,net">
</head>
<body background="/backgrounds/paperback.gif" bgcolor="#ffffff"
      text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000">

  <font size="+4" color="#804040">
    <strong><em>MUD-Dev<br>mailing list archive</em></strong>
  </font>
      
<br>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->

Date:&nbsp;
[&nbsp;<a href="msg00022.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00024.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00088.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00052.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00023">Author</A>
&nbsp;|&nbsp;<A HREF="#00023">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00023">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>Re: Resets and repops</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI>
<LI><em>Subject</em>: Re: Resets and repops</LI>
<LI><em>From</em>: <A HREF="mailto:coder#ibm,net">coder#ibm,net</A></LI>
<LI><em>Date</em>: Sat, 05 Apr 97 11:57:07 -0800</LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>

On 31/03/97 at 10:31 AM, S001GMU#nova,wright.edu said:
&gt;Date: Fri, 28 Mar 1997 11:01:23 -0800
&gt;From: claw#null,net

&gt;&gt;-- The containment methods for the CT install watchers on everything
&gt;&gt;that gets added to them. -- The watchers trigger on any state change
&gt;&gt;to the watched object. -- Should the watched object leave the CT, the
&gt;&gt;watcher deletes itself. -- The watchers monitor the sum weight of the
&gt;&gt;objects, and report that to the CT on each state change for
&gt;&gt;appropriate handling. -- Thus *any* action which directly affects an
&gt;&gt;object in the CT will trigger a watcher, and result in the desired
&gt;&gt;action. -- Problem: an object whose reported weight is dependant on
&gt;&gt;the state of a remote object.  (eg the weight of the ballon is
&gt;&gt;proportional to the total weight of a bucket in the castle.  Add rocks
&gt;&gt;to the bucket in the castle, and the balloon gets heavier. This is not
&gt;&gt;so easy to solve if the ballon is written to determine its weight only
&gt;&gt;when its is queried.)

&gt;just put a watcher on the bucket and have it update the balloon's weight
&gt;when the bucket's weight changes, or send a signal to the balloon telling
&gt;it it's time to change it's weight.  

No can do.  This requires the CT to somehow know about the balloon's
indirect weight dependancy on the bucket.  This violates several base
principles in my server, the primary of which is:

-- Any feature must be able to be programmed on any object without
requiring source access (and thus knowledge) or other prior-knowledge of
any other object.  

Ie All objects are total black boxes outside of their published API's.

Consider the following coding sequence:

-- Bucket is coded in castle.

-- CT is programmed with the weight breaking branches.

-- Balloon is coded with weight dependancy on bucket.

Using your comment on the bucket informing the balloon or CT, just how is
the programmer of the balloon above going to do this without having to
know something about the CT?  Remember: no changes to the bucket's or CT's
code are allowed.

Note: An easy but un-enforcable solution to the above is to have the
balloon install a watcher on the backet, and thus recalculate its own
internal weight whenever the bucket state-changes.  This allows the CT
without any prior knowledge to just install watchers on all its contents
which check for weight violations.  

The problem with this of course is that there is nothing that requores the
baloon programmer to put a watch on the bucket.  In fact, its a lot
easier, and arguably more efficient, for him to only have the bucket
recalculate its own weight when it is queried.

&gt;It seems a bit silly to have a
&gt;cause-effect chain set up and then try to get info from the affected
&gt;member without going thru the chain (IE: set up the balloon to only
&gt;calculate it's wieght when it's asked to w/o having the bucket ask it to
&gt;whenever the bucket's weight changes).

These are the problems of free user programming.

&gt;thus dropping a rock in the bucket would trigger the balloon to update
&gt;it's weight which would trigger the tree's watcher to recalculate
&gt;everything and see if Bubba falls out of the tree. Cause-effect,
&gt;cause-effect.
&gt;
&gt;would be pretty cool to watch from the castle.. 
&gt;
&gt;*plunk*
&gt;..
&gt;*distant KAAARRASSSHH*  followed by "#$@%#$^$%^" from Bubba

Yup, but how do I require systems to be built that way?

-- 
J C Lawrence                               Internet: claw#null,net
----------(*)                              Internet: coder#ibm,net
...Honourary Member of Clan McFud -- Teamer's Avenging Monolith...


</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00022.html">Re: A brief introduction.. ok, you got me: an introduction</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00024.html">Re: Random thoughts</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00088.html">Re: So in an event-driven server, how do you ...</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00052.html">Re: Resets and repops</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00023"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00023"><STRONG>Thread</STRONG></A></LI>
</UL>
</LI>
</UL>

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<ul><li>Thread context:
<BLOCKQUOTE><UL>
<LI><STRONG>Re: So in an event-driven server, how do you ...</STRONG>, <EM>(continued)</EM>
<ul compact>
<LI><strong><A NAME="00040" HREF="msg00040.html">Re: So in an event-driven server, how do you ...</A></strong>, 
Nathan Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Tue 08 Apr 1997, 03:42 GMT
</LI>
<LI><strong><A NAME="00046" HREF="msg00046.html">Re: So in an event-driven server, how do you ...</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Tue 08 Apr 1997, 13:08 GMT
</LI>
<LI><strong><A NAME="00090" HREF="msg00090.html">Re: So in an event-driven server, how do you ...</A></strong>, 
clawrenc <a href="mailto:clawrenc#xsvr1,cup.hp.com">clawrenc#xsvr1,cup.hp.com</a>, Sat 12 Apr 1997, 04:31 GMT
</LI>
<LI><strong><A NAME="00088" HREF="msg00088.html">Re: So in an event-driven server, how do you ...</A></strong>, 
clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Sat 12 Apr 1997, 04:38 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00023" HREF="msg00023.html">Re: Resets and repops</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sun 06 Apr 1997, 04:08 GMT
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00052" HREF="msg00052.html">Re: Resets and repops</A></strong>, 
S001GMU <a href="mailto:S001GMU#nova,wright.edu">S001GMU#nova,wright.edu</a>, Wed 09 Apr 1997, 05:08 GMT
</LI>
<LI><strong><A NAME="00092" HREF="msg00092.html">Re: Resets and repops</A></strong>, 
clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Sat 12 Apr 1997, 05:10 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00022" HREF="msg00022.html">Re: A brief introduction.. ok, you got me: an introduction</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Sun 06 Apr 1997, 03:56 GMT
<LI><strong><A NAME="00021" HREF="msg00021.html">database stuff</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sun 06 Apr 1997, 02:46 GMT
</UL></BLOCKQUOTE>

</ul>
<hr>
<center>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
</center>
<hr>
</body>
</html>