Blog Entries

Redirecting Hibernate Logs to the CommandBox Console

The ability to send all Hibernate logs to the console has been a pipe dream of mine... until now.

Resolving Concurrent Exceptions in Hibernate logger

In which I found and resolved a fix for an issue with the Hibernate debug logger causing entity relationship saves to fail with a ConcurrentModificationException.

Cross-engine transaction detection in Hibernate v3+

In which I note a Lucee-compatible, ACF-compatible, Hibernate v3-v5.x method for detecting whether the current code block is inside a transaction.


Finding datasource config online has always bugged me, so I built a searchable CFML cheatsheet website at

Five Things I'd Like To Learn in 2020

Here's a list of five things I don't know that I should learn this year.

Three ColdBox Features I Learned While Building A URL Shortener

I learned some cool ColdBox things while live-coding last night, thanks to Gavin Pickin. (Should I just call this post "Three Things I Learned from Gavin?") Here's a quick wrap-up of those tips, showing you why they're useful and how to easily add them to your ColdBox app.

Adobe, You Piece of Work, I'm Through

When in the course of human events it becomes necessary for one [developer] to dissolve the bands which have connected them with [Adobe].

Getting Started In CFML: A Resource List for Newbies

If you are going to learn CFML in 2019, you need the best resources available. In this post I'll share tutorials, video channels, and even podcasts you can use to help you begin learning CFML.

I will do my best to keep this list up to date - feel free to comment or message me with links or updates.

Localizing Dates In Sql Server

Several months ago I added timezone handling to a CF app. This post is my best effort to document how to localize dates using MSSQL timezone functionality.

Form Processing in CFScript Part Three: Sending Email Notifications

In this series so far, we've looked at how to validate a form entry and how to save that form entry to the database. Today we'll see how we can notify a person (usually a site admin or editor) that a new form entry has been submitted and processed by simply sending an email.

Form Processing in CFScript Part Two: Saving Form Entries to the Database

If a tree falls in a woods with no one to hear, did it actually fall? Likewise, if a user submits a form but it is not saved somewhere, that form submission is worthless.

Form Processing in CFScript Part One: Validation

This series will teach you how to process form submissions using ColdFusion's CFScript syntax. In Part One I'll show you the basics of validating form submissions on the backend!

Creating an MS Access Lucee Extension

I turned a simple task (migrate data from an MS Access database) into a Lucee extension which wraps the UCanAccess JDBC driver.

CFScript Gotchas and Syntax Guides

Now, script syntax is *usually* straightforward, but as with any language, sometimes it's easy to get confused over certain things in script syntax. In this post I'll cover a quick list of common "gotchas" in CFScript, document the proper syntax for each, and finally link to a list of CFScript guides which may help you start writing CFScript today.

Switching from Tag to Script

Look, I write in CFScript. Most of the CF devs I look up to write in CFScript. But maybe you don’t. Here’s where I convince you CFScript is worth the jump and, for that matter, just how to “jump” to CFScript.

CF: A Legacy of Legacy

I’m here to tell you about ColdFusion’s history of archaic practices (a legacy of legacy), and just what we’re going to do about it.

Yes, CF is “Unpopular”. No, I don't care.

It’s popular to hate on CF. It’s popular to say Coldfusion is “dying”. It’s popular to call CF a “legacy” language, and compare it to COBOL. But is Coldfusion really unpopular? And, more important… does it matter?

Using ArraySome and ArrayEvery Higher-Order Functions in Lucee

In this post I’m going to take two Lucee only higher-order array functions, arraySome() and arrayEvery(), and explain their use and purpose. I’ll also review the concept of a higher-order function, as well as the Super Cool (yet very little used) lambda expression available in Lucee 5.