The problem with markup-based slide decks is I honestly do want to do slide composition in a graphical editor for the same reason it's no fun to write SVG by hand.
The problem with graphical slide deck editors is they're all hot garbage.
... I wonder how insane it would be to do up each individual slide I need for this presentation in Inkscape and then stitch all the SVGs together with deck.js or similar.
25.3.2025 01:59The problem with markup-based slide decks is I honestly do want to do slide composition in a graphical editor for the same reason it's...[current mood: https://xkcd.com/349/ ]
I need someone who already has an account on https://git.lix.systems/ to file a bug report for me. I have repeatedly tried to create an account and the email confirmation email just never shows up.
I would also accept "manual creation of a non-github-based account" for me (as per the FAQ). No, I can't use Matrix to ask for one. I don't want to talk about that.
24.3.2025 18:51[current mood: https://xkcd.com/349/ ]I need someone who already has an account on https://git.lix.systems/ to file a bug report for me. I...on to the next #nix puzzle
(for arbitrary nixos system configuration including disko-based declarative partitioning, how to enable generating *both* test VMs and installers? the obvious answer would seem to be "nixos-generators" but `nixosGenerate { format = "vm-nogui"; ... }` ignores disko configuration inside the `...`.)
24.3.2025 17:56on to the next #nix puzzle(for arbitrary nixos system configuration including disko-based declarative partitioning, how to enable generating...#Nix question: Is there any way at all to make "nix run" not insist on everything being committed to git? I want to be able to test my changes *before* I commit them.
24.3.2025 15:58#Nix question: Is there any way at all to make "nix run" not insist on everything being committed to git? I want to be able to...Does anyone know how much of a problem it is for the bottom of an enameled cast iron pot to look like this, and what, if anything, can be done about it? #cooking #kitchenware
19.3.2025 01:29Does anyone know how much of a problem it is for the bottom of an enameled cast iron pot to look like this, and what, if anything, can be...MoCo should have had the fortitude to make Firefox's User-Agent string be just "Firefox" from eight o'clock Day One. No version number, no OS information, no backward compatibility tokens, nothing but that one word.
18.3.2025 13:58MoCo should have had the fortitude to make Firefox's User-Agent string be just "Firefox" from eight o'clock Day One. No...```
$ nix --version
nix (Lix, like Nix) 2.92.0
```
thank you so much for the flashbacks to my brief time as a web browser developer, I hate it
18.3.2025 13:56```$ nix --versionnix (Lix, like Nix) 2.92.0```thank you so much for the flashbacks to my brief time as a web browser developer, I hate itTwo replacement oven igniters have now failed on me within six months of installation; am starting to wonder if this oven has a suicide circuit. I can tell from the accumulated cosmetic damage that it was never intended to be used as long as it has...
16.3.2025 20:48Two replacement oven igniters have now failed on me within six months of installation; am starting to wonder if this oven has a suicide...Spending a chunk of my weekend wrangling servers and once again frustrated with Guix in particular for how heavyweight the package manager is. There's this one VM that only needs like 5-10G of disk space* and 1G of RAM to do its actual _job_ but if I don't provision it with twice as much RAM and four times as much disk, `guix pull` and `guix system reconfigure` are liable to run the thing completely out of storage and crash.
I have a concrete idea for what to do about this, I call it a "drone" deployment of a declaratively configured OS. In Guix terms, this would be a type of system image, in which the guix-daemon and the `guix` command are *not* included. The store would include only the packages required at runtime by the operating-system spec, not any of the packages required to rebuild them.
The idea is that you have a separate beefier machine that rebuilds the image periodically, and then you push that image to the drone somehow, ideally in a way that mimics `nixos-rebuild --boot` (i.e. the running system is not affected until you reboot it).
In addition to making it possible to use a smaller machine or VM instance with this kind of OS, this should also be good for server hardening. The store could be kept read-only, you wouldn't have to consider the package manager as part of the attack surface, etc.
Has anyone done anything even vaguely like this already? For any base OS, not just declarative distributions of Linux?
* the part of me that grew up in the days of 1.44MB floppy disks is horrified that this is a *small* amount of disk space, but that's a me issue
16.3.2025 15:36Spending a chunk of my weekend wrangling servers and once again frustrated with Guix in particular for how heavyweight the package manager...Wanted: Alternative DOI resolution service that prefers to send you to any available un-paywalled copy of the publication it can find
14.3.2025 16:34Wanted: Alternative DOI resolution service that prefers to send you to any available un-paywalled copy of the publication it can findSince we were just talking about magic numbers, let's get a thread going on other common mistakes people make when designing binary file formats. I'll start:
* Inconsistent byte order, as mentioned earlier
* Record fields whose size varies with the writer's ABI
* Writing C structs (or equivalent) to disk all at once instead of field by field
* Optimizing a write-rarely-read-often format (which almost all binary formats are) for ease of *writing* rather than ease of reading
* Inventing your own compression algorithm
* No room left for future extensions
* No provision for metadata
Here is a template. If you follow this template for your binary file format's magic number, you will be doing it better than a depressingly large number of senior software engineers.
First eight bytes of the file:
0xDC 0xDF X X x x (0x01 0x00 | 0x00 0x01)
0xDC 0xDF
are bytes with the high bit set. Together with the next two bytes, they form a four-byte sequence that cannot appear in any valid ASCII, UTF-8, Corrected UTF-8, or UTF-16 (regardless of endianness) text document. This is not a perfectly bulletproof declaration that the file does not contain text, but it should be strong enough except maybe for formats like PDF that can't decide if they're structured text or binary.
X X x x
: Four ASCII alphanumeric characters naming your file format. Make them clearly related to your recommended file name extension. I'm giving you four characters because we're running out of three-letter acronyms. If you don't need four characters, pad at the end with 0x1A
(aka ^Z
).
The first two of these (the uppercase Xes) must not have their high bits set, lest the "this is not text" declaration be weakened. For the other two (lowercase xes), use of ASCII alphanumerics is just a strong recommendation.
0x01 0x00
or 0x00 0x01
: This is to be understood as a 16-bit unsigned integer in your choice of little- or big-endian order. It serves three functions. In descending order of importance:
It includes a zero byte, reinforcing the declaration that this is not a text file.
It demonstrates which byte ordering will be used throughout the file. It does not matter which order you choose, but you need to consciously choose either big- or little-endian and then use that byte order consistently throughout the file. Yes, I have seen cases where people didn't do that.
It's an escape hatch. If one day you discover that you need to alter the structure of the rest of the file in a totally incompatible way, and yet it is still meaningfully the same format, so you don't want to change the name characters, you can change the 0x01
to 0x02
. We both hope that day will never come, but we both know it might.
another day, another binary file format with a badly designed magic number
not gonna call it out specifically but here are some RFC2119 MUSTs for magic number design:
MUST be the very first N bytes in the file
MUST be at least four bytes long, eight is better
MUST include at least one byte with the high bit set
MUST include a byte sequence that is invalid UTF-8
SHOULD include a zero byte, but you can usually get away with having that be part of the overall version number that immediately follows the magic number (did I mention that you really SHOULD put an overall version number right after the magic number, unless you know and have documented exactly why it's not necessary, e.g. PNG?)
good examples:
bad examples:
(to be fair there is somewhat more to it than that, I never saw a Forth interpreter try to use CPS soup for instance).
12.3.2025 15:13(to be fair there is somewhat more to it than that, I never saw a Forth interpreter try to use CPS soup for instance).me reading https://dl.acm.org/doi/pdf/10.1145/3485513 : ... so I see you've reinvented the subroutine threaded Forth interpreter, innit?
12.3.2025 15:11me reading https://dl.acm.org/doi/pdf/10.1145/3485513 : ... so I see you've reinvented the subroutine threaded Forth interpreter, innit?that feeling when your attempt to write a basic test, for an ancillary feature so unimportant you could get away with leaving it out entirely, runs smack into a gaping hole in your understanding of how the *core* functions of the software under test operate, and you had no idea there was such a hole until you fell in
10.3.2025 15:31that feeling when your attempt to write a basic test, for an ancillary feature so unimportant you could get away with leaving it out...went away and did something else for an hour, realized the apparently insurmountable obstacle to the original plan was not actually an obstacle at all. task complete \o/
8.3.2025 20:12went away and did something else for an hour, realized the apparently insurmountable obstacle to the original plan was not actually an... this morning was a complete waste of five hours and an almost complete waste of $1
I have ruled out several concrete approaches to solving this problem and I was going to have to spend that $1 eventually
If we could build anything we wanted on the far side of the moon - ignoring all questions about getting the parts there or setting them up or maintaining them afterward - what kind of telescope should we build for the greatest overall improvement in our ability to do astronomy?
7.3.2025 19:30If we could build anything we wanted on the far side of the moon - ignoring all questions about getting the parts there or setting them up...the noodle that cannot be baked is not the true noodle
6.3.2025 03:41the noodle that cannot be baked is not the true noodle