an image

uh oh...

It finally happened.

I started using Nix.

Whyfor?

I have a bunch of computers. I split my time between CT and NY and have an archlinux desktop computer in both locations. I have a mini, lightweight laptop also running archlinux. I have a windows laptop and a macos laptop. I have a little intel NUC (again running archlinux).

I also access a bunch of VMs. These are usually running ubuntu. My blog runs on a VM. My work projects run on VMs. I ssh into them to poke around every so often.

Bluetooth

I have a dream. The dream is being able to emit sound from any one device and have it come out any set of speakers I desire. If I want my phone to stream audio to my bookshelf speaker, I want that to be seemless. If I want both my phone and my computer to output to the same speaker simultaneously, I want that to be seamless too. If I want my laptop to send audio and play through my phone speaker, that's awesome.

Last year I took the first step to making this dream a reality. I bought a USB bluetooth dongle thing hoping that it would allow me to add another way to send/receive audio to whatever device I plugged it into.

It wasn't so easy. The firmware on the device misrepresented its capabilities, which meant that the handshake with the operating system failed, and I couldn't use the device for what I wanted to. In order to get it working I'd need to build a custom kernel with some parts of the handshake ignored (enabling a so-called HCI_QUIRK) and try again.

I had never cracked open the linux source code before or built a kernel module or any of that, but I followed some guides online and got it working a couple days later.

But after that, I lost motivation to work on the project. I was concerned that I had installed this kernel module thing and didn't really know if or how it would be updated. I didn't know if there was going to be some software that I'd install while the kernel module was locked at a particular version and the software would break for some unknown reason.

The Fear

screenshot

Occasionally after updating my systems something strange happens. Like I plug in a mouse and can't get my cursor to move. Rebooting basically always fixes these kinds of problems, but in the back of my mind I'm always afraid that maybe this is the day that whatever configuration file I changed and forgot about is going to mess things up. I'm afraid that I'll never track down the root cause of the problem, or the problem will come up when I have some other important work to do, and I happen to be traveling and unable to access another one of my systems where everything is working well.

I am typically anxious during archlinux updates because I still don't consider myself enough of an expert to get past every problem I might encounter, despite the fact that I haven't had any major incidents while using it for the last 5 years.

Enter Nix

I noticed that repl.it wanted to hire engineers who were comfortable with nix os, and that they managed all their stuff with nix. Repl.it is going places, if you ask me.

I read this blog post about someone else's successful transition from archlinux to nix https://blog.tomontheinternet.com/posts/from-arch-linux-to-nixos/ and started to feel more inspired to try it.

Exit Nix

I tried out nix for a few days on a project, but didn't really warm up to it.

https://github.com/johnshaughnessy/osai-nix/

I suspect it might be the right tool for a project someday, but today is not the day.