Joel Martin
banner
kanaka.bsky.social
Joel Martin
@kanaka.bsky.social
Creator of mal/make-a-lisp, noVNC, websockify, clj-protocol, conlink, instacheck, miniMAL, wam, wac, warpy, raft.js (github.com/kanaka).

Interested in Clojure, WebAssembly/wasm, AI/LLMs, JS, Rust, network protocols, web browsers, testing, etc.
And yes, the "large real-world value" is that I personally want this to work well right now.
December 1, 2025 at 7:26 PM
And to be clear, mal is in the training data and has been since the beginning (there are tells), and mal has almost 1000 tests. But it is still a notable milestone for me. And I have some private evals that also show a big jump in capability and code quality in the latest models.
November 26, 2025 at 4:14 PM
Sonnet 4.5 (in opencode) was a major step change for my unofficial eval: complete an implementation of a mal interpreter (all 11 steps), without any intervention. Previous models/agents couldn't get past the second step without help. This is a task that takes me 6-16 hours by hand (from scratch).
November 26, 2025 at 4:08 PM
Reposted by Joel Martin
Prototypes are the most powerfully tool I know of for increasing the productivity of conversations about what software should do and how it should work

They're tools for thinking
September 21, 2025 at 8:37 PM
Book added to my reading queue! BTW, if it's interesting I have a couple of posts on building really simple coding agents:
* LiteLLM based: kanaka.github.io/blog/litellm...
* llm library based: kanaka.github.io/blog/llm-age...
Code is MIT so feel to use, adapt, or reference it for concrete examples.
An LLM Coding Agent in 6 incremental steps and about 140 lines of python
I will show you how to create a working LLM coding agent in 6 incremental steps (and about 140 lines of code). We will use the python LiteLLM library and use Github Copilot which means all you need is...
kanaka.github.io
June 16, 2025 at 6:45 PM
Weird, I don't know why the embedded link card is broken. The full link in the post works though.
June 13, 2025 at 1:02 AM
I can recognize good writing but can't generate it easily. I can arrive at decent prose, but the phase from unstructured thoughts until first draft is 90% of the effort/time. I think I'm not alone.

Me: write notes
LLM: first draft
Me+LLM: update until well-written, well-structured, and in my voice.
May 8, 2025 at 6:10 PM
Reposted by Joel Martin
Completely agree - code is such an interesting application because you get a basic form of "fact checking" for free, unlike with prose simonwillison.net/2025/Mar/2/h...
Hallucinations in code are the least dangerous form of LLM mistakes
A surprisingly common complaint I see from developers who have tried using LLMs for code is that they encountered a hallucination—usually the LLM inventing a method or even a full …
simonwillison.net
May 8, 2025 at 4:41 PM
Reposted by Joel Martin
I think the one counterexample is that it's good at writing a lot of code, which is creating more text. My rough rule of thumb is that LLMs are good when it's easy to verify the output as correct, which is quite a lot of things
May 8, 2025 at 4:30 PM
I do a similar thing to determine which mal implementations to run tests for (parallel matrix strategy) depending on what files have changed: github.com/kanaka/mal/b... I could probably simplify my python filter script using that dorny action.
github.com
May 4, 2025 at 11:12 PM