Modernize or Die® - CFML News for August 4th, 2020 - Episode 64
2020-08-04 Weekly News - Episode 64Watch the video version on YouTube at https://youtu.be/12koq9xss1s 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.CFCasts is releasing new Free and Paid content every weekMore workshops coming in AugustPatreon SupportWe are at the 58% 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 EventsColdBox 6 is cooked - Luis said he is releasing today!Blog post coming soon.Ortus Workshop dates announcedWe have 2 new workshops finalized for August 2020CommandBox lead by Brad Wood - Thu Aug 27th a Fri Aug 28th, 2020 - 2 day workshopContainerizing CFML Apps lead by Jon Clausen - August 20th, 2020 - 1 dayMore details in the Conference section belowFusion Reactor - Celebrate Adobe ColdFusion 25th birthday with a 25% discountColdFusion is 25 years old and to celebrate we can offer our customers an exclusive 25% discount.The offer is available for all new Standard and Enterprise licenses bought directly from FusionReactor and cannot be used for upgrades or Tradeups.This offer will only run for a limited time and is due to end on the 31 August. http://www.fusion-reactor.com/news/celebrate-adobe-coldfusion-25th-birthday-with-a-25-discount/ICYMI Ortus Webinar - Injecting Dependencies With WireBox with Grant CopleyFriday, July 31st, 202011:00 AM CDT (GMT -5:00) Dependency injection may sound intimidating but is easy to understand once you learn a few key concepts. In this session with Grant Copley, we'll show you how you can use the dependency injection framework WireBox in your CFML applications to remove boilerplate, reduce complexity, and build better apps.Recording: https://cfcasts.com/series/webinars/videos/grant-on-injecting-dependencies-with-wireboxOnline CF Meetup - "I Didn’t Know S3 Could Do That!", with Brian KlaasThursday Aug 6th at 12pm US Eastern Time, UTC-4.Millions of developers know Amazon's Simple Storage Service (S3) as the file system for the Internet: it's fast, cheap, and super durable. CFML developers have dead-simple access to S3 via built-in functionality. S3 goes way beyond just uploading and downloading files, though. By dropping down into the AWS Java SDK, we can unlock the full potential of S3, and that's exactly what we'll do in this session.https://www.meetup.com/coldfusionmeetup/events/272261010/ICYMI - Adobe Webinar - A bird's-eye view of PMT architecture and how to harness it's true potential with Nimit SharmaJuly 30, 202010 am PTThis session will walk you through everything there is to know about PMT (Performance Monitoring Toolset) architecture and the configurations to look out for when installing PMT on your systems. Get a deeper look at how data flows in the system and the configuration files where the data is stored. Explore the common customer issues and find out how using archiving can reduce the disk consumption.https://cfwebinar-pmt-architecture.meetus.adobeevents.com/CFCasts Content UpdatesOrtus Webinar - Injecting Dependencies with WireBox with Grant CopleyWhat’s new in Quick 4 - Relationship CountsWhat’s new in qb 8 - Select Helpers - Reorder - Automatic Or ScopingColdBox Master Class - Event Driven Programming - Listening to EventsSend your suggestions at https://cfcasts.com/supportConferencesJConf.devSeptember 30th, 9am - 4pm CSTRegister by August 15, and you'll get an awesome SWAG BOX full of goodies! (US only, first 500)https://jconf.dev/Into the Box 2020 - Workshops - Virtual Live trainingAugust: 2 day Workshop - CommandBox lead by Brad WoodThu, Aug 27 a 28, 2020, 8:00 AM – 3:00 PM PDTPrice: $899https://www.eventbrite.com/e/commandbox-zero-to-hero-tickets-115511490979?aff=erelpanelorg1 Day Workshop - Containerizing CFML Apps lead by Jon ClausenAugust 20th8:00 AM – 3:00 PM PDTPrice: $499https://www.eventbrite.com/e/containerizing-cfml-apps-tickets-115512479937https://www.ortussolutions.com/eventsPodcast Coupon Code:PODCAST10 - 10% offThere is a code for ITB attendees to save 15% - If you didn’t get the email contact us. Adobe ColdFusion Certification now available OnlineCan’t step outside? Still want to polish up your skills? We heard you and we made it happen! Now you can master the major features from Adobe ColdFusion’s latest release from right where you are, because Adobe Certified Professional: Adobe ColdFusion is now online!This industry-led certification program from Adobe comes with 50+ online videos and is specially designed to fit every coder, with both basic and advanced level proficiency in any computer language. Upon completing the program, you will learn all there is to know about using CFML to develop, test, debug and deploy web apps, and how Adobe ColdFusion acts as a glue between different systems.That’s not all! The certification program going online means now you can enjoy the flexibility of scheduling your final assessment test on any date of your choosing. Simply put, you can get certified remotely whenever you want, wherever you are. What’s more, successful completion of the test also grants you a certificate and badge from Adobe!Blog: https://coldfusion.adobe.com/2020/07/coldfusion-certification-online-now/Register: https://www.adobe.com/products/coldfusion-family/certificate.htmlAdobe ColdFusion Summit 2020 - Replaces CF Summit WestDate: November 17-19Location: Onlinehttps://cfsummit.adobeevents.com/Admission: FreeAdobe CF Summit Dates listed on website - November 17-19Speaker sign up for Adobe https://cfsummit.adobeevents.com/speaker-application/Deadline: August 15th.CF CampTBAMore conferences: https://confs.tech/Blogs, Tweets and Videos of the WeekBlog - James Moberg - Convert Unicode strings to ASCII with ColdFusion a JUnidecodeI’ve struggled for years attempting to identify the best solution for converting unicode accents and other characters using ColdFusion. I’ve used regex, java.text.Normalizer, ICU4J Transliterate and Apache.Lang3.StringUtils.StripAccents and recently scrapped them all in favor of using JUnidecode. JUnidecode is a Java port of Text::Unidecode perl module. The JUnidecode Java library only has one method and it takes a string and transliterates it to a valid 7-bit ASCII String (obviously it also strips diacritic marks).https://dev.to/gamesover/convert-unicode-strings-to-ascii-with-coldfusion-junidecode-lhfBlog - Eric Peterson - Ortus Solutions - Quick 4.0.0 ReleasedQuick 4.0.0 was released this past week and brought with it some welcome quality-of-life improvements, a handy new counts feature, improvements to error messages, and a bunch of squashed bugs. Although it is technically a major version change, most users will be able to upgrade with no changes to their code. Let's dive in to see what's new.https://www.ortussolutions.com/blog/quick-400-releasedBlog - Eric Peterson - Ortus Solutions - qb 8.0.0 Releasedqb 8.0.0 was released this past week, and it brings with it a small handful of new features. While this is technically a major release, I don't expect anyone to actually have a breaking change. In fact, I expect this will save you time and headaches as it has for me.https://www.ortussolutions.com/blog/qb-800-releasedBlog - Fusion Reactor - QueryPlan does not work in cursor mode with Microsoft SQL ServerAn exception is thrown when FusionReactor executes the QueryPlan for a JDBC request. This exception is then displayed as the result of the QueryPlan in FusionReactor.http://www.fusion-reactor.com/support/kb/frs-376/Blog - Brian Klaas - Beyond the Basics of Using AWS S3 in CFML: Editing Tags and Using S3 Object MetadataIn the last post in this series, we looked at how to add tags to an object uploaded to S3 via the AWS Java SDK. What if you need to change those tags? Are tags the only way to add metadata to objects in S3? Let’s file out.https://brianklaas.net/aws/coldfusion/2020/08/03/Beyond-Basics-S3-Editing-Tags-and-Metadata.htmlBlog - Kishore - Adobe - Adobe ColdFusion Summit :: Call for Speakers is Open Now!!This year Adobe ColdFusion Summit is going Online. If you have some special topic which you have always wanted to present, now is the chance to do so from the comfort of your home and at a time convenient for you. https://coldfusion.adobe.com/2020/08/adobe-coldfusion-summit-call-speakers-open-now/Blog - Ben Nadel - Using A Closure To "Terminate" CFThread Tags Across Page Requests In Lucee CFML 5.3.6.61While the CFThread tag has a "terminate" action; and Lucee has a threadTerminate() built-in function (BIF); these two approaches only work within a single page-request - any attempt to terminate a CFThread reference spawned from another page will result in a ColdFusion error. Over the weekend, however, as I was experimenting with task threads in Lucee CFML, I came up with an approach to cross-page thread termination that I thought was kind of interesting: using a ColdFusion Closure to communicate the intent to terminate in Lucee CFML 5.3.6.61. https://www.bennadel.com/blog/3871-using-a-closure-to-terminate-cfthread-tags-across-page-requests-in-lucee-cfml-5-3-6-61.htmBlog - Ben Nadel - RequestTimeout Setting Affects CFThread Execution In Lucee CFML 5.3.6.61Yesterday, when I was exploring task threads in Lucee CFML, I noticed that my long-running CFThread tags were suddenly dying at around 30-seconds of execution time. And, after I poked around in the Lucee Administrator, I noticed that the default request timeout for the server was set to 30-seconds. I didn't realize this, but apparently the CFSetting tag's requestTimeout property affects both top-level page requests as well as daemon CFThread tags. To confirm this, I wanted to set up a simple test in Lucee CFML 5.3.6.61.https://www.bennadel.com/blog/3870-requesttimeout-setting-affects-cfthread-execution-in-lucee-cfml-5-3-6-61.htmBlog a Video - Ben Nadel - Using A Task CFThread To Run And Restart Daemon CFThreads Indefinitely In Lucee CFML 5.3.6.61The CFThread tag has been one of the most awesome feature-additions to the ColdFusion language, allowing us to seamlessly and effortlessly run asynchronous code in parallel to the main page request. But, the CFThread has always been a kind of "one off" type of processing. And, for years (dating back to 2010), I've often yearned for a CFThread tag with an interval attribute - something a little more "persistent". It turns out, in Lucee, there is this concept of a Task Thread, which is a version of CFThread that runs outside of the Application. As an experiment, I wanted to see if I could use this Task Thread to "persist the execution" of the traditional Daemon Threads in Lucee CFML 5.3.6.61.https://www.bennadel.com/blog/3869-using-a-task-cfthread-to-run-and-restart-daemon-cfthreads-indefinitely-in-lucee-cfml-5-3-6-61.htmBlog - NerdVision - NerdVision on CommandBoxWith NerdVision coming from the Intergral family, we have quite strong ties in the ColdFusion communities. Like most development communities, ColdFusion is trying to modernise their development practises. One of the ways they are doing this is by using the CommandBox from Ortus Solutions. CommandBox is a platform that allows for many improvements to the standard workflow of the more transitional ColdFusion developer, including a package manager called ForgeBox.https://www.nerd.vision/post/nerd-vision-on-commandboxTweet - Brad Wood - CFDumps not for ProductionCFDump is great for dev debugging, but can have serious perf overhead under load in production. I've had this bite clients more than once. Just this week, a client saw an 8 fold increase in a scheduled task performance simply by commenting out all their CFDumps! #CFML #ColdFusionhttps://twitter.com/bdw429s/status/1288510978511056896https://twitter.com/bdw429sCFML JobsSeveral positions available on https://www.getcfmljobs.com/Listing over 54 ColdFusion positions from 41 companies across 26 locations in 5 Countries0 new jobs this week.ForgeBox Module of the WeekRabbitSDK by Brad Wood a Ortus Solutions RabbitMQ is an open-source message-broker software that originally implemented the Advanced Message Queuing Protocol and has since been extended with a plug-in architecture to support Streaming Text Oriented Messaging Protocol, MQ Telemetry Transport, and other protocols.This library is a wrapper for CFML/ColdFusion apps to be able to interact with RabbitMQ via the Java SDK.box install rabbitsdkhttps://www.forgebox.io/view/rabbitsdkVS Code Hint Tips and Tricks of the WeekProfile Switcher by Aaron PowellThis extension allows you to define a number of settings profiles that you can easily switch between. The original idea for this extension came from my desire to have an easy way for me to switch my VS Code to a setup that was better optimised for presenting (changed themes, increase font size, etc).The extension introduces four new commands that you can use from the command panel. All commands are prefixed with Profile Switcher.https://marketplace.visualstudio.com/items?itemName=aaronpowell.vscode-profile-switcherThank 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 McCainJeremy Adams 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 ★