Clojure Macro Cheat Sheet -

For when you want to remember the key parts of writing Clojure macros, here’s a handy cheat sheet.

Continue reading...

Here’s a pragmatic guide to generative testing in Clojure using test.check, oriented around spec.

Continue reading...

Here’s a hack for getting better output when test.check tests run via clojure.test throw exceptions, thanks to Dominic Monroe.

Continue reading...

Aero & Integrant are two fantastic Clojure libraries used to configure applications. However, I think that there are issues with the way they often get used; today I’m going to look at how they’re actually used best together by keeping them apart.

Continue reading...

How often have you started reading a technical article on your phone, yet given up halfway through because you got tired of scrolling sideways through code blocks? If you have your own blog, are you giving this same annoyance to your readers?

In this post I’m going to look at how to adapt code blocks for mobile devices on your blog, and why it’s worth the effort.

Continue reading...

So you’re a developer looking to start a blog? In this guide I’m going to take you through running your own blog site, from domain names & site creation to SEO & syndication.

Continue reading...

If you’re a Clojure dev and you’re looking to learn Elisp, you have a great head start since you know a lisp dialect already. Here’s a concise guide which focuses on the main differences between the two languages.

Continue reading...

I had always assumed that it would be too hard and boring to get to grips with Elisp. But I don’t know why I held off for so long - you can get a lot of bang for your back with just a little Elisp, and what’s more it’s pretty fun too! In this post I want to do a few things:

  1. Encourage any Emacs users that haven’t used Elisp yet to give it a try
  2. Highlight some key useful Elisp functions
  3. Provide some examples & inspiration for creating your own extensions (whether you’re an Elisp newbie or not)

Continue reading...

Recently I’ve been creating “thin” jars for my Java applications, in order to avoid the waste caused by putting uberjars in containers. I thought I’d try the same for Clojure AOT-compiled uberjars.

The bad news: we can’t get all the way there; the good news: we can get pretty close - at the very least, a concrete improvement over containerized uberjars.

Continue reading...

There’s plenty of advice around on how to create small Docker containers, but what is often missed is the value of making your main application layer as small as possible. In this article I’m going to show you how to how to do this for a Java application, and why it matters.

Continue reading...