Modernize or Die® - CFML News for February 23rd, 2021 - Episode 92


Manage episode 285753334 series 2508132
By Luis Majano and Ortus Solutions. Discovered by Player FM and our community — copyright is owned by the publisher, not Player FM, and audio is streamed directly from their servers. Hit the Subscribe button to track updates in Player FM, or paste the feed URL into other podcast apps.

2021-02-23 Weekly News - Episode 92

Watch the video version on YouTube at


Brad Wood - Software Consultant for Ortus Solutions
Eric Peterson- Software Consultant for Ortus Solutions

Thanks to our Sponsor - Ortus Solutions

One way to say thanks back to Ortus Solutions, is to support CFCasts, which is releasing new content every week

Patreon Support

We have 33 patreons providing 69% of the funding for 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

Last week Adobe ColdFusion 2016 was EOL’ed

Feb 17, 2021 - end of core support for Adobe CF 2016 and CF Builder 2016
Extended Support ends 2/17/22
CF 2018 core support ends 7/13/2023
CF 2021 core support ends 11/10/2025

PrismJS now supports CFML - thanks to Matthew Clemente

No live coding last week, but Matthew was excited to see that his PR to add CFScript support to @prismjs was merged:
It only took *checks calendar* 5 or 6 livestreams to complete 😅
Looking forward to #CFML syntax highlighting!

Adobe Webinar - SQL, I know enough to break everything - Dave Ferguson

February 24th 2021
If you are reading this you have probably written SQL in one form or another. I would also bet that you have written SQL that looked great but didn't act great. Looking back at it was more like a little puppy that tilts its head at strange sounds. We all have, even the "experts" among, us have written SQL that had intentional consequences. On the other hand, maybe you support a system that has SQL that you just don't quite understand. If some of this is true, this session is for you.
This session will take a look at why SQL may not run the way it was intended. We will look well beyond just the select statement and look deeper into how SQL runs. We will go over what the DBA's keep to themselves as well as other metrics. We will also look at some well-intended SQL and why the results were less than ideal.

Online CF Meetup - "The Golden Hammer: Confessions of a Recovering Database Abuser", w/ Shawn Oden

Thursday, February 25, 2021
11:00 AM to 12:00 PM CST
Early in my dev career, I often (unwittingly) abused my systems. My code didn't care about things like databases or networks, as long as the results were right. I had a cfHammer, and I needed to pound out a solution. I never knew I was an anti-pattern.
Meetup Link:

Ortus Webinar - Take Control of Logging and Error handling with Stachebox with Jon Clausen

Friday, February 26th - 11:00 AM CDT (GMT -6:00)
Tracking, handling, and resolving bugs between different tiers can be challenging, especially in containerized or cloud environments. In this webinar, Jon Clausen will introduce you to capturing your back end and front-end error messages, and consolidating them in to one single, aggregated platform - backed by the power of Elasticsearch.

ICYMI - Mid Michigan CFUG - Docker with John Farrar

Feb 16th - 7pm
I will be doing a Docker meeting for the Mid Michigan CFUG this month. It is Rick Mason’s user group and details will follow. I am going to put a special emphasis on Traefik if anyone is interested. I am a user now, not an expert but find it a better experience than Apache, HAProxxy, IIS or Nginx so far. Your experience may vary.
CFUG Website:

Updated ForgeBox pricing

Reminder about the new Ortus Community

Ortus has rolled out our new Ortus Community site to help consolidate all of our community support and interaction. As part of that effort, all our Google Group threads have been imported to the new Ortus Community and effective immediately, our Google Groups are closed for further posting.
If you're a member of our Google groups, don't worry-- your user has already been imported into the community forum and as soon as you sign up, you will be automatically associated with all of your old posts so you can pick up your conversations right where you left off! We've even added single sign on options for Github, Facebook, Google, and Twitter (coming soon). If your new account is under a different E-mail address, let us know and we can merge your accounts together.

CFCasts Content Updates

Just Released
- CommandBox Zero to Hero
- Config Settings and History
- Other Execution Examples
- The Backtick Expression

Coming up
- More CommandBox Hero to Zero

Send your suggestions at

Conferences and Training

RedisConf 2021

Virtual: Apr 20-21
Call for speakers end Feb 14 -


May 27th 2021

Ortus Workshops - Dates coming soon

Quick Workshop
March 11-12
Lead by the creator of Quick himself, Eric Peterson.

Register now

More dates to come
- CommandBox Zero to Hero
- ColdBox Zero to Hero
- ColdBox Hero to SuperHero

Ortus’s Possible Conferences for 2021

Dates subject to change

Due to Online conference overload, we are thinking about not expanding the number of events, but more content in more timezones with a different format.

ITB - Developer Week Style??
With some European Timezone Friendly slots from our European Community Members
September 2021
Call for speakers coming soon

ITB Latam
December 2021

More conferences

Need more conferences, this site has a huge list of conferences for almost any language/community.

CFML Is now on the list -

Blogs, Tweets and Videos of the Week

Blogs - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML, Part IX
In an attempt to round-out the set of ColdFusion custom tags that I might need in my DSL (Domain Specific Language) for HTLM emails, I wanted to take a look a the

 and  tags. The 
 tag, specifically, is an interesting topic since it has special properties that don't pertain to the rest of HTML. That is, it maintains the whitespace that is present in the underlying markup. This poses a fun challenge because my ColdFusion custom tags actually try to remove most superfluous whitespace in order to minify the content and manage line-breaks. As such, I had take special measures for these two semantic tags.

Blogs - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML, Part X
The other day, I tweeted that the "Left Arrow" ← and "Right Arrow" → were my new favorite HTML entities. I love the fact that there is a (mostly consistent) set of unicode characters that I can use in lieu of graphic images. After that tweet, it got me thinking about my DSL (Domain Specific Language) for HTLM emails; and, whether or not I can safely use these kind of HTML entities in my HTML emails. As such, I wanted to do a quick test in Lucee CFML

Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML, Part XI
In an earlier post, I looked at several encapsulation techniques that I can use in my ColdFusion custom tag DSL (Domain Specific Language) for HTLM emails. A technique like "attribute passing" works well when you are passing data one layer down. However, as HTML email layouts become more complex, sometimes you need to make data accessible several layers down in your custom tag DOM (Document Object Model). In order to avoid so-called "prop drilling" (a term used in the React.js world), I wanted to borrow a concept from Angular: Providers. In my DSL, a "provider" is just a key-value pair defined at a high-level that can then be referenced at a lower-level in your HTML email markup.

Blog - Ben Nadel - Replacing Blank Lines Using Multiline Mode RegEx Patterns In POSIX And Java In Lucee CFML
While working on my ColdFusion custom tag DSL for HTML emails, I ran into an interesting problem when performing a multiline RegExp replace on my generated email content. This is not the first time that I've tripped over issues with multiline (?m) Regular Expression patterns and line-breaks. Though, in this case, the issue was that my RegEx pattern was failing to match adjacent lines if the pattern ended with a line-break. Or rather, it was failing in POSIX (the default ColdFusion Regular Expression engine); but, it was succeeding in Java in Lucee CFML

Blog - Ben Nadel - Finding All Unique Paths In A Tree Structure In Lucee CFML
At InVision, I've been working with Holger Schueler to generate some internal reports regarding how different users end up in an enterprise context. One of the reports creates a Tree structure of cascading "invitations" (ie, this user invited another user who, in turn, invited three more users). In addition to rendering the tree structure visually, Holger would also like to download the tree structure as a CSV (Comma-Separated Values) file in which each row in the CSV contains a distinct path within the tree structure. This is a data translation that I've never actually done before. So, I wanted to sit down and figure it out in Lucee CFML

Podcast - Working Code Podcast - Episode 010: Scaling
An engineer at SquareSpace once referred to his company as "an overnight success, 7-years in the making." This cheeky insight pays homage to the marathon of work that is often required when building a successful product and / or business. Which begs the question: when is it appropriate to start thinking about scale? Should you be taking it into account during early ideation and the construction of your MVP (Minimum Viable Product)? Or, should you kick the can down the road with the assumption that you can always throw money at the problem later (either by hiring smart people or by vertically scaling your existing compute resources)?

Tweet - James Moberg - Lucee has Unit Tests available with their source
I just discovered that Lucee #cfml has unit tests available with their source. That is so awesome! (In the past, I've asked whether there were any public unit tests for ACF and never got an official response.)

Blog - Ortus Solutions - First Workshop of the Year Announced: Up and Running with Quick
On our first workshop of the year (March 11 - 12) we will get Up and Running with Quick. For those of you unfamiliar with the topic, Quick is an ORM (Object Relational Mapper) written in CFML for CFML.With it you can map database tables to entities (CFCs), create relationships between entities, query and manipulate data, and persist all your changes to your database. Quick helps you give relevant names to important bits of SQL code, compose queries at runtime to get exactly the data you want in the most efficient way, and gets out of your way when you need or want to write barebones SQL.


Several positions available on
Listing over 45 ColdFusion positions from 27 companies across 32 locations in 5 Countries since Dec 1st.

2 new jobs this week

Full-Time - Sr. Software Engineer - ColdFusion/Java at West Palm Beach, .. - United States
Posted Feb 19

Full-Time - ColdFusion Developer at Saint Paul, MN - United States
Posted Feb 18

ForgeBox Module of the Week

Navigate for CommandBox

Navigate allows you to traverse previously viewed working directories, both backwards and forwards (much like a web browser).

VS Code Hint Tips and Tricks of the Week

Local History

A visual source code plugin for maintaining local history of files.
Every time you modify a file, a copy of the old contents is kept in the local history. At any time, you can compare a file with any older version from the history. It can help you out when you change or delete a file by accident. The history can also help you out when your workspace has a catastrophic problem.

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

- Bronze Packages and up, now get a ForgeBox Pro and CFCasts subscriptions as a perk for their Patreon Subscription.
- All Patreon supporters have a Profile badge on the Community Website
- All Patreon supporters have their own Private Forum access on the Community Website

Don Bellamy
Eric Hoffman
Gary Knight
Giancarlo Gomez
David Belanger
Yogesh Mathur
Mario Rodrigues
John Wilson Synaptrix
Joseph Lamoree
Ben Nadel
Brett DeLine
Carl Von Stetten
Charlie Arehart
Dan Card
Daniel Garcia
Didier Lesnicki
Edgardo Cabezas
Jan Jannek
Jason Daiger
Jeff McClain
Jeremy Adams
Jonas Eriksson
Jordan Clark
Kai Koenig
Laksma Tirtohadi
Leon Seremelis
Matthew Darby
Matthew Clemente
Mingo Hagen
Patrick Flynn
Ross Phillips
Scott Steinbeck
Steven Klotz

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

★ Support this podcast on Patreon ★

130 episodes