Back to Home

Planet Clojure

163 entries Last fetched 1 day ago Latest post 1 day ago atom
Total entries:
163
Last fetched:
13 Apr 2026 at 01:24 AM UTC (1 day ago)
Last post:
12 Apr 2026 at 11:23 AM UTC (1 day ago)
Fetches since last post:
3
Estimated post interval:
1d
Type:
atom

Sign in to subscribe to this feed and get an enhanced interactive experience with expandable entries.

Showing 1-50 of 163 entries

Leiningen is the build tool and project manager for Clojure. Think of it
like npm (Node), Maven (Java), or pip (Python) — but designed around
Clojure's philosophy.

What Leiningen Does

  • Creates and scaff
Hanging a new garden gate and experimenting with Babashka scripts for provisioning systems.

When you ask an AI to write a 500-line Terraform file, you are essentially asking it to write assembly code for your deployment. It’s brittle, verbose, and prone to “hallucinated” parameters.

The shift is simple: stop using DevOps tools like Ter

In 2026, successfully handling the machine learning data pipeline represents 80% of AI success – the model itself is just the final 20%.

Artificial intelligence has reached a turning point. The debate is no longer abou

The development of AI software is progressing rapidly. Many organizations now work with a Machine learning development company to turn early ML ideas into

1.

I failed my first attempt horribly with Clojure during Advent of Code 2023. Once I reached the later half of the event, I just couldn't solve the problems with a purely functional style. I could've pushed through using imperative code, but I

This post walks through a small web development project using Clojure, covering everything from building the app to packaging and deploying it. It’s a collection of insights and tips I’ve learned from building my Clojure side projects, but presented in

Since February of 2026, I’ve been publishing a series of videos on implementing Swish, a Clojure-like Lisp in Swift using Claude Code. You can find it here.

Swish Logo

I used Common Lisp for a solid year in college, and really enjoyed it.

LLM coding assistants continue to become more capable at writing code, but they have an inherent weakness when it comes to reasoning about code structure. What's worse is that they assemble the picture of the code by grepping through source files a

Why AI systems hallucinate and how technical writing can help achieve more accurate results through structure, terminology and metadata. ➡️ Read now!

I saw someone posted in the Clojurians Slack about something Clojure has taught them:

I’ve come to see programming as:

1. building simple systems
2. and building nice feedback loops for interacting with those systems.

There is no

Clojars Q1 2026 Update: Toby Crawley

This is an update on the work I’ve done maintaining Clojars in January through March 2026 with the ongoing support of Clojurists Together.

Most of my work on Clojars is reactive, based on issues reported thro

Clojure 1.12.5-alpha1 is now available! Find download and usage information on the Downloads page.

  • CLJ-2945 - reify - incorrectly transfers reader metadata to runtime object

  • CLJ-2228 - constantly - unroll to remove re

Welcome to the Clojure Deref! This is a weekly link/news roundup for the Clojure ecosystem (feed: RSS).

Clojure/Conj 2026

September 30 – October 2, 2026
Charlotte Convention Center, Charlotte, NC

Join us for the largest gathering of

Somewhere in 2019 I started a project that aimed to bring some of Clojure features to Lua runtime - fennel-cljlib. It was a library for Fennel that implemented a basic subset of clojure.core namespace functions and macros. My goal was simple - I enjoy

Versioned Analytics for Regulated Industries

Financial regulation — Basel III, MiFID II, Solvency II, SOX — requires that risk calculations, credit decisions, and compliance reports be reproducible. Not just the code, but the exact data state that prod

Code

  • project.clj
(defproject little_ring_things "0.1.0-SNAPSHOT" :description "FIXME: write description" :url "http://example.com/FIXME" :min-lein-version "2.0.0" :depende…

Code

In src/little_ring_things/template.clj

(ns little-ring-things.template) (defn template [title body] (str " "… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d5564-3fb5-7f36-b8b3-ac2639655ad2" data-entry-link="https://dev.to/redbar0n/meta-programming-and-macro-capabilities-of-various-languages-1hgd"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://dev.to/redbar0n/meta-programming-and-macro-capabilities-of-various-languages-1hgd" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d5564-3fb5-7f36-b8b3-ac2639655ad2" data-phx-link="redirect" data-phx-link-state="push" title="Meta-Programming and Macro capabilities of various languages" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Meta-Programming and Macro capabilities of various languages"> Meta-Programming and Macro capabilities of various languages </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="02 Apr 2026 at 07:26 PM UTC"> 2 Apr </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><strong>Meta-programming</strong> = <em>the broad idea of “programs that manipulate or generate programs”</em>. It can happen at runtime (reflection) or compile-time (macros).</p> <p><strong>Macros</strong> = <em>one specific style of meta-programming,</em></p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d5564-3fb5-7fb5-b4b3-bc3fe4237deb" data-entry-link="https://clojure-diary.gitlab.io/2026/04/02/learn-ring-5-dynamic-pages.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojure-diary.gitlab.io/2026/04/02/learn-ring-5-dynamic-pages.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d5564-3fb5-7fb5-b4b3-bc3fe4237deb" data-phx-link="redirect" data-phx-link-state="push" title="Learn Ring - 5. Dynamic Pages" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Learn Ring - 5. Dynamic Pages"> Learn Ring - 5. Dynamic Pages </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="02 Apr 2026 at 06:16 AM UTC"> 2 Apr </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><strong>Notes</strong></p> <p>In handler.clj</p> (ns little-ring-things.handler (:require [compojure.core :refer :all] [compojure.route :as route] [ring.middleware.defaults :refer [wrap-defaults site-defaults]]) (:import [java.time LocalDateTime])) (de… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d5564-3fb6-7244-aee6-bc4c91d92333" data-entry-link="https://flexiana.com/news/clojure/new-era-for-clojure-infix-syntax-3"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://flexiana.com/news/clojure/new-era-for-clojure-infix-syntax-3" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d5564-3fb6-7244-aee6-bc4c91d92333" data-phx-link="redirect" data-phx-link-state="push" title="New Era for Clojure: Infix Syntax!" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="New Era for Clojure: Infix Syntax!"> New Era for Clojure: Infix Syntax! </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="01 Apr 2026 at 12:51 PM UTC"> 1 Apr </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p>After years of watching talented developers bounce off Clojure’s prefix notation, we at Flexiana decided it was time to act. Today we’re open-sourcing <strong>**Infix**</strong> — a library that brings natural, readable mathematical and data-processing</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d5564-3fb6-73e3-a37a-dc9766115934" data-entry-link="https://flexiana.com/news/clojure/new-era-for-clojure-infix-syntax-2"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://flexiana.com/news/clojure/new-era-for-clojure-infix-syntax-2" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d5564-3fb6-73e3-a37a-dc9766115934" data-phx-link="redirect" data-phx-link-state="push" title="New Era for Clojure: Infix Syntax!" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="New Era for Clojure: Infix Syntax!"> New Era for Clojure: Infix Syntax! </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="01 Apr 2026 at 12:36 PM UTC"> 1 Apr </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p></p> (defn say-hello [name] (println (str "Hello, " name))) <p>The post New Era for Clojure: Infix Syntax! appeared first on Flexiana.</p> </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d3c50-cf80-768d-af21-b379e59d7e69" data-entry-link="https://practical.li/blog/use-the-latest-dev-tools-on-a-stable-debian-linux/"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://practical.li/blog/use-the-latest-dev-tools-on-a-stable-debian-linux/" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d3c50-cf80-768d-af21-b379e59d7e69" data-phx-link="redirect" data-phx-link-state="push" title="Use the latest Dev Tools on a Stable Debian Linux" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Use the latest Dev Tools on a Stable Debian Linux"> Use the latest Dev Tools on a Stable Debian Linux </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="01 Apr 2026 at 11:04 AM UTC"> 1 Apr </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p>{align=right loading=lazy style="width:240px"}</p> <p>I use Debian Linux as it provides a stable and low maintenance operating system, enabling me to focus on getting valuable tasks done. Package updates are well tested and the deb package ma</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d48cb-1846-773b-b0e1-2900de01c5f5" data-entry-link="https://clojure-diary.gitlab.io/2026/03/31/learn-ring-5-leiningen-compojure-jetty.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojure-diary.gitlab.io/2026/03/31/learn-ring-5-leiningen-compojure-jetty.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d48cb-1846-773b-b0e1-2900de01c5f5" data-phx-link="redirect" data-phx-link-state="push" title="Learn Ring - 5. Leiningen, Compojure, Jetty." class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Learn Ring - 5. Leiningen, Compojure, Jetty."> Learn Ring - 5. Leiningen, Compojure, Jetty. </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="31 Mar 2026 at 10:58 AM UTC"> 31 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><strong>Notes</strong></p> <ul> <li>lein new compojure little_ring_things</li> <li>Leiningen</li> <li>Compojure</li> <li>Jetty</li> <li>project.clj</li> <li>Tomcat</li> <li>Java Servelets</li> </ul> </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d5564-3fb6-74e6-a073-2bac09d33fd0" data-entry-link="https://clojure-diary.gitlab.io/2026/03/31/learn-ring-6-leiningen-compojure-jetty.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojure-diary.gitlab.io/2026/03/31/learn-ring-6-leiningen-compojure-jetty.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d5564-3fb6-74e6-a073-2bac09d33fd0" data-phx-link="redirect" data-phx-link-state="push" title="Learn Ring - 6. Leiningen, Compojure, Jetty." class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Learn Ring - 6. Leiningen, Compojure, Jetty."> Learn Ring - 6. Leiningen, Compojure, Jetty. </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="31 Mar 2026 at 10:58 AM UTC"> 31 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><strong>Notes</strong></p> <ul> <li>lein new compojure little_ring_things</li> <li>Leiningen</li> <li>Compojure</li> <li>Jetty</li> <li>project.clj</li> <li>Tomcat</li> <li>Java Servelets</li> </ul> </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d48cb-1846-79a9-bd08-c58a07971f78" data-entry-link="https://ericnormand.substack.com/p/code-mundane-and-sublime"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://ericnormand.substack.com/p/code-mundane-and-sublime" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d48cb-1846-79a9-bd08-c58a07971f78" data-phx-link="redirect" data-phx-link-state="push" title="Code, Mundane and Sublime" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Code, Mundane and Sublime"> Code, Mundane and Sublime </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="31 Mar 2026 at 10:03 AM UTC"> 31 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><em>Check out the </em>Clojure: The Documentary<em> trailer! We’re so lucky to have a documentary made about how Clojure came about and what people love about it.</em></p><p>Let me tell you a story about the beautiful possibilities and the mundane real</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d48cb-1846-7a2f-b56c-ce48eb76a713" data-entry-link="https://serefayar.substack.com/p/ayatori-agent-orchestration-engine-in-clojure"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://serefayar.substack.com/p/ayatori-agent-orchestration-engine-in-clojure" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d48cb-1846-7a2f-b56c-ce48eb76a713" data-phx-link="redirect" data-phx-link-state="push" title="Ayatori: An Experimental Agent Orchestration Engine in Clojure" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Ayatori: An Experimental Agent Orchestration Engine in Clojure"> Ayatori: An Experimental Agent Orchestration Engine in Clojure </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="30 Mar 2026 at 06:42 AM UTC"> 30 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p>This started as a simple question: what is an agent framework actually doing?</p><p>A few months ago I built a minimal agent engine from scratch in Clojure to find out. That engine used a graph model: nodes were pure functions, edges defined routing, a</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d48cb-1846-7bd5-9c93-8f2f4c530ada" data-entry-link="https://clojure.org/news/2026/03/30/zero_to_repl"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojure.org/news/2026/03/30/zero_to_repl" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d48cb-1846-7bd5-9c93-8f2f4c530ada" data-phx-link="redirect" data-phx-link-state="push" title="Clojure Zero to REPL Video" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Clojure Zero to REPL Video"> Clojure Zero to REPL Video </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="30 Mar 2026 at 12:00 AM UTC"> 30 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><strong>Clojure: Zero to REPL</strong></p> <p>As part of the Clojure team’s efforts to improve the onboarding experience for new users, we have recorded a step-by-step tutorial taking you from zero to a running REPL.</p> <p>The video begins with instal</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d3c50-cf80-7a5a-b31d-25beb17263ee" data-entry-link="https://clojure-diary.gitlab.io/2026/03/28/learn-ring-4-ring-init.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojure-diary.gitlab.io/2026/03/28/learn-ring-4-ring-init.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d3c50-cf80-7a5a-b31d-25beb17263ee" data-phx-link="redirect" data-phx-link-state="push" title="Learn ring - 4. Ring Init" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Learn ring - 4. Ring Init"> Learn ring - 4. Ring Init </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="28 Mar 2026 at 01:58 AM UTC"> 28 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><strong>Notes</strong></p> <ul> <li>Install Leiningen https://leiningen.org/</li> <li>Calva https://calva.io/</li> <li>Creating an ring app lein new compojure little_ring_things</li> <li>Do a git init, commit the code <ul> <li>git init <ul> <li></li></ul></li></ul></li></ul>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d3018-1f1c-7bda-abd2-a24cf0cc9d26" data-entry-link="https://buttondown.com/tensegritics-curiosities/archive/when-you-run-out-of-types/"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://buttondown.com/tensegritics-curiosities/archive/when-you-run-out-of-types/" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d3018-1f1c-7bda-abd2-a24cf0cc9d26" data-phx-link="redirect" data-phx-link-state="push" title="When You Run Out of Types..." class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="When You Run Out of Types..."> When You Run Out of Types... </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="27 Mar 2026 at 01:09 PM UTC"> 27 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><strong>by cgrand (🦋 🦣 𝕏)</strong></p> <p>There is a modeling technique I’ve used in the past, and the more I use it, the more it feels like the right default in a certain class of problems.</p> <p>The situation is simple enough: you model with data, h</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d3c50-cf80-7ba1-8875-2dc990042a0e" data-entry-link="https://clojurecivitas.org/ezmiller/relaunching_tablecloth_time.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojurecivitas.org/ezmiller/relaunching_tablecloth_time.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d3c50-cf80-7ba1-8875-2dc990042a0e" data-phx-link="redirect" data-phx-link-state="push" title="Relaunching tablecloth.time: Composability over Abstraction" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Relaunching tablecloth.time: Composability over Abstraction"> Relaunching tablecloth.time: Composability over Abstraction </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="27 Mar 2026 at 12:00 AM UTC"> 27 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> A composable approach to time series analysis in Clojure </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d28b0-0723-7dc7-83a6-40443461176b" data-entry-link="https://clojure-diary.gitlab.io/2026/03/26/learn-ring-3-prerequisite.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojure-diary.gitlab.io/2026/03/26/learn-ring-3-prerequisite.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d28b0-0723-7dc7-83a6-40443461176b" data-phx-link="redirect" data-phx-link-state="push" title="Learn Ring - 3. Prerequisite" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Learn Ring - 3. Prerequisite"> Learn Ring - 3. Prerequisite </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="26 Mar 2026 at 01:56 AM UTC"> 26 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><strong>Notes</strong></p> <ul> <li>Prerequisite <ul> <li>git <ul> <li>https://git-scm.com/ </li> </ul> </li> <li>IDE <ul> <li>VSCode <ul> <li>https://code.visualstudio.com/</li> </ul> </li> <li>Antigravity <ul> <li>https://antigravity.google/</li></ul></li></ul></li></ul></li></ul>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d3018-1f1d-7168-add3-69091686d9cf" data-entry-link="https://clojure.org/news/2026/03/26/documentary_trailer"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojure.org/news/2026/03/26/documentary_trailer" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d3018-1f1d-7168-add3-69091686d9cf" data-phx-link="redirect" data-phx-link-state="push" title="Clojure Documentary Trailer (Mar 26, 2026)" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Clojure Documentary Trailer (Mar 26, 2026)"> Clojure Documentary Trailer (Mar 26, 2026) </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="26 Mar 2026 at 12:00 AM UTC"> 26 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><strong>Clojure: The Official Documentary</strong> premieres April 16th!</p> <p>From a two-year sabbatical and a stubborn idea to powering the engineering stack of one of the world’s largest fintech companies — this is the story of Clojure.</p> <p>Feat</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d3c50-cf81-71ef-86ac-3781ab2fdbc6" data-entry-link="http://blog.danieljanus.pl/2026/03/26/claude-nlp/"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="http://blog.danieljanus.pl/2026/03/26/claude-nlp/" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d3c50-cf81-71ef-86ac-3781ab2fdbc6" data-phx-link="redirect" data-phx-link-state="push" title="Translating non-trivial codebases with Claude" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Translating non-trivial codebases with Claude"> Translating non-trivial codebases with Claude </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="26 Mar 2026 at 12:00 AM UTC"> 26 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> I was wrong (or was I?)<p>In my last post, I stated:</p><p>I don’t think it’s <em>[me writing about LLMs]</em> likely to happen anytime soon: I prefer to write about things that I’m excited about.</p><p>I was wrong. And right at the same time. Here comes </p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d28b0-0724-7066-aaf1-ba086f6a3233" data-entry-link="https://datahike.io/notes/collaborate-without-infrastructure/"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://datahike.io/notes/collaborate-without-infrastructure/" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d28b0-0724-7066-aaf1-ba086f6a3233" data-phx-link="redirect" data-phx-link-state="push" title="Memory That Collaborates" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Memory That Collaborates"> Memory That Collaborates </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="25 Mar 2026 at 11:00 PM UTC"> 25 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> Memory That Collaborates <p><em>March 2026</em></p> <p>When two teams need to combine data, the usual answer is infrastructure: an ETL pipeline, an API, a message bus. Each adds latency, maintenance burden, and a new failure mode. The data moves because t</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d28b0-0724-70f6-b06f-a0315e589c50" data-entry-link="https://flexiana.com/machine-learning-architecture/llm-integration-for-internal-tools-saas-products-2026-strategy-guide"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://flexiana.com/machine-learning-architecture/llm-integration-for-internal-tools-saas-products-2026-strategy-guide" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d28b0-0724-70f6-b06f-a0315e589c50" data-phx-link="redirect" data-phx-link-state="push" title="LLM Integration for Internal Tools &amp; SaaS Products (2026 Strategy Guide)" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="LLM Integration for Internal Tools &amp; SaaS Products (2026 Strategy Guide)"> LLM Integration for Internal Tools &amp; SaaS Products (2026 Strategy Guide) </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="25 Mar 2026 at 01:22 PM UTC"> 25 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p>By 2026, <strong><em>AI software development</em></strong> with a native LLM layer is not an extra feature anymore- it is the standard requirement. In fact, <strong><em>LLM integration for SaaS</em></strong> has become the standard for modern platforms</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d28b0-0724-732e-8623-f548bc4817eb" data-entry-link="https://www.loicb.dev/blog/from-functions-to-data-evolving-a-pull-pattern-api"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://www.loicb.dev/blog/from-functions-to-data-evolving-a-pull-pattern-api" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d28b0-0724-732e-8623-f548bc4817eb" data-phx-link="redirect" data-phx-link-state="push" title="From Functions to Data - Evolving a Pull-Pattern API" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="From Functions to Data - Evolving a Pull-Pattern API"> From Functions to Data - Evolving a Pull-Pattern API </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="25 Mar 2026 at 10:00 AM UTC"> 25 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> Context <p>We built our pull-pattern API on lasagna-pull, a library designed by Robert Luo that lets clients send EDN patterns to describe what data they want. The core pattern-matching engine is solid. But as we added more resources, roles, and mutation </p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d28b0-0724-73c2-ad83-70d016d831cd" data-entry-link="https://www.loicb.dev/blog/clojure-protocols-and-the-decorator-pattern"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://www.loicb.dev/blog/clojure-protocols-and-the-decorator-pattern" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d28b0-0724-73c2-ad83-70d016d831cd" data-phx-link="redirect" data-phx-link-state="push" title="Clojure Protocols and the Decorator Pattern" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Clojure Protocols and the Decorator Pattern"> Clojure Protocols and the Decorator Pattern </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="25 Mar 2026 at 10:00 AM UTC"> 25 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> Context <p>Clojure's built-in functions work on built-in types because those types implement specific Java interfaces. get works on maps because maps implement ILookup. seq works on vectors because vectors implement Seqable. count works on both becaus</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d3018-1f1d-769a-9e1f-3e3dcd7f3cca" data-entry-link="https://www.clojuriststogether.org/news/annually-funded-developers-update-january-february-2026/"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://www.clojuriststogether.org/news/annually-funded-developers-update-january-february-2026/" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d3018-1f1d-769a-9e1f-3e3dcd7f3cca" data-phx-link="redirect" data-phx-link-state="push" title="Annually-Funded Developers' Update: January &amp; February 2026" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Annually-Funded Developers' Update: January &amp; February 2026"> Annually-Funded Developers' Update: January &amp; February 2026 </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="25 Mar 2026 at 02:00 AM UTC"> 25 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p>Hello Fellow Clojurists!</p> <p>This is the first of six reports from the developers who are receiving annual funding for 2026. We’ve also added in the final FastMath report from Thomas Clark (Q3 2025 project). There is a lot of great work here - so ha</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d28b0-0724-779d-a644-09c4901a537f" data-entry-link="https://cassiel.com/2026/03/24/ultra-process/"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://cassiel.com/2026/03/24/ultra-process/" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d28b0-0724-779d-a644-09c4901a537f" data-phx-link="redirect" data-phx-link-state="push" title="Ultra Process 2" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Ultra Process 2"> Ultra Process 2 </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="24 Mar 2026 at 12:00 AM UTC"> 24 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p>Another Ultra Process gig for The Printer Jam.</p> <p>Venue: Folklore, Hoxton.</p> <p>Tickets here.</p> <p>Image credit: Evan Raskob.</p> </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d2108-63a0-78ac-9839-9d726bfafcda" data-entry-link="https://clojure-diary.gitlab.io/2026/03/23/learn-ring-02-who-am-i.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojure-diary.gitlab.io/2026/03/23/learn-ring-02-who-am-i.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d2108-63a0-78ac-9839-9d726bfafcda" data-phx-link="redirect" data-phx-link-state="push" title="Learn Ring - 02. Who Am I?" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Learn Ring - 02. Who Am I?"> Learn Ring - 02. Who Am I? </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="23 Mar 2026 at 03:53 AM UTC"> 23 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><strong>Notes</strong></p> <ul> <li>Freelancer</li> <li>Karthikeyan A K (Car + Thick) <ul> <li>Chennai, India</li> </ul> </li> <li>Tech freak</li> <li>Web Developer <ul> <li>Ruby on Rails</li> </ul> </li> <li>Data Scientist <ul> <li>SciCloj Book: Stats</li></ul></li></ul>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d2108-63a0-7aa7-9550-1649c2ea57ad" data-entry-link="https://davidvujic.blogspot.com/2026/03/the-tools-of-an-agentic-engineer.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://davidvujic.blogspot.com/2026/03/the-tools-of-an-agentic-engineer.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d2108-63a0-7aa7-9550-1649c2ea57ad" data-phx-link="redirect" data-phx-link-state="push" title="The tools of an Agentic Engineer" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="The tools of an Agentic Engineer"> The tools of an Agentic Engineer </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="22 Mar 2026 at 12:46 PM UTC"> 22 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p> A lot of great things have origins from the 1970s: <strong>Hip Hop</strong> redefining music and street culture, <strong>Bruce Lee</strong> was taking Martial Arts to the next level and the initial development of something called <strong>editor macros</strong></p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d0b8d-1466-7840-8a82-d14b7bc8b30a" data-entry-link="https://jobs.braveclojure.com/company/pitch-software-gmbh/listing/senior-product-engineer-frontend-clojurescript/Md4LjIakdjG5J1oQ3aCxv"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://jobs.braveclojure.com/company/pitch-software-gmbh/listing/senior-product-engineer-frontend-clojurescript/Md4LjIakdjG5J1oQ3aCxv" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d0b8d-1466-7840-8a82-d14b7bc8b30a" data-phx-link="redirect" data-phx-link-state="push" title="Senior Frontend Engineer (ClojureScript) at Pitch Software GmbH" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Senior Frontend Engineer (ClojureScript) at Pitch Software GmbH"> Senior Frontend Engineer (ClojureScript) at Pitch Software GmbH </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="22 Mar 2026 at 05:10 AM UTC"> 22 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> Senior Frontend Engineer (ClojureScript) at Pitch Software GmbH<br /><p><strong>The Role</strong></p><p>We're looking for a senior engineer with deep ClojureScript expertise to work directly with our CTO and leadership team on high-impact technical ini</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d13c9-9ca5-7e03-9831-765d9e23ea25" data-entry-link="https://clojure-diary.gitlab.io/2026/03/21/learn-ring-01-why-this-course.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojure-diary.gitlab.io/2026/03/21/learn-ring-01-why-this-course.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d13c9-9ca5-7e03-9831-765d9e23ea25" data-phx-link="redirect" data-phx-link-state="push" title="Learn Ring - 01. Why This Course?" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Learn Ring - 01. Why This Course?"> Learn Ring - 01. Why This Course? </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="21 Mar 2026 at 08:05 AM UTC"> 21 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><strong>Notes</strong></p> <ul> <li>I am.a web developer</li> <li>Most of my money came from Ruby on Rails</li> <li>Clojure blew me off <ul> <li>Pulled me away from Julia</li> <li>Writing a stock trading bot</li> </ul> </li> <li>My ring success <ul></ul></li></ul>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d13c9-9ca5-7fef-b8d5-104f7d973c67" data-entry-link="https://clojurecivitas.org/math/sets/negative_sets.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojurecivitas.org/math/sets/negative_sets.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d13c9-9ca5-7fef-b8d5-104f7d973c67" data-phx-link="redirect" data-phx-link-state="push" title="Negative Sets as Data" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Negative Sets as Data"> Negative Sets as Data </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="21 Mar 2026 at 12:00 AM UTC"> 21 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> Cofinite sets with one sentinel key: all set operations reduce to three map primitives. </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d13c9-9ca6-706f-ad8d-ab810b8d17d2" data-entry-link="https://dev.to/deusdata/how-i-cut-my-ai-coding-agents-token-usage-by-120x-with-a-code-knowledge-graph-4a3d"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://dev.to/deusdata/how-i-cut-my-ai-coding-agents-token-usage-by-120x-with-a-code-knowledge-graph-4a3d" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d13c9-9ca6-706f-ad8d-ab810b8d17d2" data-phx-link="redirect" data-phx-link-state="push" title="How I Cut My AI Coding Agent's Token Usage by 120x With a Code Knowledge Graph" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="How I Cut My AI Coding Agent's Token Usage by 120x With a Code Knowledge Graph"> How I Cut My AI Coding Agent's Token Usage by 120x With a Code Knowledge Graph </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="20 Mar 2026 at 07:58 PM UTC"> 20 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p>AI coding agents are powerful — but they're also blind. Every time Claude Code, Codex, or Gemini CLI needs to understand your codebase, they explore it file by file. Grep here, read there, grep again. For a simple question like "what calls Pro</p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d0b8d-1466-7738-8c0c-9ab2dbdc478c" data-entry-link="https://clojure-diary.gitlab.io/2026/03/20/project-clj-in-initial-ring-app.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojure-diary.gitlab.io/2026/03/20/project-clj-in-initial-ring-app.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d0b8d-1466-7738-8c0c-9ab2dbdc478c" data-phx-link="redirect" data-phx-link-state="push" title="project.clj in initial ring app" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="project.clj in initial ring app"> project.clj in initial ring app </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="20 Mar 2026 at 06:42 AM UTC"> 20 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> (defproject little_ring_things "0.1.0-SNAPSHOT" :description "FIXME: write description" :url "http://example.com/FIXME" :min-lein-version "2.0.0" :dependencies [[org.clojure/clojure "1.10.0"] [compojure &q… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d0b8d-1466-78ed-9e87-31a8345d3ada" data-entry-link="https://clojure-diary.gitlab.io/2026/03/20/whats-jetty.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://clojure-diary.gitlab.io/2026/03/20/whats-jetty.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d0b8d-1466-78ed-9e87-31a8345d3ada" data-phx-link="redirect" data-phx-link-state="push" title="What’s Jetty?" class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="What’s Jetty?"> What’s Jetty? </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="20 Mar 2026 at 04:09 AM UTC"> 20 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> <p><strong>Jetty</strong> is an open-source Java-based HTTP server and servlet container. It’s what actually listens on a port, accepts incoming HTTP requests, and hands them off to your application.</p> <p><strong>In the context of Clojure/Ring:</strong></p>… </div> </div> <div class="bg-white/90 dark:bg-slate-800 border border-stone-300 dark:border-slate-700 rounded-lg hover:shadow-md transition-shadow relative p-3" data-entry-card="true" data-entry-id="019d2108-63a0-7f6e-a4c9-31bd542acb33" data-entry-link="https://www.evalapply.org/posts/side-step-secretary-problem-hiring/index.html"> <div class="flex items-start justify-between gap-1"> <div class="flex items-start gap-2 flex-1 min-w-0"> <a href="https://www.evalapply.org/posts/side-step-secretary-problem-hiring/index.html" target="_blank" rel="noopener noreferrer" title="Visit original article" class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300 visited:text-purple-600 dark:visited:text-purple-400 transition-colors flex-shrink-0 mt-0.5"> <span class="hero-arrow-top-right-on-square h-5 w-5"></span> </a> <a href="/app/entry/019d2108-63a0-7f6e-a4c9-31bd542acb33" data-phx-link="redirect" data-phx-link-state="push" title="Side-stepping the Secretary Problem, unwittingly." class="font-medium flex-1 min-w-0 text-blue-600 dark:text-blue-400 hover:underline visited:text-purple-600 dark:visited:text-purple-400 cursor-pointer truncate text-lg" data-long-press-title="true" data-title-text="Side-stepping the Secretary Problem, unwittingly."> Side-stepping the Secretary Problem, unwittingly. </a> </div> <div class="flex items-center gap-2 flex-shrink-0"> <div class="text-sm text-stone-500 dark:text-slate-500" title="20 Mar 2026 at 12:00 AM UTC"> 20 Mar </div> </div> </div> <div class="mt-1 text-stone-600 dark:text-slate-400 prose prose-sm dark:prose-invert max-w-none"> Having played both parts in the kabuki play that is employee-employer matchmaking, I feel the way we play it is a zero-sum game. I wish it were not so. When this post started life in 2024, as a wall of text chat message, it was brutal out there, on both s… </div> </div> </div> <div class="flex items-center justify-center gap-4 mt-6"> <span class="px-4 py-2 text-sm font-medium rounded-lg opacity-50 cursor-not-allowed bg-stone-800 dark:bg-slate-700 text-white"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-4 w-4 inline mr-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"></path> </svg> Previous </span> <span class="text-sm text-stone-600 dark:text-slate-400"> Page 1 of 4 </span> <a href="?page=2" class="px-4 py-2 text-sm font-medium rounded-lg transition-colors bg-stone-800 dark:bg-slate-700 text-white hover:bg-stone-700 dark:hover:bg-slate-600"> Next <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-4 w-4 inline ml-1"> <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3"></path> </svg> </a> </div> </div> </main> </div> </div> <footer class="w-full border-t border-stone-300 dark:border-slate-700 py-4 mt-auto"> <div class="px-4 sm:px-6 lg:px-8"> <div class="mx-auto max-w-2xl"> <p class="text-center text-sm text-stone-600 dark:text-slate-400"> PopFeeds v0.6.4 (7c49c350d) </p> </div> </div> </footer> </body> </html>