<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Greylurk &#187; ColdFusion</title>
	<atom:link href="http://greylurk.com/index.php/tag/coldfusion/feed/" rel="self" type="application/rss+xml" />
	<link>http://greylurk.com</link>
	<description>Ramblings of a distracted techie</description>
	<lastBuildDate>Thu, 04 Mar 2010 02:02:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>ColdFusion Builder &#8211; First Glance</title>
		<link>http://greylurk.com/index.php/2009/07/coldfusion-builder-first-glance/</link>
		<comments>http://greylurk.com/index.php/2009/07/coldfusion-builder-first-glance/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 18:44:33 +0000</pubDate>
		<dc:creator>Adam N.</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ColdFusion Builder]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Flash Builder]]></category>

		<guid isPermaLink="false">http://greylurk.com/?p=88</guid>
		<description><![CDATA[Yesterday Morning, ColdFusion Builder (formerly known as Bolt) was released on Adobe Labs After a day of fiddling around with it, here are my initial impressions: Distribution There are three versions listed on Adobe Labs: Macintosh, Windows 32 bit and Windows 64 bit.  Currently there are no Linux versions available, and from comments on the [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday Morning, ColdFusion Builder (formerly known as Bolt) was released on <a href="http://labs.adobe.com/technologies/coldfusionbuilder/">Adobe Labs</a> After a day of fiddling around with it, here are my initial impressions:</p>
<h3>Distribution</h3>
<p>There are three versions listed on Adobe Labs: Macintosh, Windows 32 bit and Windows 64 bit.  Currently there are no Linux versions available, and from comments on the forums, there is no plan to release a Linux version at launch.  This is very irksome, since about 20-30% of the developers I know use Linux as their primary development platform, especially with the news about CF9&#8242;s full support of Ubuntu.  Mark Mandel has managed to put together a tutorial on <a href="http://www.compoundtheory.com/?action=displayPost&amp;ID=414">how to install ColdFusion Builder on Linux</a>, so really it looks like Adobe just isn&#8217;t willing to hire someone to maintain and Q.A. a linux release.</p>
<h3>Installation</h3>
<p>Installation comes in two forks, similar to the Flex Builder.  There is a stand-alone version, which installs a new Eclipse 3.4.2 instance, along with the ColdFusion Builder plugin.  The standalone also appears to contain some bits and peieces of Aptana, such as the HTML, CSS, and JavaScript editors, as well as Aptana&#8217;s FTP support.   There is also a &#8220;plugin version&#8221; which only works with 3.4.2, not version 3.5, or 3.4.1.  This means that realistically, you probably aren&#8217;t going to be able to use the plugin version if you&#8217;ve got an existing Eclipse install, unless your install is almost bleeding edge, but not quite.</p>
<h3>First Impressions</h3>
<p>As we&#8217;ve come to expect from Adobe, the visual experience booting up and running CFBuilder is very good.  Visually, the application looks very nice.  RDS support is basically required to use ColdFusion builder, so anyone who isn&#8217;t doing local development will prettymuch have to beg, borrow or steal an RDS password for a shared development server.  Based on the server admins I&#8217;ve worked with, if you or your group don&#8217;t maintain your own ColdFusion development server, you&#8217;re best off switching to Local Development.  It&#8217;s just the only way.</p>
<p>The Snippet support is almost identical to what many of us CFEclipse users have come to expect over the years, right down to the $${variable} substituion.  Unfortunately, while the snippets are stored in an XML format, it doesn&#8217;t appear to be the same schema as the CFEclipse snippets.  It&#8217;s likely a simple .xsl transform could turn all of your existing CFEclipse snippets into ColdFusion Bulder snippets though.</p>
<p>One very nice feature of the ColdFusion development perspective is the &#8220;TailView&#8221; component, which allows you to watch your log files for new entries.   This is a capability that Linux and Unix users have been very familiar with for years, but which is astoundingly hard to find on the Windows platform.  Integrating it into the IDE is a very nice touch, and allows you to use &lt;cftrace&gt; for debugging very easily.</p>
<p>Speaking of debugging, the stepwise debugger plugin from ColdFusion 8 is included in the install.  I haven&#8217;t used the debugger in ColdFusion 8 extensively, but it appears to be integrated seamlessly with the CFML editor view, so that you can set break points.  I&#8217;m not sure whether thats an improvement over the CF8 debugger, but it&#8217;s certainly very nice.  One caveat, you must make sure that Line Debugging is enabled in your ColdFusion Administrator.  Of course it requires RDS, but it&#8217;s definitely worthwhile.  Additionally, the ability to watch expressions and see variable values is really nice, and the handling of CFCs, structures and arrays works very well.  I&#8217;m most impressed with the debugging features.</p>
<p>The &#8220;Outline&#8221; view in ColdFusion Builder is another feature that CFEclipse users will be familiar with.  Unfortunately, the ColdFusion builder team didn&#8217;t choose to include the (in my mind) more useful &#8220;Object View&#8221; which shows which methods and parameters are available in CFCs.</p>
<p>The code assist does a moderately good job of finding variable names to offer up as code completion when typing.  Unfortunately, it only appears to interrogate the current file looking for variables.  It would be nice if (like the Eclipse PHP Development Environment) it searched the library and execution paths to find which classes and variables were defined, and give you code assist for all variables and methods.  However, given the highly dynamic nature of ColdFusion and CFCs, it&#8217;s understandable that this is a huge challenge, and hasn&#8217;t been implemented.  It would be a clear advantage though, if the team were to implement it.</p>
<p>The &#8220;extensions&#8221; are kind of nice, but I don&#8217;t see them having a large impact on my day to day coding.  They seem to be a great way to stand up a new application in a short time, allowing you to build large ammounts of code quickly, but for the more common &#8220;Brown Field&#8221; work that makes up 80-90% of my work days, its probably not going to be of much use.</p>
<h3>Summary</h3>
<p><strong>The Good</strong> &#8211; Debugging is amazing.  Really good job here. I know some folks will really like the Word Wrapping, which has been a notable hole in the Eclipse platform for a very long time.  The Aptana integration makes editing JavaScript and CSS along with your ColdFusion code very nice and easy to do.  Youv&#8217;e got a good start with the code assistance, and I&#8217;m looking forward to what will happen in future versions.  Hopefully there will be some even better things to come.</p>
<p><strong>Low Hanging Fruit</strong> &#8211; The ability to import a CFEclipse Snippet library or connect to a SnipEx server would be nice.  Implementing the CFEclipse &#8220;Methods&#8221; style view should be pretty easy, and it&#8217;s much more useful than the outline view when working with CFCs.</p>
<p><strong>A bit of a pain</strong> &#8211; Basically requiring RDS support is a thorn in the side of lots of developers in corporate environments.  Corporate server admins read the CF documents that say that &#8220;RDS is a security hole in a production server&#8221; and think that means that they shouldn&#8217;t let developers have access to it.  It&#8217;s a long, hard battle that nobody really wants to fight.  Some bits, like the &#8220;Service Browser&#8221; offer up entirely unhelpful messages such as &#8220;Unable to get meta data for cfc.&#8221; without any explaination of what could be done to fix it.  Likewise, I got &#8220;Unable to fetch server mappings. Reason :null&#8221; in my console on startup&#8230; What does that mean?  Nobody seems to know.  Fortunately, most of these errors are in places that don&#8217;t affect the core usability of the system, but hopefully they&#8217;ll be cleaned up a bit before the final release.</p>
<p><strong>The Bad</strong> &#8211; The lack of Linux support is really a deal breaker for me.  I do about 50% of my development on Windows, and 50% on Linux.  If I have to choose between using ColdFusion Builder 1/2 the time, and CFEclipse 1/2 the time, or just using CFEclipse full time, I&#8217;ll probably go with the CFEclipse option.  The lack of support for Eclipse 3.5 puts this solidly behind the curve when it comes to Eclipse plugins.  This is more of a problem with the Eclipse platform, since each yearly release changes so much that every plugin has to be completely rewritten in many cases, but it would be nice if Adobe were to release a plugin that actually works with the newest stable Eclipse version, instead of constantly trailing one release.  Further, because of its narrow focused Eclipse version, even running ColdFusion Builder and Flash Builder in the same eclipse instance may be a challenge.  A little more version compatibility would be nice.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://greylurk.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://greylurk.com/index.php/2009/07/coldfusion-builder-first-glance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Flex Builder 3 plugin to survive a new Eclipse Version</title>
		<link>http://greylurk.com/index.php/2009/06/getting-flex-builder-3-plugin-to-survive-a-new-eclipse-version/</link>
		<comments>http://greylurk.com/index.php/2009/06/getting-flex-builder-3-plugin-to-survive-a-new-eclipse-version/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 21:29:59 +0000</pubDate>
		<dc:creator>Adam N.</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://greylurk.com/?p=78</guid>
		<description><![CDATA[Eclipse 3.5 (Galileo) has recently been released, so I&#8217;m in process of rebuilding my development environment to run on it.  I was happy enough to go use the update sites to re-install CFEclipse and MXUnit, and the StarTeam (our company&#8217;s chosen Version Control software) plugin was able to seamlessly update the Galileo instance of Eclipse [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.eclipse.org/galileo/">Eclipse 3.5 (Galileo)</a> has recently been released, so I&#8217;m in process of rebuilding my development environment to run on it.  I was happy enough to go use the update sites to re-install CFEclipse and MXUnit, and the StarTeam (our company&#8217;s chosen Version Control software) plugin was able to seamlessly update the Galileo instance of Eclipse to include it&#8217;s plugin, but I ran into a snag when trying to update the Flex Builder 3 plugin.</p>
<p>When originally installing the Flex Builder 3 plugin for eclipse, I used the default path (i.e. C:\Program Files\Adobe\Flex Builder 3 Plugin\).  When I tried to re-run the installer, It reported that I already had a Flex Builder Plugin instance at that location, and would I please choose another directory.  Not wanting to clutter my hard drive with extra copies of the Flex Builder plugin, I decided to poke around and see what I could do to use the existing Flex Builder Plugin in my new Galileo installation.</p>
<p>What I eventually happened on was a very nice, clean way to install a single instance of an Eclipse plugin, and allow multiple copies of Eclipse use it.   It&#8217;s pretty straight forward, and assumes you&#8217;ve already got a copy of Eclipse installed, and a licensed copy of the Flex Builder 3 Plugin installed.</p>
<p>First off, navigate into your eclipse directory.  Mine is C:\Program Files\Eclipse\Galileo\ .  This should be the folder which contains your eclipse.exe file.  Under this directory, if there isn&#8217;t already a directory named &#8220;links&#8221;, create one. Navigate into the links directory.  Create a new text file named &#8220;com.adobe.flexbuilder.feature.core.link&#8221;.  Edit the file, and add the following contents to it:</p>
<pre>path=C:/Program Files/Adobe/Flex Builder 3 Plug-in</pre>
<p>Close the file, and start Eclipse.  Now go into your Window Menu, select &#8220;Open Perspective&#8221;, and &#8220;Other&#8221;, and you should see your Flex Development Perspective listed.  It&#8217;s even smart enough to pick up the license key from your previous installation, so you don&#8217;t have to dig out the old key to reinstall. However, for some reason, when I did this it lost my installed Flex SDKs.  To fix this, I went to the &#8220;Window-&gt;Preferences&#8221; dialog, and navigated to the &#8220;Flex-&gt;Installed SDKs&#8221; option.  I removed the two entries for &#8220;Flex 0.0&#8243; which were listed, and re-added the two existing Flex SDKs: c:\program files\adobe\flex builder 3 plug-in\sdks\3.2.0 and c:\program files\adobe\flex builder 3 plug-in\sdks\2.0.1   You must mark one of these as default by clicking the checkmark next to it on the screen.  After this, click Ok, and you should be good to go.</p>
<p>If you&#8217;re doing ColdFusion development, don&#8217;t forget to also install the ColdFusion extensions for Eclipse at C:\program files\Adobe\Flex Builder 3 Plug-in\Installers\ColdFusion Extensions for Flex Builder, and JSEclipse is also pretty helpful at C:\program files\Adobe\Flex Builder 3 Plug-in\Installers\JSEclipse</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://greylurk.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://greylurk.com/index.php/2009/06/getting-flex-builder-3-plugin-to-survive-a-new-eclipse-version/feed/</wfw:commentRss>
		<slash:comments>51</slash:comments>
		</item>
		<item>
		<title>Cold Fusion is NOT dead&#8230; ColdFusion is LIFE!</title>
		<link>http://greylurk.com/index.php/2008/04/cold-fusion-is-not-dead-coldfusion-is-life/</link>
		<comments>http://greylurk.com/index.php/2008/04/cold-fusion-is-not-dead-coldfusion-is-life/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 19:03:35 +0000</pubDate>
		<dc:creator>Adam N.</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[tiobe]]></category>

		<guid isPermaLink="false">http://www.greylurk.com/wordpress/?p=33</guid>
		<description><![CDATA[Over the last year or two there have been various reports that ColdFusion is dying, and that it&#8217;s a forgotten technology. This has caused much furore in the CF Dev community, since a good many of them have built their careers on ColdFusion evangelism and ColdFusion development. However, the recent TIOBE Rankings for April 2008 [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last year or two there have been various reports that ColdFusion is dying, and that it&#8217;s a forgotten technology.  This has caused much furore in the CF Dev community, since a good many of them have built their careers on ColdFusion evangelism and ColdFusion development.</p>
<p>However, the recent <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">TIOBE Rankings for April 2008 </a>show that not only is ColdFusion not dead, but it&#8217;s actually on the rise once again.   While it still ranks below the likes of Ruby, Python, and C#, ColdFusion has surpassed Lua, ActionScript, and Groovy.</p>
<p>Of course, there are plenty who will argue the validity of using the TIOBE index, since it&#8217;s based on Search Engine results, rather than actual market positions, or sales figures, but at very least, ColdFusion is doing a good job of generating posts about ColdFusion programming all over the internet.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://greylurk.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://greylurk.com/index.php/2008/04/cold-fusion-is-not-dead-coldfusion-is-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CFINVOKE as a substitute for CreateObject</title>
		<link>http://greylurk.com/index.php/2008/04/cfinvoke-as-a-substitute-for-createobject/</link>
		<comments>http://greylurk.com/index.php/2008/04/cfinvoke-as-a-substitute-for-createobject/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 03:22:49 +0000</pubDate>
		<dc:creator>Adam N.</dc:creator>
				<category><![CDATA[ColdFusion]]></category>

		<guid isPermaLink="false">http://www.greylurk.com/wordpress/?p=27</guid>
		<description><![CDATA[So, a while ago, faced with the fact that CreateObject and would be disabled on my main development environment by zealous security requirements, I began searching for a way to still allow myself to develop and work with OOP, even though the &#8220;Community Best Practice&#8221; methods for working with Objects weren&#8217;t allowed in my dev [...]]]></description>
			<content:encoded><![CDATA[<p>So, a while ago, faced with the fact that CreateObject and  would be disabled on my main development environment by zealous security requirements, I began searching for a way to still allow myself to develop and work with OOP, even though the &#8220;Community Best Practice&#8221; methods for working with Objects weren&#8217;t allowed in my dev environment. After a bit of experimentation and practice I came up with a pattern that worked remarkably well for me, and actually solved some of the other problems that I noted people were having with the &#8220;standard&#8221; invocation pattern.</p>
<p>My pattern is reliant on two things:</p>
<ol>
<li>The CFC must have (or inherit) a public init function, which performs the duties of a traditional object &#8220;Constructor&#8221;.</li>
<li>The init function must return a reference to the object, generally by ending with</li>
</ol>
<p>In the traditional paradigm, invoking an object is (almost) always performed in two steps.  First , you get a fresh new object with either the CFOBJECT tag, or the CreateObject function.   This object&#8217;s psuedo-constructor (any code outside the CFFunction tags) has been executed, but any intializing values (dsn for a DAO, the MachII.framework.AppManager for a MachII plugin, etc..) have not yet been fed into the object, so it&#8217;s really &#8220;half baked&#8221;.   It&#8217;s not ready for general consumption.  In order to make it ready for general consumption, you have to call an initializer on it.  By convention, this function is called &#8220;init&#8221;, and accepts any arguments that are necessary to make the object &#8220;ready for primetime&#8221;.</p>
<p>A few people began to notice that this pattern broke your code up into multiple lines, which could be accidentally separated, resulting in the unitialized object references being released into the wilds of your program.  One of these people came up with the bright idea of returning a reference to &#8220;this&#8221; from the init function.  This allows your init function to be chained to the CreateObject call like so:</p>
<p>&lt;cfset newObject = createObject(&#8220;component&#8221;,&#8221;foo&#8221;).init() /&gt;</p>
<p>This still is possible to mess up, but as <a href="http://www.joelonsoftware.com/articles/Wrong.html">Joel Spolsky</a> once pointed out, one of the keys to making your code stable is making wrong code look wrong.  If all of your CreateObject statements are immediately chained to an init function, then it&#8217;s easy to track down errors where your instantiated-but-unitialized objects are released into the wild.  If you see a CreateObject anywhere that isn&#8217;t immediately followed an init, then you know at least one thing you need to fix.</p>
<p>This development inspired me.  I knew that CFINVOKE could be used to in one operation, instantiate an object, and call a function on that object.  The return value of that function call could be saved.  What would happen if I ran a CFINVOKE on an init function that returned a reference to &#8220;this&#8221;?  It turns out that the result is exactly the same as the CreateObject chaining that people were recommending before, but it didn&#8217;t require access to the &#8220;forbidden&#8221; functionality.</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://greylurk.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://greylurk.com/index.php/2008/04/cfinvoke-as-a-substitute-for-createobject/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Well Formed&#8221; ColdFusion</title>
		<link>http://greylurk.com/index.php/2006/11/well-formed-coldfusion/</link>
		<comments>http://greylurk.com/index.php/2006/11/well-formed-coldfusion/#comments</comments>
		<pubDate>Thu, 30 Nov 2006 15:56:05 +0000</pubDate>
		<dc:creator>Adam N.</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.greylurk.com/wordpress/?p=20</guid>
		<description><![CDATA[&#60;minor rant&#62; I&#8217;ve run across a trend in ColdFusion code that&#8217;s out there living in the wild web, to terminate &#8220;empty&#8221; tags with a /&#62;, like in XML. The best explaination I&#8217;ve heard for this behavior is to make ColdFusion code &#8220;well formed&#8221; XML. But what I don&#8217;t see, is how this explaination holds water. [...]]]></description>
			<content:encoded><![CDATA[<p>&lt;minor rant&gt;</p>
<p>I&#8217;ve run across a trend in ColdFusion code that&#8217;s out there living in the wild web, to terminate &#8220;empty&#8221; tags with a /&gt;, like in XML.   The best explaination I&#8217;ve heard for this behavior is to make ColdFusion code &#8220;well formed&#8221; XML.  But what I don&#8217;t see, is how this explaination holds water.</p>
<p>Maybe an XML programmer out there can point out, how is this:</p>
<p>&lt;cfset var foo=ListFirst(bar,&#8221;,&#8221;) &amp; listGetAt(bar,4,&#8221;,&#8221;)&gt;</p>
<p>any more proper syntax than:</p>
<p>&lt;cfset var foo=ListFirst(bar,&#8221;,&#8221;) &amp; listGetAt(bar,4,&#8221;,&#8221;) /&gt;</p>
<p>&lt;/minor rant&gt;</p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://greylurk.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://greylurk.com/index.php/2006/11/well-formed-coldfusion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
