<?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/"
		>
<channel>
	<title>Comments on: Notecard Writing Nonsense</title>
	<atom:link href="http://tentacolor.com/2008/02/01/notecard-writing-nonsense/feed/" rel="self" type="application/rss+xml" />
	<link>http://tentacolor.com/2008/02/01/notecard-writing-nonsense/</link>
	<description></description>
	<lastBuildDate>Wed, 31 Aug 2011 00:33:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
	<item>
		<title>By: Jeddin Laval</title>
		<link>http://tentacolor.com/2008/02/01/notecard-writing-nonsense/comment-page-1/#comment-1264</link>
		<dc:creator>Jeddin Laval</dc:creator>
		<pubDate>Fri, 08 Aug 2008 14:51:00 +0000</pubDate>
		<guid isPermaLink="false">http://tentacolor.com/?p=233#comment-1264</guid>
		<description>Forty years in this monkeybusiness field have forced some clues on me, among them this evident problem: Scaling up any system inevitably crosses successive thresholds of dynamics, and the system will just as inevitably break.  As much as I hate to admit it, Prospero&#039;s discussion explains it well, and although I&#039;d love to script out piles of notecards to all and sundry, I can see down the rathole, and it&#039;s full of rats.

Second Life is in the business of scaling up, and being deeply cautious about enabling scripted creation of content isn&#039;t just a good idea -- it&#039;s a good way to avoid suicide.  Scale up very slowly.  The next unanticipated dynamic threshold in this amazing world will find you soon enough.

(8-]</description>
		<content:encoded><![CDATA[<p>Forty years in this monkeybusiness field have forced some clues on me, among them this evident problem: Scaling up any system inevitably crosses successive thresholds of dynamics, and the system will just as inevitably break.  As much as I hate to admit it, Prospero&#8217;s discussion explains it well, and although I&#8217;d love to script out piles of notecards to all and sundry, I can see down the rathole, and it&#8217;s full of rats.</p>
<p>Second Life is in the business of scaling up, and being deeply cautious about enabling scripted creation of content isn&#8217;t just a good idea &#8212; it&#8217;s a good way to avoid suicide.  Scale up very slowly.  The next unanticipated dynamic threshold in this amazing world will find you soon enough.</p>
<p>(8-]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chavo Raven</title>
		<link>http://tentacolor.com/2008/02/01/notecard-writing-nonsense/comment-page-1/#comment-1255</link>
		<dc:creator>Chavo Raven</dc:creator>
		<pubDate>Fri, 25 Jul 2008 00:46:56 +0000</pubDate>
		<guid isPermaLink="false">http://tentacolor.com/?p=233#comment-1255</guid>
		<description>This could all be resolved if they would just provide basic database access... and the asset server issue could be worked around using buffers reading and writing. The garbage collection shouldn&#039;t really be an issue either if you&#039;re buffering the data and not doing byte by byte writes... even more efficient if they ever manage to release Mono. Of course, it would make the most sense to simply setup some secondary MySQL servers and add some basic functionality for that, which wouldn&#039;t be that hard to include and has been asked for for years, just like object-to-object IMs have been asked for since at least 2004 that I know of (allowing us to not have to depend on llEmail crap).</description>
		<content:encoded><![CDATA[<p>This could all be resolved if they would just provide basic database access&#8230; and the asset server issue could be worked around using buffers reading and writing. The garbage collection shouldn&#8217;t really be an issue either if you&#8217;re buffering the data and not doing byte by byte writes&#8230; even more efficient if they ever manage to release Mono. Of course, it would make the most sense to simply setup some secondary MySQL servers and add some basic functionality for that, which wouldn&#8217;t be that hard to include and has been asked for for years, just like object-to-object IMs have been asked for since at least 2004 that I know of (allowing us to not have to depend on llEmail crap).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nacon</title>
		<link>http://tentacolor.com/2008/02/01/notecard-writing-nonsense/comment-page-1/#comment-898</link>
		<dc:creator>Nacon</dc:creator>
		<pubDate>Mon, 18 Feb 2008 03:41:17 +0000</pubDate>
		<guid isPermaLink="false">http://tentacolor.com/?p=233#comment-898</guid>
		<description>Sounds like you have been waiting for Mono&#039;s extended script memories.  (64kb)
;)</description>
		<content:encoded><![CDATA[<p>Sounds like you have been waiting for Mono&#8217;s extended script memories.  (64kb)<br />
;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Prospero Linden</title>
		<link>http://tentacolor.com/2008/02/01/notecard-writing-nonsense/comment-page-1/#comment-883</link>
		<dc:creator>Prospero Linden</dc:creator>
		<pubDate>Sun, 10 Feb 2008 14:33:23 +0000</pubDate>
		<guid isPermaLink="false">http://tentacolor.com/?p=233#comment-883</guid>
		<description>It&#039;s not just the volume of notecard writes, it&#039;s also a matter of garbage collection.

Every time you edit a notecard by hand and save your version, if nobody else has a copy of the previous version, the previous version becomes &quot;garbage&quot;.  That is, something on the asset server to which there is no reference.  How do you figure out if there is no reference?  That process is called garbage collection.  Because the asset server is always filling up, we go through and collect the garbage every so often, to free up the space used by assets that aren&#039;t referred to anywhere.

The ability to create garbage notecards is right now limited by the speed of human thought and typing.  Even with a delay, you can bet that some script writers would regularly be updating state in notecards (daily, hourly, whatever).  Consider also that scripts tend to be in-world 24/7 (unlike, at least, most avatars), and that the number of scripts (even non-trivial scripts) in a given region usually dwarfs the number of simultaneous avatars that region can even support.  This would lead to an explosion of garbage.  Even if it didn&#039;t overwhelm the asset server&#039;s space requirements, it would overwhelm our garbage collection procedures.

At which point you may wonder why we don&#039;t keep a reference count with each asset, such as (say) languages like Java do with their objects.  Well, yes, that&#039;s an elegant solution, but bear in mind the scale of the thing.  The asset server is many tens of terrabyltes (maybe over a hundred; I don&#039;t remember the number off of the top of my head).  Tens of thousands of people are creating assets all the time, and need to be accessing those assets all the time.  This leads to design issues that are entirely out of the realm of design issues that you think about for a programming language and memory management on a single system.  Doing all of this is **hard**.  If it weren&#039;t, then there would be lots of companies, not just Linden Lab, that had a virtual world with the scripting and content-creation flexibility on the scale of Second Life.  When you really start to think deeply about the implications of script-writeable notecard (and, believe me, when I was first in Second Life in my pre-Linden days, i was fully boggled that you couldn&#039;t just do that), the issues become absolutely as thorny as the &quot;company line&quot; implies, despite the dismissal of those issues in missives such as your blog post here.  The asset server is designed to be &quot;WORM&quot; (write once read many), because that&#039;s the way the vast majority of assets work.  (Consider texures; they are uploaded once, but downloaded a lot, as people come into a region and need the texture to see what it looks like.)

At Linden Lab, we are well aware that scripters want/need some way of having persistent data associated with objects and scripts.  It&#039;s not clear that writeable notecards are the right way to do that.  Most obvious things you can come up with will have non-obvious wrinkles and issues associated with them that are unique to the nature of having a single large global virtual world like Second Life.  Currently, those working on scripting are focusing on making Mono work right; you can go into Aditi (the beta server) and check out regions that are Mono enabled.  We don&#039;t want to make big changes to the LSL functions and capabilities while trying to make sure that Second Life with Mono properly runs LSL; that moving target would make it much harder to get Mono stable.  After that, obviously I can make no promises, but some sort of persistent store *is* something many of us would like to see.  Will it happen in the next year?  Who knows?

-Prospero Linden (who came here looking for a way to do character animation in Blender, but found this....)</description>
		<content:encoded><![CDATA[<p>It&#8217;s not just the volume of notecard writes, it&#8217;s also a matter of garbage collection.</p>
<p>Every time you edit a notecard by hand and save your version, if nobody else has a copy of the previous version, the previous version becomes &#8220;garbage&#8221;.  That is, something on the asset server to which there is no reference.  How do you figure out if there is no reference?  That process is called garbage collection.  Because the asset server is always filling up, we go through and collect the garbage every so often, to free up the space used by assets that aren&#8217;t referred to anywhere.</p>
<p>The ability to create garbage notecards is right now limited by the speed of human thought and typing.  Even with a delay, you can bet that some script writers would regularly be updating state in notecards (daily, hourly, whatever).  Consider also that scripts tend to be in-world 24/7 (unlike, at least, most avatars), and that the number of scripts (even non-trivial scripts) in a given region usually dwarfs the number of simultaneous avatars that region can even support.  This would lead to an explosion of garbage.  Even if it didn&#8217;t overwhelm the asset server&#8217;s space requirements, it would overwhelm our garbage collection procedures.</p>
<p>At which point you may wonder why we don&#8217;t keep a reference count with each asset, such as (say) languages like Java do with their objects.  Well, yes, that&#8217;s an elegant solution, but bear in mind the scale of the thing.  The asset server is many tens of terrabyltes (maybe over a hundred; I don&#8217;t remember the number off of the top of my head).  Tens of thousands of people are creating assets all the time, and need to be accessing those assets all the time.  This leads to design issues that are entirely out of the realm of design issues that you think about for a programming language and memory management on a single system.  Doing all of this is **hard**.  If it weren&#8217;t, then there would be lots of companies, not just Linden Lab, that had a virtual world with the scripting and content-creation flexibility on the scale of Second Life.  When you really start to think deeply about the implications of script-writeable notecard (and, believe me, when I was first in Second Life in my pre-Linden days, i was fully boggled that you couldn&#8217;t just do that), the issues become absolutely as thorny as the &#8220;company line&#8221; implies, despite the dismissal of those issues in missives such as your blog post here.  The asset server is designed to be &#8220;WORM&#8221; (write once read many), because that&#8217;s the way the vast majority of assets work.  (Consider texures; they are uploaded once, but downloaded a lot, as people come into a region and need the texture to see what it looks like.)</p>
<p>At Linden Lab, we are well aware that scripters want/need some way of having persistent data associated with objects and scripts.  It&#8217;s not clear that writeable notecards are the right way to do that.  Most obvious things you can come up with will have non-obvious wrinkles and issues associated with them that are unique to the nature of having a single large global virtual world like Second Life.  Currently, those working on scripting are focusing on making Mono work right; you can go into Aditi (the beta server) and check out regions that are Mono enabled.  We don&#8217;t want to make big changes to the LSL functions and capabilities while trying to make sure that Second Life with Mono properly runs LSL; that moving target would make it much harder to get Mono stable.  After that, obviously I can make no promises, but some sort of persistent store *is* something many of us would like to see.  Will it happen in the next year?  Who knows?</p>
<p>-Prospero Linden (who came here looking for a way to do character animation in Blender, but found this&#8230;.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erbo Evans</title>
		<link>http://tentacolor.com/2008/02/01/notecard-writing-nonsense/comment-page-1/#comment-866</link>
		<dc:creator>Erbo Evans</dc:creator>
		<pubDate>Sun, 03 Feb 2008 23:35:33 +0000</pubDate>
		<guid isPermaLink="false">http://tentacolor.com/?p=233#comment-866</guid>
		<description>See: http://evansavenue.wordpress.com/2008/02/03/notecard-writing-a-modest-proposal/</description>
		<content:encoded><![CDATA[<p>See: <a href="http://evansavenue.wordpress.com/2008/02/03/notecard-writing-a-modest-proposal/" rel="nofollow">http://evansavenue.wordpress.com/2008/02/03/notecard-writing-a-modest-proposal/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Notecard Writing: A Modest Proposal &#171; Evans Avenue Exit</title>
		<link>http://tentacolor.com/2008/02/01/notecard-writing-nonsense/comment-page-1/#comment-865</link>
		<dc:creator>Notecard Writing: A Modest Proposal &#171; Evans Avenue Exit</dc:creator>
		<pubDate>Sun, 03 Feb 2008 23:34:52 +0000</pubDate>
		<guid isPermaLink="false">http://tentacolor.com/?p=233#comment-865</guid>
		<description>[...] Writing: A Modest&#160;Proposal  Jump to Comments Jacek laments the lack of ability of scripts to write to notecards, thus depriving them of a potentially-useful [...]</description>
		<content:encoded><![CDATA[<p>[...] Writing: A Modest&nbsp;Proposal  Jump to Comments Jacek laments the lack of ability of scripts to write to notecards, thus depriving them of a potentially-useful [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Erbo Evans</title>
		<link>http://tentacolor.com/2008/02/01/notecard-writing-nonsense/comment-page-1/#comment-863</link>
		<dc:creator>Erbo Evans</dc:creator>
		<pubDate>Sun, 03 Feb 2008 22:58:15 +0000</pubDate>
		<guid isPermaLink="false">http://tentacolor.com/?p=233#comment-863</guid>
		<description>Well, why couldn&#039;t it be a sort of stream-oriented thing?  Have one call which opens a &quot;notecard stream&quot; which could be written to, and have the streamed data buffered in memory.  Another call would close the stream, and, &lt;i&gt;at that point&lt;/i&gt;, save changes to the actual notecard, creating the new asset.  In other words, it would act similar to the way editing notecards works in the client now.  I should expound upon this in a post of my own...</description>
		<content:encoded><![CDATA[<p>Well, why couldn&#8217;t it be a sort of stream-oriented thing?  Have one call which opens a &#8220;notecard stream&#8221; which could be written to, and have the streamed data buffered in memory.  Another call would close the stream, and, <i>at that point</i>, save changes to the actual notecard, creating the new asset.  In other words, it would act similar to the way editing notecards works in the client now.  I should expound upon this in a post of my own&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jacek</title>
		<link>http://tentacolor.com/2008/02/01/notecard-writing-nonsense/comment-page-1/#comment-859</link>
		<dc:creator>Jacek</dc:creator>
		<pubDate>Sat, 02 Feb 2008 18:32:13 +0000</pubDate>
		<guid isPermaLink="false">http://tentacolor.com/?p=233#comment-859</guid>
		<description>@Nexeus: I certainly don&#039;t think a delay on the function would be the *best* solution, merely that it would be *a* solution, and one that might not agitate the asset servers too much. The delay would be annoying, but at least it would allow a little bit of functionality (e.g. backing up script settings before resetting).

I&#039;d much prefer a function with no delay over a function with a long delay; but I&#039;d prefer a function with a long delay over having no function at all.</description>
		<content:encoded><![CDATA[<p>@Nexeus: I certainly don&#8217;t think a delay on the function would be the *best* solution, merely that it would be *a* solution, and one that might not agitate the asset servers too much. The delay would be annoying, but at least it would allow a little bit of functionality (e.g. backing up script settings before resetting).</p>
<p>I&#8217;d much prefer a function with no delay over a function with a long delay; but I&#8217;d prefer a function with a long delay over having no function at all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nexeus Fatale</title>
		<link>http://tentacolor.com/2008/02/01/notecard-writing-nonsense/comment-page-1/#comment-858</link>
		<dc:creator>Nexeus Fatale</dc:creator>
		<pubDate>Sat, 02 Feb 2008 17:49:36 +0000</pubDate>
		<guid isPermaLink="false">http://tentacolor.com/?p=233#comment-858</guid>
		<description>Actually, some of the other problems that were caused by longer than needed description names was that objects act up (see: http://jira.secondlife.com/browse/SVC-1118).

But as for the notecard-writing function-delay - I would have to disagree with you that it would be the best solution.  The delay, in my estimation, only would cause more issues to adding data to a notecard because there is already a delay.  Not only would you be stacking delays on top of delays, but you have this possibility for making scripts become backed up with requests, crashing, or breaking entirely.

Maybe the best solution is the use of objects or note cards inside of a scripted object.</description>
		<content:encoded><![CDATA[<p>Actually, some of the other problems that were caused by longer than needed description names was that objects act up (see: <a href="http://jira.secondlife.com/browse/SVC-1118" rel="nofollow">http://jira.secondlife.com/browse/SVC-1118</a>).</p>
<p>But as for the notecard-writing function-delay &#8211; I would have to disagree with you that it would be the best solution.  The delay, in my estimation, only would cause more issues to adding data to a notecard because there is already a delay.  Not only would you be stacking delays on top of delays, but you have this possibility for making scripts become backed up with requests, crashing, or breaking entirely.</p>
<p>Maybe the best solution is the use of objects or note cards inside of a scripted object.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

