• 0 Posts
  • 355 Comments
Joined 2 years ago
cake
Cake day: December 29th, 2023

help-circle
  • right? like yeah i remember XMPP being cool n all, but all the experiences suuuuucked, not to mention (back in the day… i think its fixed now?) figuring out how the hell to get video calling working… “what extension does your client support?” is not a question a lay-person will ask: centralised systems don’t have extensions… they have “the way it’s done” and that’s it


  • inefficient in the sense that

    • traffic go over the internet rather than internal networks which means the routing is much longer, over slower links
    • not to mention that in distributed systems information frequently is duplicated many times rather than referenced on some internal system (sending out an email to 20 people duplicates that email 20 times across many providers rather than simply referencing an internal ID… you can just centralise content and send out a small notification message, but that’s generally not what people are talking about when they’re talking about modern distributed systems)
    • each system can’t trust any other, so there’s a lot more processing that each node has to do in order to maintain a consistent internal state: validating and transforming raw data for itself - not usually a particularly big task, but multiplied by millions per second it adds up fast
    • hardware scaling is simply not as easy either… with centralised systems you have, say, 1000 servers at 95% capacity (whatever that means): you can run them close to capacity because your traffic is generally insulated from load spikes due to volume, and generally you wouldn’t get 5% more load faster than you can scale up another server. in distributed systems (or rather smaller systems, because that’s implicit here unless you’re just running the hardware and software to duplicate the whole network, which would take more servers anyway due to the other inefficiencies and now you’re multiplying them) you need to have much more “room to breathe” to absorb load spikes
    • things like spares and redundancy for outage mitigations also become more expensive: if you have 1000 servers, having a couple of hot spares (either parts or entire systems depending on system architecture and uptime requirements) isn’t that big of a deal but in a distributed system you probably need those hot spares, but all of a sudden every instance needs those hot spares somewhere (though this can be seen as a similar issue to traffic issue: spares of all kinds are just unused capacity, so the higher your ratio the more under-utilised your hardware)
    • this is all without getting into the human effort of building systems… instance owners all need to manage their infrastructure which means that the mechanisms to handle things like upgrade without downtime, scaling, spam protection, bots, etc have all been built many many times

    NONE of this is to say that they’re worse. in many ways the have a lot of advantages, but it’s not a clear-cut win in a lot of cases either… as with most things in life “it depends”. distributed systems are resistant to whole-network outages (at the expense of many more partial network outages), they’re resistant to censorship, they implicitly have a machine to machine interface, so the network as a whole is implicitly automatable (that might be a bad thing for things like spam, privacy, bots, etc), but people tend to generally be pro-bots and pro-3rd party apps



  • Pup Biru@aussie.zonetoPrivacy@programming.devDelta chat criticism against Signal
    link
    fedilink
    English
    arrow-up
    48
    arrow-down
    1
    ·
    edit-2
    2 days ago

    this seems needlessly combative… prevailing opinions are exactly as signal says… think differently? great! let’s do it, talk about it, see how it goes, and when the solution has scaled in the real world to what it’s competing against then you can feel superior as the one that had the vision to see it

    but scaling is hard, and distributed tech is hugely inefficient

    there are so many unknowns

    anyone can follow a random “getting stared with web framework X” guide to make a twitter clone… making a twitter clone that handles the throughput that twitter does, that takes legitimately hard computer science (fuck twitter, but it remains both a good and common example)

    heck even lemmy has huge issues with sync at its current tiny scale when there’s any reasonable latency involved… i remember only months ago when aussie.zone was getting updates days late because of a 300ms latency to EU/US and lemmys sequential handling of outboxes (afaik)


  • they’re not going to go after the robot vacuum when the thermostat, tablets, computers, TV, router, access point, etc are right there.

    … and all of those things should be equally protected

    they’re going to go for the easiest thing to extract information or escalate

    since they have root they can add a password themselves!

    the most absurd thing is assuming that an end-user is going do add a root password to a serial interface

    i’m not saying end users shouldn’t be able to gain root somehow, simply that it shouldn’t be wide open by default… there should be some process, perhaps involving a unique password per device





  • you’re on programming.dev so i assume you know that secrets is a generic term to cover things like your cloud account login (whatever form that may take - a password, token, api key, etc) for the robot vacuum service and you’re being intentionally obtuse

    it’s a realistic attack scenario for some people - think celebrities etc, who might be being targeted… if someone knows what type of vacuum you have, it’s not “carefully take apart” - it’d take 30s, and then you have local network access which is an escalation that can lead to significantly more surveillance like security cameras, and devices with unsecured local access

    just because it doesn’t apply to you doesn’t mean it doesn’t apply to anyone… unsecured or default password root access, even with physical access, is considered a security issue






  • but that’s a compromise… it’s not categorically better

    you can’t run a bank like you run distributed instances, for example

    services have different uptime requirements… this is perhaps the first time i’ve ever heard of signal having downtime, and the second time ever that i can remember there’s been a global AWS incident like this

    and not only that, but lemmy and every service you listed aren’t even close to the scale of their centralised counterparts. we just aren’t there with the knowledge for how to build these services to simply say that centralised services are always worse, less reliable, etc. twitter is the usual example of this. it seems really easy, and arguably you can build a microblogging service in about 30min, but to scale it to the size that it handles is incredibly difficult and involves a lot of computer science (not just software engineering)




  • that’s pretty disingenuous though… individual lemmy instances go down or have issues regularly… they’re different, but not necessarily worse in the case of stability… robustness of the system as a whole there’s perhaps an argument in favour of distributed, but the system as a whole isn’t a particularly helpful argument when you’re trying to access your specific account

    centralised services are just inherently more stable for the same type of workload because they tend to be less complex, less networking interconnectedness to cause issues, and you can focus a lot more energy building out automation and recovery than spending energy repeatedly building the same things… that energy is distributed, but again it’s still human effort: centralised systems are likely to be more stable because they’ve had significantly more work put into stability, detection, and recovery


  • to really hammer home this “many ways to hide”: the PDF is kinda just like a container… it contains other things like images (the patterns for example)… these patterns are probably vector graphics (made up of lines rather than pixels)… this means you can magnify them basically infinitely… and they can contain transparent lines and all sorts of things. they could easily embed that same text in the SVG image, at tiny scale (less than a pixel at 100% scale), and make it transparent… no PDF editor is going to touch the image data: it simply doesn’t really understand it to that degree - it’s an image; not a PDF after all… so that information will remain even after you’ve removed all visible/reasonable marks

    this is just 1 example of practically infinite places it could be - and remember, this text is just lines in an image! it’s not like you can ctrl+f for the text necessarily… you’d have to go through every image manually and inspect every single line, and even then there are no guarantees (perhaps they encoded that information like morse code in bumps in some lines that are only barely visible at 1000% magnification)