on master help sign in
Merge branch 'master' of https://github.com/urbit/urbit.org into grants
a87cb53Tyler Brown Cifu Shuster
content/blog/community-spotlight-the-portico.mdnew file+137
@@ -0,0 +1,137 @@
1++++
2+title = "Community Spotlight: The Portico"
3+date = 2021-05-04
4+description = "Interview with The Portico founder Josh Reagan"
5+[extra]
6+author = "~tirwyd-sarmes"
7+ship = "~tirwyd-sarmes"
8+image = "https://media.urbit.org/site/posts/essays/orthodoxchurch.jpg"
9++++
10+
11+![](https://media.urbit.org/site/posts/essays/orthodoxchurch.jpg)
12+
13+*One of the most striking things about Urbit is the ideological diversity between communities. The Community Spotlight blog series will focus on various Urbit communities via interviews with founding members.*
14+
15+For the first week of the Community Spotlight series, I (~tirwyd-sarmes) will be speaking with Josh Reagan (~taglux-nidsep). Josh is the founder of The Portico, an Urbit community of Eastern Orthodox Christians.
16+
17+The Portico is a very active group with conversations taking place over multiple channels. There are channels for posting Orthodox iconography, discussing the broader Christian culture war, and just talking about Orthodoxy in general. Of particular interest is Josh’s “Euthyphro” blog series which investigates the relationship between logic and the Orthodox faith. This is a topic that Josh is well qualified to talk about: he has a PhD in Philosophy from Rice University. His dissertation on the epistemology of logic and truth-preservation was titled "Knowing Your Limits: Logic for Limited Beings”. Josh is also the co-author of a forthcoming textbook on formal logic.
18+
19+To read Josh’s blog is to be inducted into two esoteric traditions: theory of logic and Orthodox theology. With titles like “St. Gregory the Theologian and the Liar Paradox” and “The Existence of Abstract Objects”, Josh does not pull punches.
20+
21+Accordingly, our conversation focused on the idiosyncratic and niche community that The Portico is home to. There, you won’t find cussing or much talk about “life partners”, but you will find cutting critiques of liberalism and the best way to raise Orthodox children.
22+
23+As other users have pointed out, Urbit is pre-[Eternal September](https://en.wikipedia.org/wiki/Eternal_September). In fact, there’s some hope that the very nature of Urbit, how it tries to protect the sovereignty of niche communities via decentralization, might foil the Eternal September phenomenon. If Josh’s community persists, it will be a testament to both Josh and the decentralized Urbit network. As of now The Portico is a refreshing, perhaps jarring (as Josh might say), reminder of what the internet looked like back in the early days—a place for those who are different.
24+
25+I encourage you to take a look. Find The Portico at ~topnup-firber/the-portico.
26+
27+\-\-\-\-
28+
29+**Do you see any connection between Rod Dreher’s *The Benedict Option* and your community on Urbit? Dreher sees a need for American Christians to create self-sustaining communities outside of the mainstream to protect the Christian religion and culture.**
30+
31+It’s tough to say with certainty—I’ve never read *The Benedict Option*.
32+
33+A few years ago, while he was writing the book, I was a regular reader of Dreher’s blog. From his descriptions there, I was never clear about what exactly he was proposing. Much of his “clarification” came by way of metaphor: don’t “run for the hills”, but stop “shoring up the American imperium”. I didn’t read his book because I didn’t have much confidence that he would be especially precise or insightful.
34+
35+[There is an interesting review I’d recommend](https://handleshaus.wordpress.com/2020/10/06/review-of-rod-drehers-live-not-by-lies/), however, of his later book, *Live Not By Lies*. I believe it accurately characterizes the scale of the threat Christians will soon face in this country.
36+
37+My upbringing was conservative Christian and self-consciously counter-cultural. I've inherited that understanding of what it means to be a Christian in an increasingly secular world. It comes naturally to me, so I find it obvious that Christians should form self-sustaining communities. But the details matter. What do such communities look like? How do we secure the freedom to pursue such communities? How do we sustain them, when myriad external forces seek to undermine them? How do we solve the long-term problem of the declining cultural importance of Christianity (which surely erodes the plausibility of our religion to many, even to some of those with sympathies toward it)?
38+
39+I don’t claim to know the answers to these questions.
40+
41+One kind of answer is that we should redouble our efforts to support and maintain a religiously and morally neutral liberal political order, which leaves room for subcultures to live and self-regulate as they wish. I disagree. Those who support a kind of “neutral” liberalism view it as an attempt to go “meta” and rise above various parochial metaphysical, moral, and religious disputes. I view this as a cop-out, a refusal to grapple with the most important questions.
42+
43+Does the liberal have metaphysically-rooted moral reasons for going “meta”? If so, then he’s just another sectarian and he should be honest about it. The only difference is that his team has had the whip hand for the last several generations. On the other hand, if the liberal claims no underlying metaphysical justification then his project can succeed only to the extent that he can arrange and adjudicate unprincipled (and therefore ad hoc) agreements between otherwise hostile moral communities. But how stable can such an arrangement really be?
44+
45+Orthodox Christians have theologically rich, metaphysical foundations for their social and moral teachings. With these we can form healthy, thriving, and growing communities. We can do so even under actively hostile political orders. If the early Church could make it under the Romans, so can we today. But it’s going to be difficult and sound judgment is necessary. Unfortunately, we lack strong leadership and that leaves us vulnerable. If we stay uncoordinated we dissipate our energies needlessly. If we latch onto the wrong leaders we can be led astray.
46+
47+The challenges are immense. There is no technological solution. Even so, I’m an Urbit early-adopter for a reason. Over the years I’ve come into contact with a number of Orthodox and Ortho-curious Urbit followers. Why not try to bring them together in an Urbit group?
48+
49+As far as I know, no one in the group is clergy. We’re all just a bunch of laymen with no authority to do much of anything. But I’d like to think we can still contribute in some way. I have an academic background in analytic philosophy so my inclination is to emphasize theory, but we have room for a bit of everything. Someone in the group wrote a script to take the texts of various Church Fathers and convert them to audio using AWS Polly. Those turned out pretty well!
50+
51+At times I entertain ambitions to do a bit more, but for now perhaps it’s better to keep expectations in check. If nothing else, we can read and discuss the Scriptures and Church Fathers together, and try to understand better how to apply and live out their teachings. As we continue to grow the community and develop a consistent internal dynamic perhaps opportunities will arise that aren’t yet on the horizon. One thing I can say is that I’m committed to keeping the group active and growing.
52+
53+**I’d like to talk about your blog on The Portico. It combines two of your main interests: logic and theology. In broad strokes, do you think theology and logic are compatible? What is the relevance of this intersection to both of these disciplines?**
54+
55+I feel obligated to answer this question in two ways.
56+
57+(1) If by “logic” you mean “first-order predicate calculus”, then I think there’s no special conflict between logic and theology. There are certain puzzles about their relationship, but similar puzzles exist between logic and other disciplines. Theology isn't especially endangered.
58+
59+For example, in the 1930s, Alfred Tarski proved his famous Undefinability Theorem. Crudely put, it says that a plausible truth predicate cannot consistently be contained in any formal system with axioms strong enough to model arithmetic. Superficially it seems like our options are (a) get rid of the concept of truth, (b) get rid of arithmetic, or (c) throw away parts of logic until all inconsistency disappears.
60+
61+None of these options is appealing. Tarski came up with a solution that mostly satisfies many logicians: reduce the concept of truth to “truth in a language” and forbid any language from containing its own truth predicate. If you want to talk about truth in a language L-1, you have to do it from a “metalanguage”, L-2.
62+
63+Is Tarski’s definition of truth in a language the definitive solution for preserving truth, math, and logic? Perhaps not many philosophers think so, and there’s a massive literature in which logicians have attempted to improve on or extend his results.
64+
65+Sometimes people seem to think formal logic is an infallible gift from heaven that must always be right. Kant said in the *Critique of Pure Reason* that formal logic is essentially a completed field. In fact, [the logic of his day](https://en.wikipedia.org/wiki/Port-Royal_Logic) was an early-modern Cartesian variation of a medieval scholastic synthesis of ancient Stoic and Aristotelian logics. Roughly 100 years after Kant’s first critique was published, C. S. Peirce and Gottlob Frege independently discovered first-order mathematical logic as we know it today, inaugurating the greatest advance of logic since Aristotle. Kant was wrong.
66+
67+Mathematical logic is a convenient, generally reliable, man-made tool that, when used carelessly in certain untamed domains, can lead one astray. Probably most people reading this are familiar with such puzzles as the Liar paradox. When one understands that logic is not a completed science, and perhaps never will be, there is less reason to worry about whether it can be used to nuke entire disciplines, like theology.
68+
69+For more on this topic, see the blog post in my Urbit group: “St. Gregory the Theologian and the Liar Paradox”.
70+
71+(2) There is perhaps a deeper challenge than the one I’ve just sketched. The Stoics used the term “logic” to encompass what we might today call “epistemology”. If the word “logic” is meant in some such broad and normative sense, then we may restate the challenge as one about rationality and theology. Is it irrational to pursue theology in our modern age?
72+
73+As an undergraduate under the influence of Kierkegaard, I was attracted to a romantic, vaguely irrationalist notion of faith. Dawkins-mania was at its peak and I was disgusted by the pop-rationality (or was it empiricism?) of his annoying followers. Their view seemed to be that rationality just means “following the evidence”. The raw evidence is foundational, and theories are built atop by generalizing from the evidence. The ghost of logical positivism is with us even now.
74+
75+I was dimly aware that Quine and others had made it difficult to sustain epistemic foundationalism. However, being unable to supply a more clear and cogent notion of rationality, I became skeptical of the idea altogether. But I went too far.
76+
77+Instead, the proper response is to develop a superior account of rationality. Readers can probably guess where I went looking!
78+
79+The word “logic” comes from the Greek “λόγος”. This is also the word used to describe Jesus Christ in the Gospel of John: “In the beginning was the Logos, and the Logos was with God, and the Logos was God.” This connection is not merely etymological.
80+
81+For many ancients, the term “λόγος” meant something like “divine principle”. You might think of it as akin to a law of nature, but with stronger theological connotations. Christians appropriated this term and made it rather more exalted: the Logos is begotten of the Father, and yet somehow one with Him.
82+
83+We are told that all things come into being through the Logos (John 1:3), giving Him an intimate relationship to the whole of creation. He gives structure and order to all created things, and in His divinity He understands them as so structured and ordered. He is also sinless, perfectly holy, and good. In Christ we have a perfect unity of the knowledge of all truth and righteousness.
84+
85+Man was created in the image of God, which means that we bear a likeness to Christ. And we are commanded to realize that likeness with ever greater fidelity (Romans 8:29). The Church calls the pursuit of this likeness [“theosis”](https://en.wikipedia.org/wiki/Theosis_(Eastern_Christian_theology)).
86+
87+Thus we have the explanation of all normativity, according to Orthodox Christianity. In moral matters we must take on the holiness of Christ. In epistemic matters we aspire to the wisdom and knowledge of Christ, which includes an understanding of the whole created order. Socially we (the community of believers, i.e. the Church) are called to be in ever greater communion with God, cooperating with His work just as the Son cooperates with the Father.
88+
89+Sadly we are conceived in sin and ignorant; hence the need for redemption by Christ.
90+
91+Accordingly, my understanding of what it means to be rational is just to be Christ-like. The only perfect exemplar of reason, so construed, is Christ Himself. Any deviation from Him is irrational. What could be more logical than to be conformed to the Logos? But we cannot attain rationality without redemption. Hence we cannot become rational without first being saved from sin.
92+
93+Doubtlessly many will find all of this too much to take, just too implausible. What about the development of mathematics, or the advances of the sciences? These are canonically ennobling, intellectual achievements. Jesus wasn’t a mathematician or a scientist! Nowhere in the Scriptures is He recorded as having applied Bayes’ theorem.
94+
95+Undoubtedly my construal of rationality de-emphasizes the pursuit of knowledge by labeling it as merely one of several normative ends. To seek knowledge without seeking holiness is to be understood as dangerously unbalanced. To try to attain holiness and knowledge without communion with God is arrogant.
96+
97+On the other hand, we need not exaggerate matters. St. Paul affirms the need for specialization of labor within the Church (1 Cor. 12). There is room for some to specialize in intellectual endeavors, so long as they act in a cooperative setting in which the other virtues are pursued as well. (Nor should anyone neglect the development of such virtues in himself.) Mathematicians and physicists are more than welcome in the Church.
98+
99+According to this (all too briefly put) theory of rationality, there can be no conflict between ‘logic’ and theology. Theology is compatible with rationality because the account of rationality in question derives from a theological tradition. Naturally I’ve only given a sketch; much more could be said. But even if some readers are put off by the theory presented here, I hope it’s at least clear that there are conflicting notions of rationality. Anyone who wants to be rational confronts the task of figuring out which theory of rationality is correct.
100+
101+**In terms of community moderation, The Portico follows norms that are quite different than other online communities, often times quite drastically. For instance, living with women that you are not married to, is not something that should be talked about lightly. Can you talk about the importance of norms and how they relate to a healthy community?**
102+
103+Orthodox Christians are not commanded to “get along” with the rest of the world (John 15:18-25). We’re different, and our norms of interaction should likewise differ from those of outsiders. There is no one, monolithic “Orthodox culture”, but there are standards governing which local expressions of culture are legitimate and which are sinful. We should live in a way that enables and promotes holiness and discourages sin.
104+
105+We have rules that may seem unusual from the outside. I don’t permit profanity, lewd jokes, or irreverent comments about God. In your question you mention a living arrangement that is prevalent in the world. Another rule I have is that we shouldn’t talk causally about sinful practices or lifestyles as if they are unremarkable parts of ordinary life. If Orthodox Christianity is true then such things aren’t minor peccadilloes. They’re spiritually destructive. The marriage-bond sanctifies activities that would otherwise be sinful.
106+
107+If someone wants to analyze what is destructive about men and women living together before marriage, we’re open to that. But if you want to be affirmed in your sin, we’re not the place for you. Anyone of any religious creed is welcome to show up—but as a guest in an Orthodox Christian community. Hosts should be courteous to guests, but my first priority is not to make you feel good about your choices. We’re here to encourage each other, learn, and grow spiritually as Orthodox Christians. Naturally that means a little gate-keeping may sometimes be necessary if someone ever comes along who doesn’t share those goals. Being different is difficult and takes work.
108+
109+In a way the cultural contrast is meant to be jarring. It can force you to confront moral and cultural presuppositions that you didn’t even know you had. When you become aware of the wider choices of culture available to you, you become free to look with a critical eye on the culture you’ve hitherto taken for granted. I think anyone could see how that might be liberating, even before considering the particulars of the cultures in question. Of course, as an Orthodox Christian, I think we have a good case to make about the particulars of our subculture.
110+
111+I’ve never had to kick or ban anyone from the group. The group is relatively small (~180 people at the moment) so that probably helps. The vast majority of conversations are relaxed and friendly. Occasionally there are intense debates about one issue or another but I enjoy it, as long as it doesn’t become bitter or the primary mode of discourse. But everything ought to be done in a spirit of truth-seeking, not of one-upmanship.
112+
113+**The fact that The Portico can exist side-by-side with atheist communities on Urbit is pretty striking. On Urbit, a user is able to create niche communities and governance structures and yet still participate in a larger network. In other words, Urbit is trying to thread the needle between sameness and difference through federation at multiple levels. It seems to me that modern culture has become homogeneous due to an inability to maintain, or distinguish between, different communities. People who have nothing in common are forced to engage as if they were roommates, while those who are similar have trouble creating their own home. In other words, what is the role of community formation in the modern world and how does it connect to your critique of liberalism? Does Urbit have anything to say about this?**
114+
115+As I said in an earlier response, I see the liberal project as more or less an attempt to sidestep (not solve) difficult metaphysical and religious disputes between various distinct moral communities. Liberals have tried several methods of governance to achieve their ends. We can divide such attempts into two broad categories: centralized and decentralized.
116+
117+Social media companies in the US confront similar governance challenges, so we can analyze them in similar terms.
118+
119+A social network like Facebook takes a centralized approach. Zuckerberg spoke early and often of his desire to connect people and “bring the world closer together”. There was a sense that if people from various communities could get to know each other a little better, we would see how much we have in common and make progress toward some kind of universal cosmopolitan consensus.
120+
121+But that didn’t happen. With centralized social media you’re practically guaranteed to interact with people whose moral and metaphysical commitments are sharply at odds with your own. As a result, you face a persistent, nagging risk of conflict. Without warning, a friendly disagreement can explode into an all-out flame war. Most choose one of two basic approaches for dealing with this threat:
122+
123+(1) You live a compartmentalized life. You keep your moral and metaphysical commitments to yourself and cultivate a culturally homogenized persona for your social media activities. No one disagrees with you because there’s nothing to disagree with.
124+
125+(2) You can enlist to fight in the culture war and display your regimental colors with pride. And because you take your smartphone everywhere you’re always on the front line.
126+
127+These aren’t the only options, of course. With some combination of charisma, patience, and grace you can be relatively open about your beliefs without getting into too much trouble. But even if you have the talent to pull it off, it takes time and energy. Many of us aren’t willing to go to all that trouble. Social media is supposed to serve us, not the other way around.
128+
129+Urbit is decentralized which, in my opinion, means that it isn’t really a network in the way that Facebook is. I see Urbit as more of a network platform. The users create the networks, or migrate them in from elsewhere. We’re all using Landscape and running our VMs on Nock, so obviously there can be interaction between different communities. But anyone who doesn’t want that cross-community interaction doesn’t have to have it.
130+
131+I’ve followed Urbit’s progress since 2016, so I’m plugged into groups with other Urbit people I’ve come to know over the years. Other than that, however, I don’t know much about who’s out there. It’s not like The Portico is in one neighborhood and the atheists are in the next neighborhood over. There’s a real sense in which we’re not even on the same network—different Urbit communities share a common protocol, but a protocol isn’t a network.
132+
133+Some people may want to see a little of everything. If atheists want to join our group they’re welcome to do so! We’ll be friendly. I don’t seek out their groups, though.
134+
135+One virtue of decentralized social media is that it offers a totally different set of trade-offs with respect to how you share and act on your beliefs. What if you could talk earnestly about philosophy and religion without having to worry about alienating many of your friends and family? I guess that’s somewhat possible on Facebook—do they still have “groups”?—but Urbit was designed for it.
136+
137+Having said all that, I don’t think decentralization is a panacea. Even if Urbit takes off, it will likely face problems that are difficult to anticipate now. My hope is simply that Urbit’s trade-offs are healthier than the ones we’ve had before.
content/blog/iot.mdnew file+448
@@ -0,0 +1,448 @@
1++++
2+title = "Lunar Urbit and the Internet of Things"
3+date = 2021-04-30
4+description = "Potential future use cases of moons for industry and consumers"
5+[extra]
6+author = "Jonathan Paprocki"
7+ship = "~datnut-pollen"
8+image = "https://media.urbit.org/site/posts/essays/phobos.jpeg"
9++++
10+
11+<br>
12+
13+![phobos](https://media.urbit.org/site/posts/essays/phobos.jpeg)
14+
15+<br>
16+
17+Each of the ~4B 32-or-fewer-bit or [Azimuth](@/docs/glossary/azimuth.md)
18+identities, namely [planets](@/docs/glossary/planet.md),
19+[stars](@/docs/glossary/star.md), and [galaxies](@/docs/glossary/galaxy.md), may
20+spawn ~4B 64-bit child identities known as [moons](@/docs/glossary/moon.md).
21+Moons are the undeveloped wild outback of Urbit, with a story waiting to be told
22+that promises to be as enormous in scale as the cloud personal computing story
23+told by planets, and possibly even more so.
24+
25+Throughout this piece, we use "Earth" and "Mars" in the Urbit sense. "Earth"
26+refers to the [current computing
27+paradigm](https://en.wikipedia.org/wiki/Big_ball_of_mud). "Mars" refers to the
28+perfected computing paradigm that Urbit aspires to be, but also to the current
29+and future state of Urbit.
30+
31+Today we will review the prehistory of moons on Earth, give a snapshot of how
32+moons are being utilized on Urbit in 2021, cover existing issues with consumer
33+IoT and how Urbit resolves them, and speculate what the lunar locus of the Urbit
34+ID address space may become in the future. To keep the futurist scope limited,
35+we primarily speculate on the usage of moons in (industrial) internet of things
36+settings, especially with respect to agriculture, and how they may manifest as
37+the workhorse collection unit of decentralized data markets.
38+
39+For those unfamiliar, moons differ from all other
40+[ships](@/docs/glossary/ship.md) in that they are not independent identities
41+with total sovereignty over their data and keys. Instead, their cryptographic
42+keys are issued and controlled by their parent identity. The relationship
43+between the keys of a parent ship and its moons are analogous to the
44+relationship between primary keys and subkeys in a system like
45+[PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy). The parent may revoke
46+or change its child moons' keys at any time. A typical relationship between a
47+planet and a moon may be like one of a human and their smartphone. If you lose
48+your phone, you don't want someone to pretend they are you, operating one of
49+your moons, on the network. The planet can revoke the keys, and the moon stored
50+on the phone becomes inert, no longer able to communicate with the network.
51+While planets and stars also depend on their sponsor to assist with peer
52+discovery and software updates, these relationships rely on mutual agreement,
53+since either party may choose to discontinue the relationship and establish a
54+new one elsewhere. Moons possess no such freedom.
55+
56+### Lunar prehistory
57+
58+![luna](https://media.urbit.org/site/posts/essays/luna.jpg)
59+
60+It may come as a surprise to you that you are already very familiar with moon
61+identities—they've just never been explained as such because the context in
62+which that terminology makes sense didn't exist before Urbit. Moons, in fact, are not
63+a new concept at all. Virtually your entire experience of the internet in the
64+modern era is the experience of someone who possesses some number of moons
65+subordinate to planets who mostly refuse to talk to one another. The feeling you
66+get of constantly moving between silos, juggling accounts, not controlling your
67+own data, etc., is a direct result of the fact that, on Earth, you only possess
68+moons. No planets.
69+
70+We're speaking, of course, of the client-server relationship. From the Urbit
71+perspective, the Facebooks, Twitters, and Googles of the world are planets, and
72+accounts held with these services may be thought of as moons subordinate to
73+those planets. Your account with these megacorps is only yours for as long as
74+they please. If you happen to step on a digital landmine, such as a virus that
75+causes Google's servers to believe you are a bot, you are suddenly banned from
76+their service, often with no recourse. All your data, your connections, your
77+network—vanished. We are all Mark Zuckerberg's moons, and they're armed to the
78+teeth with surveillance equipment.
79+
80+There are two classes of internet users: those with servers who hold all the
81+power, and clients who use those servers in the way prescribed by the owners.
82+Running a server is theoretically accessible to anyone, but practically
83+difficult: server maintenance is a technical endeavor that requires specialized
84+knowledge and substantial time investment. Other barriers exist beyond just the
85+technical: for instance, if you wish to set up your own email server, you will
86+probably be blocked by large providers because unknown email servers are almost
87+always spam. The root cause of this circumstance is that the email protocol
88+lacks [Sybil resistance](https://en.wikipedia.org/wiki/Sybil_attack). Urbit has
89+Sybil resistance built in, eliminating certain kinds of incentives for
90+gatekeeping such as this.
91+
92+We seek to level the playing field by giving everyone a server. We accomplish
93+this by making the process of running your own server (planet) as easy as
94+running your personal computer today. We aren't quite there yet, but we've made
95+leaps and bounds over the past couple of years.
96+
97+Of course, this analogy isn't perfect—Urbit moons are servers themselves, but as
98+they may only act in accordance with the wishes of its parent, they are
99+effectively as locked in degrees of freedom as a client is to a server. The
100+moon's keys may be revoked at any time by the parent. To distinguish these
101+prehistoric moons from Urbit moons, we will refer to them later as "primitive
102+moons".
103+
104+Urbit contends that moons are not the appropriate digital exocortex for a
105+responsible adult. They are for devices, experiments, or your children. We hope
106+that the dominant server-client relationship, which is the primary weapon of the
107+surveillance-industrial complex, will meet its end in the near future.
108+
109+### Moons in the early Martian era
110+
111+![sputnik](https://media.urbit.org/site/posts/essays/sputnik.jpg)
112+
113+In 2021, moons are mostly unused on Urbit. There's a smattering of minor use
114+cases which we'll describe here, but they represent only a tiny fraction of
115+their ultimate potential.
116+
117+Tlon recently launched a survey bot called [Eliza](@/blog/eliza.md), which was
118+initially a comet. We frequently got questions on whether Eliza was actually
119+Tlon's bot, because it could just as easily be a malicious actor posing as Tlon.
120+We soon plan to relaunch Eliza as a moon of `~zod`, which is the most
121+recognizable official galaxy of Tlon. This is to establish that the bot is
122+indeed official; only someone with access to `~zod` is capable of creating a
123+moon of `~zod`, and so a moon of `~zod` automatically carries with it a
124+cryptographic guarantee that you are communicating with an official digital
125+representative of Tlon. On Earth something like this would need to be
126+accomplished with certificate chains but, on Mars, this sort of authentication
127+is baked into the very fabric of the network, rather than as an additional layer
128+on top. This is a very good representative case of how moons naturally inherit
129+the reputation of their parent, even in the absence of any formal reputation
130+systems on Urbit.
131+
132+We see folks using moons as backup identities in case they can't or don't want
133+to access their primary planet for one reason or another. Again, since anyone
134+may verify the parent of a moon, the moon inherits the reputation of its parent.
135+These backups could be vanity identities—for instance, every `~sampel-palnet`
136+has underneath it a moon named `~master-sampel-palnet`[^0].
137+
138+Some use moons to host group(s). Hosting a group inevitably means that that ship
139+will process more network traffic, and a heavily trafficked group may impact a
140+ship's performance. Thus one may wish to offload group hosting duties to a moon
141+to maintain a more performant planet.
142+
143+As we currently lack a real system for 3rd party software distribution (though
144+see this recent [developer call](https://youtu.be/XwICC6Its1E) on a solution in
145+progress), one stopgap has been to download software by syncing a foreign
146+[desk](@/docs/glossary/desk.md) to your ship. This is risky, as buggy software
147+may make break your ship and make it difficult to get running properly again.
148+For this reason, testing new software on the livenet is frequently performed on
149+moons, so as not to risk the parent ship if something were to go wrong.
150+
151+### Internet of Things
152+
153+![telstar](https://media.urbit.org/site/posts/essays/telstar.jpg)
154+
155+Now we start to look towards the future by examining the problems faced by IoT
156+in the present and speculating on how Urbit might solve them.
157+
158+The Internet of Things is much maligned by technologists as a privacy, security,
159+and maintenance nightmare. These products usually depend on phoning home to
160+perform their service, which is inevitably a funnel by which personal data is
161+harvested, an attack surface for hackers to gain access to your home network,
162+and a single point of failure which may render the device useless, all in one!
163+One need look no further than the recent [Ubiquiti
164+breach](https://krebsonsecurity.com/2021/03/whistleblower-ubiquiti-breach-catastrophic/)
165+to see all of these failure modes happening on a massive scale, and this is par
166+for the course. This sort of dynamic is completely antithetical to the Urbit
167+philosophy, so any involvement of Urbit with IoT will reject many fundamental
168+assumptions on how IoT operates today.
169+
170+However, it's important to understand why the current IoT model works like this
171+at all. We posit that it ultimately stems from the fact that today's IoT
172+products are primitive moons for which you do not operate the parent planet.
173+Almost every IoT device operates in the Software as a Service (SaaS) paradigm
174+because most people don't have personal servers that could do all the processing
175+work actually necessary for an IoT device to operate. This is not the _only_
176+reason for this—it's also just more profitable to collect consumer data.
177+However, it's the SaaS aspects which make the whole thing such a catastrophic
178+mess.
179+
180+Imagine a different world: if the server that your device reports to is your
181+own, there is no loss of control over personal data. If the device only
182+communicates on the local network, it will prevent remote hackers and disruption
183+if you internet fails. And if the manufacturer goes out of business, the device
184+will still work-it is not dependent on the manufacturer's servers.
185+
186+The wants and needs of the individual are at odds with the wants and needs of
187+the megacorp, and that mismatch manifests as the antifeatures that plague IoT.
188+By eliminating the SaaS aspect, Urbit solves many of the largest outstanding
189+issues with IoT in a single blow. Digital personal AI assistants have long been
190+an anticipated science fiction prediction and their full realization is on the
191+horizon. But in their current manifestation, many privacy- and
192+security-conscious people would never consider using them at all, since they are
193+inevitably presented as SaaS that requires intimate knowledge of your devices
194+and their stored data. Recommendation engines such as the one used by YouTube
195+offer helpful guidance towards content you'll find appealing, but they're also
196+designed to keep you hooked to the service. These kinds of programs can be
197+useful, but they're dystopian when they come saddled with anti-consumer
198+subroutines. Since your Urbit belongs to you, it can never act against your own
199+interests without your consent. In our lunar vision, your digital personal AI
200+assistant will live on one of your moons, rather than on megacorp's cloud.
201+
202+For web-exposed devices, Urbit offers the same security guarantees that it
203+offers for your personal computer: everything is end-to-end encrypted by
204+default, and signed with keys that one can easily verify as belonging to the
205+node sending the message.
206+
207+[Vint Cerf](https://en.wikipedia.org/wiki/Vint_Cerf) has outlined the case for a
208+system like Urbit ID for IoT use
209+[here](https://cacm.acm.org/magazines/2018/12/232883-self-authenticating-identifiers/fulltext).
210+In brief, that the Urbit ID system allows one to match public keys with devices,
211+bestowing devices with self-authenticating identities. This allows one to trust
212+the communications received from the device to whatever degree the private key
213+is held secure. IP addresses, GPS coordinates, MAC addresses, etc., are not
214+sufficient to generate high levels of trust—they're all temporary, easily
215+spoofed, or both.
216+
217+> One might imagine applying this to the Internet of Things (IOT) in which the
218+> IOT device self-generates a public- and private-key pair and registers the
219+> public key. For example, with a hub or controller so the hub can confirm it
220+> has reached the right IOT device. By the same token, configuration of the IOT
221+> device into an ensemble could include incorporation of the public key of the
222+> controller into a list of valid devices that can command or obtain data from
223+> the now-configured IOT device. Both ends can verify they are talking to the
224+> originally configured devices, assuming no device has lost its private key.
225+
226+Here, the hub or controller referred to would be your planet.
227+
228+Urbit has many other features that make it well-suited for IoT, above and beyond
229+eliminating the SaaS model and providing self-authenticating identities. Many of
230+these additional advantages derive from the fact that Urbit is a [solid state
231+interpreter](@/docs/arvo/overview.md#solid-state-interpreter) and that
232+[Ames](@/docs/glossary/ames.md) is a network of solid-state interpreters
233+equipped with cryptographic identity. We explore this in the next section.
234+
235+### Future lunar cosmotechnics
236+
237+![farm](https://media.urbit.org/site/posts/essays/farm.jpg)
238+
239+We now polish off the old crystal ball and imagine future uses of Martian lunar
240+technology. Particularly, how the tech may develop over time once it becomes
241+widely exposed to the evolution-inducing forces of industry and culture. This
242+section is pure speculation, and I only aim to offer a small glimpse of a
243+potential future, rather than an exhaustive one. This picture will necessarily
244+be biased by my personal proclivities and expertise, or lack thereof.
245+
246+Any discussion on the future of moons is incomplete without mentioning the
247+possibility of [lunar emancipation](https://urbit.org/faq/#more-planets) in
248+order to increase the number of planets. This fascinating topic sees regular
249+discussion in the Urbit Community group, but is outside the scope of this
250+article.
251+
252+In order to respect the reader's time, I'm narrowing our scope to a particular
253+topic: the agriculture industry. I'm also assuming a future with specialized and
254+increasingly small hardware to run Urbit. Right now, a 4 GB Raspberry Pi is the
255+standard for "small Urbit". If someday there are CPUs specifically designed for
256+running [Nock](@/docs/glossary/nock.md), one could imagine going much smaller.
257+Ultimately, I'm going to assume that there will someday be [solid-state
258+interpreter](#ssi) microcontrollers - so the inclusion of Urbit on a device may
259+require nothing more than a couple [surface-mount
260+devices](https://en.wikipedia.org/wiki/Surface-mount_technology) on a larger
261+chip.
262+
263+Urbit is intended first and foremost as a personal computer. When I unravel its
264+potential usage in industry, I adopt the forecast of a drastic increase in the
265+manufacturing capacity for individuals and small groups. Agriculture is a great
266+microcosm of this long-standing trend; less human input is needed to produce the
267+same amount of food, whether it be crops or livestock. The modern era is
268+distinguished by the fact that small numbers of people can manage enormous farms
269+which produce food for vast populations. Thus, computation on modern automated
270+farms may be thought of as existing at the intersection of both personal and
271+industrial scale, and show how computerized and mechanized workflows add to the
272+amazing productivity of modern farms and demonstrate that individual-sized
273+inputs are able to create industrial-sized outputs. I predict that the set of
274+trades for which this dynamic holds will only increase over time.
275+
276+Agricultural automation has been a primary engine for the growth of
277+civilization, but it has been hampered by the downsides of IoT elaborated in the
278+previous section. One bellwether of this dynamic is the right to repair one's
279+own equipment. [John
280+Deere](https://www.thetruthaboutcars.com/2020/03/its-payback-time-right-to-repair-movement-targets-john-deere/)
281+has long been at the center of this controversy. Farmers have lost the ability
282+to repair their own equipment due to vendor locks and a dependency on remote
283+servers. Furthermore, any suite of sensor products designed to gather important
284+data such as genomics, hydrology, soil health, weather, etc., inevitably only
285+cooperate with other products by the same vendor. It's the same story all over
286+again—you are a client of a megacorp server. Or in Urbit terms, you have a bunch
287+of primitive moons belonging to different planets held by megacorps, and no
288+planet to call your own.
289+
290+Again, Urbit resolves these issues in the same fashion as above. One might argue
291+that using Urbit is another form of vendor lock-in—but this is evaluating Urbit
292+at the incorrect level. Since Urbit is an open source operating system, its
293+functionality may be extended and modified arbitrarily by any party. _Some_
294+computational infrastructure is necessary— that fact can never be escaped. But
295+you can escape from closed source software that does not permit you to modify,
296+to open source software that allows you to tinker at will. Thus we do not
297+consider open source software to be a form of lock-in, or at least, it's a much
298+milder form of lock-in compared to something like Apple's walled garden.
299+
300+So let us focus on the additional meritorious aspects of Urbit (or more
301+generally, solid state interpreter networks) that make it not merely a band-aid
302+to the broken IoT system but a permanent and sound replacement.
303+
304+#### Solid state interpreter networks {#ssi}
305+
306+![cubesats](https://media.urbit.org/site/posts/essays/cubesats.jpg)
307+
308+Urbit is the world's first solid-state interpreter (SSI). This concept is
309+summarized in the [white paper](https://media.urbit.org/whitepaper.pdf) as
310+follows:
311+
312+> Imagine it as a chip. Plug this chip into power and network; packets go in and
313+> out, sometimes changing its state. The chip never loses data and has no
314+> concept of a reboot; every packet is an ACID transaction.
315+
316+Also,
317+
318+> Briefly, an SSI is an interpreter which is also a database. In more depth, an
319+> SSI combines three properties: uniform persistence, source independent packet
320+> networking, and high-level determinism.
321+
322+We do not wish to segue into a lengthy examination of what this really means—
323+that's what the white paper is for—but we will attempt to explain why these
324+properties are of great benefit in an industrial IoT context such as
325+agriculture. We'd also like to predict that Urbit will not be the only SSI.
326+Other sorts of SSI's specialized to various tasks may one day roam the planet,
327+and these may be better suited for particular IoT tasks than
328+[Arvo](@/docs/glossary/arvo.md). However, this article will be couched in terms
329+of SSIs communicating with an [Ames](@/docs/glossary/ames.md)-like networking
330+protocol and Urbit ID-style cryptographic identity, rather than Urbit in
331+particular.
332+
333+For a SSI, losing power is less of a catastrophic event than it is for ordinary
334+computers with volatile memory. Knowing that you can never lose any state is a
335+powerful guarantee on the integrity of your data. Loss of power will always mean
336+loss of any data potentially collected while power is down, regardless of the
337+device you use, but with a SSI you at least have assurance that you will never
338+lose data that was collected before it could be transferred from the cache to
339+the disk. Of course, this is actually the sort of guarantee that [ACID
340+transactions](https://urbit.org/docs/arvo/overview/#acid-database) have—it is
341+just that this set of guarantees emerges naturally as a consequence when you
342+have a SSI. Put another way, every SSI is a database; having every device be a
343+database is a major boon in situations where enormous quantities of data are
344+being collected across a distributed network. The standard today is that data is
345+only collected at hubs, and any data that doesn't reach a hub is irretrievably
346+lost.
347+
348+SSIs are also deterministic at a high level. While all computers are
349+deterministic at the CPU level, interruptions to power can result in an
350+undefined semantic state and result in the random erasure of half of its brain.
351+This determinism is what begets ease of maintainability of Urbit—problems
352+generally only need to be solved once by experts and the solution propagates to
353+the rest of the network via [OTA updates](@/docs/glossary/ota-updates.md). We
354+addressed this maintenance issue previously—we only remark now that this
355+property is derived from being a SSI, rather than something particular only to
356+Arvo or Urbit. When one has hundreds or thousands of devices to manage, the
357+guarantees on ease of maintenance provided by determinism are extraordinarily
358+convenient.
359+
360+Packet routing on SSI networks is source-independent, and in the context of an
361+Ames-like networking protocol, are always delivered exactly once and in a
362+precise order due to the fact that nodes on an Ames network are in a permanent
363+session. Source-independent means that the identity that originated a packet
364+does not need to be the one to deliver it—packets are _facts_, and the truth of
365+a fact does not depend on who you heard it from. This means that it is possible,
366+for instance, to send instructions to a moon before it even exists and be
367+guaranteed that that moon will receive them and perform the tasks given, even if
368+the device that originally sent the packets no longer exists. As long as
369+somebody has kept the packets on hand, they will eventually be delivered. So,
370+one could imagine transmitting directions to a crop harvesting robot into which
371+a moon will be installed before the robot has even been purchased, know that
372+once it is delivered it will automatically begin its task, and know that those
373+tasks will be completed in the correct order, without any accidental repeats.
374+Taken to the limit, one can imagine preplanning the automated tasks for an
375+entire farm before a single device is purchased, with powerful guarantees on the
376+integrity of those instructions no matter how much time elapses between sending
377+and receiving.
378+
379+#### P2P data markets
380+
381+![knots](https://media.urbit.org/site/posts/essays/knots.jpeg)
382+
383+As was mentioned above, today's IoT devices ferry all sorts of your personal
384+data to megacorp, where they package it and sell it to the highest bidder.
385+Though personal data in aggregate is quite valuable, the value of a single
386+individual's data is quite low. On the other hand, industrial scale data such as
387+that collected on digitized farms could be quite valuable. Here we briefly
388+examine how Urbit can be utilized to populate and facilitate a market for data.
389+
390+All data collected by your moons may be digitally signed by that moon,
391+certifying the exact origin of that data. This is one advantage of having
392+cryptographic identity baked into the core of the operating system and
393+networking protocol. One could imagine collecting large amounts of such data and
394+packaging it for exchange with other local and regional farmers. This can, of
395+course, already be done in principle with current systems. But current systems
396+do not automatically come equipped with the sort of provenance, immutability,
397+and reputation that comes for free when you make use of SSI networks.
398+Manipulated or faked data becomes easier to spot, and you'll know who it came
399+from, so supplying such data puts one's reputation at stake.
400+
401+One major issue facing conjoining data gathered from disparate sources is simply
402+how to do it. Data arriving in random order, from different software versions,
403+running different hardware, is all very difficult to bundle into a good
404+dataset - and indeed wrangling this sort of task forms a large part of the data
405+scientist profession. As devices in SSI networks utilizing an Ames-like protocol
406+are engaged in permanent sessions, leading to properties such as exactly-once
407+delivery and well-ordered message sequences, issues about the order in which
408+data arrives are dramatically simplified. I do not wish to get mathematical
409+here, but I personally have confidence that the emerging discipline of
410+[categorical informatics](http://math.mit.edu/~dspivak/informatics/), as well as
411+the relevance of [low-dimensional topology to data
412+fusion](https://arxiv.org/abs/1409.5505), resolves many of these issues. I
413+promise to explain this in more detail in the future. For now, it suffices to
414+say that SSI networks seem well-positioned to utilize these techniques.
415+
416+Cryptographic techniques such as [(composable) zero-knowledge
417+proofs](https://en.wikipedia.org/wiki/Zero-knowledge_proof), [secure multi-party
418+computation](https://en.wikipedia.org/wiki/Secure_multi-party_computation),
419+[ring signatures](https://en.wikipedia.org/wiki/Ring_signature), and even
420+[homomorphic encryption](https://en.wikipedia.org/wiki/Homomorphic_encryption)
421+offer a variety of ways in which data may be shared in an IoT context with
422+mathematical guarantees on what sort of privacy is maintained. This is perhaps
423+less relevant in the context of agricultural IoT, where personal private data is
424+largely absent, but we mention them here to invite further speculation from the
425+reader about the possibilities of IoT and SSI networks.
426+
427+We end our discussion with an adaptation of a scenario borrowed from my brief
428+time working on [Ceptr](http://ceptr.org/) that begins to show how a lunar
429+IoT-connected world evokes properties of a hypothetical ["global nervous
430+system"](https://en.wikipedia.org/wiki/Global_brain). This example is
431+purposefully mundane to illustrate how deficient our Earth systems are, and
432+while it is possible to accomplish in theory, it is impractical on a wide scale
433+due to the numerous problems with IoT. Imagine that you suffer headaches from
434+low atmospheric pressure. You'd like to know when a low-pressure front is an
435+hour away from you so that you can pre-emptively take aspirin to prevent the
436+headache. Your personal digital assistant, running on Urbit, can then
437+periodically query the moons of sensors in your region for weather data to
438+predict whether or not you will soon be passing through a low pressure front.
439+This could be a free service or paid for automatically with cryptocurrency
440+microtransactions. On Mars, this task will be trivial, and is merely a stone's
441+throw away from a vast and undiscovered universe of other possibilities unlocked
442+by SSI networks.
443+
444+
445+[^0]: Of course, all moon names have four words, not three. What the fourth word
446+ needs to be for only three words to display is a matter of Urbit lore that
447+ is more fun to discover yourself than have it told to you, so we won't spoil
448+ it here.
content/community/meetups.md+2−2
@@ -10,8 +10,8 @@ hide_next_title = "true"
10+++
10+++
11
11
12<picture>
12<picture>
13−<source src="https://media.urbit.org/site/meetup.jpg">
13+<source src="https://media.urbit.org/site/meetup1.jpg">
14−<img class="mt4" src="https://media.urbit.org/site/meetup.jpg"/>
14+<img class="mt4" src="https://media.urbit.org/site/meetup1.jpg"/>
15</picture>
15</picture>
16
16
17Turns out that getting Urbit fans together in one room is pretty fun. Here's an incomplete list of community-led Urbit IRL groups. These events are generally informal and very approachable – feel free to dive in.
17Turns out that getting Urbit fans together in one room is pretty fun. Here's an incomplete list of community-led Urbit IRL groups. These events are generally informal and very approachable – feel free to dive in.
content/events/2021-04-27-bitcoin-launch.md+7−7
@@ -1,22 +1,22 @@
1+++
1+++
2title = "Bitcoin Launch"
2title = "Bitcoin Launch"
3date = 2021-04-27
3date = 2021-04-27
4−template = "events/event-landing.html"
5[extra]
4[extra]
6−pinned = true
5+pinned = false
7host = "Urbit Foundation"
6host = "Urbit Foundation"
8time = "12:00pm PDT"
7time = "12:00pm PDT"
9location = "Online Event"
8location = "Online Event"
10image = "https://storage.googleapis.com/media.urbit.org/site/events/20210413-bitcoin-header.png"
9image = "https://storage.googleapis.com/media.urbit.org/site/events/20210413-bitcoin-header.png"
11registration_url = "https://www.meetup.com/urbit-sf/events/276741426/"
10registration_url = "https://www.meetup.com/urbit-sf/events/276741426/"
12−guests = "~timluc-miptev"
11+youtube = "_aRnfacZPto"
12+guests = "Marty Bent"
13description = "Bitcoin is coming to Urbit! With the upcoming release of the Bitcoin Wallet, you will be able to pay Urbit ships directly with BTC."
13description = "Bitcoin is coming to Urbit! With the upcoming release of the Bitcoin Wallet, you will be able to pay Urbit ships directly with BTC."
14+++
14+++
15
15
16−<h1>Bitcoin + Urbit</h1>
16+Bitcoin is coming to Urbit! With the upcoming release of the Bitcoin Wallet, you will be able to pay Urbit ships directly with BTC.
17
17
18−<img class="center black" src="https://storage.googleapis.com/media.urbit.org/site/events/20210413-bitcoin-event.svg" />
18+We’d like to take a moment to show it off, and discuss the future of commerce on Urbit. First, Christian and Josh will demo the wallet, then, our good friend Marty Bent will moderate a panel with Christian, Tim, and Ed. We will have time at the end for questions.
19
19
20−<h2 class="center">OTA Launch Event: <span class="btc-orange">2021.04.27</span></h2>
20+The event will have a live stream on Youtube, and a live-chat on Urbit, links to come.
21
21
22−<h2 class="center">First 300 signups receive a free Urbit ID and 3 months of Tlon Hosting</h2>
22+Join the Bitcoin dev conversation in the Urbitcoiners group: [~pindet-timmut/urbitcoin-cash](web+urbitgraph://group/~pindet-timmut/urbitcoin-cash)
content/events/2021-04-29-developer-call-real-time-communications-on-urbit.mdnew file+27
@@ -0,0 +1,27 @@
1++++
2+title = "Developer Call: Real-Time Communication on Urbit"
3+date = 2021-04-29
4+[extra]
5+pinned = false
6+host = "Josh Lehman (~wolref-podlex)"
7+time = "09:00 PST"
8+location = "Online Event"
9+image = ""
10+registration_url = "https://www.meetup.com/urbit-sf/events/277674273/"
11+guests = "Edward Amsden (~ritpub-sipsyl)"
12+description = "Video chat on Urbit? It's nearly here with WebRTC."
13+youtube = "XFct6JZHPC0"
14++++
15+
16+
17+Video chat on Urbit? It's nearly here using the WebRTC protocol. Edward Amsden (`~ritpub-sipsyl`) will be giving us a look at the WebRTC Airlock library that he has developed that handles all the hard parts of WebRTC. This will allow developers to simply call or answer calls by ship or app name. Edward will also be giving us a live text-based demo of WebRTC on urbit. Please join us for an exciting presentation.
18+
19+Edward is a software developer and the principal of Black River Software LLC. He has several years experience building both backend and IoT software in Haskell, and in particular building IoT control and software deployment infrastructure. He also has academic background in programming language research.
20+
21+As usual, there'll be an opportunity to jump on the call with us afterward to ask questions and hang out.
22+
23+
24+## Resources
25+
26+- [Urbit WebRTC on GitHub](https://github.com/black-river-software/urbit-webrtc)
27+- Check out WebRTC progress reports on `~ritpub-sipsyl/webrtc-on-urbit`
content/events/2021-05+13+developer-call-versioned-networking.mdnew file+21
@@ -0,0 +1,21 @@
1++++
2+title = "Developer Call: P2P Versioned Networking"
3+date = 2021-05-13
4+[extra]
5+pinned = false
6+host = "Josh Lehman (~wolref-podlex)"
7+time = "16:00 PST"
8+location = "Online Event"
9+image = ""
10+registration_url = "https://www.meetup.com/urbit-sf/events/278052029/"
11+guests = "Liam Fitzgerald (~hastuc-dibtux)"
12+description = "Versioned Networking for Application Developers"
13+youtube = "BhQ1vk4jGsk"
14++++
15+
16+Building solid networking infrastructure has been a major focus of the Urbit project since its inception. There's a lot going on under the hood
17+that ensures our servers reliably stay connected. Liam Fitzgerald (~hastuc-dibtux) will be explaining how Urbit is able to deploy changes without breaking the network. Anyone designing userspace applications will be interested in the approach he has designed.
18+
19+Liam is an Interface Engineer working at Tlon working on the Landscape team. He will be discussing networking userspace applications in depth and going into detail about the new versioning system.
20+
21+As usual, there will be an opportunity to jump on the call with us afterward to ask questions and hang out.
content/using/os/ship-troubleshooting.md+2−1
@@ -70,12 +70,13 @@ A personal breach is when a ship tells the rest of the network to treat it as th
70
70
71Personal breaches often fix connectivity issues, but should only be used as a
71Personal breaches often fix connectivity issues, but should only be used as a
72last resort. To find out how to perform a personal breach, check out our [Guide
72last resort. To find out how to perform a personal breach, check out our [Guide
73−to Breaches](../guide-to-breaches). Before taking such a drastic measure, try
73+to Breaches](@/using/id/guide-to-breaches.md). Before taking such a drastic measure, try
74other methods in this guide. You can also ask for help on
74other methods in this guide. You can also ask for help on
75in the Help channel in the Urbit Community group at `~bitbet-bolbel/urbit-community` or, failing that, in the `#ship-starting-support`
75in the Help channel in the Urbit Community group at `~bitbet-bolbel/urbit-community` or, failing that, in the `#ship-starting-support`
76channel in our [Discord server](https://discord.gg/n9xhMdz).
76channel in our [Discord server](https://discord.gg/n9xhMdz).
77
77
78### Reset `+code`
78### Reset `+code`
79+**WARNING:** Do not reset your +code if you are using a hosted ship. You will be locked out. Please contact your hosting provider for more information.
79
80
80You login to Landscape using the camel-case phrase obtained from dojo by
81You login to Landscape using the camel-case phrase obtained from dojo by
81entering `+code`. For security reasons you may wish to change this code
82entering `+code`. For security reasons you may wish to change this code
templates/essays/post.html+3−34
@@ -65,38 +65,7 @@
65
65
66 {{ pagination::pagination(page=page) }}
66 {{ pagination::pagination(page=page) }}
67</article>
67</article>
68−<section class="full c4-12-lg lh-copy mt6 mb4 measure-wide">
68+
69− <iframe name="nothing" style="display:none;"></iframe>
69+{% include "partials/subscribe-form.html" %}
70− <p class="mt5">If you’d like to follow our progress, we send monthly updates via email:</p>
70+
71− <form
72− action="https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&amp;amp;id=be143888d2"
73− method="post"
74− id="mc-embedded-subscribe-form"
75− name="mc-embedded-subscribe-form"
76− class="validate form"
77− target="_blank"
78− novalidate>
79− <div class="input-group" id="mc_embed_signup_scroll">
80− <div class="mc-field-group w-100 relative">
81− <input
82− class="bg-white black b--black ba pa3 w-100 mb2 br0 wk-appearance-none"
83− type="email"
84− name="EMAIL"
85− id="mce-EMAIL"
86− placeholder="your@email.com"/>
87− <button
88− id="mc-embedded-subscribe"
89− class="dib bn absolute bg-transparent"
90− style="font-family: 'Inter UI', san-serif; right: 3px; top: 15px; -webkit-appearance: none;"
91− type="submit"
92− name="subscribe"
93− onclick="_paq.push(['trackEvent', 'Mailing List', 'Subscribe'])">
94− <span class="fr pr1">-></span>
95− </button>
96− </div>
97− </div>
98− </form>
99− <p class="mt3 mb3 mb3-xl lh-copy">You can also follow us on <a class="bb" href="https://twitter.com/urbit">Twitter</a> or <a class="bb" href="https://github.com/urbit">GitHub</a>.</p>
100− <p class="mt0 mb3 mb4-xl lh-copy">Or talk to us on Urbit: <code>~bitbet-bolbel/urbit-community</code></p>
101−</section>
102{% endblock content %}
71{% endblock content %}
templates/events/event-landing.html+1−1
@@ -15,7 +15,7 @@
15 <a target="_blank" href="{{ page.extra.registration_url }}" id="rsvp" data-date="{{ page.date }}">RSVP</a>
15 <a target="_blank" href="{{ page.extra.registration_url }}" id="rsvp" data-date="{{ page.date }}">RSVP</a>
16 <script>
16 <script>
17 const rsvp = document.getElementById('rsvp');
17 const rsvp = document.getElementById('rsvp');
18− if (Date.now() > Date.parse(rsvp.dataset.date)) {
18+ if (Date.now() > Date.parse(`${rsvp.dataset.date}T23:59:59`)) {
19 rsvp.style.display = 'none';
19 rsvp.style.display = 'none';
20 }
20 }
21 </script>
21 </script>
templates/events/event.html+9−8
@@ -49,23 +49,24 @@
49 <img class="db mv2 obj-cover w-100 ba" src="{{ page.extra.image }}" />
49 <img class="db mv2 obj-cover w-100 ba" src="{{ page.extra.image }}" />
50 {% endif %}
50 {% endif %}
51
51
52− {% if page.extra.author %}
53− <span class="mt2 dib" rel="author"> {{ page.extra.author }} </span>
54− {% if page.extra.ship %}
55− <address class="mono">{{ page.extra.ship }}</address>
56− {% endif %}
57− {% endif %}
58−
59 {% if page.date %}
52 {% if page.date %}
60 <time class="mono db mv1 gray2 f5">{{ page.date | date(format="~%Y.%-m.%-d") }} {{ page.extra.time }}</time>
53 <time class="mono db mv1 gray2 f5">{{ page.date | date(format="~%Y.%-m.%-d") }} {{ page.extra.time }}</time>
61 {% endif %}
54 {% endif %}
55+
56+ {% if page.extra.host %}
57+ <span class="mt2 dib gray2" rel="host">Hosted by {{ page.extra.host }}</span><br />
58+ {% endif %}
59+
60+ {% if page.extra.guests %}
61+ <span class="mt2 dib gray2" rel="guest">Guest: {{ page.extra.guests }} </span><br />
62+ {% endif %}
62
63
63 {% if page.extra.registration_url %}
64 {% if page.extra.registration_url %}
64 <!-- TODO only show this if it's in the future. This build of tera doesn't support casting to int, so we have to use JS -->
65 <!-- TODO only show this if it's in the future. This build of tera doesn't support casting to int, so we have to use JS -->
65 <a class="f6" target="_blank" href="{{ page.extra.registration_url }}" id="rsvp" data-date="{{ page.date }}">RSVP Here</a>
66 <a class="f6" target="_blank" href="{{ page.extra.registration_url }}" id="rsvp" data-date="{{ page.date }}">RSVP Here</a>
66 <script>
67 <script>
67 const rsvp = document.getElementById('rsvp');
68 const rsvp = document.getElementById('rsvp');
68− if (Date.now() > Date.parse(rsvp.dataset.date)) {
69+ if (Date.now() > Date.parse(`${rsvp.dataset.date}T23:59:59`)) {
69 rsvp.style.display = 'none';
70 rsvp.style.display = 'none';
70 }
71 }
71 </script>
72 </script>
templates/partials/subscribe-form.htmlnew file+34
@@ -0,0 +1,34 @@
1+<section class="full c4-12-lg lh-copy mt6 mb4 measure-wide">
2+ <iframe name="nothing" style="display:none;"></iframe>
3+ <p class="mt5">If you’d like to follow our progress, we send monthly updates via email:</p>
4+ <form
5+ action="https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&amp;amp;id=be143888d2"
6+ method="post"
7+ id="mc-embedded-subscribe-form"
8+ name="mc-embedded-subscribe-form"
9+ class="validate form"
10+ target="_blank"
11+ novalidate>
12+ <div class="input-group" id="mc_embed_signup_scroll">
13+ <div class="mc-field-group w-100 relative">
14+ <input
15+ class="bg-white black b--black ba pa3 w-100 mb2 br0 wk-appearance-none"
16+ type="email"
17+ name="EMAIL"
18+ id="mce-EMAIL"
19+ placeholder="your@email.com"/>
20+ <button
21+ id="mc-embedded-subscribe"
22+ class="dib bn absolute bg-transparent"
23+ style="font-family: 'Inter UI', san-serif; right: 3px; top: 15px; -webkit-appearance: none;"
24+ type="submit"
25+ name="subscribe"
26+ onclick="_paq.push(['trackEvent', 'Mailing List', 'Subscribe'])">
27+ <span class="fr pr1">-></span>
28+ </button>
29+ </div>
30+ </div>
31+ </form>
32+ <p class="mt3 mb3 mb3-xl lh-copy">You can also follow us on <a class="bb" href="https://twitter.com/urbit">Twitter</a> or <a class="bb" href="https://github.com/urbit">GitHub</a>.</p>
33+ <p class="mt0 mb3 mb4-xl lh-copy">Or talk to us on Urbit: <code>~bitbet-bolbel/urbit-community</code></p>
34+</section>
templates/understanding-urbit/list.html+2−34
@@ -79,38 +79,6 @@
79 {% endfor %}
79 {% endfor %}
80</footer>
80</footer>
81
81
82−<section class="full c4-12-lg lh-copy mt6 mb4 measure-wide">
82+{% include "partials/subscribe-form.html" %}
83− <iframe name="nothing" style="display:none;"></iframe>
83+
84− <p class="mt5">If you’d like to follow our progress, we send monthly updates via email:</p>
85− <form
86− action="https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&amp;amp;id=be143888d2"
87− method="post"
88− id="mc-embedded-subscribe-form"
89− name="mc-embedded-subscribe-form"
90− class="validate form"
91− target="_blank"
92− novalidate>
93− <div class="input-group" id="mc_embed_signup_scroll">
94− <div class="mc-field-group w-100 relative">
95− <input
96− class="bg-white black b--black ba pa3 w-100 mb2 br0 wk-appearance-none"
97− type="email"
98− name="EMAIL"
99− id="mce-EMAIL"
100− placeholder="your@email.com"/>
101− <button
102− id="mc-embedded-subscribe"
103− class="dib bn absolute bg-transparent"
104− style="font-family: 'Inter UI', san-serif; right: 3px; top: 15px; -webkit-appearance: none;"
105− type="submit"
106− name="subscribe"
107− onclick="_paq.push(['trackEvent', 'Mailing List', 'Subscribe'])">
108− <span class="fr pr1">-></span>
109− </button>
110− </div>
111− </div>
112− </form>
113− <p class="mt3 mb3 mb3-xl lh-copy">You can also follow us on <a class="bb" href="https://twitter.com/urbit">Twitter</a> or <a class="bb" href="https://github.com/urbit">GitHub</a>.</p>
114− <p class="mt0 mb3 mb4-xl lh-copy">Or, preferably, on Urbit itself in the <code>~bitbet-bolbel/urbit-community</code></p>
115−</section>
116{% endblock content %}
84{% endblock content %}
templates/understanding-urbit/post.html+3−34
@@ -74,38 +74,7 @@
74
74
75 {{ pagination::pagination(page=page) }}
75 {{ pagination::pagination(page=page) }}
76 </article>
76 </article>
77− <section class="full c4-12-lg lh-copy mt6 mb4 measure-wide">
77+
78− <iframe name="nothing" style="display:none;"></iframe>
78+ {% include "partials/subscribe-form.html" %}
79− <p class="mt5">If you’d like to follow our progress, we send monthly updates via email:</p>
79+
80− <form
81− action="https://urbit.us11.list-manage.com/subscribe/post?u=972a03db9e0c6c25bb58de8c8&amp;amp;id=be143888d2"
82− method="post"
83− id="mc-embedded-subscribe-form"
84− name="mc-embedded-subscribe-form"
85− class="validate form"
86− target="_blank"
87− novalidate>
88− <div class="input-group" id="mc_embed_signup_scroll">
89− <div class="mc-field-group w-100 relative">
90− <input
91− class="bg-white black b--black ba pa3 w-100 mb2 br0 wk-appearance-none"
92− type="email"
93− name="EMAIL"
94− id="mce-EMAIL"
95− placeholder="your@email.com"/>
96− <button
97− id="mc-embedded-subscribe"
98− class="dib bn absolute bg-transparent"
99− style="font-family: 'Inter UI', san-serif; right: 3px; top: 15px; -webkit-appearance: none;"
100− type="submit"
101− name="subscribe"
102− onclick="_paq.push(['trackEvent', 'Mailing List', 'Subscribe'])">
103− <span class="fr pr1">-></span>
104− </button>
105− </div>
106− </div>
107− </form>
108− <p class="mt3 mb3 mb3-xl lh-copy">You can also follow us on <a class="bb" href="https://twitter.com/urbit">Twitter</a> or <a class="bb" href="https://github.com/urbit">GitHub</a>.</p>
109− <p class="mt0 mb3 mb4-xl lh-copy">Or talk to us on Urbit: <code>~bitbet-bolbel/urbit-community</code></p>
110− </section>
111{% endblock content %}
80{% endblock content %}