Modernize or Die ® Podcast - CFML News Edition

Gavin and Eric host this weeks episode.They discuss Ortus' April Fools Blog Post. They announce Adobe's Developer Week announcement. They discuss Lucee's newsletter which announced Lucee is expanding their development team. They discuss updates to ColdBox Cross Site Request Forgery Module v2.0 and CBSecurity v2.4, and live on the show, Eric releases Quick 3.0.0-Alpha.1. They discuss Brad's new Screencast series on CommandBox 5. They discuss the upcoming webinars, they remind you of ContentBox CMS Customer Experience Survey and remind you to take the ColdFusion state of the Union Survey, as well as vote for the Modernize or Die podcast.

They remind you about Into the Box being a virtual online conference now, tickets are now available, and special deals on the videos from 2019 and 2018 Into the Box conferences. They remind you about DockerCon online. They also announce the date for CF Summit Las Vegas

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 twitter and getCfmlJobs.com They show off our ForgeBox module of the Week, Dan Card's commandbox-siteopener and this week's VS Code Tip of the week is Git Commands Feature in GitLens 10.

They finish the podcast thanking the shows Patreon supporters, including a few new ones. You can support us on Patreon here https://www.patreon.com/ortussolutions

For the show notes - visit the website
https://cfmlnews.modernizeordie.io/episodes/modernize-or-die-cfml-news-for-april-7th-2020

Music from this podcast used under Royalty Free license from SoundDotCom https://www.soundotcom.com/ and BlueTreeAudio https://bluetreeaudio.com

Show Notes

2020-04-07 Weekly News - Episode 48

Watch the video version on YouTube at https://youtu.be/4zedULjJW4I

Hosts:
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: patreon.com/ortussolutions . If you love our podcasts and all we do for the #coldfusion #cfml community consider chipping in, we are almost there!
https://www.ortussolutions.com/blog/we-need-your-help



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 :)
https://www.ortussolutions.com/blog/box-products-get-complete-makeover


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
https://cf-devweek.meetus.adobeevents.com/


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.
https://us12.campaign-archive.com/?u=a8314f9282c07e84232a26805&id=55db57ba60


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.
https://www.ortussolutions.com/blog/coldbox-cross-site-request-forgery-module-v2-released

cbSecurity 2.4 Released
This release adds the inclusion of the Cross Site Request Forgery module into cbsecurity: cbcsrf.
https://www.ortussolutions.com/blog/cbsecurity-24-released


Quick 3.0.0-Alpha.1
Released, live on the show… available quick@be on forgebox.
https://www.forgebox.io/view/quick#versions


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 - https://www.ortussolutions.com/blog/whats-new-in-commandbox-5-lucee-extension-management

Git Access Tokens - https://www.ortussolutions.com/blog/whats-new-in-commandbox-5-git-access-tokens

Library Updates - https://www.ortussolutions.com/blog/whats-new-in-commandbox-5-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.
https://cfwebinar-journey-pmt.meetus.adobeevents.com/


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!
https://docs.google.com/forms/d/e/1FAIpQLScs2sbby0zLu6kJSQA_VqT5-ZGYsLpCI7IRgJMepxPk-BG8gw/viewform


Reminder: State of the CF Union 2020 Survey

VOTE FOR OUR PODCASTS
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!
https://teratech.com/state-of-the-cf-union-2020/



Conferences

Adobe CF Summit East 2020 - Cancelled
https://carahevents.carahsoft.com/CFSummit2020/

Adobe - ColdFusion Specialist Certification POST Conference - CANCELLED
https://carahevents.carahsoft.com/CFSummit2020/Custom?id=3408

Ortus Solutions - Build Secure MVC ColdFusion Applications - Pre Conference - Cancelled
https://www.ortussolutions.com/blog/ortus-solutions-dc-workshop-is-cancelled-due-to-covid-19-concerns


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: https://intothebox.org/

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.
https://vimeo.com/ondemand/itb2019
https://vimeo.com/ondemand/intothebox2018

Workshops
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
https://cf-devweek.meetus.adobeevents.com/


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.
https://www.docker.com/dockercon/


CF Summit West
October 28-29
Mirage Hotel
https://cfsummit.adobeevents.com/


CF Camp
TBA

More conferences: https://confs.tech/



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).
https://www.carehart.org/blog/client/index.cfm/2020/4/7/syncing_cfadmin_settings


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.
https://www.ortussolutions.com/blog/whats-new-in-commandbox-5-lucee-extension-management


Blog - Ben Nadel - Spreading SQL And CFQueryParam Tags Across Multiple Function Calls In Lucee CFML 5.2.9.40
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 5.2.9.40.
https://www.bennadel.com/blog/3806-spreading-sql-and-cfqueryparam-tags-across-multiple-function-calls-in-lucee-cfml-5-2-9-40.htm


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
https://twitter.com/agentK/status/1247424610938716160
https://twitter.com/agentK


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: https://luceeserver.atlassian.net/browse/LDEV-2827
It still works in Lucee 5.3.4.  #CFML #ColdFusion
https://twitter.com/bdw429s/status/1247305244503089153
https://twitter.com/bdw429s


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?
https://coldfusion.adobe.com/2020/04/work-home-salvation-prison-life-changes-amidst-covid-19-life/


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.
https://www.bennadel.com/blog/3805-considering-mysql-cfqueryparam-prepared-statements-and-sql-queries-that-use-in-clauses-in-coldfusion.htm


Blog - Ben Nadel - Printing Emoji Characters From Unicode CodePoints In Lucee CFML 5.3.5.92
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 5.3.5.92.
https://www.bennadel.com/blog/3804-printing-emoji-characters-from-unicode-codepoints-in-lucee-cfml-5-3-5-92.htm


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.
https://www.bennadel.com/blog/3803-i-prefer-the-unary-plus-operator-over-parseint-and-parsefloat-when-coercing-strings-to-numbers-in-javascript.htm


Blog - Ben Nadel - Zipping Image Archives With DEFLATE And STORE Compression Methods In Lucee CFML 5.2.9.31
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 5.2.9.31.
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!
https://www.bennadel.com/blog/3802-zipping-image-archives-with-deflate-and-store-compression-methods-in-lucee-cfml-5-2-9-31.htm


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.
https://www.ortussolutions.com/blog/cbsecurity-24-released


Blog - Luis Majano - ColdBox Cross Site Request Forgery Module v2 released
https://www.ortussolutions.com/blog/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
https://dev.lucee.org/t/lucee-performance-analyzer-plugin/6832


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.
https://www.ortussolutions.com/blog/whats-new-in-commandbox-5-git-access-tokens


Blog - Ben Nadel - Pretty-Printing A ColdFusion Query Object In Lucee CFML 5.2.9.31
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 5.2.9.31.
https://www.bennadel.com/blog/3801-pretty-printing-a-coldfusion-query-object-in-lucee-cfml-5-2-9-31.htm

Video - Matthew Clemente - Testing
https://www.youtube.com/watch?v=IgiZfsC0sq8&feature=youtu.be


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.
https://www.youtube.com/watch?v=2Q6brKYAGTc


Lucee Newsletter
Register Online: https://lucee.org/newsletter-archive.html
https://us12.campaign-archive.com/?u=a8314f9282c07e84232a26805&id=55db57ba60


Blog - Ben Nadel - Referencing String Characters Using Array-Notation In Lucee CFML 5.3.5.92
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.
https://www.bennadel.com/blog/3800-referencing-string-characters-using-array-notation-in-lucee-cfml-5-3-5-92.htm


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.
https://www.ortussolutions.com/blog/whats-new-in-commandbox-5-library-updates



CFML Jobs

Several positions available on https://www.getcfmljobs.com/
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
https://www.getcfmljobs.com/jobs/index.cfm/united-states/ColdFusion-Architect-at-Rockville-MD/11045

Full-Time - ColdFusion Architect at Rockville, MD - United States
Posted Apr 06
https://www.getcfmljobs.com/jobs/index.cfm/united-states/ColdFusion-Architect-at-Rockville-MD/11043

Full-Time - Senior ColdFusion Developer (Temporary) at Raleigh, NC - United States
Posted Apr 06
https://www.getcfmljobs.com/jobs/index.cfm/united-states/Senior-ColdFusion-Developer-Temporary-at-Raleigh-NC/11044

Full-Time - Senior ColdFusion Developer at Raleigh, NC - United States
Posted Mar 31
https://www.getcfmljobs.com/jobs/index.cfm/united-states/Senior-ColdFusion-Developer-at-Raleigh-NC/11042

Full-Time - Senior ColdFusion Developer at Raleigh, NC - United States
Posted Mar 31
https://www.getcfmljobs.com/jobs/index.cfm/united-states/Senior-ColdFusion-Developer-at-Raleigh-NC/11041



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

https://www.forgebox.io/view/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.

https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens



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 https://www.patreon.com/ortussolutions

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
Synaptrix
Yogesh  Mathur

You can see an up to date list of all sponsors on Ortus Solutions' Website
https://ortussolutions.com/about-us/sponsors
★ Support this podcast on Patreon ★

What is Modernize or Die ® Podcast - CFML News Edition?

Technology is ever changing, blink and you miss it, until now. This podcast keeps you up to date on everything ColdFusion related. News, Engine and Package Updates and Releases, Webinars Meetups and Workshops, CFCast updates, Conferences, Blog Tweets and Videos the Week from the Community, Job offerings, as well as the ForgeBox module of the Week and the VS Code Hint Tip and Trick of the week.