Modernize or Die® - CFML News for February 16th, 2021 - Episode 91
Gavin hosts this weeks episode solo due to power issues caused by the Snow storm in Texas / Kansas.
He talks about a new Blog Aggregator for CFML Blogs after we lost the old one. He discusses Ortus' new webinar - Take Control of Logging and Error handling with Stachebox with Jon Clausen coming up end of Feb. They announce an Adobe Webinar, called SQL, I know enough to break everything, and announce John Farrar will be speaking at Mid Michigan CFUG about Docker.
They discuss the latest CFCasts content, and some upcoming conferences.
They spotlight a lot of great blog posts, tweets, videos and podcasts, too many to list, so listen to the show.
They announce some jobs from getCfmlJobs.com.
They show off the ForgeBox module of the Week, Socket.IO-Lucee by Pixel 8 - an alpha implementation of Web Sockets for Lucee.
This week's VS Code Tip of the week is Footsteps by Wattenberger - Keep your place when jumping between a different parts of your code. This is a VSCode extension that will highlight lines as you edit them, fading as you move away.
We thanked all our Patreons, but also leaked a little information about new perks for our Patreon supporters.
For the show notes - visit the website
https://cfmlnews.modernizeordie.io/episodes/modernize-or-die-cfml-news-for-february-16th-2021-episode-91
Music from this podcast used under Royalty Free license from SoundDotCom https://www.soundotcom.com/ and BlueTreeAudio https://bluetreeaudio.com
2021-02-16 Weekly News - Episode 91
Watch the video version on YouTube at https://youtu.be/99oJ3kAZcXc
Hosts:
Gavin Pickin - Software Consultant for Ortus Solutions
Thanks to our Sponsor - Ortus Solutions
One way to say thanks back to Ortus Solutions, is to support CFCasts, which is releasing new content every week
Patreon Support
We have 33 patreons providing 65% of the funding for 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
New Blogs Aggregator to replace CF Bloggers
www.cfblogs.org is meant to replace the popular 'ColdFusion Bloggers' blog aggregator that was so popular in the ColdFusion community in the last ten years. Unfortunately, the ColdFusion Bloggers platform is no longer active at this time due to the unfortunate demise of Wil Genovese, who maintained Cfbloggers after Raymond Camden provided Wil with the keys.
https://gregoryalexander.com/blog/2021/2/13/CfBlog-Feeds--A-New-ColdFusion-Blog-Aggregator
Ortus Webinar - Take Control of Logging and Error handling with Stachebox with Jon Clausen
Friday, February 26th - 11:00 AM CDT (GMT -6:00)
Tracking, handling, and resolving bugs between different tiers can be challenging, especially in containerized or cloud environments. In this webinar, Jon Clausen will introduce you to capturing your back end and front-end error messages, and consolidating them in to one single, aggregated platform - backed by the power of Elasticsearch.
https://www.ortussolutions.com/events/webinars
Register: https://us02web.zoom.us/meeting/register/tZEqdO2qpjgjH9Y9FCGbn2dkx-ARjlpenKMm
Mid Michigan CFUG - Docker with John Farrar
Feb 16th @ 7pm
I will be doing a Docker meeting for the Mid Michigan CFUG this month. It is Rick Mason’s user group and details will follow. I am going to put a special emphasis on Traefik if anyone is interested. I am a user now, not an expert but find it a better experience than Apache, HAProxxy, IIS or Nginx so far. Your experience may vary. https://community.ortussolutions.com/t/docker-cfug-meeting/8755?u=john_farrar
CFUG Website: http://www.mmcfug.org/
Teams Link: https://bit.ly/3didqEQ
Adobe Webinar - SQL, I know enough to break everything - Dave Ferguson
February 24th 2021 @ 8 AM PT
If you are reading this you have probably written SQL in one form or another. I would also bet that you have written SQL that looked great but didn't act great. Looking back at it was more like a little puppy that tilts its head at strange sounds. We all have, even the "experts" among, us have written SQL that had intentional consequences. On the other hand, maybe you support a system that has SQL that you just don't quite understand. If some of this is true, this session is for you.
This session will take a look at why SQL may not run the way it was intended. We will look well beyond just the select statement and look deeper into how SQL runs. We will go over what the DBA's keep to themselves as well as other metrics. We will also look at some well-intended SQL and why the results were less than ideal.
https://cfwebinar-sql.meetus.adobeevents.com/
New Book from Luis Majano in the next week or so - 102 ColdBox HMVC Quick Tips and Tricks
Reminder about the new Ortus Community
Ortus has rolled out our new Ortus Community site to help consolidate all of our community support and interaction. As part of that effort, all our Google Group threads have been imported to the new Ortus Community and effective immediately, our Google Groups are closed for further posting.
If you're a member of our Google groups, don't worry-- your user has already been imported into the community forum and as soon as you sign up, you will be automatically associated with all of your old posts so you can pick up your conversations right where you left off! We've even added single sign on options for Github, Facebook, Google, and Twitter (coming soon). If your new account is under a different E-mail address, let us know and we can merge your accounts together.
https://community.ortussolutions.com/
CFCasts Content Updates
Just Released
- CommandBox Zero to Hero
- Running Commands
- Shell Features, REPL and CFML Commands
- Special Commands
Coming up
- More CommandBox Hero to Zero
Conferences and Training
Devnexus
Join the VIRTUAL <dev/>olution
Feb 17 2021 - Online
https://devnexus.com/
RedisConf 2021
Virtual: Apr 20-21
Call for speakers ended Feb 14 - https://sessionize.com/redisconf2021/
https://redislabs.com/redisconf/
DockerCon
May 27th 2021
https://www.docker.com/dockercon/
Ortus Workshops - Dates coming soon
Quick Workshop
March 11-12
Lead by the creator of Quick himself, Eric Peterson.
Information: https://www.ortussolutions.com/events
Register now https://www.eventbrite.com/e/up-and-running-with-quick-tickets-124157021995
More dates to come
- CommandBox Zero to Hero
- ColdBox Zero to Hero
- ColdBox Hero to SuperHero
Ortus’s Possible Conferences for 2021
Dates subject to change
Due to Online conference overload, we are thinking about not expanding the number of events, but more content in more timezones with a different format.
ITB - Developer Week Style
With some European Timezone Friendly slots from our European Community Members
September 2021
Call for speakers coming soon
ITB Latam
December 2021
More conferences
Need more conferences, this site has a huge list of conferences for almost any language/community.
https://confs.tech/
CFML Is now on the list - https://confs.tech/conferences/new
Blogs, Tweets and Videos of the Week
Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part II
Last week, I shared a proof-of-concept (POC) that I had been working in which I used ColdFusion Custom Tags as a DSL for HTML emails. Well, I've been continuing to work on it and I'm actually pretty stoked on where it's going. It's starting to feel like it might actually be something that I can use at InVision for our transactional emails. I've gotten my POC to a point where I feel like creating and overriding styles feels fairly easy (within a given set of constraints). So, I wanted to share this update more broadly.
https://www.bennadel.com/blog/3979-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-ii.htm
Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part III
Over the last few weeks, I've been exploring the use of ColdFusion custom tags as a DSL for HTML emails, first laying the foundation of the concept, then adding themeing of HTML entities, and most recently, improving the performance by removing implicit variable access. Today, as a quick follow-up, I wanted to add some dynamic rendering in which content can be targeted for Desktop devices vs. Mobile / Responsive devices.
https://www.bennadel.com/blog/3981-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-iii.htm
Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part IV
When creating dynamic HTML emails, you can progressively enhance a layout (on more modern devices) using CSS media queries. However, doing so requires repetitive boilerplate: wrapping the styles in a @media block and - super importantly - remembering to append the !important flag to every single CSS property in your style block. Since I plan to use CSS media queries in my ColdFusion custom tag DSL (Domain Specific Language) for HTML emails, I wanted to find a way to abstract the boilerplate.
https://www.bennadel.com/blog/3982-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-iv.htm
Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part V
As I've been testing my ColdFusion custom tag DSL (Domain Specific Language) for HTML emails in Litmus, I noticed that they offer previews for email clients running in "Dark Mode". Dark mode, like other responsive design elements, can be controlled on the web using @media queries. Yesterday, I added two @media abstractions for max-width and min-width. As such, I wanted to see if I could do the same thing for dark mode.
https://www.bennadel.com/blog/3983-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-v.htm
Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part VI
In the first post on my ColdFusion custom tag DSL (Domain Specific Language) for HTML emails, I had an image-grid abstraction that took a list of images and rendered a responsive table. In that example, I had several custom tags that did nothing but aggregate data (ie, they had no layout in and of themselves). As I've continued to think about more complex layouts, I've noticed this pattern cropping back up. As such, I thought it would be worth codifying in a core tag, <core:Slot>. The Slot tag is meant for content projection in which the rendered contents of the Slot tag are just captured and passed back up to an ancestor tag such that they can be subsumed into more complex layouts.
https://www.bennadel.com/blog/3984-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-vi.htm
Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part VII
I've been making some wonderful progress on my ColdFusion custom tag DSL (Domain Specific Language) for HTML emails! We've looked at how HTML tags are abstracted away; and, how themes can be applied to those HTML tag abstractions; and, how we can apply responsive styling on mobile email clients; and, how we can add support for Dark Mode; and, how we can use advanced content projection techniques to build complex widgets. So, this morning, I just wanted to do a quick recap of the various encapsulation techniques that we can use when building HTML emails in Lucee CFML 5.3.7.47.
https://www.bennadel.com/blog/3985-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-vii.htm
Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part VIII
For the last couple of weeks, I've been neck-deep in HTML emails, fleshing out a ColdFusion custom tag DSL (Domain Specific Language) for HTML email authoring. In my previous posts, I've been building-up theming concepts, responsive desktop and mobile logic, CSS media query overrides, dark mode support, and multi-slot content projection. With all of these tools in my HTML email toolbox, I wanted to finally try to recreate a real-world HTML email. Specifically, one with a more advanced layout to see if the current tools provide sufficient functionality. And so, in this post, I am going to try and build the new comment email (or, my take on it), that we might send out from InVision.
https://www.bennadel.com/blog/3986-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-viii.htm
Community Post - Brad Wood - Fixing ColdBox performance affected by custom tag paths
I’m putting this here to preserve it and so others can find it. I recently helped someone who had a simple ColdBox application that performed very well on their local CommandBox development server. However, when they placed the app on their production server (Adobe CF 2018), it was very slow. Taking up to 2 seconds for a simple event to run.
https://community.ortussolutions.com/t/fixing-coldbox-performance-affected-by-custom-tag-paths/8762
Blog - Gregory Alexander - CfBlogs.org - A New ColdFusion Blog Aggregator
www.cfblogs.org is meant to replace the popular 'ColdFusion Bloggers' blog aggregator that was so popular in the ColdFusion community in the last ten years. Unfortunately, the ColdFusion Bloggers platform is no longer active at this time due to the unfortunate demise of Wil Genovese, who maintained Cfbloggers after Raymond Camden provided Wil with the keys.
https://gregoryalexander.com/blog/2021/2/13/CfBlog-Feeds--A-New-ColdFusion-Blog-Aggregator
Live Stream - Matthew Clemente - Writing Tests for a Prism.js Language Definition (Learning by Trial and Error) [Part 2]
I got started with testing this CFML language definition last week. I still have some language features that I'll need to write tests for. And in testing I'll likely find improvements that I can add to the language definition.
If you only work on something for 1 hour a week - it takes a long time
https://www.youtube.com/watch?v=hgNrdqVWiEU&feature=youtu.be
Blog - David Byers - ColdFusion 101: Tags, Script and Functions
The first in an on-going series of posts covering ColdFusion basics for new developers. This series is intended to cover basic concepts. In this article, I cover the building blocks of ColdFusion; Tags, Script, and Functions.
https://coldfusion.adobe.com/2021/02/coldfusion-101-tags-script-functions/
Blog - David Byers - ColdFusion 101: Different ways to create and add data to structures
An on-going series of posts covering ColdFusion basics for new developers. This series is intended to cover basic concepts, and demonstrate how there are many ways to accomplish tasks. This will cover some, but not all of them.
https://coldfusion.adobe.com/2021/02/coldfusion-101-different-ways-create-add-data-structures/
Podcast - Working Code Podcast - Episode 009: Testing
There are very few people in the programming world who will argue against the idea of testing software. But, when it comes to the mechanisms though which code is tested, the conversation starts to get interesting. There are those who feel that TDD - Test Driven Development - is "the way"; and, that any divergence from TDD is not only laziness but is, in fact, borderline malfeasance. At the other end of the spectrum are the people who perform all their testing manually; often, relying on QA (Quality Assurance) teams and smoke tests to find regressions before each deployment.
https://www.bennadel.com/blog/3980-working-code-podcast-episode-009-testing.htm
Adam Cameron’s Response: http://blog.adamcameron.me/2021/02/thoughts-on-working-code-podcasts.html
Blog - Charlie Arehart - Coldfusion Portal - How to quickly solve outofmemory metaspace errors
Getting metaspace errors, or blank pages that end up being related to this? Don’t tweak the maxmetaspace: remove it!
https://coldfusion.adobe.com/2020/02/quickly-solve-outofmemory-metaspace-errors/
Blog- Charlie Arehart - ColdFusion Portal - Solving problems calling out of CF via https, by updating JVM
If you’re getting errors in calling out to https urls from CF, you may not need to “import new certificates”. You may merely need to update the JVM that CF uses.
https://coldfusion.adobe.com/2019/06/error-calling-cf-via-https-solved-updating-jvm/
CFML Jobs
Several positions available on https://www.getcfmljobs.com/
Listing over 40 ColdFusion positions from 26 companies across 30 locations in 5 Countries since Dec 1st.
6 new jobs this week
Full-Time - Senior Developer at Remote - United States
Posted Feb 09
https://www.getcfmljobs.com/jobs/index.cfm/united-states/SrDeveloper-ColdFusion-at-Remote-US/11186
Full-Time - Web/ColdFusion Developer at Ahmedabad, Gujarat - India
Posted Feb 09
https://www.getcfmljobs.com/jobs/index.cfm/india/WebColdFusion-Developer-at-Ahmedabad-Gujarat/11187
Full-Time - ColdFusion Developer at Melbourne VIC - Australia
Posted Feb 09
https://www.getcfmljobs.com/jobs/index.cfm/australia/ColdFusion-Developer-at-Melbourne-VIC/11185
Full-Time - ColdFusion Developer at Sydney NSW - Australia
Posted Feb 09
https://www.getcfmljobs.com/jobs/index.cfm/australia/ColdFusion-Developer-at-Sydney-NSW/11189
Full-Time - ColdFusion Developer at Melbourne VIC - Australia
Posted Feb 09
https://www.getcfmljobs.com/jobs/index.cfm/australia/ColdFusion-Developer-at-Melbourne-VIC/11184
Full-Time - oldFusion Developer at Sydney NSW - Australia
Posted Feb 09
https://www.getcfmljobs.com/jobs/index.cfm/australia/ColdFusion-Developer-at-Sydney-NSW/11188
ForgeBox Module of the Week
Socket.IO-Lucee by Pixel 8
Socket.io-Lucee is a Socket.IO server implementation for the Lucee webserver. Socket.IO is a javascript library for realtime web applications. You can use the Socket.io-lucee project to marry your Lucee server with your frontend client(s) using the Socket.IO client library.
The project is currently in an ALPHA state. This means it is suitable for experimenting with, but unlikely that it is ready for production use. We have implemented much of the core feature set, but there is much to do to ensure that we have a robust, performant and feature complete set.
https://www.forgebox.io/view/socketiolucee
VS Code Hint Tips and Tricks of the Week
Footsteps by Wattenberger
Keep your place when jumping between a different parts of your code. This is a VSCode extension that will highlight lines as you edit them, fading as you move away.
Jump between lines using ctrl+alt+left and ctrl+alt+right.
https://marketplace.visualstudio.com/items?itemName=Wattenberger.footsteps
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.
You can support us on Patreon here https://www.patreon.com/ortussolutions
- 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
Don Bellamy
Eric Hoffman
Gary Knight
Giancarlo Gomez
Mario Rodrigues
John Wilson Synaptrix
Joseph Lamoree
Ben Nadel
Brett DeLine
Carl Von Stetten
Charlie Arehart
Dan Card
Daniel Garcia
David Belanger
Didier Lesnicki
Edgardo Cabezas
Jan Jannek
Jason Daiger
Jeff McClain
Jeremy Adams
Jonas Eriksson
Jordan Clark
Kai Koenig
Laksma Tirtohadi
Leon Seremelis
Matthew Darby
Matthew Clemente
Mingo Hagen
Patrick Flynn
Ross Phillips
Scott Steinbeck
Yogesh Mathur
Steven Klotz
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 ★
Watch the video version on YouTube at https://youtu.be/99oJ3kAZcXc
Hosts:
Gavin Pickin - Software Consultant for Ortus Solutions
Thanks to our Sponsor - Ortus Solutions
One way to say thanks back to Ortus Solutions, is to support CFCasts, which is releasing new content every week
Patreon Support
We have 33 patreons providing 65% of the funding for 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
New Blogs Aggregator to replace CF Bloggers
www.cfblogs.org is meant to replace the popular 'ColdFusion Bloggers' blog aggregator that was so popular in the ColdFusion community in the last ten years. Unfortunately, the ColdFusion Bloggers platform is no longer active at this time due to the unfortunate demise of Wil Genovese, who maintained Cfbloggers after Raymond Camden provided Wil with the keys.
https://gregoryalexander.com/blog/2021/2/13/CfBlog-Feeds--A-New-ColdFusion-Blog-Aggregator
Ortus Webinar - Take Control of Logging and Error handling with Stachebox with Jon Clausen
Friday, February 26th - 11:00 AM CDT (GMT -6:00)
Tracking, handling, and resolving bugs between different tiers can be challenging, especially in containerized or cloud environments. In this webinar, Jon Clausen will introduce you to capturing your back end and front-end error messages, and consolidating them in to one single, aggregated platform - backed by the power of Elasticsearch.
https://www.ortussolutions.com/events/webinars
Register: https://us02web.zoom.us/meeting/register/tZEqdO2qpjgjH9Y9FCGbn2dkx-ARjlpenKMm
Mid Michigan CFUG - Docker with John Farrar
Feb 16th @ 7pm
I will be doing a Docker meeting for the Mid Michigan CFUG this month. It is Rick Mason’s user group and details will follow. I am going to put a special emphasis on Traefik if anyone is interested. I am a user now, not an expert but find it a better experience than Apache, HAProxxy, IIS or Nginx so far. Your experience may vary. https://community.ortussolutions.com/t/docker-cfug-meeting/8755?u=john_farrar
CFUG Website: http://www.mmcfug.org/
Teams Link: https://bit.ly/3didqEQ
Adobe Webinar - SQL, I know enough to break everything - Dave Ferguson
February 24th 2021 @ 8 AM PT
If you are reading this you have probably written SQL in one form or another. I would also bet that you have written SQL that looked great but didn't act great. Looking back at it was more like a little puppy that tilts its head at strange sounds. We all have, even the "experts" among, us have written SQL that had intentional consequences. On the other hand, maybe you support a system that has SQL that you just don't quite understand. If some of this is true, this session is for you.
This session will take a look at why SQL may not run the way it was intended. We will look well beyond just the select statement and look deeper into how SQL runs. We will go over what the DBA's keep to themselves as well as other metrics. We will also look at some well-intended SQL and why the results were less than ideal.
https://cfwebinar-sql.meetus.adobeevents.com/
New Book from Luis Majano in the next week or so - 102 ColdBox HMVC Quick Tips and Tricks
Reminder about the new Ortus Community
Ortus has rolled out our new Ortus Community site to help consolidate all of our community support and interaction. As part of that effort, all our Google Group threads have been imported to the new Ortus Community and effective immediately, our Google Groups are closed for further posting.
If you're a member of our Google groups, don't worry-- your user has already been imported into the community forum and as soon as you sign up, you will be automatically associated with all of your old posts so you can pick up your conversations right where you left off! We've even added single sign on options for Github, Facebook, Google, and Twitter (coming soon). If your new account is under a different E-mail address, let us know and we can merge your accounts together.
https://community.ortussolutions.com/
CFCasts Content Updates
Just Released
- CommandBox Zero to Hero
- Running Commands
- Shell Features, REPL and CFML Commands
- Special Commands
Coming up
- More CommandBox Hero to Zero
Conferences and Training
Devnexus
Join the VIRTUAL <dev/>olution
Feb 17 2021 - Online
https://devnexus.com/
RedisConf 2021
Virtual: Apr 20-21
Call for speakers ended Feb 14 - https://sessionize.com/redisconf2021/
https://redislabs.com/redisconf/
DockerCon
May 27th 2021
https://www.docker.com/dockercon/
Ortus Workshops - Dates coming soon
Quick Workshop
March 11-12
Lead by the creator of Quick himself, Eric Peterson.
Information: https://www.ortussolutions.com/events
Register now https://www.eventbrite.com/e/up-and-running-with-quick-tickets-124157021995
More dates to come
- CommandBox Zero to Hero
- ColdBox Zero to Hero
- ColdBox Hero to SuperHero
Ortus’s Possible Conferences for 2021
Dates subject to change
Due to Online conference overload, we are thinking about not expanding the number of events, but more content in more timezones with a different format.
ITB - Developer Week Style
With some European Timezone Friendly slots from our European Community Members
September 2021
Call for speakers coming soon
ITB Latam
December 2021
More conferences
Need more conferences, this site has a huge list of conferences for almost any language/community.
https://confs.tech/
CFML Is now on the list - https://confs.tech/conferences/new
Blogs, Tweets and Videos of the Week
Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part II
Last week, I shared a proof-of-concept (POC) that I had been working in which I used ColdFusion Custom Tags as a DSL for HTML emails. Well, I've been continuing to work on it and I'm actually pretty stoked on where it's going. It's starting to feel like it might actually be something that I can use at InVision for our transactional emails. I've gotten my POC to a point where I feel like creating and overriding styles feels fairly easy (within a given set of constraints). So, I wanted to share this update more broadly.
https://www.bennadel.com/blog/3979-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-ii.htm
Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part III
Over the last few weeks, I've been exploring the use of ColdFusion custom tags as a DSL for HTML emails, first laying the foundation of the concept, then adding themeing of HTML entities, and most recently, improving the performance by removing implicit variable access. Today, as a quick follow-up, I wanted to add some dynamic rendering in which content can be targeted for Desktop devices vs. Mobile / Responsive devices.
https://www.bennadel.com/blog/3981-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-iii.htm
Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part IV
When creating dynamic HTML emails, you can progressively enhance a layout (on more modern devices) using CSS media queries. However, doing so requires repetitive boilerplate: wrapping the styles in a @media block and - super importantly - remembering to append the !important flag to every single CSS property in your style block. Since I plan to use CSS media queries in my ColdFusion custom tag DSL (Domain Specific Language) for HTML emails, I wanted to find a way to abstract the boilerplate.
https://www.bennadel.com/blog/3982-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-iv.htm
Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part V
As I've been testing my ColdFusion custom tag DSL (Domain Specific Language) for HTML emails in Litmus, I noticed that they offer previews for email clients running in "Dark Mode". Dark mode, like other responsive design elements, can be controlled on the web using @media queries. Yesterday, I added two @media abstractions for max-width and min-width. As such, I wanted to see if I could do the same thing for dark mode.
https://www.bennadel.com/blog/3983-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-v.htm
Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part VI
In the first post on my ColdFusion custom tag DSL (Domain Specific Language) for HTML emails, I had an image-grid abstraction that took a list of images and rendered a responsive table. In that example, I had several custom tags that did nothing but aggregate data (ie, they had no layout in and of themselves). As I've continued to think about more complex layouts, I've noticed this pattern cropping back up. As such, I thought it would be worth codifying in a core tag, <core:Slot>. The Slot tag is meant for content projection in which the rendered contents of the Slot tag are just captured and passed back up to an ancestor tag such that they can be subsumed into more complex layouts.
https://www.bennadel.com/blog/3984-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-vi.htm
Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part VII
I've been making some wonderful progress on my ColdFusion custom tag DSL (Domain Specific Language) for HTML emails! We've looked at how HTML tags are abstracted away; and, how themes can be applied to those HTML tag abstractions; and, how we can apply responsive styling on mobile email clients; and, how we can add support for Dark Mode; and, how we can use advanced content projection techniques to build complex widgets. So, this morning, I just wanted to do a quick recap of the various encapsulation techniques that we can use when building HTML emails in Lucee CFML 5.3.7.47.
https://www.bennadel.com/blog/3985-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-vii.htm
Blog - Ben Nadel - Using ColdFusion Custom Tags To Create An HTML Email DSL In Lucee CFML 5.3.7.47, Part VIII
For the last couple of weeks, I've been neck-deep in HTML emails, fleshing out a ColdFusion custom tag DSL (Domain Specific Language) for HTML email authoring. In my previous posts, I've been building-up theming concepts, responsive desktop and mobile logic, CSS media query overrides, dark mode support, and multi-slot content projection. With all of these tools in my HTML email toolbox, I wanted to finally try to recreate a real-world HTML email. Specifically, one with a more advanced layout to see if the current tools provide sufficient functionality. And so, in this post, I am going to try and build the new comment email (or, my take on it), that we might send out from InVision.
https://www.bennadel.com/blog/3986-using-coldfusion-custom-tags-to-create-an-html-email-dsl-in-lucee-cfml-5-3-7-47-part-viii.htm
Community Post - Brad Wood - Fixing ColdBox performance affected by custom tag paths
I’m putting this here to preserve it and so others can find it. I recently helped someone who had a simple ColdBox application that performed very well on their local CommandBox development server. However, when they placed the app on their production server (Adobe CF 2018), it was very slow. Taking up to 2 seconds for a simple event to run.
https://community.ortussolutions.com/t/fixing-coldbox-performance-affected-by-custom-tag-paths/8762
Blog - Gregory Alexander - CfBlogs.org - A New ColdFusion Blog Aggregator
www.cfblogs.org is meant to replace the popular 'ColdFusion Bloggers' blog aggregator that was so popular in the ColdFusion community in the last ten years. Unfortunately, the ColdFusion Bloggers platform is no longer active at this time due to the unfortunate demise of Wil Genovese, who maintained Cfbloggers after Raymond Camden provided Wil with the keys.
https://gregoryalexander.com/blog/2021/2/13/CfBlog-Feeds--A-New-ColdFusion-Blog-Aggregator
Live Stream - Matthew Clemente - Writing Tests for a Prism.js Language Definition (Learning by Trial and Error) [Part 2]
I got started with testing this CFML language definition last week. I still have some language features that I'll need to write tests for. And in testing I'll likely find improvements that I can add to the language definition.
If you only work on something for 1 hour a week - it takes a long time
https://www.youtube.com/watch?v=hgNrdqVWiEU&feature=youtu.be
Blog - David Byers - ColdFusion 101: Tags, Script and Functions
The first in an on-going series of posts covering ColdFusion basics for new developers. This series is intended to cover basic concepts. In this article, I cover the building blocks of ColdFusion; Tags, Script, and Functions.
https://coldfusion.adobe.com/2021/02/coldfusion-101-tags-script-functions/
Blog - David Byers - ColdFusion 101: Different ways to create and add data to structures
An on-going series of posts covering ColdFusion basics for new developers. This series is intended to cover basic concepts, and demonstrate how there are many ways to accomplish tasks. This will cover some, but not all of them.
https://coldfusion.adobe.com/2021/02/coldfusion-101-different-ways-create-add-data-structures/
Podcast - Working Code Podcast - Episode 009: Testing
There are very few people in the programming world who will argue against the idea of testing software. But, when it comes to the mechanisms though which code is tested, the conversation starts to get interesting. There are those who feel that TDD - Test Driven Development - is "the way"; and, that any divergence from TDD is not only laziness but is, in fact, borderline malfeasance. At the other end of the spectrum are the people who perform all their testing manually; often, relying on QA (Quality Assurance) teams and smoke tests to find regressions before each deployment.
https://www.bennadel.com/blog/3980-working-code-podcast-episode-009-testing.htm
Adam Cameron’s Response: http://blog.adamcameron.me/2021/02/thoughts-on-working-code-podcasts.html
Blog - Charlie Arehart - Coldfusion Portal - How to quickly solve outofmemory metaspace errors
Getting metaspace errors, or blank pages that end up being related to this? Don’t tweak the maxmetaspace: remove it!
https://coldfusion.adobe.com/2020/02/quickly-solve-outofmemory-metaspace-errors/
Blog- Charlie Arehart - ColdFusion Portal - Solving problems calling out of CF via https, by updating JVM
If you’re getting errors in calling out to https urls from CF, you may not need to “import new certificates”. You may merely need to update the JVM that CF uses.
https://coldfusion.adobe.com/2019/06/error-calling-cf-via-https-solved-updating-jvm/
CFML Jobs
Several positions available on https://www.getcfmljobs.com/
Listing over 40 ColdFusion positions from 26 companies across 30 locations in 5 Countries since Dec 1st.
6 new jobs this week
Full-Time - Senior Developer at Remote - United States
Posted Feb 09
https://www.getcfmljobs.com/jobs/index.cfm/united-states/SrDeveloper-ColdFusion-at-Remote-US/11186
Full-Time - Web/ColdFusion Developer at Ahmedabad, Gujarat - India
Posted Feb 09
https://www.getcfmljobs.com/jobs/index.cfm/india/WebColdFusion-Developer-at-Ahmedabad-Gujarat/11187
Full-Time - ColdFusion Developer at Melbourne VIC - Australia
Posted Feb 09
https://www.getcfmljobs.com/jobs/index.cfm/australia/ColdFusion-Developer-at-Melbourne-VIC/11185
Full-Time - ColdFusion Developer at Sydney NSW - Australia
Posted Feb 09
https://www.getcfmljobs.com/jobs/index.cfm/australia/ColdFusion-Developer-at-Sydney-NSW/11189
Full-Time - ColdFusion Developer at Melbourne VIC - Australia
Posted Feb 09
https://www.getcfmljobs.com/jobs/index.cfm/australia/ColdFusion-Developer-at-Melbourne-VIC/11184
Full-Time - oldFusion Developer at Sydney NSW - Australia
Posted Feb 09
https://www.getcfmljobs.com/jobs/index.cfm/australia/ColdFusion-Developer-at-Sydney-NSW/11188
ForgeBox Module of the Week
Socket.IO-Lucee by Pixel 8
Socket.io-Lucee is a Socket.IO server implementation for the Lucee webserver. Socket.IO is a javascript library for realtime web applications. You can use the Socket.io-lucee project to marry your Lucee server with your frontend client(s) using the Socket.IO client library.
The project is currently in an ALPHA state. This means it is suitable for experimenting with, but unlikely that it is ready for production use. We have implemented much of the core feature set, but there is much to do to ensure that we have a robust, performant and feature complete set.
https://www.forgebox.io/view/socketiolucee
VS Code Hint Tips and Tricks of the Week
Footsteps by Wattenberger
Keep your place when jumping between a different parts of your code. This is a VSCode extension that will highlight lines as you edit them, fading as you move away.
Jump between lines using ctrl+alt+left and ctrl+alt+right.
https://marketplace.visualstudio.com/items?itemName=Wattenberger.footsteps
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.
You can support us on Patreon here https://www.patreon.com/ortussolutions
- 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
Don Bellamy
Eric Hoffman
Gary Knight
Giancarlo Gomez
Mario Rodrigues
John Wilson Synaptrix
Joseph Lamoree
Ben Nadel
Brett DeLine
Carl Von Stetten
Charlie Arehart
Dan Card
Daniel Garcia
David Belanger
Didier Lesnicki
Edgardo Cabezas
Jan Jannek
Jason Daiger
Jeff McClain
Jeremy Adams
Jonas Eriksson
Jordan Clark
Kai Koenig
Laksma Tirtohadi
Leon Seremelis
Matthew Darby
Matthew Clemente
Mingo Hagen
Patrick Flynn
Ross Phillips
Scott Steinbeck
Yogesh Mathur
Steven Klotz
You can see an up to date list of all sponsors on Ortus Solutions' Website
https://ortussolutions.com/about-us/sponsors
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