Modernize or Die® - CFML News for September 8th, 2020 - Episode 69

2020-09-08 Weekly News - Episode 69Watch the video version on YouTube at https://youtu.be/fVAFIqlmQs4 Hosts:Gavin Pickin - Software Consultant for Ortus SolutionsEric Peterson- Software Consultant for Ortus SolutionsThanks to our Sponsor - Ortus SolutionsGet live training from the makers of your favorite Box Product.2 ColdBox Virtual Workshops coming in OctoberCFCasts is releasing new Free and Paid content every weekPatreon SupportWe are at the 55% 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 EventsFusion Reactor 8.5 has been released.https://docs.fusion-reactor.com/release-notes/Lucee Spreadsheet lib 2.11.0 releasedLucee Spreadsheet lib 2.11.0 released adding more control over data types when adding rows, plus support for hex colour values. Thanks to @gamesover for the great suggestions and testing. #cfml https://github.com/cfsimplicity/lucee-spreadsheethttps://twitter.com/cfsimplicity/status/1301919256959950848https://twitter.com/cfsimplicityOrtus Webinar - Modern Coldfusion - No more copy and pasteFriday September 25th 2020 at 11:00 AM CDT (GMT -5:00)with Gavin PickinCopy 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 UpdatesConfigure your CFML servers with CFConfig - Configure your CFML servers with CFConfig ( Intro ) - Show and Set, CFConfig's Primary CommandsSend your suggestions at https://cfcasts.com/supportConferencesInto the Box 2020 - Workshops - Virtual Live trainingOctober2 day Workshop - ColdBox Zero to Hero - lead by Gavin Pickin2 day Workshop - ColdBox Hero to Superhero - lead by Luis Majanohttps://www.ortussolutions.com/eventsPodcast Code:PODCAST10 - 10% offThere is a code for ITB attendees to save 15% - If you didn’t get the email contact us. JConf.devSeptember 30th, 9am - 4pm CSThttps://jconf.dev/Adobe ColdFusion Summit 2020 - Replaces CF Summit WestDate: November 17-19Location: Onlinehttps://cfsummit.adobeevents.com/Admission: FreeSpeaker sign up for Adobe https://cfsummit.adobeevents.com/speaker-application/Deadline: August 20th. - Deadline changed.Adobe ColdFusion Certification now available OnlineAdobe 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 CampTBAMore conferences: https://confs.tech/Blogs, Tweets and Videos of the WeekTweet - Brad Wood - QoQ for LuceeAfter a week of work, I've submitted a pull to @lucee_server that has completely revamped QoQ support. Tons of features are now supported natively instead of relying on HSQLDB a its MUCH faster. Even faster than Adobe ColdFusion 2018 in most tests! #CFMLhttps://twitter.com/bdw429s/status/1303353108647628804https://twitter.com/bdw429sTweet - Tony Junkes - Adobe’s PDF Tools Java SDKGot around to finishing a conversion of Adobe's PDF Tools Java SDK sample project into CFML. Run it manually or via CommandBox. Each sample can also be run directly in a terminal using a CommandBox Task Runner. #cfml #coldfusionhttps://github.com/tonyjunkes/pdftools-java-sdk-cfml-sampleshttps://twitter.com/tonyjunkes/status/1303209153679294469https://twitter.com/tonyjunkesBlog - Ben Nadel - The Elvis / Null Coalescing Operator Can Sometimes Replace The Safe Navigation Operator In Lucee CFML 5.3.6.61Yesterday, when I was listening to the latest episode of the Modernize or Die Podcast, Brad Wood said something that I had not heard before: that the Safe Navigation operator can usually be replaced with the Elvis / Null Coalescing operator in Lucee CFML. I had always just assumed that without the safe navigation syntax, undefined keys would still throw null-reference errors, regardless of whether or not the Elvis operator was involved. As it turns out, Brad was right! Though, it only works if the given expression does not contain a method call. Since this was news to me, I thought it was worth a quick demo in Lucee CFML 5.3.6.61.https://www.bennadel.com/blog/3890-the-elvis-null-coalescing-operator-can-sometimes-replace-the-safe-navigation-operator-in-lucee-cfml-5-3-6-61.htm Blog - Matthew Clemente - Building a Basic Uptime Monitor with PipedreamDuring a recent live-coding session, I tried to build a website uptime monitor with Pipedream. Even with a few digressions, I managed to get most of it done within the hour, and figured that the process and platform were worth sharing.https://blog.mattclemente.com/2020/09/06/pipedream-uptime-monitoring.htmlBlog a Video - Ben Nadel - Temporary Upload Files Are Duplicated And Persisted When A Request Uses CFThread In Lucee CFML 5.3.6.61Earlier this week, Pablo Fredrikson from our Platform team was paged because one of the Kubernetes pods that runs one of our Lucee CFML containers was running out of disk space. Upon further investigation, he found that the server's temporary file directory was using over 160 Gigabytes of storage. To perform an immediate remediation, my team triggered a deployment for that ColdFusion service, which wiped all of the old data. But, once the "incident" was closed, I started trying to figure out why so much data was being stored. And, what I discovered is that the temporary files produced during a multipart/form-data POST are duplicated and persisted if the parent ColdFusion request uses CFThread to manage asynchronous processing.https://www.bennadel.com/blog/3889-temporary-upload-files-are-duplicated-and-persisted-when-a-request-uses-cfthread-in-lucee-cfml-5-3-6-61.htm Blog - Ben Nadel - Using Both STORE And DEFLATE Compression Methods With The zip CLI In Lucee CFML 5.3.6.61A couple of months ago, I looked as using the zip CLI with the STORE or DEFLATE compression methods in Lucee CFML. The DEFLATE compression method attempts to shrink file sizes as it adds the files to an archive where as the STORE method just adds the files to the archive, but doesn't attempt to compress them in any way. This morning, I wanted to take a quick look at how we can apply both the STORE and DEFLATE methods in the same zip command execution in Lucee CFML 5.3.6.61.https://www.bennadel.com/blog/3888-using-both-store-and-deflate-compression-methods-with-the-zip-cli-in-lucee-cfml-5-3-6-61.htmTweet - Julian Halliwell - Lucee Spreadsheet Lib 2.11.0 released.Lucee Spreadsheet lib 2.11.0 released adding more control over data types when adding rows, plus support for hex colour values. Thanks to @gamesover for the great suggestions and testing. #cfml https://github.com/cfsimplicity/lucee-spreadsheethttps://twitter.com/cfsimplicity/status/1301919256959950848https://twitter.com/cfsimplicityBlog - Ben Nadel - Proxying Amazon AWS S3 Pre-Signed-URL Uploads Using Netlify FunctionsA couple of months ago, I looked at proxying Amazon S3 pre-signed URL uploads using Lucee CFML 5.3.6.61. This was a topic of interest because InVision has enterprise customers that block all direct access to Amazon AWS (for security purposes); and, the only way we can upload files to S3 is by "hiding" the AWS URLs behind a proxy. Of course, proxying an upload through our servers is sub-optimal because it increases the load that our servers have to handle. So, what if we could proxy the upload through something more dynamic, like an AWS Lambda Function? Of course, we can't use AWS URLs (as they are being blocked by some of our customers); but, Netlify provides Lambda Functions; so, maybe we can use Netlify to proxy Amazon AWS S3 pre-signed URLs.https://www.bennadel.com/blog/3887-proxying-amazon-aws-s3-pre-signed-url-uploads-using-netlify-functions.htmBlog - Wil DeBruin - cbValidation: creating a better uniqueValidatorHow often do you want to be sure values in your newly inserted records are unique? I just counted in my current project: 28 times. That’s a lot of repetitive code if you validate this requirement each time, so it makes sense to use some kind of uniqueness validator in cbvalidation. https://shiftinsert.nl/cbvalidation-creating-a-better-uniquevalidator/Blog - Pete Frietag - Setting Lucee Admin Password with CommandBoxOne of the recent changes to Lucee is that no longer allows you to enter an admin password from the web based lucee admin if one had not been set yet. This is a great feature for security, but for local development it makes things a bit more cumbersome.You'll see what I mean when you hit this error message:No Password Set Yet!https://www.petefreitag.com/item/907.cfmTweet - Ortus Solutions - Ninja Developer Line droppedOur Ninja Developer line just dropped! We created this in honor of our amazing coworkers and our fellow #CFML developers. Check out all the awesome goodies you can get: https://www.ortussolutions.com/shop#!/#ColdFusion #News #ModernizeOrDiehttps://twitter.com/ortussolutions/status/1301178658812461061https://twitter.com/ortussolutionsBlog - Wil De Bruin - cbValidation: validating a model or the request collection?Recently I was coding a fluent API based on this sample code which was presented at ITB 2020 by Gavin Pickin. When I was testing I discovered I could overwrite existing records when trying to insert new ones, which sounds like a huge security vulnerability. But before blaming Gavin for this let me confess I changed the code a little, just enough to create this security hole. So this exercise showed me the following:- never ever populate a model automatically from the request collection without realizing what your customers can insert.- validating your request collection before populating your model has it advantages.https://shiftinsert.nl/cbvalidation-validating-a-model-or-the-request-collection/CFML JobsSeveral positions available on https://www.getcfmljobs.com/Listing over 18 ColdFusion positions from 13 companies across 9 locations in 5 Countries since July 1st2 new jobs this week.Full-Time - ColdFusion and SQL Developer at Hyderabad, Telangana - India Posted Sep 05https://www.getcfmljobs.com/jobs/index.cfm/india/ColdFusion-and-SQL-Developer-at-Hyderabad-Telangana/11110Full-Time - Coldfusion Software Developer - (Remote Work) at Calgary, AB.. - Canada Posted Sep 04https://www.getcfmljobs.com/jobs/index.cfm/canada/Coldfusion-Software-Developer-Remote-Work-at-Calgary-AB/11109Ortus is hiring:Senior ColdFusion CFML DeveloperAt Ortus you will be:Modernizing web applications and helping companies move out of legacy hellTeaming up with ColdFusion Experts in order to solve complex web development problems.Testing and integrating new web technologies in order to create custom business implementationsPushed to innovate constantly and create new solutions to web development problemsLeading project teams that deliver software that mattersUS Timezone availability is a mustUS Citizen or Resident or Work Visa is a musthttps://www.ortussolutions.com/about-us/careersForgeBox Module of the WeekColdbox-asset-bagAn asset bag to manage css and javascript dependenciesThe ProblemYou want to dynamically include javascript and css based on the code being executed.You don't want these assets included in the middle of your views. Instead, you want them included either in the head or footer of your page. (This is especially important for a framework like Vue where inline javascript breaks the page.)This Solutioncoldbox-asset-bag provides an API to add assets any time during the request lifecycle. It allows adding of css and javascript assets along with their inline varities and stores them in either the head and footer sections. Finally, it can render the assets to the appropriate tags in your layout or view.https://forgebox.io/view/coldbox-asset-bagVS Code Hint Tips and Tricks of the WeekMultiple cursor case preserveBy Carindal90Have you ever tried to change a single word in all variable names, but had your camelCase broken? This extension preserves selection case in these situations. It recognises CAPS, Uppercase and lowercase. Works for typing or pasting.https://marketplace.visualstudio.com/items?itemName=Cardinal90.multi-cursor-case-preserveThank 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 DeLineCarl Von Stetten Charlie ArehartDa Li Dan CardDaniel GarciaDavid Belanger Didier Lesnicki Don Bellamy Eric HoffmanGary Knight Giancarlo GomezJan JannekJason DaigerJeff McClainJeremy Adams Jonas Eriksson Jordan Clark Joseph LamoreeKai Koenig Laksma TirtohadiMario Rodrigues Matthew Clemente Mingo HagenScott SteinbeckShawn Oden Steven KlotzSynaptrix Yogesh MathurYou can see an up to date list of all sponsors on Ortus Solutions' Websitehttps://ortussolutions.com/about-us/sponsors★ Support this podcast on Patreon ★

2356 232