<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
	<channel>
	<title>FusionGrokker</title>
	<link>http://fusiongrokker.com/</link>
	<description>A blog about ColdFusion, Rich Internet Applications, and life as a developer.</description>
	<generator>Mango 1.6</generator>
	
	 
      <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/NerdFusion" /><feedburner:info uri="nerdfusion" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
         <title>CFObjective 2012 Slides and Code</title>
         <description>&lt;p&gt;Thanks to everyone who came to my CFObjective presentations. I hope you submitted those session evaluations. If not, there's still time! And incentive, too. CFObjective is going to be giving out a free pass to CFObjective 2013 at the end of the month, and the winner will be drawn at random from the email addresses submitted in session feedback.&lt;/p&gt;

&lt;p&gt;As promised, here are my slides and code samples for both talks:&lt;/p&gt;

&lt;h3&gt;Hidden Gems in Browser Tools&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fusiongrokker.com/p/browser_gems/"&gt;Slides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/atuttle/Hidden-Gems-in-Browser-Tools-Preso"&gt;Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cfobjective.com/sessions/hidden-gems-in-browser-tools/#sessionSurveyWrapper"&gt;Submit Feedback&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Are You Getting Enough REST?&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://fusiongrokker.com/p/getting_rest/"&gt;Slides&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/atuttle/CF-REST-Comparison"&gt;Code&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.cfobjective.com/sessions/are-you-getting-enough-rest/#sessionSurveyWrapper"&gt;Submit Feedback&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For the REST talk, there seemed to be some interest in more detail about Taffy. If you'd like to know more, here are a few additional resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use the 1.1 bleeding edge release! Many bug fixes &amp;amp; improvements. All that's left before official 1.1 release is a bit more documentation. &lt;a href="https://github.com/downloads/atuttle/Taffy/Taffy_1.1RC1.zip"&gt;Download it here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/atuttle/Taffy/wiki/_pages"&gt;Wiki for documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://groups.google.com/forum/#!forum/taffy-users"&gt;Mailing list&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fusiongrokker.com/post/my-cfobjective-2011-slides-notes"&gt;Slides &amp;amp; Video of my CFObjective 2011 presentation on Taffy 1.0&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/zCKRuP8oIZw" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/zCKRuP8oIZw/cfobjective-2012-slides-and-code</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/cfobjective-2012-slides-and-code</guid>
         <category>REST</category><category>Speaking</category>
         <pubDate>Tue, 22 May 2012 12:10:29 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/cfobjective-2012-slides-and-code</feedburner:origLink></item> 
      <item>
         <title>I Cast Magic Missile on CFObjective</title>
         <description>&lt;p&gt;As I mentioned yesterday, I will be organizing D&amp;amp;D for the Games BOF at CFObjective. Here's a little bit more detail on what to expect and what you need to bring.&lt;/p&gt;

&lt;p&gt;We're in the second BOF time slot so that we can play indefinitely into the night. We'll play until we start falling asleep or until they kick us out of the room, whichever comes first. If we're all still going strong and we get kicked out, we may even try to find an alternate space to continue playing.&lt;/p&gt;

&lt;p&gt;Here's how it's going to work: We'll have a stack of pre-rolled characters of each class, so you don't need to bring anything except yourself and maybe your favorite pencil. If you've got dice/etc feel free to bring them. Oh and if you have a token/minifig for your character, that would probably be helpful too. But again, nothing is required... just show up and we'll try to accommodate you!&lt;/p&gt;

&lt;p&gt;We originally had a volunteer DM, but he is unfortunately not able to make it to the conference this year. If you would like to volunteer in his place, please contact me!&lt;/p&gt;

&lt;p&gt;See you there!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/OOqFoo3iI8s" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/OOqFoo3iI8s/i-cast-magic-missile-on-cfobjective</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/i-cast-magic-missile-on-cfobjective</guid>
         <category>cfObjective</category>
         <pubDate>Wed, 09 May 2012 13:01:06 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/i-cast-magic-missile-on-cfobjective</feedburner:origLink></item> 
      <item>
         <title>Free Booze for Hackers (at CFObjective)</title>
         <description>&lt;p&gt;The BOF's for this year's CFObjective conference &lt;a href="http://www.cfobjective.com/news/birds-of-a-feather-sessions-announced2/"&gt;have just been announced&lt;/a&gt;, and both of my suggestions are among them! I'll talk a little bit about the D&amp;amp;D BOF in my next post, but this time I wanted to share some exciting news about the &lt;a href="http://fusiongrokker.com/post/be-the-change"&gt;CFScript Community Components&lt;/a&gt; Hackathon.&lt;/p&gt;

&lt;p&gt;Adobe has agreed to provide a small sponsorship to cover some drinks at the hotel bar for Hackathon attendees! We've still got to work out the logistics, but hey... free beer. As in &lt;em&gt;free beer!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I've also &lt;del&gt;conned&lt;/del&gt;convinced &lt;a href="http://www.samfarmer.com/"&gt;Sam Farmer&lt;/a&gt; to help out with organizing and running the Hackathon. In fact, it was Sam's idea to get the drinks sponsored, and his hard work and persistence that made it happen.&lt;/p&gt;

&lt;p&gt;Thanks, Sam; and thanks Adobe!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/8gSW8VXy2D0" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/8gSW8VXy2D0/free-booze-for-hackers-at-cfobjective</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/free-booze-for-hackers-at-cfobjective</guid>
         <category>cfObjective</category>
         <pubDate>Tue, 08 May 2012 14:00:35 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/free-booze-for-hackers-at-cfobjective</feedburner:origLink></item> 
      <item>
         <title>Getting nothing but 404's for ColdFusion 10 REST on Apache?</title>
         <description>&lt;p&gt;I was (getting nothing but 404's for CF10 REST on Apache), and it baffled me for days. It turns out that the solution is incredibly simple.&lt;/p&gt;

&lt;p&gt;In my case, I've got several Virtual Hosts setup in Apache, and the CF10 installer isn't accounting for this. All you have to do is add a line to each VHost for which you want to enable REST. The installer adds the line to the global httpd.conf file, but not to the included file that defines VHosts.&lt;/p&gt;

&lt;p&gt;Not only is the separation of vhosts out into an include file standard on recent versions of OSX, it's pretty standard among most Apache installs these days. I imagine that pretty much all developers using Apache and multiple VHosts will run into this problem if and when they try to use the CF10 REST features.&lt;/p&gt;

&lt;p&gt;If you're on OSX, it's probably something like this:&lt;/p&gt;

&lt;pre class='prettyprint'&gt;JkMountFile "/Applications/ColdFusion10/config/wsconfig/1/uriworkermap.properties"
&lt;/pre&gt;

&lt;p&gt;Or on Windows, like this:&lt;/p&gt;

&lt;pre class='prettyprint'&gt;JkMountFile "C:\ColdFusion10\config\wsconfig\1\uriworkermap.properties"
&lt;/pre&gt;

&lt;p&gt;So once added, my localhost VHost entry looked like this, with the new &lt;strong&gt;JkMountFile&lt;/strong&gt; directive in the middle:&lt;/p&gt;

&lt;pre class='prettyprint'&gt;&amp;lt;VirtualHost *:80&amp;gt;

    ServerName localhost
    ServerAlias localhost
    DocumentRoot /Users/adam/Sites/localhost

    ErrorLog /private/var/log/apache2/localhost-error_log
    CustomLog /private/var/log/apache2/localhost-access_log common

    JkMountFile "/Applications/ColdFusion10/config/wsconfig/1/uriworkermap.properties"

    &amp;lt;Directory "/Users/Adam/Sites/localhost"&amp;gt;
        Options Indexes FollowSymLinks
        AllowOverride AuthConfig FileInfo
        Order allow,deny
        Allow from all

        RewriteEngine On
        RewriteOptions Inherit
    &amp;lt;/Directory&amp;gt;

&amp;lt;/VirtualHost&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Simply save the file and restart Apache and you're on your way.&lt;/p&gt;

&lt;p&gt;Credit for this information goes to the &lt;a href="http://rob.brooks-bilson.com/index.cfm/2012/2/23/Configuring-Multiple-Instances-of-ColdFusion-10-with-Apache-Virtual-Hosts"&gt;always wise and insightful Rob Brooks-Bilson&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I've &lt;a href="https://bugbase.adobe.com/index.cfm?event=bug&amp;amp;id=3183938"&gt;filed a bug&lt;/a&gt; against the CF10 installer for this issue. I imagine it's possible that the issue is too nuanced to be able to fix for all users all of the time (or we may not have time to get it fixed before release), but regardless of whether or not the installer is fixed, the documentation needs to make this &lt;em&gt;painfully&lt;/em&gt; clear.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/M34jx81VINM" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/M34jx81VINM/getting-nothing-but-404-s-for-coldfusion-10-rest-on-apache</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/getting-nothing-but-404-s-for-coldfusion-10-rest-on-apache</guid>
         <category>ColdFusion</category>
         <pubDate>Mon, 07 May 2012 15:26:39 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/getting-nothing-but-404-s-for-coldfusion-10-rest-on-apache</feedburner:origLink></item> 
      <item>
         <title>Happy 5th Blog Birthday To Me</title>
         <description>&lt;p&gt;It's hard to believe but this blog is one of the most consistent things I've done online, ever. I don't have the post frequency or count of, say, Ben Nadel or Ray Camden, but I've not gone a single month without posting on this blog &lt;a href="http://fusiongrokker.com/page/archives"&gt;for the last 5 years&lt;/a&gt;. (I even came up with what I consider to be a clever way of navigating old entries by month &lt;a href="http://fusiongrokker.com/page/archives"&gt;in a grid format&lt;/a&gt;, which clearly illustrates this trend.)&lt;/p&gt;

&lt;p&gt;I've been on this domain &lt;a href="http://fusiongrokker.com/post/goodbye-wordpress-hello-mango"&gt;since July 23rd 2007&lt;/a&gt;, but for almost a year prior I was using WordPress installed in a sub-folder on a now-defunct blog, on a domain I recently allowed to expire. Ah, memories.&lt;/p&gt;

&lt;p&gt;At any rate, here's to 5 years, and hopefully many more to come!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/nP9y7GFsKHo" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/nP9y7GFsKHo/happy-5th-blog-birthday-to-me</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/happy-5th-blog-birthday-to-me</guid>
         <category>Meta</category>
         <pubDate>Fri, 27 Apr 2012 13:00:00 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/happy-5th-blog-birthday-to-me</feedburner:origLink></item> 
      <item>
         <title>Bloggers: Stop Outsourcing Your Code Samples!</title>
         <description>&lt;p&gt;I get it, really, I do. Syntax highlighting plugins can sometimes be a pain in the rear... sometimes they don't work the way you want them to, sometimes they conflict with other things your site is trying to do, and sometimes you have to fight with (some of) them to get the characters you want to display displayed (e.g. encoding greater-than and less-than symbols as &amp;amp;gt; and &amp;amp;lt; instead of just writing &amp;gt; and &amp;lt;)...&lt;/p&gt;

&lt;p&gt;Lately I've seen many blogs switching to the use of embedded &lt;a href="http://gist.github.com"&gt;Gists&lt;/a&gt; as a way to show code samples. I think this is a terrible idea.&lt;/p&gt;

&lt;p&gt;Sure, Github seems pretty stable and popular now. I love Github and I host many of my projects there, but you won't see me outsourcing my blog code-sample hosting to them.&lt;/p&gt;

&lt;p&gt;What happens if they get bought by AOL for two billion dollars and AOL decides they just don't like the Gist service. Poof. Gone. Your blog, which will live on in perpetuity (as long as you keep paying the bills) now has large and &lt;em&gt;important&lt;/em&gt; chunks missing. The value of those posts just disappeared. &lt;/p&gt;

&lt;p&gt;Even if they decided to give you 6 months notice before shutting the service down? You'd then have to go through your entire blog history and convert the gists into either another service or embed them in the blog directly.&lt;/p&gt;

&lt;p&gt;By hosting your code samples elsewhere -- anywhere other than on your own blog -- you're making a bet. And that's not a bet I would make, ever.&lt;/p&gt;

&lt;p&gt;I've tried most of the options available. &lt;a href="http://coldfish.riaforge.org/"&gt;ColdFish&lt;/a&gt;, embedded in most versions of BlogCFC is not horrible. I even used the aptly but unimaginatively named &lt;a href="http://code.google.com/p/syntaxhighlighter/"&gt;Syntax Highlighter&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;These days I've settled on what I think is a much more robust solution: &lt;a href="http://code.google.com/p/google-code-prettify/"&gt;Prettify&lt;/a&gt;. It's a JS library from Google that is 100% language agnostic. You don't have to do any "brushes" like Syntax Highlighter. You just wrap every code sample in &lt;code class='prettyprint'&gt;&amp;lt;pre class="prettyprint"&amp;gt;&lt;/code&gt; and include the JS library on your page. And if you're not a huge fan of the color scheme, &lt;a href="http://google-code-prettify.googlecode.com/svn/trunk/styles/index.html"&gt;there are existing themes&lt;/a&gt; and it's easy to tweak it and create your own, too.&lt;/p&gt;

&lt;p&gt;So please, bloggers... Knock it off. You're making the internet worse, not better, with these shenanigans.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/kfBqfMSHYd8" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/kfBqfMSHYd8/bloggers-stop-outsourcing-your-code-samples</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/bloggers-stop-outsourcing-your-code-samples</guid>
         <category>Meta</category>
         <pubDate>Thu, 19 Apr 2012 12:18:58 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/bloggers-stop-outsourcing-your-code-samples</feedburner:origLink></item> 
      <item>
         <title>How you can contribute to Taffy documentation</title>
         <description>&lt;p&gt;I've had more than one person offer to help me with Taffy documentation lately, and I would love to be able to open it up just like the source code of the project so that people could make proposed changes and submit a pull request. Unfortunately this is &lt;a href="https://github.com/github/gollum/issues/265"&gt;a standing request that's yet to be filled for Github Wiki's&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I think I may have found a workaround.&lt;/p&gt;

&lt;p&gt;It takes a little bit of extra effort (only a little!) and I would only recommend it for intermediate gitter's and above. (&lt;em&gt;Sorry noobs!&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;Every wiki should be available as a git repo already. For example, you can see Taffy's &lt;a href="https://github.com/atuttle/Taffy/wiki/_access"&gt;here&lt;/a&gt;, and FW/1's &lt;a href="https://github.com/seancorfield/fw1/wiki/_access"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;My proposed workflow is this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Manually create a fork of the Taffy wiki on your Github account:
&lt;ul&gt;&lt;li&gt;Create a new repository on your github account. Let's call it "Taffy-Wiki".&lt;/li&gt;
&lt;li&gt;Clone the Taffy wiki repo to your local machine somewhere:&lt;br/&gt;&lt;code class='prettyprint'&gt;git clone git://github.com/atuttle/Taffy.wiki.git&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Remove the original "origin" remote and add your github repo as new "origin"&lt;br/&gt;&lt;code class='prettyprint'&gt;git remote rm origin&lt;/code&gt; and&lt;br/&gt;&lt;code class='prettyprint'&gt;git remote add origin git://github.com/&amp;lt;YOUR_USERNAME&amp;gt;/Taffy-Wiki.git&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;Make your proposed changes locally, then push them to your github account:&lt;br/&gt;&lt;code class='prettyprint'&gt;git push -u origin master&lt;/code&gt;&lt;br/&gt;('-u origin master' only required the first time; afterwards just do &lt;code class='prettyprint'&gt;git push&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Submit a ticket to the &lt;a href="https://github.com/atuttle/Taffy/issues"&gt;official Taffy issue tracker&lt;/a&gt; requesting me to review your changes and merge them in. &lt;strong&gt;Please be sure to include a link to your repo and describe what you've changed.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Goto #2&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I apologize if that sounds complicated, but when you think about it in comparison to making code changes and submitting a pull request, it's not &lt;em&gt;that much&lt;/em&gt; more complex. Also, here's a script you can copy/paste into your terminal that will do the forking for you, except the repo creation:&lt;/p&gt;

&lt;pre class='prettyprint'&gt;git clone git://github.com/atuttle/Taffy.wiki.git; cd Taffy.wiki; git remote rm origin; git remote add origin git://github.com/&amp;lt;YOUR_USERNAME&amp;gt;/Taffy-Wiki.git
&lt;/pre&gt;

&lt;p&gt;This requires that you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First create a new Github repo named "Taffy-Wiki"&lt;/li&gt;
&lt;li&gt;Insert your github username for &lt;code class='prettyprint'&gt;&amp;lt;YOUR_USERNAME&amp;gt;&lt;/code&gt; toward the end&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This way anyone can submit documentation patches and I'll be able to review easily merge them in and keep the published wiki updated. (I had considered just putting the wiki source in to a folder or branch of the source repo, or its own repo, but that comes with its own challenges like keeping the published wiki updated.)&lt;/p&gt;

&lt;p&gt;Thanks for your interest and contributions!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/34_HwNtS7jc" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/34_HwNtS7jc/how-you-can-contribute-to-taffy-documentation</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/how-you-can-contribute-to-taffy-documentation</guid>
         <category>Git</category><category>Taffy</category>
         <pubDate>Fri, 13 Apr 2012 16:57:50 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/how-you-can-contribute-to-taffy-documentation</feedburner:origLink></item> 
      <item>
         <title>Recent Entries plugin for Mango Blog</title>
         <description>&lt;p&gt;A new site I've been working on had the need for a Mango plugin that surprisingly didn't already exist, so I wrote it. &lt;a href="https://github.com/atuttle/Mango-RecentEntries"&gt;Recent Entries&lt;/a&gt; adds a pod that shows... you guessed it: recent entries.&lt;/p&gt;

&lt;p&gt;You configure it with the number of entries you want displayed, the pod title, and the length of the post-content preview you want. Setting it to zero completely removes the preview.&lt;/p&gt;

&lt;p&gt;The plugin &lt;em&gt;does not&lt;/em&gt; attempt to style the output at all; you should style it to match your theme. The emitted HTML resembles:&lt;/p&gt;

&lt;pre class='prettyprint'&gt;&amp;lt;div id="RecentEntries"&amp;gt;
    &amp;lt;ul&amp;gt;
        &amp;lt;li&amp;gt;
            &amp;lt;a href="http://yourblog.com/post/post-title"&amp;gt;Post Title&amp;lt;/a&amp;gt;
            &amp;lt;span&amp;gt;Post Excerpt...&amp;lt;/span&amp;gt;
        &amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; There was a small bug with the URL's that it would use for the posts. That has been fixed, and the version number has been increased to 1.0.1 so that auto-install will work, if you need to update.&lt;/p&gt;

&lt;dl class="plugin-data"&gt;
&lt;dt&gt;Plugin:&lt;/dt&gt;&lt;dd&gt;Recent Entries&lt;/dd&gt;
&lt;dt&gt;Version:&lt;/dt&gt;&lt;dd&gt;1.0.1&lt;/dd&gt;
&lt;dt&gt;Requires:&lt;/dt&gt;&lt;dd&gt;Mango Blog 1.5+&lt;/dd&gt;
&lt;dt class="install"&gt;Auto-install URL:&lt;/dt&gt;
&lt;dd class="install"&gt;&lt;a href="/get/RecentEntries"&gt;http://fusiongrokker.com/get/RecentEntries&lt;/a&gt;&lt;/dd&gt;
&lt;/dl&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/NCTqFPKeUaE" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/NCTqFPKeUaE/recent-entries-plugin-for-mango-blog</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/recent-entries-plugin-for-mango-blog</guid>
         <category>Mango</category><category>My projects</category>
         <pubDate>Mon, 09 Apr 2012 12:05:00 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/recent-entries-plugin-for-mango-blog</feedburner:origLink></item> 
      <item>
         <title>Creating QR Codes with ColdFusion (without Google's API)</title>
         <description>&lt;p&gt;&lt;img src="https://chart.googleapis.com/chart?cht=qr&amp;amp;chs=150x150&amp;amp;chld=L|0&amp;amp;chl=http://qrtoad.riaforge.org/" style="float:right;margin-left:5px" /&gt;Whenever I need to create QR codes, I just &lt;a href="https://google-developers.appspot.com/chart/infographics/docs/qr_codes"&gt;use Google's API&lt;/a&gt;. But occasionally, you might decide that the volume of QR codes you want to generate would be prohibitive or too slow. In cases like that, you simply can't use a 3rd party API like the one Google provides.&lt;/p&gt;

&lt;p&gt;Thankfully, there's a JAR for that, and &lt;a href="https://twitter.com/#!/TimCunningham71/status/187542165772181504"&gt;Tim Cunningham&lt;/a&gt; has gone to the trouble of putting it together as an open source project, &lt;a href="http://qrtoad.riaforge.org/"&gt;QRToad&lt;/a&gt;. Love the name, Tim!&lt;/p&gt;

&lt;p&gt;So if you need to create QR Codes from ColdFusion, now you can.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/UTIUiyhRrHU" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/UTIUiyhRrHU/creating-qr-codes-with-coldfusion-without-google-s-api</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/creating-qr-codes-with-coldfusion-without-google-s-api</guid>
         <category>ColdFusion</category><category>Community</category>
         <pubDate>Thu, 05 Apr 2012 12:02:00 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/creating-qr-codes-with-coldfusion-without-google-s-api</feedburner:origLink></item> 
      <item>
         <title>Fix for Intermittent Default Icon with PhoneGap Build</title>
         <description>&lt;p&gt;Lately I've been doing a bunch of work using &lt;a href="http://www.phonegap.com"&gt;PhoneGap&lt;/a&gt;'s great new(ish) service, &lt;a href="http://build.phonegap.com"&gt;PhoneGap Build&lt;/a&gt;, which automates the build process for all available platforms from simply your html/css/js, and 1 additional XML file. If you've done much with PhoneGap, you know just how awesome this service is. No more dealing with managing separate projects for iOS, Android (, WebOS, Simbian, and BlackBerry); you just need your application content and 1 XML file. Really, it's awesome. I can't say it enough.&lt;/p&gt;

&lt;p&gt;But this post isn't (just) to espouse the wonders of PhoneGap Build.&lt;/p&gt;

&lt;p&gt;I was having an issue with one of my apps where the icon I was providing would &lt;em&gt;intermittently&lt;/em&gt; not be the one that the app would have once installed on the device. Instead of my nicely designed actual icon, I'd see the (old) PhoneGap default icon, that I refer to as "the ladder icon":&lt;/p&gt;

&lt;p align="center"&gt;&lt;img src="/assets/content/phonegap_build_default_icon.png" alt="PhoneGap Build Default Icon" /&gt;&lt;/p&gt;

&lt;p&gt;What perplexed me about this was that it was intermittent, and I never changed anything having to do with the icons, after having added them originally. My project has an "icons" folder containing icons of various sizes -- everything required for iOS (that is, old iPhones, iPhones with retina displays, and iPads), and Android. This app isn't specifically targeting any other platforms, so I'm not worried about providing an exact-fit icon, if one of the Android/iOS ones doesn't cover it.&lt;/p&gt;

&lt;p&gt;Because the issue is intermittent, I was thinking that it had to be a problem with the Build service. Some bug that prevents it from seeing the icons in certain conditions. And I was pretty close to "fuming".&lt;/p&gt;

&lt;p&gt;After a while I shelved the issue and moved on to other things. One of the other things I had to resolve was getting the app to build for iOS. I had to add our certificate and mobile provisioning file. And going through this process, oddly enough, is what led me to the fix for my icon problem.&lt;/p&gt;

&lt;p&gt;The PGB website reported, as an error during the iOS build process, that the Android icon file couldn't be found. Why it was looking at that is anybody's guess, but what turned out to be the problem was that a hyphen in my XML file was actually an underscore in my file name. The files all existed but &lt;em&gt;some of them&lt;/em&gt; were not correctly indexed (for lack of a better term) in the XML file.&lt;/p&gt;

&lt;p&gt;I still don't know why the issue was intermittent. I guess that sometimes the build service was smart enough to find a suitable default among the other resolution icons available; and other times it wasn't, and fell back to the PhoneGap default. That seems like the only plausible explanation to me.&lt;/p&gt;

&lt;p&gt;But the fact remains: Since fixing the filename in config.xml, I haven't had any more icon issues.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/-KCoX4yaz6A" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/-KCoX4yaz6A/fix-for-intermittent-default-icon-with-phonegap-build</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/fix-for-intermittent-default-icon-with-phonegap-build</guid>
         <category>Mobile</category><category>PhoneGap</category>
         <pubDate>Wed, 04 Apr 2012 12:04:00 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/fix-for-intermittent-default-icon-with-phonegap-build</feedburner:origLink></item> 
      <item>
         <title>Enough Already!</title>
         <description>&lt;p&gt;Ask any pro-sumer Android user, any Android-supporting developer, and a good chunk of your average Android consumers what the biggest problem facing Android is, and they'll likely all agree that it's device/os fragmentation, as perpetrated by OEMs and carriers. It's a fact.&lt;/p&gt;

&lt;p&gt;So why must the media rehash this tidbit over and &lt;a href="http://www.zdnet.com/blog/perlow/im-sick-to-death-of-android/20242"&gt;over&lt;/a&gt;? Enough already! We get it! You're pissed because you haven't received an Over-The-Air update from your carrier bringing you all of the latest and greatest bug fixes and features. To be honest, I'd be pretty peeved about it too, if I were a whiny journalist. But I'm not, I'm the target audience for Android: if I don't like something about my phone, I change it. I write the missing app. I root. I install Cyanogen, or even just stock Android.&lt;/p&gt;

&lt;p&gt;You see, whiny journalists, we have options. And sure, you kind of need a computer science degree to exercise &lt;em&gt;some of them&lt;/em&gt;. But I'd say the odds are good you've got a friend or two with the brains to help you out.&lt;/p&gt;

&lt;p&gt;Compare this with the Apple ecosystem. Apple decides whether or not your device gets an update, and if you're lucky enough (see also: have paid your Apple dues and upgraded recently enough) then you'll be chosen.&lt;/p&gt;

&lt;p&gt;The criminals here, if there are any, are not Google. They're shipping an open source product. That's all that they can do. No, the criminals would be OEMs and Carriers. But of course, that's not news. Everyone knows that the Verizons and AT&amp;amp;T's and Motorola's and Samsung's of the world are more or less out to provide the minimum possible product to get you to spend your money with them.&lt;/p&gt;

&lt;p&gt;Hold &lt;em&gt;them&lt;/em&gt; responsible. Shine the spotlight on them. Do some investigation into why Samsung is dragging its feet with ICS updates for the Galaxy Nexus, or why, &lt;em&gt;specifically why&lt;/em&gt; Motorola still hasn't released ICS updates for any of its handsets. That's the story, dear journalists.&lt;/p&gt;

&lt;p&gt;And if you don't like it, you're welcome to go crawling back to Apple, where &lt;a href="http://www.computerworld.com/s/article/9216192/Apple_patent_app_shows_plans_for_location_data"&gt;invasion of privacy is a "feature"&lt;/a&gt;; where small-time apps that show cleavage are removed from the app store "to protect the children" while &lt;a href="http://itunes.apple.com/us/app/playboy/id340150554?mt=8"&gt;Playboy&lt;/a&gt; and &lt;a href="http://itunes.apple.com/us/app/sports-illustrated-swimsuit/id429767601?mt=8"&gt;Sports Illustrated Swimsuit Edition&lt;/a&gt; remain (one can only assume Apple is very much enjoying its 30% cut of the sales, which one can only assume have gone up since they've decreased the supply of competing apps); and where it can take months to have an application submission reviewed, ultimately to be denied on a technicality.&lt;/p&gt;

&lt;p&gt;Here's what really matters, dear journalists:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What do you believe in? What do you stand for?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I believe in an open marketplace where cream rises to the top and chaff sinks to the bottom.&lt;/p&gt;

&lt;p&gt;I believe in parental controls that &lt;a href="https://www.kytephone.com/"&gt;&lt;em&gt;give control to parents&lt;/em&gt;&lt;/a&gt; instead of letting a company decide what's to be allowed and what's not.&lt;/p&gt;

&lt;p&gt;I believe that if goals like these are to become the standard, then people like you and I must willingly -- if not begrudgingly -- "suffer" the lack of OTA updates (and work to improve that situation).&lt;/p&gt;

&lt;p&gt;If the platform that's got humanity's best interests at heart is to become the victor, then we must support it in its time of need.&lt;/p&gt;

&lt;p&gt;So don't be complacent, but for the love of god stop whining! You've got a really bright light at your disposal. You're a journalist. This is your job: Shine your light where it might actually do some good.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/X18g6ci_d8I" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/X18g6ci_d8I/enough-already</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/enough-already</guid>
         <category>Android</category><category>Apple</category>
         <pubDate>Thu, 29 Mar 2012 13:19:53 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/enough-already</feedburner:origLink></item> 
      <item>
         <title>Hackathon BOF at CFObjective (Need your votes!)</title>
         <description>&lt;p&gt;I was perusing the &lt;a href="http://engage.cfobjective.com/index.cfm/topicSuggestions/"&gt;list of proposed CFObjective BOF's&lt;/a&gt; over the weekend, and was struck with an idea for one I should submit: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Hackathon to continue fleshing out &lt;a href="http://fusiongrokker.com/post/be-the-change"&gt;CFScript Community Components&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Not sure what a BOF is? Jason Dean has &lt;a href="http://www.12robots.com/index.cfm/2012/3/23/Seriously--Come-On"&gt;a great description&lt;/a&gt; on his blog. And since this BOF would really be a micro-hackathon, I'll add this: They're scheduled to be after dinner, so you'll be well fed and happy, possibly a little inebriated if that's your thing. The plan is: gather, talk about which tags we're most interested in writing, and simply sit down and code them up... in the company of your fellow community members. That's it. That's what a Hackathon is. At the end of the night, or whenever you're finished, you can submit a pull request to the project on GitHub, and I will be forever in your debt. (Maybe not &lt;em&gt;forever.&lt;/em&gt; I couldn't do that for certain people... like Jason Dean.)&lt;/p&gt;

&lt;p&gt;So if you've ever thought that you might want to contribute a tag or two, but you don't know the first thing about Git, this is a good opportunity. We can either give you a crash course in just enough git to participate, or just set it up for you. Either way, we'll try to make it as low-friction as possible and get out of your way so you can &lt;em&gt;make script happen!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But of course, this is predicated on the BOF being selected. Please &lt;a href="http://engage.cfobjective.com/"&gt;go to the CFObjective site&lt;/a&gt; (you'll have to login with your twitter account) and vote for this BOF (and any others you find interesting); and hey, if the urge strikes you, submit one of your own!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/mY0BYMw_3RI" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/mY0BYMw_3RI/hackathon-bof-at-cfobjective-need-your-votes</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/hackathon-bof-at-cfobjective-need-your-votes</guid>
         <category>cfObjective</category><category>My projects</category>
         <pubDate>Mon, 26 Mar 2012 12:10:00 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/hackathon-bof-at-cfobjective-need-your-votes</feedburner:origLink></item> 
      <item>
         <title>Speaking at Philly CFUG on 4/12</title>
         <description>&lt;p&gt;I'll be presenting an early sneak peak at one of &lt;a href="http://www.cfobjective.com/speakers/adam-tuttle/"&gt;my two cf.Objective 2012 presentations&lt;/a&gt; at my local CFUG on April 12th. The title of the presentation is, "Hidden Gems in Browser Tools" (Hopefully Charlie doesn't mind my borrowing the concept), and the idea is to show off lots of little features of Firebug, Chrome Developer Tools, etc, that most people don't realize are available to them, and a few tricks to become just &lt;em&gt;a little bit more&lt;/em&gt; productive. &lt;/p&gt;

&lt;p&gt;If you're in the area, and you want to get some tips that will help you be more productive at debugging JavaScript and CSS in Chrome, Firefox, and Internet Explorer (even Safari &amp;amp; Opera get a few mentions), I would encourage you to attend.&lt;/p&gt;

&lt;p&gt;You can get all of the meeting details on &lt;a href="http://www.phillycfug.org/post/april-meeting-adam-tuttle-presents-hidden-gems-in-browser-tools"&gt;the Philly CFUG website&lt;/a&gt;, and if you're planning to attend, &lt;a href="http://anyvite.com/events/home/wbqwqswglc"&gt;please RSVP&lt;/a&gt; so that we can get an accurate head-count for food.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/ApoKtXpppuk" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/ApoKtXpppuk/speaking-at-philly-cfug-on-4-12</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/speaking-at-philly-cfug-on-4-12</guid>
         <category>Speaking</category>
         <pubDate>Fri, 23 Mar 2012 13:03:39 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/speaking-at-philly-cfug-on-4-12</feedburner:origLink></item> 
      <item>
         <title>URL Rewriting for Mango on IIS7</title>
         <description>&lt;p&gt;With IIS7, Microsoft has finally baked URL Rewriting into the core. Actually, that's a lie -- one I believed to be true until I tried to use it myself, in fact -- but at least the extra install is provided by Microsoft, so most development shops and hosting providers can be persuaded into installing it. &lt;/p&gt;

&lt;p&gt;For me, it wasn't plainly obvious how to use it; and finding the details required more digging than I would have if I were using Apache and mod_rewrite, so It thought I would share what I found.&lt;/p&gt;

&lt;p&gt;First, you obviously need to be running IIS7 and a modern version of the .Net framework. Then, you need to &lt;a href="http://www.iis.net/download/URLRewrite"&gt;install the plugin&lt;/a&gt; that handles the rewriting. Make sure you get the right version -- there's one for x86 and one for x64.&lt;/p&gt;

&lt;p&gt;Next add a &lt;strong&gt;web.config&lt;/strong&gt; file to your application. In the case of Mango Blog, that would either be the folder that contains it, or the web root. I haven't tested it exhaustively, but it should work in a sub-folder.&lt;/p&gt;

&lt;p&gt;If you didn't already have a web.config file, this is all you need. If you already had one, just copy in the relevant sections.&lt;/p&gt;

&lt;pre class='prettyprint'&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
&amp;lt;configuration&amp;gt;
    &amp;lt;system.webServer&amp;gt;
        &amp;lt;rewrite&amp;gt;
            &amp;lt;rules&amp;gt;
                &amp;lt;rule&amp;gt;
                    &amp;lt;match url="^search/(.*)$" /&amp;gt;
                    &amp;lt;action type="Rewrite" url="archives.cfm/search/{R:1}" /&amp;gt;
                &amp;lt;/rule&amp;gt;
                &amp;lt;rule&amp;gt;
                    &amp;lt;match url="^post/(.*)$" /&amp;gt;
                    &amp;lt;action type="Rewrite" url="post.cfm/{R:1}" /&amp;gt;
                &amp;lt;/rule&amp;gt;
                &amp;lt;rule&amp;gt;
                    &amp;lt;match url="^author/(.*)$" /&amp;gt;
                    &amp;lt;action type="Rewrite" url="author.cfm/{R:1}" /&amp;gt;
                &amp;lt;/rule&amp;gt;
                &amp;lt;rule&amp;gt;
                    &amp;lt;match url="^archives/(.*)$" /&amp;gt;
                    &amp;lt;action type="Rewrite" url="archives.cfm/{R:1}" /&amp;gt;
                &amp;lt;/rule&amp;gt;
                &amp;lt;rule&amp;gt;
                    &amp;lt;match url="^archives/category/(.*)$" /&amp;gt;
                    &amp;lt;action type="Rewrite" url="archives.cfm/category/{R:1}" /&amp;gt;
                &amp;lt;/rule&amp;gt;
                &amp;lt;rule&amp;gt;
                    &amp;lt;match url="^page/(.*)$" /&amp;gt;
                    &amp;lt;action type="Rewrite" url="page.cfm/{R:1}" /&amp;gt;
                &amp;lt;/rule&amp;gt;
                &amp;lt;rule&amp;gt;
                    &amp;lt;match url="^feeds/rss$" /&amp;gt;
                    &amp;lt;action type="Rewrite" url="feeds/rss.cfm" /&amp;gt;
                &amp;lt;/rule&amp;gt;
                &amp;lt;rule&amp;gt;
                    &amp;lt;match url="^feeds/atom$" /&amp;gt;
                    &amp;lt;action type="Rewrite" url="feeds/atom.cfm" /&amp;gt;
                &amp;lt;/rule&amp;gt;
            &amp;lt;/rules&amp;gt;
        &amp;lt;/rewrite&amp;gt;
    &amp;lt;/system.webServer&amp;gt;
&amp;lt;/configuration&amp;gt;
&lt;/pre&gt;

&lt;p&gt;You can customize the URLs a bit to your liking, just be sure to update the &lt;code class='prettyprint'&gt;setting&lt;/code&gt; table in your Mango database so that it generates links that will match your rewrite rules.&lt;/p&gt;

&lt;p&gt;I hope that helps you.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/VFqoHDXiaK0" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/VFqoHDXiaK0/url-rewriting-for-mango-on-iis7</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/url-rewriting-for-mango-on-iis7</guid>
         <category>Mango</category>
         <pubDate>Wed, 14 Mar 2012 12:01:09 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/url-rewriting-for-mango-on-iis7</feedburner:origLink></item> 
      <item>
         <title>How my dev stack has changed in recent weeks</title>
         <description>&lt;p&gt;While I'm always pushing myself to try new things and find ways to be more productive, over time I've developed a sort of "home base" for the tools that I use to get my work done. I thought I would start by describing what that home base is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ColdFusion Builder 2&lt;/li&gt;
&lt;li&gt;Chrome &amp;amp; FireFox (latest stable builds) and their respective developer tools&lt;/li&gt;
&lt;li&gt;Samsung Galaxy Tab 10.1"&lt;/li&gt;
&lt;li&gt;Android Smartphone (currently a Motorola DroidX)&lt;/li&gt;
&lt;li&gt;LESS CSS&lt;/li&gt;
&lt;li&gt;jQuery&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.github.com/bootstrap/"&gt;Bootstrap&lt;/a&gt; (most especially for the responsive css grids)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And yes, while the last three are technically "frameworks", I consider them an indispensable part of my tool belt. It is the exception, not the rule, when I find myself starting a green-field project and NOT using one of them.&lt;/p&gt;

&lt;p&gt;For months now I've been a true believer in at least "always mobile" if not "mobile first". The percentage of consumption being done on phones and tablets is already astonishing and still on an upward trend, so if your websites aren't optimized for mobile screens you're already at a disadvantage. So I test everything that I work on with both my tablet and my phone.&lt;/p&gt;

&lt;p&gt;If you don't have a tablet I would recommend you get one, if only for this purpose. They can be pricey, so if you're on a limited budget my advice would be to keep your eye on &lt;a href="http://www.woot.com"&gt;Woot&lt;/a&gt; -- they seem to have tablets on sale at least 2-3 times a month. Subscribe to the daily email and watch for a deal on the tablet you want. I got mine at a really nice discount, and it's been worth every penny, even if just for testing purposes. The fact that my kids and I then have it to play with in leisure time is all bonus.&lt;/p&gt;

&lt;p&gt;And of course whatever toolkit I'm using has to have good support for ColdFusion. Not just syntax highlighting, but real productivity features.&lt;/p&gt;

&lt;p&gt;I spent some time trying to use TextMate as my primary IDE (during my time also learning Ruby on Rails for a few projects at Wharton), but constantly found myself hitting &lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;&amp;#11014;&lt;/kbd&gt;/&lt;kbd&gt;Alt&lt;/kbd&gt;+&lt;kbd&gt;&amp;#11015;&lt;/kbd&gt; to move lines up/down, or hitting the CFB keyboard shortcuts and then frustratingly typing out things like &lt;code class='prettyprint'&gt;&amp;lt;!--- ---&amp;gt;&lt;/code&gt; and &lt;code class='prettyprint'&gt;&amp;lt;cfdump var="##" /&amp;gt;&lt;/code&gt;... As tiny and insignificant as these types of shortcuts are, if you use them 100 times in a day, you're going to miss them when they're gone. And this doesn't even account for things like code insight and CFB Extensions. Neither of these is a constant fixture in my process, but when they do pop up, I'm incredibly thankful for them.&lt;/p&gt;

&lt;p&gt;So what's inspired me to write this post? Three new (to me) things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="http://incident57.com/less/"&gt;Less.app&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.sublimetext.com/2"&gt;SublimeText 2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://labs.adobe.com/technologies/shadow/"&gt;Adobe Shadow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Less.app&lt;/h3&gt;

&lt;p&gt;I've been using LESS ever since I saw &lt;a href="http://www.dopefly.com"&gt;Nathan Strutz&lt;/a&gt; demo it at MAX 2011. That does not make me an early adopter. I consider myself late to this party. Lucky for me, the party is still raging on at 3am. And it's a damn fine party.&lt;/p&gt;

&lt;p&gt;But, because I'm lazy, I was taking the lazy route. I would directly include my .less files in-page, and the less JavaScript library, and it would be converted on the fly. This way I didn't have to add any steps to my development process to compile LESS to CSS for testing. Granted, it seemed fast as hell, but even fast as hell is greater than zero milliseconds, and in this game every millisecond counts.&lt;/p&gt;

&lt;p&gt;This week I stumbled on &lt;a href="http://incident57.com/less/"&gt;Less.app&lt;/a&gt;, which is an OSX application (There's a &lt;a href="http://www.proving-ground.be/less/"&gt;Cross-platform port using AIR&lt;/a&gt;, but the native one's better looking on OSX) that you leave running in the background, and it auto-compiles your .less files into css, optionally minifying in the process, instantly when you save a change to a .less file. Practically, this means that I write LESS code, and by the time I &lt;kbd&gt;Cmd&lt;/kbd&gt;+&lt;kbd&gt;Tab&lt;/kbd&gt; over to Chrome and refresh the page, the css file has been updated with my changes.&lt;/p&gt;

&lt;p&gt;And even better? On the off chance that I make a syntax error, like forgetting a closing &lt;code class='prettyprint'&gt;}&lt;/code&gt; brace, Less.app immediately alerts me to that fact. (The messaging could be clearer, but once I figured out what was going on, it started being easy to spot my mistakes.)&lt;/p&gt;

&lt;h3&gt;Sublime Text 2&lt;/h3&gt;

&lt;p&gt;I totally get why some people don't dig Sublime. It's definitely not for everyone, and to be honest I'm still not 100% sold on it. But it definitely has some features that I'm growing used to and will be adding as feature requests for CFBuilder. I've been using it off and on for a month or two, and then last week I decided to try and use it as my only IDE. I survived, but I think ultimately I'll end up with CFBuilder keeping the top spot in my tool belt. If I just need to edit 1 or 2 files, and I know I won't need the more advanced features of builder, then I'll use Sublime for its lightning fast startup and file-loading times. &lt;/p&gt;

&lt;p&gt;In particular, my favorite sublime feature is &lt;kbd&gt;Cmd&lt;/kbd&gt;+&lt;kbd&gt;D&lt;/kbd&gt;. Highlight a variable and press this key combo. Each time you press it, Sublime highlights the next occurrence of the same word... but the trick is that it doesn't un-highlight any as it goes. It uses multiple-selection, so after you've selected each of these occurrences, just start typing and you'll replace them all at once. I don't know exactly why I like this better than a search/replace. Maybe it's that I get to see each instance as I add it to the collection. But it just feels so much more natural.&lt;/p&gt;

&lt;h3&gt;Adobe Shadow&lt;/h3&gt;

&lt;p&gt;Shadow is a great little tool that was just released last Wednesday. It's actually not entirely new technology. It's based on an existing project that accomplishes the same thing, but the difference is that Shadow is easy to setup and use, where the original project (&lt;a href="http://phonegap.github.com/weinre/"&gt;Weinre&lt;/a&gt;, which stands for Web Inspector Remote, and is pronounced "winery" (or "wiener"? who knows...)) was complicated and difficult to get running, or so I'm told. Right now it's what's called an "MVP", or Minimum Viable Product. This means that Adobe has lots of ideas and plans for where they could take this, but right now its features are limited to just enough to get the point across and make an impression. The limitation is that currently it only watches for URL changes and follows them. You can't submit forms/etc. But it has made an impression on me!&lt;/p&gt;

&lt;p&gt;There are 3 components to Shadow: A desktop app, a Chrome extension, and a native app that you install on your (iOS and Android) phones and tablets. You turn them all on and enter a couple of numeric passcodes to connect the devices to the desktop, and from then on, the devices open whatever web address you have open in Chrome. They... shadow... you. &lt;em&gt;Get it?&lt;/em&gt; Not only that, but you can do what's called Remote Debugging. If you're familiar with Chrome Dev Tools, which allow you to tweak the HTML, CSS, and JavaScript of a live page and see the effect -- that's what remote debugging is. Except you're doing it directly on the selected device, from your computer. I can pretty much say, this is the best thing to happen to front-end web development since CSS.&lt;/p&gt;

&lt;p&gt;If you're a visual person and don't really get what Shadow does for you, you can &lt;a href="http://tv.adobe.com/watch/adobe-technology-sneaks-2012/adobe-shadow"&gt;see it in action in this video on Adobe TV&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's interesting to note that for the most part my tool belt isn't changing, I'm just adding to it. Sublime isn't really replacing my CFBuilder usage, but rather complementing it in a few cases where I would have previously used Notepad++ or something along that line.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/NerdFusion/~4/45tq87AlyE8" height="1" width="1"/&gt;</description>
         <link>http://feedproxy.google.com/~r/NerdFusion/~3/45tq87AlyE8/how-my-dev-stack-has-changed-in-recent-weeks</link>
         <guid isPermaLink="false">http://fusiongrokker.com/post/how-my-dev-stack-has-changed-in-recent-weeks</guid>
         <category>CFBuilder</category><category>ColdFusion</category>
         <pubDate>Mon, 12 Mar 2012 12:18:19 GMT</pubDate>
      <feedburner:origLink>http://fusiongrokker.com/post/how-my-dev-stack-has-changed-in-recent-weeks</feedburner:origLink></item> 
   </channel>
</rss>

