<div dir="ltr">Hannes: yes, only in this case the &quot;data&quot; has behavior too:)</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Oct 26, 2013 at 12:11 PM, H. Hirzel <span dir="ltr">&lt;<a href="mailto:hannes.hirzel@gmail.com" target="_blank">hannes.hirzel@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This phenomenon is not all that unknown to people who have maintained<br>
a db system with  application programs accessing it for many years.<br>
There is data which once was entered and is no longer used and<br>
updated. Often people are not aware of it and if they are they mostly<br>
do not dare to delete it.<br>
<br>
Any complex system needs to be reviewed from time to time if you want<br>
to maintain service quality.<br>
<br>
--Hannes<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On 10/26/13, Casey Ransberger &lt;<a href="mailto:casey.obrien.r@gmail.com">casey.obrien.r@gmail.com</a>&gt; wrote:<br>
&gt; There are two sides to this coin, and I didn&#39;t see that before reading this.<br>
&gt; I only saw the downside.<br>
&gt;<br>
&gt; &quot;Rogue objects&quot; are generally something that freaks me out and makes me<br>
&gt; nervous. Are they still sending messages? Will they? Are they still<br>
&gt; receiving messages? I don&#39;t like that they&#39;re hard to find, mainly.<br>
&gt;<br>
&gt; I&#39;ve had some long nights realizing that there were stored procedures hidden<br>
&gt; away in databases at work, and this is a bit like that except... the<br>
&gt; database isn&#39;t disjoint from the running &quot;application&quot; and...<br>
&gt;<br>
&gt; This is what I&#39;ve really enjoyed, reading this post: since we never<br>
&gt; blanket-discard runtime state as in other systems, what would there be<br>
&gt; &quot;useless dangerous dead state-process&quot; is still useful here because it can<br>
&gt; contain forensic/historical information.<br>
&gt;<br>
&gt; Or, maybe more clearly: some of the design goals underlying this system were<br>
&gt; specified by people who were interested in anthropology, people who wouldn&#39;t<br>
&gt; be interested in throwing the mummy out with the bath water. To abuse a<br>
&gt; phrase.<br>
&gt;<br>
&gt; Fascinating. I have a new perspective.<br>
&gt;<br>
&gt; On Oct 26, 2013, at 7:35 AM, &quot;David T. Lewis&quot; &lt;<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; On Sat, Oct 26, 2013 at 07:55:25AM +0000, H. Hirzel wrote:<br>
&gt;&gt;&gt; What is NextVariableCheckTime  used for? Is it that there is no active<br>
&gt;&gt;&gt; use of it anymore?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; --Hannes<br>
&gt;&gt;<br>
&gt;&gt; It was used a long time ago to schedule periodic checks of something.<br>
&gt;&gt; I&#39;m not sure what it was, but it may have been related to handling the<br>
&gt;&gt; state of variables during copies to or from image segments.<br>
&gt;&gt;<br>
&gt;&gt; The class DeepCopier is of course an object, and that object has been<br>
&gt;&gt; in the image for a long time. By looking at that object, you could<br>
&gt;&gt; see that it pointed to a value that happened to represent a time stamp,<br>
&gt;&gt; and since that time stamp represented a time in 2001, it was a pretty<br>
&gt;&gt; good clue as to when the variable had last been updated.<br>
&gt;&gt;<br>
&gt;&gt; I was only pointing this out because it reminded me once again of how<br>
&gt;&gt; different Squeak is from environments that think of everything as file<br>
&gt;&gt; based source code, rather than as objects.<br>
&gt;&gt;<br>
&gt;&gt; Dave<br>
&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On 10/26/13, David T. Lewis &lt;<a href="mailto:lewis@mail.msen.com">lewis@mail.msen.com</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; On Fri, Oct 25, 2013 at 10:58:49PM +0000, <a href="mailto:commits@source.squeak.org">commits@source.squeak.org</a><br>
&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; Item was changed:<br>
&gt;&gt;&gt;&gt;&gt;  Object subclass: #DeepCopier<br>
&gt;&gt;&gt;&gt;&gt;      instanceVariableNames: &#39;references uniClasses newUniClasses&#39;<br>
&gt;&gt;&gt;&gt;&gt; +    classVariableNames: &#39;&#39;<br>
&gt;&gt;&gt;&gt;&gt; -    classVariableNames: &#39;NextVariableCheckTime&#39;<br>
&gt;&gt;&gt;&gt;&gt;      poolDictionaries: &#39;&#39;<br>
&gt;&gt;&gt;&gt;&gt;      category: &#39;System-Object Storage&#39;!<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; One thing that I find rather appealing about Squeak is that its stew of<br>
&gt;&gt;&gt;&gt; living objects contains things that have existed since before my time.<br>
&gt;&gt;&gt;&gt; Even if the so-called &quot;code&quot; changes, the objects still can survive.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Every once in a while this turns out to have some practical benefit.<br>
&gt;&gt;&gt;&gt; For<br>
&gt;&gt;&gt;&gt; example, the class DeepCopier had a class variable that kept track of<br>
&gt;&gt;&gt;&gt; some<br>
&gt;&gt;&gt;&gt; sort of time stamp (in the form of NextVariableCheckTime seconds). Some<br>
&gt;&gt;&gt;&gt; time in an earlier millenium, a primeval user of the class had set this<br>
&gt;&gt;&gt;&gt; variable, then wandered off into a tar pit. We do not really know who<br>
&gt;&gt;&gt;&gt; that<br>
&gt;&gt;&gt;&gt; may have been, but the original object (class DeepCopier) has survived<br>
&gt;&gt;&gt;&gt; in<br>
&gt;&gt;&gt;&gt; the image, and the last updated value of its NextVariableCheckTime has<br>
&gt;&gt;&gt;&gt; remained undisturbed since those early days. Thus when I became curious<br>
&gt;&gt;&gt;&gt; about whether this class variable was being used, I was able to look at<br>
&gt;&gt;&gt;&gt; its value and convert it to a DateAndTime to see that it had not been<br>
&gt;&gt;&gt;&gt; updated in the last dozen years or so.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; It&#39;s a small thing, but just try keeping track of that with a version<br>
&gt;&gt;&gt;&gt; control system.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Dave<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>