Live data from Hacker News

Embracing the parallel coding agent lifestyle

simonwillison.net

131–140 of 147 posts

Re: Embracing the parallel coding agent lifestyle

#131
post #116

Earlier quoted context omitted.

We’re in the alchemist phase. If I’m being charitable, the medieval stone mason phase. One thing worth pointing out is that the pre-engineering building large structures phase lasted a long time, and building collapses killed a lot of people while we tried to work out the theory. Also it wasn’t really the stone masons who worked out the theory, and many of them were resistant to it.

While alchemy was mostly para-religious wishful thinking, stone masonry has a lot in common with what I want to express: it‘s the tinkering that is accessible to everyone who can lay their hands onto the tools. But I still think the age of nuclear revolution is a better comparison due to a couple of reasons, most importantly the number of very fast feedback loops. While it might have taken years to even build a new i…

The inherently chaotic nature of system makes stable results very difficult. Combine that with the non deterministic nature of all the major production models. Then you have the fact that new models are coming out every few months, and we have no objective metrics for measuring software quality.

Oh and benchmarks for functional performance measurement tend to leak into training data.

Put all those together and I’d bet half of my retirement accounts that the we’re still in the reading chicken entrails phase 20 years from now.

Re: Embracing the parallel coding agent lifestyle

#132
post #64

Earlier quoted context omitted.

Or you put them to work with strong test suites and get stuff done. I am in bed. I have Claude fixing complex compiler bugs right now. It has "earned" that privilege by proving it can make good enough fixes, systematically removing actual, real bugs in reasonable ways by being given an immutable test suite and detailed instructions of the approach to follow. There's no gambling involved. The results need to be checke…

The best way to get decent core I've found is test suites and a ton of linting rules.

Absolutely true re: ton of linting rules. In Ruby for example, Claude has a tendency to do horrific stuff like using instance_variable_get("@somevar") to avoid lack of accessors, instead of figuring out why there isn't an accessor, or adding one... A lot can even be achieved with pretty ad hoc hooks that don't do full linting but greps for things that are suspicious, and inject "questions" about whether X is really the appropriate way to do it, given rule Y in [some ruleset].

Re: Embracing the parallel coding agent lifestyle

#133
post #50

Earlier quoted context omitted.

I tried "give me feedback on this blog post like you're a cynical Hacker News commenter" one time and Claude roasted me so hard I decided never to try that again!

Were the roasts correct?

A couple of the points made were quite useful, but the tone was mean!

Re: Embracing the parallel coding agent lifestyle

#134

I do this every day! In fact, I built a new type of IDE around this ( https://github.com/stravu/crystal ) and I can never go back.

Does anybody have something like this but usable in a remote environment like a self-hosted k8s?

Specifically, I'm looking for something I can leave running while sporadically connecting from a remote VSCode or electron app.

Re: Embracing the parallel coding agent lifestyle

#135

I can't seem to get myself to focus when one of these things is running. I transition into low effort mode. Because of this I've decided to have my good hours of the day LLM free, and then in my crappy hours I'll have one of these running.

This is why I uninstalled Cursor and moving to the terminal with Claude Code. I felt I had more control to reduce the noise from LLMs. Before, I noticed that some hours were just wasted looking at the model output and iterating. Not sure if I improved using agents over time, or just having it in a separate window forces you to use them only when you need. Having it in the IDE seems the "natural" way to start somethin…

Why Helix specifically, besides the fact that it’s cool? I’m looking for a reason to try it, but the value props seem really far down the list of usability issues that are important to me.

Re: Embracing the parallel coding agent lifestyle

#136
post #128
post #92

Earlier quoted context omitted.

Just curious, how do you go about making the test suite immutable? Was just reading this earlier today... https://news.ycombinator.com/item?id=45525085

Just don't give it write access, and rig it up so that you gate success on a file generated by running the test suite separate from the agent that it can't influence. It can tell me it has fixed things as much as it like, but until the tests actually passes it will just get told the problem still exists, to document the approach it tested and to document that it didn't work, and try again.

Appreciate the exposition, great ideas here. It's fascinating how the relationship between human and machine has become almost adversarial here!

Re: Embracing the parallel coding agent lifestyle

#137
post #55

I'm very happy to see the article covering the high labor costs of reviewing code. This may just be my neurodivergent self but I find code in the specific style I write to be much easier to quickly verify since there are habits and customs (very functional leaning) I have around how I approach specific tasks and can easily handwave seeing a certain style of function with the "Let me just double check that I wrote tha…

I have similar OCD behaviors which make reviewing difficult (regardless of AI or coworker code). specifically: * Excessive indentation / conditional control flow * Too verbose error handling, eg: catching every exception and wrapping. * Absence of typing AND precise documentation, i.e stringly-typed / dictly-typed stuff. * Hacky stuff. i.e using regex where actual parser from stdlib could've been used. * Excessive ad…

> catching every exception and wrapping

Our company introduced Q into our review process and it is insane how aggressive Q is about introducing completely inane try catch blocks - often swallowing exceptions in a manner that prevents their proper logging. I can understand wanting to be explicit about exception bubbling and requiring patterns like `try { ... } catch (SpecificException e) { throw e; }` to force awareness of what exceptions may be bubbling up passed the current level but Q often just suggests catch blocks of `{ print e.message; }` which has never been a preferred approach anywhere I have worked.

Q in particular is pretty silly about exceptions in general - it's nice to hear this isn't just us experiencing that!

Re: Embracing the parallel coding agent lifestyle

#138
post #4

Git worktrees are global mutable state; all containers on your laptop are contending on the same git database. This has a couple of rough edges, but you can work around it. I prefer instead to make shallow checkouts for my LXC containers, then my main repo can just pull from those. This works just like you expect, without weird worktree issues. The container here is actually providing a security boundary. With a work…

Cool. Operationally, are you using some host-resident non-shallow repo as your point of centralization for the containers, or are you using a central network-hosted repo (like github)? If the former, how are you getting the shallow clones to the container/mount, before you start the containerized agent? And when the agent is done, are you then adding its updated shallow clones as remotes to that “central” local repos…

The former. I clone from file:// URIs.

I just have the file path to the inside of my LXC container. If you're using Docker you can just mount it. I only need the path twice (for clone, and for adding a git remote). After that I just use git to reference the remote for everything.

I probably don't have the perfect workflow here. Especially if you're spinning up/down Docker containers constantly. I'm basically performing a Torvalds role play, where I have lieutenant AI agents asking me to pull their trees.

Re: Embracing the parallel coding agent lifestyle

#140
post #11

We are at a weird moment where the latency of the response is slow enough that we're anthropomorphizing AI code assistants into employees. We don't talk about image generation this way. With images, its batching up a few jobs and reviewing the results later. We don't say "I spun up a bunch of AI artists."

a lot of coding tasks involve looking stuff up, so that latency of loading and rendering and using a page is the bottleneck.
Post reply on HN