I've been saying this for years! If properties of a shape cannot be expressed with finite precision then how can that shape exist in a universe with clunky restrictions like the planck length?
The other gotcha I ran into was a problem with volume permissions. This is on NixOS running MongoDB. This might not be a problem with other services. The Arion doc example for volumes has you store the volume in a repo directory. Here is what I tried:
nix
{
services.mongodb = {
service.image = "mongo:6-jammy";
service.volumes = [ "${toString ./.}/mongo-data:/data/db" ]; # <-- volume defined here
};
}
When I tried this the volume data in my repo directory is owned by avahi, and is not readable by my user account. Subsequent arion commands fail trying to read those files.
This fix is to let docker-compose manage the volume for you:
nix
{
services.mongodb = {
service.image = "mongo:6-jammy";
service.volumes = [ "mongo-data:/data/db" ]; # <-- volume defined here
};
docker-compose.volumes = {
mongo-data = null; # <-- this name matches the volume name referenced in the mongodb service
};
}
I noticed that Arion has an interesting option, useHostStore = true, for services that are defined using a command or a nixos config instead of a Docker image. This mounts the host system's /nix/store directory in the running container. It looks like the image that gets produced is only a customization layer with the command to run, environment variables, etc. It looks quite efficient.
I haven't checked, but I'd guess that if you don't use useHostStore you get layered images. Those are great for image layer reuse, but they do involve copying store paths to the local image repository.
My filter for app choice is support for list view. Fortunately there are multiple options: Sync and Connect have list views that work for me. I am curious about other list-view clients that I haven't tried.
I've also been playing some Diablo IV. I've been taking my time - there is a lot to enjoy in that game. I just teamed up with my brother to finish the last act of the main story.
Oh no! I'm gonna guess that lots of DNS caches picked up the bad configuration, and they couldn't do anything but wait about 86400 seconds for those caches to expire. Caching is so hard!
My memory is fuzzy, but I think some of the details are:
We know how to make Roman concrete, but it's not necessarily the best choice, and it might be more expensive than is appropriate for a given project.
Ancient structures don't have rebar, so they don't degrade due to rust causing expansion. But rebar is so useful that it's often a worthwhile trade-off.
Definitely see the other comments here about survivorship bias, and higher demands on modern structures.
The proposal here is to use 11-character base 58 IDs as a more human-friendly alternative to UUIDs. The article makes a good point that 58^11 is a large enough space to uniquely identify probably anything you want to. The article also talks about avoiding monotonically-incremented IDs to avoid leaking information. It looks like the idea is to randomly generate IDs? But the article doesn't discuss collision probabilities. (Maybe this is covered in the linked Tom Scott video.)
Anyway according to an online calculator I found, an 11-character ID using a 58 character alphabet will have about a 1% chance of a collision after 1 billion generated IDs.
The article also argues that using UUIDs for collision resistance combined with user-facing friendly IDs gives you the worst of both worlds which makes sense to me.
I think one of the most impactful choices in my last build was choosing a fast SSD. Not all SSDs are the same! Nowadays you can get NVMe drives that operate over PCIe instead of SATA which provide much higher throughput.
You can either get an M.2 form factor that plugs into a special socket on the motherboard and takes up minimal space, or a PCI card that plugs into the same type of slot as a graphics card. (Note that some M.2 drives / sockets are SATA, not NVMe, so watch out for that distinction.)
There is also some difference between NVMe implementations depending on which PCIe version they support. And you'll want a motherboard that implements the same PCIe version. This applies to both M.2 and PCIe SSDs.
This stuff might be old enough that you've already encountered it. But it was new to me when I built my last PC in 2020. Other than that building was pretty much as I remembered from previous decades.
This leads me to another thought: are station residents charged for using the replicators in their quarters? I imagine the replimat charging like other station businesses; so what about private replicators? Or maybe I'm wrong, and the replimat is a free public service?
I'm guessing replicator use would be free under Federation jurisdiction the same way Quark isn't charged rent. But on the other hand, it's a Bajoran station - Starfleet only administers it. Now I'm wondering what kind of negotiating went on to get the struggling provisional government to pass up revenue from DS9 rental spaces.
Another time money comes up is the episode, In the Cards, where Jake wants to buy a Willie Mays baseball card to cheer up his dad. He talks Nog into paying for it because as a Federation citizen Jake doesn't have any money.
I found some of the dialogue on Memory Alpha:
It's my money, Jake! If you want to bid at the auction, use your own money.
I'm Human, I don't have any money.
It's not my fault that your species decided to abandon currency-based economics in favor of some philosophy of self-enhancement.
Hey, watch it. There's nothing wrong with our philosophy. We work to better ourselves and the rest of Humanity.
What does that mean exactly?
It means… it means we don't need money!
Well, if you don't need money, then you certainly don't need mine!
I also imagine Starfleet officers in a non-Federation posting getting stipends. Or maybe Quark and other business owners bill the Federation for whatever Federation citizens buy? And maybe that arrangement doesn't extend to the auction with the baseball card?
There are references to Jake buying from some of the station's businesses. I think I remember him buying jom-jom sticks, and dining at the Klingon restaurant. (Did Jake ever use a holosuite on his own?) I'm thinking either Jake has some sort of allowance or stipend, and is exaggerating when he says he "doesn't have money", or those businesses make special arrangements for Federation citizens.
Have you tried using the #[debug_handler] macro on get_all_armies? Without that macro handler errors don't tell you much more than "something isn't right".
Generally this kind of error indicates some type in the handler signature doesn't implement a necessary trait. Maybe you accidentally lost an automatically-derived trait like Send + Sync? The macro is the easiest way to check.
I built a wireless Corne keyboard from a kit. It uses nice!nano controllers running ZMK. Previously when I used a Kinesis Advantage 2 I replaced its controller board with a KinT which uses a Teensy as its controller. Customizing the keyboard with custom firmware is much nicer than customizing in the OS. But it can be a commitment. Although there are some keyboards that come the reprogramming options out-of-the-box, like the Kinesis Advantage 360, the Moonlander, all of Keyboardio's models.
Oh damn, Thunder has polish!