HNHacker News
TopNewBestAskShowJobs

zmj

903 karma · joined July 11, 2011

On chatbots: https://zmj.dev/author_assistant.html

RMNP hiking photography: https://hiking.zmj.dev

Go radix tree: https://pkg.go.dev/github.com/zmj/radixtree

C# rsync delta: https://github.com/zmj/rsync-delta

C# SQLite wrapper: https://www.nuget.org/packages/Sqlite.Fast/

submissionscomments
zmj··on Dev-owned testing: Why it fails in practice and succeeds in theory
At scale, every test is flaky.
zmj··on A deep dive on agent sandboxes
devcontainers, devcontainers, devcontainers
zmj··on Don't fall into the anti-AI hype
My experience with agents in larger / older codebases is that feedback loops are critical. They'll get it somewhere in the neighborhood of right on the first attempt; it's up to your prompt and tooling to guide them to improve it on correctness and quality. Basic checks: can the agent run the app, interact with it, and observe its state? If not, you probably won't get working code. Quality checks: by default, you'll get the same code quality as the code the agent reads while it's working; if your linters and prompts don't guide it towards your desired style, you won't get it.

To put that another way: one-shots attempts aren't where the win is in big codebases. Repeat iteration is, as long as your tooling steers it in the right direction.

zmj··on Start your meetings at 5 minutes past
A friend of mine built something for this: https://howmuch.poiesic.com/
zmj··on Go away Python
I wrote my first one of these today (making a tool for agents in a c# codebase). Pretty good experience, though AOT does still have some rough edges.
zmj··on Karpathy on Programming: “I've never felt this much behind”
Yes-ish. It's worth keeping up with the rising tide of model capabilities, but it's not worth stressing over eliciting every last drop. Many of the specific techniques that add value today will be wasted effort with smarter models in a month or two.
zmj··on Ask HN: How are you sandboxing coding agents?
devcontainers, without credentials to the git remote.
zmj··on Comptime – C# meta-programming with compile-time code generation and evaluation
Those collections are more like copy-on-write than actual immutable. System.Collections.Frozen is the real thing.
zmj··on Believe the Checkbook
Do people reading this post not understand that this is the output of a prompt like 'analyze <event> with <perspective> arriving at <conclusion>'? Tighten up your epistemology if you're arguing with an author who isn't there.
zmj··on Idempotency keys for exactly-once processing
I like the uuid v7 approach - being able to reject messages that have aged past the idempotency key retention period is a nice safeguard.
zmj··on How good engineers write bad code at big companies
My feeling when I found this blog was "so I'm NOT the only one!". It's the painful truth about staff+ engineering that I've also experienced, but haven't felt safe to talk about.

You're not wrong that there's something cynical or nihilistic about it. The core thesis is "do what the company wants, even if it's not what they should want". That idea may be unpalatable, but getting ground up in the corporate gears is worse.

zmj··on Tell HN: Happy Thanksgiving
Thanks, mods. As a moderator of a relatively popular WoW forum back in its heyday, your work is seen and appreciated.
zmj··on Reinventing how .NET builds and ships (again)
Recent experience report: I updated four of my team's five owned microservices to .net 10 over the past two weeks. All were previously on .net 8 or 9. The update was smooth: for the .net 9 services, I only had to update our base container images and the csproj target frameworks. For the .net 8 services, I also had to update the Mvc.Testing reference in their integration tests.

It's hard for me to imagine a version increment being much easier than this.

zmj··on Cloudflare outage on November 18, 2025 post mortem
Everything has a limit. You can define it, or be surprised when you find out what it is.
zmj··on Go's Sweet 16
I'm glad Go exists. If nothing else, it cemented that tooling is at least as important as the language.
zmj··on Show HN: Tusk Drift – Open-source tool for automating API tests
How do you handle expiring data, like JWTs?
zmj··on The best worst hack that saved our bacon
If you're not doing math with it, it's a string.
zmj··on 6 weeks of Claude Code
Your claude.md (or equivalent) is the best way to teach them. At the end of any non-trivial coding session, I'll ask for it to propose edits/additions to that file based on both the functional changes and the process we followed to get there.
zmj··on Asynchrony is not concurrency
That's because f2's result could depend on whether f1 has executed.
zmj··on The Author and the Assistant
I see many people learning to use chatbots as practical tools that don't understand the process that produces their output. They don't anticipate the way that output will be shaped by every detail of their request. This is an attempt to bridge that conceptual gap.
zmj··on Caching is an abstraction, not an optimization
This article is talking about single-writer, single-reader storage. I think it's correct in that context. Most of the hairy problems with caches don't come up until you're multi-writer, multi-reader.
zmj··on Why JPEGs still rule the web (2024)
I recently reencoded my photography archive to webp. It's a static site hosted from S3. I was pretty happy with the size reduction.
zmj··on The Claude Bliss Attractor
There's already some experimental evidence that LLMs can be more persuasive than humans in the same context: https://www.science.org/content/article/unethical-ai-researc...

I don't think anyone can confidently make assertions about the upper bound on persuasiveness.

zmj··on Databricks in talks to acquire startup Neon for about $1B
> Someone at AWS probably thought about this, easy to provision serverless Postgres, and they just didn’t build it.

AWS is working on this as well: https://aws.amazon.com/blogs/database/introducing-amazon-aur...

zmj··on Rsync replaced with openrsync on macOS Sequoia
I implemented rsync's binary diff/patch in .NET several years ago: https://github.com/zmj/rsync-delta

It's a decent protocol, but it has shortcomings. I'd expect most future use cases for that kind of thing to reach for a content-defined chunking algorithm tuned towards their common file formats and sizes.

zmj··on AI 2027
If you described today's AI capabilities to someone from 3 years ago, that would also sound like science fiction. Extrapolate.
zmj··on Go Optimization Guide
Pretty similar story in .NET. Make sure your inner loops are allocation-free, then ensure allocations are short-lived, then clean up the long tail of large allocations.
zmj··on Most people don't care about quality
"the fucking article"
zmj··on Squirrels hunting and eating meat
Everything is an opportunistic carnivore. I once came across a turtle chowing down on a dead frog.
zmj··on Fun with Go Iterators
This is usually the case with C#'s equivalent as well. Enumerables and LINQ are nice options to concisely express logic, but you won't see them in hot paths.
← PreviousPage 2 of 9Next →