1. 0
    What Urbit Is distributed osdev blog.timlucmiptev.space
  1.  

  2. 13

    I love how Urbitters will just blithely claim they have magic and move on as if they had not claimed anything incredible. Easy example from the post:

    exactly-once messaging: this is enforced at the network protocol level, which means you can have an app mirror another ship’s state and it “just works”

    General exactly once messaging is impossible, and it is a key part of Urbit. Not sure why people keep posting this snake oil promotion on here.

    1. 2

      Section 9.6 of the Urbit whitepaper explains the level of abstraction at which urbit can guarantee exactly-once messaging, and the assumptions and tradeoffs involved.

      1. 9

        Did you actually read it? I have read a number of Urbit ‘papers’ - every one of them (including this one) makes sense if one does not actually read it, but when you actually read it it falls apart immediately. The scheme that is proposed is trivial and only works if magic is real.

        Like, they completely fail at understanding the problem, and think that the problem is that no one else has ever thought of retries, or thought of version numbers, or thought of opening a new socket when your socket unexpectedly closes, or thought of logs and replaying on node restart.

        There are real schemes that look superficially similar - like, on possible network partition immediately die and lose all data, rebuild from scratch every time. This works if you have short lived clusters and you don’t mind blowing them up and losing everything several times a day.

        Or only send idempotent messages, and keep retrying forever until you get an ack - but this only works directly if you can rework everything you are doing into semilattices, which is not a general solution - for example LVars.

        Bleh.

        1. 8

          Indeed; Section 9.6 begins:

          Protocol design is much easier with the assumption of uniform persistence. In a protocol designed for uniformly persistent nodes, we can assume that no node involuntarily loses state.

          The same is true for other problems in distributed computing; if we assume failures can’t happen, the solutions become simpler (or in this case, possible at all).

          This is for example why Leslie Lamport published Time, Clocks and the Ordering of Events in a Distributed System in 1978, where he details a distributed state machine in a system that has no failures, and it took twelve years until the writing of The Part-Time Parliament in 1990 to figure out how to do the same in the face of component failures. (And even then, only in the face of so many failures. And it took eight years for the paper to be published. And no one understood it for years. And people invented other distributed algorithms to avoid having to understand the paper.)

      2. 15

        Obligatory reference to Urbit’s creator: https://en.wikipedia.org/wiki/Curtis_Yarvin.

        Platforms are designed around their founders’ beliefs, so when a platform wants to “win” computing it may be a good idea to understand what “winning” means. More information is here.

        1. 8

          Please, please criticize the tech and not the developer.

          Urbit developed by Mother Theresa or Obama or Mao would still be just as clunky.

          And like yes, the obtuseness of Urbit makes it hard it read enough to actually engage with its technical shortcomings, but ugh.

          It’s all so tiresome.

          1. 6

            Guess we’ll have to agree to disagree on this – I think these positions are too extreme to push aside regardless of how good the technology is. Imagine trying to give a presentation on the technological innovations of ReiserFS without mentioning anything about Hans Reiser. If the technology really is useful and politically agnostic it’ll show up elsewhere without the toxicness attached.

            1. 6

              This is one of those things where I think that ‘Death of the Author’ is actually really useful. It is commonly misunderstood as meaning that the author is irrelevant, when what it really means is that when we are analysing a thing, we don’t have to automatically defer to what an author claims, especially when they seem to be acting in bad faith, and sometimes the totality of an author is useful to show why a particular interpretation makes sense, though at the same time the faults of the author are not necessarily present in the thing.

              For a timely example, there had been some discourse in the analysis of the Harry Potter books about transphobic messages (primarily around the character Rita Skeeter), as well as antisemitic and homophobic stuff. When the author publicly went mask off as a terf (as well as (debatably) a homophobe and a believer in antisemitic conspiracy theories), it really strengthened the analysis of the work. But it isn’t enough to go ‘JKR bad, so work bad’ - for it to be useful to the analysis you have to tie it to stuff in the work.

              For an example of not being able to tie it to stuff in the work, you have the Haber process. Fritz Haber was involved in the invention of chemical warfare, a crime against humanity. His life is useful to contextualize the invention of the Haber process, but it doesn’t taint it or make it ‘morally unusable’, as chemical warfare is not somehow present in (or encoded into) the work.

              I think that Curtis Yarvin’s beliefs are relevant here in a way that Hans Reiser’s crimes are not, because we can tie them to the structure of the work in the critique. For a few example:

              • Purposeful obscurantism
              • A system of hierarchy (while claiming no hierarchy)
              • Too few ‘real person’ nodes by design for everyone to be a real person in the system
              • A totalising feudal system structure which combines elements of fascism and feudalism
              • Gibberish syncretic occultism, most obviously the way Urbit stuff uses things like ‘functional programming’ ‘determinism’ etc - Nock for example is in no sense a functional substrate with a formal analysis and a proof theory in the way they state it is - they don’t give either a denotational nor an operational semantics, there are way too many rules and reductions which are redundant and overlapping, there is no proof of progress or proof of consistency, no proof theory, etc etc etc.
              • Constant lies about history especially about historic conditions, which ties in to the constant lies in the Urbit literature about the history of computing especially about performance comparisons - actually comparing Urbit’s throughput and reliability to DNS or the Visa payment network is illustrative here
            2. 2

              Urbit is an attempt to create a kind of digital feudalism. It /is/ a polittcal project at its heart: you can’t have an honest review of the project that ignores the political goals that the project embodies & you can’t really talk about that without talking about the politics of its founder(s).

          2. 7

            It’s unlikely that this can stay within this site’s guidelines regarding “politics”.

            And the reason is simple. Just as it is inherently impossible to, say, discuss the GNU project while completely ignoring the existence and political beliefs of Richard Stallman, it also is inherently impossible to discuss Urbit while attempting to ignore the existence and political beliefs of Curtis Yarvin.

            In each case, the explicit goal of the project was to enact the creator’s political beliefs, and in each case there are numerous examples of “strange” (to be charitable) decisions which were made not for reasons of technical soundness or practical efficiency but rather to enforce political purity/adherence to the creator’s ideology.

            1. 2

              Certainly Urbit is political in exactly the same sense that the Linux kernel, or any GNU software, or any software published under a FOSS license is (which includes Urbit itself - it’s published under the MIT license). Nonetheless, there are plenty of articles on this site dealing with all of those classes of software. I agree with the point of view that is often raised on this site when questions about how to moderate politically-controversial articles arise, that it’s impossible to even define what topics are and are not “political” for the purpose of making moderation decisions in a politically-neutral way.

              1. 5

                Yes and no. Linux and GNU are already widely used to the point of ubiquity. I can discuss water without talking about water rights in the Western United States, because everyone drinks water. I can talk about Linux because everyone (for suitable values of “everyone”) uses Linux. GNU and Linux have grown far beyond their creators.

                Not talking about Yarvin and the other Urbit leaders when talking about Urbit in 2020 would be like not talking about Stallman when talking about GNU in 1987. If Urbit takes off and becomes ubiquitous, then we can separate it from its creator…but that’s a ways off, if ever.