Recent submissions

Comment · 4 days ago
Thanks, TIL!

Apparently the RMS prefix on the RMS Titanic stands for "royal mail steamer" as it was authorised to carry the post.

Comment · 18 days ago
Ultimately the "speed" that matters, is the speed of delivering _useful_ improvements over time. The speed of delivering that today, is bottlenecked by the speed users can accept and form opinions on new functionality, and the speed of doing it tomorrow is also bottlenecked by compounded technical debt.

For now at least, I'd say churning code faster and faster cannot widen either of these bottlenecks much.

Today, I use Claude heavily, but review all the code. I'm faster, but not by the multiples people speak of. And that seems ok to me.

Comment · 21 days ago
I'm not American, so this is a guess, but I'd suspect people resisting "progress" are not as irrational as you perhaps suppose.

More likely, they feel they would disproportionately bear the costs, while the benefits either trickle down diffusely from the wider societal good, or worse, accrue to some private company.

For example you may feel AI is progress, they may feel the loss of the countryside near their house to a data centre, which they may believe will primarily benefit the owners of OpenAI et al. In such a case, their opposition would be aligned with their beliefs and values.

Comment · 1 month ago
Internet Archive feels like an important... well, archive, yet I often worry about the load, financial and potentially political, which is put on it when people use it as a workaround for pay-walls, as is often advocated on HN
Comment · 2 months ago
Great video.

Other trebuchet fans who dream of building one some day may be interested in googling "walking trebuchet" for a surprisingly high complexity/results ratio.

Comment · 2 months ago
Perhaps tangential to your point, but I often write blog posts (although finish and publish far fewer than I start) where I write about something as it has occurred to me, informed by things I've absorbed no doubt, but without specific research. In such cases I explicitly avoid searching out prior work as a) seeing that something is well discussed and explored can take away the motivation to explore (in the same way reading puzzle solutions before starting might), and b) to avoid having green shoots of ideas shaped by the current of existing consensus. Now that doesn't mean I don't come back after doing my own thinking to see what the more well developed literature of people cleverer than me, who've thought far longer than me think; I just don't want to snuff out my own exploration at the start.

As I say most of these I never publish as I'm mainly using writing as a vehicle for thought, but when I do I'm never sure how to flag them. I don't want (imaginary, lets be honest) readers thinking I'm deluded into thinking I've found something new. I want to come up with a tag I can put on them which adds a pithy disclaimer card at the top or something so I feel more comfortable publishing them.

Comment · 2 months ago
Side note: The linotype, which Paige's machine is compared to, was one of my favourite machines to discover existed. Such a clever design.
Comment · 2 months ago
But what are the questions nobody is asking?
Comment · 2 months ago
I've recently been running yolo mode, but in docker container with the codebase I'm working on a as regular mount with other reference code mounted as read only.

I've been experimenting with dedicated Linux users for various external tools with access to the relevant credentials limited to them and the Claude user only able to invoke the relevant clis by going through a pair of wrapper scripts: the first to change user to call the second via a su call as the appropriate user, the second wrapper to invoke a guard script which allows me to implement my own in-code permissions checks against the cli arguments. In _theory_ there's no way for Claude to work around it, as the sudoers file only permits the described manner to change to the user with credentials, and the user with permissions for each credential only ever runs deterministic code.

It's too early days to say how well this second part works out, but so far so good.

Comment · 2 months ago
I've been using them by reading some docs/wiki/tutorial, then when I think I understand something trying to do a rough explanation to the LLM and ask if I'm right. I'm usually making some analogy to something I already understand a little. I'm usually partially right but missing some key bits at the first pass. I go back and forward asking for explanations of various bits or asking for resources around the area I'm not understanding. Often times just discovering the relevant name for the area of study opens lots of doors. I basically use it like I would talk to a knowledgeable and patient teacher.

As for how useful it is to understand thins, I believe it's still useful and hope it will continue to be.

Comment · 2 months ago
An overlapping technique (covering some but not all of the circumstances you'd use assert) is to take a parse-dont-validate approach, and essentially encode the fact that an assertion has been applied to a value in its type.

How ergonomic this is will vary by language, but the general idea would be to apply the assertion logic in some sort of constructor, then prevent any operations which would break the invariant going forward. The simplest way to protect this being by making the value immutable where possible.

Users of the value who care about the invariant being true can then specify in their types that they want a non-empty-collection or a foo-id or whatever it may be, rather than asking for the wider type, then asserting.

Comment · 3 months ago
I agree, although I think the real goal the model providers are going for (both commercial _and_ open weight) is probably power. Just think of the control available to the organisation training the models politicians, business leaders, and citizens are increasingly delegating their thinking to.
Comment · 3 months ago
or netcasts even
Comment · 3 months ago
On point 4, is the general flow that an "update" would read the current latest, check whatever conditions, then rather than updating, insert a new record (all in a transaction), or is your append only sot more an ordered "log" of update requests with the result of any conditional operations requiring a replay (from at least a check point). Or something else entirely.

I'm generally an immutable first, type developer but ive not had to do much schema design for a while and looking back to previous attempts we never hit scale to stress test my approaches.

Comment · 3 months ago
Perhaps political candidate Count Binface here in the UK should add to his "I'll lower _your_ taxes and raise _everyone elses_" policy with "I'll protect _your_ job and automate _everyone elses_"

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton