Just another Swedish programming sysadmin person.
Coffee is always the answer.
And beware my spaghet.
Going to be really amazing to play Factorio again without knowing how to solve everything.
In general, browser benchmarks seem to often favor Firefox in terms of startup and first interaction timings, and often favor Chrome when it comes to crunching large amounts of data through JavaScript.
I.e. for pages which use small amounts of JavaScript, but call into it quickly after loading, Firefox tends to come out on top. But for pages which load lots of JavaScript and then run it constantly, Chrome tends to come out on top.
We’re usually talking milliseconds-level of difference here though. So if you’re using a mobile browser or a low-power laptop, then the difference is often not measurable at all, unless the page is specifically optimized for one or the other.
There’s a bunch of extensions that allow you to switch user-agent easily, I personally use this one, it includes a list of known strings to choose between as well.
They used to also use the unreleased version 0 of shadow DOM for building the Polymer UI, which - being a Chrome-only prototype - understandably didn’t work on Firefox, and therefore instead used a really slow Javascript polyfill to render its UI.
I haven’t checked on it lately, but I imagine they must’ve changed at least that by now.
One thing you can test is to apply a Chrome user-agent on Firefox when visiting YouTube. In my personal experience that actually noticeably improves the situation.
They couldn’t possibly do that, the EU has banned it after all.
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
Go really does do well in the zero-to-hero case, that’s for certain. Unfortunately it doesn’t fare nearly as well in terms of ease when it comes to continued development.
Well, one part of it is that Flatpak pulls data over the network, and sometimes data sent over a network doesn’t arrive in the exact same shape as when it left the original system, which results in that same data being sent in multiple copies - until one manages to arrive correctly.
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)
If you’re going to post release notes for random selfhostable projects on GitHub, could you at least add the GitHub About text for the project - or the synopsis from the readme - into the post.
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.
To be fair, having to interact with MS Teams with any part of your body is painful.
Haven’t really used any proper JMAP clients - since the setup is broken anyway, so mainly just curl.
You could also just run IMAP/JMAP/SMTP as separate components, I can’t see any place in the Stalwart documentation - or in the Docker image itself - where monolith is the only option.
I haven’t tested the setup myself yet, but me and another root are planning on testing a setup of Stalwart to replace a semi-broken IMAP/JMAP setup for a computer club, keeping the SMTP as is.
Flatpak already creates executable wrappers for all applications as part of regular installs, though they’re by default named as the full package name.
For when inkscape has been installed into the system-wide Flatpak installation, you could simply symlink it like; ln -s /var/lib/flatpak/exports/bin/org.inkscape.Inkscape /usr/local/bin/inkscape
For the user-local installation, the exported runnable is in ~/.local/share/flatpak/exports/bin
instead.
I can already imagine so many fun ways this could be used.
“We interrupt your regular scheduling to bring you this additional bit of Factorio hype.”
It’s somewhat amusing how Itanium managed to completely miss the mark, and just how short its heyday was.
It’s also somewhat amusing that I’m still today helping host a pair of HPE Itanium blades - and two two-node DEC Alpha servers - for OpenVMS development.