<?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: TWiCF 04 &#8211; A RESTful Chat</title>
	<atom:link href="http://www.twicf.com/2009/10/twicf-04-a-restful-chat/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.twicf.com/2009/10/twicf-04-a-restful-chat/</link>
	<description>This Week in ColdFusion</description>
	<lastBuildDate>Wed, 21 Apr 2010 18:35:48 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Micky Dionisio</title>
		<link>http://www.twicf.com/2009/10/twicf-04-a-restful-chat/comment-page-1/#comment-104</link>
		<dc:creator>Micky Dionisio</dc:creator>
		<pubDate>Fri, 20 Nov 2009 20:20:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.twicf.com/?p=44#comment-104</guid>
		<description>We definitely won&#039;t! Recording scheduled for Sunday after 5pm :)</description>
		<content:encoded><![CDATA[<p>We definitely won&#8217;t! Recording scheduled for Sunday after 5pm <img src='http://www.twicf.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johnny Thompson</title>
		<link>http://www.twicf.com/2009/10/twicf-04-a-restful-chat/comment-page-1/#comment-103</link>
		<dc:creator>Johnny Thompson</dc:creator>
		<pubDate>Fri, 20 Nov 2009 19:11:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.twicf.com/?p=44#comment-103</guid>
		<description>i second Glyn&#039;s question about the &#039;next show&#039;...please don&#039;t go the way of the Dodo, or passenger pigeon, or cfweekly.</description>
		<content:encoded><![CDATA[<p>i second Glyn&#8217;s question about the &#8216;next show&#8217;&#8230;please don&#8217;t go the way of the Dodo, or passenger pigeon, or cfweekly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Carr</title>
		<link>http://www.twicf.com/2009/10/twicf-04-a-restful-chat/comment-page-1/#comment-100</link>
		<dc:creator>Brian Carr</dc:creator>
		<pubDate>Tue, 10 Nov 2009 15:47:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.twicf.com/?p=44#comment-100</guid>
		<description>Glyn, you&#039;re too kind.  Finding a time to record that fits everyones schedule has been quite a challenge this time around.  We&#039;re hoping to have the next episode completed before the week is out.</description>
		<content:encoded><![CDATA[<p>Glyn, you&#8217;re too kind.  Finding a time to record that fits everyones schedule has been quite a challenge this time around.  We&#8217;re hoping to have the next episode completed before the week is out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glyn Jackson</title>
		<link>http://www.twicf.com/2009/10/twicf-04-a-restful-chat/comment-page-1/#comment-99</link>
		<dc:creator>Glyn Jackson</dc:creator>
		<pubDate>Mon, 09 Nov 2009 20:14:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.twicf.com/?p=44#comment-99</guid>
		<description>Hi, I cannot wait until the next show....no really, I cannot wait! 
when is the next episode due?</description>
		<content:encoded><![CDATA[<p>Hi, I cannot wait until the next show&#8230;.no really, I cannot wait!<br />
when is the next episode due?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Micky Dionisio</title>
		<link>http://www.twicf.com/2009/10/twicf-04-a-restful-chat/comment-page-1/#comment-95</link>
		<dc:creator>Micky Dionisio</dc:creator>
		<pubDate>Fri, 30 Oct 2009 05:19:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.twicf.com/?p=44#comment-95</guid>
		<description>to all our listeners, when brian gives out his email address be sure to bust his chops about not being on twitter and/or facebook. mike and I can&#039;t be the only ones doing it.

(sorry b - i had to)</description>
		<content:encoded><![CDATA[<p>to all our listeners, when brian gives out his email address be sure to bust his chops about not being on twitter and/or facebook. mike and I can&#8217;t be the only ones doing it.</p>
<p>(sorry b &#8211; i had to)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Carr</title>
		<link>http://www.twicf.com/2009/10/twicf-04-a-restful-chat/comment-page-1/#comment-94</link>
		<dc:creator>Brian Carr</dc:creator>
		<pubDate>Thu, 29 Oct 2009 16:31:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.twicf.com/?p=44#comment-94</guid>
		<description>It&#039;s an excellent question Marc.  Bear with me, this could be a large post!

Before I start though, I should say that comparing CF to Grails really isn&#039;t an apples-to-apples comparison as CF in this context is a programming language, and grails is an actual web framework built on top of the Groovy programming language.

You&#039;re correct - my use of terms seems a bit contradictory, I suppose that I should have said that Grails / Rails provides facilities that make ReSTful web service deployment a little less wordy and a bit more intuitive without the use of any additional plugins or third party software.

This is most clearly illustrated in terms of ReSTful URL&#039;s (which expresses an endpoint for a resource) and Representations - two very important concepts in the world of ReST.  Grails provides a very straight forward approach to creating meaningful URL&#039;s by generating a URLMappings.groovy file as a part of the application that allows developers to create custom URL&#039;s that map to specific controllers and methods.  Here&#039;s an sample of what a static mapping in this file might look like;

&quot;/product/$id&quot; {
       controller = &quot;product&quot;
       action = &quot;show&quot;
}

A perfectly ReSTful URL (that&#039;s straight from the documentation).  The dollar-sign indicates a uri-variable who&#039;s value is captured and provided to the target controller method.  Of course, you can define any number of uri variables in a URL mapping.  Grails also allows customization of these variables to be very granular - optionally providing regular expressions for each individual variable.  As you can see, using only the native CF API (tags or script, doesn&#039;t matter) and without using any third-party software, you would have to write a good amount of your own code to allow the configuration of, and parsing for such URL&#039;s.

The same is true for Representations.  Grails provides a very convenient set of converters that allow you to convert domain model information to meaningful representations in either JSON or XML - the syntax would look something like this (again, I pilfered this from the docs);

import grails.converters.*
.....
render Book.list(params) as JSON
render Book.get(params.id) as XML

With the serializeJSON() native CF API method, JSON representations are made much easier - but XML is a different story alltogether.  Plus the Grails supported syntax again is very straight forward.

So as you can see, CF natively supports ReST in that you can get a handle on path-info for URL&#039;s (as a part of the cgi scope), you can parse out provided request header information (for content-type negotiation and http authentication), you can return any information you like in the response header (via cfheader), you can create json and xml objects to return as representations - simply tying it all together is going to require more typing on the part of the developer when working with CF than with Grails with the caveat of not using third-party software.

I&#039;m not the most skilled blog poster so I hope that this makes sense.  I&#039;m thinking I&#039;ll provide my email address in the next podcast so if you have any other questions you can of course post them here or feel free to email me directly.</description>
		<content:encoded><![CDATA[<p>It&#8217;s an excellent question Marc.  Bear with me, this could be a large post!</p>
<p>Before I start though, I should say that comparing CF to Grails really isn&#8217;t an apples-to-apples comparison as CF in this context is a programming language, and grails is an actual web framework built on top of the Groovy programming language.</p>
<p>You&#8217;re correct &#8211; my use of terms seems a bit contradictory, I suppose that I should have said that Grails / Rails provides facilities that make ReSTful web service deployment a little less wordy and a bit more intuitive without the use of any additional plugins or third party software.</p>
<p>This is most clearly illustrated in terms of ReSTful URL&#8217;s (which expresses an endpoint for a resource) and Representations &#8211; two very important concepts in the world of ReST.  Grails provides a very straight forward approach to creating meaningful URL&#8217;s by generating a URLMappings.groovy file as a part of the application that allows developers to create custom URL&#8217;s that map to specific controllers and methods.  Here&#8217;s an sample of what a static mapping in this file might look like;</p>
<p>&#8220;/product/$id&#8221; {<br />
       controller = &#8220;product&#8221;<br />
       action = &#8220;show&#8221;<br />
}</p>
<p>A perfectly ReSTful URL (that&#8217;s straight from the documentation).  The dollar-sign indicates a uri-variable who&#8217;s value is captured and provided to the target controller method.  Of course, you can define any number of uri variables in a URL mapping.  Grails also allows customization of these variables to be very granular &#8211; optionally providing regular expressions for each individual variable.  As you can see, using only the native CF API (tags or script, doesn&#8217;t matter) and without using any third-party software, you would have to write a good amount of your own code to allow the configuration of, and parsing for such URL&#8217;s.</p>
<p>The same is true for Representations.  Grails provides a very convenient set of converters that allow you to convert domain model information to meaningful representations in either JSON or XML &#8211; the syntax would look something like this (again, I pilfered this from the docs);</p>
<p>import grails.converters.*<br />
&#8230;..<br />
render Book.list(params) as JSON<br />
render Book.get(params.id) as XML</p>
<p>With the serializeJSON() native CF API method, JSON representations are made much easier &#8211; but XML is a different story alltogether.  Plus the Grails supported syntax again is very straight forward.</p>
<p>So as you can see, CF natively supports ReST in that you can get a handle on path-info for URL&#8217;s (as a part of the cgi scope), you can parse out provided request header information (for content-type negotiation and http authentication), you can return any information you like in the response header (via cfheader), you can create json and xml objects to return as representations &#8211; simply tying it all together is going to require more typing on the part of the developer when working with CF than with Grails with the caveat of not using third-party software.</p>
<p>I&#8217;m not the most skilled blog poster so I hope that this makes sense.  I&#8217;m thinking I&#8217;ll provide my email address in the next podcast so if you have any other questions you can of course post them here or feel free to email me directly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: marc esher</title>
		<link>http://www.twicf.com/2009/10/twicf-04-a-restful-chat/comment-page-1/#comment-92</link>
		<dc:creator>marc esher</dc:creator>
		<pubDate>Thu, 29 Oct 2009 14:43:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.twicf.com/?p=44#comment-92</guid>
		<description>Gents,
  I wanted to ask Brian a question about something he said during the ReST discussion. Brian, you said that CF &quot;natively&quot; supports ReST in that all rest is is HTTP. But then you went on to say that grails and rails had &quot;excellent ReST&quot; support. Can you elaborate on what that means? if it&#039;s &quot;just http&quot;, how is their ReST support superior, and does that change what you mean about CF&#039;s support for ReST?

thanks.</description>
		<content:encoded><![CDATA[<p>Gents,<br />
  I wanted to ask Brian a question about something he said during the ReST discussion. Brian, you said that CF &#8220;natively&#8221; supports ReST in that all rest is is HTTP. But then you went on to say that grails and rails had &#8220;excellent ReST&#8221; support. Can you elaborate on what that means? if it&#8217;s &#8220;just http&#8221;, how is their ReST support superior, and does that change what you mean about CF&#8217;s support for ReST?</p>
<p>thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: marc esher</title>
		<link>http://www.twicf.com/2009/10/twicf-04-a-restful-chat/comment-page-1/#comment-90</link>
		<dc:creator>marc esher</dc:creator>
		<pubDate>Wed, 28 Oct 2009 15:43:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.twicf.com/?p=44#comment-90</guid>
		<description>Hey guys,
  First time listener, first time caller.  I just finished episode #4 last night. I&#039;m diggin&#039; it! So much so, in fact, that I posted a review/response here: http://blog.mxunit.org/2009/10/this-week-in-coldfusion-episode-4.html

Keep up the great work, and I look forward to working my way back through the first 3 episodes and listening to the rest as they come out.</description>
		<content:encoded><![CDATA[<p>Hey guys,<br />
  First time listener, first time caller.  I just finished episode #4 last night. I&#8217;m diggin&#8217; it! So much so, in fact, that I posted a review/response here: <a href="http://blog.mxunit.org/2009/10/this-week-in-coldfusion-episode-4.html" rel="nofollow">http://blog.mxunit.org/2009/10/this-week-in-coldfusion-episode-4.html</a></p>
<p>Keep up the great work, and I look forward to working my way back through the first 3 episodes and listening to the rest as they come out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tony Garcia</title>
		<link>http://www.twicf.com/2009/10/twicf-04-a-restful-chat/comment-page-1/#comment-89</link>
		<dc:creator>Tony Garcia</dc:creator>
		<pubDate>Fri, 23 Oct 2009 00:42:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.twicf.com/?p=44#comment-89</guid>
		<description>@Micky,
To be honest, I&#039;ve only used the debugger a little (I should be using it more). I haven&#039;t worked with any other IDE&#039;s so I can&#039;t compare CF&#039;s debugger to others. But the features you&#039;re talking about sound really cool! Hopefully future versions of CFBuilder (and the Eclipse extensions) will include more rich debugging features, such as those you&#039;ve described -- specially if Adobe gets feedback and feature requests from the community. (hint...hint)</description>
		<content:encoded><![CDATA[<p>@Micky,<br />
To be honest, I&#8217;ve only used the debugger a little (I should be using it more). I haven&#8217;t worked with any other IDE&#8217;s so I can&#8217;t compare CF&#8217;s debugger to others. But the features you&#8217;re talking about sound really cool! Hopefully future versions of CFBuilder (and the Eclipse extensions) will include more rich debugging features, such as those you&#8217;ve described &#8212; specially if Adobe gets feedback and feature requests from the community. (hint&#8230;hint)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Micky Dionisio</title>
		<link>http://www.twicf.com/2009/10/twicf-04-a-restful-chat/comment-page-1/#comment-88</link>
		<dc:creator>Micky Dionisio</dc:creator>
		<pubDate>Thu, 22 Oct 2009 20:21:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.twicf.com/?p=44#comment-88</guid>
		<description>@Tony,

Thanks for those links. I&#039;ve  installed it and have been playing around with it this morning. Some initial thoughts.

Although it&#039;s nice that there is some form of line level debugging, it doesn&#039;t feel as rich as I&#039;d like it to be. for example, to view a variable you must scroll/search for it in the variables tab. This seems tedious especially when compared to other IDE&#039;s where you can mouseover a variable and boom, you&#039;ve got all the details pertaining to that variable before and even after you step over it - state + properties included. 

Would love to see breakpoint conditions where we can break only if a condition is met or a step further, hook in test assertions.

Also didn&#039;t see an option to watch debug - the ability to change variables/call methods on the fly during breakpoints.

Will try it out for a bit more. Let me know of any time-saving tips or tricks when using this.</description>
		<content:encoded><![CDATA[<p>@Tony,</p>
<p>Thanks for those links. I&#8217;ve  installed it and have been playing around with it this morning. Some initial thoughts.</p>
<p>Although it&#8217;s nice that there is some form of line level debugging, it doesn&#8217;t feel as rich as I&#8217;d like it to be. for example, to view a variable you must scroll/search for it in the variables tab. This seems tedious especially when compared to other IDE&#8217;s where you can mouseover a variable and boom, you&#8217;ve got all the details pertaining to that variable before and even after you step over it &#8211; state + properties included. </p>
<p>Would love to see breakpoint conditions where we can break only if a condition is met or a step further, hook in test assertions.</p>
<p>Also didn&#8217;t see an option to watch debug &#8211; the ability to change variables/call methods on the fly during breakpoints.</p>
<p>Will try it out for a bit more. Let me know of any time-saving tips or tricks when using this.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
