Hacker News new | past | comments | ask | show | jobs | submit login
What Urbit is (urbit.org)
234 points by rgbrgb on June 1, 2016 | hide | past | web | favorite | 239 comments

If the blockchain is useful in those areas where [almost] no trust exists, Urbit has the potential to be useful for essentially everything else.

To give a concrete example, this would be useful for any Ethereum app that doesn't want to store data on a central server (which most cannot do whether for legal, security, or ideological reasons). The idea to me is that the internet wasn't built very well to run decentralized apps [which is definitely the case if you've ever tried building one without having to rely on central servers for caching, storing accounts, comments, etc.]. It's, imo, a nice complement to blockchain tech like Ethereum and Bitcoin. Long term once it's out and running I see dapps like Augur [a decentralized prediction market which I work on - http://augur.net] using it so users can securely store their private keys, report data, market data, trade history, etc. and easily go across/between devices as opposed to just using localstorage [which is a pain to migrate using] or fetching it from ethereum every time [which is very time consuming and has lots of overhead].

If we're going to seriously move in this direction of decentralization, at scale we need something like urbit. No one else is really tackling the same set of problems.

Came across this quote on it by Alan Kay: "They have verve, and that's generally a good thing. In this case there are a lot of details that need to be grokked to make any reasonable comment. The use of combinators (a kind of dual of lambda calculus) harks back to an excellent thesis by Denis Seror at the University of Utah in the 70s that produced a safe, highly scalable and parallel implementation. I haven't looked at it more deeply (and probably should)." [https://news.ycombinator.com/item?id=11810177] - very cool!

There is no such thing as a trustless app, unless you are doing basic mathematical algorithms contained within the same system. Ethereum adds no value to Bitcoin because any useful apps you want to make NEED a centralize source to provide data to it. For example, if I want to make an app that sends coins to someone when bitcoin is at a certain price, I would inherently be relying on the trusted source, that provides the bitcoin price data. Similarly for sport payouts or property contracts, they all rely on the external centralized source for information. The only thing Ethereum can do, is basic operations contingent on values within the same system, otherwise you break the "trustless apps" veil.

> There is no such thing as a trustless app

Reread my post, I said almost. Nothing in life is trustless [for instance, solar flares could effect my computer's state], but you can get close. So we agree there

> Ethereum adds no value to Bitcoin because any useful apps you want to make NEED a centralize source to provide data to it.

This is called the oracle problem --- it's a difficult problem, but not intractable. Augur doesn't use a centralized source to resolve its markets, it has groups of reporters who do that [with a whole set of incentive structures surrounding truth-as-schelling-point and relying upon bonds to cause monetary loss to people attempting to "cheat" the system. Your cost to cheat the system will almost always be more than potential profit [unless there's only 1 market in a system with a ton of volume and no other activity, which means it's basically dead anyway and there are 2 backstop mechanisms surrounding this as well]. Anyway given infinite money anything is attackable / not trustless.

Second, you're missing _a lot_ of the benefits of Ethereum. It can control funds programmatically. To run a prediction market using bitcoin you have to hold customer funds, on Ethereum you don't [this is a huge opex]. On Bitcoin, you have to process the trades, on Ethereum you don't [hello more opex!]. On bitcoin you're forced to use a multisig 3rd party or have counterparty risk to trade prediction market assets, on Ethereum you don't. You have to resolve markets yourself [or with multisig of a handful of people, because bitcoin cannot support multisigs beyond 20]. People can't create their own markets and add liquidity to them on your platform if it's on bitcoin without trusting you either. Could go on and on, but _unless_ you're referring to a sidechain of bitcoin you can't do any of that.

As far as the example here: "For example, if I want to make an app that sends coins to someone when bitcoin is at a certain price, I would inherently be relying on the trusted source, that provides the bitcoin price data." is wrong. On Etherex on ethereum I can get data for he btc-eth price and do a transaction based on the exchange rate without trusting anything in the outside world

All of these comments seem to be saying that this is so well written.

I still have no idea what it is actually trying to accomplish. Is it a decentralized storage/compute platform? Why are they calling it an OS? Why does it only reference existing technology to say it isn't that?

None of the links are working for me either.

Sorry, the server was struggling for a moment. We fixed it.

It's an OS admittedly in the metaphorical sense -- the same sense that your browser is an OS. That is, a platform that runs higher-level programs. Urbit doesn't run on bare metal, though it could, in the same sense that your browser could.

In fact, one way of describing Urbit is "the browser for the server side." In the same way that your browser replaces a bunch of individual client apps with one native client that's a platform for higher-level programing, Urbit s/client/server/. Does that help?

so it is a place that will centralize all my credentials so it can fetch and parse my mail, IMs, stock trades, files, etc to then inter-process that to my liking and possible talk to a client on my phone or such?

why a chain of specialized posix programs would fail for that?

Yes, Urbit is (or at least is designed to become) a personal server which solves this problem among others.

One: a chain of specialized Posix programs would work for that. You would have to be someone who can manage a chain of specialized Posix programs, though.

Two: serving as a general-purpose stateful HTTP client is a subset of what Urbit does, though an important subset. It's also a server on a public network.

The second problem can also be solved with Posix programs, but it pretty much seals the requirement for a trained professional. It is possible to imagine a high-usability personal Linux (Sandstorm, for instance), but not really a high-usability general-purpose Internet server (at least if it implements social apps via decentralized protocols).

(In fact, it's not even clear that trained professionals are comfortable with decentralized protocols -- see under, Google doesn't even want your XMPP traffic, etc.)

Urbit may or may not be the perfect solution, but I think it's clear that if ordinary humans are going to have their own personal servers, they're going to need some kind of new system software.

You still haven't made it clear who is running 'my' urbit programs and why they are doing that.

If they are doing it for free this won't scale. If I am paying them why don't I just pay someone to maintain standard software.

I find this very strange because I love all of the work on distributed and decentralized systems. I am normally excited to read more about a new approach, but I still don't understand what you are trying to do and feel like I am just being fed marketing terms like "The browser for the server side" wtf? Do you mean CGI?

When I say "the browser for the server side," what I mainly mean is the isolation layer between the browser and the OS.

For example, suppose someone designing the first JS environment at Netscape had suggested that since JS is so great, you should be able to make POSIX system calls from it. Or link to locally stored libraries. Or use a language someone had heard of before. I think you'll agree that if this decision had been made, most people would never have heard of JS.

The browser is a second-level OS which provides a service no first-level OS offers; it loads applications almost instantly and sandboxes them securely.

Now, in theory, you could modify a Unix to solve this problem. Arguably, it's a problem any OS ought to be able to solve. We are certainly much closer with containers. But still, imagine what it would take to replace webpages with Dockerfiles. (sandstorm.io is the closest to something like this; definitely check them out as well.)

Urbit's semantics are isolated from the platform in just the same way. The job of a general-purpose personal server is very different from the job of a general-purpose client -- they have almost nothing in common. But the isolation layer over the current systems platform is the crucial element.

form the site, i get the feeling that to use urbit i have to be a programmer and a theoretical mathematician... but i confess i did not waste much time on it yet.

Actually, Hoon is designed as a functional language to be used by people who DON'T have a PHD in category theory.

Although I must admit it does look foreign at first because of the symbols, I found it very easy to learn. And believe me, I am not a theoretical mathematician.

So it's an OS in the sense that the JVM is an OS.

This page was so clearly written, and its content so compelling, I was actually left wondering whether it was the same bafflingly pretentious Urbit that I'd stared at in mesmerised bewilderment in years past.

This makes sense, looks great, and I might well give it a try!

I for one enjoyed reading about the bafflingly pretentious Urbit even though I wasn't sure what to make of it.

So ignoring the abstruseness and pretentiousness for a moment [x], what I don't like is this model of immutable networking Urbit has. Maybe I am in a minority position, but I fear the future where everything is cryptographically signed, verifiable and irrefutable.

I want to be able to go on a website and post bullshit that I'll regret 15 years later. And if after 15 years someone unearths that post, I want to be able to say "that proves nothing, anybody with a text editor could have forged that". You might say a prospective employer wouldn't buy that argument even now, but I want to live in a world where people do buy that argument. Where you can post party pictures on the internet, because it's trivially easy to fake pictures, and everybody has accepted that pictures have no proving power, so everybody feels free to post them, even my boss. Let technology drive society to be more laissez faire.

A similar thing with bitcoin. My utopia doesn't involve cryptographically secure, ideal money - it rather involves no money at all. I'd rather put my energy into developing a new kind of society based on free association (rather than labor & money) than using algorithms to cement this society.

I believe cryptography is great for being CRYPTic, i.e. providing anonymity. But using it to prove identity etc. should be used very sparingly and not without thinking about the consequences.

[x] And I don't want to denigrate this project. It seems to be a great technical and theoretical achievement - it's just that their ideals are not necessarily mine.

I'd say this problem is best solved not by having no cryptographic identities, but by using disposable identities.

If you bound an identity cryptographically to your real name, that's permanent -- no getting around it. We all make mistakes. However, one of the benefits of Urbit is that you can build a reputation around a pseudonym that isn't linked to your real-life identity.

There's a place for the 4chans of the world, with totally disposable one-time identities. You can do this with Urbit as well -- use a 128-bit self-signing identity (comet). But most people tend to want a little more stability and permanence.

> I'd say this problem is best solved not by having no cryptographic identities, but by using disposable identities.

A problem with disposable identities as usually implemented is that they are too cheap and easy to make. This makes it easy to make a new identity every place you want to be an asshole. The end result is that places get tired of this, and ban such identities from their spaces.

I think what we might need are semi-disposable identities. You can make a new one whenever you want, but it costs something to make a new one, and that cost goes up with each new semi-disposable identity you make.

This is exactly the way Urbit works. (It's sincerely hard to tell from your post whether you've read the documentation, or you just had the same simple idea yourself.)

Anyone can create a 128-bit comet. But once the comet system starts being abused by assholes and bots, signs will go up all over Urbit. These signs will say "humans only" and deny admission to comets -- essentially blocking anyone who has not invested any real stake in their identity.

The normal quantum of reputation and of human identity is the planet (32 bits, like an IPv4 address). Ideally a virgin planet would cost about $10.

Basically, if this cost is far above the amount of money that a spammer can make before a reputation system catches up with the swine, there will be no commercial abuse. This leaves reputation systems to deal with the much easier job of wrangling random creeps and weirdos.

So if you invented this design yourself, yes, it's a very good one...

There are eight billion people in the world. There are 4 billion possible planets. What is your plan for when urbit takes off and reaches internet-scale?

BTW, ~bitret-worwyd here. ;)

~bitret, I remember you from a while back!

A planet is like a car -- it's not a toy, it's a tool for a responsible grownup. There are about 4 billion adults in the world. And not all of them are even Internet users.

Of course, the population keeps growing. Eventually either people have to learn to share, or the price will go up, or humanity will learn how to stop expanding exponentially.

Think of a planet as a unit of autonomy and reputation, not of personality. The global supply of autonomy is 2^32 units. That's not perfect in any sense, but if the supply is infinite the network is ungovernable, and the value of each unit is zero.

It's also an improvement on a world in which there's one unit of autonomy, and its name is Mark Zuckerberg. Urbit does a lot for digital freedom, but we're not in the miracle business here. No one can do infinity for digital freedom.

> A planet is like a car -- it's not a toy, it's a tool for a responsible grownup. There are about 4 billion adults in the world. And not all of them are even Internet users.

There's a reason why the IETF decided to switch to 2^128 for IP6. Mainly, because there are more computers and devices that need addressing than IP4 can handle.

I have to question the design of Urbit why you chose to go with 2^32 addressing space?

> Of course, the population keeps growing. Eventually either people have to learn to share, or the price will go up, or humanity will learn how to stop expanding exponentially.

Again, the future is "Pay to Play", just like Ethereum? And, is that a population control argument? How would you propose to "stop expanding exponentially"? Chinese method? Ender's Game method, or something else unsavory?

> Think of a planet as a unit of autonomy and reputation, not of personality. The global supply of autonomy is 2^32 units. That's not perfect in any sense, but if the supply is infinite the network is ungovernable, and the value of each unit is zero.

Ah, so you are the "governor", hence why it must be governed? This is literally artificial scarcity on something that could easily have been near infinite

> It's also an improvement on a world in which there's one unit of autonomy, and its name is Mark Zuckerberg. Urbit does a lot for digital freedom, but we're not in the miracle business here. No one can do infinity for digital freedom.

So switching from one master to another makes better "freedom"? I get being against walled gardens. I'm against them as well. But you make no point why Urbit isn't just another walled garden (using funny language to hide behind it no less) with you at the helm.

> I have to question the design of Urbit why you chose to go with 2^32 addressing space?

They haven't. They went with base 256, for easier recognition of 32-bit (and 16-bit, and 8-bit) numbers. You can get a 2^128 identity or a 2^32 identity (or others.)

The fact that 64-bit numbers (like ~novfes-lodzod-sibfes-talzod) in Urbit's base 256 are twice as long as 32-bit numbers (~sibfes-talzod) which are twice as long as 16-bit numbers (~dalryp) and down to 8-bit numbers, which are the most memorable and highly coveted (disclosure: you're looking at a comment written by ~del, aka Hex number 0x25) is something between a feature of Urbit's networking stack, and an unavoidable consequence of doing math and dividing things up between persons that are remote from each other, therefore each needing addresses to be identifiable.

Identities that are made of 128-bit numbers are free, and essentially unlimited. They are basically public key hashes and the risk of a collision is sufficiently low that there is no need for them to be generated by a single authority and centrally assigned. (Note that this does not necessarily scale to the population of the earth and beyond as a solution to addressing graph nodes and efficiently routing traffic between them.) Identities that are made of shorter numbers are limited in number and assigned hierarchically; even if there are a boat-load of 64-bit numbers, it's not half as many, it's ½^64 times as many. Certainly there are more 64-bit numbers than humans on Earth today, or for the foreseeable future.

Whether you consider this to be more problem or solution will probably depend a lot on which side of the spam-wars you find yourself on. Currently there is no Urbit software or infrastructure that I am aware of that algorithmically discriminates against one kind of numbers or another.

You won't expect one authority to differentiate each of 8-billion humans and make sure that each one is granted a separate identity (but not more than one), will you? How about 256 such leaders? Still seems far-fetched, doesn't it... especially given the difficulty of coordinating 256 separate leaders. 65536 very smart individuals probably also cannot be expected to coordinate the identities of the rest of the humans in the world. It would be gargantuan undertaking just handling it when some of these leader-folks have forgotten or lost their passwords (and potentially disastrous for the 0.0015% of the world's population under their charge.)

64 bits of hierarchical ID space is enough for every 32-bit identity (planet) to individually dole out as many 64-bit numbers (moons) as there were 32-bit numbers to begin with. Urbit takes advantage of this roughly to make scaling the network's identity framework to rather immense proportions, happen at least a bit more naturally.

If your 32-bit leader gives a lot of 64-bit IDs to people that turn out to be spammers, you run the risk of being lumped in with those spammers by algorithmic processes. Imagine such a process that tries to discriminate against spammers and keep them from spamming everyone who is known on the whole network, at any scale. It's not a simple proposition, at all!

Do these things also get released if the person holding them dies?

(the reasonable assumption being that only a tiny fraction people will bother or care to actually make arrangements for this)

Or even without death, the idea being urbit "property" is all cryptographically locked tight, correct? So can a planet get lost? If someone loses all their keys or a server park gets droned and the dog ate their backups or something?

Planets can also issue moons. I believe somewhere down the line when the number of planets becomes an issue (a good problem to have, it must be said), it would be technically possible for moons to be given similar functionality to a planet. One could imagine a future in which a household, or even a group of close friends who share a planet that issues each of them a moon to hold their primary identity.

> There are eight billion people in the world. There are 4 billion possible planets. What is your plan for when urbit takes off and reaches internet-scale?

Don't worry! There aren't 4 billion people on this world that can spare $10 on a piece of virtual property. Just don't accidentally solve world poverty and it'll be fine.

The obvious plan is that most of them can't scrape together ten dollars for a planet.

That's a good point! One favorite idea of mine is that you have a trusted identity provider, that knows you, and hands out pseudo-anonymous identities. E.g. Facebook vouches User123 is female, 20-25 years old, has been active for 2 years, and is likely not a spammer. This gives you disposable identities and the benefits of proven identity.

The problem with any kind of long-lived pseudonymous identity though is that it is really hard to do proper opsec and keep it distinct from your real identity, but I'm not sure there is a technological solution for that. I mean even your grammar can give you away (stylometry).

> "a new kind of society based on free association (rather than labor & money)"

I'm all for that, but for that to really work you'd have to change what people understand about ownership of material goods, and I suspect that'll be a hard battle to win. Perhaps a good place to start would be experiencing life in an ecovillage, some of them work with a minimal reliance on money.

That's true. Thing is, I don't have a great thought-out plan. I sympathize with a couple of ideas from the corner of anarchism or communism (that's why I dropped the term free association), but I would strongly hesitate to call myself e.g. a communist, because there has been so much crap running under that term that I can't really identify with it.

I find interesting that sometimes technology wants to push society in a certain direction - that can be good, bad, or neutral - and society resists with new technology, and this creates an curious interplay. Like file-sharing made it trivial to share music. Either we change society, everybody can access music for free, and we find a new way to feed and reward musicians. Or we keep society the way it is, invent DRM, and pretend files are material goods. Or for an older, more drastic example, think of the effect of widespread contraception on sexual morality.

About changing people, I think a widespread objection against utopias is to say they are trying to create new people, and I think this objection is not entirely unfounded. I'd personally try to change society, so that what's between people and not the people themselves, if you know what I mean. I wouldn't even want to try to put everybody through an ecovillage or a kibbutz etc., although I'm sure it's a valuable experience. Rather make small, incremental changes, and set incentives such that people automatically do the 'right' thing. But, as I said, I have no concrete plans, and fixing human society is a really really hard problem :-)

Sounds like you have similar ideas to me when it comes to moving towards a new type of society, I like to describe it as evolution over revolution. I recognise that it's not easy, but I do have ideas about how it can be done.

The first thing is to start building alternative living arrangements where people can get what they need to survive without relying on money. I do think ecovillages are a good model to start with, though I'd ideally like to see the culture of each self-sustaining village be more diverse.

After you have a network of these self-sustaining villages, you move from providing the bare essentials to sustainable versions of luxuries. To give you an example of this, you could class medicine as a luxury (though some would class it as essential). The idea is to make the alternative lifestyle more attractive by making it so people don't have to give up as much.

By doing this, more and more people will choose to live in this new way of their own free will, as not only will you be able to live in a sustainable way without giving up on technological progress, you'll also have a diverse range of settlements to live in, and you'd be free to move between them as long as the new village had capacity.

Buckminster Fuller once said "In order to change an existing paradigm you do not struggle to try and change the problematic model. You create a new model and make the old one obsolete.", that's the best way forward IMO. I do think the existing network of ecovillages is a good starting point, and I think it's possible to extend this base to cover more of what people want. That's the way I could see a moneyless society emerging.

Refutability is a quality of many a good crypto system

Edit: spelling

I love that they even introduced convenient ways of pronouncing the ASCII symbols Hoon uses. Last time I saw it, I created this gist: https://gist.github.com/killercup/be14570af13cbddb5dbc

(Haven't checked if anything changed since then.)

I think Jay Maynard said it best: Urbit is "INTERCAL as OS". Alternatively, it's a New Kind of Computing (by analogy with Wolfram's New Kind of Science).

This paper didn't really tell me anything about Urbit that I didn't already know. But it's good to see them have a nice clean readable rationale.

INTERCAL is a whole other level of crazy hard opaqueness though. I admit I never tried to write anything in one of these two funny urbit languages, but from what I've seen in the docs, they don't intend to go out of their way to be impenetrable.

I read INTERCAL documentation twice. First time for fun & crazy and I had some good laughs. Then a while later I came across a challenge to write X in INTERCAL (I forgot what X was), so I got the documentation again, this time reading it with intention to write code, ... I gave up halfway, in horror.

INTERCAL was designed to be "most unlike any other programming language" and didn't stop for any feature if it could be twisted into being more unlike any other language. And it shows, it's hilariously hard to program in, and gets in your way on purpose.

Ubrit also seems so far to be very much unlike many or most systems, ever. But it's more about trying something new, with an idea, it uses its weirdness to support the idea, but it doesn't stop at nothing to keep pushing the weirdness over the top. There's another goal in mind. But the goal is not very funny so that's an extra barrier it has over INTERCAL.

This is the first time I've heard of this, there just seems to be a bunch of holes in it. OK, so you have a basic embedded-style ROM vm with a light layer of application code above it. Hard, solvable problem that they seem to have covered.

If it is supposed to be for the people how am I supposed to find a route between hosts behind a NAT? Is this galaxy.urbit.org the DNS and the TURN relay? Is the expectation of the 'server cluster that is yours alone' still dependent on someone else running the relay? How can my servers have friends that aren't part of my trust network? How do I run my own trust network between people I want to trust?

The weirdest thing is that there doesn't seem to be a designed way for an operator of an Urbit to talk to their/other Urbits. Where's the classic plain text protocol to at least say HELO? How do I fix it?

This just ends up looking like a specific-use estoeric lang + runtime to me, which I do enjoy as an exercise. I just can't see how the UX problem is going to pan out based on what is presented.

Urbit's network is federated, not decentralized (although it could be).

Currently, you get a planet under a star under a galaxy. Galaxies are all discoverable under galaxy.urbit.org, and have a hard-coded public key in the kernel.

If I start up a planet under ~doznec under ~zod, and I want to talk to someone else, I first check if I already exchanged public keys with them and know their IP address. If I don't then I ask ~doznec (my parent). If they don't know, I ask ~zod. If they don't know, then I ask the galaxy that is the ancestor of the person to route me to the client, either on my behalf if I'm behind an extremely restricted NAT or just send me the IP and let us handshake. Galaxies are essentially root CAs.

There are also unknown, reputationless urbits called "comets". Their names, instead of being a number that maps to their hierarchy in the network, is the hash of their public key. This way, if you send a message to ~some-commet you are essentially using a pinned certificate. You still use ~zod for the initial sync of urbit files and TURN in the case of NAT, however. I don't see any reason why this can't become a DHT instead of using ~zod, however.

You can verify peers public key out of band if you want, or even add the peer to your known ships list manually if you are paranoid. You can even change the hard-coded galaxy keys in the source code, and then spin up your own galaxy...it just won't be trusted by anyone else on the network, and is probably a bad idea.

I'm not really sure what you mean by "classic plain text protocol"? Urbit builds its own network stack on top of UDP, that provides "exactly-once"(ish) messaging. All messages are just Nock nouns sent over the wire, with native support for RPC messages. You can just run `|hi ~haptem-fopnys "how are you?"`, and we have an IRC simulacra called :talk that you can switch to with ^X (type `;join ~doznec/urbit-meta`

A planet, like ~tasfyn-partyv, has a parent chain going back to the galaxy: ~tasfyn-partyv (32-bit), ~doznec (16-bit), ~zod (8-bit). zod.urbit.org is directly DNS mapped.

Not using TURN and STUN specifically as the RFCs, but in effect it's the same. Routing will STUN (establish a direct peer-to-peer connection) so long as either side has full cone NAT.

As a planet, you need some star to route for you. Right now, the network is small and friendly enough that trust problems aren't an issue. As we grow, we'll put in an escape protocol so that you can switch stars if you have an issue -- there are 2^16, after all.

Urbit is not PGP. It's designed to feel more like the early Internet, ie, a wide-area world of nontrivial default trust. At present, it would be foolish to go full cypherpunk, because we're a long way from being worth attacking.

Hoon is unusual, but I wouldn't call it "esoteric" -- that term is reserved for languages which genuinely don't care about usability.

> Urbit is not PGP. It's designed to feel more like the early Internet, ie, a wide-area world of nontrivial default trust. At present, it would be foolish to go full cypherpunk, because we're a long way from being worth attacking.

It's not as much that. If I am going to be owning a service that I want to use among my peers generally someone has to run the thing and generally I am that person. If I am relying on urbit.org then the goal described in this overview of "Your urbit presents your whole digital life as a single web service. And since it's yours, open source and patent-free, it never shows you ads. Or loses your data. Or updates without your consent." is not met. If urbit.org is so entrenched and the galaxy lookup so well defined how do I use this when you are gone? The galaxy lookup is clearly one of the most critical pieces of the design yet seems the most weak. In the world of online games the lookup service is what has a community live or die, and I did not see a better answer after writing the comment.

It seems that the only way is to recompile and distribute an alternate version of the software.

> Hoon is unusual, but I wouldn't call it "esoteric" -- that term is reserved for languages which genuinely don't care about usability.

I would class it as such because there doesn't seem to be a description (going by the whitepaper) of modularity/code layout/best practice sort of thing. There is also the complexity of symbol management from bash/perl/php land that seems to be in Hoon too. I work with grammars all day and I guess I was just looking for a more formal description of the language.

Your question about the lookup service is an excellent one.

One: it costs 20 bucks a year to run urbit.org in its capacity as a DNS server for binding 256 names to IPs.

Two: at present, there are about 50 galaxy holders, so if between them they can't scrape up 20 bucks a year to keep urbit.org registered, Urbit has worse problems than centralization.

Three: the use of DNS as a root routing table is an implementation detail in the Unix process, completely isolated from Urbit. When Urbit wants to route a UDP packet to galaxy X, it routes to the reserved range X.1.0.0. If the DNS itself collapsed, we could probably find other ways of mapping this table.

I would not call bash/Perl/PHP "esoteric" either -- it has a very specific meaning:


Hoon is a little under-documented and should have its grammar specified somewhere, although the easiest way to do so would be just to clean up the Hoon parser (a parser combinator written in Hoon).

(The original plan was for the Hoon parser to look as pretty as a spec grammar, which many parsers in Hoon do. But looking at ++vast in hoon.hoon, you'll see we fall a little short of that goal.)

They just released a really clean new homepage too. Big stuff!


They just presented at LambdaConf, and posted a (bootleg) video of the talk, too.

Link: https://www.youtube.com/watch?v=I94qbWBGsDs Slides: http://media.urbit.org/lambda-conf_2016.pdf

If by "clean" you mean its fallback behavior without JS is to show a white page with nothing, then it is squeaky clean. :D

Sorry about that. Since this page is built with urbit it's easy to just request the raw Markdown.

Here's plain text for anyone interested: http://urbit.org/posts/overview.md

Edit: it should be easy for us to stick that link inside a noscript tag be default. Issue here: https://github.com/urbit/arvo/issues/149

To be honest, the site could use some work. Low-hanging fruit mainly, I'm not even asking for anything browsers didn't do in the 90s.

You're doing a lot of work yourself: loading pages (why not let the browser do that, catch errors, display progress, etc.? Now it shows a spinner and if I hadn't backgrounded the tab already I'd have given up on loading because "clearly the spinner isn't doing anything"); opening links (I can't ctrl+click because, hey, you're handling the opening of links yourself; why not let the browser do that?); changing the title happens only after the new page loaded, which takes 20 seconds, during which time a white page is displayed with the old browser and the new URL already (the browser would change it to "loading new page" for you); and there are some cross-origin resources (alright, the browser doesn't do this, but it's almost difficult to mess that up with the widespread TLS support these days). I probably caught most of my personal things, but the general idea is to be more lazy ;)

Yeah, I agree (and I worked a lot on the frontend). The site is hosted with the default frontend for Urbit — so it's built to do a lot more than what it's doing in this specific case.

The links not opening on ctrl+click is ridiculous (issue here: https://github.com/urbit/tree/issues/10) as are the cross-origin resources. Loading in the title is a good idea (issue here: https://github.com/urbit/tree/issues/11).

Being lazy is good. I'm with you there!

Maybe the noscript tags for those pages could just show a link to the underlying .md? Then you don't need to worry about including it in the page, and it's still available. :)

Agreed. Thanks for saying something!


> "Each urbit is a node on _an_ global, encrypted P2P network."

Fixed, thanks!

It also doesn't work on Windows 95 :(

Wait, people still use Windows 95?

I'm still hanging on to my Windows 3.1 here, you know, the last known good version

There was a time when I could have said, no, with Windows 95, Russia uses you. But that time has probably passed.

Pro tip: I'm mildly clever. However I wan't able to understand the value or reasoning of this. Make it more clear and resell it to me

The key for me was:

> Each urbit is a node on an global, encrypted P2P network. Your Urbit name, a generated pseudonym like ~talsur-todres, is also your network address. Like Bitcoin, Urbit address space is a cryptographic asset with a limited supply.

Additionally from the whitepaper:

> Functionally, Urbit is a full execution stack. VM, compiler, OS, network, web server, and core apps are 30kloc […]

It's a distributed, encrypted peer-to-peer virtual machine. Fascinating.

Interesting to see what Urbit _actually_ is after all the pretentious bullshit they've spouted in the past.

Consider what you would do with a personal server. Now imagine it's easy enough for anyone to use and maintain. Now imagine everyone's personal server could connect and communicate with each other seamlessly and securely, transferring data of any type.

That's the promise of urbit.

If you ended with "That's the promise of the Information Superhighway", it would be an MCI commercial from the '90s.

I remember that commercial!

Exactly right. Just think of Urbit as the Information Super-Duperhighway, and you can't go wrong.

Interesting! I wasn't familiar with that MCI commercial (I don't live in the US), but I can see what I wrote has that type of tone.

The insight by Curtis Yarvin is that modern computation is massively, massively wasteful. That there is a simple way to do computing we do today.

I was checking out Urbit before, and it's an amazing idea. I can highly recommend anyone investigating it a little, just to get a notion how things could be.

I need to check the current progress. I hope the previous "invitation/ticket" I had is still working. :)

Yep — your ticket still works.

This seems very exciting, in a way that I'm hard-pressed to define. Maybe because it seems to offer a greenfield opportunity to build...something. Or to be something. Unique.


"Addionally, we're creating an open political and economic process, with a small, fixed-price public presale of Urbit address space."

Why does an "open political and economic process" require (or even allow) a "pre-sale of address space" by a central authority?

Sybil resistance. I'm skeptical, but it could make sense.

natrius got it. The explanation you may be looking for is (mostly) here: http://urbit.org/posts/address-space/#-initial-allocation-an...

Maybe it's for vanity names?

Urbit ships are synthetic names that sound like human names in a foreign language. Eg, ~sondel-forsut. This is just a 32-bit number in a phonemic base-256.

Our experience is that people rapidly bond with their ship names. Apparently no one is too old to want a secret codename. And human beings of a more grownup character can interact pseudonymously through dignified, impersonal synthetic names -- instead of retarded juvenile handles as on Wikipedia etc, or real names as on Facebook.

Technology aside, this is a masterpiece of clear and concise technical writing for a general audience.

Well it certainly has more grounds for a get-in-on-the-ground-floor impulse than App.net did a few years ago

Finally getting down to brass tacks: "Is this a lisp? Is this basically emacs? At a certain level this is basically emacs."

If you're having trouble viewing the page (like I was) the text is here:


At least I think this is the text, I can't check.

This is correct.

> For example, your urbit runs a single shopping app, which downloads catalogs and uploads orders. This app is one store which sells everything in the world, with a salesman who's 100% on your side and always has the best price.

That's written under the heading "The Urbit future". I presume that it is meant to describe how things would pan out if Urbit is a success.

But how is this vision enforced... or even made likely? Why would powerful monopolies like Amazon submit to this, instead of supplying an app specifically and exclusively for shopping at Amazon?

This is the most interesting and important project since the WWW.

Or maybe even the most interesting and important project since Xanadu.

It has the cult-like approach of Xanadu - use new terminology, tie it to an economic model, and re-invent everything. Also, there seems to be a cult leader.

Jargon: noun (data), nock (interpreter), mint (compiler), span (type), twig (expression), gate (function), mold (constructor), core (object), mark (protocol). It's Newspeak for programmers.

The overall concept seems to be a federated social system, like Diaspora. Everybody has a online presence which they own. But you can take your ball and go home, moving your online presence somewhere else, and it still gets found by others. Somehow. (That's a hard problem at scale.)

There's a claim that nobody can create vast numbers of identities for spam purposes because there are only 2^32 possible human identities. (That number should have been at least as big as the population of the planet. 2^36, maybe.) Apparently you have to buy address space, which is a profit center for somebody.

There's a download, which gets you their "OS" (which runs on top of another OS), an interpreter for their Hoon language and access to their chat environment.

Not sure what to think of this, but someone put in a lot of work.

Worth learning. Not so easy to do I am afraid.

Nock is very nice. Hoon bends the mind, which is actually a nice thing.

This whole thing bends my mind anyway.

A good option for avoiding Alzheimer by training those neurons... interesting internal feeling trying to grok it for sure.

Yep, this precisely. Hit the hammer on the head on this comment.

My gut feeling was this was a bucket of NiH syndrome. There was too much duplication of work, and way too much made-up jargon to throw us off the mark of what it really was.

But yeah, a cult.

I was looking into this, as I have connections to the devs via our hackerspace.

After research, I steered away, and hard.

1. Newbies trying to grok the platform are mocked mercilessly. Publicly over reddit and twitter.

2. The "leader" is an avowed racist and nasty person in general. Now, ad hominems aren't "good"... but if I work on it, I get lumped into the similar group. Just no.

3. It uses "Hoon" to program, which is in reality a Lisp variant. They wanted something completely foreign so "only dedicated people would learn it". Seriously. Use Lisp.

4. It's another company interests driving the project. Projects like these have the potential of changing everything on the internet. Locking it behind a company "firewall" means if they die, the project does as well.

#1 is a pretty serious charge. You posted this four hours ago and haven't posted any evidence to substantiate it. Maybe you confused Urbit with another project, and would like to retract? It's certainly an understandable mistake.

#2 is not worth bringing up again, but you might want to look carefully at the dictionary meaning of the word "avowed." If a person denies being a communist, it is still possible for him to be a communist, but perhaps it doth protest too much if you go all the way to "avowed communist."

#3 seems improbable, as (a) I don't know Lisp, and (b) Hoon is a typed language. "Only dedicated people would learn it" sounds like an interesting marketing tactic which must involve some kind of strong reverse psychology. Frankly, I have enough trouble with basic forward psychology.

#4 would be perfectly true, except that the company owns less than half of the Urbit namespace. The rest has been distributed across about 50 more or less random individuals.

(I think I know the hackerspace you mean -- Bloomington? A bunch of them drove to LambdaConf and interned. Incredibly smart, nice and wonderful young people, needless to say. I'd hang out with them all the time if I lived there.)

> #3 seems improbable, as (a) I don't know Lisp

It is not hard to re-invent/re-discover Lisp. In fact, it happens all the time. So just because you don't know Lisp doesn't mean you haven't re-invented it, though it does likely mean that you have re-invented it badly. Re-inventions of Lisp are sadly common. Good re-inventions of Lisp are rare. And good re-inventions of Lisp by people who don't know Lisp are unheard of.

I have never understood, and still don't understand, why you choose to wear your ignorance with such pride.


> Hoon is a typed language

So is Lisp.

Learning Lisp is easy. Learning Haskell is hard. But unlearning either is next to impossible. So anyone writing a new functional language would be best advised to not have that problem.

Now, one might feel differently if Lisp, or Haskell, or any other functional language, was such a conspicuous market success. Under the circumstances, however, I don't think one can be faulted for the suspicion that perhaps functional programming is too important to be left to the functional programmers.

I think we'll have to disagree about whether or not Lisp is a typed language. I realize that people with IQs of 175 have an uncanny knack for taking indefensible positions and then defending them, but I'll just have to take this one on trust.

While we're measuring our respective equipment, however, we can agree that Lisp has macros. Hoon does not have macros, because it's a pure typed language and a pure typed language doesn't need macros.

If Hoon did have macros, however, they would be inherently hygienic, without anything like a gensym. If this is a good time for you to favor us with a lecture on the virtues of Lisp, perhaps you could start with gensyms and their place in "Maxwell's equations of software."

> I think we'll have to disagree about whether or not Lisp is a typed language.

That seems like a peculiar position to take in light of your self-avowed and (apparently) carefully cultivated ignorance of Lisp. If you don't know Lisp, how would you know if it's typed or not?

BTW, here's a clue. (Spoiler alert! You may learn something about Lisp by reading the following.):

  Welcome to Clozure Common Lisp Version 1.10-r16479M  (DarwinX8664)!
  ? (type-of (sqrt -2))
  (COMPLEX (SINGLE-FLOAT 0.0 1.4142135))
  ? (sqrt 'x)
  > Error: The value X is not of the expected type NUMBER.
> anyone writing a new functional language would be best advised to not have that problem.

I am reminded of this koan:

  In the days when Sussman was a novice, Minsky once came to him as he sat hacking at the PDP-6.
  "What are you doing?", asked Minsky.
  "I am training a randomly wired neural net to play Tic-tac-toe", Sussman replied.
  "Why is the net wired randomly?", asked Minsky.
  "I do not want it to have any preconceptions of how to play", Sussman said.
  Minsky then shut his eyes.
  "Why do you close your eyes?" Sussman asked his teacher.
  "So that the room will be empty."
  At that moment, Sussman was enlightened.
> Hoon does not have macros

Most languages don't.

> a pure typed language doesn't need macros.

Of course. No language needs macros. That's why most languages are serviceable despite not having them.

> favor us with a lecture

You should be careful. As you yourself have just observed, losing your ignorance is a one-way street. The more you let me teach you, the closer you get to the edge.

Actually, if you watch the video of the LambdaConf talk, I believe you'll see me deride Lisp as having (and needing) dynamically typed atoms.

I had no idea the concept of an atom had indeed degenerated all the way into complex numbers, which to me and to all decent Americans will always be a "cons" cell. Obviously I had not reckoned with the full and complete degeneracy of Clozure Common Lisp Version 1.10. Or something. If I knew Lisp, I could perhaps condemn it correctly.

In any case, sir: you are misinformed. A "dynamic" type system isn't actually a type system. At best, it's a sort of crutch for retired Jedis who can barely swing their obsolete, one-ended lightsabers.

Or do you wish to become enlightened? Come visit our library, old Jedi. At urbit.org, we have all the enlightenment you need. The age of Lisp was glorious, true. But much time has passed and much we have learned. The times change, uncle, and we must change with them.

> A "dynamic" type system isn't actually a type system.

I didn't say it was. I said Lisp was a typed language. Different claim. Lisp can be either dynamically or statically typed, though dynamic typing is more common. See:



But see my earlier warnings about the possibility of losing your carefully cultivated ignorance.

If you really want to play with fire, read these too:



Pay particular attention where it says, "Type systems are commonly classified by several words, of which the most common are ... dynamic ..."

> If Hoon did have macros, however, they would be inherently hygienic, without anything like a gensym

Everything we know about hygienic macros is mainly the result of research in Lisp dialects.

Everything that has syntax has macros. Just not necessarily user definable macros.

Syntax takes some clumps of symbols and converts them to some other symbols. When that is user-defined, we call it a macros; when it is hard-wired in some parser, we call it a grammar production.

"You don't need macros" is reminiscent of "why would you need more than 640 Kb of RAM?"

If you don't need macros, it means that the language syntax has provided exactly the right set of hard-coded ones in the parser.

If that is true, why are there different languages without macros with different syntaxes? And which one is right?

Hoon is mainly built on a fixed set of hardwired, built-in macros. This is how I can be so confident about not needing anything like gensyms (what eliminates gensyms is having a subject which is navigated geometrically, not symbolically).

The advantage of fixing the set of hardwired macros is that, when reading code, everyone knows exactly what every line is doing, without having to indirect through the local macro environment. Macros are the first step toward a DSL.

DSLs are always and everywhere a bad idea. They may make code slightly cleaner or better-looking. In exchange, they add a level of indirection to the task of trying to understand it. This is the source of the nickname "write-only code," a common failure mode in FP. Write-only code can also be created by extravagant and pointless use of higher-order or non-strict programming, both of which complicate the task of reading code.

For instance, Hoon has a rune (keyword or digraph) for a 2-tuple, a 3-tuple, a 4-tuple, but not for a 5-tuple or up. Why? The 4-tuple cons pulled its weight, the 5-tuple didn't. For every special form you add to Hoon's fixed, limited set, you're imposing a cost on anyone who has to learn Hoon.

I hope you can see the UI advantage to functional programming in an environment of controlled evaluation complexity. IMHO, too much of FP is a world in which every program is its own language.

Which one is right? Actually, I feel it's possible that the only real language is K, and the rest of us are just phonies.

> everyone knows exactly what every line is doing

At least, until you start to define functions, whereby a line now says "something happens according to a definition elsewhere which is just invoked here".

Oh wait, that's also what a piece of syntax or macro also says, pretty much.

> I hope you can see the UI advantage to functional programming in an environment of controlled evaluation complexity

What I do know is that big programs written in C can be pretty difficult to understand, even though most of their bulk hardly uses much more than what's covered by the operator precedence table on page 53 of Kernighan and Ritchie, 2nd ed. A lot of that has to do with the fact that foo_bar(ptr_widget, 42, gadget_struct) can mean anything whatsoever, even though it isn't a special operator or macro call. The small assurance that three word-sized chunks are passed somewhere by value doesn't actually buy a whole lot of understanding.

(Brain* * * * * * has a nice, small, inextensible set of operators. Does it help?)

The dictionary you have to comprehend is not that of the language, but of the language, plus that of the code base written in it. What good is it if some language has 20 entities rather than 30, if the code base you're grappling with has 10,000.

The difference between a language with symbolic names, and a language with names and macros, is a difference between one level of indirection, and two levels of indirection. My view is that one is hard enough.

Macros aren't functions. A function call is one thing. A macro can expand to arbitrary code. This code may contain function calls or other symbols.

Before you can even interpret these symbols, you have to expand the macros in your head. This is two steps, rather than one. Expanding is not tracing. This extra step is why whoever is reading your code is so easily tempted to give up and writes it again herself, with her own macro language.

I was not comparing FP to C. If you look at actual Hoon code, it's pretty comparable in size to other functional languages, and also in clarity once you learn to read it. Obviously C is much fatter and harder to understand (and has macros, of course).

A function can contain arbitrary code behind the call. It can be a remote procedure call to a server, such that it is impossible to reverse-engineer what it does, beyond black-box testing.

> I think we'll have to disagree about whether or not Lisp is a typed language

Only if you're willing to insert "<qualifier> typed". Without at least one <qualifier>, the debate is meaningless: every party assumes that unqualified "typed" means "<qualified> type" for some different choice of <qualified> and then it's just about asserting word semantics.

And, here we go: dug up this gem from elsewhere in this comment tree:

> A "dynamic" type system isn't actually a type system.

"<foo-berly> type" isn't "type". Use my definition, god damn it! "Type" really refers to "<bar-istic> type".

(Dynamic is scary, so scare quotes are fitting, by the way).

Hello! I'm one of the Urbit devs.

1. Has this ever actually happened? I'd be quite disturbed by that. We're more than happy to have people learning about Urbit, although we're not particularly active on social media.

2. Curtis is certainly controversial. None of us share his views, but we do enjoy working together. I'd like to think we live in a world where people who don't agree can still collaborate professionally.

3. Learning Hoon is much easier than it looks. In my experience it's absolutely designed for usability — although it doesn't appear that way at first. We're actively working to better explain how Hoon works and teach people the language. It would be totally against our interests to do otherwise. I do think our new docs do a much better job: http://urbit.org/docs

4. There is a company behind Urbit, but it's not technically possible for us to control the project in the long term. Urbit is definitely not behind any kind of 'firewall' — it's designed to be owned by the community.

I'd encourage you to check out the posts on our beliefs and principles [0], address space [1] and company [2].

0 - http://urbit.org/posts/principles/ 1 - http://urbit.org/posts/address-space/ 2 - http://urbit.org/posts/company/

"Controversial" is the pinnacle of weasel words. How do you feel about his belief that some ethnic groups are genetically better slaves, and do you think that his views would make people from those ethnic groups feel welcome in your community?

It would demonstrate a lot about the HN community if we could get through an entire Urbit post without it devolving in to yet another debate on Curtis Yarvin's (incredibly lengthy, vague and contradictory, and entirely irrelevant) views on race.

It wouldn't demonstrate anything that would make it a community I want to be a part of, though.


So you come here only to insult? or are you advocating thoughtcrime? nazi german and ussr and their thoughtcrime days had long gone, hope you aren't in any effort to bring them back.

You mean aside from the project under discussion? Why are his personal views even relevant here?

Because there are a great fewer purely technical decisions in the world of software than some people around here seem to believe, and people's beliefs, worldviews, experiences and identities matter. They matter a lot. And to the extent that software is, as they say, "eating the world," the kinds of people who are writing software and the kinds of people that aren't has a profound impact on our society.

If you look at Bitcoin and the blockchain as a purely technical achievement, it's marvelous and incredible, a testament to human ingenuity. The problem is that money is not a purely technical problem, and people involved in Bitcoin who ignore that open themselves to a whole lot of relearning, like when people who are given the ability to steal a whole lot of money end up stealing a whole lot of money, like at ShapeShift[1]. Banks have been dealing with these kinds of problems for decades (or, depending on how you look at it, hundreds if not thousands of years). But if you only concern yourself with the technical aspects of Bitcoin, not the social or political aspects, you can miss things that seem obvious with the benefit of hindsight.

And the software that people creates has implications that range far beyond technical questions. A great example of how we can encode assumptions that come from our beliefs, our experiences, who we are and where we happened to be born into software without even realizing that we've done so is the fantastic essay "Falsehoods Programmers Believe About Names[2]." Reading that should be a real eye-opener about how, without intending to, programmers can end up writing software that is built for people Like Them and is unaccomodating to people who Aren't Like Them.

Most of the talk about his personal views here are about his views on race. It shouldn't be a huge surprise to anyone that the sort of people who are at Hacker News are likely more white than the rest of America, much less the world. As are a lot of the people writing software in use today. Sometimes that means that Google Photos categorizes someone's pictures of himself and his girlfriend as "gorillas"[3], which is the sort of error one imagines Google would be a lot less likely to make if they had more African-Americans working on their code and testing their software before release. Or machine learning algorithms that courts use to predict recidivism rates in determining sentencing have much higher false positive rates for African-Americans than whites.[4]

And making this place more welcoming to Curtis Yarvin by focusing discussion on the technical merits of Urbit and ignoring his personal views is a signal to a lot of other people about what we as a community value and what we don't. And I think it's a bad signal, because it alienates people with valuable and important viewpoints that we ought to be finding ways to be more open to, not less.

1) https://news.bitcoin.com/looting-fox-sabotage-shapeshift/

2) https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-...

3) http://www.theverge.com/2015/7/1/8880363/google-apologizes-p...

4) https://www.propublica.org/article/machine-bias-risk-assessm...

> And making this place more welcoming to Curtis Yarvin by focusing discussion on the technical merits of Urbit and ignoring his personal views is a signal to a lot of other people about what we as a community value and what we don't. And I think it's a bad signal, because it alienates people with valuable and important viewpoints that we ought to be finding ways to be more open to, not less.

So if someone working on an open source project were to blog, completely separately from the open source project, their personal views on, say, abortion you'd be OK with it if whenever we tried to have a discussion about that project people started discussing that contributor's views on abortion?

If not, what is the criteria for deciding what kind of unrelated personal views are OK to bring up in technical discussions?

It's worth noting that slippery slopes are a rhetorical fallacy[1] -- most slopes aren't slippery and most things aren't even slopes. I outlined why I think these personal views are relevant to the discussion. I don't think it's useful or necessary to lay out a general principle as to when personal views are relevant to the discussion, and I don't see any danger that Hacker News will be overrun by irrelevant discussions of someone's personal views if we continue to engage in this relevant discussion of personal views.

1) http://www.nizkor.org/features/fallacies/slippery-slope.html

Such discussion has a habit of derailing threads.

For instance, instead of talking about Urbit, we're instead mired in the finer points of one guy's murky theories on sociology.

This is not an interesting discussion on Hacker News! Racists are not exactly a rare breed, nor do the outspoken ones ever (intentional Sith absolute) bring anything interesting to the discussion.

It shouldn't be a huge surprise to anyone that the sort of people who are at Hacker News are likely more white than the rest of America,...

White like Satya Nadella and Sundar Pichai, you mean?

Google is 60% white. Facebook is 55%. Microsoft is 59%. USA is 63%. Do you have any evidence that HN is whiter than Google and Facebook? Why not say what you really mean, namely that there are too many Asians?

Or machine learning algorithms that courts use to predict recidivism rates in determining sentencing have much higher false positive rates for African-Americans than whites.[4]

Not according to the R script written by the very authors of the piece you cite. That script is unable to find statistically significant evidence of bias. They found very strong evidence (p < 0.001) that the statistical model is highly effective, albeit imperfectly calibrated [1].


It's silly to say that by focusing on a technology project and ignoring the people involved, we alienate people. Where I work we have similar views - "meritocracy" is one of our core values, not the dirty word it's become in the valley. As the only member of my race at this company this makes me feel welcome - I'm as valuable as the things I build, who cares about my race?

[1] This means that higher score means higher recidivism rate, but a 60% score doesn't necessarily mean 60% recidivism probability. Probably should have run isotonic regression or something like that. https://en.wikipedia.org/wiki/Isotonic_regression

> That script is unable to find statistically significant evidence of bias.

I don't know if you're doing this (again and again) intentionally or not, but racial bias is not statistical bias[1]!

> It's silly to say that by focusing on a technology project and ignoring the people involved, we alienate people.

How do you know it's silly? Have you done any research on that? Because people who have actually done some research have come to the conclusion that it is your assumption that is silly[2].

> "meritocracy" is one of our core values

Meritocracy is not a value (or not a distinguishing value). It's what every (long surviving) system believes itself to be. The term is ironic and generally means "a system that deludes itself about its own fairness". The term was coined as a satirical joke, and has no other well-defined meaning.

[1]: Unless your statistics includes every possibly pertinent variable, or you manage to prove total independence of your model's variables from all other variables.

[2]: https://en.wikipedia.org/wiki/Teun_A._van_Dijk

Unfortunately grandiose ideas like Urbit only seem to come from and get executed by minds like Curtis'.

You can't have one without the other.

If people want to a clean state restart of the world of computing without an infestation of corporations they'll be against attempts to shun him.

[Citation needed]

Classic example is Linux and Torvalds.

But I was referring to the fact that nobody else is solving this specific problem. You either stay happy with your collection of walled gardens or you wait to see if he can unbreak the internet.

In fact in this case, the work goes ahead anyway. Perhaps you end up using it in ten years, or perhaps you don't. But neither of us gain anything from this argument at the present time.

There are plenty of people working on this problem who aren't self-inflated racists. For example, https://sandstorm.io/ tackles a lot of the same questions without any of the deliberate obfuscation or insular community of Urbit (and, I might add, without a completely insane and un-optimizable VM underneath).

They recommended it themselves but are solving more:

> If you're interested in that approach, I'd encourage you to check out sandstorm.io. This solves the problem for applications like a blog, email, or gitlab. What it doesn't do is make decentralized applications easier to build.

Because they're so repugnant that they make reasonable people question why anyone would be willing to tolerate, let alone defend him. He's freely declared himself so reprehensible that it impairs his ability to lead any project because it will inevitably attract this type of discussion.

If you'd prefer this not to be the case, please outline what restrictions on free speech you'd like emplaced so that people would not be able to discuss his views.

> He's freely declared himself so reprehensible that it impairs his ability to lead any project because it will inevitably attract this type of discussion.

He's incapable of leading a project because you're unwilling to control yourself?

Yup, failure to understand the simplest aspects of public discourse and narcissism to the point of putting one's own desire to spout a bunch of violent racist crap above any consideration for how it might impact people you want to work with is pretty disqualifiying for project leadership. He's incapable of leading a project because he's unwilling to control himself.

No one wants restrictions on free speech here. It's just boring to see the same thing over and over again.

Why continuously bring it up? We've already had this discussion numerous times.

Stop with the ad hominem attacks and start posting something of substance. If you have examples of these 'repugnant' views then share them, I haven't seen anything that matches that description when read in context.

I would benefit from this. I don't doubt that Curtis's views are probably offensive, but I haven't seen a clear description of them to conclude that for myself. I tried reading some of his writing, but it seemed so abstract and obfuscated that I gave up before understanding what he was trying to get across. I've seen one-sentence descriptions of his beliefs and they sound horrible, but I've also seen enough tweet-length mischaracterizations of others' beliefs to take those as accurate.

Is there like an intermediate-level overview of Curtis's offensive beliefs, with a glossary and index? I'd be surprised if nobody's assembled one; it could make the ad hominems so much more effective.

The closest thing I know of is Scott Alexander's Reactionary Philosophy in an Enormous, Planet-Sized Nutshell [1]. It's more of an essay/argument than an impartial overview, but (besides being a good read by one of the smartest and most interesting bloggers on earth) I think it's the most even-handed, neutral and informative thing you're likely to read about Yarvin's beliefs.

(NB - the article refers to Yarvin as "Mencius Moldbug", his nom de plume for political ranting)

[1] - http://slatestarcodex.com/2013/03/03/reactionary-philosophy-...

> "I also reserve the right to edit comments that don’t quite reach that point but are noticeably in need of rephrasing."

Wow, really? I'd consider that worse than removing comments.

Great! I love Scott Alexander's writing, so I'll definitely check this out. Thanks for the pointer.

The comments that I have seen from him on that topic (and it should be noted that I have only read a small part of his comments so this may not be representative of his thoughts on these matters) implied that those groups were better slaves because they were more resilient or stronger, so were able to better survive slavery than less resilient or weaker groups.

I don't see why that would make people from those groups feel unwelcome. If anything I would expect people from the groups that he says were genetically not as good as slaves to be the ones who would feel unwelcome. The implication is that they are weaker or less resilient.

Do you seriously not see how someone discussing how good a slave you would make is (at the very least) 'unwelcoming'?

Was that on Urbit's homepage? The docs? The IRC? The subreddit? Over e-mail?

Was it something like "yeah it is a functional system... hey have I mentioned how much potential you have for whenever you feel like dedicating your life to slavery?"

...or was it just the guy rambling on a blog of his under a pen name?

It's pretty obvious to anyone that the guy's views are obscenely offensive, but if the guy is strictly professional when it comes to Urbit, treats everyone with the same respect and works just fine along with many people that despise his views, how are the project's goals tainted?

> "It's pretty obvious to anyone that the guy's views are obscenely offensive"

Is it? From what I've seen so far all the controversy has come from taking statements out of context.

However, I take your main point that it doesn't need to impact on Urbit.

Because people don't just see Urbit, if they end up participating long-term. They see Yarvin, and he definitely is not one to hide his worldview.

As much as some people like to pretend it's only about tech, tech is made by people and it requires them to interact with each other, and that can never be completely confined to code.

>They see Yarvin, and he definitely is not one to hide his worldview.

While talking to Urbit contributors about Urbit?

By definition no, of course. But I have never done a non-trivial amount of open source-style work (coding or otherwise) with someone who shares their political views online, without learning about them somehow.

And in fact, every Urbit contributor in this thread who's mentioned this has also heard about Yarvin's political views, and not from this thread. It appears to me there's already a kind of self-selection process in Urbit contributors, towards those who are comfortable tolerating his garbage. And that's exactly the problem.

Well, if you define "comfortable tolerating his garbage" as "contributes to Urbit despite it being Yarvin's project", then tautological assertion is tautological.

There is certainly some self-selection for people who don't throw tech babies out with political bathwater. I count myself as one such person. I mean, I continued using Javascript and Firefox even after hearing about Brendan Eich's political contribution! Feel free to draw incorrect inferences regarding my opinion of gay marriage.

I have also toyed around with Urbit, and have (in a sense) made minor contributions. Feel free to draw incorrect inferences regarding my opinion of Yarvin's political writing.

It's not about your beliefs or what people infer about them. In fact it's not about you at all- it's about the other potential contributors and users that Yarvin is alienating, despite all the claims in this thread that his views don't impact the project.

Ah. So basically this[1]?

[1]: https://gist.github.com/djspiewak/3a6ff436865d9e5794e4

I mean, I guess you're technically correct: If nothing else, the impact of his views on the project is that it results in the exclusion of people who choose to exclude themselves from projects created by "the wrong people".

But of course that's trivially true of all projects, so why do you think it's such a problem in this particular case? If you answer "because his views are really bad" while acknowledging that they otherwise have no direct bearing on the technology, you're basically saying "because he's really unpopular".

I have no love of Yarvin's politics, but that sort of cure is worse than the disease.

Where we seem to differ is in the importance of those people who avoid Yarvin (or Torvalds, or other more or less abrasive open source contributors), as well as the reasons they avoid him. It's more than merely ideological for many people, it's personal.

I don't acknowledge that his views have no direct bearing on the technology, either, and that's tied up in my first point. We design things for ourselves, for the most part, so by excluding (perhaps inadvertently) people with different perspectives on life, we lose out on valuable input.

Thanks for the clarification. I'm certainly not claiming that people who avoid the project are somehow "less important" as a result of their decision. And I wouldn't doubt that it's personal for them - "mere ideology" also seems like a pretty personal thing!

I think we agree that Urbit would benefit from a larger, more diverse user/contributor base. What wouldn't? We're just ascribing agency in different places. I view the claim that Yarvin is excluding people as a sort of rhetorical sleight of hand. What he's actually done is 1) publish some really unpopular opinions, and 2) build Urbit. It is entirely possible to evaluate 2 on its own merits[1]. So I'm disappointed to see so many people write it off for other IMO less relevant reasons.

It reminds me a bit of a "Christian-friendly" Linux distro I once saw that omitted software written by known homosexuals. Would you also claim that the gay programmers were (perhaps inadvertently) excluding a subset of Christians? I suspect most people would agree in this case that agents of exclusion are the ones actually performing the exclusive act, rather than ones who happened to be "the wrong people" from another group's point of view.

[1]: This is true even in the presence of a strong political influence on the technology. I honestly don't see much of a connection between Urbit and Moldbug's politics, but then the latter never made much sense to me, so maybe I'm missing something. If there are politically objectionable aspects to the software, then by all means object! But plain old guilt by association is a weak argument in any context, doubly so in a technical one.

Yes, in a hypothetical platonic code-only way you can separate Yarvin from his work to some degree. But you're underestimating the impact of the word "personal" here- some people avoid communities like this not as a boycott, but for their personal safety or emotional well-being. That's the point where they go from the excluder to the one being excluded.

Wait, so your argument is that only Native Americans would feel unwelcome in this community?

Is this supposed to be in his favor?

EDIT: For clarity

> So your argument is that Native Americans should feel unwelcome in this community?

You're putting words in 5F36B5F62640's mouth.

And to be absolutely honest, anybody reading this can see that you're the one attempting to make people feel unwelcome in this community.

Edit: The commenter has now upgraded his comment but the original with added emphasis is quoted above.

That was the example Moldbug used, claiming that Africans made genetically better slaves than Native Americans. 5F36B5F62640 contended that the groups that were not better slaves should feel unwelcome. This is just the basic logical implication of taking those two claims together.

Rather than attacking me personally, is there something I missed or was incorrect about?

You created a 'should' from a 'would', and therefore implied that 5F36B5F62640 had ill-feelings towards Indians.

I'm not attacking you personally, nor am I speaking to you personally. I am just pointing out to anybody reading this, that you just tried to smear somebody.

Of course, whether you did so on purpose is another matter.

You're grasping a bit on this. Logic does not dictate that there were implied ill-feelings on 5F36B5F62640's behalf. In fact, I can categorically state that from the one post I've read from them I do not believe they have any such ill-feelings!

To restate, then: "Wait, so your argument is that only Native Americans would feel unwelcome in this community?

Is this supposed to be in his favor?"

I appreciate your dedication to accuracy, and I must assume this satisfies your complaint.

It wasn't a grasp. The rhetorical effect of your comment was to imply some sentiment from 5F36B5F62640 on 'what ought to be'.

Yes, that is no longer accusatory; and it is correct: there are other sets of people that would no doubt feel unwelcome in such a community.

I think in a practical sense their fear is overblown as 'Code is law'. However people generally make decisions based on consensus reality.

> his belief that some ethnic groups are genetically better slaves

I'm curious, do you take that to speak well or ill about the ethnic groups in question?

It's a shame you were downvoted here, you're asking a pretty interesting question.

Yeah, I mean, being strong as an ox would mean both that your abilities are superior to those of others and that you would make for a useful slave.

> Hello! I'm one of the Urbit devs.

Can you please explain to me what a "non-lambda interpreter" is and why it matters?

It's an axiomatic interpreter not based on the lambda calculus.

It matters because gensyms suck. More generally, if you are building a two-layered system in which a compiler targets the interpreter, symbols, functions, and scopes are concepts that belong in the high-level language, not the low-level interpreter. (I think Shen is one example of a typed Lisp that targets an untyped Lisp, but obviously I know nothing about Lisp.)

So the lambda calculus is a classic layer violation.

Where I went to school in operating systems, which was Brown and Berkeley, we were taught to avoid layer violations and always separate mechanism from policy. Not sure what Lisp people are or were taught -- honestly, there were not a lot of them left, even in the '90s -- but it never seemed to include this.

I always look at a stateful Lisp machine, or Emacs, or whatever, and see a giant structureless blob of symbols. That said, this is probably a totally unjustified prejudice on my part, and at this point I really have no excuse except lack of time for refusing to learn more.

> not based on the lambda calculus

> It matters because gensyms suck.

That makes no sense. The lambda calculus has nothing to do with symbols. Lisp introduced the concept of symbols, but Lisp and the Lambda Calculus are not the same thing.

> obviously I know nothing about Lisp

That is indeed becoming rather obvious.

The Lambda Calculus does have to do with symbols and is defined in terms of them. Consider how application is defined. "λx.t" is an anonymous function that takes an input and substitutes it for the symbol "x" in the expression "t".

For example, given "λx.x+1" then "(λx.x+1)(z) => z+1". This reduction process is formally defined by the beta reduction rule, which says that "(λx.t)s" evaluates to "t[x:=s]".

"t[x:=s]" means "substitute the value s for the symbol x in expression t". E.g., x+1[x:=5] => 5+1


If by symbol you mean something different than variable, then I might agree, but the heart of lambda calculus is the rule set for lambda abstraction, application, beta reduction. Due to alpha equivalence you could say that lambda calculus is agnostic to symbols however. I suppose it depends on what you mean. (Lambda calculus is defined in terms of capture avoiding substitutions.)

> If by symbol you mean something different than variable, then I might agree,

Well, the real question is what Curtis means by symbol, as the answer he gave is rather cryptic. But since he specifically raised the issue of "gensyms", that seems to be a reference to a standard Lisp function that generates symbols, a first-class Lisp data structure, at run-time or, more usually, at macro-expansion time. Since Curtis has complained about macros in the past, I assumed this was what he was referring to. "Symbols" that exist only in the textual representation of the language and not as first-class data types are usually called "identifiers" rather than symbols precisely to avoid this sort of confusion.

In any case, it is an elementary exercise to define a formal computational system equivalent to the lambda calculus that uses integers rather than identifiers. Instead of λx.x you write λn where n is an integer. 0 refers to the value bound by the innermost scope, 1 to the value bound by the next outer scope, and so on. So, for example, λx.λy.x becomes λλ1. But of course, no one does this because it's completely pointless.

We had this argument in person! Or, at least we had a good chunk of it. It was cut short, and I think it's my fault for not re-initiating it.

As you may remember, I'm really not the person to answer that question sufficiently. But I would like to see you and Curtis have this out at greater length.

> We had this argument in person!

Sorry, I didn't recognize your handle. (And just for the record, I wasn't trying to start an argument, just asking a question.)

> it's my fault

OK ;-)

> I'm really not the person to answer that question sufficiently.


> But I would like to see you and Curtis have this out at greater length.

Well, we're already having something out in another branch of this thread (https://news.ycombinator.com/item?id=11819810). But it's rather hard to get a straight answer out of him. He has this weird theory that the only way to avoid being sucked into the Lisp Failure Vortex is to not learn Lisp. But at the same time he professes his intentional ignorance of Lisp he also takes these weird pot-shots at it. That is, alas, not a good foundation for a constructive discussion, which is why I was hoping (and continue to hope) that you (or someone) might be able to explain it to me.

> Sorry, I didn't recognize your handle.

No problem. Just, you know, hi! I'm actually happy to pick this thread up. I remember really enjoying the last discussion.

As (I think) we discussed last time I basically have two views:

- Urbit actually works. Like, I actually build stuff on top of it. That's really the layer I'm most interested in. If it were built in Lisp, well, I probably wouldn't know the difference. I'm not sure I'm able to understand the implicit criticism at the user level.

- Shaking off the cruft of existing systems is actually pretty hard. I don't have as much experience with this as a programmer as Curtis does, but it's a problem near and dear to me. It's very difficult to think clearly inside of someone else's intellectual framework. So, maybe Hoon looks like a bad Lisp variant today. What does it look like in 50 years? Maybe it's dead, maybe it's everywhere. I'm not sure we can actually make this judgement for certain. That is: whether Nock / Hoon is definitively better or worse in terms of its long-term adoption and performance.

What Nock does seem to unlock is incredible amount of enthusiasm. The feeling of disillusionment can easily be converted into excitement. I've seen this done by Urbit — and that's pretty difficult to do. My intuition is that Lisp suffers from the opposite: the feeling that breaking from its history is impossible.

Either way I'm serious about getting you two to have this out in some kind of organized way. Ideally, on Urbit somehow.

> I remember really enjoying the last discussion.

Very happy to hear that.

> I'm not sure I'm able to understand the implicit criticism at the user level.

Let me make the criticism explicit then: inventing a new language is not hard. People do it all the time. It's an elementary exercise. However, inventing a good new language, i.e. one that actually advances the state of the art and provides a substantial advantage over existing languages -- that is very hard. That happens very rarely, probably less than a dozen times in the history of computing.

Although I have never heard Curtis say so explicitly, the rhetoric surrounding Urbit strongly implies that Nock and Hoon are languages of the second sort, that is, that they provide some benefit that existing languages lack, and without which developing Urbit would be substantially more difficult or even impossible. My question for the last four years has been: what is that benefit? Do Nock and Hoon really advance the state of the art in programming language design, or is their sole purpose to be the Shiny New Thing that gets people excited? Because if it's the latter, that does not bode well for Urbit's long-term prospects. Nothing gets to be the Shiny New Thing forever.

> It's very difficult to think clearly inside of someone else's intellectual framework.

That may be true, but do you not see the irony here? You didn't invent Nock/Hoon, Curtis did. So if you are thinking clearly, then you are doing it in someone else's intellectual framework, precisely the thing you say is very difficult.

> What Nock does seem to unlock is incredible amount of enthusiasm.

That I don't doubt. Curtis is a master marketeer. But Donald Trump is unlocking an incredible amount of enthusiasm too. Just because a lot of people get enthusiastic about something doesn't necessarily mean it's a good idea.

Forgive my ignorance, but a typed functional system all the way down to machine is a huge departure from today's languages built on top of imperative dynamic machines, and a huge advantage in building typed functional systems, isn't it? I would go so far as to say that without a new machine and new languages designed for it, the abstraction will always leak. Which is why our software sucks today.

That's true, but Urbit isn't like that. It runs on stock hardware, which is to say, untyped imperative hardware. And even from a purely theoretical point of view, Urbit's lowest level (Nock) is untyped.

The last time anyone built a computer that was typed all the way down to the hardware was (ironically) Lisp machines.


> collaborators in behavior that should _never_ be tolerated?

Why? What has he done to anyone? Do his designs have built-in genome detectors?

Or are you encouraging us all to join in as collective arbiters of wrong-think? Doesn't that seem a little too Maoist Cultural Revolution to you?

"Wrong-think" as a phrase is one of those thought-terminating clichés. People are voicing their disagreements with his professed viewpoints, yet you are using that cliche to dismiss them without addressing their viewpoints. This does not lead to a vigorous discussion in the marketplace of ideas.

> "Wrong-think" as a phrase is one of those thought-terminating clichés.


> People are voicing their disagreements with his professed viewpoints,

Voicing their disagreements with his pseudonymous comments from a completely different non-urbit context. I suspect (but I don't know) that if he wanted the public's perspective on his non-conformant political thought to skew the public's views on his technical design work, he wouldn't have used a pseudonym in the first place.

> yet you are using that cliche to dismiss them without addressing their viewpoints.

Quite the opposite. I am using that cliche, in a question, to ask if that is what the parent is asking (inciting?) us to do: arbite non-conformist thought.

The viewpoint that (here) I intentionally don't address can be summarized as: "I heard the designer wrote something that I disagree with elsewhere, under a pseudonym - more than once! I hereby dismiss anything he has to say on any matter." That's like saying: "Hitler lover strawberries, so we must all agree to avoid them."

> This does not lead to a vigorous discussion in the marketplace of ideas.

I agree, but... what marketplace of ideas? The aforementioned comments have nothing to do with the merits (or lack thereof) of urbit. A public shaming of a heretic is not a marketplace of ideas. Maybe the guy doesn't pay his taxes. Maybe he's behind on child support. Maybe he eats puppies for breakfast. I don't know. I also don't know that it really matters, as regards the merits (or lack thereof) of his engineering design.

And, I'm sorry. It seems that I have contributed to the thread going even further afield than it already had. I shouldn't have said anything to begin with...

The marketplace of ideas means you don't get to dictate what others find relevant.

For some, this means that they don't want to be professionally or socially associated with someone who thinks some ethnic groups make genetically good slaves. People can vigorously discuss whether his writings crossed lines of acceptable behavior.

However, you're also free to discuss the technical details as much as you want! If that's what's relevant to you, that's perfectly acceptable as well, and it doesn't require you to defend his other writings.

Fair enough. I agree with everything you just said here. Thank you.

A community is defined by the people and views it accepts. I'm currently reading up on Curtis as much as I can and withholding judgment in his case. But I wouldn't want to be part of a community that lets racist views go unchallenged, no.

I understand and respect your point-of-view. I probably even agree with it, as stated.

After I came across Urbit, I heard allegations of Yarvin's writings under his pseudonyms. I went and found his writings - and to the degree I understood it - I didn't agree with the conclusions. At the same time, I found a lot of the quoted material that had allowed me to find his writing in the first place was taken out of context.

But more importantly -- I didn't see even a hint of bad behavior in any of the developer's group discussion. I'm very uncomfortable with the idea of taking what a person does "after hours" and putting it on display in the public square. If he were running some sort of "Boys From Brazil" project after hours, I'd probably feel differently, but that's not what he appears to be doing.

The norm of shunning people for having ideas you disagree with would result in the collapse of society.

This sentiment is selectively applied based on one's values. I am confident that there exists a set of principles that someone could espouse to cause you to shun them, it's really only a matter of where one draws the line.

This is absolutely silly.

Just to take it to absurdity, and I'm not claiming Moldbug is a member of the Nazi party, but society would not collapse if we shunned people who espoused, for example, the ideals of Hitler and the Nazi party.

"I'm not saying he's a Nazi, but if he was..."

-- Every post about Curtis Yarvin, ever.

Sorry for knee-jerking, but there is really no basis for equating Mencius Moldbug to a Nazi, and I think it hurts the discussion when you do! I have read some of the texts in question, on the insistence of people who say I should disavow this person who I consider to be a real pal. I read the post "Why I am not a White Nationalist" and I don't know how anyone without an agenda can come to the conclusion that this is a person with hate in his bones.

I am stating that there are plenty of beliefs that do not cause society's collapse if we shun them. The only reason I mentioned Moldbug was that he's part of the dialog here, and I wanted to make sure people did not misconstrue what I said as a claim about him.

Since you just misconstrued what I said, I was clearly unsuccessful.

I apologize, since you obviously did not come up with the idea to equate Yarvin to Nazis. Your point is valid.

No worries, I've tried to be precise but text is sometimes a difficult medium to get my point across.

The shunning policy had done quite contrary consequences. The Lambdaconf campaign drew a lot of attention to the very person they want to no-platform, more and more people begin to search the identity Curtis Yarvin/Moldbug, even come to read his articles and try to interpret his ideologies, no matter whether they gonna protest or support.

P.S. the nazi party was a frequent practitioner of this shunning policy.

Please try to follow the conversation. I was addressing the claim that shunning certain beliefs would cause society to collapse, and I've clearly demonstrated that to be false. Not sure how what you've ranted about here ties into that.

In an individualist perspective, I agree with you, shunning won't cause society to collapse.

But when people advocating it to an aggressive level-extensively campaigning the rejection of a certain person at social scale, this is dangerous and smells like politics, and was exactly the way how hitler shunned the jews.

I think you're having difficulty distinguishing the concepts of "shunning" and "genocide."

Seems you are so inclined to acknowledge what nazi had done before the 'genocide', or you simply don't know what had really happened.

that should be 'declined' in my last comment, my apologies

You aren't going to enforce your judgement to everyone else, right?

Regarding point 2...

Now, ad hominems aren't "good"... but if I work on it, I get lumped into the similar group. Just no.

"Just no", indeed. This is tremendously faulty thinking; damning someone and their entire endeavor, bypassing any and all rationality by your own admission,

not because they've committed some great evil,

not based on such a trivial concerns as the merits of the project,

...but because they have thoughts outside of that scope you don't particularly like.

Ad hominems are not bad out of some mystical universal constant, they're bad because they necessarily short circuit rationality by appealing to emotion, while saying nothing of actual substance. They are antirational and as such, as I put on my Sith Lord helmet, always absolutely bad.

Okay. He's a racist. And? Unless he's making a racial gating API[1], or otherwise taking evil actions, it doesn't even begin to have anything to do with the project. This problem that you mention, "getting lumped into a similar group", is entirely self perpetuating.

The statement "But he's a racist!" has zero professional value. The moment (the royal) you stops making such statements, the moment they cease to have value.

[1]: http://www.wired.co.uk/article/23andme-api-blocks-based-on-r...

You have a right to say or think whatever you like, but that doesn't mean people are going to like it. I find what Yavin has written to be so odious it taints the entire project (which isn't common, normally I just don't are). It sounds interesting, but I just don't want to even touch it

1. I'm really not sure how that happened to you. I'm interested in Urbit and play around with it (and actually own a galaxy), but am not an employee, and I've been more than happy answering questions from people via :talk who are starting out or wanting to learn more. I've never seen anyone mocked, publicly nor privately, and I really hope that it isn't still happening if it was.

2. The author had an alt-right blog under a pseudonym. Some people think that makes him literally a Nazi. I don't agree with, er, basically any of his views, but I do enjoy reading his posts simply because they are fun to read. They aren't racist, except in the non-PC way, and has been nothing but nice when interacting with his online. None of those views bleed into Urbit, so I really don't care what political views Yarvin holds on his own.

3. Saying "only dedicated people would learn it" is just being mean. Hoon is unique from Lisp, and isn't even intentionally hard to learn - it's just different from nearly all other languages, because it compiles down to Nock, and builds primitives that make sense in the context of running on that VM. It's strongly typed, unlike Lisp, along with being pure. It's analogous to Lisp that you write code that is turned directly into an AST, but quite different. The part that is "completely foreign" is the weird syntax, which looks much harder to learn than it is, which they've recently admitted is too hardcore for newbs: They added keyword style in the last Hoon revision, so that you can code in nearly normal looking syntax, if you want. `:if(a b c)` instead of `?:(a b c)`.

Nock is kinda a Lisp variant, but there is a good reason behind having a small, perfect VM that never changes with some nice features, which are iterated in the docs and LambdaConf slides.

4. Urbit is open-source. https://github.com/urbit/urbit. If you read the website, they pledged a lot of the galaxies and Urbit namespace to what will become a non-profit spinoff. Not only that, but you can fork the entire network if Tlon turns out to be Evil Company Inc., by changing the hard-coded galaxy keys. I'll admit that there is a big difference between "open source" and actually being developed in the open, and hopefully they will open up about where they want to go with Urbit more, but it's by no means behind a company firewall.

> I'm interested in Urbit and play around with it (and actually own a galaxy

Tell us about your experience and urbit thoughts.


I like a lot of the ideas, both on the merit of being weird and fun and genuinely being better. The view of having an operating system that has: * a built-in identity system and PKI * a typed and versioned file system * a typed command line * all apps being state machines (both being able to be upgrades over the air and operating based entirely on RPC primitives) * having the entire thing be a function on an atomically updated event log that is crash-proof, upgradable without a restart, and replayable

is just great, even if it's not really usable yet. I'm not sure how feasible the entire project is, because holy hell is it ambitious, but I really hope they do well.

Playing around with Hoon is actually pretty nice. Reading it as a beginner is scary as hell due to all the weird runes, but learning it is nowhere as hard as it looks. It's vaguely lisp-like, pure and side-effect free, strongly typed, and easy to use. I've been doing codegolf challenges in it for fun on my free time.

I want to get into Urbit like you have, everything you've said is appealing to me.

It's just like it's like reading the Lord of the Rings or the Bible. There is this book. It is really important to its fandom. It's affected everything else. It has massive scale and scope. Your feeling is that it's not going to be a light read.

So far I'm intimidated into skulking around the edges but hopefully not for long.

Bravo explorer!

You know even if we only got an PKI going that would be revolutionary. The 'modern' world hasn't a hope in hell of achieving that any time this century.

Any resources you found helpful? A google search on "hoon tutorial" seems to produce mainly urbit.org broken links. Does one need a galaxy/invite/whatever to be able to build it and play with it?

urbit.org[0] has new Hoon tutorial docs, and it's really helpful to ask questions in :talk if you get stuck. The people there are friendly and will try to answer any questions you have.

You don't need an invite to be able to play around with it, you'll just have to use a comet (which is the functionally same, but you have an uglier name). If you ask in :talk they'd probably send you a planet ticket, too.

0: http://urbit.org/docs/

Claiming that some ethnic groups are genetically good slaves is "not racist except in the non-PC way?"

He defends what he posted under Mencius Moldbug in a Medium blogpost here[0], which is nominally level-headed. There are in fact genetic differences across ethnic groups (sickle cell anemia comes to mind immediately), and it would be silly to think that the only possible generic changes are changed skin color and a specific blood disorder.

You can say that since men have a statistically higher muscle density, they are genetically better slaves than women are. That does not mean that I'm advocating we enslave all men, or that slavery is anything other than abhorrent.

0: https://medium.com/@curtis.yarvin/why-you-should-come-to-lam...

Oddly enough, he never made that claim re:men and women. I wonder why he focuses on certain ethnic groups.

There's a lot of rationalization going on here for people that usually are quite capable of critical thinking.

This is a hugely fallacious argument.

Everyone focuses on something, if you want to extend your argument he should have also focused on diet, type of exercise, type of housing slaves are kept in, etc.

Focusing on every single factor that could possibly effect slavery would be an endeavor probably greater than the average lifetime.

Saying that some group of people or another would likely make better slaves than others is no different than saying that a certain group is more likely to be poor than another or be in jail than another. It may be considered in bad taste to discuss, but it isn't morally wrong to discuss.

It is simply remarking on what is, not what should be.

Do you think there's an ethnic group genetically more likely to be poor or in jail?

I think there are multiple ethnic groups more likely to be poor or in jail.

I have no idea whether genetics is a cause, I doubt it, but it is a perfectly reasonable hypothesis and thinking it is true does not make one racist.

If thinking ethnic groups are genetically predisposed to being poor or in jail is not racist, what would qualify as racist?

First off, in my opinion I don't really care what anyone thinks. I care about what they do and what they encourage other people to do (I can't find anything about moldbug treating anyone in any negative fashion nor encouraging others to do so). However, in the context of racist thoughts:

1. (Least bad, though still racist/bad) Believing that other ethnic groups are "better" or "superior" rather than "different". So if you honestly believed that the ethnic groups are inferior due to their genetic traits (I do not consider being predisposed to slavery, jail, being poor etc something to consider a group inferior for especially since it wouldn't be that clear cut anyway. It'd actually be something like "predisposed to aggressive behavior, which leads to jail" or something anyway).

In the case of hard evidence of a genetic predisposition to something directly negative it is possible for this opinion to be technically correct but still racist and morally wrong.

2. (Worse than 1, implies 1) Believing that actions should be taken to the detriment of the "inferior" ethnic groups and/or benefit of the "superior" ethnic groups. This would include things like enslaving people, not hiring them, promoting/demoting people based on ethnic group etc. There are a lot of items in this list including everything America did to the detriment of the Africans.

3. (worse than 2, implies 1 and 2) Actually carrying out actions or encouraging others to carry out actions that are to the detriment and/or benefit on a particular ethnic group.

In my case, I'd be willing to work with a 1. but would respect them less than otherwise. A number 2. would be dicey, i -might- be able to work with them if they don't talk about it and aren't going around regularly talking about it to others but it would drive me crazy. I would not agree with censoring/banning people from number 2. I would quit/not hire/stay away from someone with number 3 and would support banning them from communities though still not censorship (I am hardcore against censorship).

Under point 1, a belief that some ethnic groups are less intelligent than cattle, but believing that it is not a negative trait, would not be racist? I'd classify that as a racist belief, wouldn't you?

That would be a belief they are subhuman, which is inherently negative. So yes, that would be racist.

Where would that subhuman line be? If they think an adult from one ethnic group is as intelligent as an infant in another, but that there's nothing wrong with that, is that believing they're subhuman and hence racist?

These things have no clear lines, welcome to reality.

This response applies to the previous line about being the intelligence of cattle as well, now that i've given it more thought.

Intelligence can be measured so more context would be needed here. In this hypothetical scenario has one group of humans either fallen through some kind of circumstance to a lower level of intelligence(not knowledge) or another has gained significantly more intelligence through some means? In that case they should probably be considered separate species not separate races so we're in a whole new ballgame.

Either way, when "humans" are potentially that different (there's no defensible claim today that any group of humans is significantly less intelligent than any other really) this issue gets very hairy.

Someone thinking that today would definitely be racist.

I can't comment on all of your points, because I don't have any evidence for or against them, but regarding your first point I found this Reddit AMA containing responses from at least a couple of the Urbit devs:


They don't seem that antagonistic here. Do you have any evidence that supports your point?

1. Where? I don't see any of that on the sources you linked [AMA on Reddit]

2. Where [breitbart article linked doesn't really get into it beyond other people saying it]?

3. I do think Hoon is a bit too complex

4. If the company dies the project doesn't die. Curtis has been working on this for years from what I've read

> The "leader" is an avowed racist and nasty person in general.

Oh, good. This again. Curtis has stated publicly, "I am not an 'outspoken advocate for slavery,' a racist, a sexist or a fascist." See: https://medium.com/@curtis.yarvin/why-you-should-come-to-lam...

He also claims that some ethnic groups are genetically predisposed to being good slaves. Please think critically about this, instead of just saying "well, he says he's not racist!"

He tried to explain that opinion further: "The ability to survive as an agricultural slave is a talent."

I've no idea whether Spaniards and Englishmen really did find Indians unfit for slavery but I guess the argument that is being made is that more of them might have been kept alive if they were able to provide greater economic value to their conquerors. Sick, I know.

Agree that it's not an opinion fit to be voiced in modern society, however, it doesn't seem to be the opinion that people are trying to cast it under.

[0] https://www.reddit.com/r/IAmA/comments/4bxf6f/im_curtis_yarv...

> He tried to explain that opinion further: "The ability to survive as an agricultural slave is a talent."

Oh, well, that makes everything better.

Not sure if you disagree with me or if you're just being sarcastic.

Being enslaved is an awful fate but it is a hell of a lot better than being slaughtered because your oppressors can't find a use for you.

You may think that such a statement is merely logical, but it becomes rather something else when one, like Moldbug, has a long history of rhetoric where it seems pretty clear his sympathies are with the oppressors.

No, it's not merely logical, it's instrumental. Curtis Yarvin had a bone to pick with progressive society. I think it's highly likely that he still thinks it is ignorant, just as it does of him.

However, I don't think misconstruing his words is a good attack. The dust eventually settles.

Anyone can say they aren't an outspoken advocate for slavery.

Take a look at this http://unqualified-reservations.blogspot.co.uk/2009/07/why-c... and see whether you find it plausible to say that the author is not an outspoken advocate for slavery.

I have read it and I don't think the author is an outspoken advocate of slavery.

The passage most frequently cited as evidence of this charge is:

Thus, Spaniards and Englishmen in the Americas in the 17th and earlier centuries, whose sense of political correctness was negligible, found that Africans tended to make good slaves and Indians did not. This broad pattern of observation is most parsimoniously explained by genetic differences.

A charitable reading of this, in my mind, goes:

Some slavers had an opinion about who made good slaves and who didn't. If one wanted to rationalize a basis for that opinion, which historically existed, the easiest/laziest answer would be genetic traits common to the populations in question

Check the definition of "parsimonious" and assume the author used it on purpose.

It's a very strange interpretation, especially given that there is a strong body of historical sociology on exactly this question. I'm thinking primarily of Orlando Patterson's _Slavery and Social Death_ - which would suggest that while Native Americans could potentially escape back to their people, African slaves had a much harder time alone, which was precisely the slavers' plan.

No doubt you are right. I'm sure the slavers had all sorts of tactics, and opinions about both their tactics and the enslaved, which were wrong.

The author seems to be positing the "easiest" explanation for why a particular opinion took hold among the slavers. Personally, my parsimonious explanation would be groupthink/received wisdom. Which, if it had to have a "legit" origin, was probably a multitude of factors such as you describe.

But, I'm not the author, and was just trying to explain why I don't think that passage is the heinous smoking gun that so many people think it is.

Sorry, I didn't mean to suggest that your gloss was a strange interpretation (I'd say your summary is reasonable), just the original was.

I don't think the case for Moldbug-as-pro-slavery based on that article rests on picking two sentences from it. Here are a few more.

Fairly early on, he argues for a more modest proposition:

"A society is richer if each individual in it has the right to bind her future actions by agreed obligations, in return for which others may exchange other consideration. [...] we are almost all the way to Carlyle on slavery. We have not agreed that a man can be born a slave, but we agree that he can sell himself into slavery. That is: he can sign a contract with a master in which the slave agrees unconditionally to obey and work for the master, and the master agrees unconditionally to protect and support the slave."

OK, but that's only voluntary slavery. What next?

"It is only a short step from seeing the State as an enforcer of voluntary and binding obligations, to an enforcer of involuntary and arbitrary obligations. No society can possibly exist without uncontracted obligations."

He goes on to give (not being allowed to trespass on) inherited property and (the obligations that come with) family relationships as examples of uncontracted obligations.

OK, so Moldbug is in favour of voluntary slavery and thinks that sometimes it's good for the state to enforce involuntarily acquired obligations. We're still not all the way to actual slavery, of course; it depends on what sort of involuntarily acquired obligations the state should be enforcing.

"Indeed, the definition of family in most times and places has included slaves. [...] The relationship of master and slave is a natural human relationship: that of patron and client."

So now he tells us that slavery is natural and suggests (though he doesn't exactly say it) we should think of it as an aspect of family. He goes on to discuss slavery (being bound to one person), serfdom (being bound to a patch of land and its owners), and ordinary government (being bound to a much larger patch of land and its owners -- it seems to me like there are some super-important differences between serfdom and citizenship, but never mind), and concludes from how widespread these systems are:

"This is a pretty good clue that this structure is one to which humans are biologically adapted."

OK, so he says slavery is natural and humans are biologically adapted to it. Now what?

"Not all humans are born the same, of course, and the innate character and intelligence of some is more suited to mastery than slavery. For others, it is more suited to slavery."

(It is interesting to put this alongside his protestations that when he says black people are less intelligent than white people, of course he isn't at all making any sort of value judgement or saying that white people are better, dear me no.)

OK. So he says slavery is natural, humans are biologically adapted to it, and some people's inborn characteristics make them natural slaves. What next?

"These characteristics can be expected to group differently in human populations of different origins. [...] Africans tended to make good slaves and Indians did not. This broad pattern of observation is most parsimoniously explained by genetic differences."

So now we see the passage you quoted in its context. He says: Slavery is natural, humans are biologically adapted to it, some people's inborn characteristics make them natural slaves, and these characteristics are distributed differently in different populations; for instance, at least a few hundred years ago, Africans made good slaves, and this is probably for genetic reasons.

(But oh deary deary me no, when he says there are statistical differences in certain psychological characteristics between races, he doesn't mean any sort of value judgement by it. Only that some races are naturally suited to slavery and others to mastery, that's all. Who could possibly object to that?)

"Conversely, the subject-government relationship easily becomes dysfunctional for clients who are natural slaves, ie, are not capable of guiding themselves to live in a human and humane manner. [...] If all long-term welfare cases were transferred from Washington to the authority of genuine, truly charitable nonprofits, for example, their new human supervisors could intervene on a personal, discretionary basis to compel them to get their acts together. This would be a step toward humanity in our society - and also a step toward slavery."

So: he says slavery is natural, some people are natural slaves, those people won't flourish as free citizens; "all long-term welfare cases" are in this category; they should become, in effect, slaves -- for their own good, of course! -- and this would be an improvement.

(But no, of course he isn't an outspoken advocate of slavery. How could anyone think such a thing?)

This would be a much more interesting post without the tired sarcasm every other paragraph.

I'm sorry you don't like it. But those comments are there for a reason: to link what he said in that article with the claims he's making now.

As for the sarcasm: when someone (1) talks at length about how natural slavery is and how some people are naturally fitted for slavery, and calls for all long-term government benefit recipients to be made into slaves, and (2) insinuates (without quite saying it explicitly) that the average black person really ought to be a slave because that's what their inborn character and intelligence make best for them, and then (1') gets indignant at being called an advocate of slavery and (2') insists, in tones of offended innocence, that if anyone thinks them racist for taking about mental differences between black and white people, the problem is all theirs for being so "IQist" ... well, I really think some amount of sarcasm is called for.

This just reads like "The other guy is a jerk, therefore I'm justified in being a jerk when describing him".

That's not my meaning at all, in at least two ways.

Firstly, this isn't about what sort of person Yarvin is (jerk or not-jerk), it's about what he's done in the specific instance we're talking about.

Secondly, neither advocating slavery and oppression nor being sarcastic about a stranger on the internet is the same thing as being a jerk.

So it's more like "The other guy is being grossly dishonest about the terrible horrible no good very bad things he has said, therefore I'm justified in being quite vigorous in pointing out the dishonesty of what he's saying now and the horribleness of the things he said before".

FWIW I doubt Yarvin is a jerk. I expect he's pleasant and interesting company and kind to strangers and animals. Being a jerk is just one of many ways to go wrong, and it is not what I am claiming Yarvin has done. If all the bad things I say about Yarvin and more are true, and if those are not just one-off occurrences but a matter of settled character, then the consequence isn't that he's a jerk, it's more that he's a fascist or something. I happen to think I'm not a jerk either, but at least you're in the right ball-park there: if all the bad things you say about me and more are true, and if that is a matter of settled character rather than a one-off, then indeed I'm a jerk :-).

[EDITED for clarity here and there; no changes to meaning.]

I have just taken a look at the blog post you linked to.

If you've read that and come to the conclusion that the author is a racist, I can explain what you've missed in one word: intent.

The author is exploring ideas. The early parts of the blog post set this exploratory tone quite clearly by framing Carlyle not as someone with absolute moral authority, but as an original thinker, a counterbalance to his time and our time. By exploring Carlyle's ideas the idea is to examine commonly held assumptions. It's an intellectual exercise, and a healthy one at that.

As for the 'racist' comments, I don't think they're racist. The 'racist' argument being made can be summarised as... 'The idea that genetic diversity is equally balanced across all races has not been proven, it's an assumption made to further a political cause. However, even if there are genetic traits more closely associated with one race over the others, it does not make those other races inferior. This line of reasoning exposes another form of oppression, one based on intellect rather than genetics, where the right to rule over others is determined by perceived intellectual superiority.'

To me, that's not racist. I do believe there are genetic dispositions amongst people of different backgrounds. For example, look at average height. If I go to Asia or South America and stand next to people I meet there, I would tend to be taller. Do I think I'm a better person than them because I'm taller? Fuck no. Can you appreciate this point of view?

I didn't say anything about racism. I said that that blog post seems like sufficient grounds to call the author an "outspoken advocate of slavery" even if when that becomes inconvenient for him he says he isn't one.

And yes, he frames what he says as an exploration of Carlyle's ideas, but he's not just saying "Carlyle said this; isn't that interesting"; he's presenting his own opinions too.

As for whether believing that white people are (statistically, on balance) cleverer than black people makes you a "racist" -- which, again, was not what I was referring to above: it's really a question about the definition of "racist", and disputes over definitions tend to be unfruitful. For what it's worth, I would not call anyone a racist merely for believing that proposition.

> "he's not just saying "Carlyle said this; isn't that interesting""

From what I saw, that's exactly what I think he's saying, perhaps I missed something you saw, perhaps I didn't. It seems the conversation has pretty much run its course now, so shall we agree to disagree?

Fine with me.

"I'm not racist, but..."

"I'm not a communist, but..."

I mean, it is possible that hundreds, possibly thousands, of people have misinterpreted your writing on colonialism, human biodiversity, etc. However, you seem to be smart and a better than average writer (if florid, at times). It seems like someone of your intelligence and writing ability would be able to make a point effectively, without so many misunderstandings.

But, I hope that I have misunderstood your writing on those subjects.

To me the parts of that document that treat on race show that this guy believes that races differ in IQ. That's racist.

It's simply a fact that ethnic groups differ in IQ.

I've met a lot of black people, but I've never met the black race. I've met a lot of white people, but I've never met the white race. I've never met a race and I don't expect to.

I've met stupid people and smart people and a whole lot of people who were stupid one way and smart another, but I've never met anyone with an IQ and I don't expect I ever will.

Or as one notorious racist once put it: '"As for "race," you can learn way more about someone from a minute of conversation than from a full genome sequence -- even if we knew how to decode the information in the sequence, which we don't.'

Ooo, I'm jumping into the firepit here. I haven't even read the article.

But if he's talking about what happened to groups of people, isn't it correct then to talk about characteristics of groups of people?

Normally, I would stay away from stereotypes and generalizations, and yet aggregate characteristics are useful about talking about what happens to groups of people.

The real trouble comes when you try to apply an aggregate observation to the individual. You can't. That's the racist bit.

Edit: Another problem is, and what we've seen here, is that observations or opinions about groups are often used to evaluate a member of said group when met. Curse our brains for taking shortcuts.

Also, I probably should have asked this upfront - are you up in arms about the construct of IQ, or the suggestion that that a group of people might differ in a particular characteristic?

I consider "racism" to be a mental/emotional disease and you describe it well: a logical confusion between "group", which is a mental construct, and the real individuals encountered in real life, leading to severe anti-social behaviour. Generalizations are useful, but people get fucked up on "race".

To answer your question, I am upset that someone as intelligent and otherwise interesting as the urbit fellow should suffer from the logic-disease of racism. It's like how Konrad Zuse is always neglected because he worked for the Nazis, so "fuck him", eh?

Generalizations can be useful, "race" typically isn't. "IQ" can be a useful shorthand, but if you take it too seriously... Let's just say that Mensa is a group of people who are almost, but not quite, as intelligent as they like to think they are.

To paraphrase Deckard, '"IQ" is like any other concept, it's either a benefit or a hazard. If it's a benefit it's not my problem.'

Thanks! I can tell you've put a lot of though into this issue.

You seem to be intentionally diluting the terms. The origins of this discussion trace back to BSA's 1995 report on intelligence https://en.m.wikipedia.org/wiki/Intelligence:_Knowns_and_Unk... and that report is caused by some research work done by Herrnstein & Murray, results of which were published in a book https://en.m.wikipedia.org/wiki/The_Bell_Curve

What the research addressed was the IQ bell curves among various groups. What the research didn't address was correlation between IQ scores, intelligence, and general life satisfaction, difference between "academic smarts" and "street smarts", presence of various impurities among the ethnic groups, etc.

Does it matter if it's true or not?

"race" and "IQ" are fictions, so what does that do for their truth value?

I would ask, are these concepts truly useful?

I wouldn't say they're fictions anymore than I would say gravity is fiction. They're models, so by definition they don't fully encompass that which they're meant to represent. I think IQ has some usefulness, e.g. https://en.wikipedia.org/wiki/Intelligence_quotient#Job_perf... Race, well maybe, the political climate is usually too hot to entertain a rational discussion of that.


Statistically, at least last I checked, that statement is absolutely correct.

The reasons for which is a matter of some debate, but the fact will resist any and all efforts to change it by way of insulting its speaker.

Were it someone relating this in a less analytical way, that sentence would read "People with higher IQs are not necessarily 'superior'". Which is also true, as it happens.

Yep it is statistically correct.

For anyone interested in the potential reasons: one of the most posited ones is that the creators of the tests are inherently biased. i.e. if someone creating an IQ test is a white male, chances are white males will have an advantage on the test.

This has some degree of experimental evidence behind it, I remember in one of my psych classes we learned about a study where test creators tried to create tests [and succeeded] where certain races or locales would score higher [primarily by having people in those places or people of that race create the tests]. It's very hard to create a "general intelligence" test that isn't biased in some fashion [and many say it's impossible]

> if someone creating an IQ test is a white male, chances are white males will have an advantage on the test

But why and how would white males consistently create culturally biased tests which advantage East Asians?

> It's very hard to create a "general intelligence" test that isn't biased in some fashion [and many say it's impossible]

Tests of reaction time are probably not culturally biased: https://en.wikipedia.org/wiki/Mental_chronometry#Mental_chro...

Got any sources to back this up? I'd rather not believe, but if it's so...

Sure do. Yarvin's AMA.



Its the sum of these views, writings, and his own AMA that steered me clear of his stuff. Mainly, if he treats fellow members of the community like this, I'm sure not going to have a good fit in ... wherever he works on.

"As for "race," you can learn way more about someone from a minute of conversation than from a full genome sequence -- even if we knew how to decode the information in the sequence, which we don't. As for politics, there is essentially no one sane who thinks of themselves as evil or wanting to do evil. I have lots of progressive friends, and you'd be surprised how many ways we can find to see the world in the same way."

What a monster!

It's the paragraph before that. "It's actually quite possible to recognize that human population genetics has a lot of impact on politics and history, and also recognize that human population genetics has nothing at all to do with your individual, personal and professional human relationships. Nor does politics."

You can't really make that non-racist by adding "I have progressive friends and quite like puppies"

Can you explain how that sentence is racist? I legitimately do not understand how it is.

If you're an advocate for Social Justice then please apply your exorcism elsewhere. Surely we can discuss computing without beating the drum for morality every time.

If I brought up the abortion issue in every biotech thread I'd get panned and rightly so.

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact