Modernize or Die® - CFML News for February 4th, 2020

Eric and Brad host this weeks episode.They talk Adobe's Happy Hour Roadshows hitting California in the next 2 weeks. They announce a Fusion Reactor Webinar, Lucee 5.3.4 release and the CBValidation 2.0.0 and 2.1.0 releases. Michael Born released a new CF Project, cfsnippets, remind you about last weeks CBInertia webinar and Gavin's live coding challge on CodeWars, They discuss more information on CF Summit East 2020 and the Post Conference CF Specialist Certification Workshop and Ortus PreConference Workshops, as well as ITB 2020 and the workshops, They also discuss some other conferences you should consider attending. They spotlight a lot of great blog posts, tweets, videos and podcasts, too many to list, so listen to the show. They show off our ForgeBox module of the Week, Gavin and Michael's CFML Challenge App and this week's VS Code extensions, Auto Close Tags. We finish the podcast thank our Patreon supporters For the show notes - visit the website https://cfmlnews.modernizeordie.io/episodes/modernize-or-die-cfml-news-for-february-4th-2020 Music from this podcast used under Royalty Free license from SoundDotCom https://www.soundotcom.com/ and BlueTreeAudio https://bluetreeaudio.com
2020-02-04 Weekly News - Episode 39

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

Hosts:

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

Thanks to our Sponsor - Ortus Solutons

Living in a legacy environment is like living in chains: you are restricted in all movement and capacity. Each new line of code you add and each new dependency you integrate on top of your legacy application, only make the chains stronger and your monolith will keep growing.
Ortus can help you tame your monolith and modernize today.



News and Events


Adobe Roadshows - Happy Hours

These events are going to be different than our usual breakfast meetings. We are holding an evening happy hour type reception which will allow us to have individual and group conversations in a more relaxed environment. This gives more time for networking between everyone that goes. Adobe is hoping to have the CF 2020 demos available to play around with if the location allows for it.

Sacramento 2/11
San Francisco 2/17
San Jose 2/18
Los Angeles 2/19
Orange County 2/20

All networking mixers from 6-8pm. People can email Kishore@adobe.com to rsvp.



Fusion Reactor Live Stream coming up

February 11th at 7PM UTC (11AM PST)
We are running our first live demo and Q&A session on the FusionReactor YouTube channel, covering what’s new in FusionReactor 8.3.0, which is releasing very soon.
The demo should take around 30 minutes, at which point we will have time to answer all your questions.
https://www.fusion-reactor.com/news/whats-new-in-fusionreactor-8-3-0-live-stream-support/



Lucee released 5.3.4

Regarding that last bit, today we’re announcing a final release of Lucee 5.3.4 (5.3.4.77). As I explained in December, we decided to extend this version to a second release candidate phase. And, while there were no regressions in 5.3.4.73 per se, we did struggle, during the combined RC2 and January-December sprint, with a collection of challenging bugs related to low-level problems like classloading. Thus, in order to make 5.3.4 as helpful to as large a user base as possible, we made the decision to include a patch in 5.3.4.77 that eliminates those problems for nearly everyone. This is, of course, in addition to the large batch of tickets addressed in 5.3.4 overall.
https://dev.lucee.org/t/announcing-lucee-5-3-4-77-final/6562



CBValidate v2.0.0 and v2.1.0 released

In 2.0.0 and 2.1.0 we have a combined:
9 Features
4 Improvements
2 Compat & Bugs

## 2.1.0
3 Features

* `feature` : Added `constraintProfiles` to allow you to define which fields to validate according to defined profiles: https://github.com/coldbox-modules/cbvalidation/issues/37
* `feature` : Updated `RequiredUnless` and `RequiredIf` to use struct literal notation instead of the weird parsing we did.
* `feature` : Added the `Unique` validator thanks to @elpete!
* `improvement` : Added `null` support for the `RequiredIf,RequiredUnless` validator values

## 2.0.0

6 Features
4 Improvements
2 Compat & Bugs


### Features

* No more manual discovery of validators, automated registration and lookup process, cleaned lots of code on this one!
* New Validator: `Accepted` - The field under validation must be yes, on, 1, or true. This is useful for validating "Terms of Service" acceptance.
* New Validator: `Alpha` - Only allows alphabetic characters
* New Validator: `RequiredUnless` with validation data as a struct literal `{ anotherField:value, ... }`  -  The field under validation must be present and not empty unless the `anotherfield` field is equal to the passed `value`.
* New Validator: `RequiredIf` with validation data as a struct literal `{ anotherField:value, ... }`  -  The field under validation must be present and not empty if the `anotherfield` field is equal to the passed `value`.
* Accelerated validation by removing type checks. ACF chokes on interface checks

### Improvements

* Consistency on all validators to ignore null or empty values except the `Required` validator
* Formatting consistencies
* Improve error messages to describe better validation
* Get away from `evaluate()` instead use `invoke()`

### Compat & Bugs

* `Bugs` : Fixed lots of wrong type exceptions
* `Compat` : Remove ACF11 support

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



Michael Born announces new CF Project - CFSnippets

I've always wanted a nice cheatsheet website for CFML. Something where you could grab an H2 datasource config without having to google or search for it in an old code repo. I thought if you had all datasource configs together in one place, it would be easier for me (and other CFML devs) when building new apps.
So I built a searchable code snippets site. The idea was to provide CFML examples to beginner and intermediate developers as well as cheatsheets for libraries like ColdBox or LogBox. Someday there may even be a VSCode plugin to search and inject snippets for faster development.
https://michaelborn.me/entry/announcing-cfsnippets-com



Ortus Solution Webinar last Friday - cbInertia

Friday, January 31st, 2020 CST 11:00 A.M. CST (GMT -6:00)
Presented by Eric Peterson
Recording: https://vimeo.com/389260637
Webinars Page: https://www.ortussolutions.com/events/webinars



Gavin’s Live Coding Challenge

So Gavin likes this live streaming thing, so he started a daily challenge for himself, to do a daily kata on CodeWars, and stream it live. So follow him on Twitter for the live stream notifications, or watch after the fact on his YouTube. The first few were Javascript, but since CFML has been accepted now, he will mix it up and do some javascript and some CFML.
Live on Twitter - https://twitter.com/gpickin
Replays on YouTube - https://www.youtube.com/channel/UC55cdDHnLI4HkSgoTxWJ-KA/



More CF Summit Videos Released

The Adobe ColdFusion Summit is a confluence of everything in the realm of applications development. For designers, developers, strategists and industry leaders, the ColdFusion Summit provides the perfect forum to exchange ideas, inspiration and experiences.
22+ videos now in the playlist
https://www.youtube.com/playlist?list=PL3iywAijqFoUpNIUCPEoqZb6c6ZeUahIG



Conferences

Adobe CF Summit East 2020

Date: Wednesday, April 22, 2020
Time: 8:00am - 4:00pm *Time subject to change.
Location: Renaissance Washington, DC Downtown Hotel
999 Ninth Street NW
Washington, DC 20001
Cost: Complimentary

Save the date to join Adobe and Carahsoft for our interactive Adobe ColdFusion Summit East 2020 to exchange ideas, inspiration, and experiences among fellow designers, developers, strategists, and thought leaders alike.

Adobe ColdFusion delivers a single platform to rapidly develop, deploy, and manage scalable, high-performing web and mobile enterprise applications — enabling agencies across the U.S. to embrace futuristic technologies with ease.
Information: https://carahevents.carahsoft.com/CFSummit2020/Custom?name=About%20the%20Summit
Register: https://carahevents.carahsoft.com/Event/Details/138812-webevent



Adobe CF Summit East 2020 Workshops
Adobe - ColdFusion Specialist Certification POST Conference

Date: Thursday, April 23, 2020
Time: 8:00am - 5:00pm
*Time subject to change.
Location: Renaissance Washington, DC Downtown Hotel
                 999 Ninth Street NW
                 Washington, DC 20001
Cost: $499.00 USD *early bird discount
          $699.00 USD *after February 29, 2020
Description: The Adobe ColdFusion Specialist Program is a full-day certificate classroom program, delivered by top Adobe ColdFusion experts. You will be enrolled into the course as soon as you register and will receive course instructions and prep materials two weeks prior to the on-site program date. Following the training you will complete an online assessment – upon successful completion, you will receive your Adobe ColdFusion Specialist certificate.
Information: https://carahevents.carahsoft.com/CFSummit2020/Custom?id=3408
Register: https://carahevents.carahsoft.com/Event/Details/141641-webevent



Adobe CF Summit East 2020 Workshops
Ortus Solutions - Build Secure MVC ColdFusion Applications - Pre Conference

MON, APR 20, 2020, 9:00 AM – TUE, APR 21, 2020, 5:30 PM EDT
Price: $899

In this 2-day workshop you will learn how to build a secure and scalable ColdFusion MVC application. We will design a twitter like application (SoapBox) and build it using the most popular ColdFusion MVC Framework: ColdBox. We will design the client in UML and then build it using object orientation, database migrations, fluent query builders and then secure it using our rule engine: cbSecurity. We will also leverage behavior driven development (BDD) to build the entire client using a feature-test-driven approach.
Modernize your skills and applications with modern techniques and tooling.
Blog Post: https://www.ortussolutions.com/blog/build-secure-mvc-coldfusion-applications-pre-cfsummit-east-2020-workshop
Register Now: https://www.eventbrite.com/e/build-secure-mvc-coldfusion-applications-pre-cfsummit-east-2020-workshop-tickets-89653442861



Into the Box 2020

May 5-8, 2020 | Texas - 2 Days of Workshops
Hyatt Place The Woodlands
1909 Research Forest Dr., The Woodlands, TX 77380
Into The Box 2020 tickets are up for sale now! To thank you for your loyalty, our #SuperEarlyBird all access pass will be $200 off the original price and you can select your workshop once the schedule is published #ModernizeOrDie
Register now: https://intothebox.org/
Call for Speakers: CLOSED - Announcing speakers soon
Buy 2019 Videos: https://vimeo.com/ondemand/itb2019/

Pricing
4 Days - 2 Day workshops + 2 Day Conference = $899 Early Bird ( normally $999 )
3 Days - 1 Day workshops + 2 Day Conference = $699 Early Bird ( normally $799 )
2 Days workshops only - $699 Early Bird
1 Day workshop only = $399 Early Bird
2 Day Conference = $399 Early Bird



Into the Box 2020 Workshops

Keep an ear out for Modernize or Die Podcast - Conference Edition, Gavin is interviewing all of the workshop trainers so you can find out more about the workshops.

We announced last week we were offering 2 days of workshops so now you have options.

You can take one of our offered 2 day workshops:
ColdBox Zero to Hero - Gavin Pickin
ColdBox Hero to SuperHero - API Edition - Luis Majano
Or you could take 1 day workshops on both days or just 1 day.

Day one:
Intro to BDD - Brad Wood
Containerizing CFML Applications - Jon Clausen
Intro to Quick ORM - Eric Peterson

Day Two:
Intro to BDD - Brad Wood
Containerizing CFML Applications - Jon Clausen
CBElastic Search - Eric Peterson
Troubleshooting Common CF/Lucee Server Challenges - Charlie Arehart



Devnexus
Feb 19-21 2020 ATLANTA, GA
Luis and Brad will be there.
https://devnexus.com/



VUEConf US
AUSTIN CONVENTION CENTER
AUSTIN, USA • MARCH 2-4, 2020
https://us.vuejs.org/

DockerCon 2020 - Virtual Conference - Online
https://www.docker.com/dockercon/



More conferences: https://confs.tech/



Blogs, Tweets and Videos of the Week


Blog - Michael Born - Announcing CFsnippets.com
I've always wanted a nice cheatsheet website for CFML. Something where you could grab an H2 datasource config without having to google or search for it in an old code repo. I thought if you had all datasource configs together in one place, it would be easier for me (and other CFML devs) when building new apps.
So I built a searchable code snippets site. The idea was to provide CFML examples to beginner and intermediate developers as well as cheatsheets for libraries like ColdBox or LogBox. Someday there may even be a VSCode plugin to search and inject snippets for faster development.
https://michaelborn.me/entry/announcing-cfsnippets-com


Blog - Matthew Clemente - Notes on Migrating from MS SQL Server to PostgreSQL
I’m not a database guru or SQL sherpa, but from time to time I do fill the role of de facto DBA. The following are some notes and observations from a recent, successful, migration from Microsoft SQL Server to PostgreSQL. Is it everything you need to know? Absolutely not. But there are some points and resources that will hopefully be helpful.
https://blog.mattclemente.com/2020/02/04/mssql-to-postgresql-migration-notes.html


Blog - James Moberg - TrackingURLs - A ColdFusion function to parse Shipping Tracking Numbers
Just a quick post regarding TrackingURLs, a ColdFusion CFC to identify shipping tracking numbers (UPS, USPS, Fedex, OnTrac, DHL, S10) and generate a tracking URL.
https://dev.to/gamesover/trackingurls-a-coldfusion-function-to-parse-shipping-tracking-numbers-270


Blog - James Moberg - Sanitizing console.log from HTML using ColdFusion Regex
I have some ColdFusion applications that contain javascript console.log debugging. In many cases, I didn't want to remove the code as it is beneficial for internal developers, but it didn't make sense for it to be displaying messages for the general public. Instead of adding CFIF tags around every usage, I determined that it may be a good idea to use regex to sanitize it.
https://dev.to/gamesover/sanitizing-console-log-from-html-using-coldfusion-regex-m3b


Blog - Ben Nadel - StructCopy() Does Not Necessarily Return A Native Struct In Lucee CFML 5.3.3.62
Over the weekend, while working on a version of dump() that gracefully handles cyclic references in Lucee CFML, I happened upon a quirk of the language when dealing with reflection-style coding. It turns out, using structCopy() to perform a shallow-copy of a given data-structure doesn't necessarily return a native Struct. By which, I mean, the returned object doesn't necessarily have Struct member methods like .each(), .map(), and .filter(). Since this tripped me up, I thought I should write it down so that I don't forget how things work in Lucee CFML 5.3.3.62.
https://www.bennadel.com/blog/3764-structcopy-does-not-necessarily-return-a-native-struct-in-lucee-cfml-5-3-3-62.htm


Blog - Ben Nadel - The "Top" Argument In Dump() Will Not Protect You From Circular References In Lucee CFML 5.3.3.62
The other day, I had a typo in my ColdFusion code that was accidentally creating a circular reference in one of my data-structures. The workflow that was consuming this data-structure dealt with serialization; and, attempting to serialize the accidental circular reference was completely locking-up my Docker container. To debug this, I tried to use the dump() function with the top argument in an effort to see where in the structure the problem was residing - something that I demonstrated in Adobe ColdFusion 14-years ago. However, it turns out that the top argument won't actually protect you form a circular reference in Lucee. As such, I wanted to see if I could build a wrapper to the dump() built-in function (BIF) that would safely handle circular references in Lucee CFML 5.3.3.62.
https://www.bennadel.com/blog/3763-the-top-argument-in-dump-will-not-protect-you-from-circular-references-in-lucee-cfml-5-3-3-62.htm


Blog - Ben Nadel - Sending FusionReactor Tracked Transaction Metrics To The Cloud Dashboard With Lucee CFML 5.2.9.40
One of the nice features of FusionReactor is that when you create a sub-Transaction with the FRAPI, you can graph that Transaction performance against the server's CPU and Heap profile. This helps identify correlations, bottlenecks, and performance opportunities. This works out-of-the-box with the Standalone dashboard. However, at the time of this writing, FusionReactor does not send sub-Transaction metrics to the Cloud dashboard automatically. In order to graph sub-Transaction metrics in the Cloud dashboard, you have to explicitly enable them in your ColdFusion code. This was not obvious to me; so, I wanted to demonstrate how this works in Lucee CFML 5.2.9.40.
https://www.bennadel.com/blog/3762-sending-fusionreactor-tracked-transaction-metrics-to-the-cloud-dashboard-with-lucee-cfml-5-2-9-40.htm


Blog - Grae Desmond - Trying out CFML on CodeWars.com
So Gavin Pickin posted the other day about getting CFML up on CodeWars.com.  If you read the comments you will see he was successful.  Congratulations again Gavin and thanks for the work, and those that helped, on getting CFML added to CodeWars.com.
I won’t go into detail on CodeWars as Gavin does a good summary in his post and if you go to the CodeWars home page there is a good run through of what the site is and what it is trying to accomplish.   The site name sounds familiar but I had never visited the site itself.  Maybe I had heard someone talk about it or mention it online somewhere or at a conference.  So this was a whole new experience for me.
https://coldfusion.adobe.com/2020/01/trying-cfml-codewars-com/


Video - Using The FusionReactor API (FRAPI) To Add Custom Instrumentation In Lucee CFML 5.2.9.40
Ben Nadel dives into the FRAPI object exposed by FusionReactor's Java Agent in Lucee CFML 5.2.9.40. This allows him to add tracing information, segment request processing, and compare-and-contrast the performance of feature-flagged experimental algorithms.
https://vimeo.com/387153111


Blog - Grae Desmond - Spinning up a new ColdFusion Developer
After being a team of one for, well, 90% of my career, I am getting a junior developer to help me with all of the projects I have going on currently.  Originally it was going to be a permanent position and we were going to shoot for a person with hopefully some CFML knowledge coming in.  Our office went through some changes and all of that is paused for the time being. Being a university though we were able to work out getting a graduate assistant to help bridge the gap till final decisions are made.  We found a good candidate that we hired and after a couple days he is already demonstrating that he is quick and eager.  But as expected the chances were slim to get someone still in school with CF knowledge so we settled for finding someone with web experience which in his case was some Angular work.  So now it’s time to get him up to speed on ColdFusion.  So this is my plan and I’m curious to know what others think or would do in addition.  Hopefully this can start a thread that will be a resource for others down the road.
https://coldfusion.adobe.com/2020/01/spinning-new-coldfusion-developer/


Tweet - SeekAPlayer - 1600 Twitch Followers and counting
I just hit 1,600 followers on @Twitch I'm only 400 away till I hit 2,000! Then I'm doing a ColdFusion Coding stream :D @TwitchDev #Twitch #TwitchDEV #ColdFusion #LiveCoding #LiveCoder #CF #AdobeCF
https://twitter.com/seekaplayer/status/1223838242279165952
https://twitter.com/seekaplayer


Tweet - Vicky Ryder - Adobe CF Hashtags and Links to Remember
just enough color & motion to create an immersive feel while retaining the minimalism of the graphic design. 
And some easy to remember aliases for accessing video.
And a clean social media hash tag for #ColdFusion community DOMINATION!! Err..I mean “consolidation.” 🤘

coldfusion.tv - The #ColdFusion channel on YouTube
cfsummit.tv - The #ACFSummit 2019 YouTube playlist, w/ more vids to come.
bit.ly/acfs2020east - Register for ColdFusion Summit EAST!
#ACFSummit - THE hash tag for all the summit things! 🦉☕️

https://twitter.com/QueenOfCBR/status/1223358105582477315
https://twitter.com/QueenOfCBR



Coding Challenge of the Month - February 2020

$25 For the lucky winner.
How to enter: everyone who downloads CFML Challenge app from ForgeBox and gets all of the tests to pass ( by completing them, and not cheating ).



CFML Jobs

Several positions available on https://www.getcfmljobs.com/

Listing over 35 ColdFusion positions from 25 companies across 19 locations in 5 Countries

Full-Time - Jr. Coldfusion Developer at Kochi, Kerala -  India
Posted Feb 03
https://www.getcfmljobs.com/jobs/index.cfm/india/Jr-Coldfusion-Developer-at-Kochi-Kerala/11015


Full-Time - ColdFusion Software Developer at Albany, NY - United States
Posted Feb 03
https://www.getcfmljobs.com/jobs/index.cfm/united-states/ColdFusion-Software-Developer-at-Albany-NY/11014


Full-Time - ColdFusion Developer at Boynton Beach, FL - United States
Posted Feb 03
https://www.getcfmljobs.com/jobs/index.cfm/united-states/ColdFusion-Developer-at-Boynton-Beach-FL/11013


Full-Time - REQUIRED COLDFUSION DEVELOPER at Kochi, Kerala - India
Posted Jan 30
https://www.getcfmljobs.com/jobs/index.cfm/india/REQUIRED-COLDFUSION-DEVELOPER-at-Kochi-Kerala/11012


Full-Time - ColdFusion Developer at Downers Grove, IL - United States
Posted Jan 29
https://www.getcfmljobs.com/jobs/index.cfm/united-states/ColdFusion-Developer-at-Downers-Grove-IL/11011


Full-Time - ColdFusion developers at Bengaluru, Karnataka - India
Posted Jan 28
https://www.getcfmljobs.com/jobs/index.cfm/india/ColdFusion-developers-at-Bengaluru-Karnataka/11010



ForgeBox Module of the Week

CFML Challenge APP

A CFML learning app for mastering CFML through a suite of challenges written in BDD. It is a ColdBox app that houses the CFML Challenge Module, a module built with CFML Challenge tests for you to test your CFML Skills. As the CFML Challenge Module is updated, this app will present you with more challenges for you to master CFML.

This app was built as on a Live Stream by Gavin Pickin and Michael Born, as a learning tool, and a way for listeners of the Modernize or Die CFML News Podcast to participate in the monthly challenge.
Install the app, `box server start` and start your challenge today.

box install cfmlchallenge-app

https://www.forgebox.io/view/cfmlchallenge-app



VS Code Hint Tips and Tricks of the Week

Auto Close Tag by Jun Han

Formulahendry.auto-close-tag - 2,366,279 installs - 4.5 stars

Automatically add HTML/XML close tag, same as Visual Studio IDE or Sublime Text does.

From VS Code 1.16, it has built-in close tag support for HTML, Handlebars and Razor files. This extension is enabled for other languages like XML, PHP, Vue, JavaScript, TypeScript, JSX, TSX and so on. It is configurable.

https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-close-tag



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.

Someone pointed out that on Patreon only higher packages get mentioned on the podcast, we’re thanking everyone now, but as we get more sponsors, we’re going to have to focus on those with the right sponsorship levels.

If we’re getting your name wrong please let us know.

Andrew  Davis
Brian  White
Carl  Von Stetten
Da Li
Dan  Card
Daniel Garcia
David  Belanger
Didier  Lesnicki
Don  Bellamy
Erick Hoffman
Gary  Knight
Jan  Jannek
Jeremy Adams
John  Farrar
Jordan Clark
Joseph  Lamoree
Laksma  Tirtohadi
Matthew Clemente
Richard  Herbert
Samuel  Knowlton
Scott Steinbeck
VJ
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