Posts About Programming

Alchemy CMS: great for managing websites integrated with Ruby on Rails

After learning Ruby on Rails, I played around a little with a few of the open source content management system options available, and one in particular stood out for what I typically need: Alchemy CMS.

Read the rest of this entry ›

Progressively enhancing your CFWheels form with nested properties and jQuery

We all find ourselves in this situation from time to time: we want to code a form that contains a “main” record and a collection of “nested” records. We want some JavaScript-powered form controls to add to and remove from that collection of nested records. Clicking the submit button then saves the whole thing.

This post will cover a fairly standard CFWheels solution using nested properties and a sprinkling of jQuery.

Read the rest of this entry ›

Never output anything to a browser without using a formatting filter

Cross-site scripting (XSS) vulnerabilities can be quite a serious problem if you’re not careful. And if you’re using a framework like CFWheels, you need to be extra careful to protect your output from rendering malicious content.

In this post, I suggest that you must always use a formatting function like EncodeForHtml, DateFormat, or NumberFormat when outputting any dynamic value.

Read the rest of this entry ›

Clobber Windows Ruby HTTPS connectivity issues with the new Net::HTTP SSL Fix gem

I recently released a little Ruby gem with a fix for HTTP connectivity via the Net::HTTP library.

From the Net::HTTP SSL Fix Ruby gem’s README:

No more / (╯°□°)╯︵ ┻━┻!

But you probably want a more detailed description of the gem’s purpose, so here it is:

A Community-updated Net::HTTP certificate authority file hack. Very useful for authoring Ruby-based HTTP clients that must run on Windows.

Read my post Clobber Windows Ruby HTTPS connectivity issues with the new Net::HTTP SSL Fix gem for more information.

Read the rest of this entry ›

Building search forms with tableless models in CFWheels

In this post, I hope to persuade you that you will rarely ever need the Tag-based form helpers (textFieldTag, selectTag, etc.) in your CFWheels apps ever again.

“How?” you ask.

The answer: through the use of a wonderful feature that we affectionately call tableless models.

Read the rest of this entry ›

CFWheels, meet Docker

I was stoked when I saw that Adam Chapman had created a Docker setup for CFWheels and Lucee.

Docker is a fairly easy way to get a development environment setup for experimentation, which then can be shipped into production later. It’s also a great way to try out Lucee and CFWheels.

You’re probably like I was also: curious about Docker and what it could do for you. If you’re familiar with CFWheels, this is a great way to jump in and see if it’s right for you

Read the rest of this entry ›

Introduction to feature specs in RSpec

With Live Editor, I decided to spend a lot of focus on writing feature specs with RSpec and Capybara. Feature specs allow you to test your application from the user’s point of view. You use the Capybara gem to test your application’s interface with commands like these:

Read the rest of this entry ›

How to use the ZURB Foundation for Sites grid system without the meaningless class names

When you take a look at a front-end framework like Twitter Bootstrap or ZURB Foundation for Sites, do you cringe at the classes that you need to use to build a grid-based layout? You’re not alone.

I’ll show you how to use Foundation’s responsive grid system with your own semantic class names.

Read the rest of this entry ›

Screencast: CFWheels DBMigrate Create Operations

In this new screencast, I cover the DBMigrate plugin. It’s a great tool to use to generate and modify your database structure using nothing but CFML.

Read the rest of this entry ›

iCRM SDK Released as Open Source

Today, we’re excited to release iCRM SDK, our ColdFusion wrapper for the Infusionsoft® API on GitHub. We’re excited to release some code that’s been very useful to Liquifusion Studios as a gift to the open source community.

Read the rest of this entry ›