Author: Stuart

Podcast Is Happening

I’m five episodes in, so I think it is safe to announce that I have a podcast! No Manifestos is a podcast about people living with technology, because that describes everyone today. Whether you work in the sciences, business, or the software industry itself, everyone has to use and live with software.

Triple-Screen Pairing Dream

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.

Clojure Don’ts: Thread as

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…

Read the full article

Threading with Style

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…

Read the full article

Building for Growth at Clubhouse

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.

Clojure Don’ts: Non-Polymorphism

Polymorphism is a powerful feature. The purpose of polymorphism is to provide a single, consistent interface to a caller. There may be multiple ways to carry out that behavior, but the caller doesn’t need to know that. When you call a polymorphic function, you remain blissfully ignorant of (and therefore decoupled from) which method will…

Read the full article

Developing the Language of the Domain

Earlier this year, I wrote a piece for the Cognitect blog: Developing the Language of the Domain (blog.cognitect.com) In it, I describe the process of building a domain-driven application using Clojure, ClojureScript, EDN, Datomic, clojure.spec, Pedestal, and Om.