<?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: What Second Life can teach about scaling</title>
	<atom:link href="http://laughingmeme.org/2010/02/03/what-second-life-can-teach-about-scaling/feed/" rel="self" type="application/rss+xml" />
	<link>http://laughingmeme.org/2010/02/03/what-second-life-can-teach-about-scaling/</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 30 Jan 2012 22:28:46 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Kellan</title>
		<link>http://laughingmeme.org/2010/02/03/what-second-life-can-teach-about-scaling/comment-page-1/#comment-811067</link>
		<dc:creator>Kellan</dc:creator>
		<pubDate>Fri, 05 Feb 2010 20:02:12 +0000</pubDate>
		<guid isPermaLink="false">http://laughingmeme.org/?p=4458#comment-811067</guid>
		<description>&lt;p&gt;@kastner Absolutely.  I regularly ignore the filesystem.  Similarly I regularly ignore most of the moving parts of MySQL.  I even pretend that the PHP I&#039;m writing is what is actually running rather then opcodes compiled by APC.&lt;/p&gt;

&lt;p&gt;Ian&#039;s point, which perhaps got obscured in my response is your whole team needs to be able to drill down past the abstractions.   Because you&#039;ll need to in order to reach your next scaling plateau. (which is sometimes growth and sometimes recovering from down time)&lt;/p&gt;

&lt;p&gt;The danger of introducing excessive abstractions is it creates mental boundaries that have a cost to cross.  Additionally the abstraction you build in to your app will be necessity be less battle tested then say a filesystem. &lt;/p&gt;

&lt;p&gt;And I &lt;em&gt;do&lt;/em&gt; dislike ORMs.  I would love an object-ROW-mapper, but the attempts to write SQL/manage the relational model have always failed in the domains where I have experience.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@kastner Absolutely.  I regularly ignore the filesystem.  Similarly I regularly ignore most of the moving parts of MySQL.  I even pretend that the PHP I&#8217;m writing is what is actually running rather then opcodes compiled by APC.</p>

<p>Ian&#8217;s point, which perhaps got obscured in my response is your whole team needs to be able to drill down past the abstractions.   Because you&#8217;ll need to in order to reach your next scaling plateau. (which is sometimes growth and sometimes recovering from down time)</p>

<p>The danger of introducing excessive abstractions is it creates mental boundaries that have a cost to cross.  Additionally the abstraction you build in to your app will be necessity be less battle tested then say a filesystem. </p>

<p>And I <em>do</em> dislike ORMs.  I would love an object-ROW-mapper, but the attempts to write SQL/manage the relational model have always failed in the domains where I have experience.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Erik kastner</title>
		<link>http://laughingmeme.org/2010/02/03/what-second-life-can-teach-about-scaling/comment-page-1/#comment-811020</link>
		<dc:creator>Erik kastner</dc:creator>
		<pubDate>Fri, 05 Feb 2010 15:18:33 +0000</pubDate>
		<guid isPermaLink="false">http://laughingmeme.org/?p=4458#comment-811020</guid>
		<description>&lt;p&gt;I haven&#039;t worked at scale for very long or very large, so I can&#039;t speak to that directly, except to say all that advice sounds awesome.&lt;/p&gt;

&lt;p&gt;I have, however, been programming for the greater part of my life. When I first read &quot;So true! Abstractions kill.&quot; (in regards to things like ORM), I pumped my fist in the air. 
Then I thought, wait... abstractions are our sharpest tool. Yes they can kill, but they can also create. Just like a chef&#039;s knife, they are dangerous, but without them we&#039;d still be flipping switches on the front of our analog computers. &lt;/p&gt;

&lt;p&gt;The trick is to find the correct (or least-incorrect) abstractions that provide the best balance between computer inefficiency and coder efficiency. As computers have increased in speed and complexity, the slider has been moving more and more towards insulating the human operator, and allowing more and more expressiveness.&lt;/p&gt;

&lt;p&gt;That&#039;s where the rub lies. All abstractions, by their nature, are &quot;leaky&quot; (the map is not the territory, etc). And scale is where those leaks can (and usually do) become a problem. If you&#039;ve made your abstraction so rigid that you can&#039;t bypass it to get &quot;closer to the metal&quot;, you&#039;re going to get hurt.&lt;/p&gt;

&lt;p&gt;I don&#039;t have a problem with &quot;ORM&quot;s per-se (at least how they&#039;re implemented in popular frameworks - they&#039;re not conceptually pure ORMs). What they do encourage is the encapsulation of business logic in a single place. What I do have a problem with is an ORM that doesn&#039;t let you drop down directly to SQL when necessary. Careful violation of abstractions is key.&lt;/p&gt;

&lt;p&gt;We can&#039;t hold a lot in our heads at once. Anything that helps us &quot;chunk down&quot; the huge amounts of information we deal with will help us get stuff done faster. If you end up with a good system or a bad one is determined in large part by the architect of said system - if they had discipline and a strong vision, chances are good that you&#039;ll be able to evolve it in a sane matter.&lt;/p&gt;

&lt;p&gt;This is getting very far afield of your post... The &quot;new&quot; thing is the web scaling, the not-new thing is making it possible to communicate with yourself and others through code.&lt;/p&gt;

&lt;p&gt;Programming is communicating with machines
Coding is communicating with people&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I haven&#8217;t worked at scale for very long or very large, so I can&#8217;t speak to that directly, except to say all that advice sounds awesome.</p>

<p>I have, however, been programming for the greater part of my life. When I first read &#8220;So true! Abstractions kill.&#8221; (in regards to things like ORM), I pumped my fist in the air. 
Then I thought, wait&#8230; abstractions are our sharpest tool. Yes they can kill, but they can also create. Just like a chef&#8217;s knife, they are dangerous, but without them we&#8217;d still be flipping switches on the front of our analog computers. </p>

<p>The trick is to find the correct (or least-incorrect) abstractions that provide the best balance between computer inefficiency and coder efficiency. As computers have increased in speed and complexity, the slider has been moving more and more towards insulating the human operator, and allowing more and more expressiveness.</p>

<p>That&#8217;s where the rub lies. All abstractions, by their nature, are &#8220;leaky&#8221; (the map is not the territory, etc). And scale is where those leaks can (and usually do) become a problem. If you&#8217;ve made your abstraction so rigid that you can&#8217;t bypass it to get &#8220;closer to the metal&#8221;, you&#8217;re going to get hurt.</p>

<p>I don&#8217;t have a problem with &#8220;ORM&#8221;s per-se (at least how they&#8217;re implemented in popular frameworks &#8211; they&#8217;re not conceptually pure ORMs). What they do encourage is the encapsulation of business logic in a single place. What I do have a problem with is an ORM that doesn&#8217;t let you drop down directly to SQL when necessary. Careful violation of abstractions is key.</p>

<p>We can&#8217;t hold a lot in our heads at once. Anything that helps us &#8220;chunk down&#8221; the huge amounts of information we deal with will help us get stuff done faster. If you end up with a good system or a bad one is determined in large part by the architect of said system &#8211; if they had discipline and a strong vision, chances are good that you&#8217;ll be able to evolve it in a sane matter.</p>

<p>This is getting very far afield of your post&#8230; The &#8220;new&#8221; thing is the web scaling, the not-new thing is making it possible to communicate with yourself and others through code.</p>

<p>Programming is communicating with machines
Coding is communicating with people</p>]]></content:encoded>
	</item>
	<item>
		<title>By: John Allspaw</title>
		<link>http://laughingmeme.org/2010/02/03/what-second-life-can-teach-about-scaling/comment-page-1/#comment-810918</link>
		<dc:creator>John Allspaw</dc:creator>
		<pubDate>Fri, 05 Feb 2010 02:07:11 +0000</pubDate>
		<guid isPermaLink="false">http://laughingmeme.org/?p=4458#comment-810918</guid>
		<description>&lt;p&gt;The Friendster quotes from Lunt are 100% true and spot-on.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>The Friendster quotes from Lunt are 100% true and spot-on.</p>]]></content:encoded>
	</item>
</channel>
</rss>

