Just some Internet guy

He/him/them 🏳️‍🌈

  • 2 Posts
  • 584 Comments
Joined 2 years ago
cake
Cake day: June 25th, 2023

help-circle
  • For all its flaws and mess, NFS is still pretty good and used in production.

    I still use NFS to file share to my VMs because it still significantly outperforms virtiofs, and obviously network is a local bridge so latency is non-existent.

    The thing with rsync is that it’s designed to quickly compute the least amount of data transfer to sync over a remote (possibly high latency) link. So when it comes to backups, it’s literally designed to do that easily.

    The only cool new alternative I can think of is, use btrfs or ZFS and btrfs/zfs send | ssh backup btrfs/zfs recv which is the most efficient and reliable way to backup, because the filesystem is aware of exactly what changed and can send exactly that set of changes. And obviously all special attributes are carried over, hardlinks, ACLs, SELinux contexts, etc.

    The problem with backups over any kind of network share is that if you’re gonna use rsync anyway, the latency will be horrible and take forever.

    Of course you can also mix multiple things: rsync laptop to server periodically, then mount the server’s backup directory locally so you can easily browse and access older stuff.


  • Basically comes down to being “advertiser friendly”.

    Because of that:

    • Platforms like YouTube and TikTok downrank you through the algorithm because they can’t put ads on your video to monetize it
    • People probably want to upload talks to YouTube, so it’s taken into account even if there’s nothing preventing you at the actual conference.
    • People don’t want to be censored on those platforms, so other terms are reused to avoid angering the algorithm (so we got, unalive, PDF files, and all that stuff)
    • It bleeds into the common language.

    That’s not new: there’s a reason there’s a million way to talk about taking a shit. Everytime it becomes too popular/“gross”, a new one is born that’s supposedly more classy. Same thing happened with toilets/bathrooms/restrooms/water rooms. I don’t know why we still try to pretend we don’t all take a shit every now and then.


  • Also worth noting that the computations don’t have to be expensive either, it’s only there in cryptocurrencies to artificially limit the number of blocks generated on a public system and tie it into the reward system.

    So for a bank, that could be a plain single iteration of a sha256 hash, and once share everyone agrees those were the transactions and you can’t go back and change one without having to change the whole chain.

    Make it sha1 and you basically have git.

    A blockchain is more or less just an append-only database. Or even an append-only replication log with built-in checksums.




  • At the subatomic scale, things are less particule-like and more wave-like.

    The most famous visualization of this is the double-slit experiment: there’s a source of light, two slits and a wall. There should be two lines right? Nope, you get a wave interference pattern. So which slit did the electron take? Both at the same time, it seems. You can know which path it likely took, but in reality the photon could have taken a detour Taco Bell faster than the speed of light for all we know, as long as the end result doesn’t it’s physically totally fine.

    The crazy part of the experiment is that in order measure which slit the photon actually went through, it would have to interfere with your detector. And because it interacted with your detector, the uncertainty collapses and the whole interference pattern disappears. The measurement causes side effects that affect where it possibly could have gone through. You thus only see paths where it did go through your detector.

    The universe seems to prefer the path of least action. All possible paths are evaluated at the same time, including ones that would violate the speed of light. You won’t catch the universe doing it, but you can observe that photons and electrons make it places they physically shouldn’t be able to, but mathematically, they can and do in the real world. Do they even actually travel any given path? We don’t know, we know it went from A to B with no idea where it was in-between or how fast it went.

    To circle back to your coding example: the particule is a class with getters, but the getters don’t read a property, it makes up the value on the fly. So particule.spin, particule.location and particule.speed would return you the values, but they would be inconsistent. It only materializes on demand when probed, and you can’t get two of them at the same time. When you check you only get one possible value it can have, but you check again and it’s a different value. In C that would be a volatile variable.

    That’s why in atoms you end up with a blurry electron cloud. At this scale, it’s a wave of probable positions, it’s everywhere and nowhere at the same time.

    A quantum state is basically that. It’s not a defined state, it’s an equation of all possible states and how probable it is to be in a given state. The only guarantee you have is that all the state will physically make sense if you measure it, so if you measure the spin of an entangled particule, to stay consistent, the other one will take the opposite state because you can’t catch the universe in a lie. But until you observe that state, it’s both at the same time.

    PBS Space Time is a great channel on YouTube for this.




  • Worth noting that those sites typically use Cloudflare as a way to hide their real servers, both for average users (so you can’t attack the server directly) and law enforcement. You have to get Cloudflare to cooperate and that requires valid court orders from the right countries.

    It’s also a useful double-edged sword: if Cloudflare refuses to cooperate, there’s not much you can do because if you block Cloudflare you also block a ton of legitimate websites, so it forces law enforcement to do a lot of collateral damage. Spain did it, and they ended up blocking a lot of legitimate traffic, upsetting a lot of people. Without Cloudflare they’d just block the pirate site’s IPs and DNS and be done with it.

    The double-edge part is your traffic all goes through Cloudflare, so if they comply and shut you down, you’re shut down until you move to another provider.



  • It helps hackers sure, but it also help the community in general also vet the overall quality of the software and tell the others to not use it. When it’s closed source you have no choice but to trust the company behind it.

    There’s several FOSS apps I’ve encountered, looked at the code and passed on it because it’s horrible. Someone will inevitably write a blog post about how bad the code is warning people to not use the project.

    That said, the code being public for everyone to see also inherently puts a bit of pressure to write good code because the community will roast you if it’s bad. And FOSS projects are usually either backed by a company or individuals with a passion: the former there’s the incentive of having a good image because no company wants to expose themselves cutting corners publicly, and the passion project is well, passion driven so usually also written reasonably well too.

    But the key point really is, as a user you have the option to look at it and make your own judgement, and take measures to protect yourself if you must run it.

    Most closed source projects are vulnerable because of pressure to deliver fast, and nobody will know until it gets exploited. This leads to really bad code that piles up over time. Try to sneak some bullshit into the Linux kernel and there will be dozens of news article and YouTube videos about Linus’ latest rant about the guilty. That doesn’t happen in private projects, you get a lgtm because the sprint is ending and sales already sold the feature to a customer next week.


  • Technically it wasn’t really designed with megainstances in mind that swallows the entire fediverse.

    My instance has no problem whatsoever keeping up and storage is well under control. But we’re few here subscribed to a subset of available communities so my instance isn’t 90% filled with content I don’t care about and will never look at. Also reduces the moderation burden because it’s slow enough I can actually mostly see everything that comes through.

    Lemmy itself is also pretty inefficient in that regard, you can very much make software that pulls instead and backfill local cache as needed.

    Even my Reddit subscriptions would be pretty easy on my instance.



  • One thing to keep in mind is ActivityPub isn’t exactly made for social media in the sense most people use it nowadays. It’s intended to be more like RSS feeds: you’re support to subscribe to stuff like news sites and be able to bring it all into a content aggregator. Seen that way, its design makes a lot of sense.

    It kinda works well for public microblogging as well. It’s when you start involving moderation, voting, sharing, boosting that things get kinda weird.

    I’ll add some of my comments to that discussion.



  • The main issue is when your instance starts federating, accounts are created with a key pair that you will lose when changing software, and generally a whole bunch of URLs will no longer be valid. The actor ID of your user is https://feddit.org/u/buedi, not just buedi. Mastodon might make it https://feddit.org/@buedi instead. As per the spec, that is the canonical URL for the user/actor.

    Other instances will still try to push content to your instance assuming the software it was registered with. So you may continue to receive data for Lemmy communities which Mastodon has no clue what that is or what to do with it.

    You can host the API/frontend on a different domain no problem, but the actual ActivityPub service should be on a dedicated subdomain to avoid the issues.

    That said, I believe after a couple days/weeks, it should eventually sort itself out as your instance keeps erroring out and gets dropped and reregisters with the new software.

    https://seb.jambor.dev/posts/understanding-activitypub/


  • There’s a reason it only supports Pixel phones: none of the other manufacturers produce phones that are suitable for it. All the other ones either don’t let you unlock the bootloader, won’t let you relock it with your own keys, or disables other security featurea. Meaning anyone can just flash whatever code they want to the phone and completely nullify the security model.

    For a bit, OnePlus did support this but they quietly removed that feature with the Android 12 bootloader update, and otherwise cut you off from the TEE anyway so the OS can’t even verify the boot chain.

    The GrapheneOS team said they would happily support other devices if any met their criterias for support. None do. Pixels are the only phone where you can properly flash a custom OS on, and relock the bootloader and disable OEM unlocking like it’s the official OS with all the security features functional.




  • Sometimes, shit just doesn’t work I guess.

    Never had any issues, but, I’m running my own instance and I have 8ms ping to it so request never fail for me. My phone will probably run out of memory before the infinite scroll fails. Which yeah, it’s probably instance related especially the big ones.

    It does kinda lack a way to retry though.