Urbit Precepts Discussion
urbit.org
urbit.org
This comes from a project which uses loobeans, because booleans are too mainstream. "In short, use _() to turn a loobean into a boolean, __()to go the other way." Thank you for making it easier for me to reason about stuff.
This was described in a pre-Urbit blog post by Yarvin. Something along the lines of “personal computing in 2020”.
Yes, very reasonable.
B) You have the logical entailment flipped. Know arcana => in-group. ¬ in-group => ¬ know arcana. It's designed to reject out-group members efficiently, even at the cost of a high false positive rate.
The conclusion Yarvin draws is so stupid IMO but people should know how much of a gatekeeper he desires to be with this platform.
Hmm, paying to become a citizen...where have I seen that before?
I think talking about 'entryist parasites' and 'urbit insiders shielding themselves from people wanting in', is on its face pretty obviously cringeworthy.
Like, is that a problem that Urbit has, hordes of people at the door wanting to jump in, like some coveted nightclub?
William Gibson called this very aptly anti-marketing in his Blue Ant trilogy, and like you point out in your first sentence, it's nothing but a manipulative tactic by people who want to inflate the value of what they're selling by making it artificially scarce and exotic.
Yarvin's goal was to preempt this issue before it might become a problem.
Don't get mad at me for explaining this - I'm not even convinced any of this makes sense. I'm just articulating Yarvin's arguments.
I'm not "selling" anything. I don't have any stake in Urbit.
The projects I think of as overly subject to corporate control (the Linux kernel, for instance) had the existing technical leadership voluntarily submit themselves to that corporate control, because it suited their desires.
If what you're really trying to say is "It keeps out the SJWs," you have no guarantee that being an SJW is anticorrelated with technical expertise, and there are several highly technically competent SJWs. So you leave yourself vulnerable to a small number of folks who are willing to learn the terminology and develop genuine expertise and then take over consensus in the project, because you've arranged things so that there are so few people deeply involved in the project in the first place.
"Gurdjieff was a magnificent old rascal, who lived a joyous life, and most of his disciples live extremely restricted, rigid, and serious lives -- because the object of Gurdjieff's method was to weed out those who understood from those who do not, and those who understood went away and those who did not understand remained."
You should use TLVs much the way math people use Greek letters. The same concept should in general get the same name across different contexts. When you're working in a given area, you'll tend to remember the binding from TLV to concept by sheer power of associative memory. When you come back to it, it's not that hard to relearn. And of course, when in doubt, comment it."
If only there were some way to put, like, a comment right inside the name itself somehow. Almost as if the name of the thing could be a meaningful description of what it represents. But I guess that's just a language design pipe dream.
I think most Urbit devs hate the C codebase just as much as everyone else does, and there's a fair few "legacy" Hoon files that are a nightmare to read compared to more recent Hoon. Loobeans are generally considered a mistake, and not worth alienating everyone else for errno semantics.
I think this is a thing that if it takes off like Bitcoin I won't be mad that I couldn't capitalize because I literally don't know how to. At this point I've given up on it.
I've been running my own Urbit for a few years that I've connected to broader communities, and have found it to be a really exciting and fun platform. It feels like when I first found Usenet and MUDs as a teen in the 90s, except people are nicer. What I understand about its essential purpose sounds great — a decentralized identity that I own and can make communities with.
I am mostly a tech outsider, but I find it strange to see such a normally open-minded community (hackers) shut it down with such vehemence whenever it comes up
What community are you referring to? I'd like to go there.
The Chinese language looks extremely arcane to me, but that doesn't make it so. Quantum computing is pretty arcane-seeming too. Urbit probably seems arcane to those that know nothing about and haven't invested the time to learn. Fortunately, the docs are very good[1] and updated frequently[2]. They're also publicly available and lots of people[3] are working pretty hard to make them understandable.
Urbit is really welcoming to everyone, should they take a moment to ask about it. Here's[4] where you can find out how to get in and get set up. Here's a place where, earlier today, I offered a free planet to someone that asked[5]. And here's[6] what ended up happening.
[2] https://github.com/urbit/docs/commits/master
[3] https://github.com/urbit/docs/graphs/contributors
[4] https://urbit.org/using/install/
You say the community is welcoming. centimeter says that they're using deliberate obscurity to keep people away. You aren't responsible for centimeter's views, and don't agree with them, but they clearly are a different view on what the community is like toward outsiders.
But I should have been more clear. "Reconcile" isn't the only possibility; the other is that (at least) one of you are wrong. And I'm leaning against "reconcile" as being possible...
The glyphs, the whimsical naming, Hoon itself. Overall, I tried and I just couldn't do it. If it isn't clear, I'm not disparaging the thing, I'm disparaging the (thing, me) tuple.
There's a bittorrent tracker you can read about on the mailing list too which is pretty neat.
There are a couple of folks working on supporting ship-to-ship bitcoin payments, which is very nearly to a working demo.
If you haven't been on in a while, Landscape (the web client that ships with Urbit) itself is also really awesome.
Well, hackers tend to hate pretentiousness.
It isn't really that strange, Urbit is the antithesis of the hacker mindset in multiple ways. Hackers value free exchange of information; Urbit is deliberately obscuratinist. Hackers tend to lean libertarian; Yarvin is an out-and-proud authoritarian and Urbit is explicitly designed around that ethos.
Maybe it's different now, but I cannot fathom a programming novice making any kind of sense out of urbit.
Yes, some aspects of Urbit are obscure, and the post is more aspirational than stating the current state of Urbit's codebase. But it is real, it works, it keeps getting better and is fun to use.
What is worthwhile (IMHO) is to read some of Curtis Yarvin's (the founder and designer of Urbit) writings and compare them to the writings of L. Ron Hubbard, particularly bootlegged copies of the "secret" teachings of the "church" of Scientology, not for content, but for structure. To my eye, there are deeply disturbing similarities.
I don't know what secret of the universe do you expect to find there. If it would be highly practical technology or pareto optimal to anything else that's popular, it wouldn't be obscure.
If you did a deep dive and regret spending time, for things like these I suggest not going deep if you are not enjoying the dive. Life's too short for things you don't enjoy when you have your basic needs covered.
Also, while I enjoyed talking with Curtis I think it's important to be able to separate great things that people create from those people themselves. You don't want to throw out most of physics, math and computer science.
But if you just want to explore the programming language design space I think you're much better off designing your own language than trying to wrap your brain around Nock and Hoon. And even before you do that, there's Haskell and Rust and Webasm and Clojure and Prolog, which I think give you a lot more bang for the learning curve buck.
Like the Cenobites of Hellraiser who after running out of territories of pleasure to explore are forced to venture into pain just to find new experience.
How is paying $20, once, for an Urbit planet different than paying $20/month to play an online game? How else would you propose to have at least some minimal level of protection against spammers / bad actors?
My take is that they went with all their bizarre design decisions in order to keep normies and entryists out for as long as possible.
But it's just complexity for the sake of complexity with no discernible benefit. It's contradictory and self-defeating to encourage developers to adopt Urbit while simultaneously purposely designing it just so developers won't adopt it. Urbit makes many weird and contrarian design choices without explanation. It's fine to explore ideas and try different different methodologies but you should at least be able to explain why you're choosing to do it and how it would be beneficial. Here's a good example from the documentation:
A loobean is a Nock boolean - Nock, for mysterious reasons, uses 0 as true (always say "yes") and 1 as false (always say "no").
So they create an alternative to booleans that's just a backwards boolean? And their explanation for this? 'mysterious reasons' What?!? The only thing mysterious here is why any developer would use this.
Not saying I agree it's worth the trouble. Even Yarvin agrees it wasn't worth the trouble. But he didn't just pull this idea out of nowhere
I don't see any comments related to any of the system theory in this rather long and well-thought-out post.
Not trying to be snarky, but I'm obviously not smart enough to understand what the Urbit project is about.
Just for the rest of us dummies.
Is this actually the general consensus? I think this is wrong. I am mediocre at math, but I can write it, and then verify that it is correct, and then it is quite abstractable and transferrable. Conventional languages handle fuzzy input better, but they do that by allowing ambiguous parsing..
> A14: Deterministic beats heuristic.
> Heuristics make it hard to give precise safety guarantees, so you should only use them when you don't guarantee much.
I think this is overly broad. If you can run a heuristic and then validate the results in a way that provides a guarantee, that can often be just as good, right? You've still got the bound, you just had to wait until after the computation to get it. Sometimes you'll get a failure to validate instead, but that should be rare if the heuristic is good. Anyway, all our programs are relying on the heuristic "hardware usually works."
I mean, nobody loves heuristics, but we keep coming up with them, so that must be a sign, right?
Imagine you encountered a meaningful equation with as many symbols as you have in that sentence. Count characters, or even count words+punctuation if you like. Odds are, you are not going to apprehend that equation with anything like the fluidity or speed your wrote your sentence or I read it... yet if you really dig into it, such as by diagramming, your sentence is a quite non-trivial expression. That you are handling fuzzy parsing, and doing so so well, argues for you being better at language understanding than mathematics rather than against it. Trying to read fuzzily-serialized math is even worse.
The average IQ-100 human being will on-the-fly both generate and comprehend in real time fairly complicated grammar structures, even with no formal training, while at the same time, it takes years of formal training to even begin to process very simple mathematical expressions.
On the flip side, one can argue that there are other considerations. What we call "math" has a very different shape that the things we use language to describe... "sharper", all the details matter, etc. On the other hand, my day job, like most of us here, is slinging around many thousands of mathematical constructs fairly casually as well, more like a language than doing math. I'm using fairly mathematical tools, but I often have the impression that I'm spraying them around like some sort of quick-setting concrete coming out of a hose, rather than crafting magnificent cathedrals of precisely-chosen abstractions, and there's a lot of reasons to prefer the former to the latter.
On the flip flip side, getting to the point that I can do this took me longer than it took to speak in English, and it doesn't appear to be something the average human can do very well....
Basically, the upshot of my point here is that language users casually manipulate hundreds of symbols spontaneously so easily that it barely even registers as effort to you, whereas math is generally not so easy. And even if the "shape" of language is somehow easier, it's not like it isn't precise. This sentance is incorrect, despite only a small error. This incorrect is sentence too. Math may be more precise than language, but it's not like it's a night-and-day contrast; if you look at language carefully enough you can see it's still fairly high on the precision scale overall.
It could be the next iteration of networked software that adds security, gives ownership back to the people, breaks the big tech monopolies, actually beyond that the Urbit docs are vague with respect to the benefits of the platform (not to mention how they plan to accomplish these goals and avoid the pitfalls of the existing tech).
I have to say I'm skeptical! I get major vibes of NIH syndrome and delusions of grandeur from this project.
That's my takeaway from getting it up and running as an end user for a bit.
* The original vision for the internet was decentralized: if I want to send you a message or do some computing work together, I would have my computer talk directly to your computer
* This vision actually failed and today virtually all computing on the internet has become centralized in big corporate servers. Instead of my computer talking to yours, my computer logs into Facebook's server and we communicate through Facebook controlled accounts. These big corporations control our accounts and identities and often our data too. They can censor us at their whims, serve us ads, and data mine us
* The decentralized vision failed because decentralized software is much harder to build than centralized software and servers are much harder for everyday people to operate than regular client operating systems
* It seems unlikely that these problems can be solved from within the current ageing technology stack, so what if we built a new tech stack - designed from scratch to make decentralized networked computing easier - where running your own server is no harder than running your own web browser or smartphone
* That's urbit
> Blank lines separate paragraphs.
It's important to emphasize how very deeply from scratch it is, renaming absolutely everything, even the most basic concepts, with lots of abstractions.
For. Some reason.
Every Urbit has a permanent address which persists even if you move it around between computers. Each Urbit fully encapsulates its own state, so it can be zipped into a single file, unzipped 20 years later on a different computer, and it'll still work, still be able to connect to the network, and still contain all the data you had.
Urbit apps are fully decentralized, users own all the data and control what and how they wish to share it via the Urbit network.
As it contains a high-level Turing-complete programming language named Hoon, it could be used for anything which regular computers are used for.
There are actually some very interesting ideas in Urbit. Unfortunately it's all hidden below many layers of obfuscation and weird naming.
Is it true that mars has neither lambda calculus nor category theory? From what I've read, Urbit is meant to be a boolean – it's either mathematically perfect and succeeds, or it's not and it fails. And it appears it's not perfect. Do I have it right?
My TLDR: there’s streaks of absolute brilliance, particularly in the OS level. But it’s all so intentionally obfuscated with a dash of elitism thrown on top.
I think the most frustrating part was reading the Hoon tutorial (Hoon is their high-level programming language) and not understanding a single word. They use completely new terms, strange syntax & then throw in the casual “See? It’s that easy!”. Not even a comparison anywhere to traditional languages for reference (not that it’d help at all anyways)
Never again.
"A core is a cell of a battery and a payload."
"A battery is a collection of Hoon expressions and the head of a core."
This is what GP is talking about. Reading through the tutorial, it made some sense. I could probably code in this language with a bit more reading and practice. But the choice of deliberately obfuscating terminology makes it read like a joke or an esoteric language (languages not meant for real use but as puzzles, challenges, maybe for code golfing).
I mean, half the time they explain these things with analogies. A gate is a function, they say it nearly every time the term comes up. So why call it a gate?
EDIT:
When I was at GA Tech (now many years ago) we had access to a set of servers, "acme" (acmex, acmey, and acmez if I recall correctly). Each semester we had a limited amount of access to computational resources on these servers, measured in "bananas". We had plenty to do things like access mail, newsgroups, maybe do basic programming assignments. But anything resource intensive or really long running ate up your bananas and you'd have to request more (no cost, it was a limit to keep people from abusing shared resources).
This was absolutely fine, and a bit humorous. "I can't run that, I don't have enough bananas." But if I were rolling out a product to universities across the country to manage access to their systems I would not use "bananas" as a term. Within the GT community it had a shared meaning, but outside it made us sound like asylum escapees (perhaps an accurate description of us). "bananas" communicates nothing to users on its own, just like "gate" and "battery" communicate nothing to anyone familiar with other programming languages.
It has some real TempleOS vibes.
Urbit is what happens when you have smoke blown up your ass for too long. It's everything that TempleOS didn't want to be; for all of its aspirations of being a Third Temple, the point was always that TempleOS was within your ability to understand. Urbit is postured in a way that implies it's never meant to be truly understood.
Urbit is a collective project that includes a redefinition of true as false and false as true. It is deliberately inaccessible, and quite eccentric. They seem to have an objective of creating an inner sanctum, a group of high priests for this technological future. They obfuscate with their writing rather than trying to provide illumination for others to be able to participate.
These two things oughtn't be compared.
I presume you meant to put that in inverted commas, otherwise, very funny.
But that's also too long and meandering. :/
Absent of any state change like input.