Modernize or Die ® Podcast - CFML News Edition

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 jconf.dev 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 getCfmlJobs.com, 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
https://cfmlnews.modernizeordie.io/episodes/modernize-or-die-cfml-news-for-september-8th-2020-episode-69

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

Show Notes

2020-09-08 Weekly News - Episode 69

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

Hosts:

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



News and Events



Fusion Reactor 8.5 has been released.
https://docs.fusion-reactor.com/release-notes/



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
https://github.com/cfsimplicity/lucee-spreadsheet
https://twitter.com/cfsimplicity/status/1301919256959950848
https://twitter.com/cfsimplicity



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



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 https://cfcasts.com/support



Conferences


Into the Box 2020 - Workshops - Virtual Live training

October
2 day Workshop - ColdBox Zero to Hero - lead by Gavin Pickin
2 day Workshop - ColdBox Hero to Superhero - lead by Luis Majano

https://www.ortussolutions.com/events
Podcast Code:
PODCAST10 - 10% off
There is a code for ITB attendees to save 15% - If you didn’t get the email contact us.



JConf.dev

September 30th, 9am - 4pm CST
https://jconf.dev/



Adobe ColdFusion Summit 2020 - Replaces CF Summit West

Date: November 17-19
Location: Online
https://cfsummit.adobeevents.com/
Admission: Free

Speaker sign up for Adobe
https://cfsummit.adobeevents.com/speaker-application/
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.
Blog: https://coldfusion.adobe.com/2020/07/coldfusion-certification-online-now/
Register: https://www.adobe.com/products/coldfusion-family/certificate.html


CF Camp
TBA

More conferences: https://confs.tech/



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
https://twitter.com/bdw429s/status/1303353108647628804
https://twitter.com/bdw429s


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
https://github.com/tonyjunkes/pdftools-java-sdk-cfml-samples
https://twitter.com/tonyjunkes/status/1303209153679294469
https://twitter.com/tonyjunkes


Blog - Ben Nadel - The Elvis / Null Coalescing Operator Can Sometimes Replace The Safe Navigation Operator In Lucee CFML 5.3.6.61
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 5.3.6.61.
https://www.bennadel.com/blog/3890-the-elvis-null-coalescing-operator-can-sometimes-replace-the-safe-navigation-operator-in-lucee-cfml-5-3-6-61.htm


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.
https://blog.mattclemente.com/2020/09/06/pipedream-uptime-monitoring.html


Blog & Video - Ben Nadel - Temporary Upload Files Are Duplicated And Persisted When A Request Uses CFThread In Lucee CFML 5.3.6.61
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.
https://www.bennadel.com/blog/3889-temporary-upload-files-are-duplicated-and-persisted-when-a-request-uses-cfthread-in-lucee-cfml-5-3-6-61.htm


Blog - Ben Nadel - Using Both STORE And DEFLATE Compression Methods With The zip CLI In Lucee CFML 5.3.6.61
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 5.3.6.61.
https://www.bennadel.com/blog/3888-using-both-store-and-deflate-compression-methods-with-the-zip-cli-in-lucee-cfml-5-3-6-61.htm


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
https://github.com/cfsimplicity/lucee-spreadsheet
https://twitter.com/cfsimplicity/status/1301919256959950848
https://twitter.com/cfsimplicity


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 5.3.6.61. 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.
https://www.bennadel.com/blog/3887-proxying-amazon-aws-s3-pre-signed-url-uploads-using-netlify-functions.htm


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. https://shiftinsert.nl/cbvalidation-creating-a-better-uniquevalidator/


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!
https://www.petefreitag.com/item/907.cfm


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: https://www.ortussolutions.com/shop#!/
#ColdFusion #News #ModernizeOrDie
https://twitter.com/ortussolutions/status/1301178658812461061
https://twitter.com/ortussolutions


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.
https://shiftinsert.nl/cbvalidation-validating-a-model-or-the-request-collection/



CFML Jobs

Several positions available on https://www.getcfmljobs.com/
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
https://www.getcfmljobs.com/jobs/index.cfm/india/ColdFusion-and-SQL-Developer-at-Hyderabad-Telangana/11110

Full-Time - Coldfusion Software Developer - (Remote Work) at Calgary, AB.. - Canada
Posted Sep 04
https://www.getcfmljobs.com/jobs/index.cfm/canada/Coldfusion-Software-Developer-Remote-Work-at-Calgary-AB/11109


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
https://www.ortussolutions.com/about-us/careers




ForgeBox Module of the Week

Coldbox-asset-bag

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.

https://forgebox.io/view/coldbox-asset-bag



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.

https://marketplace.visualstudio.com/items?itemName=Cardinal90.multi-cursor-case-preserve



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

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
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.