<?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"
	>
<channel>
	<title>Comments for Marcus Cavanaugh</title>
	<atom:link href="http://marcuscavanaugh.com/comments/feed" rel="self" type="application/rss+xml" />
	<link>http://marcuscavanaugh.com</link>
	<description>Musically Programmed</description>
	<pubDate>Fri, 29 Aug 2008 04:25:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>Comment on Detect the Passive Voice with Javascript by Marcus Cavanaugh</title>
		<link>http://marcuscavanaugh.com/2008/05/detect-the-passive-voice-with-javascript#comment-86</link>
		<dc:creator>Marcus Cavanaugh</dc:creator>
		<pubDate>Sun, 25 May 2008 18:04:34 +0000</pubDate>
		<guid isPermaLink="false">http://marcuscavanaugh.com/blog/?p=27#comment-86</guid>
		<description>&lt;p&gt;True. I'll add that change. Thanks!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>True. I&#8217;ll add that change. Thanks!</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Detect the Passive Voice with Javascript by Konrad</title>
		<link>http://marcuscavanaugh.com/2008/05/detect-the-passive-voice-with-javascript#comment-85</link>
		<dc:creator>Konrad</dc:creator>
		<pubDate>Fri, 23 May 2008 03:31:15 +0000</pubDate>
		<guid isPermaLink="false">http://marcuscavanaugh.com/blog/?p=27#comment-85</guid>
		<description>&lt;p&gt;you can do this with only one RegExp&lt;/p&gt;

&lt;p&gt;"&#92;&#92;b(am&#124;is&#124;are&#124;was&#124;were ...&#124;being)&#92;&#92;b"&lt;/p&gt;

&lt;p&gt;then&lt;/p&gt;

&lt;p&gt;bdy = bdy.replace( ... )&lt;/p&gt;

&lt;p&gt;only needs to be executed once,I suspect it will make somewhat of a difference&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>you can do this with only one RegExp</p>

<p>&#8220;&#92;&#92;b(am|is|are|was|were &#8230;|being)&#92;&#92;b&#8221;</p>

<p>then</p>

<p>bdy = bdy.replace( &#8230; )</p>

<p>only needs to be executed once,I suspect it will make somewhat of a difference</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bayeux: Tightly Coupled by Frank Salim</title>
		<link>http://marcuscavanaugh.com/2008/03/bayeux-tightly-coupled#comment-58</link>
		<dc:creator>Frank Salim</dc:creator>
		<pubDate>Thu, 03 Apr 2008 02:44:54 +0000</pubDate>
		<guid isPermaLink="false">http://marcuscavanaugh.com/blog/2008/03/bayeux-tightly-coupled#comment-58</guid>
		<description>&lt;p&gt;Alex is certainly right that you can implement peer messaging on top of publish/subscribe, but that is backwards and cannot be distributed efficiently. I think it is pretty clear that choosing pub/sub as the lowest level exposed by Bayeux was a mistake. The question is, can that change be integrated into the spec, or is it too late?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Alex is certainly right that you can implement peer messaging on top of publish/subscribe, but that is backwards and cannot be distributed efficiently. I think it is pretty clear that choosing pub/sub as the lowest level exposed by Bayeux was a mistake. The question is, can that change be integrated into the spec, or is it too late?</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bayeux: Tightly Coupled by Comet Daily &#187; Blog Archive &#187; Colliding Comets: Battle of the Bayeux Part 7</title>
		<link>http://marcuscavanaugh.com/2008/03/bayeux-tightly-coupled#comment-48</link>
		<dc:creator>Comet Daily &#187; Blog Archive &#187; Colliding Comets: Battle of the Bayeux Part 7</dc:creator>
		<pubDate>Fri, 28 Mar 2008 02:19:11 +0000</pubDate>
		<guid isPermaLink="false">http://marcuscavanaugh.com/blog/2008/03/bayeux-tightly-coupled#comment-48</guid>
		<description>&lt;p&gt;[...] unrealistic to foist a messaging protocol API on everyone and say &#8220;live with it.&#8221; Not all developers want it. Those who want a messaging API (ala Bayeux) can use go use one, and it won&#8217;t hurt the rest [...]&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>[&#8230;] unrealistic to foist a messaging protocol API on everyone and say &#8220;live with it.&#8221; Not all developers want it. Those who want a messaging API (ala Bayeux) can use go use one, and it won&#8217;t hurt the rest [&#8230;]</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bayeux: Tightly Coupled by Marcus</title>
		<link>http://marcuscavanaugh.com/2008/03/bayeux-tightly-coupled#comment-46</link>
		<dc:creator>Marcus</dc:creator>
		<pubDate>Thu, 27 Mar 2008 18:08:48 +0000</pubDate>
		<guid isPermaLink="false">http://marcuscavanaugh.com/blog/2008/03/bayeux-tightly-coupled#comment-46</guid>
		<description>&lt;p&gt;Thanks for your response and suggestions. I'll be sure to continue searching for concrete ideas on how to improve Bayeux, and if I think of anything I'll be sure to let you know.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks for your response and suggestions. I&#8217;ll be sure to continue searching for concrete ideas on how to improve Bayeux, and if I think of anything I&#8217;ll be sure to let you know.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Bayeux: Tightly Coupled by Alex Russell</title>
		<link>http://marcuscavanaugh.com/2008/03/bayeux-tightly-coupled#comment-45</link>
		<dc:creator>Alex Russell</dc:creator>
		<pubDate>Thu, 27 Mar 2008 17:19:18 +0000</pubDate>
		<guid isPermaLink="false">http://marcuscavanaugh.com/blog/2008/03/bayeux-tightly-coupled#comment-45</guid>
		<description>&lt;p&gt;First, let me say that I agree with you about Bayeux being far from ideal. We're developing it in the open and if you've got concrete suggestions for how to make Bayeux better, they'll be more than welcome. Please join in and help!&lt;/p&gt;

&lt;p&gt;As for your substantive critique:&lt;/p&gt;

&lt;p&gt;Fundamentally we need addressability. A client needs to be able to address other clients, and the server needs to be able to address clients on both an individual and a group basis. Pub-sub gives us a powerful method for addressing groups, which individuals are special cases of. Were Bayeux to specify point-to-point messaging, the overhead of specifying group communications would be re-invented for every use-case where you need to address more than one endpoint. By making pubsub part of the spec, we handle the common case in a sensible manner which allows us to optimize for it.&lt;/p&gt;

&lt;p&gt;Point-to-point messaging is going to require that there be a mediation service which maps addressable point-names to application-level semantics. This is true no matter how it's done, and today the simplest way to do this is for clients to subscribe to a "client channel" which messages can be sent to. At one point, there was an implicit client channel created for every connected client in the /meta topic space, and I'm not opposed to adding it back to the spec if we can show that it provides serious value in a common use-case.&lt;/p&gt;

&lt;p&gt;As for card dealing, I'm really not sure why you feel that:&lt;/p&gt;

&lt;p&gt;a.) Bayeux needs to solve it for you
b.) that your app would be less tightly coupled on a point-to-point infrastructure&lt;/p&gt;

&lt;p&gt;Firstly, serving cards is a request/response thing to do. Telling groups of users in a game that they should go get cards is a broadcast thing to do. Just tell the clients in the /game/gameid topic to go fetch new cards and have them make an XHR request to the app server!&lt;/p&gt;

&lt;p&gt;Trying to encode all of your app logic into Bayeux or viewing it through that lense has never been our intent, and as per your example, using the wrong tool for the job &lt;em&gt;often&lt;/em&gt; gets you into a bad place.&lt;/p&gt;

&lt;p&gt;As for B, it's a 2-minute thought experiment to pretty definitively prove to yourself that your app is going to need to handle the concerns of..well, your app.&lt;/p&gt;

&lt;p&gt;Regards&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>First, let me say that I agree with you about Bayeux being far from ideal. We&#8217;re developing it in the open and if you&#8217;ve got concrete suggestions for how to make Bayeux better, they&#8217;ll be more than welcome. Please join in and help!</p>

<p>As for your substantive critique:</p>

<p>Fundamentally we need addressability. A client needs to be able to address other clients, and the server needs to be able to address clients on both an individual and a group basis. Pub-sub gives us a powerful method for addressing groups, which individuals are special cases of. Were Bayeux to specify point-to-point messaging, the overhead of specifying group communications would be re-invented for every use-case where you need to address more than one endpoint. By making pubsub part of the spec, we handle the common case in a sensible manner which allows us to optimize for it.</p>

<p>Point-to-point messaging is going to require that there be a mediation service which maps addressable point-names to application-level semantics. This is true no matter how it&#8217;s done, and today the simplest way to do this is for clients to subscribe to a &#8220;client channel&#8221; which messages can be sent to. At one point, there was an implicit client channel created for every connected client in the /meta topic space, and I&#8217;m not opposed to adding it back to the spec if we can show that it provides serious value in a common use-case.</p>

<p>As for card dealing, I&#8217;m really not sure why you feel that:</p>

<p>a.) Bayeux needs to solve it for you
b.) that your app would be less tightly coupled on a point-to-point infrastructure</p>

<p>Firstly, serving cards is a request/response thing to do. Telling groups of users in a game that they should go get cards is a broadcast thing to do. Just tell the clients in the /game/gameid topic to go fetch new cards and have them make an XHR request to the app server!</p>

<p>Trying to encode all of your app logic into Bayeux or viewing it through that lense has never been our intent, and as per your example, using the wrong tool for the job <em>often</em> gets you into a bad place.</p>

<p>As for B, it&#8217;s a 2-minute thought experiment to pretty definitively prove to yourself that your app is going to need to handle the concerns of..well, your app.</p>

<p>Regards</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Spyware? In 2008? by Michael Carter</title>
		<link>http://marcuscavanaugh.com/2008/03/spyware-in-2008#comment-39</link>
		<dc:creator>Michael Carter</dc:creator>
		<pubDate>Sun, 23 Mar 2008 08:10:42 +0000</pubDate>
		<guid isPermaLink="false">http://marcuscavanaugh.com/blog/2008/03/spyware-in-2008#comment-39</guid>
		<description>&lt;p&gt;I'm of a bit more fatalistic attitude. Spyware &lt;em&gt;will&lt;/em&gt; magically appear no matter what. I mean, you have to allow users to install software, but most users have no idea what the implications of a given program are. Granted, some viruses are due to genuine security holes, but my parents' computer goes slow and has spyware because they install programs like "Weatherbug". Should we not let my parents install Weatherbug? How do we stop them?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I&#8217;m of a bit more fatalistic attitude. Spyware <em>will</em> magically appear no matter what. I mean, you have to allow users to install software, but most users have no idea what the implications of a given program are. Granted, some viruses are due to genuine security holes, but my parents&#8217; computer goes slow and has spyware because they install programs like &#8220;Weatherbug&#8221;. Should we not let my parents install Weatherbug? How do we stop them?</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Conceptual Integrity: Pylons and Django by James Bennett</title>
		<link>http://marcuscavanaugh.com/2008/02/conceptual-integrity-pylons-django#comment-7</link>
		<dc:creator>James Bennett</dc:creator>
		<pubDate>Tue, 12 Feb 2008 19:47:17 +0000</pubDate>
		<guid isPermaLink="false">http://marcuscavanaugh.com/blog/2008/02/conceptual-integrity-pylons-django#comment-7</guid>
		<description>&lt;p&gt;The problem with switching out Django's defaults at this point is that it would mean a massive compatibility break for every Django application ever deployed, and that wouldn't be such a good idea; ask Mark how easy it is to shepherd a deployed base through that sort of change...&lt;/p&gt;

&lt;p&gt;Meanwhile, some of your points don't really apply: for example, in the case of database backends Django deliberately has a pluggable API, so that people who want a backend for a specific DB can develop and use one without assistance from Django itself. Same for the auth system (again, pluggable backends), the session framework (again, pluggable backends), and probably a couple other components will go that way soon as well.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>The problem with switching out Django&#8217;s defaults at this point is that it would mean a massive compatibility break for every Django application ever deployed, and that wouldn&#8217;t be such a good idea; ask Mark how easy it is to shepherd a deployed base through that sort of change&#8230;</p>

<p>Meanwhile, some of your points don&#8217;t really apply: for example, in the case of database backends Django deliberately has a pluggable API, so that people who want a backend for a specific DB can develop and use one without assistance from Django itself. Same for the auth system (again, pluggable backends), the session framework (again, pluggable backends), and probably a couple other components will go that way soon as well.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Conceptual Integrity: Pylons and Django by Mark Ramm</title>
		<link>http://marcuscavanaugh.com/2008/02/conceptual-integrity-pylons-django#comment-6</link>
		<dc:creator>Mark Ramm</dc:creator>
		<pubDate>Mon, 11 Feb 2008 21:55:06 +0000</pubDate>
		<guid isPermaLink="false">http://marcuscavanaugh.com/blog/2008/02/conceptual-integrity-pylons-django#comment-6</guid>
		<description>&lt;p&gt;Thanks for the very interesting response.  I have been thinking a lot about the "app/components" issue, as it relates to TurboGears 2.   One of the main reasons for building TurboGears 2 is to provide a solid set of known framework components (template system, ORM, user model, etc) that site components (a user registration system, a tagging system, a comments system, etc) could count on.&lt;/p&gt;

&lt;p&gt;The next big issue is building those "site components" in the right way to allow user flexibility, without creating too much overhead in getting started, and without making users copy code into their projects with no easy-upgrade path once they've modified it.&lt;/p&gt;

&lt;p&gt;We've been kicking around various approaches to that problem, but it is one of the core things we want to get done, because we do believe in code re-use at every level.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks for the very interesting response.  I have been thinking a lot about the &#8220;app/components&#8221; issue, as it relates to TurboGears 2.   One of the main reasons for building TurboGears 2 is to provide a solid set of known framework components (template system, ORM, user model, etc) that site components (a user registration system, a tagging system, a comments system, etc) could count on.</p>

<p>The next big issue is building those &#8220;site components&#8221; in the right way to allow user flexibility, without creating too much overhead in getting started, and without making users copy code into their projects with no easy-upgrade path once they&#8217;ve modified it.</p>

<p>We&#8217;ve been kicking around various approaches to that problem, but it is one of the core things we want to get done, because we do believe in code re-use at every level.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Blogs that Stand the Test of Time by Dawn</title>
		<link>http://marcuscavanaugh.com/2008/02/blogs-that-stand-the-test-of-time#comment-4</link>
		<dc:creator>Dawn</dc:creator>
		<pubDate>Wed, 06 Feb 2008 01:14:23 +0000</pubDate>
		<guid isPermaLink="false">http://marcuscavanaugh.com/blog/2008/02/05/blogs-that-stand-the-test-of-time#comment-4</guid>
		<description>&lt;p&gt;Wow! You are so organized that even your random thoughts (traditional blogging) are getting a "filing system"! Makes sense to me! I look forward to more insightful entries.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Wow! You are so organized that even your random thoughts (traditional blogging) are getting a &#8220;filing system&#8221;! Makes sense to me! I look forward to more insightful entries.</p>]]></content:encoded>
	</item>
</channel>
</rss>
