DiscoverModernize or Die ® Podcast - CFML News EditionModernize or Die® - CFML News for April 7th, 2020
Modernize or Die® - CFML News for April 7th, 2020

Modernize or Die® - CFML News for April 7th, 2020

Update: 2020-04-07


2020-04-07 Weekly News - Episode 48

Watch the video version on YouTube at

Eric Peterson - Software Consultant for Ortus Solutions
Gavin Pickin - Software Consultant for Ortus Solutions

Thanks to our Sponsor - Ortus Solutions
Get trained by the actual makers of the ColdBox Platform, CommandBox, TestBox and ContentBox Modular CMS. We offer on-site training, regional training seminars and virtual live training as well. We have several professional training courses to choose from and we can also cater to a-la-carte trainings as well.

Patreon Support
We are at the 42% mark for fully funding all of our Modernize or Die Podcasts via our Patreon site: . If you love our podcasts and all we do for the #coldfusion #cfml community consider chipping in, we are almost there!

News and Events

Box Products Get Complete Makeover! - April Fools

We decided that even during a lockdown, there might be room for a little humor, we posted a blog post on April Fools about some rebranding.

ColdBox – FridgeBox
TestBox – MakeItWorkBox
WireBox – ShockBox
ForgeBox – ToyBox
CommandBox – MasterBox

Someone also asked for one box to contain them all, but I had to remind them that Sean Corfield encouraged us to retire KitchenSinkBox a long time ago :)

Adobe ColdFusion Developer Week

The developer week webinars would cover all these topics and much more. This is a series of free, live webinars where the audience would be able to hear from the best developers in the ColdFusion world.

If you are a new developer, someone with little or no ColdFusion experience, or even if you have been using ColdFusion all your life, these sessions are ideal for you. The ColdFusion Developer Week provides something for everyone so sign up now.

May 18th - 22nd - Online
2 Sessions per day - 10 sessions through the week.
Free - Register Online

Lucee developer Team Expanded

Lucee developer team expanded with full time Java developer, Mircea Botez
Let’s welcome Mircea Botez to the team!
Mircea joins the Lucee core committers as a new full time Java Resource. A 30 year old from Romania, Mircea has a degree in Computer Science from the University of Iasi and years of Java experience. Mircea is diving into the code and converting all extensions from Ant to Maven. And in time, he'll be speeding up the delivery of awesome features across the code base. We are sure that you will hear lots from Mircea soon and with luck meet him at CFCamp. Our most heart-felt thanks to Rasia and DistroKid for directly sponsoring Mircea's contribution.

ColdBox Cross Site Request Forgery Module v2 released
We are incredibly excited to bring you a major version of our cbcsrf module, so you can protect your ColdBox applications from cross-site request forgery vectors. This is a major overhaul of the module and it will also be part of the cbSecurity module as well.

cbSecurity 2.4 Released
This release adds the inclusion of the Cross Site Request Forgery module into cbsecurity: cbcsrf.

Quick 3.0.0-Alpha.1
Released, live on the show… available quick@be on forgebox.

What's New In CommandBox 5  Screencast Series

Brad recorded a series of Screencasts being released every Tuesday and Thursday, this is what has been released so far.
Lucee Extension Management -

Git Access Tokens -

Library Updates -

Upcoming Adobe Webinar - Journey through the Adobe ColdFusion Performance Monitoring Tool

Presenter: Elishia Dvorak
April 9th, 11am PDT
This session is all about demos, no slides! From start to finish, we’ll take you through the nitty gritty of troubleshooting and setting yourself up in Adobe’s ColdFusion Performance Monitoring Tool to troubleshoot the main issues that keep you awake at night. We’ll run through setting up different types of notifications, threshold settings, auto tuning, and even some simulations to give you a good sense of how the PMT can help you diagnose your craziest ColdFusion issues.

Reminder: ContentBox CMS Customer Experience Survey

ContentBox, our signature professional open-source modular content management system for ColdFusion (CFML),  recently celebrated 8 years in the market. For sure, it has been a solid base for many companies to easily build websites, blogs, wikis, complex web applications, and RESTFul web services.
We are ramping up our planning for our next generation of the ContentBox platform and we need your feedback.
Please take some time to let us know your opinion, so we can start cooking some CMS goodness!

Reminder: State of the CF Union 2020 Survey

Help us find out the state of the CF Union – what versions of CFML Engine do people use, what frameworks, tools etc. We will share the summary results with everyone who completes the survey so that you can see how you compare with other CF developers.
Most questions are multiple choice checkboxes that are fast to answer. Thanks for your time completing this survey!


Adobe CF Summit East 2020 - Cancelled

Adobe - ColdFusion Specialist Certification POST Conference - CANCELLED

Ortus Solutions - Build Secure MVC ColdFusion Applications - Pre Conference - Cancelled

Into the Box 2020 - Virtual Online Conference

Thursday May 7th and Friday May 8th, 2020.
The conference will take place on the same days, with the same schedule, all online.
Sessions will be streamed live and recorded so attendees can watch all the sessions, even the sessions they cannot attend.
Keynote will be streamed live for free.
The conference tickets are $199 ( massive discount from the in person conference )
Register now:

Previous ITB Videos on Sale
Can’t wait for this year’s ITB, you can watch videos from last year and the year before for price of $9.99 each.

Workshops are being refunded and will be scheduled at later times to give everyone an opportunity to attend one or more workshops as they are delivered online.

Adobe Developer Week
May 18th - 22nd - Online
2 Sessions per day - 10 sessions through the week.
Free - Register Online

DockerCon - Live
May 28, 2020 : 9:00 - 5:00 PM GMT-7 (PDT)
DockerCon is going digital with theCUBE! We’ve designed a 1-day conference that’s free and completely online. You’ll hear from speakers in live interviews with theCUBE, hang out with Docker experts in the live hallway track, and watch recorded sessions while chatting live with the speakers.
Choose from 3 simultaneously streaming channels or jump between them all to experience DockerCon your way.

CF Summit West
October 28-29
Mirage Hotel

CF Camp

More conferences:

Blogs, Tweets and Videos of the Week

Blog - Charlie Arehart - How can I keep CF Admin settings in sync between multiple servers or instances?
This question was asked today on the Adobe CF forums. The person had CF instances on multiple servers and lamented having to login to each CF admin to make changes that would apply equally to all instances, in particular creating or changing datasources. They wondered if in fact there was a feature in the CF Admin to "cluster" datasource definitions, like there is (since CF2016) the feature to "cluster" scheduled tasks.
I explained that there was not such a "feature" but that there were at least two options to achieve the goal. The answer was long enough (as is my wont) that I should have probably created a blog post instead. After submitting it, I decided to do just that, here (and I have tweaked here what I said, with some more elaboration and links).

Video - Brad Wood - Ortus Solutions - What's New In CommandBox 5 - Lucee Extension Management
Learn how you can use CommandBox to manage your Lucee Extensions.

Blog - Ben Nadel - Spreading SQL And CFQueryParam Tags Across Multiple Function Calls In Lucee CFML
I've been spending a lot of time lately trying to figure out how to optimize the SQL queries required to render a given view. Ideally, the data in question should be aggregated into some sort of materialized view; or, the User Interface (UI) should be redesigned to show less data. But, unfortunately, those aren't options that I have at my disposal. As such, I'm continuing to tweak and experiment. And, one experiment that I wanted to try was whether or not I could split a SQL query and its CFQueryParam tags up across multiple function calls. This would allow me to do things like factor-out and reuse sub-queries in Lucee CFML

Tweet - Kai Koenig - CommandBox Server Manager
Client bought the @ortussolutions Forgebox module to manage CommandBox instances as persistent daemons.
Very smooth sailing and just gets rid of a task no one wants to deal with anyway. Also: great and actually very cheap and easy way of supporting an open-source team #cfml

Tweet - Brad Wood - Ortus Solutions - Lucee 5.3.5 Regression for LogBox
FYI, if you use the LogBox/ColdBox ConsoleAppender, it seems a regression in Lucee 5.3.5 has stopped it from working on debug/info/warn messages:
It still works in Lucee 5.3.4.  #CFML #ColdFusion

Blog - Michaela Light - Work From Home: Salvation or a Prison (Life Changes Amidst Covid 19 and Life After)
You might be one of the people that already was working from home. I am part of that club also. Looking behind, nothing could make me go back. Flexible life is great and for many reasons.
But, what about the majority of people that do work in the office, and like it, more or less? What about those people that enjoy the community and meeting people every day?

Blog - Ben Nadel - Considering MySQL, CFQueryParam, Prepared Statements, And SQL Queries That Use IN Clauses In ColdFusion
I've been using ColdFusion's CFQueryParam for longer than I can remember. It seems like it's just always been there, protecting us against SQL-Injection attacks and helping to speed up query parsing and performance. But, I have to admit that my mental model for CFQueryParam has always been a little bit fuzzy, especially when it comes to the list attribute. Over the weekend, however, I was doing a lot of thinking about a particularly SQL query that I wrote; and, about its sub-par performance. I wanted to take a moment to think more deeply about prepared statements and open-ended IN clauses in MySQL and ColdFusion.

Blog - Ben Nadel - Printing Emoji Characters From Unicode CodePoints In Lucee CFML
Now that I've enabled Emoji characters in my blog comments (via MySQL's utf8mb4 character encoding), it's got me thinking more about how else I might use Emoji in my blog. That said, since my brain hasn't fully accepted Emoji as "normal" content; so, I'm still not ready to embed Emoji characters directly within my ColdFusion code files (old habits die hard). This got me thinking about how I might be able to output Emoji characters based on their Unicode CodePoints. Unfortunately, it's not as simple as calling the built-in chr() function, since this only supports CodePoints up to 65,535 (0xffff). As such, in order to print Emoji characters in ColdFusion, I have to drop down into the Java layer in Lucee CFML

Blog - Ben Nadel - I Prefer The Unary Plus (+) Operator Over parseInt() And ParseFloat() When Coercing Strings To Numbers In JavaScript
Yesterday, I accidentally stumbled into the location of a bug that's existed in InVision for over 5-years. And, when I finally found the problematic line of code, I felt like it warranted a write-up on its own. Because, the "broken" code wasn't inherently broken; rather, it was just using an approach that was more prone to subtle failures. The line of code in question was using parseInt() to try and coerce a String value into a Number value. For this type of operation, I almost always prefer the unary plus (+) operator over parseInt() or parseFloat() in JavaScript.

Blog - Ben Nadel - Zipping Image Archives With DEFLATE And STORE Compression Methods In Lucee CFML
For the last few years, one of my teammates - David Bainbridge - has been suggesting that we switch our zipping / archiving algorithms over to use STORE instead of DEFLATE when creating an archive of images. The idea being that most images file-formats are already compressed; which means that attempting to compress the images further during the zip operation does nothing but use unnecessary CPU. Now my team is planning to add some new zipping functionality, I thought it would be a good time to start looking at the difference between DEFLATE and STORE in Lucee CFML
Traditionally, ColdFusion has not offered the ability to set any type of compression method in its various zipping features - it just uses DEFLATE, and that's the end of it. That said, it looks like Zac Spitzer recently added compressionMethod to the CFZip tag in Lucee CFML 5.3.3.x. So that's very exciting!

Blog - Luis Majano - Ortus Solutions - cbSecurity 2.4 Released
We are excited to bring you another release for cbSecurity v2.4. This update gives you access to our cross site request forgery module: cbcsrf, which will enhance your securing abilities.

Blog - Luis Majano - ColdBox Cross Site Request Forgery Module v2 released

Blog - Zac Spitzer - Lucee Performance Analyzer Plugin
It’s a simple little plugin which provides a summary view of all the debug logs, I’ve been using these scripts for a while to track down performance problems.
- Slowest Queries
- Var Scoping Problems

Video - Brad Wood - Ortus Solutions - What's New In CommandBox 5 - Git Access Tokens
Learn how to use Git personal access tokens or username and password to authenticate to a private Git repo in CommandBox 5.

Blog - Ben Nadel - Pretty-Printing A ColdFusion Query Object In Lucee CFML
Last week, in my article about using INNER JOIN in a MySQL UPDATE statement, I shared the various states of the database using the output provided by the MySQL CLI (Command-Line Interface) tool. The MySQL CLI pretty-prints the resultant queries using a fixed-width ASCII table format, making it really easy to copy-paste the data into demos. As a fun code kata in these trying COVID19 times, I thought I would try to recreate that Query serialization functionality in Lucee CFML

Video - Matthew Clemente - Testing

Video - Matthew Clemente - Adding Basic Interactivity to CommandBox Custom Commands
Let's take a look at adding basic interactivity to CommandBox custom commands. In this video, I cover the functions ask(), waitforkey(), and confirm(). These handy methods streamline the process of asking a user for information, and then using their response within your command.

Lucee Newsletter
Register Online:

Blog - Ben Nadel - Referencing String Characters Using Array-Notation In Lucee CFML
Over the weekend, I was reading through the Learn Modern ColdFusion <CFML> in 100 Minutes book by Ortus Solutions when I came across their section on Character Extraction. In that section, they mention that - in Lucee CFML - you can access the characters of a String using Array-notation. Since I don't remember ever seeing this feature before, I wanted to quickly try it out for myself so as to try and burn the concept into my brain.

Video - Brad Wood - What's New In CommandBox 5 - Library Updates
Learn about the new libraries in CommandBox and how to determine the current version of Lucee that your CLI is running.


Several positions available on
Listing over 20 ColdFusion positions from 17 companies across 14 locations in 5 Countries

5 new jobs this week.

Full-Time - ColdFusion Architect at Rockville, MD - United States
Posted Apr 06

Full-Time - ColdFusion Architect at Rockville, MD - United States
Posted Apr 06

Full-Time - Senior ColdFusion Developer (Temporary) at Raleigh, NC - United States
Posted Apr 06

Full-Time - Senior ColdFusion Developer at Raleigh, NC - United States
Posted Mar 31

Full-Time - Senior ColdFusion Developer at Raleigh, NC - United States
Posted Mar 31

ForgeBox Module of the Week

Commandbox - Site Opener - By Dan Card

A Simple Module to open and start existing sites easily without having to remember locations or change

Usage: type `siteopener Open` and push tab. A list of the sites which have been created will appear as options. Enter the one you want to use. Site  opener will CD into the folder, determine if it is running or not, and then either "server start" or "server open"

box install commandbox-siteopener

VS Code Hint Tips and Tricks of the Week

Git Commands Feature in GitLens 10

'Git Commands' from the GitLens extension provides a visual interface for #git operations. This lets you perform operations beyond what VS Code's UI supports without having to remember git's cli

Adds a Git Commands command (gitlens.gitCommands) to provide guided (step-by-step) access to common Git commands and their flags
Quickly navigate and execute Git commands through easy-to-use menus where each command requires an explicit confirm step before executing

GitLens supercharges the Git capabilities built into Visual Studio Code. It helps you to visualize code authorship at a glance via Git blame annotations and code lens, seamlessly navigate and explore Git repositories, gain valuable insights via powerful comparison commands, and so much more.

Thank you to all of our Patreon Supporters

New Patreon Supporters Ben Nadel.and Kai Koenig

These individuals are personally supporting our open source initiatives to ensure the great toolings like CommandBox, ForgeBox, ColdBox, ContentBox, TestBox and all the other boxes keep getting the continuous development they need, and funds the cloud infrastructure at our community relies on like ForgeBox for our Package Management with CommandBox.

You can support us on Patreon here

Ben Nadel
Da Li
Dan Card
Daniel Garcia
David Belanger
Didier Lesnicki
Don Bellamy
Erick Hoffman
Gary Knight
Jan Jannek
Jeremy Adams
Jordan Clark
Joseph Lamoree
Kai Koenig
Laksma Tirtohadi
Matthew Clemente
Mingo Hagen
Ryan Hughes
Scott Steinbeck
Shawn Oden
Steven Klotz
Yogesh  Mathur

You can see an up to date list of all sponsors on Ortus Solutions' Website

★ Support this podcast on Patreon ★

In Channel
Download from Google Play
Download from App Store








Sleep Timer


End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

Modernize or Die® - CFML News for April 7th, 2020

Modernize or Die® - CFML News for April 7th, 2020

Ortus Solutions