Command-Line Intransigence

In the early days of Clojure, I was skeptical of Clojure-specific build tools like Lancet, Leiningen, and Cake. Why would Clojure, a part of the Java ecosystem, need its own build tool when there were already so many Java-based tools? At the time, I thought Maven was the last word in build tooling. Early Leiningen… Continue reading Command-Line Intransigence

Lifecycle Composition

I’ve been thinking about how to build up software systems out of stateful components. In past presentations and blog posts I’ve alluded to a standard interface I use for starting and stopping stateful components: (defprotocol Lifecycle (start [this] “Begins operation of this component.”) (stop [this] “Ceases operation of this component.”)) Most of my Clojure programs… Continue reading Lifecycle Composition

My Clojure Workflow, Reloaded

I have a new post up on the Relevance blog: My Clojure Workflow, Reloaded. It’s a description of how I work with Clojure interactively using the REPL, tools.namespace, and Leiningen.