kivikakk.ee

on llms (II)

It is phenomenal that, for all the hand-wringing about the wastefulness of Electron apps and bloat of modernity, the industry managed to find a way to take that to the n’th degree, and somehow have ~everyone buy into it, even as the results range consistently from mediocre to outright deleterious, not to mention the frankly insane externalities. May deep shame find its way under the skin of those peddling and enabling this multidimensional clusterfuck of an insult to what is good.

girls kissing, in your area

“It could never work. She doesn’t like Nix flakes.”

“a gender terrorism, if you will.”

I’ve just had the pleasure of reading three interesting pieces of discourse.

First up, Alyson Escalante’s 2016 piece “Gender Nihilism: An Anti-Manifesto”. There is very little about this I have to disagree with.

Then, her own 2018 response to that work, “Beyond Negativity: What Comes After Gender Nihilism?”. On the one hand, pushing for a more material analysis is excellent, though I feel like all the work is actually done here by Wittig and this merely restates it

On the other hand, what on earth is this ending? It reads just like any other wishy-washy proclamation, missing only a communism,-now!.88x31.gif to slap on your homepage in solidarity. This anti-anti-manifesto is decidedly a manifesto.

The comments, however, conceal a banger which I nearly missed. “blister” (@destroysound) starts, and then wow, they continue. I don’t trust Medium to continue existing for that much longer — or even the Wayback machine (which Medium very carefully tries to break :) love it) — so I’m reproducing it here in its entirety.

There is very little about this I have to disagree with.


Read more

íqán — sync Nix flake pins between projects.

I use Nix flakes a lot — both in development, and in how I deploy artefacts. (You can see my primary flake’s 17 inputs!)

One thing that has gotten a bit annoying, though, has been keeping the pins somewhat in sync. I regularly end up with a dozen nixpkgs and fenix and (etc. etc. etc.) variants in my Nix store, meaning I’d also have half a dozen different Rust, Erlang, Elixir and whatever other versions installed too. If I dare nix-collect-garbage -d, then working on any given project might give me a surprise as it turns out it had a slightly older pin and I actually need to wait for its special magical Elixir version.

And so on!

Using inputs.X.follows is all good and well when combining them into a unified whole, but I don’t use (and don’t intend to use) global devShells — I want each project to stand on its own. So, instead, I want a way to compare and optionally sync the locked versions from some reference to my projects. For a while I found it was a good enough hack to just cp ~/g/vyx/flake.lock . and then let the next Nix invocation remove all the irrelevant ones … but then I’d introduce a dependency which hitched its own nixpkgs along for the ride, and for Reasons™ that would get called "nixpkgs" in flake.lock, and my actual primary Nixpkgs pin called "nixpkgs_2". For a while I was then accidentally using that reference everywhere. Goodness.

Here’s íqán. It takes a plan file, which specifies the source (Vyx, for me), and then a list of targets along with which inputs should be synced. Here’s an excerpt of a sample run:

$ iqan ./iqan.json
Source: /Users/kivikakk/g/vyx
Target: /Users/kivikakk/g/a1d
-----------------------------
input nixpkgs is synced
input fenix is synced
Target: /Users/kivikakk/g/chog
------------------------------
input nixpkgs is synced
Target: /Users/kivikakk/g/cmark-gfm-hs
--------------------------------------
input nixpkgs is synced
Target: /Users/kivikakk/g/comenzar
----------------------------------
input nixpkgs is ahead of source (!)
source: 1751741127 (2025-07-05 18:45:27 UTC)
target: 1752620740 (2025-07-15 23:05:40 UTC)
(S)ync to source, or (I)gnore? s
Target: /Users/kivikakk/g/comrak
--------------------------------
input nixpkgs is behind source
source: 1751741127 (2025-07-05 18:45:27 UTC)
target: 1748437600 (2025-05-28 13:06:40 UTC)
(S)ync to source, or (I)gnore? s
input "fenix" has an original mismatch
source: github:nix-community/fenix
target: github:nix-community/fenix/monthly
(S)ync to source, or (I)gnore? s
[!!!] update flake.nix please!
Target: /Users/kivikakk/g/iqan
------------------------------
input nixpkgs is synced
input fenix is synced
Target: /Users/kivikakk/g/kivikakk
----------------------------------
input nixpkgs is synced
Target: /Users/kivikakk/g/koino
-------------------------------
input nixpkgs is synced
Target: /Users/kivikakk/g/kv
----------------------------
input nixpkgs is synced
input fenix is synced
Target: /Users/kivikakk/g/nossa
-------------------------------
input nixpkgs is synced
input fenix is synced
Target: /Users/kivikakk/g/notes
-------------------------------
input nixpkgs is synced
Target: /Users/kivikakk/g/outfoxsync
------------------------------------
input "nixpkgs" has an original mismatch
source: github:NixOS/nixpkgs/nixos-25.05
target: github:NixOS/nixpkgs/nixos-24.11
(S)ync to source, or (I)gnore? s
[!!!] update flake.nix please!
$

It does the job. :)

Argon ONE V3 fan/power controller.

Seems almost a rite of passage to write one’s own for this accursed piece of hardware.

(The hardware’s actually quite OK, screw threading notwithstanding, but Argon 40 cannot write software to save themselves.)

https://nossa.ee/~talya/a1d