<rss version="2.0"><channel><title>RSS feed for InstantSpot site cfZen</title><link>http://cfzen.instantspot.com</link><description>Zen moments in a ColdFusion life</description><language>en-us</language><copyright>This work is Copyright &#xA9; 2008 by cfZen</copyright><generator>RSSVille ColdFusion FeedMaker, version 1.0</generator><pubDate>Thu, 28 Aug 2008 09:31:19 GMT</pubDate><item><title>An American CF developer&apos;s adventure to Holland (part 1)</title><link>http://cfzen.instantspot.com/blog/2008/08/27/An-American-CF-developers-adventure-to-Holland-part-1</link><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&apos;ve resigned my &lt;a href=&quot;http://cfzen.instantspot.com/blog/2008/08/26/Experienced-CF-Developer-needed&quot; title=&quot;inquire about my old job&quot;&gt;current position&lt;/a&gt; to move to Holland to work at PeopleXS.com as the Lead CF Developer. So, this is part 1 of the following blog series I plan to write.&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;How does one decide to completely uproot one&apos;s family, home, and job to dare move to a country on another continent?&lt;/li&gt;
    &lt;li&gt;How difficult is it to move to Holland?&lt;/li&gt;
    &lt;li&gt;What is it like to live in Holland as an American expat?&lt;/li&gt;
    &lt;li&gt;How is being a Web Developer different in Holland than in America?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Obviously, parts 2-4 will have to wait until I get to Holland.&amp;nbsp; And if there&apos;s interest in the subject, I may write additional related entries.&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Part 1:&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;How did I decide to completely uproot my family, home, and job to dare move to a country on another continent?&lt;/em&gt; &lt;strong&gt;Not easily!&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
While reading through blogs (I forget which one), I noticed a blog that described a Lead CF Developer position for PeopleXS.com. BTW - there&apos;s still some &lt;a href=&quot;http://peoplexs.com/comp/ColdFusionDevelopers.htm&quot;&gt;openings for additional developers&lt;/a&gt;. I emailed it to myself to look over later, as I had always been curious about what it would be like to live in Europe (especially a progressive, liberal country like the Netherlands).&amp;nbsp; A week later, I finally got around to emailing my resume in.&lt;/p&gt;
&lt;p&gt;PeopleXS was glad I had applied, was open to hiring developers from outside the country, and really piqued my interest. So, the next evening at&amp;nbsp; the dinner table at home, not expecting a good reaction from my wife, I tried to casually mentioned that I had found an &amp;quot;interesting opportunity&amp;quot; in Holland. Without blinking she smiled and said, &amp;quot;let&apos;s do it!&amp;quot;&lt;/p&gt;
&lt;p&gt;.... (back to earth) ....&lt;/p&gt;
&lt;p&gt;I was completely floored by her reaction, but love her all the more for it.&amp;nbsp; I hadn&apos;t even told her anything about it really, so obviously we had a lot more &amp;quot;figuring out&amp;quot; to do, but it gave me enough of a boost to forge onward.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Where? &lt;/em&gt;The Hague&lt;/p&gt;
&lt;p&gt;&lt;em&gt;When? &lt;/em&gt;October 1st&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Who?&lt;/em&gt; me, my wife, and 2-year old son&lt;/p&gt;
&lt;p&gt;&lt;em&gt;What?&lt;/em&gt; Lead Developer of a small team of CF developers and a QA team that will expand to meet the needs of a fast-growing SaaS company.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;How? &lt;/em&gt;Fly us to The Hague a few days early to get set up in temporary housing before my first day on the job.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Paid time off?&lt;/em&gt; 5 weeks, instead of 2 weeks here at most jobs in the US&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Transportation?&lt;/em&gt; bikes and public transit (see video below)&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;
&lt;param value=&quot;http://www.youtube.com/v/qk6YxhKH590&amp;hl=en&amp;fs=1&quot; name=&quot;movie&quot; /&gt;
&lt;param value=&quot;true&quot; name=&quot;allowFullScreen&quot; /&gt;&lt;embed width=&quot;425&quot; height=&quot;344&quot; allowfullscreen=&quot;true&quot; type=&quot;application/x-shockwave-flash&quot; src=&quot;http://www.youtube.com/v/qk6YxhKH590&amp;hl=en&amp;fs=1&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;How long?&lt;/em&gt; indefinitely - as long as I like the country and job&lt;/p&gt;
&lt;p&gt;But what about everything I have to leave behind? Family? Job? House? Friends? Material things? Austin, the live music capital of the world, for God&apos;s sake?!!&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Family and friends&lt;/strong&gt; - this is obviously the most difficult, and it really hasn&apos;t &amp;quot;set in&amp;quot;, yet.&amp;nbsp; But I&apos;m sure we&apos;ll get very emotional as it gets closer, and we say our last good-byes. And our families took the news much better than expected, and have been very supportive.&amp;nbsp; Not to mention we&apos;ll use much of our vacation/holiday time to visit the US as much as we can.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;House &lt;/strong&gt;- in the process of being sold.&amp;nbsp; (cross your fingers)&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Job &lt;/strong&gt;- also pretty scary, since I had a very solid, stable job in a fast growing company.&amp;nbsp; I may look back in a few months and think, &amp;quot;what the hell did I do?!!!&amp;quot;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Austin &lt;/strong&gt;- yes, it&apos;s where I grew up and I love it.&amp;nbsp; But still it&apos;s in *Texas*.&amp;nbsp; I don&apos;t want to look back at my life, when I&apos;m barely able to lift my own head, and wonder why I spent my entire in one place.&amp;nbsp; I&apos;d like to think I&apos;m a bit adventurous at heart.&amp;nbsp; We&apos;ll see if I can handle a real adventure...&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Material things &lt;/strong&gt;- aside from a few personal items, gifts, and family stuff, I&apos;m honestly not really *attached* to much that I own, man.&amp;nbsp; My hippie parents passed this attribute to me, and I guess it&apos;s finally paying off.&amp;nbsp; ;-)&amp;nbsp; [er, oh wait - I can&apos;t really bare to give up my Wii and Wii Fit, though... and maybe it&apos;ll be a way to lure a few Dutch people to be my friends...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After over a month of interviewing, long strings of emails to PeopleXS, mulling it over and over with my wife, and rationalizing that this was &amp;quot;too big of an opportunity to pass up&amp;quot;, we took the plunge and I accepted the position.&amp;nbsp; Only patience, positivity (is that the right word?), hard work, and an open mind will keep us on the right track for this crazy ride.&amp;nbsp; Let me know if you think I&apos;m crazy, or if you have any questions?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;What does &amp;quot;The Hague/Den Haag&amp;quot; look like?&lt;/em&gt; see this video&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;425&quot; height=&quot;344&quot;&gt;
&lt;param value=&quot;http://www.youtube.com/v/1gibh_Vjaco&amp;amp;hl=en&amp;amp;fs=1&quot; name=&quot;movie&quot; /&gt;
&lt;param value=&quot;true&quot; name=&quot;allowFullScreen&quot; /&gt;&lt;embed width=&quot;425&quot; height=&quot;344&quot; allowfullscreen=&quot;true&quot; type=&quot;application/x-shockwave-flash&quot; src=&quot;http://www.youtube.com/v/1gibh_Vjaco&amp;amp;hl=en&amp;amp;fs=1&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;</description><pubDate>Wed, 27 Aug 2008 14:47:00 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2008/08/27/An-American-CF-developers-adventure-to-Holland-part-1</guid><category>ColdFusion,Jobs</category></item><item><title>Experienced CF Developer needed</title><link>http://cfzen.instantspot.com/blog/2008/08/26/Experienced-CF-Developer-needed</link><description>&lt;p&gt;My job is up for grabs, and it&apos;s the best development job I&apos;ve ever had (and I&apos;ve had quite a few ;-).&lt;/p&gt;
&lt;p&gt;I&apos;m *only* leaving it because I&apos;m moving to Holland (more on that in another post). I have no complaints, but want to make it clear that the job is for people who want to work in a small &quot;.com style&quot; team.&#xa0; The owners are so nice to work for, and it&apos;s truly been a pleasure to have the freedom to design the code creatively, use the new &quot;Enterprise&quot; CF 8 features, see my work directly increase revenue, and get things done quickly without corporate red tape and umpteen levels of middle-management. Below is the job description.&lt;/p&gt;
&lt;p&gt;&quot;We are looking hard for an experienced ColdFusion Developer opening we have to fill immediately. This would be for the lead programmer for the LandsofAmerica.com Network which is the nations largest rural real estate website. We have many cutting-edge applications we are working on and implementing with the latest in ColdFusion 8 in exciting and new ways. &#xa0; &lt;br /&gt;
&lt;br /&gt;
This position needs experience in high traffic websites to manage our 16 million page views across 300 websites including a new partner that has the potential to add another 30% to our traffic numbers in the next 3 months. We have started powering the Farm &amp; Ranch sections on the Houston Chronicle and Texas Monthly as well as new Hearst properties soon. High traffic website management as well as web server/database server optimization experience is a must. Work experience with CF8 and SQL Server 2005 is a big plus. &#xa0; &lt;br /&gt;
&lt;br /&gt;
We are a hard working, small team that gets things done quick and can see results fast. Its a lot of fun! We are growing at a phenomenal rate with our number of listings at 63,000 and just two years ago they were at 2,500. &lt;br /&gt;
&lt;br /&gt;
If you are interested please send your resume and any work youve done in the past two years. A detailed description of the exact work done will be very beneficial in moving this process forward ASAP. If you know of anyone this opportunity might sound interesting to, please forward this on to them. &#xa0; &lt;br /&gt;
&lt;br /&gt;
Great pay, full health coverage, and monthly bonuses. &quot;&lt;/p&gt;
&lt;p&gt;send resumes to &lt;a href=&quot;mailto:allen@landsofamerica.com&quot;&gt;allen@landsofamerica.com&lt;/a&gt;&lt;/p&gt;</description><pubDate>Tue, 26 Aug 2008 14:12:00 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2008/08/26/Experienced-CF-Developer-needed</guid><category>ColdFusion,SQL Server 2005,Jobs</category></item><item><title>RegEx to find SQL in code without CFQueryParam</title><link>http://cfzen.instantspot.com/blog/2008/07/16/RegEx-to-find-SQL-in-code-without-CFQueryParam</link><description>&lt;p&gt;I know it&apos;s far from perfect (that&apos;s partly why I&apos;m posting - so you can show me the light), but here&apos;s a RegEx I&apos;m using in Eclipse to find all the places in our code where we didn&apos;t use CFQueryParam around variables (shame, shame).  Please let me know if you see ways to improve it.&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;\s+(where|set)\s+[a-z_\.]+\s+(like|\=)\s+&apos;?%?#[a-z&amp;quot;_&apos;\.\(\)\+\/]+#%?&apos;?&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;And can someone help me figure out how&amp;nbsp; to make this Regex include CF variables passed in to INSERT statements?&lt;/p&gt;
&lt;p&gt;TIA&lt;/p&gt;</description><pubDate>Wed, 16 Jul 2008 20:35:00 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2008/07/16/RegEx-to-find-SQL-in-code-without-CFQueryParam</guid><category>ColdFusion,CFEclipse,Regex</category></item><item><title>Paginating Records in CF with One SQL Server 2005 call (update 1)</title><link>http://cfzen.instantspot.com/blog/2008/06/09/Paginating-Records-in-CF-with-One-SQL-Server-2005-call-update-1</link><description>&lt;p&gt;I&apos;ve been meaning to update folks on the excellent use I&apos;ve been getting out of this way of paginating records with SQL Server 2005 via CF, and James Allen&apos;s comment today gave me an excuse to finally update folks:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;Note that I&apos;ve been using this method in production at www.LandsofAmerica.com - see some &lt;a href=&quot;http://www.landsofamerica.com/america/land-for-sale/index.cfm?PageNum=7&amp;amp;sqft=0&amp;amp;sqft=10000000&amp;amp;Price=0&amp;amp;Price=10000000000&amp;amp;GetRes=Search+for+Property&quot;&gt;example search results&lt;/a&gt;, as well as all our sister sites: www.landsofTexas.com, www.landsofCalifornia.com, etc.  Our combined network gets upwards of 15 ColdFusion requests per second, and this dynamic stored procedure has held up extremely well, despite the enormous load and wide variety of possible WHERE clauses in the search.&lt;/li&gt;
    &lt;li&gt;And now to answer James&apos;s comment, &amp;quot;I&apos;ve been using your SP extensively around my new site and it&apos;s working great. However, I am now tring to get it to work with a table join and I just can&apos;t get it to work with a table or alias prefix (in the columns parameter).&amp;quot; - The &amp;quot;sample DAO CFC method&amp;quot; code below should give you what you need to fix the issue you refer to.  :)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;First, the Stored Procedure SQL again:&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;USE [propertyControlCenter]
GO
/****** Object:  StoredProcedure [dbo].[sproc_pagination]    Script Date: 06/09/2008 11:28:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- ================================================== 
-- Author:        Aaron Longnion 
-- Create date: 10/18/2007 
-- Description:    A gereral-use way of dynamically 
--        creating SQL to easily paginate the results; 
--        also includes a total record count based on 
--        the search criteria in the WHERE clause 
-- ================================================== 
CREATE PROCEDURE [dbo].[sproc_pagination] 
    -- Add the parameters for the stored procedure here 
    @SqlColumns VARCHAR(MAX), 
    @SqlFriendlyColumns VARCHAR(MAX), 
    @SqlTableClause VARCHAR(MAX), 
    @StartRow INT, 
    @EndRow INT, 
    @SqlWhere VARCHAR(MAX), 
    @SqlRowNumOrderBy VARCHAR(MAX), 
    @SqlOuterOrderBy VARCHAR(MAX) 
AS 
DECLARE @rsSQL NVARCHAR(MAX) 
DECLARE @rcSQL NVARCHAR(MAX) 
BEGIN 
    -- SET NOCOUNT ON added to prevent extra result sets from 
    -- interfering with SELECT statements. 
    SET NOCOUNT ON; 
    -- build pagination SQL, using StartRow and EndRow to determine 
    -- which results to output 
    SET @rsSQL = N&apos; WITH tempTable AS ( &apos; + 
        N&apos; SELECT &apos; + 
            @SqlColumns + 
        N&apos; , ROW_NUMBER() OVER(ORDER BY &apos; + 
            @SqlRowNumOrderBy + 
        N&apos; ) AS RowNumber &apos; + 
        N&apos; FROM &apos; + 
            @SqlTableClause 
    IF @SqlWhere + &apos;&apos; &amp;lt;&amp;gt; &apos;&apos; 
        BEGIN 
            SET @rsSQL = @rsSQL +                  
                N&apos; WHERE &apos; + 
                    @SqlWhere 
        END 
    SET @rsSQL = @rsSQL + 
        N&apos; ) SELECT &apos; + 
            @SqlFriendlyColumns + 
        N&apos; FROM tempTable &apos; + 
        N&apos; WHERE RowNumber &amp;gt;= &apos; + 
            CAST(@StartRow AS NVARCHAR(32)) + 
        N&apos; AND RowNumber &amp;lt;= &apos; + 
            CAST(@EndRow AS NVARCHAR(32)) + 
        N&apos; ORDER BY &apos; + 
            @SqlOuterOrderBy 
     
    -- uncomment PRINT to debug 
    --PRINT @rsSQL 
    EXEC sp_executesql @rsSQL 
    -- build second recordset simple for the count 
    SET @rcSQL = 
            N&apos;SELECT COUNT(*) AS CountAll FROM &apos; + 
                @SqlTableClause 
    IF @SqlWhere + &apos;&apos; &amp;lt;&amp;gt; &apos;&apos; 
        BEGIN 
            SET @rcSQL = @rcSQL +                  
                N&apos; WHERE &apos; + 
                    @SqlWhere 
        END 
     
    EXEC sp_executesql  @rcSQL     
    SET NOCOUNT OFF; 
END 

PRINT &apos;sproc_pagination created&apos;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Second, some sample Gateway CFC method code:&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;	&amp;lt;cffunction name=&amp;quot;searchInventory&amp;quot;
				output=&amp;quot;false&amp;quot;
				access=&amp;quot;public&amp;quot;
				returntype=&amp;quot;struct&amp;quot;
				hint=&amp;quot;Returns total count and recordset based on search criteria&amp;quot;&amp;gt;

		&amp;lt;cfargument name=&amp;quot;SearchCrit&amp;quot;
					required=&amp;quot;true&amp;quot;
					type=&amp;quot;struct&amp;quot;
					hint=&amp;quot;Search criteria, usually passed in from the URL scope&amp;quot; /&amp;gt;

		&amp;lt;cfset var retStruct = StructNew() /&amp;gt;

		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.SiteStateID&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.State_ID&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.Region_ID&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.County_ID&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.Style&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.Style_ID&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.SqFt&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.Price&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.AuctionDateStart&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;#DateFormat(Now(), &apos;yyyy-mm-dd&apos;)#&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.AuctionDateEnd&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.ListingType&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.PageNum&amp;quot; type=&amp;quot;numeric&amp;quot; default=&amp;quot;1&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.RecordsPerPage&amp;quot; type=&amp;quot;numeric&amp;quot; default=&amp;quot;15&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.sortby&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;sqft&amp;quot; /&amp;gt;
		&amp;lt;cfparam name=&amp;quot;Arguments.SearchCrit.sortbyDirection&amp;quot; type=&amp;quot;string&amp;quot; default=&amp;quot;DESC&amp;quot; /&amp;gt;

		&amp;lt;!--- derive start and end rows ---&amp;gt;
		&amp;lt;cfset Arguments.StartRow = ( (Arguments.SearchCrit.PageNum-1) * Arguments.SearchCrit.RecordsPerPage )+1 /&amp;gt;
		&amp;lt;cfset Arguments.EndRow = (Arguments.StartRow + Arguments.SearchCrit.RecordsPerPage)-1 /&amp;gt;

		&amp;lt;cfset retStruct = DAO.searchInventory( ArgumentCollection=Arguments ) /&amp;gt;

		&amp;lt;cfset retStruct.PagingData = Server.Utilities.Toolbox.getPagingLinks(
															RecordsPerPage = Arguments.SearchCrit.RecordsPerPage
															, RecordCount = retStruct.RC
															, NumberOfLinks = 10
															, RecordLimit = 1000000
															, QSItemsToStrip = &amp;quot;messageCode,searchIt&amp;quot;
															) /&amp;gt;

		&amp;lt;cfreturn retStruct /&amp;gt;

	&amp;lt;/cffunction&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Third, a sample DAO CFC method. &lt;strong&gt;This is the key: see how the &amp;quot;friendly&amp;quot; (no table aliases) names of the columns are in the &amp;quot;local.SqlFriendlyCols&amp;quot; section.  Notice how the column names in the &amp;quot;local.SqlCols&amp;quot; clause contain references to table aliases in &amp;quot;local.SqlTableClause&amp;quot;.  &lt;/strong&gt;The only caveat for this, which I haven&apos;t found a work-around yet, is that you&apos;ll get an &amp;quot;ambiguous column&amp;quot; SQL error if you have a JOIN and try to sort by a column that does not have a unique name :&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;	&amp;lt;cffunction name=&amp;quot;searchInventory&amp;quot; access=&amp;quot;package&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;struct&amp;quot;&amp;gt;

		&amp;lt;cfset Var local = StructNew()&amp;gt;

		&amp;lt;!--- columns ---&amp;gt;
        &amp;lt;cfsavecontent variable=&amp;quot;local.SqlCols&amp;quot;&amp;gt;
            I.listing_city,
			ST.State_name,
			ST.State_shortCode,
			S.listing_type,
			I.listing_price,
			I.listing_photo,
			I.listing_id,
			I.listing_state_id,
			I.listing_lot_size,
			I.listing_county_id,
			C.county_name
        &amp;lt;/cfsavecontent&amp;gt;

		&amp;lt;!--- friendly cols (if no JOINs/aliased table names, inherit from SqlCols above) ---&amp;gt;
        &amp;lt;cfsavecontent variable=&amp;quot;local.SqlFriendlyCols&amp;quot;&amp;gt;
            listing_city,
			State_name,
			State_shortCode,
			listing_type,
			listing_price,
			listing_photo,
			listing_id,
			listing_state_id,
			listing_lot_size,
			listing_county_id,
			county_name
        &amp;lt;/cfsavecontent&amp;gt;

		&amp;lt;!--- tables ---&amp;gt;
		&amp;lt;cfsavecontent variable=&amp;quot;local.SqlTableClause&amp;quot;&amp;gt;
				listing_(nolock) I
			INNER JOIN
				listing_types(NOLOCK) S
				ON S.listing_type_ID = I.listing_type_ID
			INNER JOIN
				counties(nolock) C
				ON C.County_ID = I.listing_County_ID
			INNER JOIN
				states(NOLOCK) ST
				ON ST.State_ID = I.listing_State_ID			
		&amp;lt;/cfsavecontent&amp;gt;

		&amp;lt;!--- conditions ---&amp;gt;
        &amp;lt;cfoutput&amp;gt;
            &amp;lt;cfsavecontent variable=&amp;quot;local.SqlWhere&amp;quot;&amp;gt;
				I.listing_Active = 1
				AND I.listing_Acct_Active = 1
				AND I.listing_Status = 0
				&amp;lt;!--- dynamic info ---&amp;gt;
				&amp;lt;cfif Len(Arguments.SearchCrit.siteStateID)&amp;gt;
					AND I.listing_state_id = #Arguments.SearchCrit.siteStateID#
				&amp;lt;/cfif&amp;gt;
				&amp;lt;cfif ListLen(Arguments.SearchCrit.State_ID)&amp;gt;
					AND I.listing_state_id IN(#Arguments.SearchCrit.State_ID#)
				&amp;lt;/cfif&amp;gt;
				&amp;lt;cfif ListLen(Arguments.SearchCrit.Region_ID)&amp;gt;
					AND C.listing_Region_id IN(#Arguments.SearchCrit.Region_ID#)
				&amp;lt;/cfif&amp;gt;
				&amp;lt;cfif ListLen(Arguments.SearchCrit.County_ID)&amp;gt;
					AND I.listing_County_id IN(#Arguments.SearchCrit.County_ID#)
				&amp;lt;/cfif&amp;gt;
				&amp;lt;cfif ListLen(Arguments.SearchCrit.listing_type)&amp;gt;
					AND S.listing_type_id IN(#Arguments.SearchCrit.listing_type#)
				&amp;lt;cfelseif ListLen(Arguments.SearchCrit.listing_type_ID)&amp;gt;
					AND S.listing_type_id IN(#Arguments.SearchCrit.listing_type_ID#)
				&amp;lt;/cfif&amp;gt;
				&amp;lt;cfif ListLen(Arguments.SearchCrit.SqFt)&amp;gt;
					AND I.listing_size &amp;gt;= #Val(ListFirst(Arguments.SearchCrit.listing_size))#
					AND I.listing_lot_size &amp;lt;= #Val(ListLast(Arguments.SearchCrit.listing_size))#
				&amp;lt;/cfif&amp;gt;
				
				&amp;lt;cfif ListLen(Arguments.SearchCrit.listing_Price)&amp;gt;
					AND I.listing_Price &amp;gt;= #Val(ListFirst(Arguments.SearchCrit.listing_Price))#
					AND I.listing_Price &amp;lt;= #Val(ListLast(Arguments.SearchCrit.listing_Price))#
				&amp;lt;/cfif&amp;gt;
            &amp;lt;/cfsavecontent&amp;gt;
        &amp;lt;/cfoutput&amp;gt;

		&amp;lt;!--- order ---&amp;gt;
		&amp;lt;cfoutput&amp;gt;
	        &amp;lt;cfsavecontent variable=&amp;quot;local.SqlRowNumOrderBy&amp;quot;&amp;gt;
	            #Arguments.SearchCrit.sortby# #Arguments.SearchCrit.sortbyDirection#
	        &amp;lt;/cfsavecontent&amp;gt;
			&amp;lt;!--- used for order column that has an alias prefix ---&amp;gt;
	        &amp;lt;cfsavecontent variable=&amp;quot;local.SqlOuterOrderBy&amp;quot;&amp;gt;
	            #ListLast(local.SqlRowNumOrderBy, &amp;quot;.&amp;quot;)#
	        &amp;lt;/cfsavecontent&amp;gt;
		&amp;lt;/cfoutput&amp;gt;

		&amp;lt;!--- dynamically get the data based on the SQL built above ---&amp;gt;
        &amp;lt;cfset local.returnStruct = Server.DAO.Common.getPaginatedData(	SqlCols = local.SqlCols,
																		SqlFriendlyCols = local.SqlFriendlyCols,
																		SqlTableClause = local.SqlTableClause,
																		StartRow = Arguments.StartRow,
																		EndRow = Arguments.EndRow,
																		SqlWhere = local.SqlWhere,
																		SqlRowNumOrderBy = local.SqlRowNumOrderBy,
																		SqlOuterOrderBy = local.SqlOuterOrderBy ) /&amp;gt;

		&amp;lt;cfreturn local.returnStruct /&amp;gt;

	&amp;lt;/cffunction&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
And finally, the getPaginatedData() method:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;	&amp;lt;cffunction name=&amp;quot;getPaginatedData&amp;quot; access=&amp;quot;public&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;struct&amp;quot; hint=&amp;quot;generic way to get pagination data from the dB&amp;quot;&amp;gt;

		&amp;lt;cfargument name=&amp;quot;SqlCols&amp;quot;
					type=&amp;quot;string&amp;quot;
					required=&amp;quot;true&amp;quot;
					hint=&amp;quot;list of table columns (&apos;col1, col2, col3&apos;, &apos;a.col1, b.col2, c.col3&apos;, or &apos;a.col1 AS acol, b.col2 AS bcol, (SELECT c.col3 FROM c_table) AS subCol3&apos; are all acceptable&amp;quot; /&amp;gt;

		&amp;lt;cfargument name=&amp;quot;SqlFriendlyCols&amp;quot;
					type=&amp;quot;string&amp;quot;
					required=&amp;quot;true&amp;quot;
					hint=&amp;quot;list of table columns (&apos;col1, col2, col3&apos; is acceptable&amp;quot; /&amp;gt;

		&amp;lt;cfargument name=&amp;quot;SqlTableClause&amp;quot;
					type=&amp;quot;string&amp;quot;
					required=&amp;quot;true&amp;quot;
					hint=&amp;quot;list of table columns (most JOINs and sub-SELECTs are acceptable&amp;quot; /&amp;gt;

		&amp;lt;cfargument name=&amp;quot;StartRow&amp;quot;
					type=&amp;quot;numeric&amp;quot;
					required=&amp;quot;true&amp;quot;
					hint=&amp;quot;beginning row number to display&amp;quot; /&amp;gt;
		&amp;lt;cfargument name=&amp;quot;EndRow&amp;quot;
					type=&amp;quot;string&amp;quot;
					required=&amp;quot;true&amp;quot;
					hint=&amp;quot;last row number to display &amp;quot; /&amp;gt;

		&amp;lt;cfargument name=&amp;quot;SqlWhere&amp;quot;
					type=&amp;quot;string&amp;quot;
					required=&amp;quot;true&amp;quot;
					hint=&amp;quot;WHERE clause filters&amp;quot; /&amp;gt;

		&amp;lt;cfargument name=&amp;quot;SqlRowNumOrderBy&amp;quot;
					type=&amp;quot;string&amp;quot;
					required=&amp;quot;true&amp;quot;
					hint=&amp;quot;usually the PK of the primary table&amp;quot; /&amp;gt;

		&amp;lt;cfargument name=&amp;quot;SqlOuterOrderBy&amp;quot;
					type=&amp;quot;string&amp;quot;
					required=&amp;quot;true&amp;quot;
					hint=&amp;quot;chose from the columns from SqlFriendlyCols&amp;quot; /&amp;gt;

		&amp;lt;cfset var returnStruct = StructNew() /&amp;gt;

		&amp;lt;cfstoredproc procedure=&amp;quot;sproc_pagination&amp;quot; datasource=&amp;quot;#Variables.DSNs.primary#&amp;quot;&amp;gt;

			&amp;lt;cfprocparam type=&amp;quot;In&amp;quot; cfsqltype=&amp;quot;CF_SQL_VARCHAR&amp;quot; dbvarname=&amp;quot;SqlColumns&amp;quot; value=&amp;quot;#Trim(Arguments.SqlCols)#&amp;quot;&amp;gt;
			&amp;lt;cfprocparam type=&amp;quot;In&amp;quot; cfsqltype=&amp;quot;CF_SQL_VARCHAR&amp;quot; dbvarname=&amp;quot;SqlFriendlyColumns&amp;quot; value=&amp;quot;#Trim(Arguments.SqlFriendlyCols)#&amp;quot;&amp;gt;
			&amp;lt;cfprocparam type=&amp;quot;In&amp;quot; cfsqltype=&amp;quot;CF_SQL_VARCHAR&amp;quot; dbvarname=&amp;quot;SqlTableClause&amp;quot; value=&amp;quot;#Trim(Arguments.SqlTableClause)#&amp;quot;&amp;gt;
			&amp;lt;cfprocparam type=&amp;quot;In&amp;quot; cfsqltype=&amp;quot;CF_SQL_INTEGER&amp;quot; dbvarname=&amp;quot;SqlStartRow&amp;quot; value=&amp;quot;#Arguments.StartRow#&amp;quot;&amp;gt;
			&amp;lt;cfprocparam type=&amp;quot;In&amp;quot; cfsqltype=&amp;quot;CF_SQL_INTEGER&amp;quot; dbvarname=&amp;quot;EndRow&amp;quot; value=&amp;quot;#Arguments.EndRow#&amp;quot;&amp;gt;
			&amp;lt;cfprocparam type=&amp;quot;In&amp;quot; cfsqltype=&amp;quot;CF_SQL_VARCHAR&amp;quot; dbvarname=&amp;quot;SqlWhere&amp;quot; value=&amp;quot;#Trim(Arguments.SqlWhere)#&amp;quot;&amp;gt;
			&amp;lt;cfprocparam type=&amp;quot;In&amp;quot; cfsqltype=&amp;quot;CF_SQL_VARCHAR&amp;quot; dbvarname=&amp;quot;SqlRowNumOrderBy&amp;quot; value=&amp;quot;#Trim(Arguments.SqlRowNumOrderBy)#&amp;quot;&amp;gt;
			&amp;lt;cfprocparam type=&amp;quot;In&amp;quot; cfsqltype=&amp;quot;CF_SQL_VARCHAR&amp;quot; dbvarname=&amp;quot;SqlOuterOrderBy&amp;quot; value=&amp;quot;#Trim(Arguments.SqlOuterOrderBy)#&amp;quot;&amp;gt;
			&amp;lt;!--- return data + count ---&amp;gt;
			&amp;lt;cfprocresult name=&amp;quot;rs&amp;quot; resultset=&amp;quot;1&amp;quot;&amp;gt;
			&amp;lt;cfprocresult name=&amp;quot;recordcount&amp;quot; resultset=&amp;quot;2&amp;quot;&amp;gt;

        &amp;lt;/cfstoredproc&amp;gt;

		&amp;lt;cfset returnStruct.rs = rs /&amp;gt;
        &amp;lt;cfset returnStruct.rc = recordcount.countAll /&amp;gt;

		&amp;lt;cfreturn returnStruct /&amp;gt;

	&amp;lt;/cffunction&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Let me know what you think.&lt;/p&gt;
&lt;p&gt;&lt;div class=&quot;code&quot; &gt;&lt;pre&gt;	&amp;lt;cffunction name=&amp;quot;searchInventory&amp;quot; access=&amp;quot;package&amp;quot; output=&amp;quot;false&amp;quot; returntype=&amp;quot;struct&amp;quot;&amp;gt;

		&amp;lt;cfset Var local = StructNew()&amp;gt;

		&amp;lt;!--- columns ---&amp;gt;
        &amp;lt;cfsavecontent variable=&amp;quot;local.SqlCols&amp;quot;&amp;gt;
            I.listing_city,
			ST.State_name,
			ST.State_shortCode,
			S.listing_type,
			I.listing_price,
			I.listing_photo,
			I.listing_id,
			I.listing_state_id,
			I.listing_lot_size,
			I.listing_county_id,
			C.county_name
        &amp;lt;/cfsavecontent&amp;gt;

		&amp;lt;!--- friendly cols (if no JOINs/aliased table names, inherit from SqlCols above) ---&amp;gt;
        &amp;lt;cfsavecontent variable=&amp;quot;local.SqlFriendlyCols&amp;quot;&amp;gt;
            listing_city,
			State_name,
			State_shortCode,
			listing_type,
			listing_price,
			listing_photo,
			listing_id,
			listing_state_id,
			listing_lot_size,
			listing_county_id,
			county_name
        &amp;lt;/cfsavecontent&amp;gt;

		&amp;lt;!--- tables ---&amp;gt;
		&amp;lt;cfsavecontent variable=&amp;quot;local.SqlTableClause&amp;quot;&amp;gt;
				listing_(nolock) I
			INNER JOIN
				listing_types(NOLOCK) S
				ON S.listing_type_ID = I.listing_type_ID
			INNER JOIN
				counties(nolock) C
				ON C.County_ID = I.listing_County_ID
			INNER JOIN
				states(NOLOCK) ST
				ON ST.State_ID = I.listing_State_ID			
		&amp;lt;/cfsavecontent&amp;gt;

		&amp;lt;!--- conditions ---&amp;gt;
        &amp;lt;cfoutput&amp;gt;
            &amp;lt;cfsavecontent variable=&amp;quot;local.SqlWhere&amp;quot;&amp;gt;
				I.listing_Active = 1
				AND I.listing_Acct_Active = 1
				AND I.listing_Status = 0
				&amp;lt;!--- dynamic info ---&amp;gt;
				&amp;lt;cfif Len(Arguments.SearchCrit.siteStateID)&amp;gt;
					AND I.listing_state_id = #Arguments.SearchCrit.siteStateID#
				&amp;lt;/cfif&amp;gt;
				&amp;lt;cfif ListLen(Arguments.SearchCrit.State_ID)&amp;gt;
					AND I.listing_state_id IN(#Arguments.SearchCrit.State_ID#)
				&amp;lt;/cfif&amp;gt;
				&amp;lt;cfif ListLen(Arguments.SearchCrit.Region_ID)&amp;gt;
					AND C.listing_Region_id IN(#Arguments.SearchCrit.Region_ID#)
				&amp;lt;/cfif&amp;gt;
				&amp;lt;cfif ListLen(Arguments.SearchCrit.County_ID)&amp;gt;
					AND I.listing_County_id IN(#Arguments.SearchCrit.County_ID#)
				&amp;lt;/cfif&amp;gt;
				&amp;lt;cfif ListLen(Arguments.SearchCrit.listing_type)&amp;gt;
					AND S.listing_type_id IN(#Arguments.SearchCrit.listing_type#)
				&amp;lt;cfelseif ListLen(Arguments.SearchCrit.listing_type_ID)&amp;gt;
					AND S.listing_type_id IN(#Arguments.SearchCrit.listing_type_ID#)
				&amp;lt;/cfif&amp;gt;
				&amp;lt;cfif ListLen(Arguments.SearchCrit.SqFt)&amp;gt;
					AND I.listing_size &amp;gt;= #Val(ListFirst(Arguments.SearchCrit.listing_size))#
					AND I.listing_lot_size &amp;lt;= #Val(ListLast(Arguments.SearchCrit.listing_size))#
				&amp;lt;/cfif&amp;gt;
				
				&amp;lt;cfif ListLen(Arguments.SearchCrit.listing_Price)&amp;gt;
					AND I.listing_Price &amp;gt;= #Val(ListFirst(Arguments.SearchCrit.listing_Price))#
					AND I.listing_Price &amp;lt;= #Val(ListLast(Arguments.SearchCrit.listing_Price))#
				&amp;lt;/cfif&amp;gt;
            &amp;lt;/cfsavecontent&amp;gt;
        &amp;lt;/cfoutput&amp;gt;

		&amp;lt;!--- order ---&amp;gt;
		&amp;lt;cfoutput&amp;gt;
	        &amp;lt;cfsavecontent variable=&amp;quot;local.SqlRowNumOrderBy&amp;quot;&amp;gt;
	            #Arguments.SearchCrit.sortby# #Arguments.SearchCrit.sortbyDirection#
	        &amp;lt;/cfsavecontent&amp;gt;
			&amp;lt;!--- used for order column that has an alias prefix ---&amp;gt;
	        &amp;lt;cfsavecontent variable=&amp;quot;local.SqlOuterOrderBy&amp;quot;&amp;gt;
	            #ListLast(local.SqlRowNumOrderBy, &amp;quot;.&amp;quot;)#
	        &amp;lt;/cfsavecontent&amp;gt;
		&amp;lt;/cfoutput&amp;gt;

		&amp;lt;!--- dynamically get the data based on the SQL built above ---&amp;gt;
        &amp;lt;cfset local.returnStruct = Server.DAO.Common.getPaginatedData(	SqlCols = local.SqlCols,
																		SqlFriendlyCols = local.SqlFriendlyCols,
																		SqlTableClause = local.SqlTableClause,
																		StartRow = Arguments.StartRow,
																		EndRow = Arguments.EndRow,
																		SqlWhere = local.SqlWhere,
																		SqlRowNumOrderBy = local.SqlRowNumOrderBy,
																		SqlOuterOrderBy = local.SqlOuterOrderBy ) /&amp;gt;

		&amp;lt;cfreturn local.returnStruct /&amp;gt;

	&amp;lt;/cffunction&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;</description><pubDate>Mon, 09 Jun 2008 16:18:00 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2008/06/09/Paginating-Records-in-CF-with-One-SQL-Server-2005-call-update-1</guid><category>ColdFusion,SQL Server 2005</category></item><item><title>Does your email validation allow plus signs?</title><link>http://cfzen.instantspot.com/blog/2008/04/30/Does-your-email-validation-allow-plus-signs</link><description>&lt;p&gt;Go ahead and check. I&apos;ll wait.&lt;/p&gt;
&lt;p&gt;&#xa0;&lt;/p&gt;
&lt;p&gt;I&apos;m not kidding, go ahead.&#xa0; It&apos;ll be alright.&#xa0; You&apos;re not the only one whose says made_up_account_here+do_not_spam_me@gmail.com is an invalid address.&lt;/p&gt;
&lt;p&gt;&#xa0;&lt;/p&gt;
&lt;p&gt;&quot;er, are you sure a plus sign is valid?&quot;, you ask?&#xa0; Yep.&#xa0; I&apos;m certain.&#xa0; All the time, I use my gmail accounts nifty feature that allows me to use, say, made_up_account_here+twitter@gmail.com to filter emails from twitter to a twitter &quot;label&quot;.&#xa0; But some sites, especially blog sites, always tell me my email is invalid when I put in the plus sign.&#xa0; Well, your site is wrong, and I&apos;d appreciate it if you&apos;d fix it.&#xa0; ;-)&#xa0; (when you get time of course)&lt;/p&gt;
&lt;p&gt;&#xa0;&lt;/p&gt;
&lt;p&gt;anyways, after you checked, what did you find?&lt;/p&gt;</description><pubDate>Wed, 30 Apr 2008 18:21:00 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2008/04/30/Does-your-email-validation-allow-plus-signs</guid><category>ColdFusion</category></item><item><title>Bad Day at the Office video</title><link>http://cfzen.instantspot.com/blog/2008/01/15/Bad-Day-at-the-Office-video</link><description>&lt;p&gt;I usually don&apos;t post stuff like this, but since I had a good laugh (cuz can&apos;t we all relate?) and wanted to try the embed feature on the new InstantSpot 2.0 software.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;object width=&quot;448&quot; height=&quot;336&quot;&gt;
&lt;param value=&quot;http://www.glumbert.com/embed/baddayoffice&quot; name=&quot;movie&quot; /&gt;
&lt;param value=&quot;transparent&quot; name=&quot;wmode&quot; /&gt;&lt;embed width=&quot;448&quot; height=&quot;336&quot; wmode=&quot;transparent&quot; type=&quot;application/x-shockwave-flash&quot; src=&quot;http://www.glumbert.com/embed/baddayoffice&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;div&gt;&lt;a href=&quot;http://www.glumbert.com/media/baddayoffice&quot;&gt;glumbert - Bad Day at the Office&lt;/a&gt;&lt;/div&gt;</description><pubDate>Tue, 15 Jan 2008 19:35:00 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2008/01/15/Bad-Day-at-the-Office-video</guid><category>ColdFusion,Videos</category></item><item><title>Help requested: best way to batch process images?</title><link>http://cfzen.instantspot.com/blog/2008/01/03/Help-requested-best-way-to-batch-process-images</link><description>&lt;p&gt;
A help request to anyone who has experience with heavy batch processing of images.&amp;nbsp; Below are the requirements, and based on these can anyone tell me if I&amp;#39;m doing the wrong thing by proposing that we use CF 8, with it&amp;#39;s new cfimage tag and related image functions?
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;get a recordset of potentially hundreds of thousands of URLs to images (mostly JPEGs and PNGs, with potentially some TIFFs and BMPs) &lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;iterate over those URLs, resize each image to &amp;quot;web-optimal&amp;quot; sizes, and save those to disk in an organized directory structure&lt;/li&gt;
	&lt;li&gt;batch processing should not stop just because of 404&amp;#39;s or other issues: in CF, obviously I could just do try/catch exception-handling to deal with such issues gracefully)&lt;/li&gt;
	&lt;li&gt;log, or otherwise report, details of successes and failures during the batch process&lt;/li&gt;
	&lt;li&gt;log, or otherwise report, fatal errors&lt;/li&gt;
	&lt;li&gt;Windows 2003 compatible&lt;br /&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
I welcome any and all suggestions.&amp;nbsp; I don&amp;#39;t know if there is some type of image processing software that can do this type of batch processing more efficiently than CF 8, or if we would get significant gains from using Java, .NET, perl or other languages directly?&amp;nbsp; (note that we have very limited experience with non-CF programming, so we&amp;#39;d only consider others if we&amp;#39;ll see significant gains)
&lt;/p&gt;
&lt;p&gt;
TIA for any help.&amp;nbsp; ;-}&amp;nbsp;
&lt;/p&gt;
</description><pubDate>Thu, 03 Jan 2008 15:04:52 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2008/01/03/Help-requested-best-way-to-batch-process-images</guid><category>ColdFusion</category></item><item><title>a CFeMmy nomination - wow!</title><link>http://cfzen.instantspot.com/blog/2007/12/19/a-CFeMmy-nomination--wow</link><description>&lt;p&gt;
I&amp;#39;m humbled to be nominated for a CFeMmy award, the 8th category called &amp;quot;Best Newcomer (CF Blog that started in 2007)&amp;quot;.  Thanks to whomever got me on the list, as it&amp;#39;s a truly excellent list, and I&amp;#39;m glad it&amp;#39;s a long one since that means our CF community is growing quickly.
&lt;/p&gt;
&lt;p&gt;
Vote at &lt;a href=&quot;http://cfsilence.com/soundings/survey.cfm?id=EDCDE15B-FF9E-13A7-FC217BCDEDB0CC25&quot;&gt;http://cfsilence.com/soundings/survey.cfm?id=EDC...&lt;/a&gt;  
&lt;/p&gt;
&lt;p&gt;
Also, thanks to the folks at InstantSpot.com for hosting my blog.  Thanks to cfsilence.com for hosting the CFeMmys, and thanks to the CF community in general for all that you do and keeping me in a good job by supporting ColdFusion!
&lt;/p&gt;
&lt;p&gt;
Note that I finally added an &lt;a href=&quot;http://cfzen.instantspot.com/index.cfm/show/About&quot;&gt;About&lt;/a&gt;  section to my blog, in case your interested in a brief description of my background.
&lt;/p&gt;
&lt;p&gt;
Peace. 
&lt;/p&gt;
</description><pubDate>Wed, 19 Dec 2007 17:27:52 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/12/19/a-CFeMmy-nomination--wow</guid><category>ColdFusion</category></item><item><title>CF 8 Server Monitor vs. SeeFusion 4.0.6</title><link>http://cfzen.instantspot.com/blog/2007/11/27/CF-8-Server-Monitor-vs-SeeFusion-406</link><description>&lt;p&gt;
I haven&amp;#39;t seen a concise article on the primary (IMHO) similarities and differences between the CF 8 Server Monitor and SeeFusion.&amp;nbsp; I have 2 years experience with SeeFusion, and have used nearly all of it&amp;#39;s features, and I have been researching and tinkering with the Server Monitor tools of CF 8 for the past few months.&amp;nbsp; Here&amp;#39;s my top 10 lists of what I&amp;#39;ve found to be most important:
&lt;/p&gt;
&lt;h2&gt;Primary Similarities&lt;/h2&gt;
&lt;ol&gt;
	&lt;li&gt;Real-time monitoring UI&lt;/li&gt;
	&lt;li&gt;Can toggle Monitoring ON/OFF on the fly (no CF server restart)&lt;/li&gt;
	&lt;li&gt;Active request tracking&lt;/li&gt;
	&lt;li&gt;Alerts which can send emails based on various CF events&lt;/li&gt;
	&lt;li&gt;CF stack traces&lt;/li&gt;
	&lt;li&gt;&amp;quot;Kill&amp;quot; command available to stop long-running/hung requests&lt;/li&gt;
	&lt;li&gt;Reporting on slow pages and queries&lt;/li&gt;
	&lt;li&gt;Filtering out pages not to monitor&lt;/li&gt;
	&lt;li&gt;Can forcibly run Garbage Collection at any time&lt;/li&gt;
	&lt;li&gt;API available to program against&lt;br /&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Primary Differences&lt;br /&gt;
&lt;/h2&gt;
&lt;h4&gt;CF 8 Server Monitor&lt;br /&gt;
&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;Server and Application scope details&lt;/li&gt;
	&lt;li&gt;UI includes CF Error reporting&lt;/li&gt;
	&lt;li&gt;CFThread Monitoring&lt;/li&gt;
	&lt;li&gt;Template Cache status&lt;/li&gt;
	&lt;li&gt;Detailed Memory Usage Tracking&lt;/li&gt;
	&lt;li&gt;CF Scope details&lt;/li&gt;
	&lt;li&gt;Cached Query status/details&lt;/li&gt;
	&lt;li&gt;Database Pool status&lt;/li&gt;
	&lt;li&gt;Ability to create CF &amp;quot;Snapshots&amp;quot;&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Alerts can also call a CFC, Dump Snapshots, and reject new requests&lt;br /&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;SeeFusion&lt;br /&gt;
&lt;/h4&gt;
&lt;ol&gt;
	&lt;li&gt;Decoupled from CF - if CF goes down or hangs, SeeFusion is not affected and continues to get all information&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Counters: real-time view of current and recent requests&lt;/li&gt;
	&lt;li&gt;Log large queries to stdout (based on # of rows)&lt;/li&gt;
	&lt;li&gt;SeeFusion.trace() function for more granular, code-level request monitoring&lt;/li&gt;
	&lt;li&gt;Streaming debugging output, with filtering and IP-restriction&lt;/li&gt;
	&lt;li&gt;Logging of slow requests to a database via JDBC&lt;/li&gt;
	&lt;li&gt;Logging of slow queries to a database via JDBC, including query exceptions&lt;/li&gt;
	&lt;li&gt;Logging of SeeFusion counters to a database via JDBC&lt;/li&gt;
	&lt;li&gt;Optional/configurable logging of user-defined events to a database via JDBC&lt;/li&gt;
	&lt;li&gt;Configurable rowLimit parameter for limiting query result sets (and preventing OutOfMemory errors)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;strong&gt;Sources:&lt;/strong&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;http://seefusion.com/index.cfm?do=c.versions&lt;/li&gt;
	&lt;li&gt;https://admin.adobe.acrobat.com/_a227210/p59838964/&lt;/li&gt;
	&lt;li&gt;http://www.adobe.com/devnet/coldfusion/articles/monitoring_pt2_02.html&lt;/li&gt;
&lt;/ul&gt;
I think I got all the big items, but are there items I missed that are important to you?&lt;br /&gt;
 
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
</description><pubDate>Tue, 27 Nov 2007 17:43:10 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/11/27/CF-8-Server-Monitor-vs-SeeFusion-406</guid><category>ColdFusion</category></item><item><title>Cheap CF 8 Beyond the Basics Training</title><link>http://cfzen.instantspot.com/blog/2007/10/24/Cheap-CF-8-Beyond-the-Basics-Training</link><description>&lt;p&gt;
Some excellent new training at Lynda.com, including CFEclipse setup, CF 8 line debugger, using the CFC Value Object wizard, DAO and Gateway Design Patterns, creating shopping carts, structured exception handling, SOAP Web Services and XML, ActionScript in Flash Forms, AJAX, and CF Presentations!
&lt;/p&gt;
&lt;p&gt;
You could easily spend thousands of dollars getting lower quality (though, in person) training elsewhere...
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://movielibrary.lynda.com/html/modPage.asp?ID=432&quot;&gt;http://movielibrary.lynda.com/html/modPage.asp?ID=432&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Happy learning!&amp;nbsp;
&lt;/p&gt;
</description><pubDate>Wed, 24 Oct 2007 13:13:10 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/10/24/Cheap-CF-8-Beyond-the-Basics-Training</guid><category>ColdFusion</category></item><item><title>Paginating Records in CF with One SQL Server 2005 call</title><link>http://cfzen.instantspot.com/blog/2007/10/11/Paginating-Records-in-CF-with-One-SQL-Server-2005-call</link><description>&lt;p&gt;
In response to Ben Nadel&amp;#39;s (http://www.bennadel.com/index.cfm?dax=blog:990.view) interesting post about pagination via one SQL Server call, I&amp;#39;ve outlined below a strategy I&amp;#39;ve worked up over the last couple of days that I prefer.
&lt;/p&gt;
&lt;p&gt;
Features of what I&amp;#39;ll call the &amp;quot;CF/SQL Server 2005 Sproc Pagination&amp;quot; solution are:
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;It&amp;#39;s a general solution (one sproc supports nearly any pagination you might want to do)&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;supports most select statements, including INNER and OUTER joins and sub-selects, though not UNIONs; note this hasn&amp;#39;t been thoroughly tested &lt;/li&gt;
	&lt;li&gt;supports most basic WHERE clauses&lt;/li&gt;
	&lt;li&gt;Stored Procedures nearly always run faster on SQL Server 2005 than the equivalent cfquery SQL&lt;/li&gt;
	&lt;li&gt;I&amp;#39;m sure it&amp;#39;s not perfect, as I&amp;#39;ve only recently completed this initial pass;  it needs much more testing.  I&amp;#39;m all ears to any suggestions/bugs that people see.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
The sproc (updated on 11/5/2007: 
&lt;/p&gt;
&lt;font face=&quot;courier new,courier&quot;&gt;[codeShare novc432b]&lt;/font&gt;
&lt;p&gt;
And with simply passing the Page (pg) in the URL, you can derive the Start and End rows with something like the following in your Gateway CFC:
&lt;/p&gt;
&lt;p&gt;
&lt;!--- derive start and end rows ---&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
[codeShare nov10d92]
&lt;/p&gt;
&lt;p&gt;
And in your DAO CFC method: 
&lt;/p&gt;
&lt;p&gt;
&lt;!--- readSearch() ---&gt;[codeShare novd9641]
&lt;/p&gt;
&lt;p&gt;
Thoughts? 
&lt;/p&gt;
</description><pubDate>Thu, 11 Oct 2007 08:29:21 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/10/11/Paginating-Records-in-CF-with-One-SQL-Server-2005-call</guid><category>ColdFusion</category></item><item><title>Nearly 7 hours of Inexpensive ColdFusion 8 Training</title><link>http://cfzen.instantspot.com/blog/2007/08/01/Nearly-7-hours-of-Inexpensive-ColdFusion-8-Training</link><description>&lt;p&gt;
Lynda.com just announced nearly 7 hours of Free ColdFusion 8 Training!
&lt;/p&gt;
&lt;p&gt;
(just &amp;quot;Essential&amp;quot; training so far...)
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://movielibrary.lynda.com/html/modPage.asp?ID=433&quot;&gt;http://movielibrary.lynda.com/html/modPage.asp?ID=433&lt;/a&gt; &amp;nbsp;
&lt;/p&gt;
</description><pubDate>Wed, 01 Aug 2007 15:47:32 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/08/01/Nearly-7-hours-of-Inexpensive-ColdFusion-8-Training</guid><category>ColdFusion</category></item><item><title>CF 8: all the new Tags, Tag Attributes, and Functions</title><link>http://cfzen.instantspot.com/blog/2007/06/18/CF-8-all-the-new-Tags-Tag-Attributes-and-Functions</link><description>&lt;p&gt;
Sam Farmer and Rahul Narula have done some excellent work listing all the new ColdFusion 8 Tags, Tag Attributes, and Functions.  For handy reference, here they are.  Thanks!
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://samfarmer.instantspot.com/blog/index.cfm/2007/6/6/ColdFusion-8-All-the-New-Tags&quot;&gt;All the New Tags&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://samfarmer.instantspot.com/blog/index.cfm/2007/6/18/ColdFusion-8-The-New-Attributes&quot;&gt;All the New Tag Attributes&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://rahulnarula.blogspot.com/2007/06/coldfusion-8-new-function-list.html&quot;&gt;All the New Functions&lt;/a&gt;
&lt;/p&gt;
</description><pubDate>Mon, 18 Jun 2007 16:00:13 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/06/18/CF-8-all-the-new-Tags-Tag-Attributes-and-Functions</guid><category>ColdFusion</category></item><item><title>FREE Flex 3 Beta Preview Training</title><link>http://cfzen.instantspot.com/blog/2007/06/12/FREE-Flex-3-Beta-Preview-Training</link><description>&lt;a href=&quot;http://movielibrary.lynda.com/html/modPage.asp?ID=431&quot;&gt;http://movielibrary.lynda.com/html/modPage.asp?ID=431&lt;/a&gt; 
</description><pubDate>Tue, 12 Jun 2007 16:54:28 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/06/12/FREE-Flex-3-Beta-Preview-Training</guid><category>ColdFusion</category></item><item><title>Four job openings at Lynda.com!</title><link>http://cfzen.instantspot.com/blog/2007/06/05/Four-job-openings-at-Lyndacom</link><description>&lt;p&gt;
I&amp;#39;ve only been here a week, and I can honestly say it&amp;#39;s my favorite job (and I&amp;#39;ve had 5 previous web jobs over the past 7 years).&amp;nbsp; It&amp;#39;s a purely CF shop (the ASP/.NET code is going away completely very shortly), and the small, efficient dev team is excellent.&amp;nbsp; We work fast and hard, but have fun while we&amp;#39;re doing it.
&lt;/p&gt;
&lt;p&gt;
Come join us if that sounds good. Send cover letter and resume to angela@lynda.com or careers@lynda.com.&amp;nbsp; We&amp;#39;re looking to add to our team over the next few months, and would love to hear from you and/or your friends who might be a good fit.
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.lynda.com/jobs/?jid=webdeveloper&quot;&gt;Web Developer&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.lynda.com/jobs/?jid=seniorwebdeveloper&quot;&gt;Senior Web Developer&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.lynda.com/jobs/?jid=webdesigner&quot;&gt;Web Designer&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;http://www.lynda.com/jobs/?jid=directorwebstrategy&quot;&gt;Director of Web Strategy&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
cheers!&lt;br /&gt;
Aaron&amp;nbsp;
&lt;/p&gt;
</description><pubDate>Tue, 05 Jun 2007 15:47:02 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/06/05/Four-job-openings-at-Lyndacom</guid><category>ColdFusion</category></item><item><title>FREE CF 8 Preview on Lynda.com</title><link>http://cfzen.instantspot.com/blog/2007/05/30/FREE-CF-8-Preview-on-Lyndacom</link><description>&lt;p&gt;
I started my new CF job at Lynda.com today.&amp;nbsp; So much to be happy about here, but I&amp;#39;ll post more about that later...
&lt;/p&gt;
&lt;p&gt;
First, I noticed we posted a FREE preview for the CF 8 beta already:
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://movielibrary.lynda.com/html/modPage.asp?ID=426&quot;&gt;http://movielibrary.lynda.com/html/modPage.asp?ID=426&lt;/a&gt; &amp;nbsp;
&lt;/p&gt;
</description><pubDate>Thu, 31 May 2007 01:54:24 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/05/30/FREE-CF-8-Preview-on-Lyndacom</guid><category>ColdFusion</category></item><item><title>CFEclipse: Make Mark Drew Rich Campaign - you with me?</title><link>http://cfzen.instantspot.com/blog/2007/05/15/CFEclipse-Make-Mark-Drew-Rich-Campaign--you-with-me</link><description>&lt;p&gt;
I noticed from the hit counter (or whatever you call it) on the &lt;a href=&quot;http://weblogs.macromedia.com/mxna/index.cfm?query=bySmartCategory&amp;amp;smartCategoryId=1&amp;amp;smartCategoryName=ColdFusion&amp;amp;smartCategoryKey=D0382F3A-9D2B-69E8-C7BC317066FA1CC2&quot;&gt;Adobe XML News Agrregator&lt;/a&gt; that in my previous entry on this, &lt;a href=&quot;http://cfzen.instantspot.com/blog/index.cfm/2007/5/11/CFEclipse-Make-Mark-Drew-Rich-Campaign&quot; class=&quot;EntryTitle&quot;&gt;CFEclipse: Make Mark Drew Rich Campaign&lt;/a&gt;, got over 90 hits.  Sadly, no responses/comments to that entry, so I&amp;#39;m super curious if anyone is with me on this?  I was hoping for some response, even if it&amp;#39;s something like, &amp;quot;you&amp;#39;re crazy, Aaron, the point of free software is that you shouldn&amp;#39;t have to pay for it.  Like, duh!&amp;quot;.  ;)
&lt;/p&gt;
&lt;p&gt;
So, my last attempt at encouragement is to say that I really think we can do something, together, to keep the CFEclipse gravy train chugging along. Each of needs to just give a little.  I&amp;#39;m totally making numbers up here, but you&amp;#39;ll get the idea:
&lt;/p&gt;
&lt;p&gt;
I&amp;#39;m guessing there could be roughly 5,000 regular users of CFEclipse across the world.  If we get the word out, and encourage our fellow CFE users to contribute to Mark Drew (&lt;a href=&quot;http://www.cfeclipse.org/index.cfm?event=page&amp;amp;page=donations&quot;&gt;http://www.cfeclipse.org/index.cfm?event=page&amp;amp;page=donations&lt;/a&gt;), then hopefully we get 1,000 of those 5,000 to donate an average of $10 each (about &amp;pound;5.00 GBP).  
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;1,000 * $10 = $10,000 obviously&lt;/li&gt;
	&lt;li&gt;but to dream a little: 2,000 * $50 = $100,000&lt;/li&gt;
	&lt;li&gt;and beyond...&lt;/li&gt;
&lt;/ul&gt;
So, the question remains: &amp;quot;you with me?&amp;quot; 
</description><pubDate>Tue, 15 May 2007 12:20:02 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/05/15/CFEclipse-Make-Mark-Drew-Rich-Campaign--you-with-me</guid><category>ColdFusion</category></item><item><title>CFEclipse: Make Mark Drew Rich Campaign</title><link>http://cfzen.instantspot.com/blog/2007/05/11/CFEclipse-Make-Mark-Drew-Rich-Campaign</link><description>&lt;p&gt;
Okay, I don&amp;#39;t know why we didn&amp;#39;t think of this before, but the CF community can make continued support for and development of CFEclipse a no-brainer for Mark Drew. He shouldn&amp;#39;t have to ask if he needs to make it a product everyone *has* to pay for (see his post: &lt;a href=&quot;http://www.markdrew.co.uk/blog/index.cfm/2007/4/13/What-would-you-pay-for-Should-CFEclipse-still-be-free&quot;&gt;http://www.markdrew.co.uk/blog/index.cfm/2007/4/13/What-would-you-pay-for-Should-CFEclipse-still-be-free&lt;/a&gt;) He&amp;#39;s the man.  He keeps on adding nifty new features, which benefit us all tremendously.
&lt;/p&gt;
&lt;p&gt;
The man has worked many hours on this for the good of the CF community, and has gotten little in return if he has to question how he can continue.  So, let&amp;#39;s make Mark Rich!
&lt;/p&gt;
&lt;p&gt;
As CF developers we&amp;#39;re a strong group.  We forge ahead bravely when the .NET and Java folks don&amp;#39;t understand us.  We have a fabulous, collaborative blog community.  Let&amp;#39;s band together and do this!
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Donate now.  No really, stop what you&amp;#39;re doing and donate.  It take maybe 5 minutes. &lt;a href=&quot;http://www.cfeclipse.org/index.cfm?event=page&amp;amp;page=donations&quot;&gt;http://www.cfeclipse.org/index.cfm?event=page&amp;amp;page=donations&lt;/a&gt;  (I kicked things off with &amp;pound;50.00 GBP)&lt;/li&gt;
	&lt;li&gt;Make a blog entry called  &amp;quot;Make Mark Drew Rich&amp;quot; Campaign, or something along those lines, and spread the word!&lt;/li&gt;
	&lt;li&gt;Email all your CF buddies and get them motivated to donate and spread the word.&lt;/li&gt;
	&lt;li&gt;If you&amp;#39;re working for a company, get your boss to have your company pony up some donations.  CFEclipse has saved the company plenty of money since you don&amp;#39;t have to pay for Dreamweaver or another IDE. This should be a pretty easy sell to get your company to pay *something*.&lt;/li&gt;
&lt;/ol&gt;
Good work!  Thanks for your help.  We all benefit when we all give back to Mark Drew... and I have a good feeling we&amp;#39;ll all be rewarded soon with more bug fixes and enhancements.
</description><pubDate>Fri, 11 May 2007 11:24:06 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/05/11/CFEclipse-Make-Mark-Drew-Rich-Campaign</guid><category>ColdFusion</category></item><item><title>here&apos;s my errorHandler.cfm, what do you think?</title><link>http://cfzen.instantspot.com/blog/2007/05/04/heres-my-errorHandlercfm-what-do-you-think</link><description>&lt;p&gt;
Here&amp;#39;s a generic errorHandler custom tag that I worked up recently and can be shared across multiple applications on a server.&amp;nbsp; I know it has some good and some bad points.&amp;nbsp; What do you like or not like about it, other than the fact it&amp;#39;s not a CFC method?
&lt;/p&gt;
&lt;p&gt;
[codeshare may1c4a6]&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I look forward to your feedback.&amp;nbsp;
&lt;/p&gt;
</description><pubDate>Fri, 04 May 2007 19:55:37 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/05/04/heres-my-errorHandlercfm-what-do-you-think</guid><category>ColdFusion</category></item><item><title>Setting a Client Timeout to mimic SessionTimeout</title><link>http://cfzen.instantspot.com/blog/2007/04/27/Setting-a-Client-Timeout-to-mimic-SessionTimeout</link><description>&lt;p&gt;
I just learned today that Hal Helms&amp;#39; site contains a reference to &lt;span&gt;Brian Kotek&amp;#39;s brilliant CustomTag, &lt;/span&gt;ClientTimeout.cfm.&amp;nbsp; In high-traffic sites with clustered CF servers, most folks seem to agree that Client variables using a data source for storage is more scalable than Session variables.&amp;nbsp; But this finally allows one to easily set a &amp;quot;ClientTimeout&amp;quot; globally to the application by putting it in the Application.cfm/.cfc.&amp;nbsp; I&amp;#39;m sure many folks may have already known this, but it&amp;#39;s new to me&amp;nbsp; ;-)
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://halhelms.com/webresources/html/16.cfm&quot;&gt;http://halhelms.com/webresources/html/16.cfm&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
</description><pubDate>Fri, 27 Apr 2007 20:08:47 GMT</pubDate><guid>http://cfzen.instantspot.com/blog/2007/04/27/Setting-a-Client-Timeout-to-mimic-SessionTimeout</guid><category>ColdFusion</category></item></channel></rss>