<?xml version="1.0" encoding="utf-8"?>
			
			<rss version="2.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">

			<channel>
			<title>Cutter&apos;s Crossing - Development</title>
			<link>http://blog.cutterscrossing.com/index.cfm</link>
			<description>ColdFusion Development, Life, and Other Stuff</description>
			<language>en-us</language>
			<pubDate>Tue, 07 Sep 2010 18:01:51 -0400</pubDate>
			<lastBuildDate>Thu, 17 Jun 2010 17:31:00 -0400</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>web.admin@cutterscrossing.com</managingEditor>
			<webMaster>web.admin@cutterscrossing.com</webMaster>
			<itunes:subtitle></itunes:subtitle>
			<itunes:summary></itunes:summary>
			<itunes:category text="Technology" />
			<itunes:category text="Technology">
				<itunes:category text="Podcasting" />
			</itunes:category>
			<itunes:category text="Technology">
				<itunes:category text="Tech News" />
			</itunes:category>
			<itunes:keywords></itunes:keywords>
			<itunes:author></itunes:author>
			<itunes:owner>
				<itunes:email>web.admin@cutterscrossing.com</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			<itunes:image href="" />
			<image>
				<url></url>
				<title>Cutter&apos;s Crossing</title>
				<link>http://blog.cutterscrossing.com/index.cfm</link>
			</image>
			<itunes:explicit>no</itunes:explicit>
			
			<item>
				<title>Introducing Sencha</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2010/6/17/Introducing-Sencha</link>
				<description>
				
				&lt;img src=&quot;http://blog.cutterscrossing.com/images/sencha-logo.png&quot; style=&quot;position:relative;float:left;margin:0 10px 10px 0;&quot; height=&quot;150&quot; /&gt;Great things are coming. Great things are here!

On June 14&lt;sup&gt;th&lt;/sup&gt;, Ext JS LLC &lt;a href=&quot;http://www.sencha.com/blog/2010/06/14/ext-js-jqtouch-raphael-sencha/&quot; target=&quot;_blank&quot;&gt;rebranded&lt;/a&gt; as part of their announced partnership with the principles of the &lt;a href=&quot;http://www.jqtouch.com/&quot; target=&quot;_blank&quot;&gt;JQTouch&lt;/a&gt; and &lt;a href=&quot;http://raphaeljs.com/&quot; target=&quot;_blank&quot;&gt;Raphael&lt;/a&gt; projects, creating &lt;a href=&quot;http://www.sencha.com&quot; target=&quot;_blank&quot;&gt;Sencha&lt;/a&gt;. The &lt;a href=&quot;http://www.sencha.com/products/js/&quot; target=&quot;_blank&quot;&gt;Ext JS&lt;/a&gt; library is still one of their major offerings, but they have also created Sencha Labs as a repository of various Open Source Projects under the MIT License (Like JQTouch, Raphael, and &lt;a href=&quot;http://www.sencha.com/products/core/&quot; target=&quot;_blank&quot;&gt;Ext Core&lt;/a&gt;). Great things were on the way!

Having David Kaneda (JQTouch) and Dmitry Baranovskiy (Raphael) join forces with the Ext JS crew is huge, and really plays well in understanding a series of recent &lt;a href=&quot;http://www.sencha.com/blog/&quot; target=&quot;_blank&quot;&gt;blog posts&lt;/a&gt; around &lt;a href=&quot;http://www.sencha.com/blog/2010/05/23/html5-now-with-20-percent-more-internet/&quot; target=&quot;_blank&quot;&gt;HTML5&lt;/a&gt;, &lt;a href=&quot;http://www.sencha.com/blog/2010/06/01/the-html5-family-css3/&quot; target=&quot;_blank&quot;&gt;CSS3&lt;/a&gt;, and what &lt;a href=&quot;http://www.sencha.com/blog/2010/06/11/html5-is-here-now-its-just-not-for-your-desktop-yet/&quot; target=&quot;_blank&quot;&gt;HTML5 means to developers today&lt;/a&gt;. But, it gets better.

This morning, Sencha launched their first joint product in public beta, &lt;a href=&quot;http://www.sencha.com/products/touch/&quot; target=&quot;_blank&quot;&gt;Sencha Touch&lt;/a&gt;. Sencha Touch is a cross-platform mobile application framework built to leverage HTML5, CSS3, and JavaScript. It gives you the same sort of consistent API that you&apos;ve come to expect from the Ext JS team, with a familiar syntax, great documentation, user forums for support, and many samples included with the download to help you learn. I&apos;ve had the opportunity to preview this code for a while, and it is outstanding work. There will be some interesting apps to come out of this.

The future looks bright for Sencha, and I can&apos;t wait to see what they do next. Judging from their post on the rebranding, my prediction are changes to ExtDesigner (possibly to become SenchaDesigner), that would allow a developer to build both Ext JS and Sencha Touch interfaces from the same tool. My guess. (Man, that would be really cool.) 
				</description>
				
				<category>ExtJS</category>				
				
				<category>Development</category>				
				
				<category>Sencha</category>				
				
				<pubDate>Thu, 17 Jun 2010 17:31:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2010/6/17/Introducing-Sencha</guid>
				
				
			</item>
			
			<item>
				<title>My CF + ExtJs Preso for cf.Objective() 2010</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2010/4/24/My-CF--ExtJs-Preso-for-cfObjective-2010</link>
				<description>
				
				&lt;img src=&quot;http://blog.cutterscrossing.com/images/cfplusext.jpg&quot; alt=&quot;ColdFusion + ExtJs&quot; style=&quot;position: relative; float: left;margins: 10px&quot; /&gt;Attached to this is my slide deck and sample code from my ColdFusion + ExtJs presentation here at cf.Objective() 2010. Overall it seemed to go really well, despite the typical technical difficulties, and though &lt;a href=&quot;http://www.coldfusionjedi.com&quot;&gt;Ray&lt;/a&gt; said I needed to be a little more introductory (Thanks Ray. I appreciate the feedback.) I heavily commented the JavaScript in my source code, so hopefully that will help to fill in the gaps for people. If anyone has any questions, feel free to use the contact link at the bottom of the page.

I want to shout out to Aaron Conran of &lt;a href=&quot;http://www.extjs.com&quot;&gt;ExtJs&lt;/a&gt;, for providing me with a license for their new &lt;a href=&quot;http://www.extjs.com/products/designer/?ref=family&quot;&gt;ExtDesigner&lt;/a&gt; to giveaway in my presentation. I pinged him last minute on this, and he really came through (Hope you like it Lance. Drop me your info to give back to Aaron.) For those who haven&apos;t checked it out yet, it&apos;s a fantastic tool, really well done, and more than worth the small price tag on it.

On a side note, I&apos;m using a &quot;work-in-progress&quot; version of &lt;a href=&quot;http://cfqueryreader.riaforge.org&quot;&gt;CFQueryReader&lt;/a&gt; in this sample. I&apos;m in the process of refactoring to support some advanced features of Ext.Direct, and the new version will only be compatible with 3.2 and above. When I put it into SVN I&apos;ll add some notes on which revision is the cutoff for previous versions of ExtJs.

Update: I&apos;ve added notes to the readme.txt file of the sample download with instructions on how to make the examples work in ColdFusion 8 as well. 
				</description>
				
				<category>Learning ExtJS</category>				
				
				<category>cfObjective</category>				
				
				<category>CFQueryReader</category>				
				
				<category>ExtJS</category>				
				
				<category>Development</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Sat, 24 Apr 2010 08:50:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2010/4/24/My-CF--ExtJs-Preso-for-cfObjective-2010</guid>
				
				
				<enclosure url="http://blog.cutterscrossing.com/enclosures/cfo2010.zip" length="118842" type="application/zip"/>
				
			</item>
			
			<item>
				<title>I Am Speaking at cf.Objective() 2010</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2010/1/6/I-Am-Speaking-at-cfObjective-2010</link>
				<description>
				
				&lt;img src=&quot;http://blog.cutterscrossing.com/images/CFObjective_09_banner_3-31deadline_468x62.jpg&quot; style=&quot;float:right;margin:5px&quot; /&gt;I&apos;ll be speaking on building applications with &lt;a href=&quot;http://www.adobe.com/products/coldfusion&quot; target=&quot;_blank&quot;&gt;ColdFusion&lt;/a&gt; and &lt;a href=&quot;http://www.extjs.com&quot; target=&quot;_blank&quot;&gt;ExtJs&lt;/a&gt; at &lt;a href=&quot;http://www.cfobjective.com&quot; target=&quot;_blank&quot;&gt;cf.Objective 2010&lt;/a&gt;. I was very honored to be asked to submit a topic alongside so many fantastic speakers and developers. I&apos;ll post more as the details are refined. 
				</description>
				
				<category>Learning ExtJS</category>				
				
				<category>cfObjective</category>				
				
				<category>ExtJS</category>				
				
				<category>Development</category>				
				
				<category>ColdFusion</category>				
				
				<pubDate>Wed, 06 Jan 2010 15:59:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2010/1/6/I-Am-Speaking-at-cfObjective-2010</guid>
				
				
			</item>
			
			<item>
				<title>Can We Extend the ColdFusion Server</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2009/10/8/Can-We-Extend-the-ColdFusion-Server</link>
				<description>
				
				I love playing around with new toys. So, I&apos;m ecstatic now that &lt;a href=&quot;http://www.adobe.com/products/coldfusion&quot; target=&quot;_blank&quot;&gt;ColdFusion 9&lt;/a&gt; has been officially released to the world, and even more so after what I&apos;m about to tell you. Oh sure, I&apos;ve been playing around with the betas, but mostly in testing the cfajax/ExtJs 3 upgrades (and I&apos;ll be posting more on that in the coming months). Time has been somewhat limited for me, so playtime has had to take a back burner. But, I wish I had gotten into this a bit sooner.

Yesterday I finally got around to working with some of the new cfscript implementations. I find these upgrades to be one of the key features for me personally. One, It&apos;s a faster coding style for me. Two, I was getting tired of bouncing between script and tags. Three, I really like the economy of code associated with script, finding it to be far less verbose. So, I&apos;m lovin&apos; the fact that I can write all of my CFC&apos;s, including my Application.cfc, in pure script. Now I can keep the tags with the display. But, as someone pointed out to me in a recent comment, there are still a few tags (anyone know which ones?) that haven&apos;t yet gotten script implementations. What can we do about that?

So, in diving right into playing with script enhancements, I ran into a few roadblocks. Minor errors, stemming from me not properly understanding the implementation. Now, the first place I went was to the documentation. &lt;a href=&quot;http://www.coldfusionjedi.com&quot; target=&quot;_blank&quot;&gt;Ray Camden&lt;/a&gt; keeps saying to me &quot;Why don&apos;t people read the documentation?&quot; I&apos;m one of those that agrees with him. Yes, the documentation has some holes, and even bad examples, but you would be surpised what you can learn. (Read on, you&apos;ll see where I&apos;m going with this!)  [More]
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Development</category>				
				
				<pubDate>Thu, 08 Oct 2009 15:22:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2009/10/8/Can-We-Extend-the-ColdFusion-Server</guid>
				
				
			</item>
			
			<item>
				<title>Scripting a ColdFusion Application</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2009/10/8/Scripting-a-ColdFusion-Application</link>
				<description>
				
				With the release of &lt;a href=&quot;http://www.adobe.com/products/coldfusion&quot; target=&quot;_blank&quot;&gt;ColdFusion 9&lt;/a&gt; this past week, at MAX, we finally have full parity for cfscript with all of the cf tags. I personally prefer script when writing data access and business logic. For some it might not appear to be the sexiest feature, but I can see it making &lt;a href=&quot;http://www.opencfml.org&quot; target=&quot;_blank&quot;&gt;CFML&lt;/a&gt; much more appealing to developers from other languages.  [More]
				</description>
				
				<category>General Coding Guidelines</category>				
				
				<category>ColdFusion</category>				
				
				<category>Development</category>				
				
				<pubDate>Thu, 08 Oct 2009 00:28:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2009/10/8/Scripting-a-ColdFusion-Application</guid>
				
				
				<enclosure url="http://blog.cutterscrossing.com/enclosures/Application.cfc.txt" length="7458" type="text/plain"/>
				
			</item>
			
			<item>
				<title>ColdFusion Ajax and ExtJs Presentation Update</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2009/9/23/ColdFusion-Ajax-and-ExtJs-Presentation-Update</link>
				<description>
				
				I&apos;ve been asked to present to the &lt;a href=&quot;www.kcdevcore.org&quot; target=&quot;_blank&quot;&gt;KCDevCore&lt;/a&gt; on &lt;a href=&quot;http://www.adobe.com/products/coldfusion/&quot; target=&quot;_blank&quot;&gt;ColdFusion&lt;/a&gt; 9 Ajax and &lt;a href=&quot;http://www.extjs.com&quot; target=&quot;_blank&quot;&gt;ExtJs&lt;/a&gt;. This will be an updated version of my ColdFusion Ajax presentation, with new content to cover the updates and new components presented in ColdFusion 9 and ExtJs 3.0. By request, I&apos;m going to try to keep the slides to a minimum and get down to some code.

That presentation will be next Tuesday, September 29th, at 7 PM CDT, and will be available via the KCDevCore &lt;a href=&quot;https://admin.na3.acrobat.com/_a204547676/kcdevcore/&quot; target=&quot;_blank&quot;&gt;Adobe Connect&lt;/a&gt;.

For those who don&apos;t know (where have you been?), ColdFusion 9 is now in public beta on &lt;a href=&quot;http://labs.adobe.com&quot; target=&quot;_blank&quot;&gt;Adobe Labs&lt;/a&gt;. 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>ExtJS</category>				
				
				<category>Development</category>				
				
				<pubDate>Wed, 23 Sep 2009 09:33:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2009/9/23/ColdFusion-Ajax-and-ExtJs-Presentation-Update</guid>
				
				
			</item>
			
			<item>
				<title>ColdFusion for the Redmond Crowd</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2009/8/18/ColdFusion-for-the-Redmond-Crowd</link>
				<description>
				
				Some time back I started receiving &lt;a href=&quot;http://www.visualstudiomagazine.com&quot; target=&quot;_blank&quot;&gt;Visual Studio Magazine&lt;/a&gt;. I&apos;m not sure why. I didn&apos;t request it, and lord knows I&apos;ve tried to stay away long enough (since the VB6 days). But, being a developer with a background in linguistics, I began to read through the issues. C# looks interesting, and I&apos;ll probably play with it some, but for the most part all of it just reminds me why I&apos;m a ColdFusion developer with skills in related web type languages (XHTML, CSS, JavaScript, etc).

Last week I received my August issue of VSM, and took a look when I got a chance. I got a number of surprises with this issue, the first one being the biggest. In the front of magazine is an &apos;Online Contents&apos; section, where they list articles that are only available on the web from three Redmond Developer Network sites: &lt;a href=&quot;http://www.visualstudiomagazine.com&quot; target=&quot;_blank&quot;&gt;Visual Studio Magazine&lt;/a&gt;, &lt;a href=&quot;http://www.reddevnews.com&quot; target=&quot;_blank&quot;&gt;Redmond Developer News&lt;/a&gt;, and &lt;a href=&quot;http://www.adtmag.com&quot; target=&quot;_blank&quot;&gt;Application Development Trends&lt;/a&gt;. And, to my surprise, under the articles on ADT, the first heading read &lt;a href=&quot;http://adtmag.com/articles/2009/07/15/adobe-releases-first-beta-of-coldfusion-9.aspx&quot; target=&quot;_blank&quot;&gt;Adobe Releases First Beta of ColdFusion 9&lt;/a&gt;.

Now, here&apos;s a magazine dedicated to .NET development, pointing to sites dedicated to .NET development, highlighting an article about ColdFusion. Nice! This was obviously part of the interview blitz that &lt;a href=&quot;http://www.adrocknaphobia.com&quot; target=&quot;_blank&quot;&gt;Adam Lehman&lt;/a&gt; did just before the public release. The article talks about &lt;a href=&quot;http://labs.adobe.com/technologies/coldfusionbuilder/&quot; target=&quot;_blank&quot;&gt;ColdFusion Builder&lt;/a&gt;, quotes the recent &lt;a href=&quot;http://www.gartner.com/DisplayDocument?doc_cd=165146&quot; target=&quot;_blank&quot;&gt;Gartner Report&lt;/a&gt;, and talks about the great new features in &lt;a href=&quot;http://labs.adobe.com/technologies/coldfusion9/&quot; target=&quot;_blank&quot;&gt;ColdFusion 9&lt;/a&gt;, with emphasis on Hibernate, full scripted dev support, as well as the Office and Sharpoint integration features (it also reminds readers about the .NET and Exchange integration features added in to CF 8.)

So, it was truly cool to see CF getting some love from the press. More so, being as the press targets a different developer market. But, it got cooler for Adobe with the rest of the issue. See, this issue of VSM was also the 2009 VSM Readers Choice Awards. Adobe took a few honors in several categories:

&lt;ul&gt;
    &lt;li&gt;Help Authoring: Readers Choice Award Winner : RoboHelp and RoboHelp Server - Adobe Systems, Inc.&lt;/li&gt;
    &lt;li&gt;Web Design &amp; Development Tools : Readers Choice Award Winner : Dreamweaver - Adobe Systems, Inc.&lt;/li&gt;
    &lt;li&gt;Web Design &amp; Development Tools : Readers Choice Merit Award Winner : Creative Suite 4 - Adobe Systms, Inc.&lt;/li&gt;
    &lt;li&gt;Web &amp; Mobile Development : Editors Choice Award Winner : Dreamweaver - Adobe Systems, Inc.&lt;/li&gt;
&lt;/ul&gt;

Great news for Adobe, and a nice shot over the MS bow. Looking over the other categories, I see potential with the release of ColdFusion 9. Here&apos;s some nice goals/targets for our favorite server:

&lt;ul&gt;
    &lt;li&gt;Charting and Multimedia (should&apos;ve been Flex hands down, but CF has it&apos;s own)&lt;/li&gt;
    &lt;li&gt;Data Editing, Reporting &amp;amp; Analysis Tools&lt;/li&gt;
    &lt;li&gt;Grid Components: Web (I can see it)&lt;/li&gt;
    &lt;li&gt;Imaging and Graphics&lt;/li&gt;
    &lt;li&gt;Middleware &amp; Server Based Tools&lt;/li&gt;
    &lt;li&gt;PDF Tools&lt;/li&gt;
    &lt;li&gt;SharePoint Components &amp; Tooling&lt;/li&gt;
    &lt;li&gt;Editors Choice: Most Valuable Tool&lt;/li&gt;
    &lt;li&gt;Editors Choice: Data Handling &amp; Development&lt;/li&gt;
&lt;/ul&gt;

Thanks Adam, for pushing the tech press in areas that haven&apos;t historically gotten our message. Congrats to Adobe for it&apos;s new honors, and here&apos;s to hoping other dev communities begin to see, and recognize, the value of ColdFusion. 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>Development</category>				
				
				<pubDate>Tue, 18 Aug 2009 22:39:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2009/8/18/ColdFusion-for-the-Redmond-Crowd</guid>
				
				
			</item>
			
			<item>
				<title>Request vs Variables - Which is right?</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2009/8/10/Request-vs-Variables--Which-is-right</link>
				<description>
				
				Last week I stirred the pot a bit, stating that we&apos;ve been improperly using the VARIABLES scope, and it&apos;s hurting our applications. Variables placed within the VARIABLES scope do not appear to have proper Garbage Collection performed on them when we&apos;re done with them, except in the case of the scope&apos;s usage within a CFC or a custom tag. This brought up some interesting discussion, where Ray Camden, Mike Brunt, and others chimed in.

I, with very good success, have been using REQUEST where most people use the VARIABLES scope. Wait! Hold on! You have to let me finish first before you get bent. What I said was that, in the past, we placed variables into the VARIABLES scope within our base request templates, with no way of clearing those variables at the end of the request (if using Application.cfc). My thought is, if VARIABLES have no true (apparent) mechanism for release, in context of variables scoped this way in a base request, then they don&apos;t really belong in the VARIABLES scope, but rather in the REQUEST scope.

This was met with some push back. The first argument was that this breaks encapsulation. I want to begin my response here by saying the first obvious thing that comes to mind: ColdFusion is not OO! Sure, your ColdFusion application can be written in an OO fashion, but ultimately it doesn&apos;t have to be. There are even some who seem that think that maybe it shouldn&apos;t be. All of that being said, I agree with OO principles, and think that proper encapsulation is very important when developing your applications, especially in terms of portability and reuse. Just because the REQUEST scope &lt;em&gt;can&lt;/em&gt; be used directly within your custom tags or CFC&apos;s &lt;strong&gt;doesn&apos;t&lt;/strong&gt; mean that you should. I would never suggest referencing the REQUEST scope directly within a CFC, with the exception of Application.cfc itself.

So another argument was that the REQUEST scope should only be used &quot;when (and only when) the variable must be accessible to all the elements composing the request...&quot;, going further to state that the REQUEST scope should be avoided if at all possible. Why? The rest of the argument once again comes back to encapsulation. My point is to use the REQUEST scope within the context of a &lt;em&gt;request&lt;/em&gt;, paying attention to maintain encapsulation. Within that context, doesn&apos;t it make &lt;em&gt;sense&lt;/em&gt; to use the REQUEST scope for variables that should only exist for the length of a request?

The &lt;a href=&quot;http://www.coldfusionjedi.com&quot; target=&quot;_blank&quot;&gt;ColdFusion Jedi&lt;/a&gt; piped in to correct me on my timeline of scope introductions to ColdFusion, and we had some back and forth over declaration of scope to clearing of scope. I contended that onApplicationEnd() cleared the APPLICATION scope, that onSessiondEnd() cleared the SESSION scope, and that onRequestEnd() cleared the REQUEST scope. Ray reminded me that Application.cfc was about application process, and that the server handled when to &apos;clear&apos; variables &apos;under the hood.&apos; My point back was that &lt;em&gt;something&lt;/em&gt; has to tell the server when to de-reference these variables, and that I had always assumed that was triggered by the execution of these methods. &lt;a href=&quot;http://www.cfwhisperer.com/&quot; target=&quot;_blank&quot;&gt;Mike Brunt&lt;/a&gt; chimed in on this, saying that the application must de-reference the variables prior to the server knowing it can perform Garbage Collection on them (Side Note: he didn&apos;t come out and agree with all of my conclusions here, only seeming to agree with the logic applied.)

Possibly the largest argument overall relates to whether the apparent memory leak, when using the VARIABLES scope within a base request, is really a leak or just a byproduct? I&apos;ve theorized that the intention of the VARIABLES scope was that it was to be used &lt;em&gt;only&lt;/em&gt; within CFC&apos;s and custom tags, where it does appear to properly get de-referenced. I put out there that the only reason you were able to use VARIABLES within the base request was because custom tags were created from .cfm files as well, so there really isn&apos;t any way to restrict it&apos;s usage. Ray says that the VARIABLES scope was introduced to provide access (like StructKeyExists()) to the unscoped variables out there in the wild.I think our thoughts of &apos;best practice&apos; usage should follow these lines: Using the REQUEST scope within the base request, while maintaining encapsulation.

Ultimately, I just don&apos;t know. Maybe there&apos;s still an Adobe engineer out there who goes back that far, and can remember exactly what&apos;s what and why. I do know that, after migrating several high traffic applications to these guidelines I did get a higher return on application performance. I&apos;ve gotten notes from others, after reading the original post, who have done similar changes to their systems with the same improvements. What other pluses or minuses do you, dear reader, think of when considering this practice of variable scoping? Is it right? Is it wrong? Is it a sin? What do you say?

(You can follow the original comment thread by referencing the post linked below) 
				</description>
				
				<category>General Coding Guidelines</category>				
				
				<category>Development</category>				
				
				<category>ColdFusion 8</category>				
				
				<category>ColdFusion</category>				
				
				<category>My 2 cents</category>				
				
				<pubDate>Mon, 10 Aug 2009 17:06:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2009/8/10/Request-vs-Variables--Which-is-right</guid>
				
				
			</item>
			
			<item>
				<title>Scope Usage and Application Scaling</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2009/8/6/Scope-Usage-and-Application-Scaling</link>
				<description>
				
				Mike Brunt has posted an excellent article called &lt;a href=&quot;http://www.cfwhisperer.com/post.cfm/good-practices-for-scaling-coldfusion-applications&quot; target=&quot;_blank&quot;&gt;Good Practices For Scaling ColdFusion Applications&lt;/a&gt;, in which he speaks about the importance of memory management within ColdFusion applications, and calls out certain avenues of scope usage that every CF developer should pay attention too.

Great post Mike! Another &apos;scope&apos; issue that I&apos;ve often seen (and abused myself) is the misuse of the VARIABLES scope. Back in the early days of CF, every example you saw showed an unscoped variable, placing it into the VARIABLES scope by default. This was fine, back then, as your view layers primarily consisted of Custom Tags. Use of the VARIABLES scope, within a custom tag, was permissable as those variables were then only available within that tag (or within a nested tag, if the nested tag used the CALLER scope). Once execution of the tag was completed, the memory space of those variables was cleared.

But, since custom tags were made from .cfm templates, there is no constraint within CFML from placing VARIABLES scoped variables within &lt;strong&gt;any&lt;/strong&gt; .cfm template. This, in itself, is bad, as the VARIABLES scope (in the case of a base template, not a custom tag) is not properly cleared from memory space.

What I find people doing (and I&apos;ve done it myself) is using the VARIABLES scope in place of the REQUEST scope. Memory allocated to REQUEST variables is properly recovered at the end of a request. Although variables in the VARIABLES scope are no longer available (except within a persistent CFC), their memory isn&apos;t properly released at the end of request execution. (For more information on this, see Jason Sheedy&apos;s post on the &lt;a href=&quot;http://www.jmpj.net/jason/index.cfm/2007/4/14/Cold-Fusion-Memory-Leak&quot; target=&quot;_blank&quot;&gt;ColdFusion Memory Leak&lt;/a&gt;, and the accompanying comment thread and other referenced posts.)

A technique that some used, to get around this issue, was to have a &lt;em&gt;StructClear(VARIABLES)&lt;/em&gt; statement as the last line of their onRequestEnd.cfm. This would explicitly clear out the VARIABLES scope at the end of a request. But, with the advent of Application.cfc, this no longer became an option (if you use Application.cfc.) If you tried to use that statement within the &lt;em&gt;onRequestEnd()&lt;/em&gt; method of Application.cfc, you would only be clearing the VARIABLES scope of the CFC itself, and not the request.

That&apos;s actually a good pointer at the true underlying issue: proper scope usage. Use of the VARIABLES scope within a CFC makes variables within that scope &lt;em&gt;only&lt;/em&gt; available directly by all methods of that CFC. Use of the VARIABLES scope within a custom tag makes variables within that scope &lt;em&gt;only&lt;/em&gt; available within that tag (or a nested tag using the CALLER scope to access them.) Within a custom tag, you can not access variables of the calling template&apos;s VARIABLES scope, unless you use the CALLER scope to do so (which should only be in the case of a nested custom tag). You can, however, access REQUEST variables through out the request, from within a custom tag, an include file, or even within a CFC (though I wouldn&apos;t suggest doing that one.) By confining the usage of the VARIABLES scope to within custom tags and CFC&apos;s, and properly setting request level variables within the REQUEST scope, you could better manage your memory usage and application performance.

I&apos;ve personally seen major differences in application performance, both through Mike&apos;s advice on persistent scope usage, as well as what I&apos;ve outlined above. Unlike Jason Sheedy though, I&apos;m not very familiar with Java profiling tools, so I&apos;ll have to leave it up to someone else to test all of this for the scientific proof. I only know that it appears my applications are running better as I migrate them to this paradigm. What are your thoughts?

*** Post Revision 080609: 2230 hrs ***
More revision to my comments than the post itself, but Ray, the ColdFusion Jedi himself, corrected me. According to Ray, the VARIABLES scope wasn&apos;t added until CFMX, so my supposition on the &apos;intention&apos; of the VARIABLES scope was incorrect. You really have to read the comment thread to see the fun we&apos;re having;) Hopefully we&apos;ll find an answer. &lt;em&gt;Cutter&lt;/em&gt; 
				</description>
				
				<category>General Coding Guidelines</category>				
				
				<category>Development</category>				
				
				<category>ColdFusion 8</category>				
				
				<category>ColdFusion</category>				
				
				<category>My 2 cents</category>				
				
				<pubDate>Thu, 06 Aug 2009 15:29:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2009/8/6/Scope-Usage-and-Application-Scaling</guid>
				
				
			</item>
			
			<item>
				<title>CFQueryReader v1.2 - Critical Update Supporting ExtJS 3.x</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2009/7/29/CFQueryReader-v12--Update-Supporting-ExtJS-3x</link>
				<description>
				
				I have updated &lt;a href=&quot;http://cfqueryreader.riaforge.org&quot; target=&quot;_blank&quot;&gt;CFQueryReader&lt;/a&gt;, addressing issues that had arisen with new builds of ExtJs 3.x. This new build should cover sporadic issues with loading a new Ext.data.Store. There is also a simple example of using Aaron Conran&apos;s &lt;a href=&quot;http://extjs.com/forum/showthread.php?t=67983&quot; target=&quot;_blank&quot;&gt;DirectCFM&lt;/a&gt; Ext.Direct ColdFusion API stack.

The CFQueryReader &lt;a href=&quot;http://cfqueryreader.cutterscrossing.com&quot; target=&quot;_blank&quot;&gt;Example Site&lt;/a&gt; has been updated as well. You can update CFQueryReader from &lt;a href=&quot;http://cfqueryreader.riaforge.org&quot; target=&quot;_blank&quot;&gt;RIAForge&lt;/a&gt;. 
				</description>
				
				<category>Learning ExtJS</category>				
				
				<category>ColdFusion</category>				
				
				<category>ColdFusion 8</category>				
				
				<category>CFQueryReader</category>				
				
				<category>ExtJS</category>				
				
				<category>Development</category>				
				
				<pubDate>Wed, 29 Jul 2009 16:04:14 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2009/7/29/CFQueryReader-v12--Update-Supporting-ExtJS-3x</guid>
				
				
			</item>
			
			<item>
				<title>Ext Js 3.0 is Finally Released!</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2009/7/6/Ext-Js-30-is-Finally-Released</link>
				<description>
				
				Yes, &lt;a href=&quot;http://www.extjs.com&quot; target=&quot;_blank&quot;&gt;Ext Js&lt;/a&gt; 3.0 has finally arrived! This long awaited update to the popular library has finally hit the &lt;a href=&quot;http://extjs.com/products/extjs/download.php&quot; target=&quot;_blank&quot;&gt;download page&lt;/a&gt; as a production ready build (though the Release Candidates have been pretty stable as it is). There are many great enhancements to Ext, including an even more consistent underlying model (how could it get &lt;em&gt;more&lt;/em&gt; consistent?), and some exciting new data marshalling features.

A quick perusal of the updated &lt;a href=&quot;http://extjs.com/deploy/dev/examples/samples.html&quot; target=&quot;_blank&quot;&gt;Samples &amp;amp; Demos&lt;/a&gt; page gives us immediate insight into some of the new features that are available:

&lt;ul&gt;
    &lt;li&gt;&lt;a href=&quot;http://extjs.com/deploy/dev/examples/grid/row-editor.html&quot; target=&quot;_blank&quot;&gt;Row Editor Grid&lt;/a&gt; - for full record edits&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://extjs.com/deploy/dev/examples/grid/buffer.html&quot; target=&quot;_blank&quot;&gt;Buffered Grid View&lt;/a&gt; - for faster rendering of large datasets&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://extjs.com/deploy/dev/examples/tabs/tab-scroller-menu.html&quot; target=&quot;_blank&quot;&gt;Tab Panel Scroller Menu&lt;/a&gt; - for Tab Panels with lots of tabs&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://extjs.com/deploy/dev/examples/grouptabs/grouptabs.html&quot; target=&quot;_blank&quot;&gt;Group Tabs&lt;/a&gt; - a vertical tab implementation&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://extjs.com/deploy/dev/examples/chart/charts.html&quot; target=&quot;_blank&quot;&gt;Charts&lt;/a&gt; - several different chart types&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://extjs.com/deploy/dev/examples/tree/check-tree.html&quot; target=&quot;_blank&quot;&gt;Check Tree&lt;/a&gt; - a tree view with a twist&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://extjs.com/deploy/dev/examples/layout/hbox.html&quot; target=&quot;_blank&quot;&gt;HBox&lt;/a&gt; and &lt;a href=&quot;http://extjs.com/deploy/dev/examples/layout/vbox.html&quot; target=&quot;_blank&quot;&gt;VBox&lt;/a&gt; layouts&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://extjs.com/deploy/dev/examples/toolbar/overflow.html&quot; target=&quot;_blank&quot;&gt;Toolbar Overflow&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://extjs.com/deploy/dev/examples/toolbar/toolbars.html&quot; target=&quot;_blank&quot;&gt;Toolbar Button Groups&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;http://extjs.com/deploy/dev/examples/view/list-view.html&quot; target=&quot;_blank&quot;&gt;ListView&lt;/a&gt; - a very lightweight grid implementation&lt;/li&gt;
    &lt;li&gt;Updated &lt;a href=&quot;http://extjs.com/deploy/dev/examples/simple-widgets/qtips.html&quot; target=&quot;_blank&quot;&gt;QuickTips&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

There&apos;s a lot more that you&apos;ll have to dig to see, like improved browser support, a better container model, and (experimental) ARIA support (for accessabiltiy). Some of the greatest enhancements come in the way of the data marshalling capabilities added via the new &lt;a href=&quot;http://extjs.com/blog/2009/05/13/introducing-ext-direct/&quot; target=&quot;_blank&quot;&gt;Ext Direct&lt;/a&gt;. With Direct, Ext is providing the &lt;a href=&quot;http://extjs.com/products/extjs/direct.php&quot; target=&quot;_blank&quot;&gt;remoting specifications&lt;/a&gt; so that anyone can write data marshalling services around their favorite backend language. Ext has even published &lt;a href=&quot;&quot; target=&quot;_blank&quot;&gt;Example Server Side Stacks&lt;/a&gt; as a jumping off point to beginning with data marshalling via Direct. [Side Note: Aaron Conran, the team lead on the Ext Js team, is a long time &lt;a href=&quot;http://www.adobe.com/products/coldfusion&quot; target=&quot;_blank&quot;&gt;ColdFusion&lt;/a&gt; guy, and he wrote the example CF stack.) By configuring your Direct API, you can utilize data readers and writers (they&apos;re new!) easily, even passing multiple requests within a single Ajax request. [Another Side Note: &lt;a href=&quot;http://cfqueryreader.riaforge.org&quot; target=&quot;_blank&quot;&gt;CFQueryReader&lt;/a&gt; is fully functional with and without Direct.]

One of the nicest features of this release is the backwards compatability. There are little to few changes that most will have to make, to upgrade their applications from 2.x to 3.0. And, it was announced, on a recent &lt;a href=&quot;http://groups.adobe.com/groups/ab704331ab/summary&quot; target=&quot;_blank&quot;&gt;User Group Tour&lt;/a&gt; stop, that Adobe is including Ext Js 3.0 in ColdFusion 9. This opens up the possability of some very nice, new CFAjax components to come.

All in all a fantastic release. I&apos;ve had the opportunity to play with 3.0 for a while now, watching the SVN updates daily, and my hat&apos;s off to the Ext Js crew for another excellent release. 
				</description>
				
				<category>Learning ExtJS</category>				
				
				<category>ColdFusion</category>				
				
				<category>Centaur Tour</category>				
				
				<category>CFQueryReader</category>				
				
				<category>ExtJS</category>				
				
				<category>Development</category>				
				
				<pubDate>Mon, 06 Jul 2009 23:08:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2009/7/6/Ext-Js-30-is-Finally-Released</guid>
				
				
			</item>
			
			<item>
				<title>ColdFusion PreRelease Tour Coming to Nashville</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2009/6/10/ColdFusion-PreRelease-Tour-Coming-to-Nashville</link>
				<description>
				
				&lt;div style=&quot;margin:0 auto;&quot;&gt;&lt;a href=&quot;http://www.ncfug.com/go/meeting/meetingID/3FB5BE35%2D0C49%2DCC97%2D8839C3E73088FBAC/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://www.ncfug.com/skins/ncfug/images/cftour2009.jpg&quot; alt=&quot;NCFUG CF Tour&quot; width=&quot;470&quot; height=&quot;60&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/div&gt;

&lt;a href=&quot;http://gregsramblings.com/&quot; target=&quot;_blank&quot;&gt;Greg Wilson&lt;/a&gt;, Adobe Platform Evangelist, is coming to Nashville to give us a sneak peak at ColdFusion 9, Codename: Centaur, and Bolt, the new ColdFusion IDE. According to various posts from cf.Objective, and other tour dates, there appear to be some major enhancements in integration capabilities, Flex and AIR interaction, and more. You don&apos;t want to miss out on this special event, giving you the inside scoop!

Click on the link above to register. 
				</description>
				
				<category>Development</category>				
				
				<category>Centaur Tour</category>				
				
				<category>ColdFusion</category>				
				
				<category>NCFUG</category>				
				
				<pubDate>Wed, 10 Jun 2009 09:43:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2009/6/10/ColdFusion-PreRelease-Tour-Coming-to-Nashville</guid>
				
				
			</item>
			
			<item>
				<title>Ext JS 3.0 RC2 Released</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2009/6/3/Ext-JS-30-RC2-Released</link>
				<description>
				
				The &lt;a href=&quot;http://www.extjs.com&quot; target=&quot;_blank&quot;&gt;Ext JS&lt;/a&gt; team has announced the release of &lt;a href=&quot;http://extjs.com/blog/2009/06/03/ext-js-30-rc2-release-stable-robust-and-enhanced/&quot; target=&quot;_blank&quot;&gt;3.0 RC2&lt;/a&gt;. This latest Release Candidate is considered to be very stable, with many new examples to show you how to do what you need to do. From someone that updates from the repository every day, I can tell you that these guys have been working hard to get 3.0 ready for full release, and there&apos;s a ton of new material there (in the examples) to learn from. 
				</description>
				
				<category>ExtJS</category>				
				
				<category>Development</category>				
				
				<pubDate>Wed, 03 Jun 2009 11:53:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2009/6/3/Ext-JS-30-RC2-Released</guid>
				
				
			</item>
			
			<item>
				<title>Placement of the PagingToolbar on a Grid</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2009/5/22/Placement-of-the-PagingToolbar-on-a-Grid</link>
				<description>
				
				This morning I found I was courtesy copied by &lt;a href=&quot;http://www.coldfusionjedi.com&quot; target=&quot;_blank&quot;&gt;Ray Camden&lt;/a&gt;, on a reply that he was making to a message he had received from his Blog Contact form from Mike Knox. Mike was trying to find out if it was possible to place the PagingToolbar, used in cfgrid, at the top of the grid rather than the bottom. Ray had told Mike that he had Googled it and not found on obvious solution, and that he was CCing me for my feedback.

Like any padawan, it&apos;s pretty humbling for me to be asked advice from the Jedi Master. I&apos;ve been taking Ray&apos;s advice on &lt;a href=&quot;http://www.adobe.com/products/coldfusion&quot; target=&quot;_blank&quot;&gt;ColdFusion&lt;/a&gt; since the 4.x days, so I try to be pretty diligent when he includes me in helping others with their queries.

I&apos;ve always held that the use of the CF Ajax components are primarily for rapid application prototyping. They are fantastic for putting up some very basic functionality, but when you need more advanced configuration it is then time to dig in, and go straight to &lt;a href=&quot;http://www.extjs.com&quot; target=&quot;_blank&quot;&gt;Ext JS&lt;/a&gt; itself. Mike&apos;s question is a prime example of this. We have nearly no control over a cfgrid&apos;s configuration prior to render, and the configuration options that we do have (through the cfgrid and cfgridcolumn attributes) barely scratch the surface to what one can do with an Ext Grid. The PagingToolbar is a class object of Ext and, as such, you should be able to add it to any toolbar of a grid: top, bottom, or both. I fired up Eclipse, booted up my CF and Apache, and pulled up the Ext examples from my local copy of the latest 3.0 download. All of the examples that you can see in the &lt;a href=&quot;http://extjs.com/deploy/dev/examples/samples.html&quot; target=&quot;_blank&quot;&gt;Samples &amp; Demos&lt;/a&gt; section of the Ext site are given to you in the download of the library, so that you can run them locally and pick them apart. So, my quest was on.

I went to the &lt;a href=&quot;http://extjs.com/deploy/dev/examples/grid/paging.html&quot; target=&quot;_blank&quot;&gt;Paging Grid Example&lt;/a&gt;, and examined the source code of the &lt;a href=&quot;http://extjs.com/deploy/dev/examples/grid/paging.js&quot; target=&quot;_blank&quot;&gt;paging.js&lt;/a&gt; file. I quickly found the configuration object for the paging toolbar:
    
    &lt;code&gt;
    var pagingBar = new Ext.PagingToolbar({
        pageSize: 25,
        store: store,
        displayInfo: true,
        displayMsg: &apos;Displaying topics {0} - {1} of {2}&apos;,
        emptyMsg: &quot;No topics to display&quot;,
        
        items:[
            &apos;-&apos;, {
            pressed: true,
            enableToggle:true,
            text: &apos;Show Preview&apos;,
            cls: &apos;x-btn-text-icon details&apos;,
            toggleHandler: function(btn, pressed){
                var view = grid.getView();
                view.showPreview = pressed;
                view.refresh();
            }
        }]
    });
    &lt;/code&gt;

 The PagingToolbar instance is then applied to the Grid, placing the object in the &apos;bbar&apos; (bottom bar) attribute:

    &lt;code&gt;
        // paging bar on the bottom
        bbar: pagingBar
    &lt;/code&gt;

After seeing this in the online demo, I went to my local (3.0) demo to see if I could change it. The Ext team rewrote the demo for the upcoming 3.0 release, placing the instance initialization directly in the attribute:

    &lt;code&gt;
        // paging bar on the bottom
        bbar: new Ext.PagingToolbar({
            pageSize: 25,
            store: store,
            displayInfo: true,
            displayMsg: &apos;Displaying topics {0} - {1} of {2}&apos;,
            emptyMsg: &quot;No topics to display&quot;,
            items:[
                &apos;-&apos;, {
                pressed: true,
                enableToggle:true,
                text: &apos;Show Preview&apos;,
                cls: &apos;x-btn-text-icon details&apos;,
                toggleHandler: function(btn, pressed){
                    var view = grid.getView();
                    view.showPreview = pressed;
                    view.refresh();
                }
            }]
        })
        &lt;/code&gt;

So, I changed &apos;bbar&apos; to &apos;tbar&apos; (top bar) and reloaded the page. Success! The PagingToolbar was now in the top toolbar of the Grid, and fully functional. After reviewing all of this, I decided to go a step further. Could you have two separate PagingToolbar configs on the grid? One at the top and one at the bottom? So, I tried this:

    &lt;code&gt;
        // paging bar on the bottom
        bbar: new Ext.PagingToolbar({
            pageSize: 25,
            store: store,
            displayInfo: true,
            displayMsg: &apos;Displaying topics {0} - {1} of {2}&apos;,
            emptyMsg: &quot;No topics to display&quot;,
            items:[
                &apos;-&apos;, {
                pressed: true,
                enableToggle:true,
                text: &apos;Show Preview&apos;,
                cls: &apos;x-btn-text-icon details&apos;,
                toggleHandler: function(btn, pressed){
                    var view = grid.getView();
                    view.showPreview = pressed;
                    view.refresh();
                }
            }]
        }),
        // paging bar on the top
        tbar: new Ext.PagingToolbar({
            pageSize: 25,
            store: store,
            displayInfo: true,
            displayMsg: &apos;Displaying topics {0} - {1} of {2}&apos;,
            emptyMsg: &quot;No topics to display&quot;,
            items:[
                &apos;-&apos;, {
                pressed: true,
                enableToggle:true,
                text: &apos;Show Preview&apos;,
                cls: &apos;x-btn-text-icon details&apos;,
                toggleHandler: function(btn, pressed){
                    var view = grid.getView();
                    view.showPreview = pressed;
                    view.refresh();
                }
            }]
        })
    &lt;/code&gt;

That&apos;s part of what I love about development, I get to play, experiment, have some (geek) fun. After refreshing the page, I now had two toolbars, at both the top and bottom of the page. Both worked perfectly, and stayed in sync during paging. That&apos;s what I love about the Jack Slocum and the Ext Team, they think about things like having more than one paging bar and how they would need to stay in sync, and they&apos;ve already written it in to the library.

And so, on rare occasion, the student has the opportunity to become the master, though I&apos;m sure there&apos;s still plenty more I can learn from Master Camden;) 
				</description>
				
				<category>ColdFusion</category>				
				
				<category>ColdFusion 8</category>				
				
				<category>ExtJS</category>				
				
				<category>Development</category>				
				
				<pubDate>Fri, 22 May 2009 10:33:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2009/5/22/Placement-of-the-PagingToolbar-on-a-Grid</guid>
				
				
			</item>
			
			<item>
				<title>CFQueryReader v1.1</title>
				<link>http://blog.cutterscrossing.com/index.cfm/2009/5/13/CFQueryReader-v11</link>
				<description>
				
				A while back, &lt;a href=&quot;http://www.madfellas.com/blog/&quot; target=&quot;_blank&quot;&gt;Justin Carter&lt;/a&gt; contacted me about some updates he was making to the &lt;a href=&quot;http://coldext.riaforge.org/&quot; target=&quot;_blank&quot;&gt;ColdExt&lt;/a&gt;, a wrapper for the &lt;a href=&quot;http://www.extjs.com&quot; target=&quot;_blank&quot;&gt;Ext JS&lt;/a&gt; library for &lt;a href=&quot;http://www.adobe.com/products/coldfusion/&quot; target=&quot;_blank&quot;&gt;ColdFusion&lt;/a&gt;. He had been looking at my &lt;a href=&quot;http://cfqueryreader.cutterscrossing.com&quot; target=&quot;_blank&quot;&gt;CFQueryReader&lt;/a&gt;, as a reader for ColdFusion&apos;s JSON data return, and had noticed that there was no support for the &apos;root&apos; attribute that&apos;s associated with most JSON readers in Ext. CFQueryReader is specifically designed for use with Query objects of ColdFusion 8&apos;s native JSON return type.

When I first wrote CFQueryReader, I was replacing the CFJsonReader with something better suited to the array structure used in the ColdFusion JSON return of a Query Object, and really did a one-for-one port. So, I took a deeper look at the issue Justin wanted resolved.

I did a deep comparison of Ext&apos;s ArrayReader and JsonReader source code, following everything that was being accomplished. What I found was how it used an internal accessor method to pull certain information on demand. I was able to refactor the reader to now support all of the base level meta attributes that are currently available to the ArrayReader: id, root, successProperty, and totalProperty.

In the previous version of CFQueryReader, when defining your fieldsets you were also required to uppercase the entire value of the column names. This is no longer a requirement either, although casing is important in identifying your &apos;root&apos; and &apos;totalProperty&apos; attributes.

The download below includes the reader, as well as some sample code showing how to implement it. I also setup these sample in a &lt;a href=&quot;http://cfqueryreader.cutterscrossing.com&quot; target=&quot;_blank&quot;&gt;subdomain&lt;/a&gt; to show it working (requires Firefox with Firebug for full effect). There is a fair amount of comment documentation directly within the &lt;a href=&quot;http://cfqueryreader.cutterscrossing.com/js/custom/CFQueryReader.js&quot; target=&quot;_blank&quot;&gt;CFQueryReader.js&lt;/a&gt; file. A big shout out to Justin, Adam Bellas, and a few others, for helping me out with the testing. 
				</description>
				
				<category>Learning ExtJS</category>				
				
				<category>ColdFusion</category>				
				
				<category>ColdFusion 8</category>				
				
				<category>CFQueryReader</category>				
				
				<category>ExtJS</category>				
				
				<category>Development</category>				
				
				<pubDate>Wed, 13 May 2009 14:08:00 -0400</pubDate>
				<guid>http://blog.cutterscrossing.com/index.cfm/2009/5/13/CFQueryReader-v11</guid>
				
				
				<enclosure url="http://blog.cutterscrossing.com/enclosures/CFQueryReader.zip" length="9859" type="application/octet-stream"/>
				
			</item>
			</channel></rss>