On the impossibility of separating content from presentation I like writing in Emacs’ Org mode, not because it’s an especially good means of writing prose, but because I already use Org so heavily for notes and source code. My last post was written in Org mode. But my blog remains, as it always has been,… Continue reading Org Mode for Blogging
From 2011 to 2015, I wrote an annual Clojure Year in Review post, attempting to summarize all the interesting things that happened in Clojure in the last year. After 2015, I gave up. There was just too much happening, and I couldn’t keep track of it all. A couple of years ago, I got tired… Continue reading Clojure Start Time in 2019
In case you didn’t know, I started a podcast this year: No Manifestos. One of the interesting things about podcasting is that it’s difficult to know who’s listening. This has even been suggested as the reason for the genre’s success, as it prevents the aggressive tracking and reductionist analytics that have made such a cesspool… Continue reading Old Fashioned Web Analytics in a Newfangled Serverless World
The inimitable Chouser has written an exhaustive analysis of the many ways to flatten a sequence of sequences in Clojure.
Continuing my series of Clojure do’s and don’ts — which, as always, is a mix of technical recommendations and my personal stylistic preferences — and continuing on the topic of the previous post in this series, here are some more arbitrary rules about anonymous functions.
A mistake that shows up at least once in almost every class I teach. The Clojure reader macro #() creates an anonymous function whose body is a single expression, and that expression must be a list.
I’ve spent time at various jobs “pairing” with another developer in a different location. Sometimes I think I must have tried every different piece of software ever developed for this purpose. I have not been completely satisfied with any of them.
A brief addendum to my last post about Clojure’s threading macros. As I was saying … I said you could use as-> to work around the placement of an argument that doesn’t quite fit into a larger pattern of ->. My example was: (-> results :matches (as-> matches (filter winning-match? matches)) (nth 3) :scores (get… Continue reading Clojure Don’ts: Thread as
No, not multi-threading. I’m talking about Clojure’s threading macros, better known as “the arrows.” The -> (“thread-first”) and ->> (“thread-last”) macros are small but significant innovations in Clojure’s Lisp-like syntax. They support a functional style of programming with return values and make composition intuitive. They answer the two chief complaints about Lisp syntax: too many… Continue reading Threading with Style
A couple of weeks ago, I sat down with my new coworkers Camille Acey and Paul Groudas to talk about the work we’re doing to scale up and expand Clubhouse.io. The interview is on the Clubhouse blog as Building for Growth: A Conversation with Clubhouse’s Paul Groudas and Stuart Sierra.