2020-09-15 Weekly News - Episode 70Watch the video version on YouTube at
https://youtu.be/oY5QqaN6YlMHosts:
Gavin Pickin - Software Consultant for Ortus Solutions
Brad Wood- Software Consultant for Ortus Solutions
Thanks to our Sponsor - Ortus SolutionsGet 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 SupportWe 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 2020We’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 UpdatesThe 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-2559Online CF Meetup - "Using CF APIs and the JAMStack" with Raymond Camden, Brian Rinaldi & Dan WilsonThursday 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=eWOEUo8lJzEICYMI - Online CF Meetup - "Differences between CF Ent & Std: more than you may think", w/ Charlie ArehartThursday 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-QirMKgSxhjkUyTSSTvHjLOrtus Webinar - Modern Coldfusion - No more copy and pasteFriday 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/webinarsCFCasts 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/supportConferences
Into the Box 2020 - Workshops - Virtual Live trainingOctober
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/eventsPodcast Code:
PODCAST10 - 10% off
There is a code for ITB attendees to save 15% - If you didn’t get the email contact us.
JConf.devSeptember 30th, 9am - 4pm CST
https://jconf.dev/Adobe ColdFusion Summit 2020 - Replaces CF Summit WestDate: 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.htmlCF 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.61As 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 updatedJust 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/1305560379955781633https://twitter.com/zackster Tweet - Brad Wood - Ortus merged more into core JBoss Undertow ProjectSo 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/1305528072171646976https://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.61A 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.61This 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 SupportOne 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-supportBlog - Ben Nadel - Deleting Temporary Upload Files In Our K8 Operational Readiness Probe In Lucee CFML 5.3.6.61Over 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 rescueThis 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 CountsHere 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.cfmBlog - Steve Bryant - Implementing the Observer pattern in ColdFusion with Observer.cfcOften 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 JobsSeveral 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=11114Full-Time - Web Entwickler at München - Other Countries
Posted Sep 11
https://www.getcfmljobs.com/viewjob.cfm?jobid=11113Full-Time - Cloud Engineer at München - Other Countries
Posted Sep 11
https://www.getcfmljobs.com/viewjob.cfm?jobid=11112Full-Time - Projektmanager at München - Other Countries
Posted Sep 11
https://www.getcfmljobs.com/viewjob.cfm?jobid=11111Ortus is hiring:Senior ColdFusion CFML DeveloperAt 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/careersForgeBox Module of the Week
logstash by Ortus SolutionsThis 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/logstashVS Code Hint Tips and Tricks of the Week
ngrok for VSCode by philnashA 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-vscodeThank you to all of our Patreon SupportersThese 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/ortussolutionsBen 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