<?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>ColdFusion Muse - Coldfusion Tips and Techniques</title>
			<link>http://www.coldfusionmuse.com/index.cfm</link>
			<description>Musings and Other Things from CF Guru Mark Kruger</description>
			<language>en-us</language>
			<pubDate>Thu, 02 Sep 2010 20:16:18 -0500</pubDate>
			<lastBuildDate>Mon, 19 Apr 2010 22:00:00 -0500</lastBuildDate>
			<generator>BlogCFC</generator>
			<docs>http://blogs.law.harvard.edu/tech/rss</docs>
			<managingEditor>mkruger@cfwebtools.com</managingEditor>
			<webMaster>mkruger@cfwebtools.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>mkruger@cfwebtools.com</itunes:email>
				<itunes:name></itunes:name>
			</itunes:owner>
			<itunes:image href="" />
			<image>
				<url></url>
				<title>ColdFusion Muse</title>
				<link>http://www.coldfusionmuse.com/index.cfm</link>
			</image>
			<itunes:explicit>no</itunes:explicit>
			
			
			
			
			
			<item>
				<title>MS Throws a Curve: IE 8 and the New Security Message</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2010/4/19/IE8-Security-Message</link>
				<description>
				
				&lt;p&gt;
You have probably seen the special security warning that appears when a page has &quot;a mix&quot; of secure and not secure resources. I recently ran into a usability issue with regard to this message that I thought deserved a quick post on the Muse. Let&apos;s start with an example:
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Mon, 19 Apr 2010 22:00:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2010/4/19/IE8-Security-Message</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>The Boolean-O-Matic: ColdFusion&apos;s Weird Relationship With Truth</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2010/2/5/Booleans.and.Coldfusion</link>
				<description>
				
				&lt;p&gt;Hello muse readers. I apologize for my long hiatus (which means a stretch of time where I was absent - it&apos;s not a size joke).&amp;#160; I have been swamped with closing out the old year and implementing plans for the new year. I&apos;m afraid our little chats were put on the back burner temporarily. However, now that new year has begun I am committed to continuing our friendship. I&apos;d like to start out with something simple. Indeed, some of you may find this to be ColdFusion 101. &lt;/p&gt;

&lt;p&gt;This post is going to discuss Boolean values. A Boolean is one of those datatypes more defined by how it is evaluated than by what it contains. The muse definition is that if something can return a &amp;quot;true&amp;quot; or &amp;quot;false&amp;quot; in the context of a logic statement (cfif) it is a Boolean. It may be other things as well, but it has the properties of a boolean and returns one of 2 states - true or false. Interestingly, every language handles Booleans differently and many of them use the same wild west sort of approach that ColdFusion uses - where several things can be used as Booleans. &lt;/p&gt;

&lt;p&gt;Even if you don&apos;t know it, you use Booleans every time you create a cfif statement. Still, it&apos;s surprising how many advanced developers do not fully grasp all the ways that ColdFusion has of evaluating something as &lt;em&gt;True&lt;/em&gt; or &lt;em&gt;False&lt;/em&gt;. And having said that I am fully aware that some smarty-pants developer will immediately inform me of some new way I haven&apos;t seen before of evaluating true or false (thank you sir, may I have another). &lt;/p&gt;

&lt;p&gt;Anyway, I&apos;d like to take a little journey into the world of Booleans to start off my 2010 blogging. Note: this post has a number of neat &amp;quot;tips and tricks&amp;quot; that you may have not seen before. Whether you choose to use them can depend greatly on your environment, the structure of your code and the standard you are using (especially in a team environment). I&apos;m not advocating for or against, although I have my own preferences. I&apos;m only putting it out there as another arrow in your quiver. So with that caveat taken care of, let&apos;s begin. &lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Fri, 05 Feb 2010 12:28:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2010/2/5/Booleans.and.Coldfusion</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Interesting Mail Headers</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/10/30/exchange-headers-cfmail</link>
				<description>
				
				&lt;p&gt;
	My good friend &lt;a href=&quot;http://jake.cfwebtools.com&quot;&gt;Jake Churchill&lt;/a&gt; was surfing dev shed and he found this &lt;a href=&quot;http://forums.devshed.com/coldfusion-development-84/how-to-add-html-code-to-format-in-cfmail-550571.html&quot;&gt;post&lt;/a&gt; regarding cfmail. The question is pretty easy, but one of the comments further down caught his eye. A user named mackindlays makes the statement that &quot;Many mail services bounce CF generated mails now&quot;.  Personally I do not believe there is any evidence that mail servers bounce CF generated mail any more than .NET generated mail or PHP generated mail etc. Perhaps mail servers score mail that is obviously sent from a web server as &quot;more likely to be spam&quot;. Certainly that was a contention of my previous post on the subject. At any rate, his solution was to spoof the mail headers for Microsoft Exchange using CFMAILPARAM.
&lt;code&gt;
&lt;cfmailparam name=&quot;X-MimeOLE&quot; value=&quot;Produced By Microsoft Exchange V6.5.7226.0&quot;&gt;
&lt;cfmailparam name=&quot;X-MS-Has-Attach&quot; value=&quot;yes&quot;&gt;
&lt;cfmailparam name=&quot;X-MS-TNEF-Correlator&quot; value=&quot;&quot;&gt;
&lt;cfmailparam name=&quot;Content-class&quot; value=&quot;urn&quot;&gt;
&lt;cfmailparam name=&quot;content-classes&quot; value=&quot;message&quot;&gt;
&lt;/code&gt;
I have no idea if this will work or be successful (I&apos;ll let my readers know what I find out). But this rather un-muse like solution is perhaps one more arrow in the quiver of folks trying to send legitimate email.
&lt;/p&gt;
				
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Thu, 30 Oct 2008 13:07:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/10/30/exchange-headers-cfmail</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Solving an Email Send Problem: a Simple, Innovative Approach</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/10/22/innovative-email-sends</link>
				<description>
				
				&lt;p&gt;
	Getting email to go through for your customer or newsletter can be tricky these days. An email has to work pretty hard to make it through all the barriers in its way. The problem is compounded when you have an automated email system like a newsletter or marketing apparatus. Even if you follow all the rules you may still achieve a marginal success rate. One of our customers (Tom Long of &lt;a href=&quot;http://www.digbro.com&quot;&gt;digbro.com&lt;/a&gt;) has a unique system for marketing that is clearly &lt;em&gt;not&lt;/em&gt; spam. It involves users sending individual emails out to customers  with whom they already have a relationship. It&apos;s not bulk email and there are clear opt out instructions. The email goes out in a small trickle of a few hundred an hour. The system tracks the lead internally and an elaborate reporting system allows the user to figure out success rates, run referral programs and keep track of the customer information.
&lt;/p&gt;
&lt;p&gt;
	In spite of the benign nature of this system it has still been difficult getting emails out to some domains - particularly large email domains like Yahoo and Hotmail. We have done some innovative things like creating a &quot;scoring&quot; system that utilizes calls to spam assassin to try and &quot;rate&quot; the email before it is sent. The user submits his email text, the system dummies up an email, pipes it to Spam Assassin, retrieves it back and extracts the score - all before the email is sent. Pretty nifty - but not a panacea.  In spite of our best efforts the success rate to known good email addresses on larger email domains improved only marginally. This customer is one of those visionary men that simply can&apos;t help thinking outside the box. Check out his solution.
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Wed, 22 Oct 2008 18:40:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/10/22/innovative-email-sends</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Interesting Loop for Dates and Times</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/10/17/cfloop.over.date.time</link>
				<description>
				
				&lt;p&gt;
	Now my readers know that I&apos;ve seen enough Coldfusion code in my day that I can quote some livedoc articles verbatim (including the notes and comments). It takes a great deal to surprise me with something new. But here&apos;s a snippet I found the other day that made me sit up and take notice. The fact that it uses CFLOOP (one of the most ho-hum of all the CF tags) is even more surprising. This is a loop that iterates over time increments. You can use it to create incremental time objects that are &lt;em&gt;n&lt;/em&gt; number of minutes or seconds apart. It doesn&apos;t look like you might expect either. Here is an example that loops from 8 to 5 in 45 minute intervals:
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Fri, 17 Oct 2008 17:59:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/10/17/cfloop.over.date.time</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Viewing All Scopes for a Request</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/7/29/get-all-scopes-for-a-request</link>
				<description>
				
				&lt;p&gt;
	This little gem makes me giddy all over - and I don&apos;t get giddy easily. There was that one time at a Bette Midler concert in 99.... but I digress. Here&apos;s a method you may find useful during development, debugging and possibly for error handling. It&apos;s a method of the getPageContext() function that returns all scopes available to the request. That would be:
&lt;ul&gt;
	&lt;li&gt;Variables&lt;/li&gt;
	&lt;li&gt;Form&lt;/li&gt;
	&lt;li&gt;Cffile&lt;/li&gt;
	&lt;li&gt;cfthread&lt;/li&gt;
	&lt;li&gt;Request&lt;/li&gt;
	&lt;li&gt;Server&lt;/li&gt;
	&lt;li&gt;Http&lt;/li&gt;
	&lt;li&gt;Cgi&lt;/li&gt;
	&lt;li&gt;Client&lt;/li&gt;
	&lt;li&gt;URL&lt;/li&gt;
	&lt;li&gt;Session&lt;/li&gt;
	&lt;li&gt;Cookie&lt;/li&gt;
	&lt;li&gt;File&lt;/li&gt;
	&lt;li&gt;Application&lt;/li&gt;
&lt;/ul&gt;
This tag does you a favor in that it guarantees that the scope will be there. So you don&apos;t have to &quot;test&quot; for session and then dump out or handle session. It will just show up for you. Here&apos;s the code:
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Tue, 29 Jul 2008 19:46:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/7/29/get-all-scopes-for-a-request</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Adding Cfqueryparams to a Legacy Site Without Losing Your Hair</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/7/26/cfqueryparam-tips-for-adding</link>
				<description>
				
				&lt;p&gt;
	So you got hit with the latest SQLi attack eh? SQLi is the hip acronym for &quot;sql injection&quot; that fancy pants security people use. You&apos;ve put in some stop gap measures and now you are slogging through 3000 queries trying to add cfqueryparam to everything. It&apos;s a laborious task to be sure. Here are some special tips from the muse that might help shorten it.
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Security</category>				
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Sat, 26 Jul 2008 14:28:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/7/26/cfqueryparam-tips-for-adding</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Portable ColdfFusion Code  (Linux and Windows)</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/6/21/portable-coldfusion-linux-and-windows</link>
				<description>
				
				&lt;p&gt;
	I&apos;m a big fan of ColdFusion on Linux. Not that I know half as much about Linux as I do about Windows. Still, we have a good number of Linux servers here at CF Webtools and CF Linux Guru &lt;a href=&quot;http://www.stillnetstudios.com/&quot;&gt;Ryan Stille&lt;/a&gt; keeps them all humming a happy tune. I think both platforms have advantages. If you have ever tried to write ColdFusion code that is able to run on &lt;em&gt;both&lt;/em&gt; Linux and Windows you will know there a few differences. One difference is case sensitivity for file names. 
&lt;/p&gt;
&lt;p&gt;
 On windows if you include a file called &quot;myfile.cfm with a cfinclude that is something like &amp;lt;cfinclude template=&quot;myFile.cfm&quot;&amp;gt; it will work just fine. Move the same code to Linux and it will generate a &quot;File Not Found&quot; error because of the capital &quot;F&quot; in your include statement.  The good news is that once you fix this problem on Linux you can move it back to Windows and it will now work on both platforms. The other common problem is a bit more challenging. It has to do with file paths.
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Sat, 21 Jun 2008 12:35:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/6/21/portable-coldfusion-linux-and-windows</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Var Scoper Tool</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/6/19/varscoper</link>
				<description>
				
				&lt;p&gt;
Mike Henke reminded me of this slick little tool called &lt;a href=&quot;http://varscoper.riaforge.org/&quot;&gt;varscoper&lt;/a&gt;. Pass in a directory and it will ferret out all the places where variables are not correctly scoped. For example, it will sshow where you have not correctly var&apos;ed variables in a function. The project was produced by &lt;a href=&quot;www.schierberl.com/cfblog/&quot;&gt;Mike Schierberl&lt;/a&gt; who&apos;s blog has some excellent goodies and tips.
&lt;/p&gt;
&lt;p&gt;
varscoper won&apos;t catch the cfhttp scope, but it would catch a variable declared as a result attribute. Either way, it could save you some headaches - especially when dealing with a large pool of code, or taking over someone else&apos;s code.
&lt;/p&gt;
				
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Thu, 19 Jun 2008 14:55:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/6/19/varscoper</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Threads Not Terminating on ColdFusion 8.0.0</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/6/17/cfthread.8.0.0</link>
				<description>
				
				&lt;p&gt;
	Over the past few days on &lt;a href=&quot;http://www.houseoffusion.com&quot;&gt;CF Talk&lt;/a&gt; Ian Skinner has been struggling tuning an application that makes use of CFTHREAD. In his application a process spawns threads for creating report files. Ian Reports that the process would spawn the threads, but the threads themselves would neither complete gracefully nor respond to a &quot;terminate&quot; action (&lt;span style=&quot;color: #EE0000;&quot;&gt;&amp;lt;cfthread action=&quot;terminate&quot; ...&amp;gt;&lt;/span&gt;). No suggestions from the muse or anyone else seemed to help. Finally he upgraded to ColdFusion 8.0.1 and the problem appears to be resolved. Threads complete gracefully without hanging around.	
&lt;/p&gt;
&lt;p&gt;
	Nothing in the 8.0.1 release notes raises any red flags with me that would indicate why updated to 8.0.1 resolved the issue. I suspect that something very specific about his JVM was causing it. Still, it&apos;s nice to know if you run into this ticklish issue there is a way around it. 
&lt;/p&gt;
				
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<category>Coldfusion 8</category>				
				
				<pubDate>Tue, 17 Jun 2008 19:21:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/6/17/cfthread.8.0.0</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>CFCs, the Variables Scope, and the Application Scope</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/6/16/cfc.application.variables</link>
				<description>
				
				&lt;p&gt;
	It&apos;s pretty common to use the application scope to cache components. If your component is a collection of methods or data access functions it&apos;s often faster to put them into the application scope than it is to create an instance with each request. Now you probably know that you should quality all of the variables in a function with the &quot;var&quot; key word. This insures that the variable exists inside the &quot;scope&quot; of the function call. This allows multiple function calls to be made to the same instance without one set of variables over writing the other.
&lt;/p&gt;&lt;p&gt;
 One of the areas where this can be difficult to manage is when using a ColdFusion tag that creates its own scope. Take CFHTTP as an example.
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<category>Coldfusion 8</category>				
				
				<pubDate>Mon, 16 Jun 2008 18:21:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/6/16/cfc.application.variables</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>New Coldfusion Podcast</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/6/16/cfconversation</link>
				<description>
				
				&lt;p&gt;
Here&apos;s a quick public service announcement for all the muse readers. Apparently Coldfusion Weekly (a popular podcast) is ending its run. To pick up the slack, community member and CF Guru Brian Meloche has started a new podcast called &lt;a href=&quot;http://www.cfconversations.com&quot;&gt;CF Conversations&lt;/a&gt;. His first release is a round table discussion with Rick Mason, Adam Haskell, Aaron West, and Jeff Coughlin. There is also an &lt;a href=&quot;http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=283289378&quot;&gt;i Tunes&lt;/a&gt; link. 
&lt;/p&gt;
				
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Mon, 16 Jun 2008 09:29:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/6/16/cfconversation</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Case Insensitive Form Field Names on Submit</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/6/14/form.case.insensitive</link>
				<description>
				
				&lt;p&gt;
	Recently on &lt;a href=&quot;http://www.houseoffusion.com&quot;&gt;CF Talk&lt;/a&gt; Bobby Hartsfield presented an interesting problem. A vendor required a submission of data as an XML packet. Since the data all came from a form post Bobby wanted to simply loop through the form fields to build his XML file. Each of the form field names would become a node in his XML doc.  Sounds simple right? 
&lt;/p&gt;&lt;p&gt;
 Actually there is a problem with this approach. XML is typically case sensitive. If the vendor uses all upper or all lower case that&apos;s not a problem because you could simply UCASE() or LCASE() the field names. But what if the XML node names need to be mixed-case? For example, what if a node name was AdminUserName?  You could add a form element to the form called AdminUserName, but when it is posted Coldfusion turns it into all upper case - as in ADMINUSERNAME.  It&apos;s too bad there is no way to access the original case of the form elements before ColdFusion intervened. As it turns out (and thanks to some nifty code from both Bobby and the very bright Barney Boisvert) there is a way....
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Sat, 14 Jun 2008 16:14:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/6/14/form.case.insensitive</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>Tips on CF Script</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/3/24/tips-on-cfscript</link>
				<description>
				
				&lt;p&gt;
From a reference on an email list I stumbled onto Pete Freitag&apos;s &lt;a href=&quot;http://www.petefreitag.com/cheatsheets/coldfusion/cfscript/&quot;&gt;cheat sheet&lt;/a&gt; for CFSCRIPT and I thought it was worth mentioning. I use Cfscript for any largish block of logic. With the advent of CFC&apos;s it has become even more useful. I think the inline commenting is more readable and the syntax translates to other languages with a few modifications. To Pete&apos;s tips I would add the following:
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Mon, 24 Mar 2008 13:00:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/3/24/tips-on-cfscript</guid>
				
				
			</item>
			
		 	
			
			
			<item>
				<title>List Delimiters and Coldfusion Magic</title>
				<link>http://www.coldfusionmuse.com/index.cfm/2008/3/20/list.delimiter.nuance</link>
				<description>
				
				&lt;p&gt;
Here is one of those finicky nuances that might surprise you about Coldfusion. Many languages have list functions or something similar to list functions. In many of these languages there is some version of split or splitf that allows you to specify any string as a delimiter regardless of length. This might lead you to believe that you can use a multi-character string as a delimiter in list functions in Coldfusion. Not only is this &lt;em&gt;not&lt;/em&gt; the case but the way delimiters behave can cause you to believe it is working when in fact it is not. Let me explain.
&lt;/p&gt;
				 [More]
				</description>
						
				
				<category>Coldfusion Tips and Techniques</category>				
				
				<pubDate>Thu, 20 Mar 2008 22:56:00 -0500</pubDate>
				<guid>http://www.coldfusionmuse.com/index.cfm/2008/3/20/list.delimiter.nuance</guid>
				
				
			</item>
			
		 	
			</channel></rss>