My 2021 Dev.to Github Actions Hackathon Submission

My goal was to learn more about building a modern CFML application with a CI/CD process. »

CFML Development with Github Codespaces

With Codespaces you can develop from any machine that has a internet browser. »

Using .NET Integration Services with CommandBox

CommandBox is a great tool for getting CFML development environments setup very quickly. I work with an application that uses the .NET Integration feature of Coldfusion. I recently needed to change that functionality so I needed to get it working in my development environment to test it. »

Two-Factor Authentication with TOTP and CFML

A walkthrough example of how to implement 2-Factor authentication (2FA) using Time-based One-time Password Algorithm (TOTP) in a CFML application running on the Coldbox MVC framework. »

Using CFLint for Static Analysis with Jenkins

I am going to walk through how you can use CFLint and Jenkins to do static code analysis on your CFML code as part of a CI process. »

Using Vue CLI 3 with a Coldbox Application

The Vue CLI is a great tool for developing Vue.js applications but I wanted to see how it could be integrated into an application with a CFML/Coldbox back-end. »

Implementing a Weak Password Blocklist in CFML

the new guidelines for password requirements say to drop all the complexity rules and to create a blocklist of weak, common, and compromised passwords that cannot be used when a user creates a new account. Here is a quick example of one way this could be implemented in CFML. »

Secure CFML: OWASP TOP 10 2017 A1-Injection

In this post, I will focus on the #1 OWASP vulnerability which is Injection and how to prevent it in CFML applications. »

Linting Your CFML code with CFLint and Sublime Text Build Systems

Here is an easy way to run CFLint on files from within ST2 or ST3 using build systems. »

Example of Using a CommandBox Task Runner to Run CFLint

I created this gist that is a CommandBox Task Runner that takes a glob pattern and runs CFLint on any files that match. »

Refactoring Legacy CFML with Approval Tests: Part II

In part I of this blog series we walked through using TestBox-Sna... »

Refactoring Legacy CFML with Approval Tests: Part I

In my previous post, I discussed the importance of refactoring and a general workflow for using Approval Tests to be sure you... »

Refactoring Legacy Code with Approval Tests

Legacycode.rocks is a great resource for anyone working with legacy code. Aside from a ton of useful information, it is also motivational because they really try ... »

Playing Around with CFML and Docker: First Steps

Watching the keynote talks from this year’s Into the Box Conference gave me some inspiration to start learning more about running CFML applications in Docker. I currently run a Jekyll Docker image to ... »

Mura 7 Development with CommandBox

This is a script I wrote to quickly setup a new Mura 7 development server in CommandBox. It runs ... »

Working with File Streams in CFML/Java

In my previous blog posts I talked about working with streams in Node.js. I assumed I could do something similar working in CFML by using Java but had never attempted it. ... »

Return Multiple Record Sets from a Query in Coldfusion

In Adobe Coldfusion you can only return one record set from using cfquery or queryExecute. If you need to return multipl... »

Executing Coldbox Events in Legacy Code

A quick tip for future Jason or anyone else who may work with Coldbox and legacy code (not MVC) running side-by-side. I found this well documented in the »

Notes on Migrating from Vue.js 1.x

I have been refactoring a Coldbox application as a Single Page Application using Vue.js using »

Using JSON Web Tokens for Authentication in CFML

JSON Web Tokens (JWT) are commonly used in single-sign-on solutions. They can also be used to authenticate single-page front-end applications with a back-end API. The ben... »

Programatically Create an Apache Derby Database in Adobe Coldfusion

With Lucee you can add a datasource for the H2 embedded database and if the database doesnt exist it will be crea... »