code • words • emotions

Daniel Janus’s blog

Dutch Clojure Days 2022

7 November 2022

It’s a tradition of this blog that I write down impressions on my way back from Amsterdam conferences (addendum a week later: unfortunately I took a flight this time, too short to complete this entry, and it had to wait until I caught up). This time, it was Dutch Clojure Days 2022, my first post-COVID full-size conference and the first DCD I’ve ever been to. And, hopefully, not last. I know I want to come back.

This is in no small part thanks to Carlo Sciolla and the whole organising team of DCD. Y’all absolutely rock! I’d like to extend my (bit-shift-left 1 20) thank yous.

I also loved the friendly, informal, meetup-y, no-ceremony vibe of the event. I felt right at home. The venue resonated with that vibe as well. Cloud Pirates’ space might not be the largest or the fanciest conference room ever, but it felt welcoming: one step from the street and you’re there.

And you listen to the talks!

Nikita Prokopov: Clojure + UI = ❤️

(Did you ever try italicising emoji?)

I’ve been keeping an eye on Nikita’s HumbleUI ever since it was publicly announced, and this talk makes me eager to try it out even more. I do have a use-case in mind (Spleen, my Scrabble engine that predates Leiningen by a few days); I’ve been using cljfx to experiment with an UI so far, but I guess I’ll try HumbleUI as well and see how it fares.

HumbleUI may be in pre-alpha, but it’s already practical: Nikita used it to write a presentation engine for his talk!

Paula Gearon: A Library Reckoning

Did you know that Paula is the person we owe a cross-platform clojure.math to? I had no idea! And I greatly enjoyed this highly technical, low-level talk. I learned more that I probably wanted to know about IEEE-754 and the technicalities of floating-point number crunching in JavaScript. And because of Paula’s hard work, dedication, attention to detail, and working closely with the core CLJS team, the whole community gets to benefit! This is open source at its finest. I’m left with an immense sense of gratitude.

I recall Carin Meier’s keynote from EuroClojure 2016, where she introduces (following David Mumford) four tribes of programmers: explorers, alchemists, wrestlers, and detectives. I think both Paula and I share the trait of being detectives: people who find enjoyment in diving into deep, detailed aspects of programming.

Lunch

It merits separate attention, as it was one of the best conference lunches I ever had. If you’re in Amsterdam, do treat yourself to some great food at Mediamatic. They’re a lovely, vegan-only, quiet place at the waterside, allowing an escape from the hustle and bustle of the city. They grow their own produce, and the resident cat makes sure that everyone feels comfortable!

Lightning talks

Me: Golfing Clojure: Check checker in <280 characters of Clojure

I won’t assess my own lightning talk. (You can check out the slides if you want.) But I did manage to make the audience laugh, and I’m happy.

Brendon Walsh: Sorry For The Convenience: The Importance of Progressive Enhancement

I’ll be honest: I was winding down after my own, so didn’t pay much attention to this one. But it did reiterate a few points from Rich’s spec-ulation talk, and this is always worthwhile.

Adrien Siegfried: tagfl, task analysis generated from lisp

Another winding-down talk for me. The live demo, however, did catch my eye. If I ever find myself needing to generate a task graph, I’ll be back.

Adam Helins: Clojupedia, linking the Clojure ecosystem

Adam has some great ideas about how to make the Clojure library ecosystem more discoverable and annotable. I will keep fingers crossed for Clojupedia, and want to contribute.

Sung-Shik Jongmans: Automated Correctness Analysis for core.async

A reprise from this year’s :clojureD, which I unfortunately missed. But I’m so glad I had a second chance to listen to this talk live. Core.async is notoriously hard to use correctly, which I experienced first-hand while developing Skyscraper. (I ended up abstracting away all message-passing and process construction into a higher-level construct, and then using that to implement the functionality.) But I’ve had my share of debugging deadlocks, and Discourje would have been so much help had I known about it earlier! I’m gonna try it out anyway.

On top of the usefulness, Sung-Shik presented it in a very fun and entertaining way.

Jordan Miller: Got a Guru?

Whoah. I liked a lot of talks at DCD, but if I were to pick up the one highlight of the day, it’d probably be this one. Being a soft talk, it was certainly the most welcome surprise.

I won’t try to summarize it (wait for the recording), but I’ll just say that in addition to having a guru it touched on being a glue person, note-taking, multi-dimensional self-awareness progression, and ASSES (which doesn’t quite mean what you think it does). Lambduh (the number of h’s varies) is either a natural-born presenter or had put in extremely high effort to deliver a show like this. Or both. In any case, I’m in awe.

Michiel Borkent: ClojureScript reimagined

I’m not sure how Borkdude does it, but he’s a relentless deliverer. He wrote and actively maintains I-don’t-know-how-many alternative Clojure runtimes, in addition to clj-kondo and many other projects. This is Fabrice Bellard-level productivity, and I don’t say that lightly.

Anyway, those runtimes together cover a wide range of usecases. With this talk, Michiel adds two for an even wider coverage: Cherry (compiling ClojureScript to ES .mjs modules), and Squint (“a way to write JavaScript with familiar syntax that sort of looks like cljs if you squint”). Clojure is coming to your kettle Real Soon Now!

Drinks

Great. And wonderful people, too. Party like you’re in Amsterdam.

The bad

I struggle to find anything that I might have disliked! I forgot my water bottle, but I can only blame myself for that. :)