Sign in

Wolf480pl

@wolf480pl.mstdn.io.ap.brid.gy
21 followers 0 following 1.5K posts

Sysadmin stuck with k8s, Linux nerd Likes The Unix Way 🇬🇧🇵🇱(🇯🇵 a bit) 🌉 bridged from ⁂ mstdn.io/@wolf480pl, follow @ap.brid.gy to interact

PostsRepliesMedia
Reposted by Wolf480pl
Andrew Nesbitt @andrewnez.mastodon.social.ap.brid.gy · 1h
New hobby: trying to make deterministic versions of llm powered dependency analysis tools using the various parts of git-pkgs. Normally can get 90% of the way that and it ends up being much faster and cheaper.
001
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 03/10/2026
Is there a wifi router that - has decent stock firmware - doesn't phone home, or require accepting privacy policy during initial setup - is still being sold ? Ofc I can use OpenWrt whenever I need a router or AP, but I want sth I can recommend to less technical friends who might not be […]
mstdn.io
Original post on mstdn.io
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 26/09/2026
[AI, FOSS meta, sudden realization] I just realized vibecoded software is incompatible with the Free Software Definition, specifically with Freedom 1 - the freedom to study how the program works. If someone pushes LLM-generated code that they don't understand (often didn't even read), then how […]
mstdn.io
Original post on mstdn.io
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 26/09/2026
> be load testing haproxy > it has some weird behaviours > at the start of a test rps overshoots > after that there's ringing I wish I knew control theory...
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 24/09/2026
Would it be rude to review patches on a project you haven't contributed code to? 🤔
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 24/09/2026
I wish node-exporter had a system-wide "instructions retired" metric...
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 24/09/2026
*evolves your packet core*
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 22/09/2026
Is it wrong to have a little auto-irony in your CV?
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 21/09/2026
Backpressure from printing logs has to be the most funny, yet insidious performance bottleneck.
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 19/09/2026
:blobcatthinking: .oO( Two mutually hostile programs running in ring0 (no hypervisor) on two different cores of the same CPU, fighting for dominance over the CPU) (it's both Symmetric MultiProcessing and Survival MultiPlayer)
001
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 18/09/2026
The difference between messing around and science is writing it down. And today I really don't feel like writing it down...
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 16/09/2026
Suppose you have two receivers some distance d apart, each with very high bandwidth, and are trying to use them to detect the direction of incoming waves whose wavelength is λ > d, by measuring phase offset between the signals each receiver is seeing. Will this work? Or will the small distance […]
mstdn.io
Original post on mstdn.io
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 16/09/2026
:blobcatthinking: .oO( "A je to" episode where they see a 3D printer for sale but can't afford it, so they try to print a 3D model on a 2D printer, fail 3 times, then succeed )
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 14/09/2026
TIL haproxy benefits *a lot* from cpu pinning. I was load-testing it with a dummy backend that always responds after 100ms. If I wanted to keep the overall latency below backend+20ms, I had to keep req/s below like 60% of empirical maximum. After pinning each thread to a different core, I can […]
mstdn.io
Original post on mstdn.io
000
Reposted by Wolf480pl
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 13/09/2026
[horrible bronze-age programming pun] if Enuma Elish was so good, why was there no Uniona Elish?
001
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 13/09/2026
[horrible bronze-age programming pun] if Enuma Elish was so good, why was there no Uniona Elish?
001
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 12/09/2026
["rogue" AI] If you own a dog, and your dog escapes through a hole in your fence and bites someone, you're held responsible. Same should be done with OpenAI. They made an LLM, were testing its exploitation capability internally, it escaped containment and attacked a third party? OpenAI should […]
mstdn.io
Original post on mstdn.io
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 12/09/2026
Imagine if we had a deontology that could deal with the crazy shit going on in tech these days, instead of trying to make ad-hoc moral evaluations based on vibes and shaky attempts at consequentialism
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 11/09/2026
In case anything bad were to happen to mstdn.io, I have a second account at @wolf480pl@not.acu.lt I'm not sure if it'd become my new main account
001
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 04/09/2026
@rygorous is like a process in kernel space - you can interrupt him, it'll set a flag in his signal mask, and he won't notice it until he's done with whatever he's currently talking about
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 03/09/2026
I lowkey wish I had had a botnet as a teenager
001
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 03/09/2026
Remember when most scrapers respected robots.txt, and even ones that didn't tried hard to keep their request rate low enough so as not to be noticable to the website's admins?
001
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 02/09/2026
Are there situations (outside of Competitve Programming) where: there is a feature of a programming language that you don't like but because everyone else can use it, not using it will put you at a disadvantage so you have to use it, even though you hate it ?
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 02/09/2026
[subpost / shitpost] a website that won't let you in unless your User-Agent is "melon"
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 31/08/2026
The fact that some system APIs are implemented in libc kinda sucks. I'm not saying "move getaddrinfo into the kernel", that'd be silly but if I'm writing my own programming language, I should not need to link with libc to get access to the OS's official name resolution service (which is […]
mstdn.io
Original post on mstdn.io
100
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 30/08/2026
If you don't have the habit of checking the source code* whenever you have question about how some software works, have you ever lived? *if you have the habit of checking the disasm / machine code instead, that's even better, huge respect
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 26/08/2026
[???] There are many ways to draw an owl
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 25/08/2026
:blobcatthinking: .oO( mpd client with winamp UI and easy way to copy between playlists and queue)
100
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 25/08/2026
Anyone got a git-clone of nitter?
101
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 24/08/2026
what better way to start a week than with an outage
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 24/08/2026
Imagne being an archeologist from 2000 years in the future, finding miraculously undecayed BluRay with a copy of Wikipedia (without pictures)
001
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 24/08/2026
I had a dream that there was snow in summer. It was pretty darn cool, but IRL it's 15°C so not bad either.
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 23/08/2026
if you have multiple paramenters (config options, CLI args, whatever) and one of them is some kind of mode and that mode decides what are the defaults for other args, or how the other args are overriden / ignored then please put that logic in one place, and then make every other place […]
mstdn.io
Original post on mstdn.io
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 23/08/2026
What is the most themable GUI toolking that works on Linux that you know of? Toolkits that require necromancy in order to use don't count.
001
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 23/08/2026
OpenWrt PRs made... drafts for now because I need to do some more testing, and also because bfdd PR needs to be merged first
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 22/08/2026
I forgot how long it takes to build openwrt's toolchain...
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 22/08/2026
make -j23
100
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 22/08/2026
Noob question about fusion reactors: From what I've heard[1]: - the problem with coils over straight pipes is they have to end somewhere - the problem with simple toroidal reactors is the B field decreases as you go further from the torus's center - a problem with stellarators is that there are […]
mstdn.io
Original post on mstdn.io
100
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 20/08/2026
Realizing that upstream devs are not superhuman is a very unpleasant feeling
000
Reposted by Wolf480pl
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 20/08/2026
Can someone recommend an OpenWrt-supported router that can handle 600Mbit/s of NAT traffic with at most software flow offload (as I need SQM in the opposite direction and hardware flow offload tends to be bidirectional) ?
010
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 20/08/2026
Can someone recommend an OpenWrt-supported router that can handle 600Mbit/s of NAT traffic with at most software flow offload (as I need SQM in the opposite direction and hardware flow offload tends to be bidirectional) ?
010
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 19/08/2026
hot take: Factory Reset Protection is stupid and should be banned.
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 19/08/2026
Oh for fucks sake, OpenWrt has a real name policy, it looks like they won't even look at your PR unless your commit author name, committer name, and signed-off-by name contain a space.
000
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 17/08/2026
OH: random S3 bucket full of GPON firmware files
100
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 17/08/2026
I wish I had made some notes last time I was digging around the source code of OpenWrt's netifd... The protocol handler nterface may have a documented syntax but its semantics are very undersocumented. And finding "what happens if I do X" by searching in the code is quite difficult, because […]
mstdn.io
Original post on mstdn.io
100
Reposted by Wolf480pl
Andrew Nesbitt @andrewnez.mastodon.social.ap.brid.gy · 28/07/2026
Why npm Dependency Trees Are So Big nesbitt.io/2026/07/28/why-npm-depen…
nesbitt.io
Why npm Dependency Trees Are So Big
Every major release of Rails sets off a wave of releases across the rest of the gem ecosystem. An application that tries to upgrade runs `bundle update rails` and Bundler refuses, because some gem in the tree only allows activesupport up to the previous major. The error names the gem, an issue gets filed on its tracker, and a maintainer who had nothing to do with the Rails release widens a version range and ships. Multiply that across every gem with a Rails constraint and the upgrade arrives as dozens of small releases from maintainers who mostly don’t know each other, each responding to errors their own users are hitting. Bundler refuses because it picks one version of every gem for the entire application. Every constraint in every gem is a claim on that shared choice, and finding a set of versions that satisfies all of them at once is NP-complete in the general case. Sometimes no set exists, and Bundler refuses to install, listing the gems whose constraints collided. That makes every constraint a cost that other people pay: a gem that pins a dependency tightly will block someone’s upgrade and get issues filed about it, so gem authors keep dependency lists short and ranges wide. All of it runs through the conflict error, which names the packages whose constraints disagree, so the problem reaches the maintainers who can fix it. That error has no equivalent in npm, which starts with the runtime. Ruby loads one copy of each gem per process, Python keys imported modules by name, and a JVM classpath resolves each class name once. You can get a second version into any of them if you work at it, but one version per program is the working assumption, so their package managers all resolve each library to a single version, and disagreements have to be settled somewhere. JavaScript module loading keys on file paths, not package names: two copies of the same package in different `node_modules` directories are just two different files, and Node’s module resolution loads whichever copy sits closest to the code requiring it. A resolver on top of that runtime could still pick one shared version per package and error when constraints can’t agree, but when two packages want different versions of a shared dependency, npm gives each its own copy. Ordinary dependency resolution has no conflict error in it at all: whatever constraints the packages in your tree declare, install succeeds. Which means a constraint in npm costs its author nothing: a library can pin an exact version of everything it uses and no downstream install will ever fail because of it. Your choice of range never collides with anyone else’s, so there is no occasion to talk to another maintainer about what you both should support, and no prompt to look at what your tree has accumulated. A dependency on a ten-line package is as free as any other too, which is the condition the micro-package habit needed. The costs show up elsewhere: npm’s dependency network was already the largest and fastest growing of the seven ecosystems Decan, Mens and Grosjean measured in 2017, and installing an average npm package means trusting 79 other packages and 39 maintainers. Every duplicated copy gets installed, bundled, and added to the surface you have to audit, so everyone pays a little of it and nothing like the Rails upgrade wave follows. Two copies of the same package do break things when the package holds module-level state: each copy gets its own singletons, and `instanceof` checks fail when an object from one copy reaches the other. The famous case is React, where two Reacts in one app break hooks, so a component library has to run against the application’s copy. `peerDependencies` exists for that case: a declaration that this package must share one version with the rest of the tree rather than getting its own. For years npm only warned when peer ranges couldn’t agree. When npm 7 started enforcing them, the resulting `ERESOLVE` errors were unpopular enough that npm added `--legacy-peer-deps`, a flag for turning the conflicts back off. Cargo runs both designs at once, and within a semver-compatible range it behaves like Bundler: every crate that depends on `bitflags` 1.x shares a single version. If the requirements can’t unify, say one crate pins `=1.2.3` while another needs a later patch, the resolver backtracks and errors rather than take two copies. Incompatible ranges get the npm treatment: 1.x and 2.x of the same crate coexist in one build with no error. And because a caret requirement on a 0.x crate only spans that minor, every 0.x minor is its own compatibility range, which puts a large share of the crate ecosystem on the npm side of the line. Rust’s coordination culture lives on the strict side, where foundational crates sit on the same major for years because a breaking release would split the single version every dependent has to share. serde has been on 1.x since 2017. When a crate that far down the stack does have to break compatibility, there’s the semver trick, where the outgoing major gets one final release that depends on the new major and re-exports its types, so the resolver treats the two as one while the migration rolls through, a contortion maintainers only accept under real pressure. On the loose side of the line, a demo web service at Tweede golf came to 141 crates, with base64, socket2, syn and time each present in two incompatible major versions, and Armin Ronacher counts a basic Rocket web project at 172 crates. Run `cargo tree --duplicates` in any sizeable project: every incompatible version it lists was resolved the way npm resolves everything. Dependency trees grow to the size their resolver permits: where every package must share one version, constraints put costs on other people, and those costs get maintainers talking to each other. npm settles every disagreement with another copy instead, and each copy makes the tree bigger.
005
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 16/08/2026
Give people a complete program for the usecase you've envisioned and they'll complain about edge cases and missing features. Give people powerful primitives and a way to arbitrarily combine them, and they will build the program they need themselves, programs which you've never dreamed of.
100
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 15/08/2026
> have OpenWrt router > install kmod-vrf > ubus call luci getFeatures > [...] > "vrf": true > try to add device > no "VRF" option in "device type" selector > check browser session storage > "features": { ... "vrf": false, ...} > log out, log back in > check browser session storage > "features" […]
mstdn.io
Original post on mstdn.io
100
Wolf480pl @wolf480pl.mstdn.io.ap.brid.gy · 14/08/2026
Beware of sending pull requests to small barely-maintained projects It starts with a simple bugfix, and you very clearly state you don't want to take over maintainership. But then you need to add a missing CLI flag... Then you decide to refactor the entire CLI but not touch the network side […]
mstdn.io
Original post on mstdn.io
100