I've realized most of my blog post is not really about NixOS, it's just about this particular TUXEDO laptop requiring special tweaks to work properly. I've set up Debian 13 with Nix (plus Home Manager) in a VM to try it out and have realized that on the real laptop I would need to perform the same tweaks: install special drivers, install the TUXEDO Control Center (albeit using a supported .deb), and add those same kernel params. The only "care-free" option would be using TUXEDO OS, which I could explore. I've run NixOS on e.g. an AMD ThinkPad T14 and it was seamless, with no tweaks needed.
I suppose using something other than NixOS would indeed make some things easier (in my case Vanta, `pinentry` programs, Playwright and Cypress) and would perhaps let me live a more hands-off experience. I currently run `nix flake update` on my system way too often... but other than that, NixOS is not really getting in the way, at least as far as using this laptop goes.
A while ago I made a fortune database that draws from Marcus Aurelius's Meditations. I used to have a tmux pane that ran them on my work session boot script :)
The basic data model was invented a half-century ago. Expressiveness of basic SQL is not different depending on the engine. Relational algebra is the same however it's implemented.
Some databases have extensions, and those are okay to include. You should be able to either (1) choose to not use those or (2) lock yourself into a subset of databases which support the extension you need.
It's good if those extension were namespaced. For example:
* If I want to use a postgres JSON type, it should live under postgres.json (or if it cuts across multiple databases, perhaps extensions.json or similar)
* Likewise, database built-in functions, except for common ones like min/max/mean, should be available under the namespace of those databases.
* It's okay if some of those are abstracted out into a namespace like extensions.math, so I can use extensions.math.sin no matter whether the underlying datastore decided to call it SINE, SIN, SINE_RADIANS, SIN(x/180*PI), and if it doesn't have sine, an exception gets raised.
The basic relational data model provides the best expressiveness for representing data and queries created to date, and doesn't differ. It's a good theoretical model, and it works well in practice. There's good reason it's survived this long, despite no lack of competition. The places expressiveness differs are relatively surface things like data types and functions.
It's also okay to have compound types, where I am explicit about what the type is in different databases. e.g.: string_type = {mysql: 'TEXT', postgresql: ...
I bought a Biostar J4125NHU motherboard and put it in a small case with two 2.5 HDDs and two SSDs and am using it to download shows and movies from a Usenet provider and stream them with Jellyfin.
The motherboard was a huge pain to work with, and I had to return two (!) units; I made the third one work. The first two would not boot in the same configuration.
I made a fortune database from Marcus Aurelius's Meditations. You can go "fortune /path/to/meditations" and get a random paragraph from the book. But you need to build it first.
Totally off-topic, but while reading this I was thinking "that is exactly what I would say". Then I saw your username... it looks like we share not only a taste for monitors but also a surname!
I've realized most of my blog post is not really about NixOS, it's just about this particular TUXEDO laptop requiring special tweaks to work properly. I've set up Debian 13 with Nix (plus Home Manager) in a VM to try it out and have realized that on the real laptop I would need to perform the same tweaks: install special drivers, install the TUXEDO Control Center (albeit using a supported .deb), and add those same kernel params. The only "care-free" option would be using TUXEDO OS, which I could explore. I've run NixOS on e.g. an AMD ThinkPad T14 and it was seamless, with no tweaks needed.
I suppose using something other than NixOS would indeed make some things easier (in my case Vanta, `pinentry` programs, Playwright and Cypress) and would perhaps let me live a more hands-off experience. I currently run `nix flake update` on my system way too often... but other than that, NixOS is not really getting in the way, at least as far as using this laptop goes.