Modernize or Die® - CFML News for September 8th, 2020 - Episode 69

Eric and Gavin host this weeks episode. They discuss Fusion Reactor 8.5 has been released, as well as a new release to Lucee Spreadsheet lib 2.11.0. They announce the date and time on the next Ortus Webinar, presented by Gavin on Modern ColdFusion - no more copy and paste. They give you an update on CFCasts Content Updates. They discuss the next 2 Into the Box workshops coming in October, ColdBox Zero to Hero and Hero to SuperHero, and maybe a Quick Workshop coming up soon as well. They discuss going online in September. They discuss how the Adobe ColdFusion Certification is now online and remind you that Adobe's CF Summit Conference, being changed to a Online conference, now with dates, November 17-19, call for speakers is apparently closed ( but the form is still there ). They spotlight a lot of great blog posts, tweets, videos and podcasts, too many to list, so listen to the show. They announce some jobs from, as well as a Senior CFML position available at Ortus Solutions. They show off the ForgeBox module of the Week, Coldbox-asset-bag by Ortus Solutions, an asset bag to manage css and javascript dependencies. This week's VS Code Tip of the week is Multiple cursor case preserve. Have you ever tried to change a single word in all variable names, but had your camelCase broken? This extension preserves selection case in these situations. It recognises CAPS, Uppercase and lowercase. Works for typing or pasting. For the show notes - visit the website Music from this podcast used under Royalty Free license from SoundDotCom and BlueTreeAudio

2020-09-08 Weekly News - Episode 69

Watch the video version on YouTube at


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

Thanks to our Sponsor - Ortus Solutions
Get live training from the makers of your favorite Box Product.
2 ColdBox Virtual Workshops coming in October
CFCasts is releasing new Free and Paid content every week

Patreon Support
We are at the 55% 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 considers chipping in, we are almost there!

News and Events

Fusion Reactor 8.5 has been released.

Lucee Spreadsheet lib 2.11.0 released
Lucee Spreadsheet lib 2.11.0 released adding more control over data types when adding rows, plus support for hex colour values. Thanks to @gamesover for the great suggestions and testing. #cfml

Ortus Webinar - Modern Coldfusion - No more copy and paste
Friday September 25th 2020 at 11:00 AM CDT (GMT -5:00)
with Gavin Pickin
Copy and Paste coding is a tried and true development method, but as your project grows, so can your headaches. With Modern ColdFusion there are lots of tools in your toolbelt that can make your life easier when it comes to maintaining your code. In this webinar we'll look at best practices for keeping your code DRY (don't repeat yourself) and maintainable across your project and even multiple projects.
Register now:

CFCasts Content Updates

Configure your CFML servers with CFConfig
 - Configure your CFML servers with CFConfig ( Intro )
 - Show and Set, CFConfig's Primary Commands
Send your suggestions at


Into the Box 2020 - Workshops - Virtual Live training

2 day Workshop - ColdBox Zero to Hero - lead by Gavin Pickin
2 day Workshop - ColdBox Hero to Superhero - lead by Luis Majano
Podcast Code:
PODCAST10 - 10% off
There is a code for ITB attendees to save 15% - If you didn’t get the email contact us.

September 30th, 9am - 4pm CST

Adobe ColdFusion Summit 2020 - Replaces CF Summit West

Date: November 17-19
Location: Online
Admission: Free

Speaker sign up for Adobe
Deadline: August 20th. - Deadline changed.

Adobe ColdFusion Certification now available Online

Adobe Certified Professional: Adobe ColdFusion is an industry-leading certification program from Adobe, for ColdFusion developers. The course consists of 50+ online videos and is designed for professionals who have basic to advanced level proficiency in any computer language and basic understanding of how web pages work. Successfully passing an assessment test at the end of the program will reward participants with a badge and certificate from Adobe.

CF Camp

More conferences:

Blogs, Tweets and Videos of the Week

Tweet - Brad Wood - QoQ for Lucee
After a week of work, I've submitted a pull to @lucee_server that has completely revamped QoQ support. Tons of features are now supported natively instead of relying on HSQLDB & its MUCH faster. Even faster than Adobe ColdFusion 2018 in most tests! #CFML

Tweet - Tony Junkes - Adobe’s PDF Tools Java SDK
Got around to finishing a conversion of Adobe's PDF Tools Java SDK sample project into CFML. Run it manually or via CommandBox. Each sample can also be run directly in a terminal using a CommandBox Task Runner. #cfml #coldfusion

Blog - Ben Nadel - The Elvis / Null Coalescing Operator Can Sometimes Replace The Safe Navigation Operator In Lucee CFML
Yesterday, when I was listening to the latest episode of the Modernize or Die Podcast, Brad Wood said something that I had not heard before: that the Safe Navigation operator can usually be replaced with the Elvis / Null Coalescing operator in Lucee CFML. I had always just assumed that without the safe navigation syntax, undefined keys would still throw null-reference errors, regardless of whether or not the Elvis operator was involved. As it turns out, Brad was right! Though, it only works if the given expression does not contain a method call. Since this was news to me, I thought it was worth a quick demo in Lucee CFML

Blog - Matthew Clemente - Building a Basic Uptime Monitor with Pipedream
During a recent live-coding session, I tried to build a website uptime monitor with Pipedream. Even with a few digressions, I managed to get most of it done within the hour, and figured that the process and platform were worth sharing.

Blog & Video - Ben Nadel - Temporary Upload Files Are Duplicated And Persisted When A Request Uses CFThread In Lucee CFML
Earlier this week, Pablo Fredrikson from our Platform team was paged because one of the Kubernetes pods that runs one of our Lucee CFML containers was running out of disk space. Upon further investigation, he found that the server's temporary file directory was using over 160 Gigabytes of storage. To perform an immediate remediation, my team triggered a deployment for that ColdFusion service, which wiped all of the old data. But, once the "incident" was closed, I started trying to figure out why so much data was being stored. And, what I discovered is that the temporary files produced during a multipart/form-data POST are duplicated and persisted if the parent ColdFusion request uses CFThread to manage asynchronous processing.

Blog - Ben Nadel - Using Both STORE And DEFLATE Compression Methods With The zip CLI In Lucee CFML
A couple of months ago, I looked as using the zip CLI with the STORE or DEFLATE compression methods in Lucee CFML. The DEFLATE compression method attempts to shrink file sizes as it adds the files to an archive where as the STORE method just adds the files to the archive, but doesn't attempt to compress them in any way. This morning, I wanted to take a quick look at how we can apply both the STORE and DEFLATE methods in the same zip command execution in Lucee CFML

Tweet - Julian Halliwell - Lucee Spreadsheet Lib 2.11.0 released.
Lucee Spreadsheet lib 2.11.0 released adding more control over data types when adding rows, plus support for hex colour values. Thanks to @gamesover for the great suggestions and testing. #cfml

Blog - Ben Nadel - Proxying Amazon AWS S3 Pre-Signed-URL Uploads Using Netlify Functions
A couple of months ago, I looked at proxying Amazon S3 pre-signed URL uploads using Lucee CFML This was a topic of interest because InVision has enterprise customers that block all direct access to Amazon AWS (for security purposes); and, the only way we can upload files to S3 is by "hiding" the AWS URLs behind a proxy. Of course, proxying an upload through our servers is sub-optimal because it increases the load that our servers have to handle. So, what if we could proxy the upload through something more dynamic, like an AWS Lambda Function? Of course, we can't use AWS URLs (as they are being blocked by some of our customers); but, Netlify provides Lambda Functions; so, maybe we can use Netlify to proxy Amazon AWS S3 pre-signed URLs.

Blog - Wil DeBruin - cbValidation: creating a better uniqueValidator
How often do you want to be sure values in your newly inserted records are unique? I just counted in my current project: 28 times. That’s a lot of repetitive code if you validate this requirement each time, so it makes sense to use some kind of uniqueness validator in cbvalidation.

Blog - Pete Frietag - Setting Lucee Admin Password with CommandBox
One of the recent changes to Lucee is that no longer allows you to enter an admin password from the web based lucee admin if one had not been set yet. This is a great feature for security, but for local development it makes things a bit more cumbersome.
You'll see what I mean when you hit this error message:
No Password Set Yet!

Tweet - Ortus Solutions - Ninja Developer Line dropped
Our Ninja Developer line just dropped! We created this in honor of our amazing coworkers and our fellow #CFML developers. Check out all the awesome goodies you can get:!/
#ColdFusion #News #ModernizeOrDie

Blog - Wil De Bruin - cbValidation: validating a model or the request collection?
Recently I was coding a fluent API based on this sample code which was presented at ITB 2020 by Gavin Pickin. When I was testing I discovered I could overwrite existing records when trying to insert new ones, which sounds like a huge security vulnerability. But before blaming Gavin for this let me confess I changed the code a little, just enough to create this security hole. So this exercise showed me the following:
- never ever populate a model automatically from the request collection without realizing what your customers can insert.
- validating your request collection before populating your model has it advantages.


Several positions available on
Listing over 18 ColdFusion positions from 13 companies across 9 locations in 5 Countries since July 1st

2 new jobs this week.

Full-Time - ColdFusion and SQL Developer at Hyderabad, Telangana - India
Posted Sep 05

Full-Time - Coldfusion Software Developer - (Remote Work) at Calgary, AB.. - Canada
Posted Sep 04

Ortus is hiring:Senior ColdFusion CFML Developer

At Ortus you will be:
Modernizing web applications and helping companies move out of legacy hell
Teaming up with ColdFusion Experts in order to solve complex web development problems.
Testing and integrating new web technologies in order to create custom business implementations
Pushed to innovate constantly and create new solutions to web development problems
Leading project teams that deliver software that matters

US Timezone availability is a must
US Citizen or Resident or Work Visa is a must

ForgeBox Module of the Week


An asset bag to manage css and javascript dependencies

The Problem
You want to dynamically include javascript and css based on the code being executed.

You don't want these assets included in the middle of your views. Instead, you want them included either in the head or footer of your page. (This is especially important for a framework like Vue where inline javascript breaks the page.)

This Solution
coldbox-asset-bag provides an API to add assets any time during the request lifecycle. It allows adding of css and javascript assets along with their inline varities and stores them in either the head and footer sections. Finally, it can render the assets to the appropriate tags in your layout or view.

VS Code Hint Tips and Tricks of the Week

Multiple cursor case preserve

By Carindal90

Have you ever tried to change a single word in all variable names, but had your camelCase broken? This extension preserves selection case in these situations. It recognises CAPS, Uppercase and lowercase. Works for typing or pasting.

Thank you to all of our Patreon Supporters

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
Brett DeLine
Carl Von Stetten
Charlie Arehart
Da Li
Dan Card
Daniel Garcia
David Belanger
Didier Lesnicki
Don Bellamy
Eric Hoffman
Gary Knight
Giancarlo Gomez
Jan Jannek
Jason Daiger
Jeff McClain
Jeremy Adams
Jonas Eriksson
Jordan Clark
Joseph Lamoree
Kai Koenig
Laksma Tirtohadi
Mario Rodrigues
Matthew Clemente
Mingo Hagen
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 ★

Switch to Modernize or Die ® Podcast - SoapBox Edition - Switch to Modernize or Die ® Podcast - Conference Edition

Powered by

Music from this podcast used under Royalty Free license from SoundDotCom and BlueTreeAudio

© 2019 Ortus Solutions