Conduit is in no way compact either. I tuned its caches because two gigs of ram seemed ridiculous for a single-user instance but I only got the mobile client sync lag as a result.
XMPP used to be so much nicer...
Conduit is in no way compact either. I tuned its caches because two gigs of ram seemed ridiculous for a single-user instance but I only got the mobile client sync lag as a result.
XMPP used to be so much nicer...
I think the point here is moving away from long-lived ssh keys and using whatever IdP you have (enterprise cloud or local oidc) to provide short-term ssh keys. It generally improves the security posture as it's similar to ssh with certs but less painful to set up.
This is the best answer. Your router protects you from the outside, but a local firewall can protect you from someone prodding your lan from a hacked camera or some other IoT device. By having a firewall locally you just minimize the attack surface further.
Unfortunately, matrix doesn’t have a viable plan for federation, meaning that you'd better onboard on matrix.org or else.
People saying self-hosting mastodon is hard never had to touch matrix. It's not hard, the protocol is literally broken to the point where starting again is not an option.
I’m all in for ditching discord, but matrix is at most mediocre in almost every aspect. It's wild how much easier it used to be with xmpp.
First party app, yes. Thanks for the recommendation, I’ll give swiftfin a try.
Jellyfin looks pretty bad on an iPad. Subtitles setting keep getting reset on their own, it doesn’t understand basic keyboard controls (spacebar to pause), the UI is overall tiny. Oftentimes it will forget to save the spot where I finished watching and on the next launch will happily play the movie from beginning.
Matrix is spectacularly cursed to the point of being unusable if you self-host it. The protocol is dumb enough to lock you out of rooms hosted on another server forever if anything goes wrong with the key rotation.
I just made a mirror out of two NVMes―they got cheap enough not to bother too much with the loss of capacity. Of course, that limits what I can put there, so I use a bit of a tiered storage between my NVMe and HDD pools.
Just think in terms of data loss: are you going to be ok if you lost the data between backups? If the answer is yes, one NVMe is enough.
the issues related to that macro still exist, but the author seemed to call it out and link to an article about it (which doesn't seem disingenuous at all to me).
That's fair, I stand corrected and I overreacted a bit.
I stumbled on the unintended cancellation a few times, but I’m used to select! paradigm from the other languages (and not used to how differently it behaves). I suppose I just expect the examples of its usage to be explicit and actually show what it takes to make select! behave in a way that doesn’t abruptly drop your async function after only going though half of it.
What I find slightly dishonest is bits like
This way of using select in a loop could potentially cause issues regarding cancellation of futures (although in this case it’s fine)
The select example is pretty straightforward and comparable to such in other languages, even to Go's switching on channels. But rust hides an extra bit of complexity with the cancellation concerns that people don’t want to talk about unless absolutely necessary, and it is necessary in so many cases!
What's going to pay for the search part, then?