HN user

vemv

2,028 karma
Posts11
Comments598
View on HN

What is a correct, bug-free program?

...It's one that does what a specific set of humans want. There's no other useful definition. One man's feature is another's bug.

It logically follows that there must be a human review step. How else would you know what the human wants, with sufficient detail?

Otherwise, there's an infinite number of undesired programs with passing test suites that AI can generate for you.

Suggestion, don't use your pinky. I haven't used it for over a decade. Instead, move your whole arm as a unit, and primarily use your index finger. It takes some adaptation, but movement is better than stillness the vast majority of times.

As for the tendinitis, have you tried physical therapy for your fingers? Whenever I've had a stupid day of overusing the thumb with my phone, I wrap the smallest possible elastic band around my thumb, and do some curls. Slow and controlled. The mixture of force, movement and stretching feels great, and the issue is gone.

Here is an example band https://www.decathlon.es/es/p/banda-elastica-5-kg-cross-trai... the important part is that it's really thin and light. It should look like a string, not a flat band.

Good coincidence, yesterday I switched to a split keyboard. I had been programming since 2011.

Main reason for my switch is that I felt that my shoulders have a wider stance than before. I don't know if it's because of an improvement in fitness (I do a lot of shoulder and back work), or maybe with age I lost a bit of shoulder internal rotation mobility.

Either way, the learning curve was like a few minutes for me. Guess it's a perk of experience and the habit of touch typing.

Yes. I'd swear that people that unfortunately fall into RSI also fall into a negative cycle of moving less and favoring a static position at all levels - fingers, wrists, shoulders.

Our bodies love movement and it's often a recipe for solving all sorts of issues.

It's not and I really doubt it will, for true SaaS platforms. A desktop .gif recorder (frequent example I've read about) is not a SaaS, even if you charge monthly for it.

Let's put an example an exception-tracking SaaS (Sentry, Rollbar). How do the economics of paying a few hundred bucks per month compare vs. allocating engineering resources to an in-house tracker? Think development time, infra investment, tokens, iteration, uptime, etc. And the opportunity cost of focusing on your original business instead.

One would quickly find out that the domain being replaced is far more complex and data-intensive than estimated.

Ralph is, very literally, vibe coding with extra steps.

If you'll code a demo MVP, one-off idea, etc, alright, go ahead, have your fun and waste your tokens.

However I'll be happy when the (forced) hype fades off as people realise that there's nothing novel, insightful or even well-defined behind Ralph.

Loops have always been possible. Coordination frameworks (for tracking TODOs, spawning agents, supervising completion, etc) too, and would be better embodied as a program instead of as an ad-hoc prompt.

At which point the "rest of the world" (everyone but the US) can just threaten Trump with making the US economically irrelevant?

That would seem a simple and peaceful solution to the Trump-inflicted bullying - stop messing around or we'll cease all commerce with you.

As I see it, just the bluff would suffice. Make the threat credible and the higher powers would remove Trump in a day or two.

How has Claude Code (as a CLI tool, not the backing models) evolved over the last year?

For me it's practically the same, except for features that I don't need, don't work that well and are context-hungry.

Meanwhile, Claude Code still doesn't know how to jump to a dependency (library's) source to obtain factual information about it. Which is actually quite easy by hand (normally it's cd'ing into a directory or unzipping some file).

So, this wasteful workflow only resulted in vibecoded, non-core features while at the domain level, Claude Code remains overly agnostic if not stupid.

There are always middle grounds to be explored. The way I see it, 80% of a "codebase" would be data and 20%, code.

Both worlds can be cleanly composed. For instance, for backend development, it's common to define an array (data) of middleware (code).

At a smaller scale, this is already a reality in the Clojure ecosystem - most sql is data (honeysql library), and most html is data (Hiccup library).

I won't lie, this sounds like a recipe for context rot.

LLMs degrade as the context / prompt size grow. For that reason I don't even use a CLAUDE.md at all.

There are very few bits that I do need to routinely repeat, because those are captured by linters/tests, or prevented by subdividing the tasks in small-enough chunks.

Maybe at times I wish I could quickly add some frequently used text to prompts (e.g. "iterate using `make test TEST=foo`"), but otherwise I don't want to delegate context/prompt building to an AI - it would quickly snowball.

My (tragically) favorite part is, from wikipedia:

A commission attributed the primary cause to generally poor software design and development practices, rather than singling out specific coding errors.

Which to me reads as "this entire codebase was so awful that it was bound to fail in some or other way".

It will increasingly become common knowledge that the best practice for AI coding is small edits quite carefully planned by a human. Else the LLM will keep going down rabbit holes and failing to produce useful results without supervision.

Huge rules systems, all-encompassing automations, etc all assume that more context is better, which is simply not the case given that "context rot" is a thing.