Bootstrapping Urbit from Ethereum(urbit.org) |
Bootstrapping Urbit from Ethereum(urbit.org) |
I still have not been able to figure out if there's actually something that amazing about Urbit, or if behind the obfuscated terminology there's nothing, and I am reluctant to commit to the time required to find out for myself. It doesn't help that people who spend time in that land seem to all forget how to speak about it except in the terms of Urbit, unable to translate it for laypeople. I suppose that's true about any highly technical subject though.
[0]: https://en.wikipedia.org/wiki/Mimsy_Were_the_Borogoves
[1]: https://books.google.com/books?id=yPVbDv5DqkoC&lpg=PA181&dq=...
Urbit is a platform for building decentralized apps. To that end, it's a tightly integrated set of different features that play into that: an identity system so that all the apps can refer to the same people by the same handle, a typed RPC network for easy message sending, and an append-only log of all events that platform handles being the most important parts.
Right now you can build decentralized apps like Mastodon, except they 1) take hours to setup a node, along with having to know arcane Linuz sysadmining 2) aren't actually decentralized, but federated. Urbit wants to make it easy to setup your own server, which runs as a node for all these decentralized apps (instant messaging, Twitter, etc.), along with be useful for server-y things like aggregate APIs (email, Facebook).
There's not actually anything that amazing about Urbit once you figure it out. It just wants everyone to be able to run their own server, and make it easy to build decentralized apps that talk to other Urbit servers. The important part is that somehow, they saw how bad trying to do that currently is, said "let's rewrite everything", /and then did/. It's like reading about Oberon or Plan9/Inferno.
Edit: This post is probably the worst introduction to Urbit imaginable. It basically is a technical spec for bootstrapping a PKI over Ethereum, and you should expect about as much as if you got linked something from BitTorrent about that. It assumes domain knowledge from both Urbit and Ethereum (both of which are terrible to explain), and /doesn't actually matter/ for most people interested in Urbit. Please don't use this as the benchmark for "babies first urbit intro".
With decentralised systems you are forced to run all computation and store all data yourself. The average user isn't going to buy their own server and run it 24/7. That's incredibly wasteful. Even in the best case scenario they will just get an "urbit server" from AWS or somewhere else.
The problem with centralised services isn't that they are centralised. The problem is that you are locked-in to a specific provider. You can't send messages to your facebook friends from your freedom respecting gnu social server or whatever. You have to install a dozen apps (facebook, whatsapp, telegram, etc) to talk with all your friends.
But of course, that's not all it is.
It's also a ground-up reinvention of mainstream functional programming languages like Lisp, built on the foundation of an abstract virtual machine in which the "decrement" operation can be performed natively only by incrementing a number until it's 1 less than the current number. All of these concepts have their own weird names; for instance, the constant-time version of "decrement" (this is a programming environment that goes out of its way to achieve constant-time decrement†) is an example of a "jet", where a jet is apparently a non-native implementation of an algorithm that can be expressed but not efficiently on the VM that they've chosen to build their entire system on and it just gets weirder and weirder from there.
You don't have to memorize the new names they've come up with for most of the ASCII punctuation characters, like "gal", "gar", and "hax" for "<", ">", and "#", "but it helps". A normal engineer's reaction to a system that tells it that it will help to remember a new name for the pound sign is to ask "Why? What fresh horror lurks in the deeper meaning of your new name for the percent sign? And why won't you tell me before I commit to this system?"
Stuff like that would be bad enough, but the founders ideological views are also infused into the system, and those views are not mainstream distributed systems engineering views. For instance: the most available first-class address in the system is in a 32 bit address space. Why? Not for efficiency, but because the authors believe there aren't and never will be 4 billion human beings on the planet worthy of having a first-class address in their system. This, by the way, is their actual response to the objection of an overlay network with 32 bit addressing.
I agree that the best way to explain this system while encouraging people to engage with it is to distill it down to anodyne concepts and then sprinkle "decentralization" on top. But of course, this system isn't really that. From the proteins of its cell membranes to the DNA in its nucleus, this is a system that coercively projects the idiosyncrasies of its founders into everything it comes in contact with. It's decentralized and free in the sort of way its founders would explain with a 3000 word paper that invented 50 new terms in its abstract.
People confused about Urbit are probably not confused about the value of serverless computing or of overlay networks. Those are pretty straightforward concepts we can all get our heads around. There is something deeper that is challenging about Urbit.
† Rather than, you know, just deciding to have it.
haven't "actually succeeded", haven't "shown any real movement towards", but "wants to".
And that's the problem. Years ago it was funny: "look at our ludicrous documentation isn't it funny that we claim this is a real thing", now it's just more assholes boiling the seas.
This sounds vaguely intriguing. But the problem that most Ethereum projects have is that they put the solution and technology before the problem. Half the time I don't even know what I'm looking at or if it's worth looking further.
Can you restate the problem that Urbit solves in the simplest terms you can think of?
This is probably similar to how Scientology got started. Nobody really believes in it, but are too afraid to strongly denounce it because they don't want to be the one who "doesn't get it." So they all just go along and get sucked further along down the rabbit hole. The difference between Scientology and Urbit is that Scientology managed to rope in a few celebrities and gained some sustaining mass. If Urbit wants to make it big, they should pay Zuckerberg and Musk to evangelize it, and then everyone will be falling all over themselves to be part of it.
Urbit is well documented, in easy-to-understand terminology, from low level, to high level: https://urbit.org/docs/ https://urbit.org/docs/nock/definition/ https://urbit.org/docs/hoon/concepts/
The code is open source, under MIT license: https://github.com/urbit/urbit
Heck, urbit even shows up to Hacker News semi-regularly: https://news.ycombinator.com/threads?id=urbit
What backs your claim they have done nothing to clear up the confusion about it?
I think Curtis Yarvin is a master huckster and wordsmith, but near as I can tell what's good about Urbit isn't original and what's original isn't very good. The central concept is basically Java's "write once, run anywhere" concept from the 90s. Remember that? It wasn't just about applets; applets were only the beginning. With "mobile code" that could run on any device, Java was going to make existing operating systems obsolete and finally bury Microsoft.
Sound familiar?
Curtis adds sizzle to the steak by mixing in ideas Hackernews people will find appealing -- functional programming, blockchain, distributed computing -- and finally he plays the same semantic shellgame with his words he plays with his political essays, to convince you that the horrible political views he has aren't so horrible. Except this time it's to convince you that Urbit is more than a reimplementation of interesting ideas from the past, some of which failed massively.
Why? Well, the fact that he is selling "virtual real estate" in his new internet that's totally going to change everything real soon now might be a clue.
I suggest you leave your ideological biases out of your assessment of Urbit the technology. We all have our political beliefs - mine are hard libertarian, yours are hard feminist/leftist - but hopefully we can put those aside when assessing technology.
I mean.. what's not to like about Nazism and eugenics?
(I wish I could attribute a sarcasm tag, but Go look up Mencius Moldbug and read for yourself.)
That by itself might be a good idea, but if you're going to sell people on your project, you need to give some rationale / objective for your projects. And there, Urbit doesn't do well. There is some talk of decentralization, but it's not clear what the goals are.
Like many people, I find the way it's being done slightly confusing (the names, etc), but it is being done. At this point, I would just lump it in the stack of intellectual curiosities, right next to TempleOS. It might turn into something yet, but I'm not holding my breath.
https://www.youtube.com/watch?v=Md4boH1eZvc
This snippet also helps:
> Making the web programmable
> The first thing your Urbit can do is act as a transparent layer to your existing services. We’d like urbit to be usable as a self-hosted IFTTT for geeks. Your urbit can hold your keys, store data, run programs and seamlessly connect to your existing services. Plus, with a global revision controlled filesystem it’s easy to share API connectors and keep them up to date.
> With an Urbit running on your machine you can ls your Gmail from Unix. Write a short script to poll Twitter on a keyword and deliver the results to your email or into a Slack channel. Send an SMS when an HTTP request doesn’t resolve. These are just a few examples. Your Urbit is designed to make data trapped in your existing services feel like an extension of your local programming environment.
(TL;DR: "Urbit also invents a lot of alien technical jargon. We admit that this is annoying. Abstractly, it’s part of the clean-slate program: words smuggle in a lot of assumptions." - to which all I can say myself is: qupnux.)
I guess I'd put it on a poster as: lyrics by blockchain; melody by Xanadu.
The main audience of this post is people who're already into Urbit and understand some of the basic lingo around running a ship. If you don't have that terminology down, and don't know Ethereum either, this probably reads like Jabberwocky[0].
Yes and no; it's a completely functional OS for which there are AFAICT no useful applications yet. You can absolutely run it, but there's no reason to run it other than to hack on it.
https://storage.googleapis.com/urbit-extra/etc/the%20not%20s...
My own perspective regarding these new decentralized platforms is that we're at the very tail end of low-hanging fruit in regards how easy the next generation of software innovation will be to explain to "your average layperson". The problems that decentralization are trying to solve are uniquely understood by developers, particularly people well-versed in the metagame of content, advertising, identity, and privacy on the web, which is a vast field filled with thousands of great reasons to consider decentralization, but are unfortunately hard to distill down into a 30-second elevator soundbyte.
Another problem is that having high-density conversations about software innovation is fundamentally absurd. Every software innovation is ultimately just "another way to write code", so you can boil down everything Urbit and IPFS and Ethereum are doing to "well, our current code for everything is this way, and it seems to suck, so we're going to try writing the code a completely new way". That's it. Every time someone asks "what can you even do with this thing?", the answer is "well, you can develop software on it".
Edit: Apparently the original article has been un-paywalled. Perhaps you can access it here:
https://medium.com/@IsaacSimpson/urbit-and-the-not-so-dark-f...
We're not sure exactly when or precisely how that market will get initialized — but you get the basic idea. Your star ownership will get mirrored in the contracts.
Basically, star owners will be handed a mechanism to run their own mini-ICO, where planets represent ICO tokens.
Why would you want to buy a planet from star owner X? I presume the answer lies somewhere in the statement: "Galaxies and stars are network infrastructure. Regular users have planets."
Urbit is on about the same level as the next Zoë Quinn game in terms of hype-to-actual-value-delivered ratio.
There was definitely a feeling of "holy shit they're doing our thing!" going around, but we can't be entirely sure if they got the idea from Urbit specifically. More likely, they aggregated ideas from all decentralization projects going on right now.
Definitely cool to see these kinds of ideas being represented in more mainstream media though!
I am not kidding. It might have came out like this by accident, but i could spend days mapping the semiotics of this to, say, scientology "books".
The most blatant technique there is the slightly out of place technical terms and insertion of sci-fi elements. Here is a paper on christian texts and the use of metaphor on the willingness of the audience http://cogprints.org/4863/1/Cognitive_Semiotics_and_On-Line_...
I strongly believe in voting with my attention and/or money against ideals that are abhorrent to me, so I thought I'd put it out there for others in the same boat.
This essay sums it up nicely, so I won't repeat it. But I very much identify with, and am personally vexed by, the disorganized, Balkinized, online world we citizens of the "first world" are being forced to navigate.
One idea I don't grasp is how an Urbit server might integrate with a service like Facebook. Let's say you could set up your Urbit server to integrate your social news feeds from different services.
Would this violate the terms of service of a system like Facebook?
One could hypothetically create an application that at least would handle submission of personal content to any social network. And it could thereby keep a local copy of the content. But it would have to scrape the site, or use the provided API, to present any response to posts.
The linked article mentions that Facebook sued a company that tried to market an app that would present an integrated social news stream from FB and Twitter. I wonder how they would respond to an app that would let a user setup their own system to do the same thing?
I find the increasing power of the big tech companies disturbing, though I do appreciate the services they provide.
Yep. As far as I'm aware they don't allow you to display Facebook content next to content of competing sites, like Twitter. But if everyone's doing that locally on their own machines, how will Facebook know? And what can they do to stop them?
If the API is being used, they can take that away. But website scraping will remain as a viable (if slightly sub-optimal) way of getting the data out. Facebook won't stop its users from using its website, after all.
Having a common platform, all using the same RPC and identity and network layer, allows for the removal of lock-in across different Urbit apps.
And since it's your own server, you /can/ send to Facebook friends from your Urbit clone just by hitting the API endpoints. Migrating to an Urbit clone of a centralized service should be gradual to fight back against network effects: first make a UI frontend for the service from Urbit, then make it mirror content on Urbit back, and gradually transition over. GNU Social does this with Twitter, but kinda badly, and can be locked out from one central API token because everyone has to go though their node.
Curtis, in his eminent brilliance, was the first of us to realize this, and so became the first of these wise and benevolent engineers, forging a bright path for other open-minded people to follow.
Now come, let's get you changed into this robe and learning these chants. :)
Instead, you could use an Urbit app that does Reddit-ish things, and when a developer makes a Twitter alternative the userbase already exists. Because each user hosts their own content, developers don't have to host servers, and migrating to another Reddit-like app is really just switching to a different UI frontend. Whats more, since it's /your server/, you can integrate with existing 3rd parties: mirror all your posts to actual-Twitter or use Urbit as a client, and gradually migrate over to the decentralized platform without having to overcome market effects.
The point of Urbit is to be a cobherent, self-contained platform. Every other decentralized app I've seen had to reinvent several wheels and can't interact with each other because of it.
Urbit has a typed versioned filesystem exposed as a global namespace, typed RPC with a diff/patch system, an identitt system, forces apps (and the e tire platform) to be purely functional for easy saving and crash tolerance, and other fun things. It's like shitty OSX - it has a /vision/, even if some parts don't make sense.
Urbit claims to be uncrackable. Not "secure when well-configured and patched regularly" uncrackable, but "Put one on an EC2 instance and tell the world there's 50 BTC inside it and come back in five years, or fifty, and your money will still be there" uncrackable.
That's its selling point - that you could run server apps on it (in some hypothetical future where someone has written some useful apps) and not have to be a part-time sysadmin like you would if you ran any sort of *nix server.
I'm not saying that's true, I'm just answering your question. More details on why they claim it to be that way here: https://urbit.org/blog/2017.5-frozen/
I think there's quite a lot of selection going on and the criteria are much broader than just just "the smartest, most dedicated" engineers.
There were no takers.
The question of "but what can you actually do with it?" went unanswered by Urbit's own promoters, even when they were incentivized with real cash money to come up with an answer.
There was also no meaningful documentation at the time, which is why nobody else could complete it.
Also, what does "Urbit's formal semantics makes ships trivial to migrate" mean?
You'd run an Urbit instance (a planet) in the cloud (ideally, on three separate machines where a disk write succeeds if two out of three nodes receive it) and then run sub-instances (moons) on each of your personal computing devices (computers, phone, tablets). You could then interact with your planet and/or moons from your browser.
You'd do this because you want to run cloud-type services like photo sharing and (micro)blogging and such, but you _also_ want to do so through your own UI, not UI controlled by someone else whose interests are disaligned with yours, like Mark Zuckerberg's.
I can't imagine it'd replace standard OSs like Windows, macOS, iOS, and Android.
> Also, what does "Urbit's formal semantics makes ships trivial to migrate" mean?
If you want to move a ship (a directory containing your planet's data) from one (cloud?) computer to another, all you need to do is shut it down, scp it to the new location, and then start it back up again.
https://medium.com/@curtis.yarvin/why-you-should-come-to-lam...
He seems like a reasonable, intelligent person, and people have gone out of their way to mischaracterize what he did say and to label him a racist.
He was also writing under a pen name, and -- believe it or not -- roleplaying is common recreation. Just because Moldbug believed something doesn't mean Chris believed those things.
All in all, I think this is just another example of the insular tribalism present in all of Silicon Valley. It's ironic that the place that prides itself on being the most tolerant and the most progressive is in fact so victorian and reductionist that their ideas can't withstand a simple debate.
Easier to label and shun, eh? I'm not a fan.
It's somewhat ridiculous that I have to add a disclaimer that I don't share any of their ideology, even in secret. I'm proud of my beliefs, and this has nothing to do with the politics at play. If you're going to be inclusive, then be inclusive. To shun someone so intelligent and to reduce their entire body of work to a few glib sentences isn't a productive strategy.
From my perspective, it seems strange that anyone could read that Medium post and come away hating Chris. He's clearly here to talk tech, not politics. So what's the problem?
When you join a Twitter mob and serve as a sort of informal government — by deciding, for instance, who can speak at a conference — you’re feeding your inner chimpanzee. It feels good. Your conscience may be convinced that it’s spiritually the right thing to do. But your limbic system is just plain high. Twitter is a drug cartel. The drug is power. Or at least, apparent power.
Hear, hear. When you seek to suppress an idea, people like me get curious. Why are you so worried that Chris is the founder? It makes me want to dig in to their beliefs and decide for myself.
Don't you see? Speaking out like this actively helps the very side you're trying to defeat. They come off looking reasonable, whereas your argument boils down to "He's toxic because reasons."
One of the most persuasive things you could do in this situation would be to post a quote written by Chris. Posting a quote from Moldbug would be the second most persuasive thing. Failing either of those, are we supposed to just take your word for it that the dude should be excluded from society?
This whole "label and exclude" thing is for the birds. Why not judge ideas instead of people?
> One of the most persuasive things you could do in this situation would be to post a quote written by Chris. Posting a quote from Moldbug would be the second most persuasive thing. Failing either of those, are we supposed to just take your word for it that the dude should be excluded from society? > This whole "label and exclude" thing is for the birds. Why not judge ideas instead of people?
Don't mind if I do:
- From my perspective, Urbit is culty vaporware which does nothing out of the ordinary that actually DELIVERS. CY (or MM, whatever) seems to me what can best be described as an edgelord, using sophistry to make himself sound smarter than he is (which might still be plenty smart) and stirring controversy by going against mainstream views just because.
Arguements: Urbit ticks all of the boxes for techno-cults like we saw in the 60s and 70s.
* invent their own special language * reinvent everything from scratch to improve group cohesion * dismiss any criticism as "not getting it"
I will be convinced if anything USEFUL comes out of urbit. Not "can't you see that it WOULD be useful", but "here, I built this thing". That settles the technical argument for me
On the edgelord topic, two quotes, one from the link you gave and one form the AMA he gave (https://www.reddit.com/r/IAmA/comments/4bxf6f/im_curtis_yarv...)
Quote 1:
> HNU(“human neurological uniformity”). is not a natural null hypothesis. Its doubters don’t need to disprove it. It needs to prove itself. Genetic and anatomical inhomogeneity is normal in the species. Statistically, its presence is expected and its absence would be remarkable. No such absence is found.
I don't want to judge the politics, but just on the intellectual criticism and CONTENT:
1. He switches and dodges between "statistical" and absolutist language. A uniform distribution is something very different than uniformity. 2. Without any external bias or information, neither presence or absence of a uniform distribution is expected, or remarkable. 3. To just assume HNU or non-HNU as a given without asking for "why" and just attributing it to species/genome is simplistic
Notice how he never makes an actual CLAIM, or clarifies everything, just uses vague language and puts himself in the persecuted role
Quote 2, answering what I think is a...fan? who asked for some clarifications to the writings (broken apart by me):
>Fascism no longer exists. It's as dead as Odinism. You can reinvent Odinism, but it's not Odinism, it's fake Odinism. Unless it's a joke (and don't get me wrong, Nazi Microsoft chatbots are funny), it's pathetic. Actually, the fact that /pol has made Hitler funny is the best possible evidence that Hitler is completely dead.
Ok so far,though you could start arguing that this is weasely sophistry by arguing about the exact definition of "fashism", and you can disagree on whether fashism in the hitler style is truly dead, but nothing evil. It's a bit of a tautology (nothing can exist exactly like it was before), but ok.
>What's alive is the ideological system that defeated fascism -- which committed plenty of atrocities of its own. Of our own. When we think about crimes from the last century, it seems more relevant to think about the crimes we committed, not those they comitted
Here the little bit of sophistry turns into a blatant misdirection: instead of talking about fashism, he's talking about general human attrocities while creating a false equivalency. But let's assume he means it in an innocent way, just badly phrased, and REALLY cares about the current attrocities and problems in modern society and will take actual positions.
>What is fascism? It's exactly what everyone thinks it is. The conventional wisdom is perfectly correct. Our historians have a merciless, laser-sharp understanding of everything bad that fascism was and everything it did wrong. What hasn't been done is turning this same laser on our own institutions.
Except, yes, it has. Ask any civil rights advocate, ask ACLU, ask anyone outside of the mainstream for the last 50 years. Criticism has been abound, it was just silenced. Blatant misrepresentation
>As for the word "slavery," it means too many things at the same time. Robert Nozick in the '70s devised a beautiful little paradox for people who think they can define "slavery": [http://www.colorado.edu/studentgroups/libertarians/issues/no...]. Try it.
Again, instead of talking about the THING, playing with definition. By this point we might want to abandon the hypothesis of innocence and assume sophistry. But nothing horrible yet (except the blatant misrepresentation in the last sentence). Just because words change over history does not mean they don't carry specific meaning right now
>For example, is "debt slavery" slavery? Or is it only slavery when you can't declare bankruptcy? Oddly enough, our society has one form of debt that can't be shed in bankruptcy: student loans. The institutions that benefit from it are our most powerful and privileged.
Good point, if taken alone. Notice here he ACTUALLY makes a statement for once. There are other people who'd argue that student loans, prison labor etc. are modern forms of slavery.
>What Carlyle said about slavery is that you can ban the word, but not the institution.
You can also ban the institution. Look at norway, germany, any other country. And yes, there is no perfection, but that is missing the point.
>There are plenty of people today who will be paying off their student loans until they die. Is this the same as being whipped by Leonardo DiCaprio unless you chop your quota of sugarcane? It is not.
Correct, nobody claims it is. But he implies people claim that.
>Is it "slavery"? Dunno, you tell me. Are they both bad things? Sure. Is everything that can fit, or has in the past fit, under this label, evil? If so, it would be a very unusual label.
Actually, from our perspective: yes, it would. Some forms might be more acceptable (house slaves in ancient greece/rome), but nobody would choose to be a slave coming from our society. Just because the world changes, doesn't mean you can dismiss it.
>As for your last question, it's simply a matter of who has actual power in our society. Everyone wants to think of themselves as powerless and/or oppressed. But actual power dynamics are not hard to find.
This is true. You can argue it is also shying away from taking a stand, but it's implied that he did that somewhere else, so ok.
Synopsis:
In a question for clarification asked by someone who seemed to express sympathy, we have enough dodging and sophistry to severely question the intellectual merit of his position. Without taking any other judgement, I classify him as "edgelord". I couldn't find an email, but I would love to interview him via a GPG signed email chain, so there is accountability for statements. My keys for this:
- -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2.0.14 (GNU/Linux)
mQINBFnDfXYBEADihghaToFHSoNonenJx6LVh7JFqaQ3FX/AEhYzvUooekCOmcGZ 1nnduvUKj8aL83jdG0tgd05dvZ95DP026xnJAQwP7F44j/ajiVRmsCaZQ8bUwsrl rmNNLtgSZhMG96sM4j50+tRvnde5QwUir6QEvoMlmaY/Oba2Y7ZLJYwgV6cwHkCe H5ruCYoJ8Ujctc/nl4UeiiSzUKzMLe+zRX4Vs6yCt1e9nLeE7xzHF2oyB1gyOelW Wsx/Q0oQcDOzEh2EkiypOnNMg8YuJCgL51PWSnhlzoVgdC/B5uZTinTBPts2KvT1 KIwwO1KvswhfJK5NqGeZjyaRHRgJ4AygZzNtvUnQehrqB6gmlzDa2k6e3utiIvSF 9l9Pctt/oihArafbkN/4rYj/gHGUYwLdott9uPngQZBqhLuUUKk+/13FQwRlSxa1 o1Tq4STFr6HiySnInNYN0GBIzbG6zCwa3UwHqsCCxLSS9TB9s+wfsCQtwBpg4nq/ gDuvOTKVQVYSMiM9ZnOZLMfZpl22MAIE0cOvJvUzcKczMR5SF+cvn3JIImYgFwBz /eejIiV73ZswAbRGOn0Gij07m2F3uNaQxLOBzsmNhfWsHYO1FlSz77VqtD//BszQ EzoinV9S8yEevqL7gB56el9I20wDH40eXX7ZCVjmFRFZ+mLZWr1njrw8BwARAQAB tD1ISElJSkpLSyAoT25lIHllYXIga2V5IGZvciBjb21tdW5pY2F0aW9uKSA8SEhJ SUpKS0tAdGVzdC5jb20+iQI9BBMBCgAnBQJZw312AhsPBQkB4TOABQsJCAcDBRUK CQgLBRYCAwEAAh4BAheAAAoJENmLkldTMRsiRRUP/1md33KBhUkUuAS1ueNImX06 4fRk+U0SyamCxtZ0dd1p5txMII2KK7HPcKa54ptSARlc6Egdw0YwEaAMDLQ4x9g3 ezzNH/etnF1T3RlnIIPFHY0KiGpfYhRT6ZvL/JNpt65l6TzULcKxQ4lti3UJkn9e mgoqFnntXdp34UA71ceQgiQ0jS2JdC6ltE0DfRi+0uMx384J/8yFta+q33t6jkD2 PLtviCdQ7Os7QmP0SpilR8Q0cqaccuhi7Zf9biyl81uobnwcFgZskfkO8n3iovHC no4LJCHxpdblJDcSkYZ/2XEhJw5FHsqvhKC9C907LC6L+RakexPe7OofwSohtUak YWFAF6HjkaB9BjS74OwvbVFx2Ih7X9Z8K8HfpUbh1gGaEcRwK3+SbfaE8QCUPSZV TqyIro5xlL7voR8g2pUGNGxdTLKHPYDks5RO5ZxHqDwdS09tAva6o2kMY7ibXb9M 8oV2vZc+RT3kXYJvsJTxbKUpDvg7OlaWw56qW8OpJoSFxMP7z+ORprS7cWReLTzR jasubfajjomMHDBSbl1inWsscupw7P+sJaC7iKzS4sPtKvxd1eIQuXvzvByWi70m djjfX8hvPnncnRXALnns0qqoWNQ92qUVy/BDiWT64ysFsFZi+mMo00ZO3QqTw7iW 7eP7SjLBzftyehLZSHOI =SZSA - -----END PGP PUBLIC KEY BLOCK----- -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (GNU/Linux)
iQIcBAEBCgAGBQJZw391AAoJENmLkldTMRsims0QAMTpaigKDAAnMMQGlfA36W4H 12Togj6+mo62X627HDm/Q1byjhBhCdI55+F6Z7vX3UOCxcPxWSI42PK7vTFKKTYl FGDuNN77uNYjAhsRl8EEVhzDV7LFvKx29w/grYUEQa1kUJbp/6bCDD6j3kKWML5L aKMNJxqcN5TXramo+jnEt+5jyggRpBdlEpr1rwQ/Q5pxSLxIV91WNP52/KlDyMtr nILYF16R50YQf5XV/peq6+VZ+ASsgpGPgrDqkhrAy4OmIJ2tpzkJGHGolnBS2YNR s6OG7s7mk2xbNLjfDVb0fhO2tU/s/Bnkj+ibzxL9dvSinSVea/yNcV9jk06MChDq Ihg9G0Edajx8175KpEpVF1ShUArrjWrxfHbvzJksseBETylIqqwwojqrbyhtsjN/ tWOb9zGoZ7cOd0CRUVuuHaxPM/HQfN5iygUczOhBDULI55IVLy/OWtcmsu/tPR7u MfNSm3wTPV1ijK62xQgunmDb3nHUaMDnpiYfP33Z/kfeEbhRhZ9qfN4MpxgCpbDg H1T452MLjPZGii7EEUNJB33uW1weteef1VCGBp+QOPVFAqjCAaaQCo0pV7E3U/Ty RzqG25BTLGTdbSdnE+E0yZtskSjpdKKHw+6wdH0VXf0lAQqYhWWX43P1N4SjVMVR RRzMolt3STEyHfgj5zZT =RXy8 -----END PGP SIGNATURE-----
If so, then it's impossible to be ok with excluding him.
Tribalism. Is something like GNU equally tribalistic, then? Are we not permitted to shape the world by selectively choosing which personalities and projects will help us towards a better future? Tech by itself is worthless; it's the people who handle it and the social contexts in which it exists that make all the difference.
As for debate, there's the sea lion principle[1][2]. Unfortunately, with some genres of ideas, prim and proper debate is simply impossible. You're pitting reason against waves of the unreasonable. It is a war of attrition and you will lose.
It makes no difference to me whether any one particular person will "dig in to their beliefs and decide for [themselves]". I am personally not concerned with changing hearts and minds, but as a member of the community I do want to make my personal line in the sand clear and hope that others feel the same way. The coddling and back-patting that SV folks give these kinds of idealogues really upsets me.
[1]: http://wondermark.com/1k62/ [2]: https://www.wired.com/2014/10/trolls-will-always-win/
You get the irony of complaining about how every competing design has had to "reinvent several wheels", right? The system you're advocating reinvented ASCII.
There's a difference between reinventing ten wheels ten different ways for ten apps, and reinventing one really big wheel. It has to be self-contained enough that other apps can use it without having to roll their own anything, so all of them has the same API.
One of the problems with "just use a different P2P VM" is that it probably wouldn't solve the problem of having a server your mother could use. You'd probably still have to install and setup Apache and MySQL and ElasticSearch and whatever, even if someone implements the perfect transport protocol and platform. For Urbit you just run it, which can be hidden behind a pretty "click to start" button that pings our to AWS. Hence, one big wheel.
If you do see an Urbit-like project that has the same goals, I would be ecstatic to hear about it though. I've basically had "urbit but different" on my TODO list since I first saw about it.
Getting back to your question, Blockstack is claiming to provide virtually the same personal cloud features as Urbit but it's only boiling half the ocean.
As for ideological views: there are 4 million planets. They are, essentially, houses, but each one of those planets can also issue 2^16 "moons", which can themselves be their own people. I don't know the reasoning behind why 2^32, but I'm also not going to ascribe the reasoning to human worth any more than I would the author of IPv4. There are also 2^64 comets, which are their own ships outside the trust heirarchy, which really just means that they have a default karma of 0 because they have no cost, and so can be Sybil attacked - not that they can never get a positive karma, or that you couldn't use one indefinitely instead of a planet (just that it's be unwieldy). Saying Urbit can't scale bigger than IPv4 is kinda like worry that Hoon can't be programmed in Chinese - there are probably bigger problems, and it could be solved by just doubling the amount of galaxies. Hell, Urbit is open source. There would be push back against doing it, but there is nothing stopping that from being patched in tomorrow.
The most common thing I've see n called fascist in Urbit is it's identity system, and this Urbit+Ethereum spec seems to be a direct solution to some of it. Now, even buying a star you don't have to trust the owner of the galaxy you bought it from, because it's a redeemable token.
And I'm not saying the problem with that design decision is that it's amoral (let's stipulate that it isn't). I'm saying that it's extremely unconventional, a landmine of orthogonal ideology buried in the architecture of the system. Before committing to building a new product in someone else's framework, I'd want to know about all such weird decisions, and about why they are that way. Maybe Urbit's principles are compatible with the way you think about every possible aspect of how your system will interact with any of its users ever (since that's what you're buying into when you literally adopt an entirely new network to build against and deploy on). But maybe not!
Most framework designs coercively project opinions about whether the efficiency of register-sized addresses are worth the flexibility tradeoff, or whether it should be easier to define new URL patterns versus making it easier to dispatch the full complement of HTTP verbs, or whether closures are first-class or sum types are worth the complexity. Not a lot of programming environments ask us to determine what double-digit percentage of the world's population is too irresponsible to deserve an address. Again: their words (almost; I changed the order).
I'm trying to be careful not to use loaded terms like the f-word you just used, by the way. What I think about Urbit's founder is not necessarily the same as what conclusions I'd draw about this particular system, which is, I think, fatally flawed on its own demerits.
2^32 "houses", even if it was ideologically motivated, is a design decision that makes sense at first glance, is easily worked around (and was designed that way), and can be trivially changed. Some of Curtis' politics were visible in the Urbit first draft (naming galaxies after ancient rulers being the most egregious...), and both weren't important and have since been changed.
Thinking about it, 2^32 planets is one of the only weird design decisions that /would/ be ideologically motivated, other than the general dislike of Haskell or UNIX that birthed it. All of Hoon and the kernel are basically built from Nock first principles, which is both insane to read and amazing, and I'm not sure that you can say Curtis' ideology is the DNA of them. Urbit has tons of weird things in it that could make you drop it (like all of Hoon, even though most of it does make sense and is easy to learn, I promise! I'm not crazy!), but I don't think Curtis is the fatal flaw.
Link? My understanding was that the official answer was "there should be about as many urbit addresses as adult humans so that they're too expensive to spam from, and if urbit is ever so wildly successful that we start running out, it won't be that hard to add more." (though I don't remember where I picked that up either)
Also, if Urbit becomes popular other groups will start similar systems and they will be able to interact.
One of the things they want is for identities to cost some nontrivial amount of money, about $10 or so. This mostly solves the spam problem because it's unlikely that spamming will get you $10 worth of value before you're blacklisted by your parent star and it refuses to route your packets.
Can you think of an identity count that would preserve moderate scarcity like this? Or would you have the address space be indefinitely mineable, kind of like bitcoin?
So the mobile industry is already past or very soon to be past the 32-bit space with paying customers.
On the other hand, Urbit might never become popular enough for this sort of thing to really matter. We're at about 7 billion people now and the second derivative of the world population is negative, so it should level off at some point. If only 5% of 20 billion people care enough about this sort of thing to actually run a planet, then that'll be only 1 billion people, or a quarter of Urbit's 4-billion address space. 5% doesn't seem unreasonably low to me, either; app.net probably didn't even get 0.5% of Twitter's user count.
Odd, I saw the rationale early on, when I was just reading the documentation for Urbit. If you've ever seen Hoon code, you'll notice it has a lot of punctuation in it. Have a look at tumblr.hoon[0]. If you want to speak with fellow Hoon programmers in person and communicate fluidly, it's nice to have a compact, standardized-within-Urbit way of saying things like "$%"[1] out loud.
Now, at this point you're probably wondering "why would they have names that are all punctuation?". As far as I can tell, this keeps the identifiers short and of uniform length. From what I understand, one of the problems that they're trying to solve is that single-assignment code in, say, Lisp tends to flow down and to the right. They're trying to limit rightward visual creep, as I understand it.
Now, I'm not convinced that focusing on standard-library-identifier length is a good idea. Early C linkers could only handle function names that were six characters or shorter, and constraints like the ones in Hoon's standard library sound similarly arbitrary and likely to lead to unintuitive names like "strchr".
[0]: https://github.com/urbit/examples/blob/master/app/tumblr.hoo...
[1]: buccen, which I pronounce as "buck sen". It's used for making tagged unions, which reminds me of Erlang/Elixir {:ok, Value}/{:error, Reason} value-passing style.
Speaking of that.. I looked again at the reference documentation and the "hello world" (Fizzbuzz). It feels like I'm playing a game of Magic the Gathering on another world, with different physics and vocalizations I cannot do.
https://urbit.org/docs/hoon/reference/
{$book p/(list {{aura @} moss})}: mold which recognizes a union tagged by head atom.
{$lamb p/moss q/moss}: mold which normalizes to an example gate.
{$port p/moss q/seed}: form an iron gate.
{$gill p/moss q/seed}: form a gill, a wet one-armed core with sample.
{$gasp p/seed q/seed}: form a gate with burnt sample.
Uhm.. What? I know I'm reading words. But part of it makes me feel like Im also in Game of Thrones. Iron Gate, wet one-armed core, and a burnt sample?And their demo (Fizzbuzz) is just as illegible. https://urbit.org/docs/hoon/demo/ . I get programming. I know there's concepts in different langs that need understood. But one thing I know is that the demo should be easy to dip your toes in.
And it starts. "Tape" is really a string. "Home Desk" -Im guessing its the urbit home directory for your user? Urbit Pier? No bloody clue. But Im supposed to copy the file (oh wait, is file even used, or maybe its joobpflep?) to it. But at least the "Urbit Dojo" is the shell.
You posted here because you thought you'd influence people. My mind is open. Do you want to influence them or not?
It's not even hard. A single quote along the lines of "I support murdering people I dislike" would do it.
(Meanwhile, soon: "'I support murdering people I dislike' -- quote penned under handle sillysaurus3 casts serious doubts about the author's moral compass")
You're not even allowing for the possibility that his followers took his writings and morphed them into whatever ideas offended you. (You still haven't specified those.) If hypothetically some alt-right fanatics seized pg's essays and lauded them as an example of white supremacy, are we to exclude Paul from polite society too?
Second, as with many nefarious types, Yarvin knows full well that outright saying “I fully embrace monarchical white supremacy” will bomb his reputation, so he carefully scatters bits and pieces of his beliefs throughout his missives and couches it all in a thin veneer of plausible deniability.
I mean, you can read as well as me. Just delve into these quotes[1] and tell me they don’t reek of white supremacy. Does “breeding colonies of foreigners” and “debased, para-human dregs” not tip you off? FFS. Consider also the audience of every paragraph on that page — the implicit “us”. It’s the same exact white-fright garbage that the alt-right is spewing and that racists and xenophobes have peddled for centuries, just with an odd philosopher thrown in here and there.
[1]: https://peppermintfrosted.wordpress.com/moldbug-quotes/
Flippantly, my criticism is "he's hinting at provocative ideas without committing" or more aggressively "he's a weasly,trolling edgelord".
You can't debate his views because as far as we know, they do not exist, he's just using sophistry and language tricks to either dog whistle (which you can call out directly, but he can always claim you got it wrong) or to make room for everyone to fill gaps with their own emotional/pattern matched reaction (which lets you argue against things he never said).
To me, once someone sends me or I find a writing of his where he clearly states what his ideas are, he'll be worth listening to, and as I said, I'll happily needle him till I have something I can intellectually engage in and debate. But I won't put in effort to read his blabla to find that.
Because, you know, if you are actually insightful and actually care, you'll make it understandable and concise
Yes, it takes effort to discredit someone. But that's a good thing. Imagine being in his shoes, and no one will listen to reason because they heard some internet comment from a third-hand source that vaguely insinuated he's a racist.
I'm not too familiar with his writings either, but the point is that it's up to you to prove his beliefs are crazy. It's not okay to handwave and say zero dollars should support his project just because he voiced a vague opinion.
"A value in Hoon is called a noun" - or you could just call it a value.
"A gate is a Hoon function" - or you could just call it a function.
"A core has no exact equivalent in conventional languages, but the closest equivalent is an object. An object has methods; a core has functionally computed attributes (arms). An arm that produces a gate is the Hoon equivalent of a conventional method;" - or you could just say that objects in Hoon (the language) can have methods and attributes, and you would never need to invent the core/arm/gate terminology.
They try to give themselves an out by saying stuff like "Hoon has concepts like all these abstractions, but they remain false cognates." When you dig into it, the only unique things are the words. It's like children trying to come up with a code- "instead of door we'll say blorp and instead of close we'll say bleep. Now bleep the blorp before we continue inventing our code.
A "value" sounds like an abstract concept. A noun is one of two things: a natural number or a pair of nouns. Calling it a "value" makes it sound much more abstract than it is.
> "A core has no exact equivalent in conventional languages, but the closest equivalent is an object. An object has methods; a core has functionally computed attributes (arms). An arm that produces a gate is the Hoon equivalent of a conventional method;" - or you could just say that objects in Hoon (the language) can have methods and attributes, and you would never need to invent the core/arm/gate terminology.
A core is not an object in any meaningful sense. You can create stuff that looks like objects with them, but they're used for a lot more than that. For example, all gates/functions are cores, but there's no sense in which you'd call those "objects".
> They try to give themselves an out by saying stuff like "Hoon has concepts like all these abstractions, but they remain false cognates." When you dig into it, the only unique things are the words. It's like children trying to come up with a code- "instead of door we'll say blorp and instead of close we'll say bleep. Now bleep the blorp before we continue inventing our code.
The thing about revolutionary concepts is that their underlying principles are different than what you're used to, so if they look similar on the surface, you're lulled into thinking they're basically the same. But anyone who's put significant effort into programming in Urbit will tell you the system is fundamentally different. Not in the sense of "you could never understand what's going on here"; but rather, "we made these few different design decisions in the beginning, and that permeates everything".
To me, all you're doing here is describing an object-based language in which functions are first-class. Obviously, Urbit didn't invent this concept. Its predecessors used normal names for these terms. Why does Urbit invent new ones?
We could productively stay focused on just this one example, and see if there's a better reason for Urbit to call its objects "cores" and its methods or attached functions or computed attributes "arms".
To most of us, a "noun" is a person, place, thing, idea, or feeling.
I started replying to the other stuff you were saying, but I started getting this feeling like you're in on the joke and I'm not.
In many, many languages, a function is also an object.
You should read https://urbit.org/posts/overview/
The whole reason Urbit exists is that Unix + the internet is broken and needs a complete overhaul
Re: the different names, there are slight differences between gates and functions, but I agree they're not important enough to merit the change in name. But hey, it takes a purist to spend 15 years rewriting the whole stack from scratch!
So instead, I should load up Urbit, locate on a planet, spin up a garglemitz on the spitzenspeil with the hoon japing over the nock.
If you add Xenu, Body Thetans, e-meters, I think you might be on to something!
--------------------
No seriously. There are wrong things with the monolothic kernel as well as microkernels. Theyre design tradeoffs. But none of the existing, well established methods throw away the language of computing of the last 60 years. Some tech stacks may add a new type, but they are able to describe why a new classification is needed, and how it fits iin the existing model.
What Urbit is doing, is polluting the namespace by turning existing nomenclature into some sort of technofreakish cult. Up is now down. Down is now blarbbliboop. And anyone questioning the "Master" is berated and denigrated by means of 'lack of intelligence'. You all should be defending your way and means.
Because in my eyes, you all are wrong until you can start integrating standard and normal nomenclature - because it's hiding something unsavory.
In other words, what is Urbit's "Killer Feature"? Cause I'm not seeing one.
And a runner up question: Is Urbit still heavily dependent on unreleased root node code? In other words, is this distributed computing just a load of hype covering over a overly complicated star topology?
The best way i've found to describe Urbit as a product is a decentralized, open source version of WeChat. No, nobody really cares about privacy, but I think the argument is that for the consumer there is the potential for a way better experience. If all of your data is in one place, as a consumer, you only ever need to enter it once. More interestingly, all of your apps can work together in a seamless way that's currently impossible with the current paradigm. Your maps app has ubers and lyfts driving around on it, with yelp/opentable postings on all restaurants, etc.
On the developer side, you save so much time not reimplementing identity, payments, reputation, etc., everytime. There are more reasons why Urbit is better for developers, but I won't go into them here. Checkout the whitepaper...it's a little dense, but there is logic there:
Now, to your question. WeChat won at chat and once they owned communication / identity, it was fairly easy to move into payments and everything else. Urbit has a classic chicken & egg problem: its tech is designed to be better at doing everything for everybody. The current stack is already much more robust and better suited than urbit for most if not all one-off 'killer apps.'
So, you're right, they need to find the first killer app, equivalent to WeChat's 'chat'. I've been following the project for years, and the answer to this question has eluded me. However, recently, I finally heard the first solution which felt like the completely right solution to me, and I believe they're pursuing it.
Yes, some of the language is pompous and unnecessarily 'verbose'(being generous). Yes, they could do a better job explaining the problem in laymen's terms. However, I can tell you that the people behind this project are very intelligent and very serious. And, of course a little crazy..but you have to be a little bit to attempt something on this magnitude...right?
What's that?
Urbit has always been fully open source as far as I know (at least since 2013). It is true that Tlon runs some of the galaxies and stars that most people use, but that's just because other galaxy owners haven't decided it's worth it to do so (because Tlon is doing a great job of it).
That's what I suspected.
Edit: Quote from your post-- "However, recently, I finally heard the first solution which felt like the completely right solution to me, and I believe they're pursuing it."
Yet no answer.
If you aren't an independent adult, and you don't need or even shouldn't have unconditional digital freedom (no one's 8-year-old daughter needs unconditional digital freedom), a moon from someone else's planet is fine. (Even most of today's independent adults don't complain enough about being Facebook's moons.)
It's literally a bullet in their "objections" post.
I think your reading of that bit you quoted is extremely uncharitable. I don't see where urbit is passing pronouncements on anyone's "worthiness". The way I read that quote is, "an urbit planet is server software, and there are way less than 4B people with a server to run it on."
That's beside the point, though. Using scarcity to create value is not "extremely unconventional"; it's about the most ho-hum idea in Urbit. If you want a 128-bit address, you can use those in Urbit just fine. The only difference is that they don't have a default-positive reputation (where "reputation" is an abstract concept -- in practice, e.g. some channels wouldn't let 128-bit address post comments)
[0] https://www.census.gov/population/international/data/idb/wor...
now that i'm thinking about it, this has to be the answer
And decisions like this might be a part of why it never becomes popular. Elsewhere in the thread people are suggesting that, say, children don't need their own "planet" or whatever it's called, and that they could be one per family and still service the whole world. But that bakes in an awful lot of assumptions about culturally-specific ideas of family and stability of family units. Granted, I think those are culturally-specific ideas Moldbug would love to impose on the world if he could, but this is why people keep saying that even the technical decisions in Urbit are pushing specific political positions of his.
Also, at this point anyone who deliberately designs an address space to be too small to handle already-existing popular things is probably not making sound long-term technical decisions to begin with.
(FWIW I have never seen anyone pay $10 for their planet.)
So yeah, 2^32 planets (minus 65536 stars (minus 256 galaxies)) and each planet has a plot of "land" that is 2^32 wide to allocate moons out of. What happens if we run out of planets? Then people will start living on moons, simple. Or comets (the remaining 64 bits in the 128-bit address space are for comets, which are not comparable to land or homesteads.)
tptacek> [T]he founders ideological views are also infused into the system.... [T]he most available first-class address in the system is in a 32 bit address space.
chc4> As for ideological views: there are 4 million planets. They are, essentially, houses, but each one of those planets can also issue 2^16 "moons", which can themselves be their own people. I don't know the reasoning behind why 2^32....
njarboe> 4,294,967,296 is the number of planets which is a much more than 4 million.
I read 'njarboe's comment as a correction of chc4's use of "4 million". 4,294,967,296 is 2^32 (rounded to 4 billion), which 'chc4 mentions here as well saying 4 billion another comment.
If I've missed something, please do correct me. I just think 'chc4 meant to type "4 billion" given the their other correct use of 2^32 in the same comment and 4 billion elsewhere (https://news.ycombinator.com/item?id=15300641), and 'njarboe's misinterpreted 'chc4 as misunderstanding, rather than fat-fingering. I'm not saying anything about the choice of 2^32. If you read that as otherwise, how can I improve my writing to make that clearer? Was there a particular phrase that you found easy to misinterpret? Something that made you think I was saying anything more than that? Do you think 'chc4 meant "4 million" and not "4 billion"? Are there actually only effectively 4 million (not billion) planets? As for my interest in continuing this thread, it's not that care about the discussion topic, but rather whether I'm communicating (reading and writing) effectively.
> The most available first-class address in the system is in a 32 bit address space.
The most available address is a comet. What is the meaning of a "first-class" address? They are all addresses, the motivation of the founders and the concept of a first-class Urbit address is what I take issue with. There is currently very little that you can't do with one of the 0::(64bit) addressed comets, except for "spawning child addresses." The other differences are all theoretical solutions to problems (spam) that we Urbit users in great part just don't have yet, so the idea of a first-class address is basically theoretical too. Having a planet is more like having a /24 if you want to draw parallels to IPv4, but... not really a valid comparison.
Comets are the most available addresses. There are 2^64 of them and it only costs a few CPU cycles to generate you a private key. They have no subordinate "child" addresses. Otherwise they are first-class citizens and you can have as many of them as you want. Go ahead and take your share of that pool of 1.8446744e+19 addresses.
I don't know who would pay $10 for a planet. I know they don't want you to get more than one, in case they need to impose spam controls on these "lower 64" free addresses. I know lots of people have paid for stars, but I don't personally know anyone who didn't get their planet for free at this time.
(Disclosure: I own a galaxy, I don't sell planets, and I did not pay any amount of money for my galaxy. I was in the right place at the right time, and I helped test early releases. I am skeptical that it has the same value as the galaxies that are still held by the founders (it is priceless to me,) but they are active contributors and there is a good reason to give them money if you want to see Urbit development continue.)
There is no such value to be extracted by paying ~del's discount planet shack for stars or planets. I am hardly even a casual hoon programmer.
That's a pretty (unintentionally) misleading description of it. What is an object? An Urbit function has basically nothing that an OOP object has. No class, no inheritance, no attributes, and no methods. It's just a way of encapsulating a formula (VM assembly expression) in a way that's convenient to call with formulas. It uses the the "core" pattern because it's convenient.
"Arm" is a pretty specific term that refers to the way an "element" of a core is represented in the core. When you want to map a particular use of cores to its underlying representation in the "core" pattern, you want to be able to talk about specific data structures.
In general, Urbit errs on the sides of giving names to concepts that could only otherwise be described in multiple sentences. Most projects just don't give names to those concepts. Urbit needs better human descriptions of its concepts, but using traditional names for them would be misleading.
Urbit isn't trying to solve many new problems; it's trying to solve old problems in different ways. They just want to be able to talk about the constructs in their solutions.
Given my proclivities in the occult, I do indeed have to watch out for real life cults. Now, I know this document is primarily for esoteric religion, it also very much applies to cults in other senses. But there's a few that really sticks out with me.
http://www.neopagan.net/ABCDEF.html
To me, this is a damning list of reasoning that Urbit should be considered a Cult, and thusly stayed away from. The only exception I give is, is to peeling back their crypto-jargon for any new concepts of computer science we in the larger community should document, understand, and use.
Interacting with this community only leads to poisonous cult mindsets that can easily damage your mind. Beware.
________________________________________________________________
1. Wisdom/Knowledge Claimed by leader(s); amount of infallibility declared or implied about decisions or doctrinal/scriptural interpretations; number and degree of unverified and/or unverifiable credentials claimed.
Go look up anyone under Curtis Yarvin. Even in the HN thread. He is "The Master", and you are just too stupid to understand his pure clear thought.
2. Wisdom/Knowledge Credited to leader(s) by members; amount of trust in decisions or doctrinal/scriptural interpretations made by leader(s); amount of hostility by members towards internal or external critics and/or towards verification efforts.
The evidence here is the appropriate HN posts, that give scorn for highlighting major issues with the language, choices in the network architecture, and choices elsewhere in Urbit as a whole. Anyone questioning anything with Urbit is either attacked, derided, ignored, or pushed aside usinng "Whataboutism".
3. Dogma: Rigidity of reality concepts taught; amount of doctrinal inflexibility or “fundamentalism;” hostility towards relativism and situationalism.
You need to Arvo the hoon into the lolwut iron branch thats in a wet case. WHAT HOW DARE YOU NOT UNDERSTAND. You're just stupid, I guess.
4. Censorship: Amount of control over members’ access to outside opinions on group, its doctrines or leader(s).
By definition, they all use Urbit to communicate. I looked in Freenode #urbit , and its something "superior" called tahc.. Yet if you look how Urbit works, any higher class user can disable sub-users' accounts. They call them stars/planets. Whatever. But your superior owners of your network block/address can censor you. And since it's federated, NOT decentralized or distributed, your id is easily blocked.
5. Isolation: Amount of effort to keep members from communicating with non-members, including family, friends and lovers.
Insert all the completely new jargon. Instead, it separates users from IT anywhere else. This is the same thing Scientology does, so people feel special and "connected" only within their clique. Of course it doesn't translate out, so it can be used as a differentiator of "Those who know".
6. Dropout Control: Intensity of efforts directed at preventing or returning dropouts.
Lockin is their way of handling this. Obviously they aren't holding guns to your head. But it's more of not wanting to cut losses because there "could" be something.
7. Grimness: Amount of disapproval concerning jokes about the group, its doctrines or its leader(s).
Mencius Moldbug / Curtis Yarvin. I need say no more.
________________________________________________________________
It pains me to see people paint the project and its people in this light. I don't know if I'm taking the bait here or playing into your cards or whatever, but I want to try and clear some things up.
> He is "The Master", and you are just too stupid to understand his pure clear thought.
Not really. He's actually been really helpful in explaining some of the decisions that were made in the past to me, and it never felt like my say in discussions regarding ongoing work didn't matter.
> Anyone questioning anything with Urbit is either attacked, derided, ignored, or pushed aside > You're just stupid, I guess.
I don't know what communities you've been in that people just go "you're stupid" when you don't understand something. In my experience with Urbit's chat rooms (and the forums, subreddit, etc.), people are generally friendly and understanding of the struggles that come with jumping into an entirely new stack like this. We know things can be confusing, we know it's hard when you're just starting out. We're also very much ready to help, and do care about discussing concerns and criticism.
I'd be willing to go so far as to say that, right now, Urbit's community is one of the nicest on the internet, but of course that's a tough comparison.
Aside, maybe interesting: the arcane naming of the Hoon stdlib is getting rewritten to be much more sensical and easily understandable. Why? Some community members were displeased, and someone took it upon themselves to make the rewrite happen. We're happily merging that in once it's done.
> By definition, they all use Urbit to communicate.
And you can reach us without even installing Urbit on your machine. Take a look at http://urbit.org/stream/
> any higher class user can disable sub-users' accounts
"Disable" isn't the right word here. A higher class can choose to stop helping a sub-user with peer discovery and to stop providing software updates to them. But if a sub-user is not content with the service their parent is providing, and/or they feel like they were unjustly blocked, they are free to find a parent that wants to adopt them.
Using that mechanism, communities that oppose each other can cleanly separate and continue doing their own thing without any bloodshed on either side.
> not wanting to cut losses because there "could" be something.
Doesn't this apply to pretty much anything happening in the decentralization and crypto spaces right now?
> I need say no more.
Well, I've never experienced "disapproval concerning jokes about the group". We're not above joking about the weirdness of our own system, it's something we're very much aware of.
The reason I ask is if there's a good reason that a bigger address space would be worse in some way, then "bigger isn't necessary" might be a decent argument, but if there's no good reason not to make it bigger, then it's not such a good argument.
Indeed not. I looked at Urbit as a way to do untrusted computation spread across multiple nodes. Think of a distributed Lambda not dissimilar to that of IPFS, but for computation. I tried to give it a fair shake. However roadblocks were everywhere. I would have to throw out most of my computing knowledge and start over to even analyze it. And writing programs in Hoon is ridiculous. My current tooling - nonfunctional. It not only disregards current nomenclature, but any sort of tooling I have to develop, make, and troubleshoot.
In the end, the further I try to get the 10,000 mile view, its just a federated system with a screwy network topology. And as tptacek has noted, the base code has very strongly written "bad choices", CS-wise.
> I don't know what communities you've been in that people just go "you're stupid" when you don't understand something. In my experience with Urbit's chat rooms (and the forums, subreddit, etc.), people are generally friendly and understanding of the struggles that come with jumping into an entirely new stack like this. We know things can be confusing, we know it's hard when you're just starting out. We're also very much ready to help, and do care about discussing concerns and criticism.
My experiences with Urbit have been primary documentation (which I am told elsewhere is the last place to look ?! ), people who show up from the "woodwork" on any thread that mentions Urbit, and some very hostile conversations on the 'web primarily discussing Yarvin's statements.
And unlike libraries like JQuery or Node.js , I can use them without being "part" of the community. I import them, load them, and use them. No muss, no fuss. Whereas, Urbit's community is inexorably tied to the foreign code and systems. I cannot simply download and use it - there's tons of content that is shared within the community. In coded language of Urbit, no less.
To understand, I have to use. To use, I have to understand. Both of these are going to take a great amount of time; and the knowledge here is non-transferable.
And strangely, once people start using that language, they seem to fail to explain the fundamental principles on which they rest on. I note this as the same type of trap that esoteric and religious cults use. They fail to explain what their terms really mean - and then it is a mixture of giving up, ignoring them, anger, or derision.
> And you can reach us without even installing Urbit on your machine. Take a look at http://urbit.org/stream/
Thank you. I saw that earlier. It looks something like Disqus or IRC on a website. It's obviously done with Urbit, but alas, it still doesn't help with deciphering any of the nomenclature.
> "Disable" isn't the right word here. A higher class can choose to stop helping a sub-user with peer discovery and to stop providing software updates to them. But if a sub-user is not content with the service their parent is providing, and/or they feel like they were unjustly blocked, they are free to find a parent that wants to adopt them.
So it's not true that Tlon can't just say $user's compute node is hereby expelled? Because my initial understanding was that Yarvin implemented instead of Galaxies/Stars/Planets, it was Dukes/Generals/Earls, and his compute node was the unique role of "Prince" - with the ability to expel anyone he saw fit.
> Doesn't this apply to pretty much anything happening in the decentralization and crypto spaces right now?
Indeed.. But that's a whole other ball game there. And yes, some of the cryptocurrencies most certainly have their own very cult-like status and effects. But you and I digress. I'm only here speaking of Urbit.
Ideally, what I want is the following:
1. Provide first principles how the system works. Use standard topologies, algorithms, and other established analytical methods.
2. Disambiguate the coded words describing primitives in the language. If the VM is emulating a non-Von-Neumann architecture, discuss it!
3. Network Protocol analysis: these should be well documented and established. I'm guessing they're also written in Hoon, which means they're nigh unreadable and excludes any existing tooling.
4. Fully document and vet the mathematical principles in the implemented crypto. Because I dont trust black box systems - and yes, Hoon is most certainly "black box" for 99.99% of programmers.
I'm sure there's something in Urbit that isn't documented elsewhere, or a algorithm that the world outside Urbit hasn't seen. Im interested in seeing they get their rightful place as part of mathematical tools we all use. In that end, Urbit is a neat project.
But for the reasons I've highlighted, I believe it would be an error to put any sort of time in this system outside of a curiosity.
Correct, this is untrue.
Indeed, which is why it's a shame our primary server OSes (Unix-likes) can't incorporate them. Urbit can.
As for what are the approaches different, there have been many words spilled over that, but here's a few examples to wit, most of which exist in one or two other systems, but aren't widely used:
- All events are transactions, down to the VM level. There's no concept of an event that left garbage around because power was cut or the machine was rebooted. You can always crash an event, making it as if it never happened.
- Single-level store. Never worry about ORM because your in-memory state never goes away (because all events are transactions).
- Persistent connections with exactly-once messaging. Disconnection is just seen as long latency.
- Strict, purely functional language with a strong type system but no Hindley-Milner (so you don't need category theory).
- Sane indentation for a functional language, known as "backstep".
- The file system is a typed revision control system, which allows intelligent diffs on types other than plain text.
Most, if not all, of these, have been described in research, but nobody's bothered to build a system with them.
None of these make use of monads or anything rooted in category theory.
https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_sy...
HM is a type system that also gives you an algorithm to infer types without having to do the "List<Integer> foo = new ArrayList<Integer>()" dance from languages without type inference. That's it. It has nothing to do with category theory.
Bullshit.
https://groups.csail.mit.edu/tds/papers/Lynch/jacm85.pdf
Unless you and Yarvin really think there's a valid answer to the 2 Generals problem... Im sure there's a Fields medal in there if you do.
"Every major message queue in existence which provides any guarantees will market itself as at-least-once delivery. If it claims exactly-once, it’s because they are lying to your face in hopes that you will buy it or they themselves do not understand distributed systems. Either way, it’s not a good indicator."
~ http://bravenewgeek.com/you-cannot-have-exactly-once-deliver...
This is A) not an impressive problem to solve, and B) not actually a problem in Haskell or Elm.
I can even get behind runes, and I set up abbreviations in Emacs to learn their names. And generally, I like the philosophy of language where short, one syllable, old/middle English words are used in place of the less familiar Latin/Greek derived words. I don't have a problem with revising our existing vocabulary in this way.
But the attitude to type theory strikes me as anti intellectual, precisely because we get nonsense claims about Hindley Milner requiring category theory. This sort of misinformation does no good for anyone.
> FLP and the Two Generals Problem are not design complexities, they are impossibility results.
Two generals, in its impossible form, isn't applicable here. For example, this proof[0] depends on the deterministic form being impossible to solve in a finite number of messages. But why would we care about doing it in a finite number of messages? By that measure, at-least-once delivery is impossible too, yet neither you nor the blogger seem to have a problem with that. The solution is easy and common: send a message, ack new messages, retry if you don't receive an ack, never ack an ack, and always ack a dupe. As long as you aren't disconnected forever, this will give you at least once delivery.
FLP only applies in the case of faulty processes. Specifically, FLP arises because the faulty process must either (1) ack the message before handling it, or (2) handle it before acking it. (1) fails if it crashes after acking before handling, causing it to forget it ever received the message (at-most-once). (2) fails if it handles the message, but doesn't persist that fact to disk, so that when the dupe is received it doesn't know it already handled it (at-least-once).
Urbit processes events transactionally (like a database), so you're guaranteed that if you received an ack it's because the other person has persisted that message or its results, and it won't forget about (i.e. they've persisted any state changes related to it). No faulty process, no problem. FLP impossibily doesn't apply.
I suggest actually learning about proposed solutions to problems rather than recalling that someone convinced you they were impossible to solve. Proofs are powerful because they're incontrovertibly true, but they only apply if their conditions are met.
[0] https://en.wikipedia.org/wiki/Two_Generals%27_Problem#Proof
But that doesn't mean we can't provide systems where, for all practical purposes, it is a guarantee.
Another way to think about it: SHA1 cannot provide a unique hash for every possible set of content - there are overlaps. This is the pigeonhole principle.
Yet, we have entire systems designed around assuming SHA1 is and will always be a unique hash for a piece of content (Git), and, for all practical purposes, it is a guarantee good enough to work despite that.
It would appear that my knowledge is out of date: did Rust use something closer to H-M in the past? (Going off of https://github.com/rust-lang/rust/pull/15955 here.)
Rust has done almost everything in the past; I wouldn't be surprised if somewhere back in there it was actually HM. :)