dave yarwood
Minutiae #2: Crux, slideshow tools, Asciidoc, Heart of Clojure


August 15, 2019


Here’s some stuff I’ve been spending time on lately:

Crux tutorial

The UK-based Clojure consulting company JUXT recently released Crux, an open source, bitemporal, document-oriented database. I thought it was interesting when I heard about it, but I haven’t had a good opportunity to try it out yet. Now they have an entertaining tutorial that guides you through the concepts at a gradual pace, interleaving code examples, excerpts of the actual documentation, and a delightful sci-fi story. I worked my way through it over the course of a week and it’s quite fun!

Making slides

The last N times I’ve prepared a talk/presentation, I’ve used slides.com. Slides.com is great, but I’ve finally gotten to a point where I’m tired of manually laying out each slide, dragging text blocks around to the best-looking (X, Y) coordinates, etc. So, I’ve bitten the bullet and started looking into HTML5 presentation frameworks.

Two of them that I tried recently are Bespoke.js and Reveal.js.


I really like the idea behind Bespoke.js, which bills itself as a “DIY presentation micro-framework.” It strives to be minimal and modular and to support a rich ecosystem of plugins to provide all sorts of presentation functionality.

I tried it out and I think it has promise, but unfortunately, I didn’t have a great out-of-the-box experience. I had a hard time getting a syntax highlighting plugin to work. Based the commit history, it seems like Bespoke.js may be an under-maintained project at this point. Hopefully someday development will pick up or someone will make a new project with similar ambitions.


Reveal.js is more of a “batteries included” framework with numerous features available out of the box. There are also a vast array of plugins providing additional features. The community effort is clearly larger around Reveal.js; if GitHub stardom is any indicator, Reveal.js has over 10x the number of stars as Bespoke.js.

I was pleased to find that I could easily customize my slides’ appearance with Reveal.js. It’s basically just a matter of copying the simple Reveal.js theme CSS and adjusting it to my liking.

(Worth mentioning: slides.com actually uses Reveal.js under the hood!)

I’m totally enjoying working on my slides in CSS and HTML (I’m actually writing my slides in Asciidoc and compiling them to HTML; more on that below). Working on text files allows me to stay focused on the content of my presentations, whereas before I was finding myself spending a lot of time dragging around text blocks on each slide to line them up just right, or otherwise fiddling with things to see what looks best.


I’ve been getting more and more into Asciidoc. It’s an incredibly rich text document format that’s suitable for writing quick notes, documentation, articles, books, websites, slideshows, etc. etc. I decided to try it out on a whim as an alternative to writing Markdown, and I’ve been very happy with it so far. See this blog post for a good comparison of Asciidoc vs. Markdown.

I will likely continue to use Markdown in many places, as it is a de facto standard and I don’t want to force some weird format onto collaborators who are used to Markdown, but I’m tending to write more and more of my own documents in Asciidoc and I’m enjoying it. Maybe someday I’ll explore writing blog posts in Asciidoc. I’m using Jekyll, which is Markdown-based, but it looks like there is an Asciidoc plugin that I could try.


Antora is a really cool static site generator centered around using Asciidoc to maintain your documentation. I saw that CIDER recently published its documentation site using Antora, and I think the result looks fantastic. I recently played around a little bit with using Antora to make a documentation site for Alda. We’ll see how that goes.

Heart of Clojure

I was fortunate enough to fly to Belgium a couple weeks ago to attend the Heart of Clojure conference in Leuven. I had a great time! Some highlights:

  • Many interesting and varied talks, with topics ranging from using ClojureScript to live-code graphics, to the environmental impact of software development, to the use of Clojure in law software, to exploring different modes of thinking within the context of programming.

  • Great vegetarian food.

  • Attendees were invited to use the conference website to organize activities with other attendees, such as getting dinner with people you don’t know, going rock climbing, or having a music/art coding jam.

  • There were plenty of half-hour breaks scattered throughout the 2-day conference, which helped to keep one’s head from exploding with all of the information from the talks. There was even a 4-hour “siesta break” from noon to 4 on Day 2, which could be used for socializing, sightseeing around Leuven, or going back to your hotel for a nap.

  • I ended up giving a lightning talk about Alda, which I signed up for right before the siesta break, so I spent most of the break in my hotel room preparing the demo and enjoying a Skype session with my wife and sons. They had just finished breakfast back home, so it was timed perfectly.

  • As an American in the international Clojure community, I felt a little bit starstruck. I met in person a lot of people who I’ve known for a long time on the internet: people whose projects I’ve used, who I’ve heard on Clojure podcasts, or who I’ve chatted with on the Clojurians Slack group. I even got to meet and hang out with someone I know well as a contributor to Alda!


Reply to this tweet with any comments, questions, etc.!