• 3 Posts
  • 101 Comments
Joined 2 years ago
cake
Cake day: June 9th, 2023

help-circle

  • Generally speaking, Linux needs better binary compatibility.

    Currently, if you compile something, it’s usually dynamically linked against dozens of libraries that are present on your system, but if you give the executable to someone else with a different distro, they may not have those libraries or their version may be too old or incompatible.

    Statically linking programs is often impossible and generally discouraged, making software distribution a nightmare. Flatpak and similar systems made things easier, but it’s such a crap solution and basically involves having an entire separate OS installed in parallel, with its own problems like having a version of Mesa that’s too old for a new GPU and stuff like that. Applications must be able to be packaged with everything they need with them, there is no reason for dynamic linking to be so important in Linux these days.

    I’m not in favor of proprietary software, but better binary compatibility is a necessity for Linux to succeed, and I’m saying this as someone who’s been using Linux for over a decade and who refuses to install any proprietary software. Sometimes I find myself using apps and games in Wine even when a native version is available just to avoid the hassle of having to find and probably compile libobsoletecrap-5.so






  • Arch Linux. Everyone said it was hard to use, unstable, etc. but my experience with it has been the exact opposite.

    Yes, the install process is needlessly complicated (although it got a lot simpler now that we have archinstall), but the OS itself is rock solid and rarely has any issues that require more than a reboot or a package reinstall to solve. The AUR is a godsend too if you don’t want or don’t know how to compile stuff from source.


  • The first time I heard about programming being obsolete was when I was taught UML in university. That was over almost 15 years ago and it didn’t happen, if anything programmers now also had to know UML, which isn’t all that bad but it definitely didn’t replace anything, it’s just useful for designing and documenting projects.

    I also heard from colleagues that in the 80s and 90s people said that SQL was supposed to be used by users directly, making (some) programming obsolete.

    Now AI bullshit claims to be making programming obsolete. I won’t hold my breath.







  • I think this one beats them all.

    My home server keeps a few services up, including an instance of Jitsi Meet. The server runs nixos and the nixos package for jitsi is incomplete to say the least and doesn’t even support authentication, so I use the docker-compose version and I have a script that runs periodically to keep it updated. So far so good, right? Well, no.

    Because the server is at home, I have a dynamic external IP address, so I have to use a DDNS provider, but jitsi doesn’t expect this and uses a stun server at startup to determine the public IP of the server once, so if my connection goes down or is restarted and the IP changes, jitsi needs to be restarted or it won’t work anymore.

    The solution?

    • My router runs OpenWrt, so I am able to run a script that checks for external IP changes. When a change is detected, it uses SSH to connect to my server to restart jitsi
    • Because I don’t want the router to just be able to run any command, I created a jitsi-restart user that has no shell
    • When the router tries to log in with its pubkey, sshd creates a file called restartasap in the jitsi folder and closes the connection
    • On the server, there’s a systemd unit running a script as the jitsi user that periodically checks for that file, and if it exists it deletes it and restarts jitsi

    I’ve been running this setup since mid 2020 and I expect this to continue until IPv6 becomes the norm.