Just another Swedish programming sysadmin person.
Coffee is always the answer.

And beware my spaghet.

  • 48 Posts
  • 168 Comments
Joined 11 months ago
cake
Cake day: June 11th, 2023

help-circle
  • Go has a heavy focus on simplicity and ease-of-use by hiding away complexity through abstractions, something that makes it an excellent language for getting to the minimum-viable-product point. Which I definitely applaud it for, it can be a true joy to code an initial implementation in it.

    The issue with hiding complexity like such is when you reach the limit of the provided abstractions, something that will inevitably happen when your project reaches a certain size. For many languages (like C/C++, Ruby, Python, etc) there’s an option to - at that point - skip the abstractions and instead code directly against the underlying layers, but Go doesn’t actually have that option.
    One result of this is that many enterprise-sized Go projects have had to - in pure desperation - hire the people who designed Go in the first place, just to get the necessary expertice to be able to continue development.

    Here’s one example in the form of a blog - with some examples of where hidden complexity can cause issues in the longer term; https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-ride





  • We’re mirroring the images internally, not just because their mirrors suck and would almost double the total install time when using them, but also because they only host the images for the very latest patch version - and they’ve multiple times made major version changes which have broken the installer between patches in 22.04 alone.


  • What is truly bloated is their network-install images, starting with a 14MB kernel and 65MB initrd, which then proceeds to pull a 2.5GB image which they unpack into RAM to run the install.

    This is especially egregious when running thin VMs for lots of things, since you now require them to have at least 4GB of RAM simply to be able to launch the installer at all.

    Compare this to regular Debian, which uses an 8MB kernel and a 40MB initrd for the entire installer.
    Or some larger like AlmaLinux, which has a 13MB kernel and a 98MB initrd, and which also pulls a 900MB image for the installer. (Which does mean a 2GB RAM minimum, but is still almost a third of the size of Ubuntu)



  • I’ve been looking at the rewrite of Owncloud, but unfortunately I really do need either SMB or SFTP for one of the most critical storage mounts in my setup.
    I don’t particularly feel like giving Owncloud a win either, they’ve not been behaving in a particularly friendly manner for the community, and their track record with open core isn’t particularly good, so I really don’t want to end up with a decent product that then steadily mutilates itself to try and squeeze money out of me.

    The Owncloud team actually had a stand at FOSDEM a couple of years back, right across from the Nextcloud team, and they really didn’t give me much confidence in the project after chatting with them. I’ve since heard that they’re apparently not going to be allowed to return again either, due to how poorly they handled it.


  • I’ve been hoping to find a non-PHP alternative to Nextcloud for a while, but unfortunately I’ve yet to find one which supports my base requirements for the file storage.

    Due to some quirks with my setup, my backing storage consists of a mix of local folders, S3 buckets, SMB/SFTP mounts (with user credential login), and even an external WebDav server.
    Nextcloud does manage such a thing phenomenally, while all the alternatives I’ve tested (including a Radicale backed by rclone mounts) tend to fall completely to pieces as soon as more than one storage backend ends up getting involved, especially when some of said backends need to be accessed with user-specific credentials.



  • Well, things like the fact that snap is supposed to be a distro-agnostic packaging method despite being only truly supported on Ubuntu is annoying. The fact that its locked to the Canonical store is annoying. The fact that it requires a system daemon to function is annoying.

    My main gripes with it stem from my job though, since at the university where I work snap has been an absolute travesty;
    It overflows the mount table on multi-user systems.
    It slows down startup a ridiculous amount even if barely any snaps are installed.
    It can’t run user applications if your home drive is mounted over NFS with safe mount options.
    It has no way to disable automatic updates during change critical times - like exams.

    There’s plenty more issues we’ve had with it, but those are the main ones that keep causing us issues.
    Notably Flatpak doesn’t have any of the listed issues, and it also supports both shared installations as well as internal repos, where we can put licensed or bulky software for courses - something which snap can’t support due to the centralized store design.
















  • I think the only project I’ve seen so far where I’ve felt that a blockchain has actually been the correct choice is Alfis, which is a decentralized DNS that uses the blockchain as the public append-only ledger that it is, and it uses proof-of-work to add arbitrary costs to updates - to make spamming or namesquatting expensive.