CF9 ORM TransactionAdvice

As with any new persistence technology, CF9's ORM functionality has necessitated porting my TransactionAdvice for ColdSpring.  The previous "CFML" version was really "CFML/SQL/ORM" and is still the way to go if you're not using ORM functionality.  The new version (cf9ormtransactionadvice.cfc) is specific to ORM applications on CF9.0.  It will not provide transactionality for SQL-based apps [...]

CF9 ORM and CFGroovy

As I've stated at various times and places, CFGroovy 1 (with Hibernate integration) has been superceded by the ORM functionality now available in ColdFusion 9 and soon to be available in Railo 3.  It has never been my intention to compete with the CFML vendors in the Hibernate space – without access to the engine [...]

Goodbye ColdFusion, Hello Railo

Goodbye ColdFusion, Hello Railo

I've been working towards this for quite some time, and last night I finally replaced ColdFusion with Railo on my personal server.  By and large the switch went flawlessly.  I made a few compatibility changes ahead of time and found and fixed a few issues subsequently, but really smooth overall.  Even better, the memory footprint [...]

BEWARE: Impending Sporadic Brokenness

Tonight I'm switching from my CFML from ColdFusion 8 to Railo 3.1.2.010 (bleeding edge).  So starting here in a couple hours there is undoubtedly going to be broken stuff.  Pic of the Day, of course, is the primary focus of the upgrade and I've already done extensive testing of that codebase on Railo so it [...]

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, [...]

Simple CSS Tabs

Simple CSS Tabs

I use tabs for navigation a lot.  Not for in-page DOM swapping, but for expressing a list of available pages along with indicating which on you're on.  Pretty much every tab "system" is centered around client-side manipulation, rather than just presenting server-generated markup.  And the few counter examples don't do it in an encapsulated way, [...]

Tag-Based HQL Queries on CF9

I'm sure I wasn't the only one that was sorely disappointed when Adobe released CF9 without the ability to execute HQL queries via the CFQUERY tag.  Using a function (ormExecuteQuery) works, but it's really ungainly if you have complex – or even just long – HQL or need to build your statement conditionally, and you [...]

Pic of the Day Minicards

I always get lots of questions about my Pic of the Day minicards, so I made a page on the PotD site with info about them both in general and the individual runs.  As always, NSFW.
The minicards are the only actual "marketing" I do for PotD aside from occasionally link to it so it can [...]

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 [...]