<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- OPML generated by OPML Editor v10.1a16 on Wed, 13 Oct 2010 12:23:22 GMT -->
<opml version="2.0">
	<head>
		<title>Eric Kidd&amp;apos;s feedhose client in Javascript</title>
		<dateCreated>Wed, 13 Oct 2010 11:41:47 GMT</dateCreated>
		<dateModified>Wed, 13 Oct 2010 12:23:21 GMT</dateModified>
		<ownerName>Dave Winer</ownerName>
		<ownerEmail>dave.winer@gmail.com</ownerEmail>
		<expansionState>1</expansionState>
		<vertScrollState>1</vertScrollState>
		<windowTop>329</windowTop>
		<windowLeft>1120</windowLeft>
		<windowBottom>1369</windowBottom>
		<windowRight>2208</windowRight>
		</head>
	<body>
		<outline created="Wed, 13 Oct 2010 11:41:47 GMT" ctSaves="13" flPreview="false" server="xmlrpc://cms.scripting2.com:5337/RPC2" storySerialNum="603" text="Eric Kidd's feedhose client in Javascript" type="scripting2Post" url="http://scripting.com/stories/2010/10/13/ericKiddsFeedhoseClientInJ.html" username="davewiner" versionClient="0.39" versionServer="0.38" whenLastSave="Wed, 13 Oct 2010 12:23:22 GMT">
			<outline created="Wed, 13 Oct 2010 11:21:30 GMT" pgfnum="2699" text="I love doing projects with &lt;a href=&quot;http://www.randomhacks.net/articles/2010/10/13/feedhose-realtime-rss-using-nodejs-and-socketio&quot;&gt;Eric Kidd&lt;/a&gt;. We've never actually met face to face, but he helped enormously with XML-RPC and RSS when they were in their formative stages. Eric did the &lt;a href=&quot;http://xmlrpc-c.sourceforge.net/&quot;&gt;C implementation of XML-RPC&lt;/a&gt;. Really did it right and it stood the test of time."></outline>
			<outline created="Wed, 13 Oct 2010 11:22:20 GMT" pgfnum="2700" text="&lt;img src=&quot;http://scripting.com/images/2010/10/13/tennis.gif&quot; width=&quot;145&quot; height=&quot;132&quot; border=&quot;0&quot; align=&quot;right&quot; hspace=&quot;15&quot; vspace=&quot;5&quot; alt=&quot;A picture named tennis.gif&quot;&gt;Well, we're playing tennis again. I hit the ball over the net, he hits it back, etc etc. In this game you try to give the other guy a clear shot, and he hits a line drive back to you. Nice hard hit, no spin, nothing up the sleeve. "></outline>
			<outline created="Wed, 13 Oct 2010 11:23:14 GMT" pgfnum="2701" text="I've been working on a protocol called &lt;a href=&quot;http://scripting.com/stories/2010/09/30/feedhoseAFirehoseForFeeds.html&quot;&gt;FeedHose&lt;/a&gt;. As input it takes RSS and Atom feeds, and on the other end, it produces a stream of items. The key new thing here is that you connect to it via a long-poll request. The server returns as soon as a new item is available. None of the usual polling, and none of the latency that comes with it. Truly realtime! And it freaking works. (Many thanks to all the people who pioneered long-polling before I started doing it. I'm standing on the shoulders of giants.)"></outline>
			<outline created="Wed, 13 Oct 2010 11:53:07 GMT" pgfnum="2711" text="It caught Eric's eye, and imagination, when &lt;a href=&quot;http://scripting.com/stories/2010/10/09/nextStepsInTheFeedhoseProj.html&quot;&gt;JSON support&lt;/a&gt; went in. "></outline>
			<outline created="Wed, 13 Oct 2010 11:25:07 GMT" pgfnum="2702" text="So along comes Eric and he says: &quot;I can make that scale.&quot;"></outline>
			<outline created="Wed, 13 Oct 2010 11:25:23 GMT" pgfnum="2703" text="He builds a &lt;a href=&quot;http://nodejs.org/&quot;&gt;node.js&lt;/a&gt; app, works at making it scale. "></outline>
			<outline created="Wed, 13 Oct 2010 12:12:53 GMT" pgfnum="2712" text="He thinks his app, which fits on as a sort of &quot;nozzle&quot; to my hose, can spray items at tens if not hundreds of thousands of clients. That's really fcuking cool. :-)"></outline>
			<outline created="Wed, 13 Oct 2010 11:26:21 GMT" pgfnum="2704" text="&lt;a href=&quot;http://www.flickr.com/photos/scriptingnews/5078185520/&quot;&gt;&lt;img src=&quot;http://scripting.com/images/2010/10/13/diagramSmall.gif&quot; width=&quot;400&quot; height=&quot;368&quot; border=&quot;0&quot; alt=&quot;A picture named diagramSmall.gif&quot;&gt;&lt;/a&gt;"></outline>
			<outline created="Wed, 13 Oct 2010 11:26:28 GMT" pgfnum="2705" text="The picture above illustrates the architecture. But the proof is in the use:"></outline>
			<outline created="Wed, 13 Oct 2010 11:26:53 GMT" pgfnum="2706" text="&lt;a href=&quot;http://feedhose.randomhacks.net/&quot;&gt;http://feedhose.randomhacks.net/&lt;/a&gt; "></outline>
			<outline created="Wed, 13 Oct 2010 11:39:22 GMT" pgfnum="2707" text="This is a demo system, but it's useful because it gives you the news from the NY Times, as it becomes available."></outline>
			<outline created="Wed, 13 Oct 2010 11:39:59 GMT" pgfnum="2708" text="The goal is to get &lt;i&gt;many&lt;/i&gt; of these hoses running, for all kinds of publications, and for new kinds (microblogs). The key point is that the updates flow in real time, yet there is no single central server. Want to build a decentralized network that works like Twitter? You this to make it work."></outline>
			<outline created="Wed, 13 Oct 2010 11:40:51 GMT" pgfnum="2709" text="This is on the road to the decentralized news system of the future. "></outline>
			<outline created="Wed, 13 Oct 2010 11:41:05 GMT" pgfnum="2710" text="If you run a realtime news organization, let's look at making your feed technology reflect that timeliness. :-)"></outline>
			</outline>
		</body>
	</opml>
