Tags

Books

Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations

The book Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations by Nicole Forsgren Ph.D., Jez Humble, and Gene Kim warn that organizations should be learning continuous delivery so they do not fall behind in a world where IT is critical to remain competitive in any industry. »

CFLint

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. »

CFML

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 Password Blacklist in CFML

the new guidelines for password requirements say to drop all the complexity rules and to create a blacklist 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-Snapshots to create some approval tests for refactoring a legacy CFML application. In this post, we will focus on setting our application up to use the ColdBox MVC framework. Once it is setup we can start using the MVC pattern to separate concerns. We start by installing ColdBox.

»

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 your output is not changing.

»

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 to take away the stigma of working with legacy code and frame it as something to really be proud of. If you work with legacy code, you know it can be frustrating and difficult however it can also be very satisfying to figure out how a piece of code works and be able to improve it.

»

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 develop this blog but I am still very much a newbie.

»

Mura 7 Development with CommandBox

This is a script I wrote to quickly setup a new Mura 7 development server in CommandBox. It runs on Lucee with an embedded H2 database. It uses the new cfconfig module to setup the datasource.

»

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. At my company we process many different data feeds in various formats. So we sometimes need to read and write some large data files. This can be a very memory intensive task with large data sets. So using streams is usually a more efficient solution.

»

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 multiple record sets then you can write a stored procedure and use cfstoredproc.

»

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 Coldbox Documentation but wanted to post it as a quick reference for myself.

»

Notes on Migrating from Vue.js 1.x

I have been refactoring a Coldbox application as a Single Page Application using Vue.js using ColdBox Elixir. I was origionally looking at ColdBox Elixir for compiling Sass. After reading the docs I was curious and decided to look into Vue.js.

»

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 benefit is that they are lightweight and can be sent with every request so they are stateless. That means server side sessions are not necessary. This makes scaling an application easier as well.

»

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 created automatically. This can be handy if you have some automated setup routine for your application.

»

Coldbox

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. »

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 Coldbox Documentation but wanted to post it as a quick reference for myself.

»

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 benefit is that they are lightweight and can be sent with every request so they are stateless. That means server side sessions are not necessary. This makes scaling an application easier as well.

»

Coldfusion

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 multiple record sets then you can write a stored procedure and use cfstoredproc.

»

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 created automatically. This can be handy if you have some automated setup routine for your application.

»

CommandBox

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 develop this blog but I am still very much a newbie.

»

Mura 7 Development with CommandBox

This is a script I wrote to quickly setup a new Mura 7 development server in CommandBox. It runs on Lucee with an embedded H2 database. It uses the new cfconfig module to setup the datasource.

»

Derby

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 created automatically. This can be handy if you have some automated setup routine for your application.

»

DevOps

Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations

The book Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations by Nicole Forsgren Ph.D., Jez Humble, and Gene Kim warn that organizations should be learning continuous delivery so they do not fall behind in a world where IT is critical to remain competitive in any industry. »

Development

Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations

The book Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations by Nicole Forsgren Ph.D., Jez Humble, and Gene Kim warn that organizations should be learning continuous delivery so they do not fall behind in a world where IT is critical to remain competitive in any industry. »

Github

Hello World from Jekyll!

I decided to try out using Jekyll to build a personal blog. It is a static site generator and also the engine behind Github Pages. This is appealing since I can host my site there for free. This first post focuses on setting up my development environment to get started with Jekyll.

»

JWT

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 benefit is that they are lightweight and can be sent with every request so they are stateless. That means server side sessions are not necessary. This makes scaling an application easier as well.

»

Java

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. At my company we process many different data feeds in various formats. So we sometimes need to read and write some large data files. This can be a very memory intensive task with large data sets. So using streams is usually a more efficient solution.

»

Javascript

Notes on Migrating from Vue.js 1.x

I have been refactoring a Coldbox application as a Single Page Application using Vue.js using ColdBox Elixir. I was origionally looking at ColdBox Elixir for compiling Sass. After reading the docs I was curious and decided to look into Vue.js.

»

Jekyll

Hello World from Jekyll!

I decided to try out using Jekyll to build a personal blog. It is a static site generator and also the engine behind Github Pages. This is appealing since I can host my site there for free. This first post focuses on setting up my development environment to get started with Jekyll.

»

Legacy Code

Refactoring Legacy CFML with Approval Tests: Part II

In part I of this blog series we walked through using TestBox-Snapshots to create some approval tests for refactoring a legacy CFML application. In this post, we will focus on setting our application up to use the ColdBox MVC framework. Once it is setup we can start using the MVC pattern to separate concerns. We start by installing ColdBox.

»

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 your output is not changing.

»

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 to take away the stigma of working with legacy code and frame it as something to really be proud of. If you work with legacy code, you know it can be frustrating and difficult however it can also be very satisfying to figure out how a piece of code works and be able to improve it.

»

MS SQL Server

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 multiple record sets then you can write a stored procedure and use cfstoredproc.

»

Performance Issues with SQL Server Query Plans

I was recently tasked with building a complex report. I wrote a SQL Server stored procedure to return the data. It accepts 5 parameters and has complicated logic. It seemed to run fine at first but I started noticing performance issues when certain parameters were used. The issues seemed to go away if the sql service was restarted. Also, when I executed it in the SQL Server Management Studio it ran fine but would never finish when the same stored procedure was executed from the application.

»

Mura

Mura 7 Development with CommandBox

This is a script I wrote to quickly setup a new Mura 7 development server in CommandBox. It runs on Lucee with an embedded H2 database. It uses the new cfconfig module to setup the datasource.

»

NodeJS

Parsing XML with Node.js Streams Part II

In my previous post Processing Large XML Data Feeds With Node.js I gave an example of calling a SOAP webservice then writing the response XML to file. I then used the xml-stream module to parse through the xml and create a CSV/TSV file. At the time I originally tried streaming directly from the http request to xml-stream but was getting an error.

»

Processing Large XML Data Feeds With Node.js

At work we have a job that process a large data feed that involves consuming a SOAP webservice that returns 150MB+ of data. The job runs in Coldfusion which reads all the data into RAM and depending on how much RAM is available can cause Coldfusion to throw an out of memory error.

»

OWASP

OWASP TOP 10 2017 A2-Broken Authentication: Password Guidance

One of the recommendations I mention in OWASP TOP 10 2017 A2-Broken Authentication: Password Requirements is to provide guidance to your users when creating passwords. Here I attempt to explore some ways of implementing feedback to users on the strength of their passwords. »

Implementing a Password Blacklist in CFML

the new guidelines for password requirements say to drop all the complexity rules and to create a blacklist 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. »

OWASP TOP 10 2017 A2-Broken Authentication: Password Requirements

Continuing the series on the OWASP Top 10 now we look at the #2 OWASP vulnerability which is Broken Authentication »

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. »

Refactoring

Refactoring Legacy CFML with Approval Tests: Part II

In part I of this blog series we walked through using TestBox-Snapshots to create some approval tests for refactoring a legacy CFML application. In this post, we will focus on setting our application up to use the ColdBox MVC framework. Once it is setup we can start using the MVC pattern to separate concerns. We start by installing ColdBox.

»

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 your output is not changing.

»

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 to take away the stigma of working with legacy code and frame it as something to really be proud of. If you work with legacy code, you know it can be frustrating and difficult however it can also be very satisfying to figure out how a piece of code works and be able to improve it.

»

SQL

Performance Issues with SQL Server Query Plans

I was recently tasked with building a complex report. I wrote a SQL Server stored procedure to return the data. It accepts 5 parameters and has complicated logic. It seemed to run fine at first but I started noticing performance issues when certain parameters were used. The issues seemed to go away if the sql service was restarted. Also, when I executed it in the SQL Server Management Studio it ran fine but would never finish when the same stored procedure was executed from the application.

»

Security

OWASP TOP 10 2017 A2-Broken Authentication: Password Guidance

One of the recommendations I mention in OWASP TOP 10 2017 A2-Broken Authentication: Password Requirements is to provide guidance to your users when creating passwords. Here I attempt to explore some ways of implementing feedback to users on the strength of their passwords. »

Implementing a Password Blacklist in CFML

the new guidelines for password requirements say to drop all the complexity rules and to create a blacklist 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. »

OWASP TOP 10 2017 A2-Broken Authentication: Password Requirements

Continuing the series on the OWASP Top 10 now we look at the #2 OWASP vulnerability which is Broken Authentication »

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. »

Streams

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. At my company we process many different data feeds in various formats. So we sometimes need to read and write some large data files. This can be a very memory intensive task with large data sets. So using streams is usually a more efficient solution.

»

Parsing XML with Node.js Streams Part II

In my previous post Processing Large XML Data Feeds With Node.js I gave an example of calling a SOAP webservice then writing the response XML to file. I then used the xml-stream module to parse through the xml and create a CSV/TSV file. At the time I originally tried streaming directly from the http request to xml-stream but was getting an error.

»

Processing Large XML Data Feeds With Node.js

At work we have a job that process a large data feed that involves consuming a SOAP webservice that returns 150MB+ of data. The job runs in Coldfusion which reads all the data into RAM and depending on how much RAM is available can cause Coldfusion to throw an out of memory error.

»

Sublime Text

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. »

Testbox

Refactoring Legacy CFML with Approval Tests: Part II

In part I of this blog series we walked through using TestBox-Snapshots to create some approval tests for refactoring a legacy CFML application. In this post, we will focus on setting our application up to use the ColdBox MVC framework. Once it is setup we can start using the MVC pattern to separate concerns. We start by installing ColdBox.

»

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 your output is not changing.

»

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 to take away the stigma of working with legacy code and frame it as something to really be proud of. If you work with legacy code, you know it can be frustrating and difficult however it can also be very satisfying to figure out how a piece of code works and be able to improve it.

»

Vagrant

Hello World from Jekyll!

I decided to try out using Jekyll to build a personal blog. It is a static site generator and also the engine behind Github Pages. This is appealing since I can host my site there for free. This first post focuses on setting up my development environment to get started with Jekyll.

»

Vue.js

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. »

OWASP TOP 10 2017 A2-Broken Authentication: Password Guidance

One of the recommendations I mention in OWASP TOP 10 2017 A2-Broken Authentication: Password Requirements is to provide guidance to your users when creating passwords. Here I attempt to explore some ways of implementing feedback to users on the strength of their passwords. »

Notes on Migrating from Vue.js 1.x

I have been refactoring a Coldbox application as a Single Page Application using Vue.js using ColdBox Elixir. I was origionally looking at ColdBox Elixir for compiling Sass. After reading the docs I was curious and decided to look into Vue.js.

»