<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Scriptacu-list Tutorial(Part 3)</title>
	<atom:link href="http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/feed/" rel="self" type="application/rss+xml" />
	<link>http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/</link>
	<description>Smalltalk on Smalltalk and Life</description>
	<lastBuildDate>Thu, 24 Sep 2009 02:06:44 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: GAGECLOUG</title>
		<link>http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-409</link>
		<dc:creator>GAGECLOUG</dc:creator>
		<pubDate>Thu, 24 Sep 2009 02:06:44 +0000</pubDate>
		<guid isPermaLink="false">http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-409</guid>
		<description>Ordinary row &lt;a href=&quot;http:/flyhost.net/&quot; rel=&quot;nofollow&quot;&gt;hosting &lt;/a&gt;service Rapidshare ( www.rapidshare.com ) has been slapped with a $33.4 million outstanding nigh a German court and ordered to espouse stricter regulations in search its uploaded content, according to not too reports.

The lawsuit was brought past German royalties collector GEMA, who called on the Regional Court in Hamburg to organization the march hosting usage to a halt it from hosting 5,000 music tracks on its put for download.

GEMA released a report in German addressing the court&#039;s ruling:

&quot;The judgment states that the hosting service itself is now chief as a service to making persuaded that not any of the music tracks worried are distributed via its programme in the future. This means that the copyright holder is no longer required to perform the ongoing and complex checks.&quot;

The court concluded that Rapidshare and other like queue sharing sites had not infatuated the proper measures to impede copyright infringement from occurring via the service</description>
		<content:encoded><![CDATA[<p>Ordinary row <a href="http:/flyhost.net/" rel="nofollow">hosting </a>service Rapidshare ( <a href="http://www.rapidshare.com" rel="nofollow">http://www.rapidshare.com</a> ) has been slapped with a $33.4 million outstanding nigh a German court and ordered to espouse stricter regulations in search its uploaded content, according to not too reports.</p>
<p>The lawsuit was brought past German royalties collector GEMA, who called on the Regional Court in Hamburg to organization the march hosting usage to a halt it from hosting 5,000 music tracks on its put for download.</p>
<p>GEMA released a report in German addressing the court&#8217;s ruling:</p>
<p>&#8220;The judgment states that the hosting service itself is now chief as a service to making persuaded that not any of the music tracks worried are distributed via its programme in the future. This means that the copyright holder is no longer required to perform the ongoing and complex checks.&#8221;</p>
<p>The court concluded that Rapidshare and other like queue sharing sites had not infatuated the proper measures to impede copyright infringement from occurring via the service</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: endohemLoobre</title>
		<link>http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-398</link>
		<dc:creator>endohemLoobre</dc:creator>
		<pubDate>Sat, 01 Nov 2008 20:17:27 +0000</pubDate>
		<guid isPermaLink="false">http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-398</guid>
		<description>Hmmm... Are you trying to be with my   cheery  trading  Sorry, for off top, i wanna tell one joke)   Why did the garbage look sad? Because it was down in the dumps.</description>
		<content:encoded><![CDATA[<p>Hmmm&#8230; Are you trying to be with my   cheery  trading  Sorry, for off top, i wanna tell one joke)   Why did the garbage look sad? Because it was down in the dumps.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Rosenzweig</title>
		<link>http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-377</link>
		<dc:creator>Aaron Rosenzweig</dc:creator>
		<pubDate>Fri, 28 Dec 2007 03:42:34 +0000</pubDate>
		<guid isPermaLink="false">http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-377</guid>
		<description>I don&#039;t think the following syntax is available anymore in the current Seaside 2.8:

aRoot linkToStyle:

Use this instead:

aRoot stylesheet url: &#039;/main.css&#039;.</description>
		<content:encoded><![CDATA[<p>I don&#8217;t think the following syntax is available anymore in the current Seaside 2.8:</p>
<p>aRoot linkToStyle:</p>
<p>Use this instead:</p>
<p>aRoot stylesheet url: &#8216;/main.css&#8217;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonny Cundall</title>
		<link>http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-338</link>
		<dc:creator>Jonny Cundall</dc:creator>
		<pubDate>Tue, 27 Nov 2007 18:12:39 +0000</pubDate>
		<guid isPermaLink="false">http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-338</guid>
		<description>note:

aRoot linkToStyle: ‘/main.css’

does not work in Seaside 2.8, try


aRoot stylesheet resourceURL ‘/main.css’

instead if using this version.</description>
		<content:encoded><![CDATA[<p>note:</p>
<p>aRoot linkToStyle: ‘/main.css’</p>
<p>does not work in Seaside 2.8, try</p>
<p>aRoot stylesheet resourceURL ‘/main.css’</p>
<p>instead if using this version.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: objectcentric</title>
		<link>http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-27</link>
		<dc:creator>objectcentric</dc:creator>
		<pubDate>Fri, 26 Jan 2007 14:19:28 +0000</pubDate>
		<guid isPermaLink="false">http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-27</guid>
		<description>I appreciate your input jRave.  It&#039;s been good to see a number of more experienced seasiders adding their insights to the blog.  Hopefully people will find as much if not more to learn in the comments than they to from the tutorial itself :-)</description>
		<content:encoded><![CDATA[<p>I appreciate your input jRave.  It&#8217;s been good to see a number of more experienced seasiders adding their insights to the blog.  Hopefully people will find as much if not more to learn in the comments than they to from the tutorial itself <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jRave</title>
		<link>http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-26</link>
		<dc:creator>jRave</dc:creator>
		<pubDate>Fri, 26 Jan 2007 14:11:01 +0000</pubDate>
		<guid isPermaLink="false">http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-26</guid>
		<description>of course one size does not fit all.
i was just offering a look from another point-of-view, so people will be aware of odds and benefits of both of those particular approaches (and perhaps make better informed decission in future ;-): copying costs more, but is safer. lazy initialization is easier/safer, but if you access a particular property 1000 times, its a 1000 added method calls - i don&#039;t know if it makes such a difference, but since &quot;normal&quot; initialization does not bother me I prefer not to add overhead.

This article is IMHO good example of Seaside&#039;s AJAX capabilities, but as a lot of people tends to copy code without thinking I tried to warn them so they wouldn&#039;t have to learn all that the hard way (which, OTOH, migh be better at times).</description>
		<content:encoded><![CDATA[<p>of course one size does not fit all.<br />
i was just offering a look from another point-of-view, so people will be aware of odds and benefits of both of those particular approaches (and perhaps make better informed decission in future <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> : copying costs more, but is safer. lazy initialization is easier/safer, but if you access a particular property 1000 times, its a 1000 added method calls &#8211; i don&#8217;t know if it makes such a difference, but since &#8220;normal&#8221; initialization does not bother me I prefer not to add overhead.</p>
<p>This article is IMHO good example of Seaside&#8217;s AJAX capabilities, but as a lot of people tends to copy code without thinking I tried to warn them so they wouldn&#8217;t have to learn all that the hard way (which, OTOH, migh be better at times).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jRave</title>
		<link>http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-25</link>
		<dc:creator>jRave</dc:creator>
		<pubDate>Fri, 26 Jan 2007 13:56:38 +0000</pubDate>
		<guid isPermaLink="false">http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-25</guid>
		<description>errata ;-) : 
_reference_ to an collection -&gt; reference to collection
This is in many cases now what you want -&gt; This is in many cases _not_ what you want

“Lazy initialization is pointless here. Use it in cases where the performance hit of allways having to send a ifNil: message overcomes the odds of having a large/long initialization deffered until needed” -&gt; “Lazy initialization is pointless here. Use it in cases where the performance hit of _allways_ having to send a ifNil: message is neglectible in comparation with large and not everytime needed allocation (or if it speeds up startup of your application)” (WTF i was trying to say here ? ;-)</description>
		<content:encoded><![CDATA[<p>errata <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  :<br />
_reference_ to an collection -&gt; reference to collection<br />
This is in many cases now what you want -&gt; This is in many cases _not_ what you want</p>
<p>“Lazy initialization is pointless here. Use it in cases where the performance hit of allways having to send a ifNil: message overcomes the odds of having a large/long initialization deffered until needed” -&gt; “Lazy initialization is pointless here. Use it in cases where the performance hit of _allways_ having to send a ifNil: message is neglectible in comparation with large and not everytime needed allocation (or if it speeds up startup of your application)” (WTF i was trying to say here ? <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: objectcentric</title>
		<link>http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-24</link>
		<dc:creator>objectcentric</dc:creator>
		<pubDate>Fri, 26 Jan 2007 13:33:14 +0000</pubDate>
		<guid isPermaLink="false">http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-24</guid>
		<description>I&#039;ve just updated my version of Seaside it seems #cancelButton was missing from the verision of Seaside I started my investigations on.  You&#039;re right that this is a much better option in this case.

The memento pattern however is useful to investigate as it has many potential applications.  The decision to use an &quot;optimistic&quot; update approach as outlined in the tutorial vs a &quot;pessimistic&quot; approach as you describe is not a &quot;one size fits all&quot; question.  It is dependent on your persistence mechanism and your performance requirements (E.g. the cost of rollback vs the cost of commit)

Lazy initialization is a bit of a personal preference of mine - I cannot remember a single case in any of my apps where the added cost of the #ifNil:has been significant whereas I have hit problems on a number of occasions with badly performing #initialize methods.  I sure other may have anecdotes that lead them to prefer the opposite approach :-)

You will note that I did provide #addContact: method on MyAddressBook in Session 1 (I left #removeContact: out of scope for the tutorial).  You are correct that there are dangers *if* you can&#039;t trust your clients to use the promoted interface on the containing class but there are an equal number of dangers with always return a copy of a collection (profusion of object references, inconsistent state etc.)</description>
		<content:encoded><![CDATA[<p>I&#8217;ve just updated my version of Seaside it seems #cancelButton was missing from the verision of Seaside I started my investigations on.  You&#8217;re right that this is a much better option in this case.</p>
<p>The memento pattern however is useful to investigate as it has many potential applications.  The decision to use an &#8220;optimistic&#8221; update approach as outlined in the tutorial vs a &#8220;pessimistic&#8221; approach as you describe is not a &#8220;one size fits all&#8221; question.  It is dependent on your persistence mechanism and your performance requirements (E.g. the cost of rollback vs the cost of commit)</p>
<p>Lazy initialization is a bit of a personal preference of mine &#8211; I cannot remember a single case in any of my apps where the added cost of the #ifNil:has been significant whereas I have hit problems on a number of occasions with badly performing #initialize methods.  I sure other may have anecdotes that lead them to prefer the opposite approach <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>You will note that I did provide #addContact: method on MyAddressBook in Session 1 (I left #removeContact: out of scope for the tutorial).  You are correct that there are dangers *if* you can&#8217;t trust your clients to use the promoted interface on the containing class but there are an equal number of dangers with always return a copy of a collection (profusion of object references, inconsistent state etc.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jRave</title>
		<link>http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-23</link>
		<dc:creator>jRave</dc:creator>
		<pubDate>Fri, 26 Jan 2007 12:48:06 +0000</pubDate>
		<guid isPermaLink="false">http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-23</guid>
		<description>Using your method of reverting back to copy seems dangerous to me as for a split second the model will actually contain invalid data. It depends on persistence mechanism you are using, but even in case you are using a persistence layer requiring commit to actually write the data and -in case caching is implemented- passing only copies of cached data this seems as a bad practice to me, it can bite you later, and you won&#039;t know where it came from ...

Either editing the copy, or even better using the method Michel B. suggested seems as a better alternative to me - WARenderCanvas responds to cancelButton, at least in 2.7a1-lr.139 I&#039;m using.

Also, readers beware: This example answers a _reference_ to an collection used internally in a class. This is in many cases now what you want, as it can lead to unwanted side-effects. Preferred solution is ansvering a copy of the collection and delegating the needed functionality (ie. adding/removig etc.) as such:

&quot;Lazy initialization is pointless here. Use it in cases where the performance hit of allways having to send a ifNil: message overcomes the odds of having a large/long initialization deffered until needed&quot;
contacts
   ^ (contacts ifNil: [contacts := OrderedCollection new]) copy

addContact: aContact
   contacts add: aContact

remove: aContact
   contacts remove: aContact</description>
		<content:encoded><![CDATA[<p>Using your method of reverting back to copy seems dangerous to me as for a split second the model will actually contain invalid data. It depends on persistence mechanism you are using, but even in case you are using a persistence layer requiring commit to actually write the data and -in case caching is implemented- passing only copies of cached data this seems as a bad practice to me, it can bite you later, and you won&#8217;t know where it came from &#8230;</p>
<p>Either editing the copy, or even better using the method Michel B. suggested seems as a better alternative to me &#8211; WARenderCanvas responds to cancelButton, at least in 2.7a1-lr.139 I&#8217;m using.</p>
<p>Also, readers beware: This example answers a _reference_ to an collection used internally in a class. This is in many cases now what you want, as it can lead to unwanted side-effects. Preferred solution is ansvering a copy of the collection and delegating the needed functionality (ie. adding/removig etc.) as such:</p>
<p>&#8220;Lazy initialization is pointless here. Use it in cases where the performance hit of allways having to send a ifNil: message overcomes the odds of having a large/long initialization deffered until needed&#8221;<br />
contacts<br />
   ^ (contacts ifNil: [contacts := OrderedCollection new]) copy</p>
<p>addContact: aContact<br />
   contacts add: aContact</p>
<p>remove: aContact<br />
   contacts remove: aContact</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: objectcentric</title>
		<link>http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-20</link>
		<dc:creator>objectcentric</dc:creator>
		<pubDate>Thu, 25 Jan 2007 11:47:23 +0000</pubDate>
		<guid isPermaLink="false">http://objectcentric.wordpress.com/2007/01/22/scriptacu-list-tutorialpart-3/#comment-20</guid>
		<description>Hi Michel

This sounds very useful but I can&#039;t find an implementation of #cancelButton on WARenderCanvas.  Is this an extension you have written or am I missing something?</description>
		<content:encoded><![CDATA[<p>Hi Michel</p>
<p>This sounds very useful but I can&#8217;t find an implementation of #cancelButton on WARenderCanvas.  Is this an extension you have written or am I missing something?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
