<?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 for Something Special</title>
	<atom:link href="http://www.joshdevins.net/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joshdevins.net</link>
	<description>Making it EVEN better.</description>
	<lastBuildDate>Sun, 13 Jun 2010 13:39:02 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Google is breaking the web! by Attempting to not break the web &#171; Something Special</title>
		<link>http://www.joshdevins.net/2010/05/10/google-is-breaking-the-web/comment-page-1/#comment-613</link>
		<dc:creator>Attempting to not break the web &#171; Something Special</dc:creator>
		<pubDate>Sun, 13 Jun 2010 13:39:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.joshdevins.net/?p=252#comment-613</guid>
		<description>[...] my last post, &quot;Google is breaking the web!&quot;, I discussed various approaches to customizing REST responses for mobile clients. The problem is, [...]</description>
		<content:encoded><![CDATA[<p>[...] my last post, &quot;Google is breaking the web!&quot;, I discussed various approaches to customizing REST responses for mobile clients. The problem is, [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Google is breaking the web! by Dom Farr</title>
		<link>http://www.joshdevins.net/2010/05/10/google-is-breaking-the-web/comment-page-1/#comment-576</link>
		<dc:creator>Dom Farr</dc:creator>
		<pubDate>Fri, 14 May 2010 10:26:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.joshdevins.net/?p=252#comment-576</guid>
		<description>The caching issue is a tough one, and I wish I had a magic bullet for you...but alas. Keep me posted though, I&#039;m interested in your direction on this one. 
Good luck.</description>
		<content:encoded><![CDATA[<p>The caching issue is a tough one, and I wish I had a magic bullet for you&#8230;but alas. Keep me posted though, I&#8217;m interested in your direction on this one.<br />
Good luck.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Google is breaking the web! by Josh Devins</title>
		<link>http://www.joshdevins.net/2010/05/10/google-is-breaking-the-web/comment-page-1/#comment-575</link>
		<dc:creator>Josh Devins</dc:creator>
		<pubDate>Thu, 13 May 2010 15:46:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.joshdevins.net/?p=252#comment-575</guid>
		<description>Of course, &quot;breaking&quot; is overkill, but the point is that allowing arbitrary query parameters to shape the response are incredibly difficult to make cache well and don&#039;t always make sense either. Consider the following two URLs:

GET http://blah.com/entries?fields=entry(title,gd:rating,@gd:*)
GET http://blah.com/entries?fields=entry(title)

The second returns a sub-set of the first response, but both will end up as different cache objects. It&#039;s not a big deal if both requests are coming from beside the US datacentre where the responses originate, however Australia to the US is a big deal. I would prefer to hit a cache in Australia and get slightly more data than I need vs going all the way back to the origin server just to shave a few bytes. The difference in latency can be enormous, particularly at global scale. Not to mention the extra load that this incurs on the origin servers.

Anyways, I don&#039;t think Richardson has anything to say about this specifically. I would imagine that a more appropriate approach to partial responses would be to break up into sub-resources and allow for sub-resources to be combined into bigger responses, not the other way around (and of course providing hyperlinks to combine sub-resources). This allows the server-side to constrain the total number of representations that can be fetched while in the Google case there can be hundreds of representations of the same data, just depending on the order of the query parameters (since most HTTP caches cache based on a simple hash of the URL).

But, I still have no great solution for mobile clients :)  We&#039;ll decide something soon I hope.</description>
		<content:encoded><![CDATA[<p>Of course, &#8220;breaking&#8221; is overkill, but the point is that allowing arbitrary query parameters to shape the response are incredibly difficult to make cache well and don&#8217;t always make sense either. Consider the following two URLs:</p>
<p>GET <a href="http://blah.com/entries?fields=entry(title,gd:rating,@gd:" rel="nofollow">http://blah.com/entries?fields=entry(title,gd:rating,@gd:</a>*)<br />
GET <a href="http://blah.com/entries?fields=entry(title)" rel="nofollow">http://blah.com/entries?fields=entry(title)</a></p>
<p>The second returns a sub-set of the first response, but both will end up as different cache objects. It&#8217;s not a big deal if both requests are coming from beside the US datacentre where the responses originate, however Australia to the US is a big deal. I would prefer to hit a cache in Australia and get slightly more data than I need vs going all the way back to the origin server just to shave a few bytes. The difference in latency can be enormous, particularly at global scale. Not to mention the extra load that this incurs on the origin servers.</p>
<p>Anyways, I don&#8217;t think Richardson has anything to say about this specifically. I would imagine that a more appropriate approach to partial responses would be to break up into sub-resources and allow for sub-resources to be combined into bigger responses, not the other way around (and of course providing hyperlinks to combine sub-resources). This allows the server-side to constrain the total number of representations that can be fetched while in the Google case there can be hundreds of representations of the same data, just depending on the order of the query parameters (since most HTTP caches cache based on a simple hash of the URL).</p>
<p>But, I still have no great solution for mobile clients <img src='http://www.joshdevins.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   We&#8217;ll decide something soon I hope.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Google is breaking the web! by Dom Farr</title>
		<link>http://www.joshdevins.net/2010/05/10/google-is-breaking-the-web/comment-page-1/#comment-574</link>
		<dc:creator>Dom Farr</dc:creator>
		<pubDate>Thu, 13 May 2010 12:36:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.joshdevins.net/?p=252#comment-574</guid>
		<description>I&#039;m not sure that what google is doing is &quot;breaking the web&quot;, it&#039;s the mature REST approach that Richardson spoke about. http://www.crummy.com/writing/speaking/2008-QCon/act3.html

As for too many requests, or how to cache all this around the world - no one said it would be easy. :)</description>
		<content:encoded><![CDATA[<p>I&#8217;m not sure that what google is doing is &#8220;breaking the web&#8221;, it&#8217;s the mature REST approach that Richardson spoke about. <a href="http://www.crummy.com/writing/speaking/2008-QCon/act3.html" rel="nofollow">http://www.crummy.com/writing/speaking/2008-QCon/act3.html</a></p>
<p>As for too many requests, or how to cache all this around the world &#8211; no one said it would be easy. <img src='http://www.joshdevins.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on RabbitMQ HA testing with HAProxy by Josh Devins</title>
		<link>http://www.joshdevins.net/2010/04/16/rabbitmq-ha-testing-with-haproxy/comment-page-1/#comment-499</link>
		<dc:creator>Josh Devins</dc:creator>
		<pubDate>Sat, 17 Apr 2010 09:41:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.joshdevins.net/?p=240#comment-499</guid>
		<description>Thanks Sanjay, that could be very useful for several things I&#039;m working on! I&#039;ll give it a shot too.</description>
		<content:encoded><![CDATA[<p>Thanks Sanjay, that could be very useful for several things I&#8217;m working on! I&#8217;ll give it a shot too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on RabbitMQ HA testing with HAProxy by Sanjay Aiyagari</title>
		<link>http://www.joshdevins.net/2010/04/16/rabbitmq-ha-testing-with-haproxy/comment-page-1/#comment-497</link>
		<dc:creator>Sanjay Aiyagari</dc:creator>
		<pubDate>Sat, 17 Apr 2010 05:41:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.joshdevins.net/?p=240#comment-497</guid>
		<description>If you want to test against the F5 Big IPs functionally as a developer check out https://www.f5.com/trial/
It is a virtual edition of Big IP LTM.</description>
		<content:encoded><![CDATA[<p>If you want to test against the F5 Big IPs functionally as a developer check out <a href="https://www.f5.com/trial/" rel="nofollow">https://www.f5.com/trial/</a><br />
It is a virtual edition of Big IP LTM.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on RabbitMQ HA testing with HAProxy by Josh Devins</title>
		<link>http://www.joshdevins.net/2010/04/16/rabbitmq-ha-testing-with-haproxy/comment-page-1/#comment-494</link>
		<dc:creator>Josh Devins</dc:creator>
		<pubDate>Fri, 16 Apr 2010 18:57:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.joshdevins.net/?p=240#comment-494</guid>
		<description>Hey Matthias, I saw someone (Ben I think?) post about that library on the mailing list too. I&#039;m just working on a client now that will be based on the point-to-point version in there.</description>
		<content:encoded><![CDATA[<p>Hey Matthias, I saw someone (Ben I think?) post about that library on the mailing list too. I&#8217;m just working on a client now that will be based on the point-to-point version in there.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on RabbitMQ HA testing with HAProxy by Matthias Radestock</title>
		<link>http://www.joshdevins.net/2010/04/16/rabbitmq-ha-testing-with-haproxy/comment-page-1/#comment-493</link>
		<dc:creator>Matthias Radestock</dc:creator>
		<pubDate>Fri, 16 Apr 2010 18:28:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.joshdevins.net/?p=240#comment-493</guid>
		<description>Regarding HA Java client libraries, check out RabbitMQ&#039;s experimental Java message patterns library at http://hg.rabbitmq.com/rabbitmq-java-messagepatterns/

There is a .net version of this library too.

The library provides for automatic reconnect and retransmission. Currently it only deals with one particular message pattern - point-to-point - but it should be possible to extend this to other use cases.</description>
		<content:encoded><![CDATA[<p>Regarding HA Java client libraries, check out RabbitMQ&#8217;s experimental Java message patterns library at <a href="http://hg.rabbitmq.com/rabbitmq-java-messagepatterns/" rel="nofollow">http://hg.rabbitmq.com/rabbitmq-java-messagepatterns/</a></p>
<p>There is a .net version of this library too.</p>
<p>The library provides for automatic reconnect and retransmission. Currently it only deals with one particular message pattern &#8211; point-to-point &#8211; but it should be possible to extend this to other use cases.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on RabbitMQ cluster auto-configuration debugging by Josh</title>
		<link>http://www.joshdevins.net/2010/03/21/rabbitmq-cluster-auto-configuration-debugging/comment-page-1/#comment-432</link>
		<dc:creator>Josh</dc:creator>
		<pubDate>Sat, 27 Mar 2010 14:28:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.joshdevins.net/?p=213#comment-432</guid>
		<description>Thanks everyone for the comments and clarifications. I guess it&#039;s time to finally open up that &quot;Programming Erlang&quot; book I have!</description>
		<content:encoded><![CDATA[<p>Thanks everyone for the comments and clarifications. I guess it&#8217;s time to finally open up that &#8220;Programming Erlang&#8221; book I have!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on RabbitMQ cluster auto-configuration debugging by David Smith</title>
		<link>http://www.joshdevins.net/2010/03/21/rabbitmq-cluster-auto-configuration-debugging/comment-page-1/#comment-419</link>
		<dc:creator>David Smith</dc:creator>
		<pubDate>Wed, 24 Mar 2010 17:05:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.joshdevins.net/?p=213#comment-419</guid>
		<description>Yes,  if you come form an OO background,  Erlang strings can seem a little unusual.  There is no string type per se,  however, there are three ways to represent stringy like data (ie. strings of characters): Atoms, lists (linked-list of numbers), and binaries.  

When we talk of strings in Erlang, we usually mean the list of characters as Alvero eludes to, and indeed the literal &quot;Hello World&quot; will be compiled to a list.  

However, from a storage point-of-view, the binary representation probably has more in common with the string types you are familiar with.  The literal &lt;&gt; compiles to a binary.

Atoms are properly used as constant values, much like the &quot;#DEFINE&quot; in C or the &quot;static final String&quot; in Java.  Atom literals need not be quoted if they start with a lowercase letter and contain only alphanumerics or _ or @.  Otherwise they are quoted using single quotes like &#039;Hello World&#039;.</description>
		<content:encoded><![CDATA[<p>Yes,  if you come form an OO background,  Erlang strings can seem a little unusual.  There is no string type per se,  however, there are three ways to represent stringy like data (ie. strings of characters): Atoms, lists (linked-list of numbers), and binaries.  </p>
<p>When we talk of strings in Erlang, we usually mean the list of characters as Alvero eludes to, and indeed the literal &#8220;Hello World&#8221; will be compiled to a list.  </p>
<p>However, from a storage point-of-view, the binary representation probably has more in common with the string types you are familiar with.  The literal &lt;&gt; compiles to a binary.</p>
<p>Atoms are properly used as constant values, much like the &#8220;#DEFINE&#8221; in C or the &#8220;static final String&#8221; in Java.  Atom literals need not be quoted if they start with a lowercase letter and contain only alphanumerics or _ or @.  Otherwise they are quoted using single quotes like &#8216;Hello World&#8217;.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
