Today is about learning. Specifically, #NixOS and #NixFlakes on #aarch64, so that I can print this gorram camera shoe: https://www.thingiverse.com/thing:1721215
This is a form of productively avoiding several things that need doing.
In this case, I'm avoiding the task of rewriting an HTML link assembler shell script in the static site generator, in part because it's terrifying to put my shyte up for anyone to see and comment on and potentially criticize, attack, or take without crediting the appropriate dependencies. Also in part because tech automation going wrong is a huge fear of mine, and being known as the person who inadvertently caused the singularity to start assembling terminators is becoming increasingly a concern as self-modifying codebases and neural networks roam the intertubes. But I digress.
So, today I'm gonna use my procrastination as leverage to accomplish other things which have been procrastinated on. When I do this consistently, eventually I end up with just the one thing in my queue, and having run out of excuses to accomplish it, and with a pile of smaller successes boosting my confidence, the big thing gets done.
Why does this specific task (printing a camera mount shoe) require a deep dive into the ass end of the declarative computing stack? Mainly, because once again I am tired of building, rebuilding, and re-re-building the same solution endlessly. I'm ready to do something that lasts longer and gets crufty more slowly. Half a decade of use, or longer, is the goal here.
It's been nearly a decade since I first installed the #OctoPrint software, and every year or two I've needed to completely re-configure it from scratch. Part of that has been my own lack of cohesive backup solutions for my configs, and part of that is operating system cruft. I made a committment to myself that I'd take the time to do it right with the #EnderV3Pro that I was gifted last holidays, and despite hacking on things for a bit last winter to get a few prints, my committment to that hasn't stuck. So, today I'm poking the Nix Flake for OctoPrint by #viperML (ref: https://github.com/viperML/octoprint-nix/) and using this blogpost by #Tweag (ref: https://www.tweag.io/blog/2020-05-25-flakes/) as a jumping off point. I say "jumping off point" because the blogpost is from two years ago and may not reflect what happens when I actually install this software on my single board computer intended for the print lab.
This is a messy process.
It's trial and error and sometimes waiting long periods of time for someone to build something that is close enough to my competency stack that I can take an angle grinder to the pointy bits and make it fit into what I'm trying to accomplish.
#thisishacking #tweag #viperml #enderv3pro #octoprint #aarch64 #nixflakes #nixos
NixOS specific feature: specialisations
https://dataswamp.org/~solene/2022-08-29-nixos-specialisations.html
gemini://perso.pw/blog/articles/nixos-specialisations.gmi