Eric Normand Newsletter 472: Working on Domain Modeling book

Reflections 🤔

Working on Domain Modeling book

I started working again on notes for my next book. It's going to be about domain modeling. It feels good to get back into it. The ideas have been swirling, but I haven't had the brainpower to put them down on paper.

I'm pretty sure the book won't be a financial success. Who reads about domain modeling?

Sometimes I think the fates have destined me for small markets. I'm always into stuff no one else is into. I'm contrarian and snooty. When I see too many people like a thing, I think there must be something wrong with it. It's why I picked up Clojure.

Maybe I should go against my instincts and learn (and teach) Rust. I hear Rust books are making a killing. What do you think?

Improve performance with functional thinking

Someone used one of the kinds of analysis I showed in Grokking Simplicity to improve their software.

New Clojure project quickstart

Michiel Borkent is at it again. I had not heard of neil. I'm not sure that yet-another-thing-to-install is the correct answer to the beginner's quickstart problem, but I might install it myself.

Tools for better thinking

I love thinking frameworks. This author has done a beautiful job distilling and organizing many good ones.

Which Version of JDK Should I Use?

Oh, man! Jochen Christ has created this super useful resource. If you've ever wondered what JDK to install (or haven't kept up with things like me), you will like this.

The Grand Unified Theory of Documentation

If you're into teaching or writing documentation, this is a great framework. Warning: It's not a recipe or template for how to write good docs. To me, it's more about thinking about goals and identifying what's missing.

Superficial Simplicity

Reid McKenzie meditates about the value of simplicity.

Clojure needs a Rails, but not for the reason you think

Are Clojure developers churning through web frameworks because there is no de facto standard? An interesting take, though I'd like to see more data to back it up.

Functional Geekery Episode 141 -- Shriram Krishnamurthi

I love me some Shriram Krishnamurthi. It was a pleasant interview.

Grokking Simplicity 📘

New readers are still coming:

Finally got my new book. How long before I'm a

While that's very nice, sales are dropping off. So much for writing a perennial best-seller. 🙁

You can order the book on Amazon. Please leave a rating and review. Reviews are a primary signal that Amazon uses to promote the book. They help others learn whether the book is for them.

You can order the print and eBook versions on (use TSSIMPLICITY for 50% off).

Clojure Challenge 🤔

Last challenge

Issue 471 - License plates - Submissions

This week's challenge


A futuristic robot is programmed to take in a sequence of numbers. Each number is the distance to travel in a cardinal direction (north, south, east, west). It starts facing north at (0, 0), travels straight ahead by the distance given in the first number, then turns 90 degrees clockwise, now facing east. Then it repeats with the next number. Your job is to calculate where it ends up at the end of the sequence.


(move []) ;=> [0 0] ;; No motion
(move [10]) ;=> [0 10] ;; move 10 straight north
(move [10 2]) ;=> [2 10]
(move [10 2 3]) ;=> [2 7]

Thanks to this site for the problem idea, where it is rated Very Hard in Ruby. I have modified the problem.

Please submit your solutions as comments on this gist.

Rock on!
Eric Normand