2009

You are browsing the archive for 2009.

OBD is On The Ball

Both of the bugs I found in Open BlueDragon while working on CFGroovy have been fixed.  Yay for being on the ball.  The bugs were that CFDIRECTORY didn't recurse if you used a filter and that numberFormat didn't accept java.math.BigDecimal as a valid number.

CFGroovy Updates

I made a bunch of updates to CFGroovy tonight, mostly centered around two main objectives:

refocus on the original objective, inline Groovy scriptlets
support Open BlueDragon

The first objective is based on my experience developing the last couple apps I've used CFGroovy on.  Hibernate is kickass, but neither of the apps used it; they only used CFGroovy for [...]

CFGroovy for Open BlueDragon!

Doing some hacking around this evening and got CFGroovy to successfully run simple scripits on Open BlueDragon 1.0.1.  It still doesn't support array/struct literals (WTF?) so the engine won't run in it's entirety, but the core integration flow works.  That's promising.  There are still a pile of issues to work out (like some major path-related [...]

The Latest ColdFusion Mindƒµ©Ҝ

It's pretty common knowledge that ColdFusion passes arrays to UDF by value, and not by reference like pretty much every other language.  It's a weird behaviour, but as long as you remember to write array-processing functions to be used like this:
<cfset myArray = modifyArray(myArray) />
instead of like this:
<cfset modifyArray(myArray) />
you'll be fine.  However, someone pointed [...]

Functional Programming Languages

Ever done functional programming?  Chances are you'll say "no", but you'll probably be wrong.  Javascript is a functional language, and while a lot of people use it in a procedural and/or object oriented way (\me raises hand), it's foundation is functional.  Same deal with ActionScript.  Used Groovy?  Ruby?  Python?  None are functional (let [...]

jQuery.bind() Data

If you only ever use the type-specific event helpers (.click(), .load(), .change(), etc.), you're potentially missing out on a really handy feature of jQuery: bind data.  Bind data is data associated with the bound handler function, available to every invocation of it, but not in any "normal" variable scope.  It's kind of like currying, except [...]

jQuery.live("click") Gotcha

If you're using the new jQuery.live("type", fn) handlers in jQuery 1.3, be careful with the "click" event type.  Unlike jQuery.bind("click", fn) and jQuery.click(fn), jQuery.live("click", fn) doesn't distinguish between mouse buttons.  So while the "normal" handlers will only trigger when the left button is used, the live handler will trigger on any button.
The workaround is pretty [...]

CSS Naked Day

It's CSS Naked Day again, at least on the East edge of Earth, but we'll soon catch up.  Strip your <BODY> for the world!  After doing it manually the last couple years, this time I'm using the excellent CSS Naked Day WordPress Plugin by Aja Lorenzo Lapus.

Ben Nadel – At It Again

Ben Nadel posted another interesting code snippet this moring.  I think Ben and I stand in agreement on the technique: NEVER EVER USE IT.  It leverages a horrible bug in ColdFusion's implementation of struct literals that I've blogged about previously.
Here's the snippet:
<cfset objConfig = {
root = getDirectoryFromPath(getCurrentTemplatePath()),
tags = objConfig.root & "tags/",
[...]

Show Me Your Tool

If you read my blog regularly, chances are you write software and therefore can't, because your tools don't exist in the visual world.  They're just magic strings of minuscule magnets on a rapidly spinning chunk of plastic…
I took my chef's knife to the sharpener a few days ago.  Cost a whopping $4 to have him [...]