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
Watch the video version on YouTube at https://youtu.be/oY5QqaN6YlM
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
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!
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/
The problem with excessive memory usage with ArrayEach has been fixed in 22.214.171.124 and 126.96.36.199
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/
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
- Getting Started
- Displaying a List of Posts
Send your suggestions at https://cfcasts.com/support
Into the Box 2020 - Workshops - Virtual Live training
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
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
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.
CF Camp - Not happening in 2020 :(
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 188.8.131.52
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 184.108.40.206.
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
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
Blog - Ben Nadel - The First Cookie Wins When Conflicting Cookie Names Are Used With Different Settings In Lucee CFML 220.127.116.11
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 18.104.22.168.
Blog - Ben Nadel - Accessing Cookies With The Same Name In Lucee CFML 22.214.171.124
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
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.
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 126.96.36.199
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 188.8.131.52.
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:
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!
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.
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
Full-Time - Web Entwickler at München - Other Countries
Posted Sep 11
Full-Time - Cloud Engineer at München - Other Countries
Posted Sep 11
Full-Time - Projektmanager at München - Other Countries
Posted Sep 11
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
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
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
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
Carl Von Stetten
You can see an up to date list of all sponsors on Ortus Solutions' Website
Switch to Modernize or Die ® Podcast - SoapBox Edition - Switch to Modernize or Die ® Podcast - Conference Edition
Music from this podcast used under Royalty Free license from SoundDotCom and BlueTreeAudio© 2019 Ortus Solutions