<?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>The If Works &#187; Evented</title>
	<atom:link href="http://blog.jcoglan.com/category/evented/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jcoglan.com</link>
	<description>This dirt was a building before</description>
	<lastBuildDate>Sat, 04 Sep 2010 01:30:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>The potentially asynchronous loop</title>
		<link>http://blog.jcoglan.com/2010/08/30/the-potentially-asynchronous-loop/</link>
		<comments>http://blog.jcoglan.com/2010/08/30/the-potentially-asynchronous-loop/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 08:27:50 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Functional]]></category>
		<category><![CDATA[JS.Class]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=800</guid>
		<description><![CDATA[If you write a lot of asynchronous or event-driven code, you&#8217;re probably going to end up needing an asynchronous for loop. That is, a loop that runs each iteration sequentially but those iterations may contain non-blocking logic that must halt the loop until the async action resumes. In my case, I need the main loop [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/08/30/the-potentially-asynchronous-loop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evented programming patterns: Testing event-driven apps</title>
		<link>http://blog.jcoglan.com/2010/08/10/evented-programming-patterns-testing-event-driven-apps/</link>
		<comments>http://blog.jcoglan.com/2010/08/10/evented-programming-patterns-testing-event-driven-apps/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 11:26:24 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Faye]]></category>
		<category><![CDATA[Functional]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=744</guid>
		<description><![CDATA[This post is part of a series on event-driven programming. The complete series is: Events: they&#8217;re not just for the DOM, you know Observable objects Deferrable values Asynchronous methods First-leg round-up and final remarks Object lifecycle Asynchronous pipelines Testing event-driven apps Thus far all the articles in this series have focused on methods for structuring [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/08/10/evented-programming-patterns-testing-event-driven-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evented programming patterns: Asynchronous pipelines</title>
		<link>http://blog.jcoglan.com/2010/08/09/evented-programming-patterns-asynchronous-pipelines/</link>
		<comments>http://blog.jcoglan.com/2010/08/09/evented-programming-patterns-asynchronous-pipelines/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 18:33:43 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Faye]]></category>
		<category><![CDATA[Functional]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Node]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=752</guid>
		<description><![CDATA[This post is part of a series on event-driven programming. The complete series is: Events: they&#8217;re not just for the DOM, you know Observable objects Deferrable values Asynchronous methods First-leg round-up and final remarks Object lifecycle Asynchronous pipelines Testing event-driven apps In a previous article for this series, I covered the topic of asynchronous methods: [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/08/09/evented-programming-patterns-asynchronous-pipelines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evented programming patterns: Object lifecycle</title>
		<link>http://blog.jcoglan.com/2010/08/06/evented-programming-patterns-object-lifecycle/</link>
		<comments>http://blog.jcoglan.com/2010/08/06/evented-programming-patterns-object-lifecycle/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 16:33:20 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Faye]]></category>
		<category><![CDATA[Functional]]></category>
		<category><![CDATA[JS.Class]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Talks]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=721</guid>
		<description><![CDATA[This post is part of a series on event-driven programming. The complete series is: Events: they&#8217;re not just for the DOM, you know Observable objects Deferrable values Asynchronous methods First-leg round-up and final remarks Object lifecycle Asynchronous pipelines Testing event-driven apps Earlier in this series I covered a very common pattern in event-driven programming: the [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/08/06/evented-programming-patterns-object-lifecycle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why Bayeux still matters</title>
		<link>http://blog.jcoglan.com/2010/08/02/why-bayeux-still-matters/</link>
		<comments>http://blog.jcoglan.com/2010/08/02/why-bayeux-still-matters/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 20:16:17 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Faye]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Rails]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=712</guid>
		<description><![CDATA[This article was prompted by a tweet from Micheil Smith: Why are people still using cometd when we&#8217;re seeing websockets come into most modern browsers? To recap, CometD is the reference client/server implementation of the Bayeux protocol, which defines a messaging protocol for web clients to publish and subscribe to message channels. This lets browsers [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/08/02/why-bayeux-still-matters/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Faye 0.5: WebSockets, protocol extensions API and CometD integration</title>
		<link>http://blog.jcoglan.com/2010/07/19/faye-0-5-websockets-protocol-extensions-api-and-cometd-integration/</link>
		<comments>http://blog.jcoglan.com/2010/07/19/faye-0-5-websockets-protocol-extensions-api-and-cometd-integration/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 07:46:12 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Faye]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=691</guid>
		<description><![CDATA[It&#8217;s been a few months since the last major Faye update, and in the interim the new release ended up getting so much feature creep that I&#8217;ve decided to skip a version number. That&#8217;s how much awesome is in the new release! 0.2 versions worth! It&#8217;s now available through npm, as well as Rubygems: # [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/07/19/faye-0-5-websockets-protocol-extensions-api-and-cometd-integration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Terminus: control your browser from the command line</title>
		<link>http://blog.jcoglan.com/2010/04/05/terminus-control-your-browser-from-the-command-line/</link>
		<comments>http://blog.jcoglan.com/2010/04/05/terminus-control-your-browser-from-the-command-line/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 18:33:23 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Faye]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Metaprogramming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Terminus]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=673</guid>
		<description><![CDATA[I&#8217;ve been saying for a while that I want to use Faye for automating JavaScript and integration testing, especially now that it has server-side clients. Well I took the first step in that direction this afternoon by hacking together Terminus, a distributed JavaScript console. You just install and run like so: $ sudo gem install [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/04/05/terminus-control-your-browser-from-the-command-line/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Faye gets server-side clients</title>
		<link>http://blog.jcoglan.com/2010/03/01/faye-gets-server-side-clients/</link>
		<comments>http://blog.jcoglan.com/2010/03/01/faye-gets-server-side-clients/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 23:20:47 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Faye]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=660</guid>
		<description><![CDATA[After its initial release a few weeks ago, the number one feature requested for Faye has been server-side clients. The first version let JavaScript running in the browser send messages, but now you can create a client on the server side to let your backend applications subscribe and publish messages. We&#8217;ve got clients for Node.js [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/03/01/faye-gets-server-side-clients/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evented programming patterns: Round-up</title>
		<link>http://blog.jcoglan.com/2010/02/26/evented-programming-patterns-round-up/</link>
		<comments>http://blog.jcoglan.com/2010/02/26/evented-programming-patterns-round-up/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 17:10:25 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Faye]]></category>
		<category><![CDATA[Functional]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=623</guid>
		<description><![CDATA[This post is part of a series on event-driven programming. The complete series is: Events: they&#8217;re not just for the DOM, you know Observable objects Deferrable values Asynchronous methods First-leg round-up and final remarks Object lifecycle Asynchronous pipelines Testing event-driven apps Over the last few articles, I&#8217;ve covered a few of the evented programming patterns [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/02/26/evented-programming-patterns-round-up/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Evented programming patterns: Asynchronous methods</title>
		<link>http://blog.jcoglan.com/2010/02/24/evented-programming-patterns-asynchronous-methods/</link>
		<comments>http://blog.jcoglan.com/2010/02/24/evented-programming-patterns-asynchronous-methods/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 21:03:15 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Functional]]></category>
		<category><![CDATA[JS.Class]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=602</guid>
		<description><![CDATA[This post is part of a series on event-driven programming. The complete series is: Events: they&#8217;re not just for the DOM, you know Observable objects Deferrable values Asynchronous methods First-leg round-up and final remarks Object lifecycle Asynchronous pipelines Testing event-driven apps Building on the pattern for deferred processing that we just saw, asynchronous methods are [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/02/24/evented-programming-patterns-asynchronous-methods/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Evented programming patterns: Deferrable values</title>
		<link>http://blog.jcoglan.com/2010/02/23/evented-programming-patterns-deferrable-values/</link>
		<comments>http://blog.jcoglan.com/2010/02/23/evented-programming-patterns-deferrable-values/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 12:48:51 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Faye]]></category>
		<category><![CDATA[Functional]]></category>
		<category><![CDATA[JS.Class]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Ojay]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=577</guid>
		<description><![CDATA[This post is part of a series on event-driven programming. The complete series is: Events: they&#8217;re not just for the DOM, you know Observable objects Deferrable values Asynchronous methods First-leg round-up and final remarks Object lifecycle Asynchronous pipelines Testing event-driven apps The Deferrable pattern is a specialisation of observable objects that mixes state into the [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/02/23/evented-programming-patterns-deferrable-values/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Evented programming patterns: Observable objects</title>
		<link>http://blog.jcoglan.com/2010/02/22/evented-programming-patterns-observable-object/</link>
		<comments>http://blog.jcoglan.com/2010/02/22/evented-programming-patterns-observable-object/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 14:37:41 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Functional]]></category>
		<category><![CDATA[JS.Class]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Ojay]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=559</guid>
		<description><![CDATA[This post is part of a series on event-driven programming. The complete series is: Events: they&#8217;re not just for the DOM, you know Observable objects Deferrable values Asynchronous methods First-leg round-up and final remarks Object lifecycle Asynchronous pipelines Testing event-driven apps As I mentioned in the previous article, events are not things that only live [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/02/22/evented-programming-patterns-observable-object/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Events: they&#8217;re not just for the DOM, you know</title>
		<link>http://blog.jcoglan.com/2010/02/21/events-theyre-not-just-for-the-dom-you-know/</link>
		<comments>http://blog.jcoglan.com/2010/02/21/events-theyre-not-just-for-the-dom-you-know/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 16:42:15 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Functional]]></category>
		<category><![CDATA[JS.Class]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Ojay]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=533</guid>
		<description><![CDATA[This post is part of a series on event-driven programming. The complete series is: Events: they&#8217;re not just for the DOM, you know Observable objects Deferrable values Asynchronous methods First-leg round-up and final remarks Object lifecycle Asynchronous pipelines Testing event-driven apps Over recent months we&#8217;ve seen the major JavaScript libraries talking up their event support. [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/02/21/events-theyre-not-just-for-the-dom-you-know/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Faye: a Comet client and server for Node.js and Rack</title>
		<link>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/</link>
		<comments>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 23:21:00 +0000</pubDate>
		<dc:creator>James Coglan</dc:creator>
				<category><![CDATA[Evented]]></category>
		<category><![CDATA[Faye]]></category>
		<category><![CDATA[Functional]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Node]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.jcoglan.com/?p=526</guid>
		<description><![CDATA[I&#8217;m doing my traditional birthday software announcement a little early this year, mostly because I really want to get this out and partly because I&#8217;m doing a lot of little bits of work on old projects at the moment and this is the only fancy new thing I&#8217;ve got to show. Spurred on by the [...]]]></description>
		<wfw:commentRss>http://blog.jcoglan.com/2010/02/02/faye-a-comet-client-and-server-for-node-js-and-rack/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
