[Heart of Clojure 2024](https://2024.heartofclojure.eu/) took place over September 18th and 19th in Leuven, Belgium. Leuven is a beautiful city in the Dutch speaking part of Belgium (which is mostly the northern half of the country). I ended up travelling a day before and after to make sure I didn't miss any of the conference or social time on either side and I'm so glad I did.
![[career-ladder.jpg]]
>"The Career Ladder" a little joke I was way too proud of in the moment. Proud enough to share it again here.
## People
I got to meet so many lovely people from across the Clojure-verse, huge shout out to everyone I met that travelled over from India, what a journey! I can't wait to bump into some of the people I met again some day in the future.
I had quite a few moments where Conjure users either bumped into me by happenstance or actually sought me out, it was mind blowing and kind of emotional for me at times. Running an impromptu Conjure Q&A session (at the same time as the Emacs one but in a different building to avoid the obvious riots that would ensue) and having _so many_ people turn up left me in a bit of shock.
I know Conjure has quite a few stars and users within the Neovim sub-culture, but seeing a group of you in real life really spelled it out: My work over these last few years is paying off and impacting others in (hopefully) positive and productive ways. It brought me a new burst of motivation and pride for what we've created together and what we will continue to foster.
>Huge shoutout to Russ, he's been an absolute angel helping me out with issues over on the Conjure GitHub. He wasn't at the event, he just deserves a shoutout. If you see him in the Conjure discord or issues make sure you thank him, he's been a **huge** help getting the new `main` branch in order. You can read more about this modernising migration work in [Migration off of Aniseed onto nfnl, a new branch name, a new beginning!](https://github.com/Olical/conjure/discussions/605)
I also had my first beer bought for me over a project of mine! Nothing like that has ever happened before, I was shocked and delighted. You know who you are, I deeply enjoyed our chat about life, work, technology and everything in between in the glorious sunshine. (well slightly in the shade, but close enough to the nice weather!)
The final evening chatting about all sorts over burgers, beer and some (wrong!) wine will stick with me. It was something I haven't done in a long time with a group of my peers and it made me realise just how much I missed that sort of interaction.
I enjoyed every aspect of the conference, but the people and our conversations were what took it from a good event to an amazing one that I'll remember forever.
I deeply hope future conferences I attend (re:Clojure 2025? 👀) will embody the same ethos of being open and forming connections.
## Projects
Although there were great talks and fascinating _things_ on show, the people really took centre stage for me. That being said, I wanted to list some of the things and talks that stood out to me. This list is not exhaustive, I didn't dislike any of the talks, but it's a few highlights I noted down.
### [TodePond](https://www.todepond.com/)

Which pushed me to write this, along with many others. You'll find a bunch of scrappy and fiddly posts published off the back of this conference thanks to this talk.
It inspired me to get my Obsidian in order and published here so I could just start to write and share more under my own domain without having to edit my blog git repository and Docker container each time I wanted to do something.
Now I can open Obsidian on my laptop, desktop or phone and just write or edit stuff and have it appear everywhere (either private to me or on my domain) in seconds.
### [Klor](https://github.com/lovrosdu/klor)
>Klor is a domain-specific language for choreographic programming, embedded in Clojure.

I don't have a use for it right now, but I feel like I'll run into something one day that'll be perfectly addressed by this paradigm.
### TimeLines

Music is a function of time! I don't know if there's any code I can link to, but the talk is definitely worth a watch. It's not just about music, it's about tools and representations and how we interact with ideas.
### [JUXT](https://www.juxt.pro/) and their [XTDB](https://xtdb.com/) updates
It's coming alone nicely and has seen massive improvements in recent versions. I also had the pleasure of working with one of the core developers of it for a couple of years, the project is in great hands.
The talk made us think about how PostgreSQL continually improved in performance up to a point but has tapered off due to limitations in it's design. Newer database architectures that aren't bound by "how fast can my SSD be" that include things like bi-temporality have more to offer than just "hey look, more time!" these days. They can offer greater performance and features that are either very hard or impossible to implement in the current popular databases.
It took XTDB from a project I might use one day when I have a concrete use case to something that I think I should try and fit my solutions into instead. I think in PostgreSQL terms, maybe it's time I started to shift that and try to get out of the local maximum to have a look around for another peak.
### Building Conversational Speech Annotation Tool in Clojure

The actual tool they built is really cool, a really tough UI problem. But it also reminded me about [Spectre](https://github.com/redplanetlabs/specter) which I really need to have another go at. I think it'll be really useful for manipulating complex deep structures like we have in ClojureScript UIs. The limitations that they run into in the talk are also good to be aware of.
### [Squint](https://github.com/squint-cljs/squint)
So lightweight! So interoperable! Basically the Fennel of the JavaScript world but with slightly more Clojure-y semantics. This isn't the first I've heard of it, but the talk really sold me on it for some uses. Integrating it with [Vite](https://vite.dev/) also looked really easy and powerful.
I wish it had been around when I was experimenting with my [ClojureScript to JavaScript to Lua](https://github.com/Olical/cljs-lua-experiment) compiler pipeline. I was trying to get ClojureScript to execute inside Neovim. It almost worked! If it had, I wouldn't have made [nfnl](https://github.com/Olical/nfnl) though and I would've probably regretted how heavy my plugins were eventually.
Squint on the other hand is fairly direct and minimal so it's a much better fit. But so is [Cherry](https://github.com/squint-cljs/cherry) in some ways. The thing you have to watch out for when compiling things to Lua to run under LuaJIT is the amount of locals introduced in any scope. LuaJIT has a max local count per scope of around 200 I think. So simple programs work but anything that gets too big or too aggressively optimised will hit that ceiling and not run under LuaJIT (which Neovim uses).
### [Snitch](https://github.com/AbhinavOmprakash/snitch)
From the person who bought me a beer! A wonderful library that's infinitely better than slapping `println` in every other line. If you haven't set up a debugger or can't for whatever reason, this is the next best thing.
This wasn't a talk, this was just something I was told about by the author at the conference. It also turns out that this is the library that I've seen my partner using before and I remember commenting on it saying it was neat.
## Pizza
![[pizza-hoc.jpg]]
It was delicious, that is all. All of the food at Hal5 was great, especially the delicious Palestinian food from [Habibi](https://www.facebook.com/falafelhabibi2020/) (not pictured).
## Personal
![[PXL_20240919_172706806.jpg]]
I met some great people, made some wonderful memories and got a new kick of enthusiasm to just start writing and making more things. I still have that renewed enthusiasm despite being a bit ill and worn down for a few weeks after the conference (I think unrelated?).
Off the back of it I got my notes in order and published, my old blog posts ported with slugs preserved (and formatting fixed!) and a bunch of ideas to implement in Conjure. It'll take me a while to get around to all of the thoughts I had while there, but it's time to make a start.
See you at the next conference!