This year I will be doing improvements to my development workstation that I have been wanting for long time. Here is my "dream" platform for development.
NixOS
I was an early adopter of Docker back in 2013/2014. I remember walking into the office, first day on a new job. After a few docker pull
commands I instantly had my development stack available, configured as I want it to be already. By the end of the day I had a website up and running with a good number of customizations. My boss was impressed.
For some time I wished I could do the same so easily for the operating system as well. I've been keeping an eye on the Nix package manager for almost a decade now. I never managed to get time to go far with it yet, but with the recent releases of NixOS things seem promising. I gave it a try on an old laptop, but it didn't recognize the live USB as a boot device.
Looking forward to make it work soon!
Ceph
I have backup scripts based on rsync
running regularly and ensuring that I have copies of my work on external disks. It's not optimal though; they consume CPU and I/O, even though I control them with ionice
and --bwlimit
. Continual backups that would synchronize the files as they are changed are a bit more involved to setup and a lot of backup software solutions do not support it.
Years ago I tried installing the Ceph file system; it would allow me to unify multiple external hard disks to one device and use data redundancy as an alternative to regular backups. It would also allow me to connect my laptop to the Ceph cluster and have the data automatically synchronized there as well. Going on a trip, or just want to take my laptop outdoors and do some work there? Let the data synchronize and you're good to go!
It was not very straight-forward on Fedora back then. I hope in 2024 installation and configuration will be easier.
k3s
I left Docker behind long time ago in favor of the Podman/Buildah duo and I have built my own scripts for running applications locally - not for any other reason other than Podman Compose not being available back then and for having more flexibility to customize everything to my liking.
The next level will be using k3s so that I run a complete but lightweight development platform locally. I did try it a couple of years ago but I ran into some problems with Traefik and Podman. I hope this year I will be able to polish those rough edges.
Emacs
They say that every 10 years or so you should change your text editor, try something else. No thanks, I'll stick with my trustee Emacs for now. I do need to modernize my setup a bit though, most likely configure tags and consider replacing helm with some of the packages provided by Daniel Mendler, such as vertico, consult, cape etc.
XMonad
I used to work on XMonad many years ago. I eventually dropped it in favor of KDE because, let's face it, I do need a better UI for graphical applications - work is not just coding. I do miss XMonad though and all the power that configuring it in Haskell gives you. I haven't figured this one out yet. I'm currently inclined to have a separate user where I'd run all my development tools - and that will give me better security as well - and switching to another user when I need to run other applications.
Actually, I think that the ideal would be to have the two users active at the same time on different displays using different window managers, but from a quick search this did not seem easily possible out-of-the-box on common Linux distributions. It must be doable though, so let's aim for that.