
JSAM: a simple JSON writer and reader
JSAM: a simple JSON writer and reader
JSam is a lightweight, zero-deps JSON parser and writer. Named after Jetstream Sam. Small: only 14 Java files with no extra libraries; Not the fastest one but is pretty good (see the chart below); Has got its own features, e.g. read and...

Fixed Order Sorting in Clojure
Fixed Order Sorting in Clojure
https://camdez.com/blog/2025/04/23/fixed-order-sorting-in-clojure/
Here’s another tidy bit of Clojure that makes me happy… Of course it’s easy to sort items in the natural order: (sort [1 3 4 2]) ; = (1 2 3 4) Or via a mapping to elements that sort in a natural order: (sort-by count ["xx" "xxx" "x"]) ; = ("x"...

An Appearance on Apropos
An Appearance on Apropos
https://blog.fogus.me/2025/04/23/apropos-me/
I was fortunate to appear on the April 22, 2025 episode of the Apropos podcast...

Look at how little I need
Look at how little I need
https://emil0r.com/posts/2025-04-23-look-at-how-little-i-need/
I recently found the time to rewrite an old library of mine from the ground up: ez-form. This is one of the first libraries I wrote for Clojure, based on code I found myself writing yet again, in yet another project. Forms for the web is one...

No, really, you can’t branch Datomic from the past (and what you can do instead)
No, really, you can’t branch Datomic from the past (and what you can do instead)
http://blog.danieljanus.pl/2025/04/22/datomic-forking-the-past/
I have a love-hate relationship with Datomic. Datomic is a Clojure-based database based on a record of immutable facts; this post assumes a passing familiarity with it – if you haven’t yet, I highly recommend checking it out, it’s enlightening even...

How G+D Netcetera used Rama to 100x the performance of a product used by millions of people
How G+D Netcetera used Rama to 100x the performance of a product used by millions of people
“Rama enabled us to improve the performance of two critical metrics for Forward Publishing by over 100x, and it reduced our AWS hosting costs by 55%. It sounds like a cliché, but learning Rama mostly involved us unlearning a lot of the conventional...

Small modular parts
Small modular parts
https://ericnormand.substack.com/p/small-modular-parts
Our last episode was with David Nolen. We talk about his development process, his origin, and his philosophy. The next episode is on Tuesday, April 22 with special guest Fogus. Please watch us live so you can ask questions.I have finally released...

The Duality of Transducers
The Duality of Transducers
https://camdez.com/blog/2025/04/21/the-duality-of-transducers/
I finally got around to re-recording and posting this talk on Clojure’s transducers that I gave last year to the Austin Clojure Meetup: The talk walks through what transducers are, their benefits, where they make sense to use (and where they...

Local S3 storage with MinIO for your Clojure dev environment
Local S3 storage with MinIO for your Clojure dev environment
https://www.emcken.dk/programming/2025/04/21/local-s3-storage-with-minio-for-clojure-dev-env/
Simple Storage Service or S3 Cloud Object Storage is a versatile and cheap storage. I’ve used it for invoices, contracts, media, and configuration snapshots, among other things. It’s a perfect fit when the object key (or what many might think of as...

Clojure Submaps
Clojure Submaps
https://camdez.com/blog/2025/04/21/clojure-submaps/
The gentleman behind Clojure Diary was kind enough to recently post a video based on a small comment I made on his YouTube channel: Clojure Diary - Elegant way of filtering maps based on key value pairs. (Please check out his channel as he’s doing...

Setup Emacs to autoformat your Clojure code with Apheleia and zprint
Setup Emacs to autoformat your Clojure code with Apheleia and zprint
Keeping code consistently formatted is important for readability and maintainability. Once you get used to having a computer format your code for you, manually formatting code can feel tedious.For the last few years, my team has been using zprint...

Q2 2025 Funding Announcement
Q2 2025 Funding Announcement
https://www.clojuriststogether.org/news/q2-2025-funding-announcement/
Clojurists Together is excited to announce that we will be funding 6 projects in Q2 2025 for a total of $33K USD (3 for $9K and 3 shorter or more experimental projects for $2K). Thanks to all our members for making this happen! Congratulations to...

Clojure Power Tools Part 3
Clojure Power Tools Part 3
http://www.karimarttila.fi/clojure/2025/04/20/clojure-power-tools-part-3.html
Clojure REPL. Table of Contents Introduction VSCode, Calva and REPL Editor Integration Babashka Fullstack Libraries Metosin Libraries: Reitit, Malli and Jsonista Aero and Integrant Replicant and Hiccup ...

Optimizing syntax-quote
Optimizing syntax-quote
https://blog.ambrosebs.com/2025/04/20/optimizing-syntax-quote.html
Syntax-quote in Clojure is an expressive reader macro for constructing syntax. The library backtick demonstrates how to write syntax-quote as a macro. Both approaches are ripe for optimization—take these programs that both evaluate to []: '`[] ;=...

Added video links to Clojure Book
Added video links to Clojure Book
https://clojure-diary.gitlab.io/2025/04/18/added-video-links-to-clojure-book.html
Some might like to read text and learn, some might want to watch videos and learn. Clojure Book has got a video playlist which you can access here https://www.youtube.com/playlist?list=PLKJ%5C_YtZXuW%5C_Azc3o9rm86n5D1bSavwpvE. Apart from that Clojure...

Skyscrapers or mud huts
Skyscrapers or mud huts
https://ericnormand.substack.com/p/skyscrapers-or-mud-huts
Our last episode was with David Nolen. We talk about his development process, his origin, and his philosophy. The next episode is on Tuesday, April 22 with special guest Fogus. Please watch us live so you can ask questions.Have you seen Grokking...

Next-level backends with Rama: fault-tolerant timed notifications in 25 LOC
Next-level backends with Rama: fault-tolerant timed notifications in 25 LOC
This is part of a series of posts exploring programming with Rama, ranging from interactive consumer apps, high-scale analytics, background processing, recommendation engines, and much more. This tutorial is self-contained, but for broader...

Practices to scale Machine Learning operations
Practices to scale Machine Learning operations
https://building.nubank.com/practices-to-scale-machine-learning-operations/
At Nubank, innovation in machine learning (ML) and data science (DS) drives our mission to build the Purple Future. Recently, we hosted the 92nd edition of our DS & ML Meetup, themed “Practices to Scale Machine Learning Operations.” This event...

Learning Fennel from Scratch to Develop Neovim Plugins
Learning Fennel from Scratch to Develop Neovim Plugins
https://lambdaisland.com/blog/2025-04-16-fennel
by Laurence ChenAs a Neovim user writing Clojure, I often watch my colleagues modifying Elisp to create plugins—for example, setting a shortcut key to convert Hiccup-formatted data in the editor into HTML. My feeling is quite complex. On one hand,...

numbers, radix, arbitrary precision in Clojure
numbers, radix, arbitrary precision in Clojure
https://clojure-diary.gitlab.io/2025/04/15/numbers-radix-arbitrary-precision-in-clojure.html
Code ;; numbers.clj 17 017 ;; O17 ;; error 0.17 00.17 8r17 0X17 0x17 16r17 16R17 ;; 16r-17 ;; error -16r17 ;; 0x-17 ;; error -0x17 ;; 0x17.34 ;; error ;; 16r17.34 ;; 7r17 ;; error ;; 4r17 ;;...