Logs are like onions

Or, What underlying implementation is clojure.tools.logging using? Today I want to change the logging configuration of a Clojure program. Where is that configuration located? Changing the obvious resources/log4j.properties doesn’t seem to change the program’s behavior. The program uses clojure.tools.logging, but that’s a wrapper around four different underlying implementations. Each of those implementations has its own ideas …

Read moreLogs are like onions

GOTO Amsterdam: Respect the past, renew the present

GOTO Amsterdam started with a retrospective on Java, and ended with the admonition that even Waterfall was an advancement in its time. The conference encouraged building on the past, renewing and adding for growth. As our bodies renew themselves, replacing cells so we’re never quite the same organism; so our software wants renewal and gradual …

Read moreGOTO Amsterdam: Respect the past, renew the present

The Silver Pill

There is no silver bullet. What if there is a silver pill? It is no single change that can rocket our productivity. It is a change in the rate of change. There are two outputs of everything we write: some code, and a new version of ourselves. If we stop thinking of our product as …

Read moreThe Silver Pill

Causality: tougher than it looks, but we can take it on

We like to take a hunk of data, graph one factor against another, demonstrate correlation, and infer causality. This naive form of analysis is appealing in its simplicity, but it doesn’t cut it in the real world. With Big Data, we can identify correlation out the wazoo, but it’s time to get way more sophisticated …

Read moreCausality: tougher than it looks, but we can take it on