tools

LessCss for CFML Developers

LessCss is a nifty extension to the core CSS language to support variables, calculated values, inclusion-by-reference, nesting, and some other goodies.  Basically the idea is to simplify and reduce duplication in large stylesheets.  Here's a simple example of a variable and a computed value:
@color: #fdd;
#header {
background-color: @color;
color: @color / 2;
}
That translates [...]

ReversibleNamedMethodPointcutAdvisor

UPDATE: Turns out ColdSpring already has this functionality via the 'includeMappedNames' property in recent versions.  The ColdSpring the app I was working on uses an older ColdSpring.  So if you have a recent version of ColdSpring, this CFC is irrelevant; use the built-in one.
If you use ColdSpring, chances are you've used it's AOP functionality, and [...]

CFGroovy 2 "Release"

CFGroovy 2 has been been released into the wild tonight as it's own project, separate from CFGroovy.  Read all about it on it's shiny new project page.  With the advent of CF9 and built-in ORM tooling, ongoing development with Hibernate integration seems wasteful.  Bugs will be fixed, since there are a fair number of sites [...]

CFGroovy 2 Has Moved

Until this evening, CFGroovy 2 has lived as a branch in the original CFGroovy project.  Now it has it's very own top-level directory.  So if you've any working copies and/or unpinned svn:externals pointed at
https://ssl.barneyb.com/svn/barneyb/cfgroovy/branches/cfgroovy2
you'll need to switch them to point at
https://ssl.barneyb.com/svn/barneyb/cfgroovy2/trunk
instead.
Apologies for any inconvenience this causes, but CFGroovy 2 really isn't a new version of [...]

FB3lite as a Custom Tag

Last night at work Koen uncovered an issue with using FB3lite as a custom tag.  Inside the tag it does "formUrl2Attributes" to merge the two scopes into the attributes scope.  What I'd done incorrectly was omit the "don't override" parameter to the structAppend calls, so the URL and FORM scopes would supercede any existing attributes [...]

Efficient Caching With mod_rewrite

Caching with mod_rewrite?  What?  I'll admit it's a slightly misleading title; the cache is actually a disk cache, but mod_rewrite is where the magic happens.  Bear with me for a moment…
Most content on the web is fairly static.  Some of it changes every few minutes, some changes every few hours, some changes a few times [...]

Minor FB3lite Update (and a Weird CF Bug)

This evening while adding some reporting to PotD (NSFW, OMM) to help nail down some performance issues that I think are Apache's fault, I noticed a strange issue with FB3lite.  If you've used it, you know the core of the "framework" are the do() and include() UDFs.  Both contain a CFINCLUDE tag, and a weird [...]

CFYourFavoriteLanguage (Formerly CFGroovy)

CFGroovy grew some wings this afternoon.  It retains it's core functionality of running Groovy code in a CFML environment, whether you have it installed on your classpath or if it's transparently loaded from the local copy of the JAR.  However, it now supports any JSR 223 scripting language as well (assuming you're on a 1.6 [...]

More CFGroovy2 Goodness

Last night at dinner I was talking with Mark Mandel and Luis Majano and realized I'd completely misunderstood the way JavaLoader worked based on my initial look see.  So for the price of 21 additional lines (nine of which are purely for misbehaving CFML runtimes), CFGroovy will transparently load an internal copy of Groovy if [...]

CFGroovy in Forty Lines

It's been a couple months since I've done anything with CFGroovy.  I've been mulling how to get back to the essence, which is Groovy scriptlets in CFML.  Today at cf.objective() I put my fingers back on the keyboard for the first time.  Here's a full implementation of the <g:script> tag in 40 lines.  There are [...]