<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jan 29, 2014 at 2:18 AM, Bert Freudenberg <span dir="ltr">&lt;<a href="mailto:bert@freudenbergs.de" target="_blank">bert@freudenbergs.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div class="im">On 28.01.2014, at 23:38, Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt; wrote:<br>

<br>
&gt; You weren&#39;t clear about that.<br>
<br>
</div>Really now, we&#39;re down to grammar?<br>
<div class="im"><br>
&gt;  Your first sentence said you &quot;don&#39;t want to proxify&quot;,<br>
<br>
</div>Which was citing your commit message.<br>
<div class="im"><br>
&gt; then you said, &quot;proxying MC ancestry is a Bad Idea&quot;<br>
<br>
</div>Wherein I specify exactly which proxies I am talking about, not the general idea of proxies.<br>
<br>
&gt; without saying why,<br>
<br>
The whole conversation is about the problems your proxies generate, and it goes back for months, as you remember, so I don&#39;t feel the need to restate it.<br>
<div class="im"><br>
&gt; and finally you said, &quot;these proxies are brittle,&quot;<br>
&gt; possibly suggesting that another kind of proxy besides THESE proxies<br>
&gt; would fit better..?<br>
<br>
</div>No, I wrote &quot;proxying MC ancestry is a Bad Idea&quot;, period.<br>
<div class="im"><br>
&gt;  I still don&#39;t know which of these three<br>
&gt; interpretations you mean, I guess either the 2nd or 3rd since you said<br>
&gt; not the 1st..<br>
<br>
</div>I meant precisely what I wrote. No need to guess. Proxying MC ancestry is a Bad Idea.<br>
<br>
&gt; [... derisive schooling elided ...]<br>
<div class="im">&gt;<br>
&gt; If / when you get into the details of the problem (which, I hope you<br>
</div>&gt; do) and begin to wrestle with the issues of compatibility,<br>
<div class="im">&gt; performance, transparency, and enabling a variable-sized lookback<br>
&gt; history, while still preserving ALL history in case we need it -- At<br>
&gt; that point you might strike an appreciation for how well the Proxy<br>
&gt; solution aligns itself to the problem and associated issues.  Sure, if<br>
&gt; its a ticking time-bomb of nitro-glycerin, we can&#39;t use it, but I<br>
&gt; never understood why Proxy&#39;s are good for so many other similar cases<br>
&gt; but not this one.<br>
<br>
</div>Because MC is a dev tool, not an end-user application. Having a proxy materialization kick in while you&#39;re debugging stuff is highly detrimental. They are inherently unpredictable. Just looking at them causes a cross-atlantic network fetch.<br>

<br>
The basic problem is that loading the full ancestry happens as a side-effect of some unrelated operation. You&#39;re adding more and more patches trying to avoid materializing the proxies. But you can never be sure you found the last one.<br>

<br>
The proper way to go about this is to make Monticello aware that the full ancestry might not be available. Then at a few select places where it really needs the full ancestry, insert calls to load that ancestry.<br></blockquote>
<div><br></div><div>IMO, there&#39;s another thing worth doing, and that is sorting and uniqueifying the history.  I see duplicate entries in the ancestry which causes it to bloat (I suspect this happens on e.g. merge, but I&#39;m not sure).  I have seen my manual attempts at uniqueifying ancestry shrink significantly the size of mcz files.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">This would ensure that MC again is fully predictable, which you cannot guarantee with the proxy approach.<br>

<br>
- Bert -<br>
<br>
&gt;   [... more vitriol disguised as pity ...]<br>
<div class=""><div class="h5">&gt;<br>
&gt; On Tue, Jan 28, 2014 at 3:56 PM, Bert Freudenberg &lt;<a href="mailto:bert@freudenbergs.de">bert@freudenbergs.de</a>&gt; wrote:<br>
&gt;&gt; I am not going to argue your straw man. I am talking about MC ancestry specifically, not proxies in general, as you are well aware. You keep saying &quot;my proxies are great if we just fix this last bug here&quot;. I disagree.<br>

&gt;&gt;<br>
&gt;&gt; - Bert -<br>
&gt;&gt;<br>
&gt;&gt; On 28.01.2014, at 22:40, Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; Bert, perhaps Eric Gamma would be interested in debating with you the<br>
&gt;&gt;&gt; validity of Proxy pattern, I&#39;m not.  The only thing I can do is direct<br>
&gt;&gt;&gt; you to works of universally accepted design patterns [1] and scores of<br>
&gt;&gt;&gt; systems that use Proxy&#39;s reliably, everyday (including Magma).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Further, I already stated I&#39;m not beholden to solving the problem with<br>
&gt;&gt;&gt; the Proxy pattern, yet you continue to hammer your adjectives on it.<br>
&gt;&gt;&gt; Why won&#39;t you say something about the problem it&#39;s targeting and/or<br>
&gt;&gt;&gt; offer up one of your &quot;much less brittle ways to achieve this...&quot;?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; [1] -- (see Chapter 4)<br>
&gt;&gt;&gt; <a href="http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=sr_1_1?ie=UTF8&amp;qid=1390944300&amp;sr=8-1&amp;keywords=design+patterns" target="_blank">http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=sr_1_1?ie=UTF8&amp;qid=1390944300&amp;sr=8-1&amp;keywords=design+patterns</a><br>

&gt;&gt;&gt;<br>
&gt;&gt;&gt; or<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; <a href="http://www.amazon.com/The-Design-Patterns-Smalltalk-Companion/dp/0201184621/ref=sr_1_2?ie=UTF8&amp;qid=1390944324&amp;sr=8-2&amp;keywords=design+patterns+smalltalk" target="_blank">http://www.amazon.com/The-Design-Patterns-Smalltalk-Companion/dp/0201184621/ref=sr_1_2?ie=UTF8&amp;qid=1390944324&amp;sr=8-2&amp;keywords=design+patterns+smalltalk</a><br>

&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Tue, Jan 28, 2014 at 11:26 AM, Bert Freudenberg &lt;<a href="mailto:bert@freudenbergs.de">bert@freudenbergs.de</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;&gt; - Don&#39;t proxify WorkingCopy ancestry for the release because we still have a bug.<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Chris,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; we don&#39;t want to proxify not just because it&#39;s buggy, but because proxying MC ancestry is a Bad Idea. There are much less brittle ways to achieve this. Our dev tools need to be rock-solid. These proxies are unpredictable and therefore have no place in a stable release.<br>

&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; - Bert -<br></div></div></blockquote></div>-- <br>best,<div>Eliot</div>
</div></div>