Clojure Gazette 151: Top Down, Emacs, CQRS

Sign up for weekly Clojure tips, software design, and a Clojure coding challenge.

Top Down, Emacs, CQRS
Clojure Gazette
Issue 151 - November 23, 2015

Hi Clojurists,

The Conj happened this past week, and I forgot to remind everyone to keep an eye out for the videos. Sorry about that! But they're out now.

I really liked the Conj videos. I really like being at conferences and talking to the awesome attendees. But I think I like watching videos online better than I like watching the talks live.

There is usually an overarching theme for the Conjes, but I haven't found it yet. I'll keep my eye out and keep you informed. I've selected a few talks in this issue and some other content I found interesting this week.

Please enjoy the issue!

Rock on!
Eric Normand <>

PS Want to get this in your email? Subscribe!
PPS Want to advertise to smart and talented Clojure devs?


Sponsor: Boot

As much as we talk about data-driven programming and declarative langauges, sometimes regular code is the best way. What's the best way to represent a series of steps needed to build your project? I suggest procedural code. Boot is a build tool for Clojure that gives you the power of the entire Clojure language to write your builds. Instead of a DSL with plugins, it's a library with composable abstractions. Check it out and give a shout-out to the maintainers on the forum.

Bottom Up vs Top Down Design in Clojure Youtube

Mark Bastian gave a great talk at the Conj which is on a topic dear to my heart: avoiding complexity while programming. He constrasts the OO approach of building a giant class hierarchy that does nothing with building up data models to represent your domain. My big takeaway was that modeling relationships like "isa" and "hasa" is usually pointless if they aren't important in your domain.


Tupelo is a convenience library—lots of routines for doing common things. This kind of library is always interesting. While I usually don't use them wholesale, they often have little nuggets of usefulness.

Why I Choose ClojureScript

Eric Shull calls upon the idea of looking for bright spots to explain why ClojureScript is right for him.

Onyx 0.8.0 Released

Onyx is a distributed computation system built in Clojure. It's maturing quickly and promises some great things.

Clojure, Emacs and Cider

Oh, my! Setting up Emacs for use with Clojure is a lot of work. I'm really sorry about that but it's the truth.

Om Next Youtube

David Nolen's talk at the Conj was about Om Next, the successor to the current Om. He explains the problems it is trying to solve. It will, of course, be popular.

A Deep Specification for Dropbox Youtube

Benjamin Pierce is a legend in our field. He wrote the book on programming languages. This talk was very interesting because he specifies a practical service (Dropbox) using formal notation. He was able to test it using generative testing.

From REST to CQRS with Clojure, Kafka, & Datomic Youtube

Bobby Calderwood's critique of CRUD is spot on. The main point is that CRUD operations don't map to user operations. When was the last time you CREATEd a transaction at your bank? No, you most likely thought of it as transfering money. Why do we try to funnel everything through the CRUD verbs? Calderwood proposes a universal mechanism for recording user events (such as transfering money) which gives a real abstraction.

The ClojureScript Compiler - A Look Behind the Curtains Youtube

Maria Geller has been working on the ClojureScript compiler as part of the Google Summer of Code. In this talk, she explains how the compiler works.