Skip to main content
Ben Nadel
On User Experience (UX) Design, JavaScript, ColdFusion, Node.js, Life, and Love.
Ben Nadel at The Plaza Hotel 2012 (New York City) with: Judson Terrell
Ben Nadel at The Plaza Hotel 2012 (New York City) with: Judson Terrell

Recent Blog Posts by Ben Nadel

Referencing String Characters Using Array-Notation In ColdFusion 2021

By Ben Nadel on
Tags: ColdFusion

A few years ago, I mentioned that you can treat Strings like character arrays in Lucee CFML . It turns out, you can do the same thing in Adobe ColdFusion. I am not sure what version this was added in; but, I'm guessing it was ColdFusion 2018 (and the introduction of "array slices"). To h... read more »

Standard Query Iteration Values Available During For-In Loop In ColdFusion

By Ben Nadel on
Tags: ColdFusion

A decade ago, ColdFusion introduced the for-in loop syntax for Query iteration . And, in the decade since, I somehow completely missed the fact that the underlying query iteration mechanics were still being used. That is, the .currentRow and default value accessors are still made available on... read more »

CAUTION: Silent Value Truncation In CFQueryParam Tag In Lucee CFML 5.3.7.47

By Ben Nadel on
Tags: ColdFusion

I just ran into a highly-problematic behavior with the CFQueryParam tag in Lucee CFML 5.3.7.47. As it stands now, if you pass a value via the CF_SQL_INTEGER SQL type that is larger than the max signed-value (2147483647), Lucee will silently truncate it , passing the max signed-value to the... read more »

Working Code Podcast - Episode 50: Where Do You See Yourself In 5 Years?

By Ben Nadel on
Tags: Podcast

This week on the show, the crew talks about where they each see themselves in 5-years. This is not an easy thought-experiment, especially in a technology landscape that changes so rapidly. Are we getting better at the things we do today? Or, are we changing our focus, our role, and maybe even our j... read more »

Moving 5-Years Of Files Into Year-Based Folders In Adobe ColdFusion 2021

By Ben Nadel on
Tags: ColdFusion

As I mentioned before, I've been putting time into modernizing my ColdFusion blogging infrastructure . And, as part of that gesture, I wanted to clean-up some of my file-uploads. Today, when I upload a file for use in a blog post, I upload it into a year-based folder. However, I only started doing... read more »

Working Code Podcast - Episode 49: Replatforming

By Ben Nadel on
Tags: Podcast

One of our fans on Patreon is about to embark on a large "replatforming" endeavor. His team has decided to move away from their "traditionally coded" application (think hard to maintain, big ball of mud); and, will soon rebuild the server-side aspect of their application using a... read more »

Phill Nacelli's SQL Tip Is Making My CFQuery Upgrades In Adobe ColdFusion 2021 Easy

By Ben Nadel on
Tags: ColdFusion, SQL

As I've started to modernize my blogging platform for Adobe ColdFusion 2021 , one of the things that I was dreading was the lack of Lucee CFML's Tag Islands . Tag Islands have really been a game changer for me, allowing me to seamlessly execute the CFQuery tag inside CFScript . I was afr... read more »

A Query Object Maintains Its CurrentRow When Passed Out-Of-Context In Adobe ColdFusion 2021

By Ben Nadel on
Tags: ColdFusion

As I'm attempting to modernize my blogging platform for Adobe ColdFusion 2021 , I'm moving a lot of my old-school, inline CFQuery tags into various "Service" and "Data Access" ColdFusion components where they can be reused across multiple templates. And, as much as I love... read more »

Working Code Podcast - Episode 048: TODO: Microwave ToDo List

By Ben Nadel on
Tags: Podcast

Surgeons and pilots have known for years that checklists literally save lives . And, while programming is rarely a life-and-death stakes situation, the humble ToDo list continues to serve as a powerful tool in the developer toolbox. This week on the show, the crew talks about how they manage their... read more »

Writing To The Standard Out / Console Using WriteDump() In Adobe ColdFusion 2021

By Ben Nadel on
Tags: ColdFusion

As I'm starting to modernize my ColdFusion blogging platform , one thing that I am missing terribly from Lucee CFML is the ability to write to the standard out ( stdout ) and standard error ( stderr ) streams. In a Docker / containerized context, writing to the output streams is a powerful debuggi... read more »

ColdFusion Component Setters / Accessors Are Chainable For Easy Dependency-Injection

By Ben Nadel on
Tags: ColdFusion

This is primarily a note-to-self; but the other day, I stumbled upon / remembered that the auto-generated accessors in a ColdFusion component are chainable . At work , I never think about this because we use a dependency-injection framework which performs all the setter-injection for us. However,... read more »

Considering An isError() Decision Function In ColdFusion

By Ben Nadel on
Tags: ColdFusion

As I mentioned earlier today, I'm looking to use Rollbar's Java SDK in my Adobe ColdFusion 2021 app (namely, this blog). The Rollbar SDK exposes a fairly simple API. However, that simple API uses a data-type that I almost never think about in my code: java.lang.Throwable . To be clear, I deal wi... read more »

Getting Rollbar's Java SDK 1.7.10 Working In Adobe ColdFusion 2021

By Ben Nadel on
Tags: ColdFusion

As I mentioned the other day, I'm preparing to pour some love into my ColdFusion blogging platform . One area in much need of love is my error logging. If you can even imagine, this blog still uses email as the primary means to report errors! *Ring ring ring* - Hello. What's that? The 1990's... read more »

Working Code Podcast - Episode 047: Email Ruins Everything

By Ben Nadel on
Tags: Podcast

With an increasing amount of work being performed within a distributed or hybrid team model, there's a push to move more and more communication into an asynchronous workflow. Whether through email or collaborative document editing, there's a growing perception that collaboration becomes more effici... read more »

From ColdFusion 10 To ColdFusion 2021 - Preparing For Some Blog Love

By Ben Nadel on
Tags: ColdFusion

UPDATE - Nov 3, 2021 : When I first published this article, I was running on Adobe ColdFusion 2018. However, right after publishing it, I asked my hosting provider to bump me up to ColdFusion 2021. As such, I've updated the article to reflect this new jump in features. This blog is hella old.... read more »

The Value Class java.time.LocalDateTime Cannot Be Converted To A Date In ColdFusion

By Ben Nadel on
Tags: ColdFusion

Yesterday, I went to debug an issue with the latest Adobe ColdFusion 2018 Updater . So, I first updated my CommandBox Docker Image (in an effort to reproduce the issue in my local development environment). This sent me down a 4-hour rabbit hole just trying to getting my ColdFusion site up-and-runn... read more »

Securing ColdFusion Scheduled Tasks In A Docker Container Using Lucee CFML 5.3.8.206

By Ben Nadel on
Tags: ColdFusion

As I mentioned in my previous post on managing shared secret token rotation across systems , I've been cleaning up some really old code , moving hard-coded passwords into environment variables . One place in which we had a hard-coded password was in our ColdFusion Scheduled Task ingress. As I wa... read more »

Managing Shared Secret Token Rotation Across Systems In Lucee CFML 5.3.7.47

By Ben Nadel on
Tags: ColdFusion

When two systems interact, a shared secret is often included with inter-system communication in order to make sure that the given calls are both authorized and have not been tampered with. For various reasons, those shared secrets need to be rotated over time. And, since multiple systems - that nee... read more »

Working Code Podcast - Episode 046: Secret Management vs. Premature Optimization

By Ben Nadel on
Tags: Podcast

When two systems have to communicate with each other, the security of transmitted messages is typically enforced through the use of shared secrets. Whether with encryption or one-way hashing, the receiving system can use a shared secret to verify that a producer's message has not been tampered with... read more »

Reading Environment (ENV) Variables From The Server Scope In Lucee CFML 5.3.7.47

By Ben Nadel on
Tags: ColdFusion

This is a pro-tip that I originally picked up from Julian Halliwell a few years ago. However, I sometimes talk to people who don't realize that this is possible. So, I wanted to try and amplify Julian's post. In Lucee CFML, you can read environment (ENV) variables directly out of the server s... read more »

Adam Lenda: Always Choose Consistently Bad Over Inconsistently Good

By Ben Nadel on
Tags: Work

Yesterday, I was listening to an older episode of the SQL Data Partners podcast in which the guest - Adam Lenda - phrased something in a way that I've never quite heard it before; and, it stopped me in my tracks. The episode was all about accumulating and dealing with technical debt as a team... read more »

Warning Users About The Windows Explorer Zip Archive Preview In JavaScript

By Ben Nadel on

In recent years, on a Windows computer, if you double-click on a .zip file - the same way you would navigate into any Folder in the file system - Windows doesn't automatically extract the .zip file contents. Instead, it opens an "Explorer Preview" of the archive, allowing you to view... read more »

Making SQL Queries More Flexible With LIKE In MySQL 5.7.32 And Lucee CFML 5.3.7.47

By Ben Nadel on
Tags: ColdFusion, SQL

While you might stand-up something like Elasticsearch, Lucene, or Solr in order to provide robust and flexible text-based searches in your ColdFusion application, your relational database is more than capable of performing (surprisingly fast) pattern matching on TEXT and VARCHAR fields using th... read more »

Creating A Group-Based Incrementing Value Using LAST_INSERT_ID() In MySQL 5.7.32 And Lucee CFML 5.3.7.47

By Ben Nadel on
Tags: ColdFusion, SQL

Yesterday, I took inspiration from Jira's ticketing system and explored the idea of creating a group-based incrementing value in MySQL . In my approach, I used a SERIALIZABLE transaction to safely "update and read" a shared sequence value across parallel threads. In response to that po... read more »

Creating A Group-Based Incrementing Value In MySQL 5.7.32 And Lucee CFML 5.3.7.47

By Ben Nadel on
Tags: ColdFusion, SQL

UPDATE : After posting this, I was told to look at the use of LAST_INSERT_ID(expr) as a way to build thread-safe sequences in MySQL. I have written a follow-up post that revisits this demo using LAST_INSERT_ID() instead of the SERIALIZABLE transaction. In the past few weeks, I've been... read more »

Working Code Podcast - Episode 045: Join Our Discord

By Ben Nadel on
Tags: Podcast

The Working Code Podcast is coming up on its one-year anniversary . Over the past 45 episodes, we've been having a blast sharing our thoughts with y'all on web development, team culture, self-improvement, software architecture, and generally sacrificing ourselves on the alter of dignity and bearin... read more »

The Scope Of SERIALIZABLE Transaction Row-Locking Is Larger When Rows Don't Yet Exist In MySQL 5.7.32

By Ben Nadel on
Tags: ColdFusion, SQL

After looking at using SERIALIZABLE transactions to enforce unique-naming constraints in a MySQL and Lucee CFML application, I posted a follow-up exploration on the scope of SERIALIZABLE transaction row-locking . What I didn't understand at the time of that follow-up post, however, is that t... read more »

Applying Multiple Animation @keyframes To Support Prefers-Reduced-Motion In CSS

By Ben Nadel on

Yesterday, I demonstrated that four-sided positioning plays nicely with scale() transformations in CSS. That demo used both the opacity and transform properties in order to "enter" a modal window into view. After I posted that, I started to think about the prefers-reduced-motion... read more »

Four-Sided Positioning Plays Nicely With Scale() Transformations In CSS

By Ben Nadel on

A decade ago, Ryan Jeffords changed my life forever when he introduced me to the concept of four-sided positioning in CSS . Since then, four-sided positioning - along with CSS Flexbox - have become a mainstay of my modal-window content strategy. As much as I love positioning in CSS, I've never... read more »

Working Code Podcast - Episode 044: Facebook's No Good Very Bad Week

By Ben Nadel on
Tags: Podcast

Between Frances Haugen's testimony, a mega outage of Facebook properties including Facebook.com, Instagram, and What's App, and a $7 billion drop in Mark Zuckerberg's personal wealth in a matter of hours, it's safe to say that Facebook has been having a terrible, horrible, no good, very bad time of... read more »