A birb in engineering. Everything is a lisp if you try hard enough. The opinions are my own and do not represent the such of my employer.
Public Key
npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm Profile Code
nprofile1qqs8v2gwn8zvcwwgsq7m9qq2wcwqhk58teczgk5sj4adfr5g4xaxl6gpz3mhxue69uhhyetvv9ujuerpd46hxtnfduqs6amnwvaz7tmwdaejumr0dsqak39y
Show more details
Published at
2026-06-28T07:14:44Z Event JSON
{
"id": "c226900074e63c028bf9b0e1de27e858a1e18dc520278e5867fc691dedf83bd3" ,
"pubkey": "76290e99c4cc39c8803db2800a761c0bda875e70245a90957ad48e88a9ba6fe9" ,
"created_at": 1782630884 ,
"kind": 0 ,
"tags": [
[
"proxy",
"https://hdev.im/users/farcaller",
"activitypub"
],
[
"client",
"Mostr",
"31990:6be38f8c63df7dbf84db7ec4a6e6fbbd8d19dca3b980efad18585c46f04b26f9:mostr",
"wss://relay.ditto.pub"
]
],
"content": "{\"name\":\"farcaller\",\"about\":\"A birb in engineering. Everything is a lisp if you try hard enough.\\n\\nThe opinions are my own and do not represent the such of my employer.\",\"picture\":\"https://hdev.im/system/accounts/avatars/109/455/944/519/740/636/original/855bd495dabfa8dc.png\",\"banner\":\"https://hdev.im/system/accounts/headers/109/455/944/519/740/636/original/7735326bd5e52224.jpeg\",\"nip05\":\"[email protected] \",\"fields\":[[\"Website\",\"https://farcaller.net\"],[\"Github\",\"https://github.com/farcaller\"]]}" ,
"sig": "276713e0ab8f96d03f1eb47c36ab4998b31dc6541188cd596a01c8ad5a4f3628830dea1ed5852726a70cb8a0b9e25df355a543dcc118f698c79126bec9b4100f"
}
Last Notes npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller The end of the eSIM story. I went to the vodafone shop with my wife's old and new iphones. I explained the problem (here's an old physical sim—it doesn't work, here's a new iphone where eSIM was supposed to be migrated). They told me they need her ID. I (expecting that) brought her driver's license. That wasn't good enough because clearly it wasn't me on the photo. Ok, what's enough? She can't call them (because her phone is dead, ffs) and she was busy to drive there. Apparently, a good enough verification method is if she emails them. I leave vodafone shop, sit in the cafe next door, unlock my wife's phone that I brought in (I have her consent) and write an email from her to the shop I just left. 5 minutes after they email me the eSIM QR code and the pin in the same email. This is why I am extremely scared about social engineering attacks on mobile operators. This whole process was extremely dumb and insecure. A physical sim wasn't a proof, but my sending an email from the phone I brought to you is? really? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller It's me, your weekly #emacs rambling birb. Today I am going to rant about tree-sitter and emacs and consult and vertico and why the hell is my `consult-buffer` taking SIX seconds to go to the next file. So good news, if emacs is sluggish, you can `M-x profiler-start`, reproduce the problem, and `M-x profiler-report` to see where it's taking its sweet time. My problem is that the sweet time is in `treesit-auto--set-major-remap`. https://www.masteringemacs.org/article/how-to-get-started-tree-sitter highlights one solution: you can manually remap every major mode to a TS-compatible mode. I'm pretty sure that the culprit is somewhere in https://github.com/renzmann/treesit-auto, but the workaround from https://github.com/renzmann/treesit-auto/issues/84 doesn't seem to fix the problem for me. Oh well. I find it peculiar that I very much switched non-programming editing to emacs by now (org, md, yaml, all that stuff), but I still use nvim for code because nvim is just *fast*. It's like everything in it is just more efficient whereas emacs is fancy but takes its time (I'd say that my barebones emacs setup is on par with VSCode in slowness). With vim, I don't think if I need to do anything to open some extra random file type, it will most probably just work, and the only thing that gave me a headache recently was pkl support. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…m4ns I found that one (I actually use it to add emacs-specific binaries into its scope). My problem is that I need to have that effectively per-project. And yeah, that's a feature of Nix. Arguably a good feature. You don’t have random tooling versions scattered around and they are pinned to correct versions within the projects’ directories. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller My #emacs progress insofar. It looks ok. It mostly feels ok. M-x isn't exactly ergonomic in APTv3 layout, so I might be remapping more things (my keeb extras are highly Vim-focused still). Org mode is good. It is functioning better than Vim’s (which is expected). Vertico and Consult are ok. I am very used to Vim’s telescope, but I'm slowly getting used to Consult’s way of things. It's ok, and there are even some extra niceties in how ripgrep integrates. I'm still not sure how to fzf in the current directory. M-x project-find-file seems like the closest match, but it doesn't do file previews. The largest gripe so far is LSP. TypeScript was "mostly" easy: I only had to lsp-install-server for it to bundle some node bs deep into the config dir and I was *very* lucky to have a system-wide Node.js (usually all that goes into devenvs for me). The LSP mostly works (mostly, as in, the LSP actions are somehow widely unpredictable). Rust, though... Fucks sake. Why is it always Rust?.. My dev setup is relatively simple. I only use devenvs, I only pull language dependencies from there (which is, from Nix). It works ok with VSCode (with direnv hacks for the backend server), it works great with Vim spawned straight from the directory with correct paths. Emacs? I have no idea what emacs is getting wrong. The LSP starts up, it connects to rust-analyzer, and then... silence. I'm sure I just need to find some debug logs that will probably tell me rustc isn't on the path, and then I'll need to find a way to inject the current directory's environment into emacs too and then... Those client-server editors suck, don't they? At least I have easy times writing more notes into my Org files! npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…x3yv *sobs in a sad secure VM with no TPM at all* npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…x3yv oh, it looks like they finished the UI work? I might give it a second look then. Hopefully there's a data migration story. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…x3yv I considered openbao but I'm not there yet. OpenTofu was an easy switch, but I already have vault in my infra and it works and it's the piece of infra I don't want to modify much; too many things depend on it being rock-solid. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller With @nprofile…9wek ssh being randomly broken for days now I came to realize that it's such a great product because it blends into the background perfectly. The problem is, of course, when it breaks. So what do you all use for centralized ssh management with temporary credentials? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…x0kw @nprofile…l6za I don’t like when links work both ways, though :) my notes are a directed graph. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…x0kw @nprofile…l6za Lists is a relationship concept in tiddlywiki (https://tiddlywiki.com/#Introduction%20to%20Lists). Basically, instead of a child declaring who's its parent, the parent declares the list of its children. This allows for straightforward multi-parenting linking with custom sort order wherever required (tiddlywiki allows to change the sorting on query). It's a simple concept that's extremely useful in practice in TW specifically because the wiki is built around it and almost every relation is defined within the same framework of lists. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…x0kw @nprofile…l6za I find tag clouds and such too chaotic. Ideally, I'd want to have something like the list property of tiddlywiki in obsidian, but it might be non-trivial to port over. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…x0kw tags don’t answer the question "what was the next note in the series" which I tend to ask myself every once in a while. He only thing that came close to these IDs but automated was tiddlywiki's list field. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…x0kw https://zettelkasten.de/folgezettel/ will have all of them but tl;dr is that there's an ID to each note that defines the relationship between siblings (notes related by overarching subject) and children (notes expanding directly on the subject of a given note). You can mock that with e.g. parent relationships but I always found those a bit clunky. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller omg, I figured markdown #zettelkasten. The Folgezettel numbering just goes into an attribute, and this way it doesn’t fuck up referencing. It makes my OCD happy! /me runs around, panicking that note taking finally makes sense. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Somehow I ended in a spot where nix store thinks I have a derivation cached while I don't. nix store repair --all says I'm totally screwed. Bummer. #nix https://hdev.im/system/media_attachments/files/113/962/812/742/135/457/original/b619b6de11351da3.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…7ucx @nprofile…dtf2 import is async. I don't think you can await import within cjs? Node top level await is weird. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…dtf2 can't you tsc them into submission? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…ck84 how about @nprofile…gsm3 ? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Imagine waiting on a 8 lines of a json PR for more than 3 months with feedback like "change that one letter to upper-case" and then finally be smashed as "stale" by the fucking github-actions bot. Yes, I do understand that having the @nprofile…vkt6 plugin in a registry is a privilege, not a right, but guys, maybe your process is broken? I understand you get a lot of PRs, I’ve seen the traffic. But if a developer responds to your feedback in minutes, maybe you need to have a label for yous that tells you that you are slow to reply, not them? Throwing a GH actions bot in the mix to see the damned "stale" after I did everything you asked for and was extremely responsive is demotivating tbh. We are discussing a single like of a description for months, that's peak corporate! npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…t9dr I'm just curious—why would that breach GDPR? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller I can't believe how much a small patch to allow the #keychron switch between bt/wireless with a hotkey improves the experience. I can seamlessly go between the machines now and it's just awesome. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…qgy9 glory to arstotzka! https://hdev.im/system/media_attachments/files/113/826/812/513/814/283/original/ba289710cb340e02.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller If you email me to say I'm in a top 1% of your product's user and I haven't used it for 2 years now that doesn't really shine a positive light on your product. Or, maybe, your marketing is just dishonest. https://hdev.im/system/media_attachments/files/113/826/467/374/586/099/original/0649c0410cb71897.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…fx76 are you doing the github challenge? 🤔 npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller This also broke ctrl+clicking... npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller This little trick costed me a move-one-word-to-the-left. But here's what it does! If the keyboard is connected to a windows PC, and there's a pending press on the CMD (meaning it's held down but not reported to the OS yet), then don't report it and instead send HOME. This allows CMD to behave like CMD on a mac, like CTRL on a PC, and also all CMD+XX keys work as CTRL+XX, unless it's CMD+LEFT, which is HOME. CMD+SHIFT+LEFT also works and become SHIFT+HOME. Now I just need to do the same for CTRL to return CTRL+arrows. #keychron #qmk https://hdev.im/system/media_attachments/files/113/817/134/471/435/248/original/4ab79de240db2a5e.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Ok, so a cmd is actually a ctrl if I’m talking to a PC, unless I also press any arrow after which turns it into a home/end. But then the ctrl is a win, but win+arrows remaps back to ctrl+arrows... #keychron #qmk npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Wouldn’t it be nice if there was a *nix shell based on a lisp that would also support paredit navigation. I feel I’m so much more efficient with cursor positioning and general editing in #clojure because it's AST-based, not word-based movement. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…r00k that good old time when you installed new software with ./configure && make && sudo make install npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @nprofile…0tvd isn't that slackware? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller I am so going to write a bot that listens for "This issue has been automatically marked as stale" comments and replies with "Not stale". npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Actually I think it's not fair to google there. Google does provide a pretty great device api for all the devices it sells on Earth. Earth: https://hdev.im/system/media_attachments/files/113/721/156/017/938/295/original/0672263d46d76717.jpeg npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller So many smart devices would be instantly better if their manufacturers actually cared about making them properly smart. But no, we can't have nice things. Why would LG add iOS shortcuts support into their abysmal app if that app is a "replacement" for a smart home hub? Why would google care about making their thermostats fully controllable via their own (paid!) API? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller I found a better use for a plane operator in #swift: What do you expect "DUB" ✈ "ORD" does? Obviously, it returns a TimeInterval! https://gist.github.com/farcaller/90ededd2ea783039cdc7e92597b80b78 https://hdev.im/system/media_attachments/files/113/702/009/725/293/626/original/f458896f608ffa6a.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller In my search of a language that would be nice and modern and also wasm-embeddable I completely missed swift. It seems that it's actually doing pretty good in wasm department: https://github.com/apple/swift-for-wasm-examples npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Let’s talk about #stalker2 On one hand, it’s a massive win for Ukraine. It’s all over the news, it’s breaking charts, it’s hugely popular. People around the world get to experience the truly amazing Ukrainian voiceover, some amazing songs. On the other hand, as a game, it’s... not really that good. Releasing the game in such dire circumstances is heroic in its own and that’s why I think the upvote on Steam is deserved. That said, it’s one of those games where I keep thinking: I am not having fun. When Cyberpunk 2077 came out, I rated it 6/10, playing it on launch. There were some technical issues (more for other people, less for me), but the game loop was solid. Stalker’s game loop is something they didn’t finish figuring out. The game is tough as nails and you will die a lot (there’s even a death counter). Yet, it’s not a roguelite. The game punishes you, but doesn’t have a mechanism for you to learn to get better other than pushing it through. Here’s one example: you get outfitted for a main quest and you, several hours into the game, know the reasonable amount of gear to carry. You keep in mind that the gear will require excessive repairs when you’re back, meaning you need to carry back some good loot to offset the expenses. During a sudden chain of missions that you cannot break, you realize that you are really REALLY underestimated it. You’re out of ammo, your main gun is broken, your armor is in shreds. You either keep bashing your head against the wall, or you load a save 3 something hours ago and do the same thing on repeat, now hoping you had enough to make it work. It’s like quest softlocking but only because it’s on you. The game, though, never teaches you how to prepare for a quest proper. After I had to enable the console to work around an actual softlocking, I had little restraint to not cheese my way around one boss fight. It was so tough it was actually dumb. I know people won it fair and square. I’ve seen numerous guides online. If stalker was advertised as soulslike I’d have just skipped it altogether. But it’s not a soulslike, it’s just widely unbalanced. The story is good, though. And visiting the locations from the first game brought a smile to my face, thinking back when I was waiting to pick up my very first preorder videogame ever being the first stalker. This game makes me feel so conflicted. I want to like it, I want to enjoy it. I just can't. It's too raw. Maybe, in a year's time, they will fix it enough for me to try again. As of now, I'll just finish the last two story quests with spawn ammo cheats and I am totally going to give up on the carry capacity and scarcity aspects. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller This is legit the best ever explanation of "curl google.com". Sound on https://www.youtube.com/watch?v=atcqMWqB3hw npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1fea…4ggk have you seen Github recently? That's ruby. Shopify? That's ruby. Have you used homebrew? Ruby. Metasploit maybe? Ruby. Commented with discourse? Ruby. Plenty of ruby stacks around. It's a pretty nice language. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1fea…4ggk why so? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1vjg…0l8u that's a very valid point! But still, I'd be peculiar to see more on specifically using clojure for data science in general. I’ll google around. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller I’m really not sure how I feel about this #heartofclojure boat modelling talk. On one hand it was real fun and I learned something about sails. On the other hand, why'd you use clojure for this all? Why not R or python that seem to be a much better fit for the job? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1fjw…pdqw did you consider a nitrokey instead? I'm out shopping and there's plenty more things on the market nowadays, it seems. Yubikeys are oddly expensive. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller What's the point to ask me for an SSO if your login flow requires me to create a first-party account right after it?.. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1grh…dggd there's real life and there's my server which I want to reach without tunelling, NATs, or VPNs or paying E27/mo for a handful of IPv4s. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Envoy gateway doesn't support ipv6. Right, who even cares about that obscure protocol in 2024 anyway? ipv4 is a solved problem. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1x30…upec make sure you don’t break HANDS in the process! (sorry, it's a really bad pun. I’ll see myself out!) npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller #affinity team is very clear they are not trying to pull the adobe thing with the privacy policy updates, heh. https://hdev.im/system/media_attachments/files/112/994/976/494/898/054/original/e000c4106815c0ed.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller me: should I use terraform or pulumi? @npub12p4…snd6: pulumi me 2 hours later: ok, I think I fixed this insanity poetry2nix is and pulumi-bin is working and I can auth both to my local s3 for state and vault to fetch the gcp credentials... what was I doing again?.. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller It **was** glued to the ceiling. Ffs. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Why do smoke detectors batteries only die at night? Preferably deep night? I can’t take this thing off 😭 npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1g5v…yz00 I have this clojure script that exports logseq blog posts into hugo-themed markdown that I can share if you want to get your hands dirty. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1lfd…gptz I always liked Objective-C. In the end I just traded `[[[[`s for `((((`s! npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Achievement unlocked: tried (and failed) to use paredit hotkeys to wrap a piece of markdown in []. That's what you get after only half a year of #lisp / #clojure. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller someone took "stack overflow" in stackoverflow.com too literally, huh. https://hdev.im/system/media_attachments/files/112/927/320/462/409/165/original/ff2818994765ad41.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller I wake up and External-Secrets is broken. Why? Because vault is not reachable? Why? Because tailscale operator's DNS is not returning the records. Why? Because "error getting the EndpointSlice for the proxy's headless Service: found multiple matching *v1.EndpointSlice objects". Why? Because I updated cilium and it now correctly supports EndpointSlice objects and tailscale doesn't: https://github.com/tailscale/tailscale/issues/13056 FFS. On one hand I really like tailscale, but their k8s operator is so fragile. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Apparently if you put a reverse_proxy inside of handle_response inside of reverse_proxy in #Caddy (to send the request to another backend if the first one returns 404), then Caddy kind of goes insane and spits random 502s. It was a while since I had to configure nginx. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller well fsck. Am I covered under the rm -rf .git && git clone joke? https://hdev.im/system/media_attachments/files/112/893/094/771/084/879/original/b6e9da429b241db5.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Fancy, I broke git. @npub12p4…snd6 is this a win? https://hdev.im/system/media_attachments/files/112/893/072/033/255/104/original/4971bc5324cb8466.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1vut…3hvp seems to render correctly for me? https://hdev.im/system/media_attachments/files/112/888/505/398/820/532/original/120abc101a44a703.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller If you're a #EU citizen please go and sign this https://citizens-initiative.europa.eu/initiatives/details/2024/000007_en# and try spreading it as wide as you can (it's the EU petition for https://www.stopkillinggames.com/). npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Mood. https://hdev.im/system/media_attachments/files/112/843/277/748/740/426/original/8476be53a04bfecc.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1ane…7zqz https://www.youtube.com/watch?v=aGSKrC7dGcY npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1wfk…ugda ikr? not only it provides good search results out of the box, the whole bang thing is very discoverable and efficient. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Software is hard. Hardware that runs software is double so. Here's the screenshot of the my electricity consumption. It's calculated as the power solar PV inverter produces sans the power that's exported to the grid. Physics kind of dictates that I cannot export more than I produce. Right? Right?.. Fml. https://hdev.im/system/media_attachments/files/112/801/924/038/333/043/original/086d5035946cad64.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1ane…7zqz grab pwru (https://github.com/cilium/pwru) and see where the packet spends its time. Just limit its journey to a single node on the cluster. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1gfd…7gg6 how about `stat /` and/or `getfacl /` ? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1ane…7zqz what is it, a swap for ants? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1wln…gc52 wait... we have compiler extensions?!.. *stocks up on coffee* npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Now, how'd I approach this problem? If the user has auto hold on, the car first engages it, and then the drive mode. Never race on what happens there. With the door thing, it is a safety issue, but again, if the auto hold setting is on, just don’t let the driver engage the drive mode until the door is properly closed then, i.e. err on a side of predictability, which is: the car with auto hold on never tries to drive unless you push the gas pedal down. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller If you wonder, that's a tempo traceql query of { resource.service.name = "powermetrics" && name = "run-scrape" } I really don't understand how it can be that random. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller me: refreshes the grafana dashboard with the time interval set to now/d grafana: https://hdev.im/system/media_attachments/files/112/780/624/312/529/253/original/40476ea9f2ad9f8d.mp4 npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller I know I'm overdoing the backup sometimes, but I think I just found some of the stuff I wrote back in 1998. Man, I didn't really think to write any comments back then. https://hdev.im/system/media_attachments/files/112/768/775/506/545/997/original/dc945491bdf43eac.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller so I figured how to restore the partclone image, the kernel still supports resierfs, so I mount thing thing and what do I see inside? https://hdev.im/system/media_attachments/files/112/768/673/710/402/563/original/4da25a6dc4792e97.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Time for some minor software archeology. https://hdev.im/system/media_attachments/files/112/768/625/526/104/792/original/5cdb7196dc89c37d.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1ane…7zqz which CNI? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Apparently having jwt or oauth-based authentication is an enterprise feature in pretty much every single "open source" kubernetes ingress. Peasants should be fine with the basic auth amirite? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller #traefik is annoyingly eventually inconsistent in the worst way. I had to reboot the cluster and traefik came up before coredns did, meaning there was a brief window where traefik couldn’t resolve dns. It was long enough for it to try downloading the plugins (which it does every startup) and to fail. Unfortunately, it wasn’t critical enough issue for it, so it continued starting up and reporting healthy even though half of the middlewares were now screwed without the jwt plugin and the actual ingress was failing. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller How I stopped worrying about nodejs ram usage and embraced clojurescript. At 3Mb idle you can't really care less. I just added some pod resource limits so that node's gc is marginally more excited and there you go, the RAM usage is comparable to go. I dare you to run clojure (the jvm one) in that footprint. I doubt you can do that with graalvm either tbh. https://hdev.im/system/media_attachments/files/112/741/258/085/285/922/original/44b16b53c918f316.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1ane…7zqz that's fair! (I'm actually running vault myself, still. I'm just annoyed that I have to recompile it now. But there's no openbao in nixpkgs anyway, yet) npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller After spending ages trying to figure the "dataset is busy" issue, I finally decided to check zfs holds. Lo and behold, zrepl is holding to this snapshot for reasons! npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Another day, another major mastodon vulnerability. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller me: I need to consume more than PVs produce to check out the code the sun: shines really hard the clouds: don't exist npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller I have a metric that says how much the inverter produces in watts. I have another metric that says how much power is passing towards the grid (in kW). So, I suppose, I could do something like this: (huawei_device_power_sensor_active_power_w > bool 0) * (huawei_device_inverter_active_power_kw * 1000 - huawei_device_power_sensor_active_power_w) + (huawei_device_power_sensor_active_power_w <= bool 0) * (huawei_device_inverter_active_power_kw * 1000) To plot the consumption from specifically the solar energy. Why is this all so complicated. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller I'm not sure if this is legal, electricity-wise, but at least this graph looks similar to what the huawei's own dashboard is showing. The SRE approach: you just randomly multiply metrics until you see something that looks similar to the other monitoring. https://hdev.im/system/media_attachments/files/112/727/596/420/831/433/original/5791fdd46857802f.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller How do you like an API that might return a numeric value (the docs say "Double"), but it might return a nil, or even a string! https://hdev.im/system/media_attachments/files/112/727/518/778/987/258/original/ef2606964c3f101e.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller Luckily, clojure has macro capabilities that, unlike rust procedural macros, aren't a massive PITA. So now both the metric definition and reporting is neat and concise. https://hdev.im/system/media_attachments/files/112/724/273/111/509/093/original/5ac6df8968abb86d.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller #clojure repl things: I'm live writing some prometheus metrics and a parser for them while the actual server is running and vmagent pulls data from it as I write it, so I can see the updates to my code in autoupdating grafana window straight on. This is witchcraft. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller So is there anyone who moved from #nixos to #guix because of all the stuffs? @npub1q0k…trsm you checked out guix yet? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller /ip firewall mangle add action=mark-routing chain=prerouting comment="EMERG ROUTE ALL VPN" dst-address-list=!LAN new-routing-mark=protonvpn passthrough=yes src-address-list=LAN Whatever, I'll figure it out tomorrow. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller This doesn't seem quite right #nextdns https://hdev.im/system/media_attachments/files/112/713/317/739/416/770/original/48287df580a191a3.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller So all of a sudden nextdns stopped working **at all**. For whatever reason I couldn't easily get Mikrotik to do the DNS again so lo and behold, ProtonVPN helps me to build a nixos derivation that has coredns and then it's a matter of some DNAT. We're flying again! npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller I poked more at this and actually it falls apart not at the layering but at the LUKS—the CPU can't handle more than 400mbit/s for aes. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1ane…7zqz you can set compression=off to stuff like photos & videos as there's a very slim chance for anything in there to have any good ratio so why even bother. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1ane…7zqz did you go for the native encryption? npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1ane…7zqz those are some rookie numbers! https://hdev.im/system/media_attachments/files/112/711/859/812/178/538/original/fd99f2c35e789c4c.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub13wf…ch5a that's a funny way to spell "send email" npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1gfd…7gg6 that feel when you no longer have publicly-exposed ssh access. Oh well, now onto the patching. npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller @npub1fgp…wcda the problem I’m solving is having a spare synology box (on which I can’t install a generic linux), and wanting a second backup to use a different method (thus zfs replication). npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller On one hand, 47MiB/s is insanely low. On the other hand, this is a remote backup location and I'm somewhat limited by a 100mbit/s upload speed anyway. https://hdev.im/system/media_attachments/files/112/707/224/944/392/313/original/2a4233dcfa8c16a0.png npub1wc5saxwyesuu3qpak2qq5asup0dgwhnsy3dfp9t66j8g32d6dl5sn2qzxm farcaller zfs over luks in a vm over synology's btrfs over lvm over raid5 + raid1 doesn't sound like such a good idea anymore. I suppose I can just rclone to this remote too...