Don't miss a post! Subscribe to my mailing list.
The Most Important Question A Commit Message Should Answer
(Note: I previously wrote this article for a blog that no longer exists, so I'm re-posting it here. I've updated a couple of the examples to use more recent ones.)
Many people have written about various guidelines for writing a good commit message...
What's the Point of having a Stand-up Meeting?
Over the years I've participated my fair share of daily stand-up meetings. The ones I hate the most are where someone (usually a manager) reads a list of tasks, asking about each one. These type of stand-up meetings tend to drag on for an hour or more...
Workflow for Using Ruby Bumpversion
A few years ago while working on a Python project for a client, I came across a tool called bumpversion. It was written in Python and was used to modify the version of a package before publishing. It used semver language, so the command bumpversion...
Guidelines for Writing Commit Messages
Many developers take the skill of writing a good commit messages for granted. It is an essential skill that requires discipline. While there are a variety of guidelines and opinions about writing them, I'm going to share my current preferences. These...
Middleman, Shadow-CLJS and React
A few months ago I wrote about integrating Middleman with Shadow-CLJS. Today I'm going to expand on that by showing you how to add React to the mix by making a simple BMI calculator from scratch. I'm not going to spend too much time explaining the...
Middleman Shadow-CLJS Project Template
Awhile ago I wrote about how to set up Shadow-CLJS with Middleman. I finally got around to making a Middleman project template to ease the process of setting up Shadow-CLJS. The source is available on GitHub.
To use the template, you'll need to have...
Write the Assertion First
When writing automated tests (whether in a TDD fashion or otherwise) I find it helpful to write the assertion first, before any setup code. There are two main reasons I think it is helpful.
One, I think it's useful to begin with the end in mind. Writing...
Formatting Currency in JavaScript
The other day I needed to format some currency values in JavaScript. I remembered coming across Intl.NumberFormat a long time ago on another project, but browser support was sketchy. I looked up the most recent info on caniuse and thankfully almost...
ClojureScript with Middleman via Shadow-CLJS
Ruby's Middleman is my preferred tool when I need to generate a static website. In this post I'm going to show you how to set up a Middleman project that uses ClojureScript instead of the default JavaScript or CoffeeScript that ships with Middleman...
boot-selmer
Introduction
I’ve been playing around with Clojure and ClojureScript for awhile. So far I’ve always used Leiningen for managing dependencies and build tasks. I recently decided to give Boot a try. I needed to create a Boot task for compiling Selmer