<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>KTORIUM</title>
	<atom:link href="http://blog.ktorium.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ktorium.com</link>
	<description>Tal Kedar&#039;s Orchard</description>
	<lastBuildDate>Tue, 21 Jul 2009 19:17:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Pareto</title>
		<link>http://blog.ktorium.com/2009/07/pareto/</link>
		<comments>http://blog.ktorium.com/2009/07/pareto/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 13:09:14 +0000</pubDate>
		<dc:creator>Tal Kedar</dc:creator>
				<category><![CDATA[cura]]></category>

		<guid isPermaLink="false">http://blog.ktorium.com/?p=229</guid>
		<description><![CDATA[


(Photo: SunFlower)


It is probably true that I could get 80% of the ingredients for these lovely lamb chops from the grocer&#8217;s right at the end of the street. That is, everything needed for the dish except for the lamb chops themselves and some decent balsamic vinegar &#8211; for those, I&#8217;ll have to travel down town. [...]]]></description>
			<content:encoded><![CDATA[<div class="just">
<div style="float: right; width: 140px; padding: 0.5em 0 0.5em 2.4em;">
<span><img src="http://images.media-allrecipes.com/site/allrecipes/area/community/userphoto/small/31252.jpg" width="140px" /></span><br />
<span class="img_caption">(Photo: <a href="http://allrecipes.com/Cook/Photo.aspx?photoID=31252">SunFlower)</a></span>
</div>

<p>It is probably true that I could get 80% of the ingredients for these lovely <a href="http://allrecipes.com/Recipe/Lamb-Chops-with-Balsamic-Reduction/Detail.aspx" title="AllRecipes.com: Lamb Chops with Balsamic Reduction">lamb chops</a> from the grocer&#8217;s right at the end of the street. That is, everything needed for the dish except for the lamb chops themselves and some decent balsamic vinegar &#8211; for those, I&#8217;ll have to travel down town. With traffic and parking, getting those few extra ingredients is, for me, more than four times the trouble of getting the rest. The same is true from the financial perspective: the aggregate cost of the cheaper 80% of the ingredients is easily less than 20% of the combined cost for the entire dish. Still&#8230; seems like there isn&#8217;t much point in cooking it without actually using lamb chops and the balsamic, right? Just imagine a bewildered Vilfredo sitting there, looking silently at me, at his plate, and at me again.</p>

<p>The famous <a title="Wikipedia: Pareto Principle" href="http://en.wikipedia.org/wiki/Pareto_principle">Pareto principle</a> is an observation, a fact that holds true in a great number of cases. In itself, however, it is not a strategy. What we&#8217;re really after is <em>efficiency</em>, maximizing ROI, minimizing opportunity cost. The relation between the two concepts is a conditional one: when it&#8217;s 80% of the potential <em>value</em> that can be achieved through 20% of the potential investment, we&#8217;re probably looking at <a href="http://en.wikipedia.org/wiki/Diminishing_returns" title="Wikipedia: Diminishing Returns">diminishing returns</a>, so it might well be more efficient to direct additional resources into other venues. If it&#8217;s 80% of anything else that we get for 20% of whatever, although the principle certainly holds, it usually would not have implications on the best course of action.</p>

<div style="float: left; width: 250px; padding: 0.5em 2.4em 0.5em 0;">
<span><img title="RFC 1149.5 specifies 4 as the standard IEEE-vetted random number." src="http://imgs.xkcd.com/comics/random_number.png" alt="xkcd: Random Number" width="250" /></span>
<span class="img_caption">A very local maxima (<a href="http://xkcd.com/221/">xkcd</a>)</span>
</div>

<p>With software projects, it is often true that implementing just 80% of the requirements yields much less than 80% of the expected business value. Assessing the value of early feedback versus the costs associated with a Patch Driven Design (PDD) approach is a complex matter, deserving a post of its own; the notion of <a href="http://en.wikipedia.org/wiki/Pareto_efficiency" title="Wikipedia: Pareto Efficiency">Pareto efficiency</a> comes to mind, where the options on the frontier represent business value optimizations over different time spans &#8211; this would make for an interesting chat over the <a href="http://www.cookingwithpatty.com/italian/recipe/tiramisu/" title="Patty's tiramisu">tiramisu</a>, I guess.</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://blog.ktorium.com/2009/07/pareto/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Heartbeat</title>
		<link>http://blog.ktorium.com/2009/06/heartbeat/</link>
		<comments>http://blog.ktorium.com/2009/06/heartbeat/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 01:01:17 +0000</pubDate>
		<dc:creator>Tal Kedar</dc:creator>
				<category><![CDATA[haiku]]></category>

		<guid isPermaLink="false">http://www.ktorium.com/blog/?p=29</guid>
		<description><![CDATA[A vital daemon
Eagerly pronouncing death
So it takes over]]></description>
			<content:encoded><![CDATA[<p>A vital daemon<br />
Eagerly pronouncing death<br />
So it takes over</p>]]></content:encoded>
			<wfw:commentRss>http://blog.ktorium.com/2009/06/heartbeat/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Serving</title>
		<link>http://blog.ktorium.com/2009/06/serving/</link>
		<comments>http://blog.ktorium.com/2009/06/serving/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 16:12:45 +0000</pubDate>
		<dc:creator>Tal Kedar</dc:creator>
				<category><![CDATA[haiku]]></category>

		<guid isPermaLink="false">http://www.ktorium.com/blog/?p=20</guid>
		<description><![CDATA[Blinking anxiously
Is this the right path?
Waiting for an ACK]]></description>
			<content:encoded><![CDATA[<p>Blinking anxiously<br />
Is this the right path?<br />
Waiting for an ACK</p>]]></content:encoded>
			<wfw:commentRss>http://blog.ktorium.com/2009/06/serving/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>The nnCoection response header</title>
		<link>http://blog.ktorium.com/2009/06/the-nncoection-response-header/</link>
		<comments>http://blog.ktorium.com/2009/06/the-nncoection-response-header/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 22:44:41 +0000</pubDate>
		<dc:creator>Tal Kedar</dc:creator>
				<category><![CDATA[http]]></category>

		<guid isPermaLink="false">http://www.ktorium.com/blog/?p=6</guid>
		<description><![CDATA[I thought I&#8217;ve stumbled on some hand-crafted response from Amazon:

$ nc -vv www.amazon.com 80
Connection to www.amazon.com 80 port [tcp/http] succeeded!
GET / HTTP/1.1

HTTP/1.1 400 Bad Request
Date: Wed, 17 Jun 2009 22:31:39 GMT
Server: Server
Content-Length: 226
nnCoection: close
Content-Type: text/html; charset=iso-8859-1

&#60;!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"&#62;
&#60;html&#62;&#60;head&#62;
&#60;title&#62;400 Bad Request&#60;/title&#62;
&#60;/head&#62;&#60;body&#62;
&#60;h1&#62;Bad Request&#60;/h1&#62;
&#60;p&#62;Your browser sent a request that this server could not understand.&#60;br&#160;/&#62;
&#60;/p&#62;
&#60;/body&#62;&#60;/html&#62;

Note the [...]]]></description>
			<content:encoded><![CDATA[<p>I thought I&#8217;ve stumbled on some hand-crafted response from <a href="http://www.amazon.com">Amazon</a>:
<pre class="code">
$ nc -vv www.amazon.com 80
Connection to www.amazon.com 80 port [tcp/http] succeeded!
GET / HTTP/1.1

HTTP/1.1 400 Bad Request
Date: Wed, 17 Jun 2009 22:31:39 GMT
Server: Server
Content-Length: 226
nnCoection: close
Content-Type: text/html; charset=iso-8859-1

&lt;!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"&gt;
&lt;html&gt;&lt;head&gt;
&lt;title&gt;400 Bad Request&lt;/title&gt;
&lt;/head&gt;&lt;body&gt;
&lt;h1&gt;Bad Request&lt;/h1&gt;
&lt;p&gt;Your browser sent a request that this server could not understand.&lt;br&nbsp;/&gt;
&lt;/p&gt;
&lt;/body&gt;&lt;/html&gt;
</pre>
Note the <code>nnCoection: close</code> response header. The <code>400</code> response is returned, in this case, because of a missing <code>Host</code> request header.</p>
<p>Turns out the spelling mistake is intentional &#8211; Andrew Wooster&#8217;s excellent <a href="http://www.nextthing.org/archives/2005/08/07/fun-with-http-headers">post</a> claims that the header is changed by a load-balancing service, overriding the web server&#8217;s directive. A comment on that post identifies the service as the <a href="http://www.citrix.com/english/ps2/products/product.asp?contentID=21679">Citrix NetScaler</a> appliance, and explains the logic of scrambling rather than removing the header altogether. Cool stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ktorium.com/2009/06/the-nncoection-response-header/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
