<?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>Technology, The Web, and Oxford Commas. &#187; ColdFusion</title>
	<atom:link href="http://mallinson.ca/cat/cf/feed/" rel="self" type="application/rss+xml" />
	<link>http://mallinson.ca</link>
	<description>by Chris Mallinson</description>
	<lastBuildDate>Tue, 09 Aug 2011 23:10:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ColdFusion’s Last Stand</title>
		<link>http://mallinson.ca/post/coldfusions-last-stand/</link>
		<comments>http://mallinson.ca/post/coldfusions-last-stand/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 16:42:16 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[The Web]]></category>

		<guid isPermaLink="false">http://mallinson.ca/?p=338</guid>
		<description><![CDATA[For thousands of developers, ColdFusion still pays the bills, and likely will for some time to come, if judging only by the growth in the markets where it is most prominent. Adobe says that CF is thriving with a community of more than half a million developers, but how many of those developers are thriving [...]]]></description>
			<content:encoded><![CDATA[<p>For thousands of developers, ColdFusion still pays the bills, and likely will for some time to come, if judging only by the growth in the markets where it is most prominent. Adobe says that CF is thriving with a community of more than half a million developers, but how many of those developers are thriving with ColdFusion?</p>
<p>The <a href="http://www.adobe.com/products/coldfusion/evangelism_kit/">marketing material provided by Adobe</a> is vague about the growth of the product, focusing mainly on the growth of the developer count. This is misleading, since the amount of developers familiar with ColdFusion can&#8217;t really decline much, and those developers are not asked how much they still use CF. They also mention the amount of companies using ColdFusion. That&#8217;s like Ford announcing the amount of companies that use their trucks. Even if a huge company has an exclusive agreement with Chevrolet, I&#8217;m sure they have a Ford stuck in a garage someplace.</p>
<p>The marketing information is also heavily aimed at large enterprises. This is where the product is being used right now and where it will continue to be used for the foreseeable future. ColdFusion finds itself in this corporate world, where product cycles are slow and bleeding edge technology is avoided like the plague. It is rare to see a development team using the latest version of  any software, shunning it until others test and discover the bugs. To this end, I still encounter ColdFusion apps in active use that are running on version 5, soon to be 10 years old.</p>
<blockquote><p>I once worked with a team of 5-6 developers on a ColdFusion Project. I mentioned that I was excited about the new features coming up in CF8. None of the other devs knew that there was a new version coming out, and a couple asked which version we were using.</p></blockquote>
<p>ColdFusion has some huge benefits. In short time a developer can be brought up to speed and developers of all skill levels can contribute to large projects. Large companies love this model, since developer turnover can have lower impact on product support. I&#8217;d have no problem recommending ColdFusion for huge projects based on its capabilities, but that is not the only factor. You need to make sure your developers (who will be the source of any innovation in your project) are working with tools that inspire them to innovate.</p>
<h3><span style="font-weight: normal;">And What About Those Developers?</span></h3>
<p>Part of each developer&#8217;s inspiration needs to come from her peers, and not only the ones she works with every day. Good developers are active in the community, contributing to or consuming streams of daily RSS feeds. I&#8217;ve found the ColdFusion community to be second to none on all levels, except perhaps, their relative abundance. Anyone who has searched for a code snippet or a solution to a CF problem knows that four times out of five a Google search will land you on one of a handful of blogs for your answer. We all know who they are, and they are all fantastic and extraordinarily helpful, but they are few, and the success of the platform relies heavily on this group.</p>
<p>Conferences are also a wonderful forum for developer inspiration. ColdFusion is down to two or three conferences a year, occupies only a small part of the MAX conference (thankfully bolstered by an excellent community driven &#8220;un-conference&#8221;), and the content is frequently focussed on Flex, which Adobe prefers to keep arm&#8217;s length from any mention of ColdFusion. In contrast, there was a Ruby on Rails conference every week this summer, for a total of 20 in a six month span.</p>
<p>I find that developers are much happier working on a project using a technology that they know will be around for a while. I do my best work when I know the code I&#8217;m writing will be pasted into a future application. This helps me on my next project and helps the next developer who sees my code.</p>
<p>In the places where ColdFusion thrives—Fortune 500 companies, government agencies, and universities—developers are often locked into a routine that does not include innovation. I&#8217;ve seen this first hand. Innovation is inextricably paired with risk, the mitigation of which is often the most important goal in these institutions.</p>
<h3><span style="font-weight: normal;">The Future</span></h3>
<p>It&#8217;s getting easier to get an application out to the public. Finding good hosting is a breeze, and you don&#8217;t need a sysadmin to install your application. Cloud computing allows us to go from a test application on a laptop to a scalable thriving website in a day. The fact is that small development teams launching medium sized applications are using Ruby, Python, and PHP. These applications used to be out of question for enterprise use, but that is changing. Small teams like <a href="http://37signals.com/">37 Signals</a> have seen their applications creep into some very large companies—even against their own recommendations.</p>
<p>Corporations have tended to choose ColdFusion when building applications in-house, but now more often than not, they are outsourcing the work, buying well tested and supported enterprise level applications that reside on external servers.</p>
<p>A huge benefit of ColdFusion is the time in which a server can be up and running for any size of project. It is no longer a leader in this department, and given the fact that most of the competitors are open-source projects with massive user groups, ColdFusion needs to offer a lot more to keep up. Adobe is capable of this, but only if it is profitable, and that&#8217;s not a sure thing.</p>
<h3><span style="font-weight: normal;">ColdFusion is Not Dead</span></h3>
<p>I happen to think the future of CF could be quite bright indeed. Adobe does some amazing and innovative things, and they have the ability and creative minds to build this product. My biggest fear is that growing the product will become less worthwhile for them as fewer corporations invest in their own applications. If CF is offered in a cloud computing environment (which I believe Adobe is still considering) its ability to integrate well with existing enterprise products will allow it to be a great rapid deployment option for companies of all sizes.</p>
]]></content:encoded>
			<wfw:commentRss>http://mallinson.ca/post/coldfusions-last-stand/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Apache, mod_rewrite and Sexy URLs</title>
		<link>http://mallinson.ca/post/mod_rewrite/</link>
		<comments>http://mallinson.ca/post/mod_rewrite/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 08:10:40 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[URL Rewriting]]></category>
		<category><![CDATA[Web Servers]]></category>

		<guid isPermaLink="false">http://mallinson.ca/?p=147</guid>
		<description><![CDATA[99% of the people who visit a web site don&#8217;t care how it works, or how it was built. They don&#8217;t care if you&#8217;re using ColdFusion or PHP, and they don&#8217;t care if you&#8217;re using post or get variables. The remaining one percent comprises some techie types like me, and probably you, and some people with less than honourable intentions. [...]]]></description>
			<content:encoded><![CDATA[<p>99% of the people who visit a web site don&#8217;t care how it works, or how it was built. They don&#8217;t care if you&#8217;re using ColdFusion or PHP, and they don&#8217;t care if you&#8217;re using post or get variables. The remaining one percent comprises some techie types like me, and probably you, and some people with less than honourable intentions. For members of the latter group, you don&#8217;t WANT them to know what type of technology you use.</p>
<p>This is a good argument for URL rewriting, as is the fact that semantic and descriptive URLs assist in search engine ranking, and general usability. I rewriting my URLs because I like the way they look. I think a website looks much more polished when the URLs are descriptive, free of variable/value pairs, and as short possible.<br />
<span id="more-147"></span><br />
Since I tend to use Apache with most of the sites I work on, and I recommend you do the same wherever possible, I&#8217;m only going to talk about using mod_rewrite, an almost universal Apache module for URL rewriting. There are similar solutions available for other web servers. I&#8217;ll show you an example use of mod_rewrite for a skeleton example site. I&#8217;ll provide all the code as well so you can play around with a working example. Please remember that this is just a quick overview of the mod_rewrite functions, and how they can be used with ColdFusion. It is always a good idea to lock down your Apache install as much  as possible for public sites, and it should also be noted that using mod_rewrite does involve a small performance hit.</p>
<h3>Turn on mod_rewrite</h3>
<p>You may already have the mod_rewrite module activated in Apache. It&#8217;s simple to check. You need to be familiar with editing the httpd.conf file for your Apache install.</p>
<p>Make sure the following line in your <b>httpd.conf</b> file is NOT commented out (it commented out by default).</p>
<pre lang="” htaccess”">LoadModule rewrite_module libexec/apache2/mod_rewrite.so</pre>
<p>Another thing you need to be sure of is that the AllowOverride directive is turned on for your web root.  The default settings in apache is &#8220;none&#8221;.  This needs to be changed to &#8220;all&#8221; to enable the .htaccess file to change Apache settings.  This can be found either in the default  section it can be set on a per directory basis.</p>

<div class="wp_codebox"><table><tr id="p1473"><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code" id="p147code3"><pre class="htaccess" style="font-family:monospace;">&lt;directory /&gt;
    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Deny from all
&lt;/directory&gt;</pre></td></tr></table></div>

<p>If you need to make a change, remember to stop and restart Apache for your changes to take effect.</p>
<h3>Looking at the Rewrite Directives</h3>
<p>Here&#8217;s my example .htaccess file. This file goes in your web root. I&#8217;ll go through it step by step in a minute.  One important prerequisite for understanding the mod_rewrite file is that you will need to have a good understanding of regular expressions in order to write your own rules.</p>

<div class="wp_codebox"><table><tr id="p1474"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
</pre></td><td class="code" id="p147code4"><pre class="htaccess" style="font-family:monospace;">RewriteEngine on
&nbsp;
RewriteRule ^$ app/index.cfm [L]
RewriteRule ^(contact|about|blog|categories)/?$ app/$1.cfm [L]
RewriteRule ^demos/([0-9]*)/?$ app/content/demo$1/index.cfm [L]
RewriteRule ^c/([a-zA-Z0-9\-\_]{1,30})/?$ app/categories.cfm?cat=$1 [L]
RewriteRule ^([a-zA-Z0-9\-\_]{1,30})/?$ app/post.cfm?key=$1 [L]
&nbsp;
RewriteCond %{HTTP_USER_AGENT} MSIE\s(\d)\.(?!.*Opera)
RewriteCond %1 &amp;lt;=6
RewriteRule ^(/[a-zA-Z0-9\-\_\.])*assets/css/main\.css$ css/main-ie.css [L]
&nbsp;
RewriteRule ^(/[a-zA-Z0-9\-\_\.])*assets/js/jquery\.js$ js/jquery/jquery-1.3.2.min.js [L]
RewriteRule ^(/[a-zA-Z0-9\-\_\.])*assets/css/main\.css$ css/main.css [L]</pre></td></tr></table></div>

<p><b title="RewriteEngine on">Line 1</b> is important, as it activates the Rewrite engine.</p>
<p>The rewriting starts on <b title="RewriteRule ^$ app/index.cfm [L]">line 3</b>. I like to keep my main site files in a folder called &#8220;app&#8221; in my web root, so the first line rewrites a call to the web root to &#8220;/app/index.cfm&#8221;</p>
<p><b title="RewriteRule ^(contact|about|blog|categories)/?$ app/$1.cfm [L]">Line 4</b> redirects a few of the regular top-level pages in the site to their respective locations in my directory structure. /contact to /app/contact.cfm, /about to app/about.cfm, etc.</p>
<p><b title="RewriteRule ^demos/([0-9]*)/?$ app/content/demo$1/index.cfm [L]">Line 5</b> redirects links to demos I included on the site.  /demo/1 goes to /app/demo1/index.cfm, /demo/2 goes to /app/demo2/index.cfm, and so on.</p>
<p><b title="RewriteRule ^c/([a-zA-Z0-9\-\_]{1,30})/?$ app/categories.cfm?cat=$1 [L]">Line 6</b> is for the categories pages for the blog that is part of the site.  For example, the link /c/cars would get redirected to /app/categories.cfm?cat=cars.</p>
<p><b title="RewriteRule ^([a-zA-Z0-9\-\_]{1,30})/?$ app/post.cfm?key=$1 [L]">Line 7</b> will take any remaining link that does not contain a &#8220;sub-directory&#8221; and assumes it is a blog post.  The links would be forwarded like this:  /apache-url-forwarding would be rewritten as /app/post.cfm?key=apache-url-forwarding. This allows you to use the key to lookup a blog post and display it for the reader.  These short titles are usually called &#8220;slugs&#8221; by blogging software and are unique titles given to your posts for use in search engine friendly URLs.</p>
<p><b title="RewriteCond %{HTTP_USER_AGENT} MSIE\s(\d)\.(?!.*Opera)  -  RewriteCond %1 &lt;=6">Line 9 and 10</b> are conditional, and serve the purpose of rewriting the CSS file differently for Internet Explorer 6 and below than it is for the rest of the browsers.  You can see that <b title="RewriteRule ^(/[a-zA-Z0-9\-\_\.])*assets/css/main\.css$ css/main-ie.css [L]">line 11</b> directs calls to the main CSS file to an IE6 specific file.  The preceding rewrite conditions apply to the rewrite rule that immediately follows the condition.</p>
<p><b title="RewriteRule ^(/[a-zA-Z0-9\-\_\.])*assets/js/jquery\.js$ js/jquery/jquery-1.3.2.min.js [L]">Line 13</b> rewrites the CSS file for the remaining browsers.  You may wonder why I bother rewriting the URL of the CSS file.  I like to keep several sets of CSS files on hand &#8211; sometimes different themes, sometimes different versions, and sometimes just a specific set of CSS files for development only.  Rewriting the CSS URLs allows me to switch between the files with ease without touching my application code at all.</p>
<p><b title="RewriteRule ^(/[a-zA-Z0-9\-\_\.])*assets/css/main\.css$ css/main.css [L]">Line 14</b> rewrites the call to an external JavaScript file &#8211; in this case jQuery.  This is helpful for managing versions of a jQuery library.  In this case, I&#8217;m just calling a file called jquery.js, but I&#8217;m linking to a minified version of jquery 1.3.2.</p>
<h3>The Code</h3>
<p>I&#8217;ve gone through this pretty quickly, and without a ton of detail, but I&#8217;ve included the code all zipped up nicely for you to try it yourself. Stick the whole directory structure in your development web root, and give it a try. Remember to turn on mod_rewrite.</p>
<p><a href="http://cf.mallinson.ca/url_rewrite/">Working Example</a><br />
<a href="http://cf.mallinson.ca/url_rewrite.zip">Zipped Up Files</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mallinson.ca/post/mod_rewrite/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A Cloudy Suggestion for Adobe</title>
		<link>http://mallinson.ca/post/thecloud/</link>
		<comments>http://mallinson.ca/post/thecloud/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 15:00:52 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[The Web]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Railo]]></category>

		<guid isPermaLink="false">http://mallinson.ca/?p=150</guid>
		<description><![CDATA[There is a lot of buzz about &#8220;The Cloud&#8221; and I think it&#8217;s warranted. Every time someone gets a CFML engine running in a cloud environment, like the recent cloud successes involving Railo and Open BlueDragon, the community gets a little more interested. I&#8217;m sure there&#8217;s a way to get ColdFusion server, in certain deployments, [...]]]></description>
			<content:encoded><![CDATA[<p>There is a lot of buzz about &#8220;The Cloud&#8221; and I think it&#8217;s warranted. Every time someone gets a CFML engine running in a cloud environment, like the recent cloud successes involving <a href="http://corfield.org/blog/index.cfm/do/blog.entry/entry/CFML_in_the_Cloud">Railo</a> and <a href="http://www.mattwoodward.com/blog/index.cfm?event=showEntry&amp;entryId=69F67498-BDA6-41BD-A917C787A0EB8439">Open BlueDragon</a>, the community gets a little more interested. I&#8217;m sure there&#8217;s a way to get ColdFusion server, in certain deployments, to run in the cloud, but licensing issues would arise.<br />
<span id="more-150"></span><br />
At the Adobe MAX conference, last November, I was asked by several Adobe people about cloud computing, and if I, as a CF developer, was interested. I got the impression that they were either thinking about the possibility of allowing CF to run in the cloud, or worried that developers would jump to another language that would.</p>
<p>I have to admit that at the time, I didn&#8217;t think it would be something I needed to explore yet, but it&#8217;s getting there. I think that the cloud computing model will fit perfectly for the medium sized websites. Sites that occasionally spike, and get a large, but not CNN/Digg sized, amount of traffic.</p>
<p>There are already entire companies based on providing cloud solutions for Ruby, Python and PHP, among others.  CFML is behind on this, and although there are a bunch of good people working on rectifying that problem, we are going to need more.  I think Adobe could kill a couple of birds with one stone by offering a ColdFusion hosting environment to users, in a cloud-like configuration, for a regular hosting fee.  This would solve the licensing issue for those that want to deploy their CF apps in a cloud environment, and allow some companies that are wary of the costs to get in on the ground level, and see what ColdFusion has to offer.</p>
]]></content:encoded>
			<wfw:commentRss>http://mallinson.ca/post/thecloud/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Annual Death of ColdFusion</title>
		<link>http://mallinson.ca/post/annual-death-of-coldfusion/</link>
		<comments>http://mallinson.ca/post/annual-death-of-coldfusion/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 07:37:54 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[The Web]]></category>

		<guid isPermaLink="false">http://cm.local/blogs/wordpress/?p=22</guid>
		<description><![CDATA[I&#8217;ve just about had it with the blog posts, articles, and Twitter comments about the death of ColdFusion &#8211; all from those who have never even read up on it, let alone used it. Aral Balkin&#8217;s ignorant blog post about ColdFusion back in January was uninformed, and was quickly attacked with the full wrath of the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just about had it with the blog posts, articles, and Twitter comments about the death of ColdFusion &#8211; all from those who have never even read up on it, let alone used it. Aral Balkin&#8217;s <a href="http://aralbalkan.com/1864">ignorant blog post</a> about ColdFusion back in January was uninformed, and was quickly attacked with the full wrath of the ColdFusion community. Numerous people took issue with his lack of knowledge about the current iteration of, and future plans for CF.</p>
<p>Many of his criticisms were resolved 8 years ago. Also interesting to note is the fact that there are almost 100 comments to date, and the author has yet to back up his criticism.</p>
<p>Let me step back for a minute here. While ColdFusion is currently my preferred language for RIA development, I am not hanging my hat on the language, and neither are most of the people I know in the CF community. I make a lot of time to learn other languages. I&#8217;m currently knee deep in learning Python/Django and try to keep up with PHP as well. Learning new languages benefits you by broadening your abilities with something new, as well as supplementing your skills in your old language.</p>
<p>The more I learn about other languages, the more I believe that there is very little that CF can not do well. I&#8217;ve read these posts about ColdFusion&#8217;s death before. We&#8217;ve been reading them for years. The criticism of the language does not bother me &#8211; that is necessary for improvements to happen. What bugs me is that the blog posts about the death of CF are always by someone who does not know the language, and it gets read by people who are equally ignorant about the language, but have the ability to make decisions about choice of platform.</p>
]]></content:encoded>
			<wfw:commentRss>http://mallinson.ca/post/annual-death-of-coldfusion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coda Rocks</title>
		<link>http://mallinson.ca/post/coda/</link>
		<comments>http://mallinson.ca/post/coda/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 08:32:39 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Macs]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Coda]]></category>

		<guid isPermaLink="false">http://cm.local/blogs/wordpress/?p=16</guid>
		<description><![CDATA[If you are a web developer, and you spend a lot of time writing code, and you use a Mac, you need to use Coda. Download it here Coda is marketed as &#8220;one window web development&#8221; and it really is. I&#8217;ve been going back and forth between Dreamweaver and Eclipse for coding over the past [...]]]></description>
			<content:encoded><![CDATA[<p>If you are a web developer, and you spend a lot of time writing code, and you use a Mac, you need to use Coda.</p>
<p><a href="http://www.panic.com/coda/">Download it here</a></p>
<p>Coda is marketed as &#8220;one window web development&#8221; and it really is. I&#8217;ve been going back and forth between Dreamweaver and Eclipse for coding over the past few years, and both are great tools. I still use Eclipse for large sites at work, but I needed something for building small sites, and for quickly editing sites I&#8217;ve built in the past.</p>
<p>Coda lets you set up as many sites as you want, and for each site, remembers which files you have open. To make a change, you edit the file, or files and hit publish. It FTPs the files in the background, and keeps everything synchronized. You can even edit files directly on the remote site, which is great if you have specific server config files that you don&#8217;t want to be synchronized.</p>
<p>Also, code recognition is available for HTML, CSS, Javascript, Actionscript, Coldfusion, Perl, Ruby, PHP, Python, and several more. Coda is one of those programs that I&#8217;m happy to pay for. It&#8217;s $79, but will save you time every single day. There is a free trial that I think is fully functional.</p>
<p>Give it a try.</p>
]]></content:encoded>
			<wfw:commentRss>http://mallinson.ca/post/coda/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

