
Urbit: a personal cloud computer - aberatiu
http://doc.urbit.org/
======
macu
I read partway through and began to worry that maybe old age has finally
caught up to me at 25.

------
yongjik
Is it just me, or is anyone else reminded of the story of Project Xanadu? (A
great read[1], if you have an hour to spare.)

Especially this part: > Shapiro also discovered that the group had been
working together so long it had developed a kind of private slang. It took
months to comprehend what the programmers were talking about. Most of them
were book lovers and trivia mongers who enjoyed developing a metaphor based on
obscure sources and extending it via even more unlikely combinations. For
instance, the object in the Xanadu system that resembled a file was called a
bert, after Bertrand Russell. With files called bert, there had to be
something called an ernie, and so in the Xanadu publishing system, an ernie
was the unit of information for which users would be billed. To understand the
details of Xanadu, Shapiro had to learn not only the names for things, but
also the history of how those names had come to be.

[1]
[http://archive.wired.com/wired/archive/3.06/xanadu_pr.html](http://archive.wired.com/wired/archive/3.06/xanadu_pr.html)

~~~
urbit
I resemble this remark. We're making progress more than twice as fast than
Xanadu!

------
nnq
It's probably the second time that I come across Urbit and found it attention
worthy, but... _how hard would it be to explain at least some of the concepts
in plain English and with some nice intuitive drawings /schemas on the side,
really?_

I mean, this
[http://doc.urbit.org/doc/hoon/tut/1/](http://doc.urbit.org/doc/hoon/tut/1/)
is supposed to be a "tutorial" but it's definitely not what anyone else would
call a "tutorial". It's more like a "philosophical introduction" to a PhD
paper, which would be ok if labeled as such. A tutorial should be about "how
do I do X using Y, without bothering to really understand Y" because this is
what a tutorial is about, a "mostly wrong" "mental shortcut" that you take in
order to gain some kind of "feel for how something works" before actually
delving deeper and reading up on the theory.

~~~
state
This is solid and thoughtful feedback. Thanks.

Our documentation has advanced since this was posted. I'd be interested to
talk more out of band, but can't find your email. If you're up for it I'm
galen at tlon.io.

------
state
I can't say we were expecting this, but it's nice to see that people are still
interested in what we're working on. Thanks!

What we're brewing in the lab has diverged quite a bit from what's publicly
available. Even these docs are quite out of date.

If you're interested in keeping up with what we're doing: either sign up at
[http://urbit.org](http://urbit.org) or send me an email, galen at tlon.io.

~~~
_dps
From the article:

"It's definitely air travel. It's not exactly flying."

This phrase has an Alan Kay-ish quality, and was enough to pique my interest.
Anyone seriously trying to execute on a project that addresses this concern
seems worth following. Who knows, you might even succeed :)

~~~
andyidsinga
i thought that was interesting too.

i find it an interesting exercise to explain to non-technical folks that i
have several virtual computers running in the cloud. .. looks on their faces
says it all.

------
thibauts
I can't decide if it's a science fiction novel written in code form, a
programming environment, a game, a radical creative take on computing and
networking ... Whatever it is, it's genius.

------
sjclemmy
I know enough to be interested. Not enough to know if its nonsense.

Although, I read this:

"A pier is an Urbit virtual machine that hosts one or more Urbit identities,
or ships. When you run bin/vere -c, it automatically creates a 128-bit ship,
or submarine. Your name (a hash of a randomly-generated public key) will look
something like:

~machec-binnev-dordeb-sogduc--dosmul-sarrum-faplec-nidted,...

and I laughed. A lot.

------
sz4kerto
Previous discussion:
[https://news.ycombinator.com/item?id=6438320](https://news.ycombinator.com/item?id=6438320)

I've been watching this since it's started. It has some magical atmosphere
around it and you never now whether it's serious or not; whether it's a real
technical project or some kind of artistic performance.

I think I have a destroyer somewhere.

~~~
canjobear
Lots of negativity in the previous discussion. Did the page used to be phrased
in a combative way or something?

~~~
djur
Earlier versions of the site featured a larger quantity of Moldbug's baroque,
trollish prose style. Plus there was an extended argument about language
design, due to the author being present in the thread.

Frankly, I'm disappointed. It used to be clearly the personal work of a
lunatic. Now it feels more like a quirky open source project.

~~~
Adlai
What's a quirky open source project, if not the communal work of collected
lunatics?

------
Estragon
Is nock designed to run untrusted, potentially hostile code with guaranteed
identical results on all platforms?

I'm looking for a virtual machine (or NaCl-like sandbox) which does this.

Edit: To anyone who downvoted me, could you please let me know why?

~~~
urbit
Yes - although actually achieving this result in practice (and efficiently)
takes a lot of doing right.

~~~
Estragon
Thanks. How close are you to achieving that?

~~~
urbit
Nock works perfectly, of course, but it's poorly optimized. The various "jets"
(optimized implementations) in our runtime haven't been adequately tested and
there are probably a few corner cases, errors, etc, where the behavior doesn't
match. Even the new Nock runtime (I just rewrote more or less the whole
interpreter) is probably a little too bound to Urbit specifically.

But the system has been self-hosting for quite some time, and there's
certainly no doubt that the general approach works...

------
jacquesm
This is fun stuff. Reading around a bit I found this:

"While nowhere near the simplest such automaton known, and certainly not of
any theoretical interest, Nock is so stupid that if you gzip the spec, it's
only 374 bytes. Nock's only arithmetic operation is increment. So decrement is
an O(n), operation; add is O(m * n)... "

Don't they mean 'subtraction' rather than 'add'?

edit: This is so fascinating, it has me totally enthralled. Think smalltalk
meets lisp meets some wild eyed programmer who knows _just_ how to appeal to
the general frustration most programmers should have (do they?) about the
state of our art.

Best post on HN in a long time, very curious how this one will turn out in the
long term. May all your ships come in ;)

edit2:

Digging around a bit more: Peter Thiel and a bunch of others have apparently
invested in this through a vehicle called 'Tion',
[https://angel.co/tlon](https://angel.co/tlon) (the Thiel reference is that
Thiel backed John Burnham, who is co-founder in Tion).

~~~
Chattered
I'm not sure on the specifics here, but I'd have thought that subtraction
would be O(n). To perform n - m on a simple register machine with only
increment, you just count from m up to n (and count from 0 up to n, outputting
0 if you reach n, since subtraction is partial).

EDIT: It seems they are going for a naive implementation where subtract just
repeatedly calls decrement, so yes, that's going to be O(m*n).

~~~
auggierose
It depends on what the n means in O(n). If n means anything other than "the
number of digits of x" (i.e., n = log(x)), then this is absurdly slow.

~~~
Chattered
The n is just n: it's the number you are subtracting from. Of course, it's
impractically slow, but I believe it's just example code in a opening tutorial
for the Nock language.

~~~
yebyen
You are both right. Nock is not meant to be fast.

There are only 10 operators in Nock, and when you get to the last one, you see
there's a space for a "hint" to the compiler. This is how Nock becomes fast in
Hoon. You start with an extremely slow, naive implementation, and then you
write something called a "jet" which is proven (I think usually a weak proof
is considered sufficient, like by fuzzing) to be semantically equivalent to
the nock that it replaces. Then you do your best to make sure you use that
exact expression anywhere you mean that, and don't reinvent it again later.

Jets are currently written in C, since the vere platform is written in C.
Learning how they work and how to write them is on my bucket list.

------
Zillion
The choice of 0 for true and 1 for false is _wrong:_ On the Curry-Howard
correspondence (and above) a type corresponds to a false sentence when it is
not inhabited, like 0, and to a true sentence when it is. The Curry-Howard
correspondence is fundamental, and so that is the. correct way to go, absent
evidence in the other direction. I don't know whether Nock is a better
foundation for a programming language than the Lambda Calculus, but it is at
least as elegant—I'm glad someone is seeing where it leads I'm a fan of
internet freedom, which often requires anonymity, and so I have my doubts
about an OS that preserves exerything as a feature of the design.

~~~
jdpage
Aside from the zero/one thing, if I'm understanding this right, Nock is based
on the SKI combinator calculus, where the combinators are

S: λxyz.xz(yz)

K: λxy.x

I: λx.x

From there, you can express anything from the lambda calculus, and vice-versa.
So I think it's reasonable to say that Nock is just a machine-friendly way of
expressing the lambda calculus.

~~~
urbit
I wouldn't say it's _based on_ SKI - just relatively similar. There are a lot
of ways to skin this cat.

SKI is obviously a lot simpler mathematically, but I wouldn't want to try to
use it as a compiler target...

------
krick
I definitely was thinking about something _like this_ , but not exactly
_this_. I mean, yeah, the only way to save ourselves from damnation is to
finally announce "enough of 70's!" and rewrite everything from scratch, so the
idea is dear to me, but that actual implementation of the idea is… maybe
"weird" is the right word. I'll continue reading, but I already have a feeling
that after I'll get myself completely familiar with it, I will hope it will
_not_ succeed.

~~~
jacquesm
I hope it will succeed but that it won't be the only thing that will succeed
and that some will take inspiration from it to build something even better.
Challenging the status quo as such is a useful property and showing that you
can in fact reboot is useful as well.

That said, the more I read about it (a couple of hours so far) the more I'm
thinking it will not succeed because of some of the weirder philosophical
decisions that have already been cast in stone.

It's basically a variation on the 'landgrab' theme. Think bitcoin or the
domain name system with half the space grabbed up by the ruling corporation,
with an arbitrary 'ingroup' and a very large 'outgroup'.

You'd think that by now the whole point the web rammed home with its unbridled
success is that open is better but I guess the mobile walled gardens have
whetted the appetite of future wannabe corporate overlords.

Anyway, I still wish them best of luck, that's an economic move on my part, it
costs nothing and I suspect they are self limiting enough that it will not
achieve the world domination they are dreaming of. See also: the singularity.

~~~
urbit
I prefer to think of it as: you can be "free as in beer" or "free as in
speech," but not both. Sith Lord Zuck has set you free as in beer, but not in
speech. Urbit will set you free as in speech, but not as in beer.

The difference is simply that while there are a limited number of Urbit
identities (or at least memorable identities, ie, 32-bit "destroyers") in the
world, and therefore they can't possibly be made free as in beer, _neither I
nor my evil minions_ have any practical power over a destroyer once we create
it.

Moreover, if you genuinely think of any individual or organization involved
with Urbit as evil, there are plenty of independent carrier-holders you can
get a destroyer from. (~del, for instance, will ship destroyers when we do, I
think. He's some guy in Rochester whom I don't know from Adam. So, we'll let
him serve the first 16 million people who want to escape from our evil
dictatorship.)

Yes, by default the normal way to get onto Urbit will feel like the normal way
to get onto Facebook. However, even if you are initially issued and hosted by
us, you can move your image at any time to any other host, or to your own
machine. Currently there's no way to stop using your issuing carrier for
network services, such as firewall hole punching, but this is obviously a 1.0
feature. By design, there is no sort of leverage you can't escape from.

So Urbit strikes a sort of balance between governed and ungoverned networks.
The limited address space will hopefully make it economically impractical to
abuse the network for profit - a spammer is always a Sybil attacker. But as a
destroyer you are not ruled by any master you can't easily escape from. The
only thing you can't escape is your own reputation. Which you shouldn't be
able to escape from.

We should probably highlight this difference a little more in the doc...

~~~
yebyen
The random guy from Rochester here (~del)

I will hock destroyers, although I don't know if I can sell them, for reasons
I can't go into. Also offering Yachts, to anyone who thinks that a destroyer
is just too militaristic.

I can also confirm, don't know Curtis from Adam.

------
macu
It seems like a work of genius, but it may be many years before an artificial
intelligence can fully interpret its unique significance.

In fact it reminds me about a massive book on cellular automation that I once
picked up, which went to incredible length in interpreting the potential of
dynamic patterns in 2D space. It was a monument to extreme intellectual rigour
and dedication, if nothing else. If only I could remember the title.

~~~
zenlikethat
Was it "A New Kind of Science" by Stephen Wolfram?

~~~
macu
That's the one. Thank you

------
rogerbraun
It's made to confuse and mystify. The Borges quote from ' Tlön, Uqbar, Orbis
Tertius' gives it away.

Really well done, though!

------
dtf
For some reason I feel like I'm reading a Jorge Luis Borges story.

~~~
rsofaer
It's probably the Jorge Luis Borges quote on the setup page.

------
k2enemy
I found this video helpful in understanding the project:
[http://vimeo.com/75312418](http://vimeo.com/75312418)

~~~
jevinskie
128-bit submarine vs 32-bit destroyer reminded me of IPv6 vs IPv4.

~~~
javaexpert101
Its fairly distinct. A destroyer is like owning a bunch of submarines, in a
way. This is the one point where the model kind of breaks this layer, though.

Basically, it can't run out of address space because of the abundance of subs.

------
chops
Code on Github:
[https://github.com/urbit/urbit](https://github.com/urbit/urbit)

This seems crazy ambitious on its own, and add to it that it's public domain.
Very curious where this will be headed.

~~~
krick
Could you please explain what being "public domain" adds to it?

~~~
jevinskie
It enables use (personal and especially corporate) with as little licensing
fretting as possible.

~~~
kelnos
Except that some jurisdictions in the world don't have the concept of public
domain, so, in those places, this code is legally in a very weird place. It's
much better (IMO) to assert copyright, and then release under the most
permissive license possible.

~~~
urbit
Yes, some people have made this criticism. We'll be thinking about it.

------
eluos
This video does a good job explaining Urbit:
[https://vimeo.com/75312418](https://vimeo.com/75312418)

------
vesche
When I read through the urbit git page and it finally clicked to me what this
is and what it could mean, I literally said out loud in my room "Oh, that's
really fucking cool."

~~~
DennisP
For those of us who it hasn't clicked for, could you lend us a hand?

------
chatmasta
Docs: [http://doc.urbit.org/doc/](http://doc.urbit.org/doc/)

------
emmanueloga_
Interesting distribution of contributors [1]. Usually what I see on most
projects is one or two guys contributing the most of the code since the start
of the repository, with minor contributors coming and going. These
contributors chart seem to show different guys taking the helm at different
points on time though.

1:
[https://github.com/urbit/urbit/graphs/contributors](https://github.com/urbit/urbit/graphs/contributors)

~~~
Scaevolus
Not quite. It looks like urbit has imported the histories of multiple other
projects.

LibUV:
[https://github.com/joyent/libuv/graphs/contributors](https://github.com/joyent/libuv/graphs/contributors)
Re2:
[https://code.google.com/p/re2/source/list](https://code.google.com/p/re2/source/list)

~~~
state
Hm. Not sure how that happened. We have had a number of different
contributors.

------
jqm
I'm just wondering if it will run on TempleOS.

~~~
urbit
TempleOS is a _competitor_ , not a partner. Privately, between you and me -
_that guy is going down_.

------
youngthugger
Can someone explain what is going on? Is this a new OS built from the ground
up with it's own technologies ?

~~~
rm445
At present it's a bunch of programs that run on UNIX systems. I guess the Hoon
interpreter is a C program that uses readline, talks to the network over
sockets and the like. But everything on top is quite self-contained and in
principle one might remove the layers underneath.

But I'm not sure that's necessarily the aim. As I understand the project's
aims (and I'm not involved, I just read all the docs a few months back), it's
more important that the Internet of the future is not a tangled mess of
technologies that are insecure on different layers. Then it doesn't matter so
what OS people's local machines are running.

I hope the essay at the URL below is still relevant, it seems to describe the
aims rather well. "The result: Martian code, as we know it today. Not enormous
and horrible - tiny and diamond-perfect."

[http://moronlab.blogspot.co.uk/2010/01/urbit-functional-
prog...](http://moronlab.blogspot.co.uk/2010/01/urbit-functional-programming-
from.html)

~~~
comboy
> [http://moronlab.blogspot.co.uk/2010/01/urbit-functional-
> prog...](http://moronlab.blogspot.co.uk/2010/01/urbit-functional-
> programming-from.html)

My brain did not enjoy any wall of text that much since I read the bitcoin
whitepaper. Now I want to learn more and be up to date.

------
jacquesm
more interesting reading here:

[http://alexkrupp.typepad.com/sensemaking/2013/12/a-brief-
int...](http://alexkrupp.typepad.com/sensemaking/2013/12/a-brief-introduction-
to-urbit.html)

------
GuiA
Urbit is a weird thing that feels like it comes from a parallel universe of
computing. It's a bit hard to wrap your head around it at first, but it has
some neat ideas.

I like this article which introduces it:

 _Urbit is perhaps how you 'd do computing in a post-singularity world, where
computational speed and bandwidth are infinite, and what's valuable is
security, trust, creativity, and collaboration. It's essentially a combination
of a programming language, OS, virtual machine, social network, and digital
identity platform._

[http://alexkrupp.typepad.com/sensemaking/2013/12/a-brief-
int...](http://alexkrupp.typepad.com/sensemaking/2013/12/a-brief-introduction-
to-urbit.html)

~~~
walterbell
_" Despite messages between ships being encrypted, the founders state that
they've purposely designed the network to make it as easy as possible for
governments to regulate and control. It's not entirely clear why this is
supposed to be a good thing."_

~~~
Quequau
My take on that is that this design choice arrises from the anti-democratic
authoritarian sentiments which (at least one of) the developers apparently
hold. At least they have repeatedly expressed these sorts of sentiments in
their rather long winded blog(s).

~~~
yebyen
Have you considered that democracy is not actually immune to authority, and
it's really a reflection of this, rather than a window into the designs of one
crazy person? (hi Curtis)

Maybe every system that comes along and says "impossible to be subverted by
centralized governments" in reality is just saying "come and try to stop me,
Federales". Do you think that is that what we all should be doing instead?

~~~
Quequau
Actually, I have. I understand that there is complex tension between
fundamental human rights (like freedom of expression, freedom of association,
& privacy) and realities of the intrusion & abridgment of these rights carried
out by various state security agencies and corporations.

I agree that any project which claims "impossible to be subverted by
centralized governments" is just saying "come and try to stop me, Federales".
Moreover, I feel that such claims are extremely difficult to substantiate (and
so not particularly credible) and for the most part made by groups I'm not
really motivated to associate myself with.

Speaking in a very general sense (having kept up with the news & goings on
related to technology, privacy, corporate activities, and state security
activities for the past few decades); it's my opinion that this tension is not
only not in an ethically defensible or sustainable state, it's not in the
state that most of the people in the western capitalist nations believe &
expect it is.

So I find assertions like: "Despite messages between ships being encrypted,
the founders state that they've purposely designed the network to make it as
easy as possible for governments to regulate and control. It's not entirely
clear why this is supposed to be a good thing." to be similarly worthy of
skepticism and disconcerting as the "impossible to be subverted by centralized
governments" claims. My feeling is that this statement translates fairly
directly into "all user data is available to any corporate entity or state
security agency for any purpose" and that this includes purposes like
backchannel monetization through data aggregation and industrial scale
warrantless surveillance & data collection.

It's pretty obvious to me that you are pretty invested in this project and
I've only spent a few hours perusing the various docs, repositories, and
blogs. So I'm fairly hesitant to make any sweeping statements or claims of
certainty. So, with those qualifications in mind, my conclusion after my
perusal is that this architectural design choice is unlikely to be a
reflection of some sort of pragmatic policy coming from a non-ideological
position of social responsibility that's striving to minimize any intrusion &
abridgment of rights while still allowing for the realistic needs of
businesses and state security agencies.

Frankly spoken, I personally find a number of the abstract concepts and
architectural design choices in Urbit project to be fascinating and
compelling. I've spent far too much time dredging around the information that
is currently publicly available... Time I honestly can't afford. So it's
really disappointing to me to find that there is a pervasive toxicity which is
deeply intertwined with the project. My conclusion is that this toxicity makes
the project broadly unusable (seriously) & and possibly even unfixable.

Elsewhere in this thread I saw someone claim that there were big things coming
in a few months. If this is accurate I look forward to it. Perhaps there will
be changes and new developments which will demonstrate my current assessment
inaccurate. Honestly, that would make me pretty happy... but from what I've
seen so far, I suspect that's really, really unlikely.

~~~
loqi
> My feeling is that this statement translates fairly directly into "all user
> data is available to any corporate entity or state security agency for any
> purpose"

Speaking as a semi-informed bystander who's been following Urbit for a while
now, it certainly seems like one of the problems it's trying to solve is the
typical notion of "user data" as something controlled by third parties. Eg
[1]:

> Where is Joe's financial data in mint.com? In, well, mint.com. Suppose Joe
> wants to move his financial data to taxbrain.com? Suppose Joe decides he
> doesn't like taxbrain.com, and wants to go back to mint.com? With all his
> data perfectly intact? [...] Imagine the restfulness of 2020 Joe when he
> finds that he can have just one computer in the sky, and he is the one who
> controls all its data and all of its code.

[1]: [http://unqualified-
reservations.blogspot.com/2011/10/persona...](http://unqualified-
reservations.blogspot.com/2011/10/personal-cloud-computing-in-2020-or-
not.html)

That said, the current implementation has been explicitly called out (in past
incarnations of the docs, at least) as not-remotely-trustworthy with sensitive
private data.

------
newuser88273
The project is based on a fundamental insincerity, which makes me suspicious.
All material about Urbit makes a big point of their minimal spec, again so in
the linked piece: "The spec fits on a T-shirt and gzips to 340 bytes."

What do people expect when they read a thing like that? I don't know about
you, bit I'd expect that I could ignore the obfuscated strangeness of their
higher level languages etc and just implement stuff to that minimal spec.

So you expect you can do that. But you can't. That minimal spec might as well
not exist; you can't just read it and go on to implement, say, a programming
language on top of Urbit.

"But you can!" you might object. Try it. Read nothing but that spec and
implement, say, a tiny BASIC on top of it. Compile some simple programs. Run
them. Now, what happens? Nothing, for now. But look, my processor core is
heating up. Something must be happening! Just wait. Wait. Wait. No, still
nothing. Wait some more. Just a few years, maybe? No, still nothing (except
heat). Etc.

So no, that elegant spec doesn't give you anything but a way to heat your
computing cabinet.

Realizing this, I put Urbit in the "suspicious, may be a con" bin. Hasn't
escaped from there, yet.

~~~
perlgeek
> The project is based on a fundamental insincerity, which makes me
> suspicious. All material about Urbit makes a big point of their minimal
> spec, again so in the linked piece: "The spec fits on a T-shirt and gzips to
> 340 bytes."

Last I read something like this (I don't know if it was about Urbit or
something else), it turned out that there was no IO included in that spec. So,
useless for any real-world purpose, and as you said, insincere.

~~~
yebyen
The IO are events, and the events come from unix (for example: signals, files
and sockets).

Urbit is not meant to replace Unix. "They call us, we don't call them" is the
fundamental precept in play here. I assure you there is I/O in Urbit, the
vanes include an HTTP server, a Hoon-interpreting shell which accepts keyboard
input from a terminal, and a UDP layer for facilitating ship-to-ship
communications. All of that is written in Hoon, which compiles into Nock.

~~~
clarkm
> Urbit is not meant to replace Unix.

But I thought that was the long-term master plan. Isn't the whole point to
extricate ourselves from eternal dependence on C and Unix ecosystem?

~~~
yebyen
Some long term plans are crazier than others. I would like to have a machine
that runs nock directly on the bare metal, but that doesn't mean it fits into
the current architecture.

So far to my knowledge everyone running Urbit is doing so on a Unix system of
one flavor or another. The point of "they call us, we don't call them" is not
that Urbit never calls into Unix, it's that the set of reasons to reach out to
Unix for one of the existing OS facilities is limited, restricted from the
list growing any longer than absolutely necessary.

If your persisting disk filesystem evaporates from under you in the middle of
operation, maybe Urbit can be prepared to deal with this, but as long as you
have it there, might as well use it to allow the user to muck around with your
internal representations in a way that is already familiar.

One of the problems Urbit doesn't currently seek to tackle is "a new text
editor." Surely this is for the best, not because "a new text editor" is not
an interesting problem, but for reasons that I think are already obvious to
you.

------
hunnypot
This gives me a weird _Daemon_ vibe.

------
vezzy-fnord
Urbit is to computing what Thelema is to spirituality.

~~~
samatman
You have no idea.

[http://mnemnion.github.io/blog/2013/12/19/commentary-on-
ax/](http://mnemnion.github.io/blog/2013/12/19/commentary-on-ax/)

------
olh
Is it for real? Finally a computational machine based on hyperoperations I can
use.

------
tyrion
Is this free software? I don't see a license in the Github repository.

~~~
SEMW
Oh the author's blog[0], he states that all his code is in the public domain.

[0] [http://moronlab.blogspot.co.uk/2010/01/moron-lab-goals-
princ...](http://moronlab.blogspot.co.uk/2010/01/moron-lab-goals-principles-
rules.html)

------
juanbyrge
MENCUIS MODLBUG IS OUR DEAR LEADER, lol

------
BorisMelnik
Don't really get what this is technically, but conceptually I do understand it
and would love to back a company like this. Technologies like this could kill
Microsoft (Windows) and many others.

~~~
jabits
Why would this be any better? Then this is the big company that screws things
up.

------
sjclemmy
This guy should have been a comedy writer, not (and?) a programmer. I found
this whilst backtracking: [http://moronlab.blogspot.co.uk/2010/01/moron-lab-
goals-princ...](http://moronlab.blogspot.co.uk/2010/01/moron-lab-goals-
principles-rules.html)

~~~
hawkice
"Comedy writer" isn't quite how I'd describe it, but I'm surprised no one has
mentioned that Urbit is run by the guy who writes/wrote under Mencius Moldbug,
who is perhaps one of the more controversial people to achieve internet
fandom. If you read through all the archives on his site and have no opinion
(probably somewhere in the "I hate him" or "I find this reasonably convincing"
statistical clusters), then your sense of outrage has been diminished, I would
say.

[http://unqualified-reservations.blogspot.com/](http://unqualified-
reservations.blogspot.com/)

Note: I myself am unconvinced by his writings, and find him to be just another
ironic instance of the ironic nature of American culture, eager to avoid the
appearance of naivete by abandoning all hopes that are fragile. Do with that
what you will.

------
happybeing
That description sounds like [http://MaidSafe.net](http://MaidSafe.net), which
is rapidly approaching launch.

~~~
abrichr
This seems super interesting. One of the people behind it is David Irvine [1],
who apparently "was Designer / Project Manager of one of the World’s largest
private networks (Saudi Aramco, over $300M)." [2]

[1] [http://www.forbes.com/sites/kashmirhill/2014/04/08/beyond-
bi...](http://www.forbes.com/sites/kashmirhill/2014/04/08/beyond-bitcoin-
crypto-ownership-companies-hope-youre-ready-to-decentralize-everything-on-the-
internet/)

[2]
[https://github.com/maidsafe/MaidSafe/wiki/unpublished_papers...](https://github.com/maidsafe/MaidSafe/wiki/unpublished_papers/SelfAuthentication.pdf?raw=true)

------
gfodor
Is there an EAP for "Urbit in Action?"

------
andyidsinga
i loved everything i read on that page ...especially the part about it being
not good formanyting but screwin around!

BTW - re Hoon ...a reference to the sea faring settlers in Brin's uplift
series?

------
comrh
This is like if Douglas Adams and Greg Egan did pair coding. Super
interesting.

------
kungfooguru
It is so purposely obfuscated it has to be a troll.

------
duckingtest
Seems fun, because I didn't understand everything while skimming the website.

>We use so many of these ASCII glyphs that we like to be able to read them out
loud. A language is meant to be said.

That's a very weird idea there. A painting is a form of language, but can a
painting be said?

~~~
meepmorp
> A painting is a form of language, but can a painting be said?

I suppose if you use a very broad definition of language, that might be true,
but in the sense of natural languages, paintings are not generally a form of
language. They may be a form of symbolic expression, but that doesn't make
them a language.

~~~
duckingtest
A programming language is not a natural language. The quote refers to Hoon
specifically.

~~~
tree_of_item
The programming languages you're familiar with don't consider themselves to be
similar to natural languages. This one apparently does, and why not? Why do we
even use the word "language" to refer to our computer UIs when we balk at
mundane language phenomena like context-sensitivity?

------
1ris
So, is it back? Launched again?

~~~
zerker2000
Not as such, [http://urbit.org](http://urbit.org) stands. If people still want
to explore unofficially, github is their oyster.

------
sheerun
Stop wasting my time...

------
Animats
Was this written by a program?

~~~
pbhjpbhj
Uber-hackers of the future will write code for nanobots that cause them to
self-assemble in to an android, the android will then write a program that
generates a system like this that describes a new programming paradigm.

Or, something.

This reminds me of the Newton-Liebniz debate on creation.

------
WorldWideWayne
Are there a lot of women using Urbit or something?

~~~
path411
I always find the forceful use of female gender pronouns to be very odd. If
you are conscious of and disagree with the general use of male gender
pronouns, wouldn't you wan't to push the use of gender neutral pronouns?

Personally, I'd rather see the use of some of the new made up neutral pronouns
than thinking swapping male to female pronouns is a viable long-term solution.

------
pxndx
This is either a very elaborate joke or the future of computing.

~~~
gfodor
They had me going in the Nock spec until "We should note that in Nock and
Hoon, 0 (pronounced "yes") is true, and 1 ("no") is false. Why? It's fresh,
it's different, it's new. And it's annoying. And it keeps you on your toes.
And it's also just intuitively right."

~~~
gojomo
Here's one possible intuition:

There is one ground truth, origin, fixed point like the North Star: zero.
There are an infinite number of possible falsehoods: all nonzero numbers. But
Urbit chooses 1 as the canonical false.

~~~
vidarh
And this is close to the reason why you often see zero used a "success" in
languages like C: There are many possible error values.

So it's not very original at all.

~~~
urbit
That's correct. :-)

------
roboben
the only bad things seems that everyone is dependent from a server run by one
company. why is there a need for this kind of registry? wouldn't be a
distributed system better for this?

~~~
yebyen
Man, I just wrote you a big long explanation of how you can update your
filesystem even if your parent ship is gone, with shell command examples, but
then my battery died before I had a chance to post it, and I'm totally not
rewriting it now because I'm sure you don't care that much, and the real
punchline is all of this information is about to be obsolete anyway.

The long and the short is, there are carriers (I have one), who are enumerated
in the source code (like by public keys) and they are not dependant on each
other, except for the sake of being able to route to child ships. So if ~zod
is down, and everyone depends on ~zod, the network is indeed hosed. Everyone
with active links can continue talking to each other, but nobody new can find
anyone, and nobody can find anyone new. Every ship depends on a carrier for
routing.

By convention, every time you launch from your pier, you get a new random port
number and any ship that was looking for you at your old address needs to hear
about your new address from a higher-up ship.

So it is distributed, but finitely distributed. There are only 256 carriers
allowed, and they are the only ships that are really independent. Though there
has been talk about fleshing out how ships can be separable from their "sein"
domain, or parent ships, currently almost everyone is from the same lineage
and thus depends on the same pair of servers for pretty much everything
regarding the network.

This "centralized" design is indeed a core feature of the network, and it even
relies on DNS to be bootstrapped, another centralized system. Now, can you
show me a decentralized system that doesn't need any of that? I don't know
exactly how magnet links or tor, or freenet work, but I am skeptical that they
are honestly less centralized than this when it comes to bootstrapping.

~~~
yebyen
Follow-up: As I suspected, regarding magnet links

> The first time a client joints the DHT network it generates a random 160-bit
> ID from the same space as infohashes, and then bootstraps its connection to
> the DHT network using hard-coded addresses of clients controlled by the
> client developer.

This sounds really quite like the process of creating a submarine, and
reaching out to the carrier ~zod. The fact that the init process is hardcoded
to trust ~zod doesn't change that you can really init your ship's filesystem
from any other ship, provided you can reach it.

Carriers are all found through the existing DNS infrastructure. Other ships
are able to be reached "in-band" by asking a carrier for an introduction.
Without this seed or hardcoded list (or by conducting a brute-force search),
or some kind of broadcast mechanism, bootstrapping a distributed network is
not actually possible.

~~~
roboben
Thank you very much for your long explanation. I really do care because I
really like the idea of this. (Even I don't understand everything for now)

The question is: Why is my pier not trying to reach any of the available
carriers then but only ~zod?

~~~
yebyen
Your submarine "needs" ~zod to be found by anyone because:

    
    
       try=> ->-<
       ... (your submarine)
       try=> (sein ->-<)
       ~zod
    

... ~zod is your parent ship. Without him, you simply have no forwarding
address.

If your batz wizardry is sufficient and ~zod is not there (both of these are
things that we are not counting on being true when you run Urbit for the first
time) you will still get the same result in your terminal, you can reach out
and contact other carriers and their friends, even without ~zod. They just
can't find you. And you need to find another way to bootstrap your clay
(filesystem) if you care about having local clay.

Think about the difficulty of coordinating multiple stakeholders, compared to
the ease of explaining the "benevolent dictator" model that most of computing
is really based on today. If the only thing that ~zod needs to do is point
submarines at one another and facilitate the existence of other signing ships
under his domain, that's very easy. Doing those things without ~zod's
cooperation will require some further thought and more explanation.

I am a carrier owner (~del) and I count on ~zod to make it easy for new subs
to find me. It's very convenient this way. But, anyone who knows how to type:

    
    
       :~del/main=/bin/hi ~dalnel
    

... can also reach out to my carrier and run "hi" (become mmy neighbor) to
find ~dalnel with my help, and exchange keys with him (~dalnel is the cruiser,
like ~zod's ~doznec).

~zod never needs to get involved. There is, however, no magic under the hood.
My carrier ~del works exactly the same way, except he is not preferred in the
same way by the submarine client implementation.

~~~
bufo
What about something inspired by SFS (see section 2.4 and 3.7 in this IPFS
paper)? [http://static.benet.ai/t/ipfs.pdf](http://static.benet.ai/t/ipfs.pdf)

~~~
yebyen
I will check it out. I was indeed hoping someone who knows the answer will
come along and say "haven't you heard about this..."

------
cwyers
"More specifically, Urbit is a personal cloud computer. Right now, the cloud
computers we use run OSes designed for minicomputers in the '70s. An ordinary
user can no more drive a Linux box in the cloud than fly an A320. So she has
to sit in coach class as a row in someone else's database. It's definitely air
travel. It's not exactly flying."

I doubt very much that the average person wants to either fly their own
airplane or manage their own cloud computers, no matter how simple you try to
make either of them.

~~~
lexcorvus
_I doubt very much that the average person wants to…fly their own airplane_

You don't think the average person would want to fly their own airplane if it
were as easy as driving a car?

~~~
cwyers
What's so easy about driving a car? Over 30,000 people die per year in the
United States due to automobile accidents. And that's after requiring every
driver get a license, and teaching basic driving skills as part of our high
school system. Driving a car isn't all that easy, and we're terrible at it.
There's a reason that Google is inventing self-driving cars, not personal
airplanes.

And the amount of possible simplicity is constrained by the problem you're
trying to solve -- you can't manage to make a plane as simple as driving a
car, because the car only has to navigate in two dimensions while the plane
has to navigate in three. If a car stops, the car's just sitting there,
whereas if a plane stops gravity is going to pull you down in a likely to be
fatal incident. You can't make a plane as simple to use as a car without
changing it into something other than a plane.

~~~
Jedd
I suggest the car / airplane analogy was already strained before we got here.

Driving a car _is_ easy, as evinced by the large numbers of people that are
capable of it. Whether driving a car successfully (ie. without dying) is easy
is obviously a matter for debate. With 0.000015% failing in this severe way,
it might be argued that driving a car and dying is not particularly common,
and could (no disrespect to the people involved) be thought of as a rounding
error.

We have no evidence that Google isn't trying to invent self-driving or
personal airplanes.

Try suddenly stopping your car on the autobahn, and see how tranquil the 'just
sitting there' experience is.

Anyway, perhaps we are all missing the underlying point - an overly
complicated solution (to an otherwise straightforward problem) has been the
received wisdom for decades, and a re-think from fundamentals is almost
definitely worth the effort.

~~~
cwyers
"Anyway, perhaps we are all missing the underlying point - an overly
complicated solution (to an otherwise straightforward problem) has been the
received wisdom for decades, and a re-think from fundamentals is almost
definitely worth the effort."

I don't know that the solution is overly complicated or that the problem is
straightforward. Think of every human being as their own little Y Combinator
startup -- everybody is their own little Me, Inc. Or Me, LLC. Whatever. Most
people follow SOME version of "outsource everything that isn't a core
competency." Like, it varies a lot from person to person -- some people go to
McDonalds, some people are making their own meals from ingredients picked up
at the local farmer's market, but very few people (not even most farmers) are
fully self-sufficient farm-to-table for most of their meals.

So as a result of this, most people don't think of their computer in terms of
it being a computer. And that's the most obviously computer computer they
interact with! There's all sorts of even more abstracted away computers they
deal with -- smartphones, cloud computers, etc. Most people don't care about
computers, and don't in and of themselves want computers. They want to do
things like "write a document," "share some family pictures with friends and
relatives," "play a video game," so on and so forth. For those people, not
only don't they CARE about HOW the computer is accomplishing those things,
they get very upset whenever they see the wizard behind the curtain. They want
all of those things abstracted away from them. From the point of the view of
the most typical use case, trying to make computers easier to use by making
sure the specification fits on a t-shirt seems to be rather besides the point.

~~~
Jedd
Sure, I entirely agree that there's a large spectrum of user types (or people)
out there.

You used the phrase 'most people' three times there to describe a quite likely
common user type for off-the-shelf consumables. I am quietly confident the
guys working on this are not targeting 'most people'. Or if they are, they are
quite candid about it not being ready for them yet.

~~~
cwyers
The analogy that kicked this all off:

"An ordinary user can no more drive a Linux box in the cloud than fly an
A320."

Maybe they aren't targeting most people, but if not, why are they talking
about the ordinary user?

------
JDulin
Oh, Urbit! Where to begin?...

First of all, this is staggeringly brilliant. You should pay attention to it
in the coming months. I am not sure if it's destined to be the future, but I
sure as hell hope it is.

I had the privilege of interning at Tlon, the company working on Urbit's
development, this summer. It owns most of the namespace (Personal cloud
computer IP addresses, essentially.) and is where the architect of the system
works full-time. They are funded, well enough, by VCs you know of. Urbit is
not really launched yet though - We spent the summer doing a lot of work
getting the network, file system, protocols, and application layer in
"Industrial grade" shape, and I believe more of that is happening this fall.

Because the system is still unlaunched and the docs are being retooled, I
imagine these pages are discombobulating. That's... expected. Urbit has a lot
of odd ideas that take time to appreciate. However, if you do take the time to
understand the motivation behind the design of everything from Hoon's
appearance to the network protocol replacement for TCP to the vision for
future social networks, you'll find some of the best and most complete
computer science research done in decades in networks, systems, and functional
programming. The essential idea is not an outlandish one - We need a new basis
of computing and networking to build digital identities with, and 1970s system
software is not up to the task.

It's unfortunate that ambition and a sense of humor can be misinterpreted as a
joke today. For now, you'll just have to take my word for it [1] that these
guys are deadly serious and have the technical chops to back up their
ambition. Future documentation and applications built on the OS should soon
make that more immediately evident.

[1] Or start reading the tutorials!

~~~
lumpypua
[https://github.com/urbit/urbit/blob/master/urb/zod/arvo/ames...](https://github.com/urbit/urbit/blob/master/urb/zod/arvo/ames.hoon#L470)

There are hundreds of lines of noise. This makes perl and forth look absurdly
readable. What on earth do the directory and file names mean?

I dunno how familiar people on HN are but the original author of urbit is
Mencius Moldbug, a neoreactionary blogger. His style of writing is absurdly
obfuscated and purposely impenetrable if containing some interesting ideas.
The exact same thing is true of urbit. Interesting ideas but obfuscated the
point of utter inaccessibility.

Here's sort of the wider group of blogs he philosophically aligns with:

[http://rationalwiki.org/w/images/d/d5/Scharlachs-
visualizing...](http://rationalwiki.org/w/images/d/d5/Scharlachs-visualizing-
neoreaction.png)

His views are likely unpopular around here but I am a fan of a bunch of those
other blogs, and I've tried to dive into Moldbug's blog Unqualified
Reservations a few times. It's kind of insane—the guy is clearly very
intelligent—yet writes in his own discursive style that is absolutely opaque.

~~~
MrBuddyCasino
He does have really odd political views. I know HN shouldn't be about
politics, but this was a really interesting read:

[http://www.thebaffler.com/blog/mouthbreathing-
machiavellis/](http://www.thebaffler.com/blog/mouthbreathing-machiavellis/)

It looks like he thinks that the benevolent-dictator-for-life model is how
countries should be run. And Peter Thiel seems to agree with him.

~~~
VexXtreme
They even seem to have a subreddit:
[https://www.reddit.com/r/DarkEnlightenment/](https://www.reddit.com/r/DarkEnlightenment/)

The whole "ideology" is basically just fascism and institutional racism
dressed up as something else. Despicable. I would never use any software from
some Hitler-reboot type of person. Don't empower and feed such people. They
are usually narcissistic megalomaniacs who think they are fit to rule and
tyrannize others.

~~~
lexcorvus
Before accusing someone of being a "Hitler-reboot type of person", perhaps you
should, you know, actually _read_ what they have to say about Hitler. For
example:

 _Since most people are neither historians nor philosophers, the fact that
Hitler was on the extreme Right, and this Reaction is also on the extreme
Right, raises some natural concerns. Again: the only way to face these
concerns is to (a) provide a complete engineering explanation of Hitler, and
(b) include an effective anti-Hitler device in our design._

—Mencius Moldbug, [http://unqualified-
reservations.blogspot.com/2009/09/gentle-...](http://unqualified-
reservations.blogspot.com/2009/09/gentle-introduction-to-unqualified.html)

In other words, an explicit design goal is to _avoid_ Hitler-like outcomes
(because, duh). Thus, the accusation that he's a "Hitler-reboot type of
person" reflects either simple ignorance—which you can fix by doing a little
reading—or outright mendacity—for which, I'm afraid, there may be no cure.

~~~
VexXtreme
I mean look, I understand what the philosophy is about, and I think it would
never work in the real world. We've learned time and again that entrusting a
lot of executive power to one person is a horrible idea - extremely
exploitable and subject to corruption.

Looks almost like a product of a deranged autistic mind. I have no interest in
such asinine "philosophies".

~~~
Padding
> I have no interest in such asinine "philosophies".

I bet no one does .. the real issue is how to decide on what is "asinine".
After all, why are your views and beliefs any more valid than any one else's?

~~~
VexXtreme
Normally I'd just tell you that I don't subscribe to moral and philosophical
relativism, but for the sake of this discussion, I will oblige in explaining
further.

First off, what is the definition of valid and correct? What is the metric
that makes a certain belief more "valid" than some other belief? Well, over
the millennia, we humans have arrived to certain definitions of what's good
and what's bad in the context of preserving life, civilization, society and
liberty. In that sense, things that harm those concepts can be defined as bad
and those that further those goals are good. History has shown, time and
again, that empowering one person with a lot of executive power inevitably
leads to tyranny, oppression, genocide, slavery and other completely horrible
things that we seem to have been able to get rid of (more or less).

So when someone rejects thousands of years of historical evidence as to what
happens with such regimes and where they eventually lead, and proposes
instating one again, I can only call it either asinine (if the author is well-
intentioned) or evil (if they simply want power over others).

In more practical terms, liberty, self-determination and self-ownership are
sacrosanct to a lot of people. In order to take those things away, you will
need a lot of people, guns and body bags.

------
marknadal
I really like the foundations of this, but I like design - how could I start
building a UX interface for this?

~~~
yebyen
Spoiler: there is already/about to be a new interface you haven't seen yet.

Do you mean the webshell, or the templating markup language? There is
something you might want to look at called "Sail"

Having trouble finding you a link, but there are some mentions about it here:

[https://github.com/urbit/urbit/search?utf8=✓&q=sail](https://github.com/urbit/urbit/search?utf8=✓&q=sail)

Ah..

[https://github.com/urbit/urbit/blob/master/urb/zod/main/pub/...](https://github.com/urbit/urbit/blob/master/urb/zod/main/pub/src/doc/sail-
moveme.md)

~~~
marknadal
and how long till Urbit can render marl marx and mane? aka how long till I can
make a UX using web technologies that runs on Urbit?

~~~
yebyen
All of that stuff works now. If you're asking how long until it's supported,
I'm not an employee of Tlon, so don't ask me. I can tell you that most of this
stuff is still very slow, even if it works.

Check out the demo app, you can click a button and increment a number on the
page, and it generates an event that gets reflected out (through some like
AJAX) through the server, back out to as many subscribers as are currently
viewing the page in their javascript-supporting browsers, happens almost
instantly.

I have to apologize I have no short instructions to get you to this demo, it
exists but I'm sure it may still rust more before it becomes a priority to
build things based on it. I'm not sure if you're meant to be impressed by this
demo, but there's also twitter API client you can use to tweet which is more
obviously useful if not quite as whiz-bang.

~~~
marknadal
Wait, woah. Really? How? Where? Any links that will point me in a direction
towards that demo app? Or even what it is named? How do I get started?

~~~
yebyen
Yeah, man. Fire up a pier and visit:

[http://localhost:8080/geg/demo](http://localhost:8080/geg/demo)

You'll find the code in your pier/ship/main/app/demo/core.hook

To reset the counter (wipe the app state), at your command-line, do:

    
    
       :wipe %demo
    

I just tested it, I can see that it still works, but like I said none of this
is guaranteed to go on working. It's all very alpha.

This is called a %gall app. It's always running because the %gall vane runs
the main/app/ apps in the background without intervention, like
radio/core.hook that runs the server for the :chat app. See you in :chat
maybe, if you have questions about how this works you will certainly be
welcome.

------
amelius
So let me get this straight. This project is going to define

1\. A new computing model, similar to how combinators work.

2\. A programming language which produces expressions involving these
combinators.

3\. An operating system built on the above.

4\. A cloud computing environment built on the above.

Sorry, but while interesting, this sounds a little too ambitious, even by HN
standards :)

~~~
gojomo
Here's an idea: maybe anyone accusing someone else of being "too ambitious"
should share one of their own projects that demonstrates exactly the right
level of ambition.

~~~
pyre
So in your opinion _nothing_ is ever too ambitious? Or is it just that no one
should every be allowed to utter the words "too ambitious?"

~~~
gojomo
No, some projects can be too ambitious, including even recklessly or
dangerously ambitious. But I'd rather hear that judgement from someone with a
reputation for appropriate, successful ambitiousness, and with some supporting
reasoning.

The grandparent comment comes from a pseudonym linked to no evaluable
projects. It offers a costless, totally-generic pooh-poohing of a real project
as "too ambitious". But that project is _actually shipping code that works_ ,
with 126 contributors, many with a known history of contributions in related
spheres.

Against that, the comment even uses an appeal to "HN standards"! As if, we
should all be discounting this sort of stuff, on its face.

I'd prefer "HN standards" encourage such ambition, backed with code – not
casually mock it with a ascii-smiley.

~~~
pyre
> But that project is actually shipping code that works

I get that this is more than just vaporware, but getting past the vaporware
stage doesn't necessarily prove that something isn't too ambitious. When
something is attempting to enact a paradigm shift, the final goal is
adoption/usage, not just a working/functional product.

~~~
gojomo
You seem to be using "too ambitious" as a synonym for "unlikely to succeed".
But that's something different.

"Too ambitious" implies someone _shouldn 't even be trying for this goal_.
That's a corrosive attitude, and I'd like it kept-in-check by a requirement
that sources of such negativity show their reasoning/experience/work.

