Just a basic programmer living in California

  • 2 Posts
  • 5 Comments
Joined 10 months ago
cake
Cake day: February 23rd, 2024

help-circle
  • hallettj@leminal.spacetoLinux@lemmy.worldTips for kid workstations
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    2 days ago

    I set my kid up with Silverblue recently. After seeing it in use for a bit, as a power user I think it’s got some obnoxious compromises, and NixOS is a much better way to get the same benefits, and encourages safe experimentation at every level of the system. But for a beginner-friendly system that is very stable I think ostree distros like Silverblue make sense. Mostly stuff works fine, but you want to break out rpm-ostree occasionally to get a native package.

    I have another kid on Fedora as a control. So far things are fine. Previously I had both kids on Manjaro, but they weren’t able to keep up with upgrades long-term (over the course of a few years) without some intervention from me.

    Like I said in Silverblue stuff mostly works nicely:

    • Bottles running from Flatpak is running games in Battle.net without problems
    • Minecraft is running from the launcher installed from Flatpak
    • Roblox is running using Sober from Flatpak

    I think we may have installed steam natively using rpm-ostree. I think we ran into some sort of issue running Overwatch, and I quickly opted for the native steam package to get things working instead of trying to fix the issue using Flatseal. But I don’t remember what that issue was so I can’t say the Flatpack steam won’t just work for you. Maybe it was very slow Vulkan shader processing?

    My kid likes Minecraft mods so he needed java in his path to run installer jars. AFAICT in immutable distros the options for setting up CLI programs are either to run a different distro with native packages in a container (distrobox), or drop to rpm-ostree. I opted for the latter.

    On the hardware side I think one of the biggest factors in building a snappy system is choice of SSD. Like you said, spinning metal is out. But the idea that SSDs are all equal is a common misconception. The thing to do nowadays is to use an M.2 form factor which is where you get a little board that goes into a slot directly on the motherboard, sort of like a small, sideways RAM stick. That plugs directly into the PCIe bus which gives it tremendous bandwidth. Drives that support newer PCIe versions can be faster due to having access to more bandwidth, but the design of the drive itself is also a constraint.




  • Docker Compose runs services, manages dependencies between services, isolates each service in a container, manages a private network. Out-of-the-box flakes don’t do any of that - except arguably running one service at a time. What flakes do is build software, which is the thing that Docker Compose doesn’t really do. (Or doesn’t do well.)

    I’d compare flakes to Makefiles with waaay more expressiveness and reproducibility. Or maybe a comparison could be to a Dockerfile, minus containerization, with waaay more expressiveness and reproducibility.

    There are tools you can add on to get Nix to do what Docker Compose does:

    Arion is a Nix frontend for Docker Compose. You’re still using Docker Compose, but it layers on the extra expressiveness and reproducibility of Nix flakes, or other kinds of Nix expressions.

    process compose flake is similar, but instead of Docker Compose it is a frontend for Process Compose. You get a similar result, but without containerization. That can potentially avoid the need to run in a VM on non-Linux systems that don’t natively support containers.