Issues with CFML Syntax when Switching from Adobe ColdFusion to Railo

Adobe ColdFusion logo

Railo is an open source CFML server that can replace Adobe (or Macromedia) ColdFusion. I ported several CFML-based apps from an old instance of Macromedia ColdFusion MX 6 to Railo 3.2.1 about two years ago, and it’s been relatively trouble-free since the change.

However, the change itself was fraught with difficulties. That was due, not to problems with Railo, but to the forgiving nature of ColdFusion (CF). If the CFML wasn’t written exactly right, CF would parse it fine, but Railo wouldn’t take it. An example of this is the following code:

Before:

	<option value="A" < cfif #Sec_Level# eq 'A'>selected
		</cfif>>Administrator
		<option value="D" <cfif #Sec_Level# eq 'D'>selected
		</cfif>>Data Entry/General User

After:

	<option value="A" <cfif #Sec_Level# eq 'A'>selected="selected"</cfif>>Administrator</option>
	<option value="D" <cfif #Sec_Level# eq 'D'>selected="selected"</cfif>>Data Entry/General User</option>

The “Before” code gave the error: “no matching start tag for end tag [cfif]”.

The key change that was required wasn’t the closing option tag or the change to the selected attribute; that was just good form. It was the space between the “<” and the “cfif” in the opening cfif statements that caused the error. Simply removing that space fixed the problem.

Seemingly small problems like this will cause Railo (at least version 3.2.1) to throw errors. If the code is written properly to begin with, this will likely not happen.

Women Who Code – In Honor of Ada Lovelace’s Birthday

I was reminded today by Google that it is the 197th birthday of Ada Lovelace, the first computer programmer, who assisted Charles Babbage in the development of his Analytical Engine.

Ada Lovelace Google Doodle on December 10, 2012
Ada Lovelace Google Doodle on December 10, 2012

I’ve put together a list of women coders / developers / hackers / techies on Twitter who are worth following:

Developer/Hacker Women

Guide for the Perplexed

Dave is disabling HAL in 2001: A Space Odyssey

With few exceptions, Web sites today are not built on a no-frills text editor using only static HTML code.  Most sites today use a minimum of four different technologies.  A relatively simple page will likely use HTML for static markup, inline (such as ASP or PHP) or code-behind (ASP.NET) dynamic code, CSS for consistent styles, and JavaScript for dialog box popups.  Given the multitude of technologies that are used to build even a single dynamic data-driven Web page, it’s impossible to know it all.

Though I’ve been writing programs since before most people had even heard of email, I still must frequently use Google (or my new favorite search engine, Duck Duck Go) to look up functions, formatted connection strings, .NET namespaces, SQL stored procedures, and the like.

Most of the time, if I can properly articulate what coding problem I’m trying to solve, a few minutes of searching will likely result in finding the code that will fix it.  In many cases, if I’m having a problem, it’s very likely that others have had it before, and that at least one of them posted the solution somewhere.

For those difficult times that I have had to either conjure up the code on my own or to use multiple other sources to build a solution that worked for me, I created this blog.  I hope to shed light on questions that were (at least to me) very perplexing, but for which I now have answers.

Welcome to my blog, and happy coding!

P.S.:

While I got my start on an Apple, and just recently bought my first Mac, the bulk of my professional work is using Windows-based technologies.  For my IDE, I generally use Visual Studio 2010.  Most of my applications are ASP.NET using VB, though I am doing all new development in C# where possible.   SQL Server 2008 is my DBMS of choice, though I do get to dabble in Oracle Database programming from time to time.  With any luck, I’ll get a chance to post some Cocoa / Objective-C code before the end of the year! 😀