1998Q1/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: Re: [MUD&#45;Dev] DBs and Events -->
<!--X-From-R13: "Xba O. Znzoreg" <wyflfvapNvk.argpbz.pbz> -->
<!--X-Date: Thu, 12 Feb 1998 17:45:09 +0000 -->
<!--X-Message-Id: 199802121745.LAA02889@dfw&#45;ix4.ix.netcom.com -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: Pine.LNX.3.91.980210211015.65K&#45;100000@uni&#45;corn.demon.co.uk -->
<!--X-Reference: Pine.GSO.3.95q.980211083504.13903A&#45;100000@uhunix1 -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, Re: [MUD-Dev] DBs and Events</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:jlsysinc#ix,netcom.com">
</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="msg00435.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00437.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00402.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00472.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00436">Author</A>
&nbsp;|&nbsp;<A HREF="#00436">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00436">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>Re: [MUD-Dev] DBs and Events</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: [MUD-Dev] DBs and Events</LI>
<LI><em>From</em>: "Jon A. Lambert" &lt;<A HREF="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</A>&gt;</LI>
<LI><em>Date</em>: Thu, 12 Feb 1998 12:47:31 -4</LI>
<LI><em>Comments</em>: Authenticated sender is &lt;jlsysinc#popd,ix.netcom.com&gt;</LI>
<LI><em>Reply-to</em>: <A HREF="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</A></LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>
On 11 Feb 98 at 11:24, Nathan Yospe wrote:
&gt; On Tue, 10 Feb 1998, Greg Munt wrote:
&gt; :On Tue, 10 Feb 1998, Nathan Yospe wrote:
&gt; 
&gt; :&gt; On Tue, 10 Feb 1998, Greg Munt wrote:
&gt; 
&gt; :&gt; :Also, any references to caches?
&gt; 
&gt; :&gt; Again, can't help you. I've done caches, but not for my mud... and there
&gt; :&gt; is such a broad spectrum of things that qualify as cache. Do you want to
&gt; :&gt; know more about cached in-memory storage for a disk-based DB? 
&gt; 
&gt; :Yes.

See Cold, Cool and Uber(or is that Unter?).

&gt; :&gt; Or bottleneck spot caching?
&gt; 
&gt; :What's that?
&gt; 
&gt; An element of assembly coding and RISC compiler design. It might also be
&gt; significant for VM construction. It has to do with the repeated register
&gt; loading of the same data over and over. Essentially means finding where,
&gt; when, and how information can be loaded onto the stack/into registers to
&gt; minimize the number of loads (This opposed to operational instructions.)
&gt;

Nod. Being terminology challenged in the areas of compiler theory and
hardware, I lump this in the category of "code optimization" in my VM.  
It certainly has significance in my VM.  

While Nathan's point is specific it does touch on a good general principle, 
even if you are not writing assembly or VMs.  Pay some attention to your
architecture.

For instance, in an RGMA flame-fest not long ago, one poster bemoaned the 
fact that the old MS-C compiler by default did register alignment on data 
as opposed to the *nix GCC compiler.  I was curious about this and found 
some rather enlightening things about 8086 architecture.  By turning this 
option on, I got around a 25% boost in speed.  Of course nothing comes 
for free and there are few downsides to this.  Executables are quite a bit 
larger and it makes all that clever (or not so clever) C pointer arithmetic 
unpredictable.  I would recommend these options if you are targetting this 
architecture and the downsides are irrelevant to you.  

&gt; :&gt; :Any references to Event Management? Is there any alternative to using a 
[snip]
&gt; :I'm not sure I understand this too well. Are you suggesting this?
&gt; 
&gt; :class Event
&gt; :  {
&gt; :     private:
&gt; :       DataType1 *a;
&gt; :       DataType2 *b;
&gt; :       ...
&gt; :
&gt; :     public:
&gt; :       ...
&gt; :       process();
&gt; :  };
&gt;

I guess I'll unzip and show you mine. 

class Event {
  Objid	    owner;   // controlling object
  Object    *callee; // object containing method
  Object	*actor;  // calling object 
  Message   *args;	 // arguments to call
  short     priority // Event priority	
  Method    *m;		 // method to execute
  TTime     birth_time  // timestamp on queue
  TTime     exec_time // scheduled execution time
};

class Task {
  Event    *event    // executing event	
  long		msgid;	 // unique task ID	
  long		wait;    // wait time		
  long		ticks;	 // execution time	
  int		retry    // interval in msecs to retry event 
  int		sp;		 // stack pointer 
  int		pc;		 // program counter 
  Var	    *stack   // stack 
  int       st_size  // current stack size
  short     priority // thread priority
  PThread   exec_hndl // Handle to execution thread
  void     *localTD  // Handle to protected thread data
public:
 (... lots of functions ...)
};

I now feel some embarassed at exposing myself; yet strangely unburdened. ;)
 
&gt; class Event{
&gt;   SortedList&lt;ObjectReference&lt;BaseObject&gt;, PrioriList&lt;AttributeType,
&gt;       AttributeValue&gt; &gt; objectList;
&gt;   TimeValue  timeCheck; // for purpose of sanity checks
&gt; public:
&gt;   process(); // set values... for each object in objectList, call
&gt;              // BaseObject::update();
&gt; };
&gt; 
&gt; :I still can't see how the event isn't a function. The tasks that the 
&gt; :event does have to be stored in a function?
&gt;

Well try to think of all items within an object as just data.  Assign no
importance as to whether something is a function or not.  It is merely a 
pointer to more data.  Pay no attention to the little man behind the 
curtain.  It's not easy for me either, since I mentally tend to 
differentiate functions from procedures.

&gt; Well, yes and no. I operate entirely on the principal of creation, value
&gt; modification, full instantiation, partial destantiation, and deletion. I
&gt; don't tolerate the sort of procedural functions that most languages use.

Grin.  Nathan has been fully abstracted.  
 
[snip]
&gt; 
&gt; :I'll use this opportunity to keep you updated on my work activities: I 
&gt; :finally got a job, C++/Unix, using such tools as Rational Rose, etc. I'll 
&gt; :be maintaining and developing planning and scheduling software for the 
&gt; :steel industry. Will post a FAQ update soon.
&gt; 
&gt; Congratulations. Rational Rose, eh? I have misery in my company. I mean,
&gt; company in my misery. No the first time was right. We use Rose too. Dang
&gt; piece of ill concieved code. Powerful, though. But... how can a tool for
&gt; object oriented design be so... inconsistant? It seems to have spaghetti
&gt; for innards, and the user interface changes from one tool to the next so
&gt; radically that the keys for _copy_ and _paste_ are never the same, and I
&gt; don't even want to go into the deletion and selection procedures. Bleah!
&gt; 

Hmm.  Another Rational Rose user.  I like it, but have been burned.  
Hint: Keep good backups of all iterations of clean source as well as
the .mdl's that generated them.

--
--/*\ Jon A. Lambert - TychoMUD     Internet:jlsysinc#ix,netcom.com /*\--
--/*\ Mud Server Developer's Page &lt;<A  HREF="http://www.netcom.com/~jlsysinc">http://www.netcom.com/~jlsysinc</A>&gt; /*\--
--/*\   "Everything that deceives may be said to enchant" - Plato   /*\--

</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<ul compact><li><strong>Follow-Ups</strong>:
<ul>
<li><strong><A NAME="00472" HREF="msg00472.html">Re: [MUD-Dev] DBs and Events</A></strong>
<ul compact><li><em>From:</em> coder#ibm,net</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00399" HREF="msg00399.html">Re: [MUD-Dev] DBs and Events</A></STRONG>
<UL><LI><EM>From:</EM> Greg Munt &lt;greg#uni-corn,demon.co.uk&gt;</LI></UL></LI>
<LI><STRONG><A NAME="00402" HREF="msg00402.html">Re: [MUD-Dev] DBs and Events</A></STRONG>
<UL><LI><EM>From:</EM> Nathan Yospe &lt;yospe#hawaii,edu&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00435.html">user-centered design (was Re: [MUD-Dev]  Clients)</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00437.html">Re: [MUD-Dev]  DBs and Events</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00402.html">Re: [MUD-Dev] DBs and Events</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00472.html">Re: [MUD-Dev] DBs and Events</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00436"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00436"><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: [MUD-Dev]  OT: Linux g++</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<LI><strong><A NAME="00444" HREF="msg00444.html">Re: [MUD-Dev]  OT: Linux g++</A></strong>, 
Ben Greear <a href="mailto:greear#cyberhighway,net">greear#cyberhighway,net</a>, Fri 13 Feb 1998, 00:30 GMT
<UL>
<LI><strong><A NAME="00487" HREF="msg00487.html">Re: [MUD-Dev]  OT: Linux g++</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Mon 16 Feb 1998, 11:29 GMT
<UL>
<LI><strong><A NAME="00526" HREF="msg00526.html">Re: [MUD-Dev]  OT: Linux g++</A></strong>, 
Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Wed 18 Feb 1998, 17:02 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</ul>
</ul>
<LI><strong><A NAME="00402" HREF="msg00402.html">Re: [MUD-Dev] DBs and Events</A></strong>, 
Nathan Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Wed 11 Feb 1998, 19:10 GMT
<UL>
<LI><strong><A NAME="00436" HREF="msg00436.html">Re: [MUD-Dev] DBs and Events</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Thu 12 Feb 1998, 17:45 GMT
<UL>
<LI><strong><A NAME="00472" HREF="msg00472.html">Re: [MUD-Dev] DBs and Events</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Mon 16 Feb 1998, 02:47 GMT
<UL>
<LI><strong><A NAME="00500" HREF="msg00500.html">Re: [MUD-Dev] Version Control (was: DBs and Events)</A></strong>, 
Vadim Tkachenko <a href="mailto:vadimt#4cs,com">vadimt#4cs,com</a>, Mon 16 Feb 1998, 23:30 GMT
<UL>
<LI><strong><A NAME="00524" HREF="msg00524.html">Re: [MUD-Dev] Version Control (was: DBs and Events)</A></strong>, 
coder <a href="mailto:coder#ibm,net">coder#ibm,net</a>, Wed 18 Feb 1998, 10:34 GMT
<UL>
<LI><strong><A NAME="00536" HREF="msg00536.html">Version Control (was: DBs and Events)</A></strong>, 
s001gmu <a href="mailto:s001gmu#nova,wright.edu">s001gmu#nova,wright.edu</a>, Fri 20 Feb 1998, 09:55 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</ul>
</ul>
</ul>
</LI>
</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>