Modernize or Die® - CFML News for September 15th, 2020 - Episode 70

Brad and Gavin host this weeks episode. They discuss CFCamp officially being cancelled for 2020. They discuss the latest Lucee updates. They discuss Online CF Meetup for this week, and the one you might have missed last week. 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 closed and speakers are starting to be listed on the site. 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, logstash by Ortus Solutions, this module provides a common interface for sending Logstash logs to elasticsearch. This week's VS Code Tip of the week is ngrok for VSCode by philnash, A VSCode extension to control ngrok from the command palette. For the show notes - visit the website https://cfmlnews.modernizeordie.io/episodes/modernize-or-die-cfml-news-for-september-15th-2020-episode-70 Music from this podcast used under Royalty Free license from SoundDotCom https://www.soundotcom.com/ and BlueTreeAudio https://bluetreeaudio.com
2020-09-15 Weekly News - Episode 70

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

Hosts:

Gavin Pickin - Software Consultant for Ortus Solutions
Brad Wood- 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 56% 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


CFCamp - Officially Cancelled for 2020
We’ve been monitoring the pandemic situation since earlier in the year. It seems that for the foreseeable future it'll be nearly impossible to run a proper physical conference event.
CFCamp is more than just two days with a bunch of tech sessions. We are a community and the conference is not only driven by speakers and the organisers but also by the participants, chats over lunch, during breaks or while having a drink at the bar. And let's not forget the dogs-of-CFCamp from last year. Right now it’d be hardly possible to create this environment, not to mention travel and quarantine restrictions for international speakers and attendees.
Therefore: after considering all our options and the compromises we'd be willing to enter, we've decided against running CFCamp 2020.
More on their site: https://www.cfcamp.org/



Lucee Updates
The problem with excessive memory usage with ArrayEach has been fixed in 5.3.7.42 and 5.3.8.71
https://luceeserver.atlassian.net/browse/LDEV-2559


Online CF Meetup - "Using CF APIs and the JAMStack" with Raymond Camden, Brian Rinaldi & Dan Wilson
Thursday Sep 17th at 12pm US Eastern Time, UTC-4
We're happy to announce another session of the Online ColdFusion Meetup to be held Thursday Sep 17th at 12pm US Eastern Time, UTC-4. (And hey, "we're getting the band back together", with former CFers Ray and Brian, and long-time CFer Dan Wilson.)
And for the first time, this session will be held via Youtube (and streamed to it via Streamyard):
You can use ColdFusion APIs to create fast, secure sites and apps by pre-rendering files and serving them up without web servers. In this session (a live-streamed discussion and demos, rather than a presentation), Raymond Camden and Brian Rinaldi will discuss the JAM Stack, along with Dan Wilson on how to use ColdFusion to make remote data available for it. They’ll take a look at how to create a site and serve it up without needing to manage web servers.
Event page: https://www.meetup.com/coldfusionmeetup/events/273259394/
Meeting URL: https://www.youtube.com/watch?v=eWOEUo8lJzE


ICYMI - Online CF Meetup - "Differences between CF Ent & Std: more than you may think", w/ Charlie Arehart
Thursday Sep 10th at 12pm US Eastern Time, UTC-4.
Most people know that there are differences between CF Enterprise and Standard, most notably the price, of course! But if pressed, I suspect most people could not name more than a couple other differences or perhaps a few, but there are literally dozens. And while you may think you "don't need" Enterprise when it "costs so much more", you may be surprised to find some things that could in fact be "worth it" compared to remaining on Standard: whether from a performance standpoint, in terms of certain tags that are throttled in Standard; or from a licensing standpoint, in terms how many more CPU cores are supported by Enterprise than Standard. It may even be possible that it would be less expensive for you to license CF Enterprise rather than Standard.
Event Page: https://www.meetup.com/coldfusionmeetup/events/273118493/
Recording: https://www.youtube.com/watch?v=PNRjwenoZLw&list=PLG2EHzEbhy0-QirMKgSxhjkUyTSSTvHjL


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


Supercharge your VSCode Environment
- Supercharge your VSCode Environment ( Intro )
- Getting started with the CFML Extension

Build a Blog with Quick
- Introduction
- Getting Started
- Displaying a List of Posts

Send your suggestions at https://cfcasts.com/support



Conferences


Into the Box 2020 - Workshops - Virtual Live training

October
2 day Workshop - October 8 - 9, 2020 - ColdBox Zero to Hero - lead by Gavin Pickin
2 day Workshop - October 22 - 23, 2020 - 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
Some Speakers now listed: https://cfsummit.adobeevents.com/speakers/



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 - Not happening in 2020 :(
https://www.cfcamp.org/


More conferences: https://confs.tech/



Blogs, Tweets and Videos of the Week


Blog - Ben Nadel - Code Kata: Creating A Fluent, Closure-Based "Builder" API In Lucee CFML 5.3.6.61
As of late, I've been feeling very creatively blocked. Right now, work is taking every ounce of mental energy that I have, which is leaving me with little left over with which to create magic. As such, I just wanted to do something - anything - to create a little neural activity to keep the old brain-meat lubricated. I thought it might be fun to experiment with a fluent, closure-based "builder" API in Lucee CFML 5.3.6.61.
https://www.bennadel.com/blog/3894-code-kata-creating-a-fluent-closure-based-builder-api-in-lucee-cfml-5-3-6-61.htm


Tweet - Zac Spitzer - CFThread documentation updated
Just updated the cfthread documentation with some additional information and tips https://docs.lucee.org/reference/tags/thread.html #lucee #cfml
https://twitter.com/zackster/status/1305560379955781633
https://twitter.com/zackster


Tweet - Brad Wood - Ortus merged more into core JBoss Undertow Project
So excited to have two more pull requests from the Ortus team merged into the core JBoss Undertow project. The latest one was a pretty large revamp of predicate logging that will benifit CommandBox users. https://github.com/undertow-io/undertow/pull/911 #CFML #ColdFusion
https://twitter.com/bdw429s/status/1305528072171646976
https://twitter.com/bdw429s


Blog - Ben Nadel - The First Cookie Wins When Conflicting Cookie Names Are Used With Different Settings In Lucee CFML 5.3.6.61
A few weeks ago at InVision, we did one of the most dangerous things you can do in a production application: we messed with some Cookie settings. And, unfortunately, we got a little burned when the change produced some unexpected behaviors - unexpected in so much as we didn't have the best mental model for how the cookies would react. As such, I wanted to take a moment to look at how cookies behave when the ColdFusion server ends up creating conflicting cookie names with different domain settings in Lucee CFML 5.3.6.61.
https://www.bennadel.com/blog/3892-the-first-cookie-wins-when-conflicting-cookie-names-are-used-with-different-settings-in-lucee-cfml-5-3-6-61.htm


Blog - Ben Nadel - Accessing Cookies With The Same Name In Lucee CFML 5.3.6.61
This morning, I took a look at the fact that the first cookie wins in both JavaScript and ColdFusion when multiple cookies are assigned with the same name. As a quick follow-up post, I wanted to see if I could access all of the conflicting / colliding cookies in the HTTP Header data even if the cookie scope only presents one. And, in both ColdFusion and Lucee CFML, we can access to the HTTP headers using the getHttpRequestData() function.
https://www.bennadel.com/blog/3893-accessing-cookies-with-the-same-name-in-lucee-cfml-5-3-6-61.htm


Blog - Wil De Bruin - ValidateOrFail: filtering your request collection.
A few weeks ago I blogged about the advantages of validation your request scope vs validating your model. Actually, it is even better to validate your request scope, populate your model with the results of your validateOrFail function and now also validate the model , this time including business logic in your validations.
As explained in this previous post, validateOrFail acts as a kind of filter if you validate a struct. Input of this filter is your request collection( a struct) or a user-defined struct. The nice thing here is: validateOrFail will only return your validated fields, and this way you get rid of all kind of unwanted other fields in your request scope which can help secure your input. At least, that’s what the docs indicate
https://shiftinsert.nl/validateorfail-filtering-your-request-collection/


Blog - Wil De Bruin - Cfcompile to the rescue (part 2)
A few days ago I blogged about some annoying lucee or coldbox behaviour. On syntax errors in components often I didn’t get feedback on the offending file or line numbers. This makes it very hard to debug your application if you made changes in several files at once. After my post I was contacted by Zac Spitzer who asked me if I could file a bug. I already did this a few months ago, but they couldn’t reproduce my case. So we talked about this bug and I digged a little deeper to find out what was wrong.
https://shiftinsert.nl/cfcompile-to-the-rescue-part-2/


Blog - Brad Wood - Improving Lucee's Query of Query Support
One of the really great features of CFML is the ability to run SQL against a result set in memory.  This allows you to union separate results together or even apply additional filtering on an exiting result if you can't control what the DB gives you.  Like everything, there is a time and a place for this.  There are people who strongly dislike QoQ (query of queries) but my take is that I think they're great when used with relatively small data sets and unless performance profiling shows they are causing issues, I have no problems using them.  http://wwvv.codersrevolution.com/blog/improving-lucees-query-of-query-support


Blog - Ben Nadel - Deleting Temporary Upload Files In Our K8 Operational Readiness Probe In Lucee CFML 5.3.6.61
Over the weekend, I talked about the fact that some of our Lucee CFML containers at InVision were running out of disk space. It seems that the current release of Lucee will generate a duplicate temporary .upload file per CFThread; and, that it won't delete these files automatically after the parent request has completed. As such, I had to step in and try to resolve the matter programmatically. What I ended up doing was augmenting our Kubernetes (K8) operational readiness probe to monitor the getTempDirectory() folder and delete .upload files that were older than 15-minutes (which was just an arbitrary amount of time). So far, it seems to be working, so I wanted to share my approach in Lucee CFML 5.3.6.61.
https://www.bennadel.com/blog/3891-deleting-temporary-upload-files-in-our-k8-operational-readiness-probe-in-lucee-cfml-5-3-6-61.htm


Blog - Wil De Bruin - Cfcompile to the rescue
This is a story about sloppiness, dislexia, or maybe my touch typing skill are just lacking when coding. I also hear friends telling me their cat is sleeping on the keyboard. To add to this disaster, Lucee is not very helpful when trying to decipher my typo’s. I wonder if you ever saw a screen like this:
https://shiftinsert.nl/cfcompile-to-the-rescue/


Blog - Pete Freitag - CFML Left and Right Functions can Accept Negative Counts
Here is a handy trick I saw in some code recently. It turns out you can use a negative integer in the count argument of the left() and right() functions in CFML. This works in multiple versions of both Lucee and Adobe ColdFusion!
https://www.petefreitag.com/item/908.cfm


Blog - Steve Bryant - Implementing the Observer pattern in ColdFusion with Observer.cfc
Often I want to respond to events in a component, but I don't want it to need to know anything about the component that is taking action on it. This is often when I am using a generic component on my site.
The Observer pattern is perfect for this.
I didn't find an existing Observer implementation in ColdFusion that I loved and I wanted to try my hand at it, so I created Observer.cfc.
http://www.bryantwebconsulting.com/blog/index.cfm/2020/9/9/Implementing-the-Observer-pattern-in-ColdFusion-with-Observercfc



CFML Jobs

Several positions available on https://www.getcfmljobs.com/
Listing over 22 ColdFusion positions from 14 companies across 10 locations in 5 Countries since July 1st

4 new jobs this week.

Full-Time - Full Stack Web Entwickler at München - Other Countries
Posted Sep 11
https://www.getcfmljobs.com/viewjob.cfm?jobid=11114

Full-Time - Web Entwickler at München - Other Countries
Posted Sep 11
https://www.getcfmljobs.com/viewjob.cfm?jobid=11113

Full-Time - Cloud Engineer at München - Other Countries
Posted Sep 11
https://www.getcfmljobs.com/viewjob.cfm?jobid=11112

Full-Time - Projektmanager at München - Other Countries
Posted Sep 11
https://www.getcfmljobs.com/viewjob.cfm?jobid=11111


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

logstash by Ortus Solutions

This module provides a common interface for sending Logstash logs to elasticsearch. The module may be used with either a direct connection to an Elasticsearch server or may be installed as a client-only module, which connects to a separate instance running this module as a microservice.

box install logstash

https://www.forgebox.io/view/logstash



VS Code Hint Tips and Tricks of the Week

ngrok for VSCode by philnash

A VSCode extension to control ngrok from the command palette.

ngrok: start: Start an HTTP tunnel pointing to a port of your choice from the command palette
You can choose to copy the URL to the clipboard, open it in a browser or even generate a QR code so that you can easily open it on a mobile device
ngrok: start: Start a named HTTP tunnel from your ngrok config
ngrok: stop: Stop one or all HTTP tunnels
ngrok: dashboard: Open the ngrok dashboard

https://marketplace.visualstudio.com/items?itemName=philnash.ngrok-for-vscode#ngrok-for-vscode



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

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