Modernize or Die® - CFML News Podcast for April 30th, 2024 - Episode 215
2024-04-30 Weekly News - Episode 215
Watch the video version on YouTube at https://youtube.com/live/qw3x1HcX6xE?feature=share
Hosts:
Watch the video version on YouTube at https://youtube.com/live/qw3x1HcX6xE?feature=share
Hosts:
- Eric Peterson - Senior Developer at Ortus Solutions
- Daniel Garcia - Senior Developer at Ortus Solutions
Thanks to our Sponsor - Ortus Solutions
The makers of ColdBox, CommandBox, ForgeBox, TestBox and all your favorite box-es out there.
A few ways to say thanks back to Ortus Solutions:
- Buy workshop tickets to CF Summit East
- Event Date: April 24, 2024
- Hosted By: Adobe & Carahsoft
- Location: Reston, VA
- Buy Tickets to Into the Box 2024 in Washington DC https://www.intothebox.org/
- MAY 15th - 17th,2024 - Washington, DC
- Like and subscribe to our videos on YouTube.
- Help ORTUS reach for the Stars - Star and Fork our Repos
- Star all of your Github Box Dependencies from CommandBox with https://www.forgebox.io/view/commandbox-github
- Subscribe to our Podcast on your Podcast Apps and leave us a review AND WE WILL READ IT ON THE SHOW
- Sign up for a free or paid account on CFCasts, which is releasing new content regularly
- BOXLife store: https://www.ortussolutions.com/about-us/shop
- Buy Ortus’s Books
- 102 ColdBox HMVC Quick Tips and Tricks on GumRoad (http://gum.co/coldbox-tips)
- Now on Amazon! In hardcover too!!!
- https://www.amazon.com/dp/B0CJHB712M
- Learn Modern ColdFusion (CFML) in 100+ Minutes - Free online https://modern-cfml.ortusbooks.com/ or buy an EBook or Paper copy https://www.ortussolutions.com/learn/books/coldfusion-in-100-minutes
Patreon Support (charming)
We have 50 patreons:
https://www.patreon.com/ortussolutions.
News and Announcements
ICYMI — CFCamp has announced the first batch of Sessions
This year's programme was once again open for participation from the CFML and wider development communities. If you're interested in what the Call For Papers for CFCamp 2024 looked like - it's still online on papercall.io (but now closed as of end of March 2024).
So far, we have confirmed and announced 20 sessions. There are still a few more to come, stay tuned.
The sessions will be assigned to slots and rooms a bit closer to the event.
https://www.cfcamp.org/sessions.html
New Releases and Updates
ICYMI - qb 9.8.2 – 9.10.0
- New addIndex method for adding indexes to existing tables
- New BindingsCommenter for SQL Commenter
- Performance improvement for large recordsets (Thanks, John Whish!)
https://qb.ortusbooks.com/whats-new
ICYMI - Quick 8.0.3
Support qb's SqlCommenter.
https://quick.ortusbooks.com/whats-new
ICYMI - Megaphone 1.0.3 – 1.0.4
Bug fixes in the Slack Provider
https://megaphone.ortusbooks.com/whats-new
In Beta - cbq 3.0.0-beta.7
ICYMI - Quick 8.0.3
Support qb's SqlCommenter.
https://quick.ortusbooks.com/whats-new
ICYMI - Megaphone 1.0.3 – 1.0.4
Bug fixes in the Slack Provider
https://megaphone.ortusbooks.com/whats-new
In Beta - cbq 3.0.0-beta.7
- More reliable Database Provider
- Keep completed or failed database provider jobs around for debugging
- Wait for jobs to complete when reiniting or shutting down ColdBox (up to a timeout)
https://cbq.ortusbooks.com/whats-new
Webinars, Meetups and Workshops
ICYMI — CF Summit Online
Charlie Arehart has provided all the links for this
List of Sessions, Descriptions and Links: https://adobe-coldfusion-online-summit-2024.attendease.com/sessions-on-demand/
Youtube Playlist of the Sessions: https://www.youtube.com/playlist?list=PL3iywAijqFoXrJ7jHdw-A1vNl-JB-iDQ7
CFCasts Content Updates
https://www.cfcasts.com
Recent Releases
Webinars, Meetups and Workshops
ICYMI — CF Summit Online
Charlie Arehart has provided all the links for this
List of Sessions, Descriptions and Links: https://adobe-coldfusion-online-summit-2024.attendease.com/sessions-on-demand/
Youtube Playlist of the Sessions: https://www.youtube.com/playlist?list=PL3iywAijqFoXrJ7jHdw-A1vNl-JB-iDQ7
CFCasts Content Updates
https://www.cfcasts.com
Recent Releases
- An example of Dark mode implementation with tailwind css
- vue-helpers - ForgeBox Module of the Week - 04/16/24 - Episode 214
- Anima: Figma Design to Code | Front-End Coding Assistant - VSCode Hint Tip and Trick of the Week - 04/16/24 - Episode 214
Conferences and Training
ITB 2024
- Location: Optica in Washington, DC
- Dates: May 15-17, 2024
- https://www.eventbrite.com/e/into-the-box-2024-the-new-era-of-modernization-tickets-663126347757
- Most sessions and workshops have been announced: https://www.intothebox.org/
- We have 5, yes 5 SECRET SESSIONS - that you have to be there to see them.
- Hotel Options - https://www.ortussolutions.com/blog/hotel-options-into-the-box-2024
- Announcement Blog Post: https://www.ortussolutions.com/blog/our-into-the-box-2024-venue-and-dates-are-set
CFCamp 2024
- Location: Munich, Freising, Germany
- Dates: June 13-14, 2024
- Twitter Link: https://twitter.com/cf_camp/status/1736705195927646236
- Facebook Link: https://t.co/YKU4dhuHEO
- https://www.cfcamp.org/
- https://www.cfcamp.org/tickets.html
- Sessions announced: https://www.cfcamp.org/sessions.html
CF Summit West in Las Vegas
At Resorts World - New venue!!!
Sep 30 - Oct 1st for the Conference
Oct 2nd for the Certification
https://cfsummit.adobeevents.com/
Pricing
$99 for the Session Pass right now.
Coupon code might be in your email if you are a previous attendee for even better pricing
$199 for the Professional Pass - include Certification Training on the 2nd of Oct.
https://cfsummit.adobeevents.com/register/registration/select
Call for Speakers is Open!!!
https://cfsummit.adobeevents.com/speaker-application/
Accommodations
Resorts World
3000 S Las Vegas Blvd,
Las Vegas, NV, United States, Nevada
Looking for accommodations?
We've secured exclusive, low room rates of $105 + taxes/day especially for our attendees! Easy and hassle-free booking is just a click away.
Secure your spot now to make the most of your trip with comfortable and affordable accommodations
Ortus - Workshop - TBA
More conferences
Need more conferences, this site has a huge list of conferences for almost any language/community.
https://confs.tech/
Blogs, Tweets, and Videos of the Week
4/17/24 - Blog - Ben Nadel - Creating blockTrim(), inlineTrim(), and trailingTrim() Functions In ColdFusion
In terms of removing whitespace from a given string, ColdFusion has several built-in trimming functions: trim(), ltrim(), and rtrim(). On top of that, Lucee CFML has a trimWhitespace() function (which is a little confusing). And, as a code kata, I wanted to think about a few other trimming approaches: blockTrim(), inlineTrim(), and trailingTrim().
https://www.bennadel.com/blog/4635-creating-blocktrim-inlinetrim-and-trailingtrim-functions-in-coldfusion.htm
4/19/24 - Blog - Ben Nadel - Paginating The Postmark Bounces API In ColdFusion
As I discussed in January, I've been sending out millions of emails in ColdFusion. I've never done anything at this scale before; and, I've been learning a lot of fun lessons along the way. With email delivery, the bounce rate is king. And, I've been doing whatever I can to keep our bounce rate low so that Postmark doesn't shut down our pipes. One valuable step in this regard was using the Postmark Bounces API to locate problematic email addresses from previous mailings so that I can remove them from the current mailing.
…
The Postmark Bounces API is both paginated and governed. You can only get 500 bounces in any individual API request. And, you can only read up to 10,000 bounces in a given From/To time-period. Which means, in order to gather up all the relevant bounces (at our scale), I need to implement a nested pagination workflow. That is, I need to incrementally step over both the entire window of a mass mailing and, for each segment within that window, incrementally step over the 500-result limit.
This results in a workflow that makes a lot of Postmark API calls. Any one of these API calls can break for a number of reasons; such as a network timeout or a server error. In order to create a resilient workflow, I need to persist the intermediary results such that if the workflow does break, I can pick up where I left off instead of having start over from the beginning.
https://www.bennadel.com/blog/4636-paginating-the-postmark-bounces-api-in-coldfusion.htm
4/19/24 - Blog - Ben Nadel - Dedenting Text In ColdFusion
I've been on a real regular expression kick this week. Between my previous post on parsing Postmark Bounce details and creating custom trim functions, it seems that regular expressions make a daily appearance in my programming life. And, today is no exception. As a fun code kata, I want to try dedenting text in ColdFusion. Spoiler alert: I use regular expressions.
Dedenting text is the act of removing the leading whitespace from each line of text. However, my dedent() function differs from my inlineTrim() function in that it maintains the relative indentation across lines. That is, it will dedent the text only until any one of the lines no longer has leading whitespace.
Basically, I examine every line of text, find the one with least amount of indentation characters, and then remove that amount of indentation from all lines of text.
https://www.bennadel.com/blog/4637-dedenting-text-in-coldfusion.htm
4/20/24 - Blog - Ben Nadel - CF_SaveFile Custom Tag In ColdFusion
A couple of years ago, on the Lucee Dev forum, I proposed a file attribute for the CFSaveContent tag in ColdFusion. This comes out of a pattern that I employ quite often in which I use the CFSaveContent tag to generate the contents of a static file; and then, use the fileWrite() function to save said content disk. So, why not combine these two steps into a single step using a ColdFusion custom tag.
https://www.bennadel.com/blog/4638-cf-savefile-custom-tag-in-coldfusion.htm
4/21/24 - Blog - Ben Nadel - Using getApplicationMetadata() To Provide Global Defaults In ColdFusion
A couple of weeks ago on Twitter, James Moberg and I were discussing ColdFusion application metadata. In recent years, ColdFusion has provided a getApplicationMetadata() function for retrieving the configuration associated with the current request (remember, the Application.cfc framework component is freshly instantiated on every single request). I've never used the getApplicationMetadata() function before; but, after my previous post on the ColdFusion custom tags, it occurred to me that I could use the ColdFusion application framework as a hook into providing global defaults for my custom tag attributes.
https://www.bennadel.com/blog/4639-using-getapplicationmetadata-to-provide-global-defaults-in-coldfusion.htm
4/24/24 - Blog - Ben Nadel - Variables Scope Persists Across Custom Tag Execution Modes In ColdFusion
ColdFusion custom tags are just ordinary CFML templates that are executed using extraordinary mechanics. These mechanics allow custom tags templates to be used for looping, provide isolated rendering contexts, and allow for privately scopes template methods. These features aren't always obvious and are worth exploring. In this post, I want to demonstrate that the variables scope is persisted across the execution modes in a given tag invocation.
https://www.bennadel.com/blog/4641-variables-scope-persists-across-custom-tag-execution-modes-in-coldfusion.htm
4/24/24 - Blog - Ben Nadel - ColdFusion Custom Tags Can Have Privately Scoped Functions
In my previous post on the CF_SaveFile ColdFusion custom tag, my SaveFile.cfm template contained a private method named dedent(). Because ColdFusion custom tags execute in an isolated page context, all of the variables defined within the custom tag remain encapsulated within the custom tag boundary. The same is true for any functions defined within the custom tag. Which means, ColdFusion custom tags can have privately scoped helper functions.
This behavior isn't surprising once you understand how ColdFusion custom tags operate; but, it may not be obvious. And, I think it's worth calling it out specifically.
https://www.bennadel.com/blog/4640-coldfusion-custom-tags-can-have-privately-scoped-functions.htm
4/26/24 - Blog - Ben Nadel - Adding turbo-cfml To My ColdFusion + Hotwire Demos Project
Out of the box, Hotwire Turbo doesn't work with ColdFusion / CFML because it doesn't recognize .cfm as a valid HTML file extension. To "fix this", I forked the Turbo project and created turbo-cfml, which does nothing but add cfm|cfml|cfc to the library's regular expression pattern matching. This morning, I then added a "hello world" demo, using turbo-cfml to my ColdFusion + Basecamp Hotwire Demos project.
https://www.bennadel.com/blog/4643-adding-turbo-cfml-to-my-coldfusion-hotwire-demos-project.htm
4/28/24 - Blog - Ben Nadel - Inline Script Tag Execution In Hotwire Turbo And ColdFusion
Right now, my Dig Deep Fitness application has no build process. And, every request to the application results in a full page refresh. I'm considering updating it to use Hotwire Turbo for faster navigation. But, I'm not confident in my understanding of how Turbo will interact with all of the inline <script> tags that currently drive the page interactions. As such, I wanted to put together a quick exploration of inline scripts operating within a multi-page ColdFusion application.
https://www.bennadel.com/blog/4644-inline-script-tag-execution-in-hotwire-turbo-and-coldfusion.htm
4/24/24 - Blog - Robert Zehnder - Tidying up HTML with jSoup
One of the pet peeves I have with commandbox-ssg is that the output HTML has not been very tidy. If you have been developing with ColdFusion for a while you are probably familiar with the chunks of whitespace in your pages. One of the things that has been on the back burner for me is figuring out a way to remove this from generated output. I have considered looking in to ways to post process the HTML which I am sure node has some modules that will help with this, but I really wanted something ColdFusion specific to keep things simple.
https://kisdigital.com/posts/2024/04/tidying-up-html-with-jsoup
CFML Jobs
Several positions available on https://www.getcfmljobs.com/
Listing over 123 ColdFusion positions from 76 companies across 52 locations in 5 Countries.
0 new jobs listed in the last few weeks
Other Job Links
- There is a jobs channel in the CFML slack team, and in the Box team slack now too
ForgeBox Module of the Week
Elasticsearch for the Coldbox Framework
By Ortus Solutions
The elasticsearch module for the Coldbox Platform provides you with a fluent search interface for Elasticsearch, in addition to a CacheBox Cache provider and a Logbox Appender. Both the cache provider and logbox appender rely on Wirebox DSL mappings to the Elasticsearch client. As such additional Wirebox configuration is necessary to use them outside of the Coldbox context.
https://forgebox.io/view/cbelasticsearch
https://cbelasticsearch.ortusbooks.com/
VS Code Hint, Tip, and Trick of the Week
Excalidraw
This extension integrates Excalidraw into VS Code. To use it, create an empty file with a .excalidraw, .excalidraw.json, .excalidraw.svg or .excalidraw.png extension and open it in Visual Studio Code.
https://marketplace.visualstudio.com/items?itemName=pomdtr.excalidraw-editor
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,
Their Contributions fund 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
Don’t forget, we have Annual Memberships, pay for the year and save 10% - great for businesses everyone.
- Bronze Packages and up, now get a ForgeBox Pro and CFCasts subscriptions as a perk for their Patreon Subscription.
- All Patreon supporters have a Profile badge on the Community Website
- All Patreon supporters have their own Private Forum access on the Community Website
- All Patreon supporters have their own Private Channel access BoxTeam Slack
- John Wilson - Synaptrix
- Tomorrows Guides
- Jordan Clark
- Gary Knight
- Giancarlo Gomez (Jee-ahn-car-low)
- David Belanger (Bell-an-jer)
- Dan Card
- James Moberg & Jeffry McGee - Sunstar Media
- Dean Maunder
- Kevin Wright
- Doug Cain
- Nolan Erck
- Abdul Raheen
And many more Patreons - up to 50 now!!!!!
You can see an up to date list of all sponsors on Ortus Solutions' Website
https://ortussolutions.com/about-us/sponsors
Thanks everyone!!!
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