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.

»
CFML, Testbox, Legacy Code, and Refactoring

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.

»
CFML and CommandBox

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.

»
CFML, Mura, and CommandBox

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.

»
CFML, Java, and Streams

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.

»
CFML, MS SQL Server, and Coldfusion

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.

»
CFML and Coldbox

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.

»
Vue.js, CFML, and Javascript

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.

»
SQL and MS SQL Server

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.

»
CFML, JWT, and Coldbox

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.

»
NodeJS and Streams

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.

»
CFML, Coldfusion, and Derby

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.

»
NodeJS and Streams

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.

»
Jekyll, Vagrant, and Github