- The lethal trifecta for AI agents: private data, untrusted content, and external communication - Simon Willison
- Some thoughts on LLMs and Software Development - Martin Fowler
My former colleague Rebecca Parsons, has been saying for a long time that hallucinations aren’t a bug of LLMs, they are a feature. Indeed they are the feature. All an LLM does is produce hallucinations, it’s just that we find some of them useful.
- Getting Started with Leiningen: A Beginner’s Guide - Andrey Fadeev - Post
- Getting Started with Leiningen: A Beginner’s Guide - Andrey Fadeev - YouTube video
- Porting Portal to Basilisp - Chris Badahdah
- Growing the Java Language - Brian Goetz - JVM Language Summit 2025
- Kill-Safe Synchronization Abstractions
- Paper - Matthew Flatt and Robert Bruce Findler
- Am I becoming obsolete or just older? - Andrey Listopadov
- Layers of lawyers and liars - Matthew Butterick
- HTTP/1.1 must die: the desync endgame - James Kettle
- HTTP/2: The Sequel is Always Worse - James Kettle
- A Conjure Piglet Client - Laurence Chen
- No build step ClojureScript + nREPL with Scittle and cljs-josh - mccormix
- Scittle ClojureScript Game Menu Template - mccormix
- UTF-8 Format Basics - Aidan Olsen
- Automatic Syntax Error Recovery - Laurence Tratt
- Functional Core, Imperative Shell - Gary Bernhardt
- Functional Core, Imperative Shell - refactoring kata
- Library patterns: Why frameworks are evil - Tomas Petricek
- Designing extendable data applications
I like static typing — I really do.
But the love fades when I have to build large domain entities.
I’ve been building supply chain management systems for decades, modeling complex domains with tens or even hundreds of properties. In long-lived data applications, one truth becomes clear: we want to extend code, not change it.
Code mutation sends ripples through the system — and often breaks it. The programming industry has largely solved code modularity, yet we remain stuck with monolithic data structures. Code and data are glued together.
Many business applications today are fragile because they rely on structs, records, and classes. Yes, these give compile-time safety — but also rigid, hard-to-extend designs.
For me, the practical solution is simple: build entities on maps. You can add new properties to an existing map, or combine maps to create new, derived ones.
- Managing Complexity - Or "Why do you code in F#?" - Anthony Lloyd
- Easy-J - An Introduction to the World’s most Remarkable Programming Language - Linda Alvord and Norman Thomson
- Learning J - Roger Stokes
- J for C Programmers - Henry Rich
- J Reference Card
- Dissect - visualizing J sentence execution
- J Playground - try J in a web browser
- How to Write Computer Programs - John Scholes
- Programming Language Pragmatics Videos
- The power of the :deps alias - Sean Corfield
- Comparison of Common Lisp Testing Frameworks - Sabra Crolleton
- manp.gs - man pages
- Uiua Tutorial
- How the Uiua Logo Works
- The J Primer
- Internal Reprogrammability - Martin Fowler
- Boundaries - Gary Bernhardt - RubyConf 2012
- Do Programming Language Features Deliver on their Promises - Aaron Hsu - LambdaConf 2025
- Does APL Need a Type System? - Aaron W Hsu - FunctionalConf 2018
- in which a surprising affinity is pondered - Technomancy
- In Defence of Doubles - Anthony Lloyd
- The happy state of property-based testing in C# - Anthony Lloyd
- Why should you use a random testing library in C#? - Anthony Lloyd
- Integrated Random Testing - Anthony Lloyd
- The sad state of property-based testing libraries - Stevan A
- The Shrinking Challenge
Comparing shrinking approaches and performance across different PBT libraries
- I Snuck Clojure Into Work - Trev
- Multiplayer game with nbb and datastar - Gregory Bleiker
- Clojure vs. The Static Typing World - Eric Normand
- ZFS won’t save you: fancy filesystem fanatics need to get a clue about bit rot (and RAID-5) - Jody Bruchon
- Rasmussen and practical drift - Drift towards danger and the normalization of deviance - Eric Marsden
- Protocols, Not Platforms: A Technological Approach to Free Speech - Mike Masnick
- Do-nothing scripting: the key to gradual automation - Dan Slimmon
- Storage Media Life Expectancy: SSDs, HDDs & More! - Explaining Computers
- Shearing Layers Applied to the Web - Dorian Taylor
- The Speed of Information Architecture - Peter Morville