In this post I'll give updates about open source I worked on during March and April 2025.To see previous OSS updates, go here.SponsorsI'd like to thank all the sponsors and contributors that make this work possible. Without you the below projects...
We built real document versioning on top of Git — with full history, point-in-time access, and chronological restoration.
This is the core of #ChronDB.
👇 Here’s how it works under the hood
Our last episode was with Fogus. It was a great episode where we learn from his experience as a core contributor. The next episode is on Tuesday, May 6 with special guest JP Monetta. Please watch us live so you can ask questions in the chat.If you...
Day-to-day programming isn’t always exciting. Most of the code we write is pretty straightforward: open a file, apply a function, commit a transaction, send JSON. Finding a problem that can be solved not the hard way, but smart way, is quite rare....
Great news, everyone - CIDER 1.18 (“Athens”) is out! This is a huge release that has an equal amount of new features, improvements to the existing ones, and also trimming down some capabilities in the name of improved efficiency and...
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...
core.async 1.9.808-alpha1 is now available, featuring the first release of core.async.flow. You can read more about core.async.flow in the rationale and the docs. core.async.flow is in alpha state - all APIs are still subject to change but we...
Towards the cutest neural network I recently needed to use a microcontroller to estimate the pose (translation and orientation) of an object using readings from six different sensors. Since the readings were non-linear and coupled with each other,...
core.async 1.9.808-alpha1 is now available, featuring the first release of core.async.flow. You can read more about core.async.flow in the rationale and the docs. core.async.flow is in alpha state - all APIs are still subject to change but we...
How to choose the target language for a migration? There are moments in the life of a software system—and in the life of those responsible for it—when you feel trapped. Trapped by a language that once served you well but now feels like a cage....
Consider the following Clojure code:(def thread-pool (java.util.concurrent.Executors/newCachedThreadPool)) (def fut (.submit thread-pool (fn [] 3))) @fut ;;= ? I didn't use any type hints, but the names of the vars should give you an idea what's...
Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem (feed: RSS). Thanks to Anton Fonarev for link aggregation. Podcasts, videos, and media Fogus guests on Apropos Clojure 2025-04-22 - apropos...
Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem (feed: RSS). Thanks to Anton Fonarev for link aggregation. Podcasts, videos, and media Fogus guests on Apropos Clojure 2025-04-22 - apropos...
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...
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"...