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

help-circle


  • lix is really cool! it’s very important to have a Nix evaluator that isn’t under fash control because none of the technology can exist without the language, and they’ve made some big improvements already to Nix’s build system, ergonomics, and internal docs — namely, a lot of the improvements the fash parts of the community fought hard to block, because technology that’s both powerful and obscure like Nix can easily be leveraged for political gain (see my previous post on this topic if you’d like more details on what the political side of this most likely looks like). I’m hoping lix proves generally resistant to assholes coming and ruining things — unfortunately, what happened to Nix keeps happening with other open source projects.

    aux is another project that’s along the same lines as lix. it used to be a nixpkgs replacement, but since then it’s become something that’s a bit harder for me to decipher but probably more promising if it works — I believe it’s a reworking of the Nix standard library and other foundational pieces to be less dependent on a centralized repo and more modular. they seem to be planning a package set (tidepool) on top of that new modular foundation too, plus they’re writing up a bunch of missing language docs. if what they’re doing pans out, aux and lix could be a good basis for a Nix replacement.

    the full NixOS system is unfortunately still irreplaceable for me, which fucking sucks — every computer I touch still runs it (my desktops, my laptops, the Lemmy instance where this thread lives, my fucking air conditioner thermostats…). replacing the NixOS options set and all its services and mechanisms is definitely a big job, and nobody’s managed it yet — I’ve even briefly considered GuixSD, but it’s actively becoming more hostile to running on real hardware (in the stupidest GNU way imaginable) including the hardware I run NixOS on, and the packages I rely on the most are weirdly primitive in guix (including emacs of all things).




  • lisp machines but networked

    urbit’s even stupider than this, cause lisp machines were infamously network-reliant (MIT, symbolics, and LMI machines wouldn’t even boot properly without a particular set of delicately-configured early network services, though they had the core of their OS on local storage), so yarvin’s brain took that and went “what if all I/O was treated like a network connection”, a decision that causes endless problems of its own

    speaking of, one day soon I should release my code that sets up a proper network environment for an MIT cadr machine (which mostly relies on a PDP-10 emulator running one of the AI lab archive images) and a complete Symbolics Virtual Lisp Machine environment (which needs a fuckton of brittle old Unix services, including a particular version of an old pre-ntp time daemon (this is so important for booting the lisp machine for some reason) and NFSv1 (with its included port mapper dependency and required utterly insecure permissions)) so there’s at least a nice way to experience some of this history that people keep stealing from firsthand



  • Most shockingly to Urbit devotees and outsiders alike, the board welcomed back Curtis Yarvin, the project’s founder, who left in 2019.

    nothing has ever shocked me less than Yarvin “returning” to urbit

    In 2015, a technical conference rescinded his speaking invitation. The following year, another tech conference lost sponsors and was almost canceled because it allowed him to speak, over objections that this verbose, bespectacled engineer would make attendees feel somehow “unsafe.” (Perhaps some feared he would bore everyone to death by reading his posts aloud, or torture them with his poetry.)

    […]

    While the cancel culture of the 2010s and early 2020s may be subsiding, bringing Yarvin back remains a calculated risk for Urbit, William Ball, the board member, said on the developer call.

    these fuckers are still fucking seething over their adult baby godking being asked not to come to a functional programming conference because he publicly advocates for a fascist takeover of the United States, receives funding from fascists, does press interviews promoting the fascist influencer circles he hangs out in, and is the computer science equivalent of a flat earther. how will our industry ever recover from the absolutely no value that was lost by disinviting him?



  • I need to look more into this, but I’ve got the sinking suspicion that the technofascists have come to a realization: that ultra-obscure non-functioning systems like urbit play well if your techfash inroad is forming an influential technocratic thinktank (and there’s plenty of precedent for exactly this type of shit working to gain lasting political influence), but it’s utterly worthless if your path to fascist takeover is through, say, the defense industry. urbit is useless for reliably launching or controlling a missile; urbit can’t even do normal desktop shit right, and unlike a lot of defense contracting failures, this is utterly obvious and can’t be papered over.

    NixOS is too heavy to run on a missile (it might have a place onboard a drone, maybe), but Nix can easily be (and has been) sold as a massive boon to missile firmware development, and a way to modernize a number of launch and control systems external to a missile. that’s why Nix was a good fucking get for the fascists — it’s working, unique technology none of them were smart enough to come up with, its creators are too socially immature and hateful to know what happens when they become a nazi bar, and Nix itself is still obscure and impenetrable enough (and the techfash element of the community has absolutely ensured this has gotten worse) that having a monopoly on software engineering contractors with Nix expertise and clearance can still be used as a wedge to establish an unassailable position with a high level of political control.

    Kinode can’t be used in a missile or a drone, but it’s definitely an adaptation of the non-language parts of urbit to something that wants to look like a more typical cloud deployment. I wish I could analyze what Kinode’s political inroad is, but all the docs on their terrible website 404, so I should dig in and see if they’re still active, or if their funders have decided there’s a more promising inroad elsewhere.





  • Jezos has defined effective accelerationism as “a memetic optimism virus,” “a meta-religion,” “a hypercognitive biohack,” “a form of spirituality,” and “not a cult.”

    “It’s like it was meta-ironic and then became post-ironic.”

    Jezos described the company as an “AI Manhattan Project” and once quipped, “If you knew what I was building, you’d try to ban it.”

    “Our goal is really to increase the scope and scale of civilization as measured in terms of its energy production and consumption,” he said. Of the Jezos persona, he said: “If you’re going to create an ideology in the time of social media, you’ve got to engineer it to be viral.”

    Guillaume “BasedBeffJezos” Verdon appears, by all accounts, to be an utterly insufferable shithead with no redeeming qualities


  • I decided to head the acasualrobotgod off at the pass and torture myself by reading through the early Urbit spec in full (whose content is completely different from the one @gerikson@awful.systems posted), and I found something interesting; the info I gave above about Urbit taking ideas from Nix isn’t quite accurate. the reality is much worse.

    so yarvin’s specs are meandering as fuck of course, but eventually they get to some kind of point. in short, Urbit’s main computational function consists of two other functions.

    • urbit-infer knows how to pull code from the network, cryptographically verify its integrity, and transform (build) it. this is Nix’s fetchurl and half of Nix’s derivation function.
    • urbit-render takes the output of urbit-infer and stores it in a unique path in Urbit’s pathspace. this is the other half of derivation.
    • the Urbit pathspace is a set of paths on a storage device with the invariant that every path must uniquely represent an output of urbit-infer, and that the existence of a path guarantees that its contents are the output of urbit-render for that path’s instance of urbit-infer. this is just Nix’s core data structure, the Nix store, copied wholesale into Urbit but with a much stupider uniqueness algorithm

    now note that Nix is actually a lot older than I indicated before. it was first released in 2003, and Eelco Dolstra’s first paper on it was published in 2004, 6 years before Yarvin’s first posts about Urbit. that 2004 paper featured details on derivation, fetchurl, and the Nix store, all of which exist almost unchanged in modern Nix

    a lot of the differences between Urbit and Nix (like pathspace forks) seem to be attempts to work around implementing the trickier parts of the Nix evaluation model

    given the big similarities in functionality and structure between the Urbit computational function and Nix’s core functions and data structure, the wide span of time during which Yarvin could have read the Nix paper (and Dolstra published about Nix several more times between 2004 and 2010), and Nix’s obscurity until around 2015, I’m willing to upgrade my suspicion to an accusation:

    Urbit’s core functionality is a shitty, plagiarized version of Nix, but intentionally crippled to keep Yarvin in control

    this has got to be my last Urbit deep dive for a while, but I figured it couldn’t hurt to write up some notes here in case Urbit starts marketing hard again



  • this is awesome! it fits well with a lot of the (mental) notes I made tracing Urbit history as part of a deconstruction of the earlier inroads technofascism made into the wider tech world. some loose notes to expand on a couple topics:

    • very little of Urbit is actually original. the language itself (called hoon if I remember correctly) is a lambda-calculus-heavy ML with a Lisp-style type system and runtime, with all the names changed to blur the line between Yarvin’s bad ideas and the ideas from computer science that Yarvin implemented poorly
    • notably, hoon inherits the computational inefficiency of lambda calculus but none of the safety of ML or the usability of Lisp. the resulting language is an awful cacophony
    • these sources were most likely used not because Yarvin is any good at functional programming, but because Urbit was a partially successful attempt to insert yarvin’s ideas into the conversation on places like hacker news, where paul graham primed a bunch of folks to accept both Lisp and right-wing libertarianism as the same bundle of ideas
    • the few unique parts of Urbit are interesting only in that they seem to be early attempts at things we’ve seen done by other techfash projects. for example, Urbit claims to be decentralized, but hoon programs are permanently linked to code controlled by the Urbit foundation (most likely still owned by Yarvin even though they claim otherwise), which compliant Urbit implementations must pull from the network (also controlled by the foundation). this allows programs to be effectively broken on the whim of whoever controls their access to their upstream dependencies, effectively making whoever controls the foundational Urbit libraries the rulers of Urbit’s neo-feudal network — and it’s built so that swapping out those dependencies is as hard as possible. I haven’t checked the implementation to see if it prevents changing the meaning of downstream programs yet (because hoon code is brain rot — see the example linked above)
    • I need to dig through Reddit and find the AMA, but yarvin claims that Urbit is the first and only functional language that can pull functions and dependencies from the network. this is false and he probably knows it — Eelco Dolstra’s foundational paper on the Nix package manager was published (this is from memory, probably not accurate) about a year and a half before Yarvin’s first blog post on Urbit, and there are enough similarities between the two that I don’t know if I want to call this a coincidence

    last time I brought this up on r/SneerClub, some weird fascist found the post and made the mistake of linking Yarvin’s original blog posts, which are kind of hilarious. I’ll dig them up and link them here when I can