566 karma · joined April 15, 2015
My global CLAUDE.md explicitly states "When commenting on code and configs, or writing MD files, strictly write within the domain of the content being commented on. DO NOT include information, negatives or ramblings from work sessions. For e.g. if commenting on a proto string field that is replacing an int field, do not comment that 'this is not an int field'".
This reduced the idiocy of the agent (Opus 5 included) when writing documents. But I'm still catching it writing README.md talking about the negatives that it removed. Those belong in the memory if it is actually that important (most of the time it's junk), but Claude doesn't seem to understand and never ever learns.
I know that's not a satisfactory answer but the infrastructure models (for VMs or Windows machines) would have to be implemented into the new paradigm bit by bit to make this work. This used to be something that was laborious but you could have Claude Code cook up something for the loop interfaces and have a working controller prototype in a short time.
Not saying the integration is going to be simple though. The team has to actually buy in and prioritise building the controller logic for each platform solution. And that includes reviewing the code slop that Claude creates.
But the downside is that you do get the Cider team constantly messaging and asking for reasons you won't switch. I gave feedback that their Vim bindings were broken (it would sometimes fail on holding down directional hjkl for no reason) but I'm not sure if they've fixed it since I left in 2023.
Cider is good for writing g3docs though.
Postgres uses spinlocks to hold shared memory for very critical processes. Spinlocks are an infinite loop with no sleep to attempt to hold a lock, thus "spinning". Previous kernels allowed spinlocking processes to run with PREEMPT_NONE. This flag tells the kernel to let the locking process complete their work before doing anything. Now the latest kernel removed this functionality and is interrupting spinlocking processes. So if a process that is holding a lock gets interrupted, all other postgres spinlocks processes that need the same lock spin in place for way longer times, leading to performance degradation.
I do not understand the insistence on using JavaScript for command line tools. I don't use rust at all, but if I'm making a vibe coded cli I'm picking rust or golang. Not zig because coding agents can't handle the breaking changes. What better test of agentic coders' conviction in their belief in AI than to vibe a language they can't read.
However, I can't seem to get Opus 4.6 to wire up proper infrastructure. This is especially so if OSS forks are used. It trips up on arguments from the fork source, invents args that don't exist in either, and has a habit of tearing down entire clusters just to fix a Helm chart for "testing purposes". I've tried modifying the CLAUDE.md and SPEC.md with specific instructions on how to do things but it just goes off on a tangent and starts to negotiate on the specs. "I know you asked for help with figuring out the CNI configurations across 2 clusters but it's too complex. Can we just do single cluster?" The entire repository gets littered with random MD files everywhere for directory specific memories, context, action plans, deprecated action plans, pre-compaction memories etc. I don't quite know which to prune either. It has taken most of the fun out of software engineering and I'm now just an Obsidian janitor for what I can best describe as a "clueless junior engineer that never learns". When the auto compaction kicks in it's like an episode of 50 first dates.
Right now this is where I assume is the limitation because the literature for real-world infrastructure requiring large contexts and integration is very limited. If anyone has any idea if Claude Opus is suitable for such tasks, do give some suggestions.
The second possibility is that I keep the leftover wall paints (Nippon Paint Vinilex 5000) in the same room and have noticed that much of the solvents have evaporated. It is possible that the solvents in the air might have caused the cable to fail in 3 years. It would explain why the other ends that aren't exposed to the air inside the bomb shelter aren't falling apart.
Some other learnings from this. Buried cabling should always be permanently fixed and attached to a patch panel instead of dangling in the open. That was the original plan but I figured it wouldn’t be an issue. I was wrong. Always measure exact length of buried fibre cabling as they aren’t meant to be stored in loops.
Definitely learnt it the hard way this time. You're right that buried cables should be exact in length and fastened to a patch panel. I'll probably look into better conduit design as well for the next time (in 15 years?). Having shared conduits means I would risk damaging other cables if I tried to pull a new cable through.
Unfortunately I can't easily dig the cable out and bury it again in this case. I'll have to figure out how to pull a new cable using the existing cable through the PVC conduits as the cable shares a larger conduit with multiple other fibre and Ethernet cables. The whole project was orchestrated remotely in a different timezone with me giving the electricians instructions over WhatsApp photos and audio recordings, so that limited what I could realistically control onsite back then. Often the contractors would proceed with a do first ask questions later approach while I was still asleep. The networking project was holding up the entire home renovation so everything was learnt and planned in a short amount of time.
AFAIK fibre splicing and terminating tools are very expensive. Do point me in the right direction for the $50 tools and I could go get some and DIY.
In theory I can pull a new cable through. But practically it might be tough due to the number of bends (shelter -> wall -> vent -> ceiling -> wall -> floor -> room). In the worst case scenario I can give it a try, but it's probably going to destroy the new fibre cable when I pull it through. For now the connection still works, so I am hoping it doesn't get to the point where I have to give that a try.
But yeah, maybe it's not that bad after all. I hope it won't get to that point.
Yes I do have a peeve about the numbering system that screws you over at the end, "Ten thousand, three hundred, four and twenty." Yes I know the French numbering is even worse.
German just makes sense to me programmatically. Unfortunately I no longer have much of any opportunity to practise nowadays outside of online language classes.
Not sure how to feel about it tbh.
I also write to keep snapshots of my ideas and thought processes, regardless of how nonsensical they may be.
It's down to your own design and acceptable business decisions, and what your business deems as availability.
Thanks Linux and Wine.
Then again I've also seen people do these thousand line in-code literal string protos which really grind my gears.
It's been 9 years since that challenge, and I'm still typing on the Filco keyboard. Good memories. Although I've since moved on to NeoVim for the LSPs. It's nice that I can freely edit files on any machine for something I picked up in a week.
If a team of 5-10 SWEs have to do all of that while only graded on feature releases, k8s would massively suck.
I also agree that experienced platform/infra engineers tend to whine less about k8s.