<?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: Paper tigers and hidden dragons</title>
	<atom:link href="http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons/feed" rel="self" type="application/rss+xml" />
	<link>http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons</link>
	<description>musings of Roy T. Fielding</description>
	<lastBuildDate>Thu, 21 May 2009 18:54:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Economies of scale &#187; Untangled</title>
		<link>http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons#comment-679</link>
		<dc:creator>Economies of scale &#187; Untangled</dc:creator>
		<pubDate>Tue, 23 Sep 2008 03:36:17 +0000</pubDate>
		<guid isPermaLink="false">http://roy.gbiv.com/untangled/?p=12#comment-679</guid>
		<description>[...] need to address that teaser I included in my last post on paper tigers and hidden dragons: People need to understand that general-purpose PubSub is not a solution to scalability problems [...]</description>
		<content:encoded><![CDATA[<p>[...] need to address that teaser I included in my last post on paper tigers and hidden dragons: People need to understand that general-purpose PubSub is not a solution to scalability problems [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy T. Fielding</title>
		<link>http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons#comment-676</link>
		<dc:creator>Roy T. Fielding</dc:creator>
		<pubDate>Fri, 12 Sep 2008 19:39:08 +0000</pubDate>
		<guid isPermaLink="false">http://roy.gbiv.com/untangled/?p=12#comment-676</guid>
		<description>See Joe Gregorio&#039;s suggestion for &lt;a href=&quot;http://bitworking.org/news/365/beyond-rest-and-resource-design&quot; rel=&quot;nofollow&quot;&gt;using Bloom Filters instead of a sparse bit array&lt;/a&gt;. The trade-off of false positives for size is intriguing. It would allow us to describe the mapping directly, in the form of a set of independent hashing functions on the URI path, which would make it much easier to standardize the technique for any website.

Joe has fleshed-out his description in &lt;a href=&quot;http://bitworking.org/news/380/bloom-filter-resources&quot; rel=&quot;nofollow&quot;&gt;Bloom Filter Resources&lt;/a&gt;.  Great stuff.  Note that this can be generalized for any kind of &quot;cool URI&quot; (finite identifier set) update checks by using the URI path as key.</description>
		<content:encoded><![CDATA[<p>See Joe Gregorio&#8217;s suggestion for <a href="http://bitworking.org/news/365/beyond-rest-and-resource-design" rel="nofollow">using Bloom Filters instead of a sparse bit array</a>. The trade-off of false positives for size is intriguing. It would allow us to describe the mapping directly, in the form of a set of independent hashing functions on the URI path, which would make it much easier to standardize the technique for any website.</p>
<p>Joe has fleshed-out his description in <a href="http://bitworking.org/news/380/bloom-filter-resources" rel="nofollow">Bloom Filter Resources</a>.  Great stuff.  Note that this can be generalized for any kind of &#8220;cool URI&#8221; (finite identifier set) update checks by using the URI path as key.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: paul</title>
		<link>http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons#comment-675</link>
		<dc:creator>paul</dc:creator>
		<pubDate>Fri, 12 Sep 2008 01:17:16 +0000</pubDate>
		<guid isPermaLink="false">http://roy.gbiv.com/untangled/?p=12#comment-675</guid>
		<description>We chose opaque ids instead of URI hashes in order to avoid canonicalization issues (www vs not, .com vs .co.uk, etc) and to allow multiple URIs to share the same ID (RSS and Atom feeds of the same content, for example). It&#039;s also helpful for sites that don&#039;t want to expose their user namespace, since in practice fast hashes such as md5 are reversible through brute force.

That said, sites are free assign SUP ids by any method of their choosing, including URI hashes, so in practice this extra flexibility only makes things easier for SUP producers.

The SUP tag/header also provides for discovery of which URIs provide updates, and where those updates are published. This allows sites to publish multiple SUP feeds or even contribute to a shared feed published elsewhere.</description>
		<content:encoded><![CDATA[<p>We chose opaque ids instead of URI hashes in order to avoid canonicalization issues (www vs not, .com vs .co.uk, etc) and to allow multiple URIs to share the same ID (RSS and Atom feeds of the same content, for example). It&#8217;s also helpful for sites that don&#8217;t want to expose their user namespace, since in practice fast hashes such as md5 are reversible through brute force.</p>
<p>That said, sites are free assign SUP ids by any method of their choosing, including URI hashes, so in practice this extra flexibility only makes things easier for SUP producers.</p>
<p>The SUP tag/header also provides for discovery of which URIs provide updates, and where those updates are published. This allows sites to publish multiple SUP feeds or even contribute to a shared feed published elsewhere.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy T. Fielding</title>
		<link>http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons#comment-674</link>
		<dc:creator>Roy T. Fielding</dc:creator>
		<pubDate>Thu, 11 Sep 2008 23:36:51 +0000</pubDate>
		<guid isPermaLink="false">http://roy.gbiv.com/untangled/?p=12#comment-674</guid>
		<description>paul: The bitmap could also represent arbitrary URIs without the need for generated feed identifiers, since each URI is globally unique and can be used as the range in the identifier to pixel mapping.  Likewise, SUP could be simplified by using a consistent hash of the feed URI instead of having the user generate a pseudo-unique id.

In any case, these solutions are very similar. The real differences are in the mapping function&#039;s persistence, discovery of what URIs are monitored for updates, the representation format for update notifications, and the use of a single feed URI versus a template of separate resources. Each choice has trade-offs.</description>
		<content:encoded><![CDATA[<p>paul: The bitmap could also represent arbitrary URIs without the need for generated feed identifiers, since each URI is globally unique and can be used as the range in the identifier to pixel mapping.  Likewise, SUP could be simplified by using a consistent hash of the feed URI instead of having the user generate a pseudo-unique id.</p>
<p>In any case, these solutions are very similar. The real differences are in the mapping function&#8217;s persistence, discovery of what URIs are monitored for updates, the representation format for update notifications, and the use of a single feed URI versus a template of separate resources. Each choice has trade-offs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: paul</title>
		<link>http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons#comment-673</link>
		<dc:creator>paul</dc:creator>
		<pubDate>Thu, 11 Sep 2008 22:01:39 +0000</pubDate>
		<guid isPermaLink="false">http://roy.gbiv.com/untangled/?p=12#comment-673</guid>
		<description>One advantage of SUP vs the bitmap idea is that it works for any HTTP resource -- there doesn&#039;t need to be any understanding of userids or the like. Also, SUP is already quite compact (about 8 bytes per update when compressed), but it would be fairly straightforward to create a bloom filter variant of SUP using the SUP-IDs as keys in the boom filter, though in practice I doubt the extra compression is necessary.

If you&#039;re interested in discussing any of these ideas further, please email me paul @ friendfeed.</description>
		<content:encoded><![CDATA[<p>One advantage of SUP vs the bitmap idea is that it works for any HTTP resource &#8212; there doesn&#8217;t need to be any understanding of userids or the like. Also, SUP is already quite compact (about 8 bytes per update when compressed), but it would be fairly straightforward to create a bloom filter variant of SUP using the SUP-IDs as keys in the boom filter, though in practice I doubt the extra compression is necessary.</p>
<p>If you&#8217;re interested in discussing any of these ideas further, please email me paul @ friendfeed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy T. Fielding</title>
		<link>http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons#comment-670</link>
		<dc:creator>Roy T. Fielding</dc:creator>
		<pubDate>Tue, 09 Sep 2008 00:00:11 +0000</pubDate>
		<guid isPermaLink="false">http://roy.gbiv.com/untangled/?p=12#comment-670</guid>
		<description>David: I remember hearing about the &lt;a href=&quot;http://updates.sixapart.com/&quot; rel=&quot;nofollow&quot;&gt;Six Apart Update Stream&lt;/a&gt; years ago, but hadn&#039;t looked at it until now. That must be a goldmine for academic research. It seems like a good solution to the update polling problem, but only if we assume that listeners need/want to consume the full text of entries. It looks like Brad specifically had aggregators like FriendFeed in mind, but I can&#039;t see how the full stream can remain scalable in the long run unless you can find a way to monetize the stream or restrict the feed to invited listeners. 

Personally, I would suggest changing it to two streams -- one with the full feed and another with just a URI and single-line title ending with a linefeed character. The latter is all that an event broker needs and is much easier to parse than Atom XML. Alternatively, an XMPP stream would be appropriate for small summaries published to many consumers, especially if you could convince someone else to broker the subscriptions (e.g., it would be a good demonstration stream for Jabber).</description>
		<content:encoded><![CDATA[<p>David: I remember hearing about the <a href="http://updates.sixapart.com/" rel="nofollow">Six Apart Update Stream</a> years ago, but hadn&#8217;t looked at it until now. That must be a goldmine for academic research. It seems like a good solution to the update polling problem, but only if we assume that listeners need/want to consume the full text of entries. It looks like Brad specifically had aggregators like FriendFeed in mind, but I can&#8217;t see how the full stream can remain scalable in the long run unless you can find a way to monetize the stream or restrict the feed to invited listeners. </p>
<p>Personally, I would suggest changing it to two streams &#8212; one with the full feed and another with just a URI and single-line title ending with a linefeed character. The latter is all that an event broker needs and is much easier to parse than Atom XML. Alternatively, an XMPP stream would be appropriate for small summaries published to many consumers, especially if you could convince someone else to broker the subscriptions (e.g., it would be a good demonstration stream for Jabber).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Recordon</title>
		<link>http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons#comment-669</link>
		<dc:creator>David Recordon</dc:creator>
		<pubDate>Mon, 08 Sep 2008 12:36:23 +0000</pubDate>
		<guid isPermaLink="false">http://roy.gbiv.com/untangled/?p=12#comment-669</guid>
		<description>Have you seen the Six Apart Update Stream (http://updates.sixapart.com/)?  It&#039;s existed for a few years and is a never ending stream of Atom with all of the new content across TypePad, Vox, and LiveJournal.  One of the things we like about it is the big search engines can consume it all and get full content while smaller services can just parse out the URL of the blog that updated and then decide if they care about the content.

Not saying it is the right solution, it certainly needs modernizing, but it works quite well for what we&#039;re needing to do.</description>
		<content:encoded><![CDATA[<p>Have you seen the Six Apart Update Stream (<a href="http://updates.sixapart.com/)?" rel="nofollow">http://updates.sixapart.com/)?</a>  It&#8217;s existed for a few years and is a never ending stream of Atom with all of the new content across TypePad, Vox, and LiveJournal.  One of the things we like about it is the big search engines can consume it all and get full content while smaller services can just parse out the URL of the blog that updated and then decide if they care about the content.</p>
<p>Not saying it is the right solution, it certainly needs modernizing, but it works quite well for what we&#8217;re needing to do.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tecosystems &#187; links for 2008-09-05</title>
		<link>http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons#comment-668</link>
		<dc:creator>tecosystems &#187; links for 2008-09-05</dc:creator>
		<pubDate>Sat, 06 Sep 2008 01:33:37 +0000</pubDate>
		<guid isPermaLink="false">http://roy.gbiv.com/untangled/?p=12#comment-668</guid>
		<description>[...] Paper tigers and hidden dragons » Untangled &quot;The point is that you don’t need to change technologies (or even interaction styles) to solve a problem of information transfer efficiency. Sometimes you just need to rethink the problem. There are many systems for which a different architecture is far more efficient, just as XMPP is far more efficient than HTTP for something like group chat. Large-scale collaborative monitoring is not one of them. An XMPP solution is far more applicable to peer-to-peer monitoring, where there is no central service that is interested in the entire state of a big site like Flickr, but even then we have to keep in mind that the economics of the crowd will dictate scalability, not the protocol used for information transfer.&quot; (tags: royfielding xmpp http web software scalability pubsub scaling notification messaging performance) [...]</description>
		<content:encoded><![CDATA[<p>[...] Paper tigers and hidden dragons » Untangled &quot;The point is that you don’t need to change technologies (or even interaction styles) to solve a problem of information transfer efficiency. Sometimes you just need to rethink the problem. There are many systems for which a different architecture is far more efficient, just as XMPP is far more efficient than HTTP for something like group chat. Large-scale collaborative monitoring is not one of them. An XMPP solution is far more applicable to peer-to-peer monitoring, where there is no central service that is interested in the entire state of a big site like Flickr, but even then we have to keep in mind that the economics of the crowd will dictate scalability, not the protocol used for information transfer.&quot; (tags: royfielding xmpp http web software scalability pubsub scaling notification messaging performance) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Roy T. Fielding</title>
		<link>http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons#comment-667</link>
		<dc:creator>Roy T. Fielding</dc:creator>
		<pubDate>Fri, 05 Sep 2008 18:04:00 +0000</pubDate>
		<guid isPermaLink="false">http://roy.gbiv.com/untangled/?p=12#comment-667</guid>
		<description>hildjj: I am sure you know why SMTP usually has higher latencies than XMPP (reliable forwarding of large messages without persistent connections tends to add latency) and how to do security via encrypted payloads instead of connections. I have no doubt that XMPP is far superior to SMTP for just about every sort of messaging other than big email. However, none of that is relevant to the example used in the talk.

HTTP, XMPP, and SMTP are just tools -- we should use whichever one best fits the deployment environment and interaction style. We should choose them based on rational design comparisons and actual data transmission needs, not paper tigers.</description>
		<content:encoded><![CDATA[<p>hildjj: I am sure you know why SMTP usually has higher latencies than XMPP (reliable forwarding of large messages without persistent connections tends to add latency) and how to do security via encrypted payloads instead of connections. I have no doubt that XMPP is far superior to SMTP for just about every sort of messaging other than big email. However, none of that is relevant to the example used in the talk.</p>
<p>HTTP, XMPP, and SMTP are just tools &#8212; we should use whichever one best fits the deployment environment and interaction style. We should choose them based on rational design comparisons and actual data transmission needs, not paper tigers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hildjj</title>
		<link>http://roy.gbiv.com/untangled/2008/paper-tigers-and-hidden-dragons#comment-666</link>
		<dc:creator>hildjj</dc:creator>
		<pubDate>Fri, 05 Sep 2008 14:27:25 +0000</pubDate>
		<guid isPermaLink="false">http://roy.gbiv.com/untangled/?p=12#comment-666</guid>
		<description>SMTP usually has much higher latencies than XMPP.  Security in SMTP is... archaic. There is no presence in SMTP.  There are drastically different protocols for MUAs and MTAs.  Etc.

I agree that the problems that they solve can be thought of as roughly similar, but the differences in implication for event notification systems are more than slight.</description>
		<content:encoded><![CDATA[<p>SMTP usually has much higher latencies than XMPP.  Security in SMTP is&#8230; archaic. There is no presence in SMTP.  There are drastically different protocols for MUAs and MTAs.  Etc.</p>
<p>I agree that the problems that they solve can be thought of as roughly similar, but the differences in implication for event notification systems are more than slight.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.628 seconds -->
