EdTheDev
I help software developers secure their work supporting research and higher education.
Here you may find my occasional blog posts with DevOps recipes or example code in obscure programming languages.
Check out my other Mastodon for silly sketches and art generated using code.
Since I re-image my Linux desktop so often, I have given a great deal of thought to preserving and re-creating my configurations.
So I wrote a single bash file to rule them all, sort of.
My script, dot, creates a tiny CLI Ansible installation, and interactively helps write a short Ansible playbook that defines symlinks, install scripts and Python environments.
I download the script and run ./dot --help to get started. Use dot check to review selections, and dot apply to ensure localhost is configured with them.
Because it uses Ansible under the hood, it doesn't do unecessary work, it provides detailed output, and it creates a file with a full definition of the configuration in a well know standard (which can always be re-used later, even without my script.)
If you add dot to your own dotfiles repository, and organize yours like mine (files, installs and reqs) then dot will use find your folders and offer to link your files, run your install scripts, or create your Python environments.
https://codeberg.org/EdTheDev/dotfiles/src/branch/main/bin/dot
@buckfiftyseven@mastodon.social Yes! Exactly!
For quite awhile, I just did an apt list and emailed it to myself.
But then I was thinking about the trade-offs between Ansible (great, but I'm lazy) and Bash (fast and practical, but costly to maintain) and I realized I could write something weird to split the difference.
I've used this weird little script enough times, I don't hate it.
I've been thinking a next step may be to try to update it to a self contained portable Python app, and package that for apt install...
@bkuhn@fedi.copyleft.org @next@fedi.copyleft.org
Interesting read. Thank you for sharing it here!
With apogogies for length, this got me thinking, and I got stuck on one point that I think merits more discussion:
Imagining that AI can rewrite any code is doing ourselves - as maintainers - a disservice.
AI can remix any code, but getting code secure, correct and efficient, while covering all edge cases is really difficult.
AI can help with really difficult problems, but the easy hand-wave version of AI has nothing useful to contribute.
Across my career - I have seen hundreds of problems that I thought were easy to quickly code perfect solutions for.
In every single case, what was really happening was that I had a deeply naive understanding of the problem space.
AI code duplicates my junior developer naivety and multiplies it's harm through rapid automation.
There are certainly plenty of cases where that's still good enough, just like my early code contributions were still good enough for those who hired me.
But the narrative that cheap AI remixes will meaningfully and lastingly replace important code is just sales hype bullshit that our coding communities seem to keep falling for.
Hard problems rarely yield to anything less than hard work.
For important code, we have to think about maintenance lifecycles, supply chain protections, and sometimes even a clean title of intellectual property - all of which most forms of AI code assist makes harder to manage, not easier.
We know this parable, but it's not new or interesting or exciting enough to get attention, in the current discourse.
The rabbit wins trivial sprints. The tortoise wins marathons while the rabbit is busy celebrating prematurely.

