#yakshaving — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #yakshaving, aggregated by home.social.
-
Habe heute aus Versehen drei Stunden damit verbracht, mein Terminal-Prompt zu konfigurieren, statt die Aufgabe zu erledigen, für die ich das Terminal überhaupt geöffnet hatte.
Klassischer Fall von „yak shaving“. Aber hey, jetzt zeigt es mir Git-Branch, Akku-Stand und die aktuelle Mondphase an. 🌙
Wer kennt's? Welches Tool hat euch zuletzt in so ein Kaninchenloch gezogen?
-
Of course, I can't be trusted to take notes properly, so I haven't properly documented progress on this thread 😅
But here is what happened since last time...
I moved all that to a module that I intend to publish. This led me into investigating how to set default computed values for the module inputs. For instance, I want to be able to specify IPV4 and IPV6 subnets, but if no subnet is specified, I want to pick a random one.
I also added a bunch of documentation.
And then I tested everything using a Proxmox token instead of SSH access, and ... of course it broke, because I was importing a disk image (downloading a raw disk image from the Talos image factory) and that requires SSH access. Because the Proxmox API is annoying like that.
(I didn't think that'd be an issue because that particular feature wasn't listed in the bpg provider under "stuff that requires SSH access".)
So I'm now refactoring everything to install from an ISO image instead (since that doesn't require SSH access), but of course, yak shaving happened: when installing from a Talos image, when the VM reboots, instead of using the static IP address passed by Proxmox in the "nocloud" payload, it's now obtaining an address from DHCP. Which means that cluster bootstrap doesn't work anymore.
I'm now pondering options:
- switching back to raw disk provisioning (and requiring SSH access for my module to work)
- passing IP addresses in the Talos MachineConfig (that should definitely work, right?)
- finding out if there is a way to tell Talos to use the nocloud payload even when rebooting (actually kexec-ing) the disk install
-
Of course, I can't be trusted to take notes properly, so I haven't properly documented progress on this thread 😅
But here is what happened since last time...
I moved all that to a module that I intend to publish. This led me into investigating how to set default computed values for the module inputs. For instance, I want to be able to specify IPV4 and IPV6 subnets, but if no subnet is specified, I want to pick a random one.
I also added a bunch of documentation.
And then I tested everything using a Proxmox token instead of SSH access, and ... of course it broke, because I was importing a disk image (downloading a raw disk image from the Talos image factory) and that requires SSH access. Because the Proxmox API is annoying like that.
(I didn't think that'd be an issue because that particular feature wasn't listed in the bpg provider under "stuff that requires SSH access".)
So I'm now refactoring everything to install from an ISO image instead (since that doesn't require SSH access), but of course, yak shaving happened: when installing from a Talos image, when the VM reboots, instead of using the static IP address passed by Proxmox in the "nocloud" payload, it's now obtaining an address from DHCP. Which means that cluster bootstrap doesn't work anymore.
I'm now pondering options:
- switching back to raw disk provisioning (and requiring SSH access for my module to work)
- passing IP addresses in the Talos MachineConfig (that should definitely work, right?)
- finding out if there is a way to tell Talos to use the nocloud payload even when rebooting (actually kexec-ing) the disk install
-
Of course, I can't be trusted to take notes properly, so I haven't properly documented progress on this thread 😅
But here is what happened since last time...
I moved all that to a module that I intend to publish. This led me into investigating how to set default computed values for the module inputs. For instance, I want to be able to specify IPV4 and IPV6 subnets, but if no subnet is specified, I want to pick a random one.
I also added a bunch of documentation.
And then I tested everything using a Proxmox token instead of SSH access, and ... of course it broke, because I was importing a disk image (downloading a raw disk image from the Talos image factory) and that requires SSH access. Because the Proxmox API is annoying like that.
(I didn't think that'd be an issue because that particular feature wasn't listed in the bpg provider under "stuff that requires SSH access".)
So I'm now refactoring everything to install from an ISO image instead (since that doesn't require SSH access), but of course, yak shaving happened: when installing from a Talos image, when the VM reboots, instead of using the static IP address passed by Proxmox in the "nocloud" payload, it's now obtaining an address from DHCP. Which means that cluster bootstrap doesn't work anymore.
I'm now pondering options:
- switching back to raw disk provisioning (and requiring SSH access for my module to work)
- passing IP addresses in the Talos MachineConfig (that should definitely work, right?)
- finding out if there is a way to tell Talos to use the nocloud payload even when rebooting (actually kexec-ing) the disk install
-
Of course, I can't be trusted to take notes properly, so I haven't properly documented progress on this thread 😅
But here is what happened since last time...
I moved all that to a module that I intend to publish. This led me into investigating how to set default computed values for the module inputs. For instance, I want to be able to specify IPV4 and IPV6 subnets, but if no subnet is specified, I want to pick a random one.
I also added a bunch of documentation.
And then I tested everything using a Proxmox token instead of SSH access, and ... of course it broke, because I was importing a disk image (downloading a raw disk image from the Talos image factory) and that requires SSH access. Because the Proxmox API is annoying like that.
(I didn't think that'd be an issue because that particular feature wasn't listed in the bpg provider under "stuff that requires SSH access".)
So I'm now refactoring everything to install from an ISO image instead (since that doesn't require SSH access), but of course, yak shaving happened: when installing from a Talos image, when the VM reboots, instead of using the static IP address passed by Proxmox in the "nocloud" payload, it's now obtaining an address from DHCP. Which means that cluster bootstrap doesn't work anymore.
I'm now pondering options:
- switching back to raw disk provisioning (and requiring SSH access for my module to work)
- passing IP addresses in the Talos MachineConfig (that should definitely work, right?)
- finding out if there is a way to tell Talos to use the nocloud payload even when rebooting (actually kexec-ing) the disk install
-
Of course, I can't be trusted to take notes properly, so I haven't properly documented progress on this thread 😅
But here is what happened since last time...
I moved all that to a module that I intend to publish. This led me into investigating how to set default computed values for the module inputs. For instance, I want to be able to specify IPV4 and IPV6 subnets, but if no subnet is specified, I want to pick a random one.
I also added a bunch of documentation.
And then I tested everything using a Proxmox token instead of SSH access, and ... of course it broke, because I was importing a disk image (downloading a raw disk image from the Talos image factory) and that requires SSH access. Because the Proxmox API is annoying like that.
(I didn't think that'd be an issue because that particular feature wasn't listed in the bpg provider under "stuff that requires SSH access".)
So I'm now refactoring everything to install from an ISO image instead (since that doesn't require SSH access), but of course, yak shaving happened: when installing from a Talos image, when the VM reboots, instead of using the static IP address passed by Proxmox in the "nocloud" payload, it's now obtaining an address from DHCP. Which means that cluster bootstrap doesn't work anymore.
I'm now pondering options:
- switching back to raw disk provisioning (and requiring SSH access for my module to work)
- passing IP addresses in the Talos MachineConfig (that should definitely work, right?)
- finding out if there is a way to tell Talos to use the nocloud payload even when rebooting (actually kexec-ing) the disk install
-
Zjistil jsem, že Copilot s nejnovějším Codex modelem mi umožňuje na junior.guru webu bez velkého uvažování změnit prakticky cokoliv během pár minut, v ucházející nebo úplně ok kvalitě. Což je super!
Akorát že jsem dnešní den jel jak na matech, tahal jsem pořád za páčku a koukal, co vyleze. A protože je to „levné“, zalezl jsem do každé rabbit hole, kterou jsem potkal. Už dlouho jsem neměl tak silný pocit, že celý můj den byl jeden velký yak shaving. Udělal jsem asi 50 různých věcí, každá s (nejspíš?) mizivým dopadem na úspěch projektu 😆
Tak hlavně, že jsme o tom měli teď přednášku v klubu, že vygenerovat tisíc řádků kódu je k ničemu, když je to tisíckrát nesmysl. Ale třeba to jenom zveličuju a budou to užitečné věci…
-
#DearDiary, today I diagnosed an issue, fixed it, and submitted a PR for somebody else's #code for a #vscode extension, because I wanted to use that extension to work on my own project but couldn't without the #bugfix. Now the extension works (on my machine) and I can get back to shaving this yak.
#tech #technology #devops #development #developer #devjournal #git #yakshaving
-
I needed feedback on some conference proposals. But I didn't want to paste markdown into Google Docs (it never comes back out right).
So naturally, instead of just emailing the drafts, I spent the weekend customizing a Hedgedoc v1 instance on a tiny VM.
It runs on SQLite, supports anonymous edits, and I even patched the CSS for better high-contrast colors and comments.
The yak is fully shaved.
-
Mal eben den RAM beim NUC upgraden…
Die Chromebox3, die andauernd neu startet hat RAM, die ein NUC gut gebrauchen kann.
Der Plan: NUC drainen, System-Updates einspielen, herunterfahren, RAM einbauen, hochfahren, fertig.Realität:
NUC drainen, System-Updates einspielen, herunterfahren, RAM einbauen, feststellen: och, die NVME-SSD ist ja viel kleiner als die der Chromebox3 …Also auch die SSD umbauen und das System „mal eben“ neu installieren.
— dann sagte das BIOS: CMOS Error. —> Die Batterie ist leerDafür hat man ja passende CR2032 zu Hause. Dumm nur, dass hier die Batterie per Molex-Stecker auf dem Mainboard sitzt.
An einer Batterie wollte ich auch nicht rumlöten.Also sitzt der NUC jetzt im Wohnzimmer, wg. LAN und Monitor und spielt dort so lange bis die Austauschbatterien da sind.
Die Neuinstallation habe ich trotzdem gemacht und dann kam es zum "Waiting for other members to finish joining etcd cluster: etcdserver: unhealthy cluster“.
Also erst einmal den etcd vom k3s angeschaut... und da gab es einen (laufenden Node 2x) …
Was für eine Freude. Okay, es läuft nun alles wieder.
Die Lektion aus der Geschichte:
- seltener verwendete Kommandos wie „irgendwas mit etcdctl“ dokumentieren
- ab und zu einmal Geräte vom Strom trennen um defekte Batterien zu finden -
In an EPIC bout of yak-shaving I have reduced the build time for this static site infrastructure running on a puny VPS by a factor of 5. Come along on this undiagnosed journey.
Anatomy of a yak-shave:
- See what had happened was...
- I wanted to put animated snowflakes on my site
- Learned about CSS animation, nice
- Learned how to not bork screen readers
- Remembered I barely got my CI/CD working with Forgejo runner
- Remembered it takes for ever to deploy
- Realized most of it is just downloading and setting up dependencies
- How hard can it be to bake all that into my own image?
- Oh Forgejo supports a container registry too, nice!
- If I can't quickly build and push an image then this will have to wait
- Oh wow, that was really easy
- False sense of how well things are going
- All the freaking examples are for using public forges with public container registries
- Fall down several totally wrong rabbit holes due to lack of knowledge
- Have not stood up, eaten, drank, blinked in hours by this point
- Things are kinda working, yay! Noooo version mismatch
- I barely know Nix flakes, how do channels work, how do you pin them?
- Realized my tools have been broken but flake.lock has been saving me, nice!
- Fatigue related silly errors and utter faith this attempt will work so I don't need to make a quick test setup and test on a much faster setup
- Revert back to how it was, drink water, oh wait silly me...
- Victory
- Should probably write a blog post, it'll be SO fast to deploy
-
I wanted to save my barely passable Python scripting from total extinction and write something quick/useful. So what had happened was...
Instead of writing a quick script I decided to learn a bit of FastHTML to create a web app to generate systemd service files for Podman, so a total yak-shave (I used
podman generatelast week but wanted "cleaner" files).FastHTML is a really neat approach to "templating" HTML and seems to scale nicely with your needs, which means it's easy to get started. The fact that Pico.css and sqlite are built-in is really nice for out-of-box experience (can be disabled and extended). I'll keep working on my toy app and maybe actually make it useful (I'm posting publicly for accountability, I hope).
-
"An Adventure in #YakShaving", or "How replacing a #Radiator took way longer than expected, because some asshole didn't do a proper job installing an isolating inner wall and left a hole behind it".
An ongoing story in four parts. So far. An I haven't even started putting up the new radiator.
-
I was trying to revise my #Kanji with #Wanikani, but I've ended up #YakShaving and have actually spent more time recently thinking about #Romaji, reading up on #JapaneseLanguage entry methods, and filing documentation bug reports on alternative keyboard layouts and a Linux IME that I don't even use (yet?)
-
if you have an old trackball (e.g., kensington marble mouse) and you want scroll wheel emulation:
gsettings set org.gnome.desktop.peripherals.trackball scroll-wheel-emulation-button 8
(button 9 if you want the right side, like if you're left-handed)
-
I fell into a #YakShaving rabbit hole and might have to use all of my winter holidays to dig out of it: finally modernizing my #NixOS-based #mailserver using #SNM (https://gitlab.com/simple-nixos-mailserver/nixos-mailserver).
It turned out to be a prime example of "Hal replacing the light-bulb in the kitchen": https://www.youtube.com/watch?v=5W4NFcamRhM
Since many family members are using the infrastructure with all kinds of different domains etc, I want a functioning autodiscovery setup using #automx2 (https://rseichter.github.io/automx2/), so when …
[1/9]
-
Changing jobs is a good excuse to refactor my #dotemacs once again.
-
- fridge compressor kicks in (for the nth time in the last hour or two)
- I should put the energy monitoring socket on that fridge. I reckon it would show up a lot of power waste, which might increase my motivation to replace it
- hmm that energy monitoring socket is in the lab, running mini⭐︎
- I am so proud of the low energy result on that server. I should post that screenshot of the power usage to that guy I was talking to ages back
- to find that post, I need to set up elasticsearch for Mastodon. But I've just tweaked php-fpm for NextCloud and it's finally running smoothly. I don't want it to tax the RAM again.
- hmmm... I wonder if I could have elasticsearch running on the on-demand server and schedule it to wake up and index and stuff every so often. It's only running Jellyfin and some other minor stuff
- oooh I want to show dad how Jellyfin works on his new TV...hmmm maybe later. I wanted to get some things done while there is some daylight remaining
This is not an isolated occurrence.
⭐︎ - my main apps server
-
Worse, this is a case of #YakShaving, I'm trying to fix an issue in the #Canasta #MediaWiki #CLI because I want to spin up an instance of #MediaWiki with #CirrusSearch quickly so I can edit the #UI for the #search interface. 😭 😂
And I'm attempting to use #JetBrains #GoLand which documents exclusions for #JS but not for #Go 🥴
-
Worse, this is a case of #YakShaving, I'm trying to fix an issue in the #Canasta #MediaWiki #CLI because I want to spin up an instance of #MediaWiki with #CirrusSearch quickly so I can edit the #UI for the #search interface. 😭 😂
And I'm attempting to use #JetBrains #GoLand which documents exclusions for #JS but not for #Go 🥴
-
@b0rk's threads about debuggers made me nostalgic for #mdb on Solaris and illumos. Currently I'm working on #SPDK, which seems to be only supported on Linux and #FreeBSD . Ever so hopeful, I tried:
[mgerdts@freebsd ~/spdk]$ mdb ./test/unit/lib/bdev/bdev.c/bdev_ut
mdb: no target ctor: No error: 0😦
That's probably a pretty big hint that there is much #yakShaving to do to get the to level of functionality I'd want. Prolly better to write some gdb commands in python.