tools

On-The-Fly YUI Compressor

A couple years ago I wrote about using YUI Compressor to do built-time aggregation and compression of static assets.  That works well and good if you have a build environment, but that's not always the case.  So, still using YUI Compressor, I set up a simple script that'll do runtime aggregation and compression of assets [...]

CF9 Compatibility for FB3Lite

I just made another minor tweak to FB3Lite to fix out-of-the-box ColdFusion 9 compatibility.  CF9 added a 'location' built-in function, which means that the function of the same name that FB3Lite provides now generates a compiler error.  Fortunately, since functions are real data within CFML, a simple realiasing gets around the issue.  This creates a [...]

FB3Lite appSearchPath Supports Mappings

Piggybacking on the change to allow mappings in do/include, you can now use mapping-relative paths in the appSearchPath initialization variable as well.  Before you had to use a relative path, which got a little hairy when you had a deeply nested structure:
<cfset appSearchPath = "../../../myApp" />
<cfinclude template="../com/barneyb/fb3lite/index.cfm" />

But now with mappings, you can simplify things, [...]

Minor FB3Lite Feature

If you've used FB3Lite, you may or may not know that it implicitly supports a Fusebox-like circuit structure.  Both do() and include() allow you to invoke fuseactions/templates from other directories within your application, though without the circuit aliasing abstraction layer that Fusebox provides.  This is a great way to break down large applications into multiple [...]

WordPress Shortcodes in CFML

If you've used WordPress, you may have run across shortcodes.  They're little directives you type into the editor box which then evaluate dynamically when the content is rendered on the outside of you site.  Plugins can register new shortcode handlers, which are implemented as a simple function callback.  It's a really simple way to expose [...]

Fake Filenames for Far Future Expires Headers

Everyone knows that one of the best ways to increase page performance is to reduce the number of HTTP requests required for related assets.  There are a pile of ways to approach this (JS/CSS aggregation, image sprites, caching), but the best (and simplest) is client-side caching.  It doesn't help your first-time visitors at all (which [...]

Public URLs via Amazon S3 CFC

I made another minor update to my Amazon S3 CFC this evening, this time to support PUTting public objects.  To this point, the CFC left the default ACL on new objects PUT on S3, meaning that you needed an authorized URL (via a query string signature) to retrieve them.  That was the use case I [...]

Subclipse 1.6's AWESOME New Commit Dialog

I just upgrade to Subclipse 1.6 and it has an awesome new feature: diffs right in the commit dialog.  It seemed a common use case for myself that when it came time to commit, I'd open my commit dialog and cycle through the files writing my commit message in Kate because I couldn't type while [...]

imageTranslateDrawingAxis is Your Friend

I briefly mentioned imageTranslateDrawingAxis in my previous post about Fusebox flowcharts, but wanted to provide a more self-contained example of how it can be used to great effect.  The idea here is to draw a house with a window, and to do it in a relative manner, rather than an absolute manner.  Consider these two [...]

Fusebox XML Flowchart Generator

Fusebox XML Flowchart Generator

About a week ago someone posted on the Fusebox mailing list looking for a way to generate flowcharts from his Fusebox XML files.  Adalon was suggested, but it didn't do quite what he was looking for.  So I sunk some of my spare time into building such a tool, and even managed to refrain from [...]