Which Clojure codebases should I read? How and why?

Newcomers to Clojure so frequently ask this question that an FAQ/Guide is being discussed, to add to the Clojure website. See Issue #586: Add FAQ or guide for example projects. Please add your thoughts to that ticket!

This post is my (opinionated) take on it. I struggled a lot with this too. I still do from time to time, in unfamiliar territory, and these days I feel like I’m in unfamiliar territory a lot. Various Clojurians — individuals and groups — have been producing so much creative, diverse work over these last few years that keeping up quickly became impossible!

No doubt this surfeit of creativity intimidates newcomers. The strange ideas, lingo, thinking, and writing espoused by Clojurians can seem so very alien. But despair not, for Clojureland also has a surfeit of friendly, helpful people. And very many of our codebases are small! You will be able to read them! And get help if you get stuck!

This post explains what I believe I’ve done subconsciously over the years. It is as much an answer for somewhat experienced me as it is for the relative newcomer you!

Read more →

Why and How I use “Org Mode” for my writing and more

You won’t know of Org Mode if you live a normal life. This page has pictures that will help you visualise it.

It is a decidedly un-sexy under-marketed weirdly niche tool for note taking (and a lot more). “Your life in plain text”, they say.

Yet, I find myself telling people that they will have to pry it from my cold dead hands. Which befuddles me. Why, as an ingrate software nerd who has soured on software technology —talk about biting the hand that feeds— do I evince such strong sentiment about a software program?!

Also, plain text? In 2022?!

Well, join the wonder club. I’ve been wondering the same thing!

With further ado, I will:

  • illustrate my org-mode use with real examples
  • describe my “what, why, and how” in generally applicable terms
  • discuss some common objections and concerns
  • offer some shiny brain-food for your imagination

Also nerd alert. I can’t remove some technicalities without also dumbing it down and doing your intelligence a disservice. Email me if you need help.

Take what is useful and discard the rest!

Read more →

n ways to FizzBuzz in Clojure

FizzBuzz is everywhere. Every programmer passes through its rite of passage, or at least bears witness to another. Over the years, many gentlenerds have taken it upon themselves to discover ever new ways to incant those hoary symbols.

I hereby enjoin these few drops of Clojure to that roiling ocean of FizzBuzzery.

The brainwave here is to (mis)use the feature set of Clojure and its standard library to cook up as many ways to encode FizzBuzz as one can muster (or steal). If all goes well, this post will receive many updates. If it goes really well, all sorts of bad ideas and clever foot-guns will be discovered and used.

The creative constraint is this: any FizzBuzz, however terrible or hilarious, must also be useful. It should have reason to exist and should reveal some real-world Clojure thinking.

That means no FizzBuzzEnterpriseEdition but also no Dylan Beattie’s brilliant FizzBuzz in RockStar. So sorry!

Read more →

shite: static sites from shell: part 1/2

This primer is for people like me, who long dreamed of lovingly hand-crafting our own home on the Internet. We would make it ultramodern yet ultralight, simple yet beautiful. Something not WordPress because that’s so last century. (Seriously, just go to WordPress.)

No. We were committed. We would do it for the sake of craftsmanship and the environment and World Peace. And that’s how we found ourselves awake at 2 A.M., having absurd conversations 1 with Distant Internet Strangers…

Read more →

In the beginning, was the domain name

How this blog came to be is a minor miracle. Long story short, I conned myself into believing nobody will find and read it. But you’re here, aren’t you? And you’re reading this. Aren’t You?

Confucamus.

Well, here’s how you got here.

Read more →