on master help sign in
posts, again
2b37913Galen Wolfe-Pauly
main/posts/address-space.md+3−3
@@ -4,17 +4,17 @@ type: post
4title: Address space
4title: Address space
5author: Galen Wolfe-Pauly + Curtis Yarvin
5author: Galen Wolfe-Pauly + Curtis Yarvin
6image: http://urbit.s3.amazonaws.com/16-3-10/blog-3.jpg
6image: http://urbit.s3.amazonaws.com/16-3-10/blog-3.jpg
7−preview: Urbit address space is like digital land.
7+preview: An overview of the Urbit address-space. Urbit address space is a new kind of cryptographic property, sort of like digital land.
8layout: urbit,post
8layout: urbit,post
9navmode: navbar
9navmode: navbar
10navdpad: false
10navdpad: false
11−navselect: blog
11+navselect: posts
12navpath: /
12navpath: /
13navhome: /
13navhome: /
14navclass: urbit
14navclass: urbit
15---
15---
16
16
17−# The Urbit identity model
17+# The Urbit address space and identity model
18
18
19## Basics
19## Basics
20
20
main/posts/company.md+20−22
@@ -1,21 +1,19 @@
1---
1---
2−sort: 6
2+sort: 8
3type: post
3type: post
4title: Company + Team
4title: Company + Team
5author: Tlon
5author: Tlon
6−image: http://urbit.s3.amazonaws.com/16-3-10/blog-5.jpg
6+image: http://urbit.s3.amazonaws.com/16-3-10/blog-6.jpg
7−preview: A bit about the company behind Urbit.
7+preview: A bit about who we are and how our company, Tlon, relates to Urbit the open-source project.
8layout: urbit,post
8layout: urbit,post
9navmode: navbar
9navmode: navbar
10navdpad: false
10navdpad: false
11−navselect: blog
11+navselect: posts
12navpath: /
12navpath: /
13navhome: /
13navhome: /
14navclass: urbit
14navclass: urbit
15---
15---
16
16
17−# Company + Team
18−
19## History
17## History
20
18
21In 2002 Curtis went down to his garage with a question in mind: can
19In 2002 Curtis went down to his garage with a question in mind: can
@@ -41,33 +39,33 @@ environment where thoughtful criticism can quickly turn into better
41design and better code. If you think you could be a good fit [send us
39design and better code. If you think you could be a good fit [send us
42an email](urbit@urbit.org).
40an email](urbit@urbit.org).
43
41
44−Galen Wolfe-Pauly
42+**Galen Wolfe-Pauly** <br />
45−Founder, CEO
43+Founder, CEO<br />
46Recommended reading: Samuel Beckett, Christopher Alexander
44Recommended reading: Samuel Beckett, Christopher Alexander
47
45
48−Curtis Yarvin
46+**Curtis Yarvin** <br />
49−Founder, CTO
47+Founder, CTO<br />
50Recommended reading: James C Scott, Ernst Junger
48Recommended reading: James C Scott, Ernst Junger
51
49
52−Anton Dyudin
50+**Anton Dyudin** <br />
53−Engineer
51+Engineer<br />
54Recommended reading: Asmiov
52Recommended reading: Asmiov
55
53
56−Philip Monk
54+**Philip Monk** <br />
57−Engineer
55+Engineer<br />
58Recommended reading: G.K. Chesterton
56Recommended reading: G.K. Chesterton
59
57
60−Henry Ault
58+**Henry Ault** <br />
61−Business / Engineer
59+Business / Engineer<br />
62Recommended reading: Joseph Heller
60Recommended reading: Joseph Heller
63
61
64## Investors
62## Investors
65
63
66We’re glad to have the support of some fantastic investors:
64We’re glad to have the support of some fantastic investors:
67
65
68−Andreessen Horowitz
66+**Andreessen Horowitz** <br />
69−FF Angel
67+**FF Angel** <br />
70−Tim Draper
68+**Tim Draper** <br />
71−Jan Talinn
69+**Jan Talinn** <br />
72−Ben Davenport
70+**Ben Davenport** <br />
73−Zhen Fund
71+**Zhen Fund**
main/posts/constitution.mdnew file+152
@@ -0,0 +1,152 @@
1+---
2+sort: 7
3+type: post
4+title: Interim Constution
5+author: Tlon
6+image: http://urbit.s3.amazonaws.com/16-3-10/blog-7.jpg
7+preview: The governing rules for the early days of the Urbit network.
8+layout: urbit,post
9+navmode: navbar
10+navdpad: false
11+navselect: blog
12+navpath: /
13+navhome: /
14+navclass: urbit
15+---
16+
17+## Motivation
18+
19+Our governance roadmap is this simple interim constitution.
20+
21+Urbit must eventually write its own constitution. But to write a
22+real, durable constitution, a legitimate convention is required.
23+Some proto-constitution is required to confirm that legitimacy.
24+
25+Like most new constitutions, this structure is a mix of Roman and
26+Anglo-American traditions. It is as simple as possible and not
27+optimized for scale or durability.
28+
29+## Urbit and this document
30+
31+Urbit is a new network created and owned by the Tlon Corporation.
32+Tlon's goal is to surrender governance of Urbit to its users, as
33+soon as this community is collectively ready to receive it.
34+
35+This constitution (which is not a legal contract, just a
36+description of our intent) describes our governance process
37+during this interim period.
38+
39+## Structure
40+
41+This governance structure is designed for maximum efficiency in a
42+young network. Its most important task is to replace itself when
43+it is ready to grow. It must also name itself.
44+
45+## Validity
46+
47+This constitution takes effect as soon as the initial public
48+presale of Urbit address space is complete.
49+
50+## Assets
51+
52+The 50 galaxies marked "urbit.org" in the galaxy table belong to
53+the republic, and will be used only in the interests of the
54+republic and Urbit as a whole.
55+
56+Once this republic acquires a legal identity, Tlon will also
57+grant this entity control over: the `urbit.org` domain; the
58+Github `urbit` account; and the first galaxy `~zod`.
59+
60+## Galaxy table
61+
62+Of the 256 galaxies, 95 are assigned to Tlon Corporation; 50 are
63+assigned to urbit.org; 40 are assigned to Tlon employees and
64+their family members; 34 are assigned directly to unrelated
65+investors in Tlon; and 37 are assigned to random individuals for
66+random reasons. Some of these "randos" donated money or
67+services; others were just in the right place at the right time.
68+
69+## Governance structures
70+
71+The interim republic has three branches: an executive consulate,
72+a passive senate, and an advisory assembly.
73+
74+The consulate has full authority, but must consult with the
75+assembly and keep it informed. The assembly is a legislative
76+branch which is learning its trade. The senate is a reserved
77+power with no role in governance.
78+
79+### Consuls
80+
81+A consulate is a two-person executive. If the consuls disagree
82+on a decision, and cannot agree on how to agree, they must flip a
83+coin.
84+
85+Consuls serve in pairs for a year. The first consuls are Galen
86+Wolfe-Pauly (a Tlon employee) and Raymond Pasco (a Tlon
87+contractor). A consul must be a senator; see below.
88+
89+### Senate
90+
91+The senate is the set of all galaxy holders, voting by galaxy.
92+The senate does not (at present) perform any real function,
93+except for one: it must ratify Urbit's next constitution.
94+
95+A role for the senate would be superfluous because, initially,
96+the will of the senate is the will of Tlon, and the consluls
97+
98+This is because, in practice, the will of the Senate is the will
99+of Tlon.
100+
101+<<<discussion of galaxy table here; need galaxy table!>>>
102+
103+To avoid growing the network too quickly, galaxies are activated
104+gradually. Initially, only one galaxy is active, the root `~zod`
105+(galaxy 0).
106+
107+Galactic certificates start with a hardcoded fingerprint in the
108+Ames source. If you have a keypair whose public key matches this
109+hash, you are a senator for all cryptographic purposes. If the
110+fingerprint is zero, a real-world identity is shown; if this is
111+your identity, we'll check in a fingerprint for you at any time.
112+
113+But `~zod` has the routing power to choose whether its network,
114+which is the whole network, routes to other galaxies. So the
115+consuls, who control `~zod`, have the power to decide whether
116+and/or when other galaxies can launch usable stars. There are
117+many reasons to keep the live network from containing vast
118+deserts of usable, but unused, address space.
119+
120+Except for Tlon galaxies, galaxy activation is at random. Tlon
121+can activate its galaxies whenever (because it needs to be able
122+to keep its lights on).
123+
124+### Assembly
125+
126+The *assembly* is the *set of all independent stars*. An
127+independent star is any star *not* owned by anyone who is also a
128+senator, or has a family or employment connection with a senator.
129+
130+In the long run, the mission of the assembly is to govern Urbit
131+with the consent of the senate. The vague idea of the
132+proto-constitution is that the assembly's power should increase
133+over time; at first, the consulate polls it; later, it gets a
134+veto; still later, it can propose its own measures; finally, it
135+elects the consuls.
136+
137+Since the consuls must still be senators, there is always a
138+balance of authority between consulate, assembly and senate.
139+This whole design is ripped off from ancient Rome, which after
140+all did pretty well with it. But again, it's just an idea;
141+Urbit will write its own constitution.
142+
143+### The next constitution
144+
145+Urbit's next constitution will be written by the assembly, under
146+the moderation of the consuls, for the approval of the senate.
147+This will happen when the consuls think it's ready to happen.
148+
149+Ideally, Urbit's constitution will be written in two languages:
150+English, and a smart-contract language such as Ethereum. Of
151+course, Ethereum can't enforce decisions; but it can count the
152+votes. And there's no excuse for not using it this way.
main/posts/magic.mdnew file+207
@@ -0,0 +1,207 @@
1+---
2+sort: 5
3+type: post
4+title: Magic
5+author: Curtis Yarvin
6+image: http://urbit.s3.amazonaws.com/16-3-10/blog-8.jpg
7+preview: A thought-experiment for understanding what the world with Urbit could look like.
8+layout: urbit,post
9+navmode: navbar
10+navdpad: false
11+navselect: posts
12+navpath: /
13+navhome: /
14+navclass: urbit
15+---
16+
17+It's easy to get too obsessed with Urbit's alien technology. We
18+didn't build Urbit for its tech. We built it for people to use.
19+
20+It's also hard to understand the power of Urbit, because it's
21+still quite immature. Unless you understand it already, it's
22+just a weird OS that doesn't work all that well.
23+
24+And this OS is supposedly designed as a new kind of product: a
25+personal server. What is a personal server? If you had one,
26+you'd know. Since you don't, you don't. So both your problem
27+and our solution are totally unclear.
28+
29+One way to understand Urbit is to forget the technology totally.
30+Instead, let's build the same product out of magic. Technology
31+is hard and imperfect and slow. Magic is easy and perfect and
32+fast. Why not use it? At least for a demo?
33+
34+## Magic step one: total integration.
35+
36+Make a list of all the cloud apps which have your personal data.
37+OK, just imagine making a list. OK, use magic.
38+
39+By magic, we make some giant company buy all these apps. It
40+could be any of them, but let's say it's Facebook. Facebook buys
41+*all the apps*. As of now, *all your cloud computing happens in
42+your Facebook profile*.
43+
44+Your Facebook is now your Dropbox and your Evernote and your
45+Wordpress and your Gmail. And it's not just Web apps; all your
46+servers move to Facebook. Your Nest talks to a Facebook server.
47+Your iPhone talks to Facebook instead of iCloud. Your Fitbit
48+records your heart rate in a Facebook log. Your Facebook
49+manages your finances and pays your bills. Got bitcoin?
50+Facebook is your wallet. Shop online? Check out the Facebook
51+Store -- it sells everything!
52+
53+In short, you can just lock your browser to `facebook.com`. The
54+Web is dead. Or more precisely, it's an obsolete protocol which
55+you use to log in to Facebook.
56+
57+Does this sound creepy? Sure. It's incredibly creepy. But look
58+on the bright side: it's also incredibly convenient. (And
59+incredibly secure, at least with a 2-factor key.)
60+
61+For the first time ever, *all your data is in one place*. For
62+example, the engineers at Facebook, who are awesome, would never
63+leave Dropbox, Instagram and iCloud as three separate things.
64+You don't need an "integration" between them. Your profile is
65+one thing: you. Your entire digital life.
66+
67+(In fact, if you're a geek and have Unix boxes, your Facebook is
68+magically integrated with Unix. You can just open your laptop
69+and type `ls /photos/2016/May/` -- as if your digital life was a
70+chip in a box in your backpack, not redundant servers in multiple
71+secure data centers.)
72+
73+Imagine we all lived in hotels, all the time, even in just one
74+city. Imagine you don't even have one room with a long-term
75+lease. You sleep in one pod Mondays, another on Tuesdays...
76+then, someone offers you a home. Your own house. With your own
77+furniture, your own books in your own bookcases...
78+
79+## Magic step two: free your data.
80+
81+The good news is, you get your own house. The bad news is, it's
82+in North Korea.
83+
84+Having your whole life owned by Facebook is still creepy. Or so
85+most people would think. It's not actually clear that it's more
86+creepy to be owned by one corporation, than nine corporations.
87+But it *feels* creepier.
88+
89+By magic, Facebook cares. So it decides to free you. Actually,
90+Facebook's business is owning you. So freedom will destroy its
91+business. But magically, Facebook doesn't mind.
92+
93+Right now, the software behind your Facebook experience is a
94+million lines of Facebook goo. It solves your problems and shows
95+your ads and does whatever the heck it wants with your data.
96+(Not that it's "your" data. It's Facebook's data, about you.)
97+
98+Without changing the functionality of your Facebook experience,
99+Facebook replaces every component of this goo with an "agent."
100+(You have about as many agents as you used to have apps.) If you
101+don't care about being free, you won't notice the change. If you
102+do care, everything changes.
103+
104+One, you don't have to run Facebook's agents. You can replace
105+them with anyone else's software, free or paid. Agents upgrade
106+themselves automatically, but you are never locked in; you can
107+always switch agents and/or vendors without damaging your data.
108+
109+Don't like your email UI? Change it. Don't like to see ads?
110+You no longer see any ads -- why would someone use an agent that
111+showed them ads? Ick. Unless it's something ridiculously
112+specialized, an agent is either free software or costs $3.99.
113+
114+Two, agents *act as you*. Facebook is no longer the Panopticon.
115+It is not a giant mainframe where all the code can access all the
116+data. An agent can use as much of your own data as you give it;
117+it cannot use anyone else's data. At least not without asking.
118+
119+When anyone can write an agent, only code can be law. Privacy is
120+no longer enforced by the informal decisions of Facebook product
121+managers. It must be enforced by formal security policies.
122+
123+This might constrict the services Facebook can offer, but only a
124+little. Since privacy is a human universal, apps that don't
125+respect it (for instance, image face tagging) feel weird. A
126+service like this can't be broken up into personal agents; it
127+still requires a Big Data mainframe somewhere. But it's okay;
128+the agents can still talk to it.
129+
130+For the most part, Big Data (everyone's) has become little data
131+(yours). You no longer have a Facebook profile -- a fancy UI
132+backed by a million lines of Facebook goo on one big mainframe.
133+Now what you have is a Facebook *server*: a real computer. Or at
134+least, a virtual computer (which is much more reliable than any
135+one physical computer).
136+
137+Is this computer hard to manage? You have the same basic job as
138+someone who owns an iPhone: deciding what software to run. If
139+you skip this job, your iPhone or your Facebook is still pretty
140+useful. You also need to decide what data to keep. An iPhone
141+has finite, free storage; the cloud has infinite, non-free
142+storage. You still want a warning when your server gets fat.
143+But at least it keeps working.
144+
145+## Magic step three: free your server.
146+
147+This agent-oriented Facebook can't show you ads. But this is not
148+actually a huge business problem. Since Facebook owns everyone's
149+life, it has the mother of all monopoly lockins. It can just
150+bill you $9.99 a month for running your Facebook server. This is
151+a great deal, for you and for Facebook.
152+
153+But you're still a slave, Neo. A Facebook server still isn't a
154+personal server. Monopolies suck.
155+
156+Magic works, so Facebook feels guilty. It goes all the way
157+toward freeing you, and ruins its own business.
158+
159+Now, your server is just a big file whose format is precisely
160+defined. You can move it to any hosting service, or even run it
161+on a home PC. Since hosting is now a commodity, it costs almost
162+nothing and has zero profit margin. It may even come bundled
163+with your Internet service.
164+
165+Every data center is owned by the local government. If you have
166+data to hide from the authorities, compute at home. Most people
167+don't have anything to hide and should run in the cloud, because
168+the cloud works better. But using the *same platform* as those
169+who do have something to hide creates "herd immunity". You don't
170+have to choose between a secure platform with no network effect,
171+and a non-secure platform that everyone else uses.
172+
173+## Magic step four: free your name.
174+
175+Freeing your server also means freeing your identity. It's no
176+longer true that Facebook decides who you are. Facebook just
177+wrote the algorithm. Your server contains cryptographic secrets
178+that control your identity. If your identity was a bitcoin, your
179+server would be a giant bitcoin wallet.
180+
181+The bad news: lose the file, lose the identity. The good news:
182+your server is genuinely personal now. It's yours in every way.
183+It's so personal that if you destroy it, it's gone.
184+
185+Facebook doesn't even keep its power to create new servers. The
186+"real name" policy has done great things to control spam, because
187+spam always depends on disposable accounts. But it implies a
188+central authority.
189+
190+Instead, Facebook borrows an idea from bitcoin and just limits
191+the number of identities. If you need one, you have to buy one.
192+They don't cost that much; just enough to deter spammers.
193+
194+(Is your real name still linked to your identity? Maybe, maybe
195+not. There's a role for name validation, but not everyone needs
196+to have a real name, and not everyone else needs to know it. A
197+dissident, or anyone who wants to speak out and let the words
198+speak for themselves, might want a second anonymous identity.
199+But sock puppets remain evil -- two names for the same person
200+should not interact in the same place.)
201+
202+## Magic step five: call it Urbit.
203+
204+And, with magic, we've succeeded in turning Facebook into Urbit.
205+Technically, Urbit is pretty close to magic, but there is no way
206+it's going to happen this way. See the [roadmap] for how it
207+actually happens.
main/posts/overview.md+12−11
@@ -4,17 +4,17 @@ type: post
4title: Urbit overview
4title: Urbit overview
5author: Galen Wolfe-Pauly
5author: Galen Wolfe-Pauly
6image: http://urbit.s3.amazonaws.com/16-3-10/blog-0.jpg
6image: http://urbit.s3.amazonaws.com/16-3-10/blog-0.jpg
7−preview: A simple system is easier to maintain, easier to develop for, and easier to understand.
7+preview: A high-level overview of Urbit. How the pieces fit together and what we think the future will look like as Urbit grows up.
8layout: urbit,post
8layout: urbit,post
9navmode: navbar
9navmode: navbar
10navdpad: false
10navdpad: false
11−navselect: blog
11+navselect: posts
12navpath: /
12navpath: /
13navhome: /
13navhome: /
14navclass: urbit
14navclass: urbit
15---
15---
16
16
17−# What Urbit is
17+## What Urbit is
18
18
19Urbit is a virtual city of general-purpose personal servers.
19Urbit is a virtual city of general-purpose personal servers.
20
20
@@ -188,12 +188,13 @@ Addionally, we're creating an open political and economic process,
188with a small, fixed-price public presale of Urbit address space. Join
188with a small, fixed-price public presale of Urbit address space. Join
189us and help make this future actually happen.
189us and help make this future actually happen.
190
190
191−To keep reading, go directly to the [presale page](); learn more about
191+To keep reading, learn more about [Urbit's address
192−[Urbit's address space](); share our vision of the Urbit user
192+space](../address-space); share our vision of the Urbit user
193−experience, from the [top down]() or the [bottom up](); check out the
193+experience, from the [top down](../vision) or the [bottom
194−[history]() of Urbit or the [development roadmap](); evaluate Urbit's
194+up](../magic); check out the [development roadmap](../roadmap);
195+evaluate Urbit's [beliefs and principles](../principles) or its
195−[beliefs and principles]() or its [interim constitution](); or learn
196+[interim constitution](../constitution); or learn [who we
196−[who we are]().
197+are](../company).
197
198
198−(For technical readers, check out our [developer documentation]() or
199+(For technical readers, check out our [developer documentation](/docs) or
199−the [CS paper]()).
200+the [CS paper](#)).
main/posts/principles.md+3−3
@@ -1,14 +1,14 @@
1---
1---
2sort: 2
2sort: 2
3type: post
3type: post
4−title: Mission statement
4+title: Beliefs + Principles
5author: Galen Wolfe-Pauly + Curtis Yarvin
5author: Galen Wolfe-Pauly + Curtis Yarvin
6image: http://urbit.s3.amazonaws.com/16-3-10/blog-2.jpg
6image: http://urbit.s3.amazonaws.com/16-3-10/blog-2.jpg
7−preview: To build human-centered, general-purpose tools for making, thinking and communicating.
7+preview: Where the motivation for building Urbit comes from and what guides its forward progress.
8layout: urbit,post
8layout: urbit,post
9navmode: navbar
9navmode: navbar
10navdpad: false
10navdpad: false
11−navselect: blog
11+navselect: posts
12navpath: /
12navpath: /
13navhome: /
13navhome: /
14navclass: urbit
14navclass: urbit
main/posts/roadmap.md+240−5
@@ -1,17 +1,252 @@
1---
1---
2−sort: 5
2+sort: 6
3type: post
3type: post
4title: Roadmap
4title: Roadmap
5−author: Galen Wolfe-Pauly
5+author: Curtis Yarvin
6image: http://urbit.s3.amazonaws.com/16-3-10/blog-5.jpg
6image: http://urbit.s3.amazonaws.com/16-3-10/blog-5.jpg
7−preview: What's next for Urbit: what we're working on and where we're headed.
7+preview: Our near-term goals for the Urbit community, documentation, maturity, utility and governance.
8layout: urbit,post
8layout: urbit,post
9navmode: navbar
9navmode: navbar
10navdpad: false
10navdpad: false
11−navselect: blog
11+navselect: posts
12navpath: /
12navpath: /
13navhome: /
13navhome: /
14navclass: urbit
14navclass: urbit
15---
15---
16
16
17−# In progress
17+# Urbit roadmap 2016
18+
19+Urbit is in early beta. It works. It doesn't work well enough to be
20+particularly useful, though it's not that far away.
21+
22+It's important to understand that the present Hoon codebase was
23+developed almost entirely by three full-time engineers (Curtis,
24+Philip, Anton). We are good, but not superhuman.
25+
26+We have four separate problems to attack in 2016: community, maturity,
27+utility, and governance.
28+
29+## Community
30+
31+Working on Urbit is incredibly fun. We've kind of bogarted that fun.
32+We're sorry -- no, we're not actually sorry -- but we're going to
33+change that.
34+
35+Since 2013, the community status of Urbit has been that it's open
36+source and you can mess with it if you want, but we don't really do
37+much to encourage you. Or to put it differently: open source,
38+secretly wishing it was still stealth.
39+
40+The sad truth is that we've been doing research, and research doesn't
41+scale. This is one of the reasons why open-source projects are
42+notoriously focused on copying proprietary products. Open source is
43+great for incremental maintenance and development -- almost nothing in
44+software is as mature as a mature open-source project, because "with
45+enough eyeballs, all bugs are shallow." But it's terrible for
46+creative research, because the smallest decisions invite the notorious
47+"bikeshedding" syndrome.
48+
49+Now that Urbit does all the things we want it to do, in (pretty much)
50+the way we want it to do them, our focus is changing. All we really
51+care about going forward is maturity and traction. Also, it's a lot
52+harder to argue about what color the bikeshed should be painted, if
53+the bikeshed is already painted.
54+
55+So, working on Urbit is incredibly fun. If only because it's the
56+programmer's equivalent of astrobiology. But not only because --
57+Urbit is very far from being a mere esoteric curiosity.
58+
59+The first challenge we face is making sure Urbit is properly
60+documented. (See below.) We'll also be:
61+
62+- holding weekly public meetings / office hours maintaining public
63+- developer blogs (probably) running open contests with address-space
64+- prizes
65+
66+## Maturity
67+
68+At the systems layer, Urbit has enough features for right now. What
69+it needs is maturity.
70+
71+Aside from mere bugs and issues, maturity comes in five flavors:
72+documentation, dogfooding, optimization, security, and testing.
73+
74+### Documentation
75+
76+Anyone outside the core team who's done any serious work in Urbit has
77+earned their scout badge in Reverse Engineering. The number of people
78+who have done this is impressive, but also slightly embarrassing.
79+Since Urbit is so technically unusual, we have no excuse for leaving
80+any part of it undocumented.
81+
82+Documenting Urbit is not just a matter of writing down specifications
83+for the code as it exists. That would be easy if the code was
84+perfect. It's not perfect.
85+
86+One truism of CS is Knuth's observation that "premature optimization
87+is the root of all evil." Yes, but premature documentation is at
88+least the trunk of all evil. "Documenting into existence" -- making
89+something that doesn't exist exist, by describing it -- is the trap of
90+all vaporware projects.
91+
92+On the other hand, Urbit does exist. It doesn't need to be documented
93+into existence. It does needs to be documented into completion. This
94+doesn't mean simply describing the codebase.
95+
96+Documenting to completion is a two-way process. It always produces a
97+nontrivial set of technical revisions. Large design questions are not
98+open for discussion, but small ones are. This makes documenting to
99+completion a fun and fascinating community process, which neither
100+reduces to mere stenography, nor descends into endless bikeshedding.
101+
102+Nock is completely done, and completely documented. Hoon still has a
103+few small rough spots; its reference documentation is decent but not
104+perfect; its tutorial documentation needs more work, but is reasonably
105+adequate.
106+
107+The real target of documentation into completion is Arvo (including
108+the Hoon library). The ideal point at which to prepare stable
109+documentation is the point Arvo is at now: basically working, but
110+largely undocumented.
111+
112+Since Hoon is a programming language for Arvo, not for Unix, Hoon
113+documentation without Arvo documentation remains mostly useless -- so
114+we've got a strong incentive to get this done. But not without
115+actually getting it right.
116+
117+### Dogfooding
118+
119+Urbit has no alternative but to dogfood itself into maturity. If the
120+Urbit team itself doesn't solve some problem with Urbit, who else can
121+be expected to? Any use of any external tool in the Urbit development
122+process is a damaging energy leak.
123+
124+We already use Urbit to publish documents about Urbit, to chat about
125+Urbit, and of course to deliver Urbit updates. With this release,
126+we're adding a public chat stream and public comments.
127+
128+The next dogfooding steps: using Github as a backup to Clay, not Clay
129+as downstream from Github; our own internal issue tracker; and
130+replacing internal email with long-form `:talk` messages.
131+
132+### Optimization
133+
134+You'll notice that some aspects of Urbit are slower than you might
135+expect. This is because of our approach to optimization, which is to
136+throw some elbow grease at it when it gets annoying.
137+
138+Death by unsolvable slowness is a common cause of mortality in
139+language-oriented projects like Urbit. But Urbit actually has two big
140+advantages in optimization.
141+
142+First, our profiler is simple, but quite effective, because it's
143+integrated with the language and runtime at a level usually not found
144+in profilers. Second, anything that's slow can be jetted; as long as
145+there's an inner loop, that inner loop is vulnerable to anyone who can
146+write C. And there's always an inner loop.
147+
148+### Testing
149+
150+There is plenty of design work to be done in even figuring out how to
151+systematically test Urbit.
152+
153+We've done appallingly little systematic testing. We've mostly relied
154+on simplicity and elbow grease to get the system to the reliability
155+level it's at now. `~zod` has been up for a few months and has a 22GB
156+event log. There's no reason to think that if we replayed that log,
157+we'd end up with any different bits.
158+
159+Simplicity buys a lot. Urbit is not always as simple as we want it to
160+be, though. There are plenty of known bugs; and we're nowhere ready
161+to declare Urbit ready for mission-critical data.
162+
163+### Security
164+
165+Urbit is not yet secure at all. We don't even think it's secure. And
166+this is just the first step in making it secure. After that comes an
167+independent audit and penetration testing.
168+
169+## Utility
170+
171+However much we want Urbit to succeed because we're geeks and love
172+functional programming, it can only go somewhere by being useful -- to
173+people who don't care about the technology. Moreover, even for geeks,
174+the amount of fun in working on something that's permanently un-useful
175+is quite limited.
176+
177+What is Urbit? Urbit is a general-purpose personal server whose
178+long-term goal is to replace the whole web-service ecosystem. The
179+long term takes a long time by definition and is always preceded by
180+the short term.
181+
182+Fortunately, Urbit isn't that far from being useful in the short term.
183+Three directions we're pushing in: APIs, publishing, and distributed
184+chat. Urbit is a general-purpose system, of course, and it's very
185+hard for us to know what "killer app" will catch on first. It might
186+not even be any of these.
187+
188+### API aggregation
189+
190+It takes a long time to replace Facebook -- or any other mature Web
191+service. But most of these services have APIs. Early in its life,
192+your general-purpose personal server puts most of its energy into
193+controlling special-purpose personal servers.
194+
195+The use case seems a little trivial, but Urbit is actually a great API
196+client. An API client is stateful; it has keys and tokens to manage.
197+And APIs are notoriously unstable, which requires over-the-air
198+hotpatches, which Urbit is quite good at.
199+
200+Also, having your own personal API token on your own personal server
201+is enormously empowering. Most services make it quite easy to
202+register yourself as an "app." Unlike a third-party startup, this "me
203+app" doesn't have to obey any TOS constraints on user experience.
204+
205+For example, if you build an API-driven web service that shows an
206+integrated Facebook and Twitter feed, your API key will be revoked.
207+If you write an Urbit app that delivers the same experience, so long
208+as users bring their own API keys ("BYOK"), nothing bad will happen.
209+It's good for adoption when Urbit can present a user experience that
210+nothing else can.
211+
212+Another area we're focusing on is using Urbit as a shim to put your
213+Unix box in control of your API-driven services. With Urbit and FUSE,
214+you can actually mount remote services in your filesystem. Our first
215+prototypes of this are quite exciting, though they could use some
216+optimization.
217+
218+API drivers are also a great area for people to contribute code to
219+Urbit. There's an almost infinite number of drivers to write, each of
220+them is slightly different from the others,
221+
222+### Personal publishing
223+
224+If you put it behind nginx, Urbit already works quite well as a
225+personal publishing tool. You can copy a tree of Markdown files into
226+a directory and have a website or a blog. There's no reason why a
227+well-cached functional publishing system shouldn't replace a static
228+site generator.
229+
230+Key features we need for Urbit publishing: Let's Encrypt support for
231+people who need their own secure domains, and a DNS server in stars so
232+that `planet.urbit.org` doesn't have to be proxied.
233+
234+### Decentralized chat
235+
236+A lot of people want an encrypted, decentralized, persistent chat
237+network. Urbit already is this, though its human interface is nowhere
238+near as refined as a marvelous product like Slack.
239+
240+Urbit needs chat because it needs to talk about itself. But the most
241+mature parts of Urbit will always be the ones we dogfood, and chat is
242+central to this list.
243+
244+Can Urbit gain traction as a messaging platform alone? It's certainly
245+conceivable. It's difficult, to put it mildly, to understand what
246+makes one messaging network more popular than another. Ideally,
247+someone who cares deeply about decentralized messaging would take this
248+ball and run with it.
249+
250+## Governance
251+
252+See the [interim constitution](./constitution).
main/posts/vision.md+3−3
@@ -4,11 +4,11 @@ type: post
4title: What is Urbit for?
4title: What is Urbit for?
5author: Galen Wolfe-Pauly
5author: Galen Wolfe-Pauly
6image: http://urbit.s3.amazonaws.com/16-3-10/blog-1.jpg
6image: http://urbit.s3.amazonaws.com/16-3-10/blog-1.jpg
7−preview: Urbit is a general-purpose platform, but we know where to start.
7+preview: We didn't build Urbit just because it's fun to work on. We built Urbit because we think it can unlock new potential products. Here we take a tour through some of these possibilities.
8layout: urbit,post
8layout: urbit,post
9navmode: navbar
9navmode: navbar
10navdpad: false
10navdpad: false
11−navselect: blog
11+navselect: posts
12navpath: /
12navpath: /
13navhome: /
13navhome: /
14navclass: urbit
14navclass: urbit
@@ -196,4 +196,4 @@ great exploration of what this future may look like. For the
196industrial enterprise there’s a whole other set of parallel problems:
196industrial enterprise there’s a whole other set of parallel problems:
197tracking inventory, controlling a vast array of machines, and managing
197tracking inventory, controlling a vast array of machines, and managing
198logistics. In both cases we need a decentralized network and
198logistics. In both cases we need a decentralized network and
199−computing platform. Urbit is up to the task.
199+computing platform. Urbit is up to the task.