How do you learn to replicate bugs, when they happen inconsistently
I don't have definitive advice here, I think this is a hard problem no matter your skill level. You can do things in advance to make your program more debuggable, like better logging, and assertions so you catch the bug closer to the root cause.
A more general pattern to look for is some tool that can capture a particular run of the system in a reproducible/replayable manner. For a single program running locally, a coredump is already quite good, you can look at the whole state of your program just before the crash. (E.g. the whole stack trace, and all variables. This can already tell you a lot.) I have also heard great things about rr, supposedly it allows you to capture a whole execution and single step forwards and backwards.
For distributed systems, like web applications, the problem is even harder. I think I have seen some projects aiming to do the whole "reproducible execution" thing for distributed systems, but I don't know of any that I could recommend. In theory the problem should not be hard, just capture all inputs to the system, and since computers are deterministic, just replay the inputs. But in practice, given the complexity of our software stacks, often determinism is more of a pipe dream.
How does one "read the docs?"
Something something "how to build up a model of the entire stack."
I think these are closely related. I imagine my "model of the entire stack" like a scaffolding with some knowledge holes that can be filled in quickly if needed. You should not have any unknown-unknowns. If I notice that I need more fidelity in some area of my model, that's exactly the docs I read up on.
When reading docs, you can have different intentions. Maybe you are learning about something for the first time, and just want to get an overall understanding. Or maybe you already have the overall understanding, and are just looking for some very specific detail. Often documentation is also written to target one of those use-cases, you should be aware that (well) documented systems often have multiple of these. This is one model I came across that tries to categorize documentation (though I am not sure I subscribe to these exact 4 categories):
(from https://diataxis.fr/)
Getting back to the "model of the entire stack" thing, I think it's very important for how (I at least) approach computer systems. I think this article by Drew DeVault in particular was an important mindset-shift back when I read it. Some quotes:
Some people will shut down when they’re faced with a problem that requires them to dig into territory that they’re unfamiliar with. [...] Getting around in an unfamiliar repository can be a little intimidating, but do it enough times and it’ll become second nature. [...] written in unfamiliar programming languages or utilize even more unfamiliar libraries, don’t despair. All programming languages have a lot in common and huge numbers of resources are available online. Learning just enough to understand (and fix!) a particular problem is very possible
I now believe that being able to quickly jump into unfamiliar codebases and unfamiliar languages is a very important skill to have developed. This is also important because documentation is often lacking or non-existent, and the code is the "documentation".
Also, I feel like the "model of the entire stack" thing is a phase shift for debugging once you get there. Suddenly, you can be very confident about finding out the root cause of any (reproducible) bug in bounded time.
If at any point you notice that your unfamiliarity with some part of the system is impeding you in solving some problem, that's a sign to study that area in more detail. (I think this is easier to notice when debugging, but can be equally important when building new features. Sometimes your unfamiliarity with a certain area leads you to build a more complex solution than necessary, since you are unable to search paths that route through that area. A map analogy here would be you having a dark spot on your map, and noticing whether it's likely that between two points, there could be a shorter path through the dark area.)
GPT-5 attempt: https://chatgpt.com/share/689526d5-8b28-8013-bcbf-00f76cd37596
It at least hallucinates less, but after recognizing the difficulty of the problem it just gives up, gives a (by its own admission) half-assed solution that cannot work, and goes on to explain why I should be asking for something different, and given my constraints a solution is not practical. (See sibling comment for a very much practical solution I wrote in ~2 hours.)
This 25m 80%-time horizon number seems like strong evidence against the superexponential model from ai-2027. On this graph the superexponential line shows 4h at the end of 2025. I feel like GPT-5 will be the biggest model release of the year, I don't see how we would see a model with an 8x time horizon of GPT-5 this year.
Ok, now this is actually really weird. You’re saying that the only reason you can think of to want to feel empathy toward other people… is to make yourself happier…?
I do most things in my life to try to make myself happier. (And I think this is the revealed preference of most people, even if they don't admit it, because being seen as "selfish" is sometimes socially not tolerated well.)
(But I don't have a fully fleshed out moral philosophy, and I would not feel confident in asserting that "I do everything only to make myself happier". E.g. I do notice myself being nicer to people in general than what would naively be predicted under the "100% selfish" model.)
People do sometimes write LW posts about things that aren’t, like… serious problems in their own personal lives.
I felt like the post was written in a tone describing a personal issue. And if this is not a personal issue for OP and they have some easy way of dealing with it, that seems like a weird thing to omit from the post.
I don’t really know why so many commenters are talking about things like a “psychological need to have people to feel empathy towards”. Where does OP talk about having any such thing…?
That was pure inference on my part. I do think having people to feel empathy towards makes me happier. I felt sad when I was grappling with similar questions years ago as OP, and I had to accept that I won't be able to feel empathy towards most people, I should just model them as part of the external world, and not try to imagine myself in their place.
If OP has some other reason for wanting to empathize with people, I would like to know, because I can't really imagine other important reasons.
I don't quite understand why this is a large enough problem in your life even to trigger writing a LW post about?
I imagine that you would just curate your group of friends to consist of people you can empathize with, to fulfill your psychological need to have people to feel empathy towards, and just model all other humans as you would model any other part of the world.
Unless I am misunderstanding what you mean by "being able to empathize with someone", and you have a genuine shortage of people who would fulfill your requirements? (In my mind it's not insanely hard to find such people, I think above a certain level of communication and self-reflection ability this is a non-issue.)
if I were next to her, I could role-play as a supportive friend or partner.
In situations like this I might tell them something like "you probably know that if I were in your shoes I would have a straightforward solution to this, but I understand that you don't like my solution, and I am willing to just listen if that's helpful to you". Basically you are telling them upfront that you will be role-playing the supportive friend.
Interestingly, I don't remember a single instance where someone got mad at me for this, which is somewhat surprising to me.
During the live debate Tsvi linked to, TJ (an attendee of the event) referred to the modern LLM paradigm providing a way to take the deductive closure of human knowledge: LLMs can memorize all of existing human knowledge, and can leverage chain-of-thought reasoning to combine that knowledge iteratively, making new conclusions. RLVF might hit limits, here, but more innovative techniques might push past those limits to achieve something like the "deductive closure of human knowledge": all conclusions which can be inferred by some combination of existing knowledge.
This "deductive closure" concept feels way too powerful to me. This is even hinted at later in the conversation talking about mathematical proofs, but I don't think it's taken to its full conclusion: such a deductive closure would contain all provable mathematical statements, which I am skeptical even an ASI could achieve.[1]
To spell this out more precisely: the deductive closure of just "the set theory axioms" would be "all of mathematics", including (dis)proofs for all our currently unproven conjectures[2] (e.g. P ≠ NP), and all possible mathematical statements.[2]
Conditional on LLMs scaling to AGI, I feel like it's a contradiction to say that "LLMs offer little or negative utility AND it's going to stay this way". My model is that we are either dying in a couple years to LLMs getting us to AGI, and we are going to have a year or two or of AIs that can provide incredible utility, or we are not dying to LLMs and the timelines are longer.
I think I read somewhere that you don't believe LLMs will get us to AGI, so this might already be implicit in your model? I personally am putting at least some credence on the ai-2027 model, which predicts superhuman coders in the near future. (Not saying that I believe this is the most probable future, just that I find it convincing enough that I want to be prepared for it.)
Up until recently I was in the "LLMs offer zero utility" camp (for coding), but now at work we have a Cursor plan (still would not pay for it for personal use probably), and with a lot of trial and error I feel like I am finding the kinds of tasks where AIs can offer a bit of utility, and I am slowly moving towards the "marginal utility" camp.
One kind of thing I like using it for is small scripts to automate bits of my workflow. E.g. I have an idea for a script, I know it would take me 30m-1h to implement it, but it's not worth it because e.g. it would only save me a few seconds each time. But if I can reduce the time investment to only a few minutes by giving the task to the LLM, it can suddenly be worth it.
I would be interested in other people's experiences with the negative side effects of LLM use. What are the symptoms/warning signs of "LLM brain rot"? I feel like with my current use I am relatively well equipped to avoid that:
I wonder if there are people/groups who (implicitly) do the same with ChatGPT? If the chatbot says something it is considered truth, unless someone explicitly disproves it. (I think I have read stories hinting at this behavior online, and also met people IRL who seemed a bit to eager to take the LLM output at face value.)