<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://eiffelroom.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>eiffelroom - Article - Comments</title>
 <link>http://eiffelroom.com</link>
 <description>Comments for &quot;Article&quot;</description>
 <language>en</language>
<item>
 <title>Note that RTMS is a macro</title>
 <link>http://eiffelroom.com/article/c_c_calls_and_callbacks#comment-463</link>
 <description>&lt;p&gt;Note that RTMS is a macro and evaluate twice its argument, so for efficiency it should be:&lt;/p&gt;

&lt;p&gt;&lt;div class=&quot;geshifilter eiffel&quot; style=&quot;font-family: monospace;&quot;&gt;cpp_get_text: &lt;a href=&quot;http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+STRING&amp;btnI=I%27m+Feeling+Lucky&quot;&gt;&lt;span style=&quot;color: #800000&quot;&gt;STRING&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;is&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #008000; font-style: italic;&quot;&gt;-- Get some dummy text&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;external&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0080A0;&quot;&gt;&amp;quot;C++ inline use &amp;lt;string&amp;gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;alias&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0080A0;&quot;&gt;&amp;quot;[&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;std::string a = &amp;quot;&lt;/span&gt;dummy&lt;span style=&quot;color: #0080A0;&quot;&gt;&amp;quot;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;char *c_str = (char*) a.c_str();&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return RTMS(c_str);&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/p&gt;

</description>
 <pubDate>Thu, 19 Jun 2008 22:43:37 -0700</pubDate>
 <dc:creator>manus_eiffel</dc:creator>
 <guid isPermaLink="false">comment 463 at http://eiffelroom.com</guid>
</item>
<item>
 <title>After having a problem with</title>
 <link>http://eiffelroom.com/article/c_c_calls_and_callbacks#comment-462</link>
 <description>&lt;p&gt;After having a problem with creating a STRING from a std::string (c++): Here&#039;s the solution&lt;/p&gt;

&lt;p&gt;&lt;div class=&quot;geshifilter eiffel&quot; style=&quot;font-family: monospace;&quot;&gt;cpp_get_text: &lt;a href=&quot;http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+STRING&amp;btnI=I%27m+Feeling+Lucky&quot;&gt;&lt;span style=&quot;color: #800000&quot;&gt;STRING&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;is&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #008000; font-style: italic;&quot;&gt;-- Get some dummy text&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;external&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0080A0;&quot;&gt;&amp;quot;C++ inline use &amp;lt;string&amp;gt;&amp;quot;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;alias&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0080A0;&quot;&gt;&amp;quot;[&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;std::string a = &amp;quot;&lt;/span&gt;dummy&lt;span style=&quot;color: #0080A0;&quot;&gt;&amp;quot;;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;return RTMS(((char*)a.c_str()));&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/p&gt;

</description>
 <pubDate>Wed, 18 Jun 2008 13:27:07 -0700</pubDate>
 <dc:creator>patrickr</dc:creator>
 <guid isPermaLink="false">comment 462 at http://eiffelroom.com</guid>
</item>
<item>
 <title>It won&#039;t be collected until</title>
 <link>http://eiffelroom.com/article/protecting_objects#comment-461</link>
 <description>&lt;p&gt;It won&#039;t be collected until eif_wean() is called.&lt;/p&gt;

</description>
 <pubDate>Wed, 11 Jun 2008 20:19:54 -0700</pubDate>
 <dc:creator>ted_eiffel</dc:creator>
 <guid isPermaLink="false">comment 461 at http://eiffelroom.com</guid>
</item>
<item>
 <title>When you eif_protect()</title>
 <link>http://eiffelroom.com/article/protecting_objects#comment-460</link>
 <description>&lt;p&gt;When you eif_protect() something in C, is this considered a reachable reference to the GC? i.e. if the Eiffel side of code loses reachability to an object that was passed to C and eif_protect&#039;ed, will it ever be collected?&lt;/p&gt;

</description>
 <pubDate>Wed, 11 Jun 2008 13:52:26 -0700</pubDate>
 <dc:creator>clemahieu</dc:creator>
 <guid isPermaLink="false">comment 460 at http://eiffelroom.com</guid>
</item>
<item>
 <title>Prefixes for assemblies</title>
 <link>http://eiffelroom.com/article/getting_started_with_db4o_for_eiffel#comment-437</link>
 <description>&lt;p&gt;Thank you for your hint. I did not know about assembly-wide prefixes. I think it&#039;s a good alternative to resolve name clashes.&lt;/p&gt;

</description>
 <pubDate>Mon, 07 Apr 2008 01:32:07 -0700</pubDate>
 <dc:creator>ruihua</dc:creator>
 <guid isPermaLink="false">comment 437 at http://eiffelroom.com</guid>
</item>
<item>
 <title>Looks Great</title>
 <link>http://eiffelroom.com/article/getting_started_with_db4o_for_eiffel#comment-436</link>
 <description>&lt;p&gt;One question, Ruihua. At step 7, instead of renaming individual classes, why didn&#039;t you just set assembly-wide prefixes &lt;code class=&quot;geshifilter eiffel&quot;&gt;DB4O_&lt;/code&gt; and &lt;code class=&quot;geshifilter eiffel&quot;&gt;REFLECTOR_&lt;/code&gt;?&lt;/p&gt;

</description>
 <pubDate>Fri, 04 Apr 2008 14:58:58 -0700</pubDate>
 <dc:creator>peter_gummer</dc:creator>
 <guid isPermaLink="false">comment 436 at http://eiffelroom.com</guid>
</item>
<item>
 <title>Abstract Side Effect</title>
 <link>http://eiffelroom.com/article/random_numbers#comment-433</link>
 <description>&lt;p&gt;It seems a little vague to speak of abstract side effect without specifying a model.  In this case, I think there is a model and a justification for each positions.  In OOSC, Meyer introduce the random number generator as a traversable object.  In this case, the corresponding model is composed of a sequence of numbers (about which the invariant may state that the numbers have certain probabilistic distribution) and an integer indicating what is the next number to be returned to the user.  In this case, generating a random number is a side effect and, according to CQS principle, should be implemented as a command.&lt;/p&gt;

&lt;p&gt;But another possible model may be only a set of possible numbers or a range of numbers.  In this case, the specification of a routine that generate a random numbers may be non deterministic without ever changing the abstract state of an object.&lt;/p&gt;

&lt;p&gt;An operation which returns a non-deterministic result is a common thing in B but one could argue that B does not have CQS and does not have a need for it since no operation invocation can be performed in expressions.  Back to Eiffel, it certainly is arguable whether non deterministic specification is the right thing for a query but it certainly is legal even according to CQS.&lt;/p&gt;

&lt;p&gt;Cheers!&lt;/p&gt;

&lt;p&gt;Simon&lt;/p&gt;

</description>
 <pubDate>Thu, 06 Mar 2008 07:28:33 -0800</pubDate>
 <dc:creator>maverick</dc:creator>
 <guid isPermaLink="false">comment 433 at http://eiffelroom.com</guid>
</item>
<item>
 <title>To see something, you might add a loop</title>
 <link>http://eiffelroom.com/article/simple_timer_class#comment-387</link>
 <description>&lt;p&gt;To see something, I would just add the following points:&lt;/p&gt;

&lt;p&gt;1) add THREAD_CONTROL to the inherited class for SAMPLE 2) at the end of make, you could add (for instance) &lt;pre class=&quot;geshifilter&quot;&gt;from until False loop
    print (&quot;.&quot;)
    sleep (1_000_000_000)
end&lt;/pre&gt;&lt;/p&gt;

</description>
 <pubDate>Thu, 29 Nov 2007 10:06:00 -0800</pubDate>
 <dc:creator>Jocelyn Fiat</dc:creator>
 <guid isPermaLink="false">comment 387 at http://eiffelroom.com</guid>
</item>
<item>
 <title>Will update tutorial</title>
 <link>http://eiffelroom.com/article/creating_a_web_application_with_goanna#comment-374</link>
 <description>&lt;p&gt;Thanks Neal,&lt;/p&gt;

&lt;p&gt;I will integrate this info in the tutorial on Goanna&#039;s Origo page too.&lt;/p&gt;

</description>
 <pubDate>Sun, 04 Nov 2007 09:26:40 -0800</pubDate>
 <dc:creator>bayt</dc:creator>
 <guid isPermaLink="false">comment 374 at http://eiffelroom.com</guid>
</item>
<item>
 <title>Great Tutorial</title>
 <link>http://eiffelroom.com/article/creating_a_web_application_with_goanna#comment-373</link>
 <description>&lt;p&gt;Thank you for doing this, Till. One thing I&#039;d like to add is that the parameter collections are for validating the semantics of a submitted form, not for validating user input.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mandatory Parameter Collection&lt;/strong&gt; - These are mandatory at the form processing level, not required fields in the form the user sees.  Typically, these are a html hidden elements used to verify that some system state is the same at form processing time as it was at form generation time.  For example, it might contain the user name of a logged in user to prevent them from submitting a form, logging out, logging in as a new user, and then using the back button to resubmit the previously generated form for the previous user.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Required Parameter Collection&lt;/strong&gt; - These are html elements which must be present in the form for correct processing to occur or whose absence indicates a serious bug in the form generation routine or an attack on the web site. This doesn&#039;t necessarily mean that the user must provide a value for the element. &amp;quot;address_line_2&amp;quot; on a registration page might be an example of a required parameter for which no user input would be required.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Optional Parameter Collection&lt;/strong&gt; - These are elements whose absence from a submitted form is expected sometimes. No processing for this parameter will occur if they are not present in the form.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add If Absent Parameter Collection&lt;/strong&gt; - These are elements whose absence from a form has meaning.  html checkbox elements provide a typical example. If they are not present in the form submittal, a PARAMETER_PROCESSING_RESULT for them is added so that the appropriate processing for their unchecked state will occur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Validating User Input&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each GOA_REQUEST_PARAMETER is responsible for validating the input it receives from the user.  Since receiving invalid input is expected, this does not interrupt request processing. Typically, invalid user input produces&lt;/p&gt;

&lt;p&gt;&amp;quot;not PARAMETER_PROCESSING_RESULT.is_value_valid&amp;quot;&lt;/p&gt;

&lt;p&gt;which in turn triggers the redisplay of the form with an error message.  Several GOA_REQUEST_PARAMETER descendents implement this behavior for common data types.&lt;/p&gt;

</description>
 <pubDate>Sun, 04 Nov 2007 09:19:52 -0800</pubDate>
 <dc:creator>neallester</dc:creator>
 <guid isPermaLink="false">comment 373 at http://eiffelroom.com</guid>
</item>
<item>
 <title>Church numerals</title>
 <link>http://eiffelroom.com/article/fun_with_generics#comment-277</link>
 <description>&lt;p&gt;Couldn&#039;t you make it more complicated by using Church numerals? Colin Adams&lt;/p&gt;

</description>
 <pubDate>Tue, 05 Jun 2007 07:28:54 -0700</pubDate>
 <dc:creator>colin-adams</dc:creator>
 <guid isPermaLink="false">comment 277 at http://eiffelroom.com</guid>
</item>
<item>
 <title>Fixed ...</title>
 <link>http://eiffelroom.com/article/fun_with_generics#comment-275</link>
 <description>&lt;p&gt;You are right, &lt;tt&gt;SET[G]&lt;/tt&gt; would not type check. Was a typo. I have fixed it in the article.&lt;/p&gt;

</description>
 <pubDate>Tue, 05 Jun 2007 00:16:23 -0700</pubDate>
 <dc:creator>schoelle</dc:creator>
 <guid isPermaLink="false">comment 275 at http://eiffelroom.com</guid>
</item>
<item>
 <title>Signature of i_th_power</title>
 <link>http://eiffelroom.com/article/fun_with_generics#comment-272</link>
 <description>&lt;p&gt;I think that the signature of &lt;code class=&quot;geshifilter eiffel&quot;&gt;i_th_power&lt;/code&gt; has to be:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;geshifilter eiffel&quot;&gt;i_th_power &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#40;&lt;/span&gt;i: &lt;a href=&quot;http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+INTEGER&amp;btnI=I%27m+Feeling+Lucky&quot;&gt;&lt;span style=&quot;color: #800000&quot;&gt;INTEGER&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;a href=&quot;http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+SET&amp;btnI=I%27m+Feeling+Lucky&quot;&gt;&lt;span style=&quot;color: #800000&quot;&gt;SET&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+ANY&amp;btnI=I%27m+Feeling+Lucky&quot;&gt;&lt;span style=&quot;color: #800000&quot;&gt;ANY&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I like &lt;code class=&quot;geshifilter eiffel&quot;&gt;NAT&lt;/code&gt;, that helps me on my endless quest to write a program that counts from 1 to 5 in the most complicated way:&lt;/p&gt;

&lt;p&gt;&lt;code class=&quot;geshifilter eiffel&quot;&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#40;&lt;/span&gt;nat_to_integer &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#123;&lt;/span&gt;NAT &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#91;&lt;/span&gt;NAT &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+BOOLEAN&amp;btnI=I%27m+Feeling+Lucky&quot;&gt;&lt;span style=&quot;color: #800000&quot;&gt;BOOLEAN&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#41;&lt;/span&gt; |..| nat_to_integer &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;create&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#123;&lt;/span&gt;NAT &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#91;&lt;/span&gt;NAT &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#91;&lt;/span&gt;NAT &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#91;&lt;/span&gt;NAT &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#91;&lt;/span&gt;NAT &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#91;&lt;/span&gt;NAT &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+BOOLEAN&amp;btnI=I%27m+Feeling+Lucky&quot;&gt;&lt;span style=&quot;color: #800000&quot;&gt;BOOLEAN&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span style=&quot;color: #000060;&quot;&gt;do_all&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;agent&lt;/span&gt; &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#40;&lt;/span&gt;a_int: &lt;a href=&quot;http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+INTEGER&amp;btnI=I%27m+Feeling+Lucky&quot;&gt;&lt;span style=&quot;color: #800000&quot;&gt;INTEGER&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;do&lt;/span&gt; print &lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#40;&lt;/span&gt;a_int.&lt;span style=&quot;color: #000060;&quot;&gt;out&lt;/span&gt; + &lt;span style=&quot;color: #0080A0;&quot;&gt;&amp;quot;&lt;span style=&quot;color: #005070; font-weight: bold;&quot;&gt;%N&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #0600FF; font-weight: bold;&quot;&gt;end&lt;/span&gt;&lt;span style=&quot;color: #FF0000;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;(:&lt;/p&gt;

</description>
 <pubDate>Mon, 04 Jun 2007 12:10:58 -0700</pubDate>
 <dc:creator>doenniu</dc:creator>
 <guid isPermaLink="false">comment 272 at http://eiffelroom.com</guid>
</item>
<item>
 <title>My summary</title>
 <link>http://eiffelroom.com/article/random_numbers#comment-238</link>
 <description>&lt;p&gt;Together with my comment &amp;quot;What is the question?&amp;quot;, I think the whole discussion comes down to the question if you agree with the following statement or not:&lt;/p&gt;

&lt;p&gt;&amp;quot;A random number does not mean much by itself; it must be understood in relation to its predecessors and successors in the sequence&amp;quot; (Meyer, OOSC2, p. 755).&lt;/p&gt;

&lt;p&gt;If you agree with the statement, then you should apply CQS also for random numbers like it is described in OOSC2, using &lt;div class=&quot;geshifilter eiffel&quot; style=&quot;font-family: monospace;&quot;&gt;random: &lt;a href=&quot;http://www.google.com/search?q=site%3Ahttp%3A%2F%2Fdocs.eiffel.com%2Feiffelstudio%2Flibraries+RANDOM&amp;btnI=I%27m+Feeling+Lucky&quot;&gt;&lt;span style=&quot;color: #800000&quot;&gt;RANDOM&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
...&lt;br /&gt;
&lt;span style=&quot;color: #000060;&quot;&gt;random&lt;/span&gt;.&lt;span style=&quot;color: #000060;&quot;&gt;forth&lt;/span&gt;&lt;br /&gt;
l_item := random.&lt;span style=&quot;color: #000060;&quot;&gt;item&lt;/span&gt;&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;If you disagree, then you should be able to write a feature &lt;code class=&quot;geshifilter eiffel&quot;&gt;next_random&lt;/code&gt;. And as soon as you have that, it doesn&#039;t matter how you implement it (therefore you can also implement it using &lt;e&gt;RANDOM&lt;e&gt; or change your implementation later).

I for my part disagree with Meyer&#039;s statement, that&#039;s why I&#039;m using &lt;code class=&quot;geshifilter eiffel&quot;&gt;next_random&lt;/code&gt;. If you agree with the statement, you shouldn&#039;t use the feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quote from Colin:&lt;/strong&gt;&lt;br /&gt;
 &lt;em&gt;A principle that must be followed without exception is, in effect, a law&lt;/em&gt; &lt;br /&gt;
 I agree, but the quote you gave says &amp;quot;every object-oriented developer SHOULD apply this principle without exception&amp;quot;, not &amp;quot;every object-oriented developer MUST apply this principle without exception&amp;quot; :)&lt;/p&gt;

</description>
 <pubDate>Thu, 10 May 2007 15:05:44 -0700</pubDate>
 <dc:creator>doenniu</dc:creator>
 <guid isPermaLink="false">comment 238 at http://eiffelroom.com</guid>
</item>
<item>
 <title>Selective quoting of OOSC2</title>
 <link>http://eiffelroom.com/article/random_numbers#comment-237</link>
 <description>&lt;p&gt;I am somewhat bemused by the apparent appeal to OOSC2 (as if it were holy scripture) in order to support the case for making random numbers an exception to the CQS principal. This is highly selective quoting.&lt;/p&gt;

&lt;p&gt;For a start, on p. 758, Professor Meyer says: &amp;quot;every object-oriented developer should apply this principle without exception&amp;quot;.&lt;/p&gt;

&lt;p&gt;Even more bemusing is that back on page 754-755, he explicitly gives the example of random numbers.&lt;/p&gt;

&lt;p&gt;A principle that must be followed without exception is, in effect, a law.&lt;/p&gt;

&lt;p&gt;Colin Adams&lt;/p&gt;

</description>
 <pubDate>Thu, 10 May 2007 07:28:50 -0700</pubDate>
 <dc:creator>colin-adams</dc:creator>
 <guid isPermaLink="false">comment 237 at http://eiffelroom.com</guid>
</item>
</channel>
</rss>
