Galen,
Thanks for the very thoughtful reply to my comments. The problem for the
tech-savvy (but not CompSci savvy) Urbit uninitiated is that you are asking
them to imagine some of the implications of a general network computer,
when in all likelihood, encountering Urbit is their first introduction to
the concept. They simply don't have a mental model to enable them to do
that (at least at first, and not without scaling the steep learning curve
of figuring out how all the pieces of Urbit fit together). To get them
quickly up to speed on why Urbit is important they need to be spoonfed a
vision of what Urbit will - eventually - do for them that is grounded in
their current experiences of the internet.
I will illustrate by reworking the use cases you laid out:
*Data permanence. *
Currently, internet users do not control or manage their data. Instead, web
services like Facebook host and act as the custodians of your data. As a
user, you are given a very permissive data-visitation policy, but you don't
have actual custody. You only have the assurance of your custodians that
they are not doing creepy things to your data in the middle of the night.
If you want to check your data out of the facility, you have no guarantees
that you will be able to get back your data in a meaningful way. Urbit is
designed with the intention of storing your data, giving you control and
custody over your data, but still giving you all the benefits you get from
the web services you have grown used to. When Urbit is a bit more mature it
will be possible to write a Social Networking application for Urbit (i.e.
an appliance called SNAFU). Today, Facebook stores all the photos,
comments, likes, cat gifs from you and your social network in their
sprawling datacenters. When you check Facebook in the morning, that
constellation of new overnight data is extracted from the various fields of
their vast database, and assembled in your browser, and organized along
your timeline. With SNAFU, you will go over to your tablet, fire up your
moon app(??), which is pointed at your star (your cloud Urbit server).
Since Urbit is a network computer that sees no difference between local
data and network data, your SNAFU appliance is able to extract the relevant
overnight data updates from the constellation of every Urbit user in your
social network, and render their updates in your browser organized around a
timeline. Because every Urbit stores all user data permanently, it is
possible for the SNAFU app to look back in your timeline, and the timelines
of of all your friends back to when then they first installed their Urbit.
SNAFU and Facebook can deliver similar user experiences, but with SNAFU,
every Urbit user has total control over their personal data, and a
fine-grained ability to control who can see that data.
*Modular applications.*
Importantly, the designers of SNAFU don't get to become the next
Zuckerberg. SNAFU can't maintain a walled garden around their userbase,
since Urbit is designed around a robust identity network. Inevitably, a
competitor like FUBAR will emerge but since FUBAR and SNAFU have access to
identical user-bases (i.e. all Urbit users), the Urbit applications will
have to compete on functionality or ease of use. Urbit is designed to make
it trivial to migrate between appliances like SNAFU and FUBAR with minimal
effort and no data loss. {the white paper already laid out how Urbit
changes software competition, so I won't belabor that point here, where it
is a good point to make}. Today's other social media web services (Twitter,
Pinterest, Instagram, etc.) are all built around the activity of rendering
in-real time the streams of stored saved videos, photographs, text
comments, and actions like pinning, liking, or upvoting that is performed
by the network of participants. Much like SNAFU, all these services could
be re-created on Urbit. With Urbit, instead of having to use separate apps
and websites to manage your social media, you - and your data - can stay
within your Urbit, but then get updated and syndicated back and forth, out
and among the relevant user community. This can enable social media
services and streams to be unified within your Urbit, with you in control
over whether a given image or comment will be shared out to Ur-Twitter,
Ur-Pinterest, or Ur-Instagram. It also offers a new possibility of remixing
and aggregating these media streams in entirely new ways. Finally, since
you own your data, and you control your Urbit application, there is minimal
risk of you losing access to the web services you have come to depend on.
Internet users are increasingly reliant on free tools like Evernote or
Diigo to enhance productivity. Past examples like Ma.gnolia and Google
Reader, and the long list of innovative web companies that were acquired by
Google, and then went offline demonstrate that there are real risks of
losing access to important internet tools, and potentially losing years of
accumulated information.
*Reputation and content quality. *
The internet has not only balkanized the interfaces of social media sites,
but it has allowed a handful of websites to dominate the management of
identity and reputation. Reputation - for sellers, providers, or products -
is a killer app that has helped fuel Internet empires. Online auctions +
buyer/seller reputation = E-Bay. World class logistics + quality product
reviews = Amazon.com. Private vehicles + Smartphone App + Driver Reputation
= Uber. Urbit has identity and reputation hardwired into the software,
jailbreaking reputation and identity from the services that jealously guard
their reputation systems. Urbit creates a unique identity for each user,
and provides a foundation for the the creation of *contextualized
reputation*. For a given Urbit identity, the reputation might vary widely
depending on context. Ur-Yelp might give a restaurant 3 stars, employees
love the restaurant because of the pay and management, the health
department thinks the restaurant has too much rat poop in the
kitchen, lenders love the restaurant because of their strong balance sheet,
and suppliers loathe the restaurant because they slow-walk their payments
to vendors. Urbit provides an identity infrastructure enabling all these
different facets to be managed within a stable identity system and
structured data model. Reputation also can be applied to internet content.
Web publications, authors, and even article commenters all can potentially
be assigned a quality reputation by the Urbit userbase. Of course, opinions
will vary dramatically between Urbit users, but with an integrated
reputation infrastructure, information on Urbit can be more easily
categorized, structured, and searched in order to filter out the
low-quality information that is unrelated to a given Urbit user's interests
and needs. Democratic Dorothy and Republican Robert might be diametrically
opposed in the perspectives that define a quality source of political
information, but Urbit's reputation infrastructure can use their
quality assessments, and the quality assessments of like-minded users to
generate personalized recommendations that both find useful. Finally, it
should be noted that Urbit only provides the identify infrastructure and
data formats. The users and developers of Urbit applications are able to
scale those tools up to supporting the reputational needs of the next Uber,
or get scaled down to support the more modest reputation requirements of a
community tool-lending collective.
*Privacy.*
Current users of the internet don't have any, which has been made
especially clear after the Snowden revelations. Urbit keeps all of your
information encrypted on your star, has strong tools for authenticating who
can access your information, and uses encrypted connections to secure all
your information as it transits across the internet until it is rendered in
a user screen. Urbit doesn't just offer privacy, it can blur the boundaries
between pure privacy and open transparency by enabling the creation of a
new middle ground of verified pseudonymity. To illustrate, consider how a
healthcare provider could use Urbit to transform how patient medical
records are handled. Your Urbit ID is written on your health insurance card
(talsur-todres). Your electronic medical records are kept inside your
personal Urbit, and the records are on the your Urbit
at /~talsur-todres/personal/MedRecords. When you checked in at your primary
physician the first time, you enabled access to your MedRecords directory
to the doctors and nurses in the practice. Secretaries and payment
processors can only access the basic billing and account information in
your file. When you go in for a checkup, the medical professionals point to
your MedRecords folder and record all of the annoying box-checking that
occurs during an exam, bringing your file up to date. When you go to a
specialist for a consult, their annoying box-checking gets recorded in your
file. When you need lab tests, the lab is able to upload the results to
your MedRecords folder, and by extension share the results with your
physician. Your medical records belong to you, but the people who need them
have access to them as if they were stored in their own system, and the
process continues to update automatically as you engage the medical system.
But, since Urbit can blend identity and pseudonymity, entirely new
capabilities are possible. You could potentially opt-in to participate in
longitudinal large scale medical studies, where researchers are able to
search across all participating MedRecords directories, with all personally
identifying information stripped out, but preserving the relevant outcomes
data for medical treatments. Such research is currently impossible to
perform today across large groups of patients, but with Urbit, the
possibility for such an initiative has already been baked into the
operating system.
*My own network of devices.* (you nailed this one, so I only tweak out of a
sense of completeness)
The Internet of Things of coming, and it is only a matter of time until
there are more sensors and devices on the internet than there are human
users. In 20 years, the number of digital devices on the internet will
vastly outnumber the number of human users. How are all these devices going
to managed securely and easily? The current internet offers few solutions,
and the potential for compounding problems. Today you need to reset your
Nest thermostat, but tomorrow you will need to re-pair your network
connected light fixtures, and eventually you face the prospect of resetting
the password on your refrigerator. Urbit has been designed to handle the
complexity of a mature internet of things. Each Urbit at the âhuman sizedâ
2^32 tier of the address space also signs the certificates for ~64K
children. In practice that means that I can manage and secure a whole
fleet of Urbit-enabled devices that are able to sync and share their data
with my Urbit as I see fit. Urbit could also enable entirely new
applications like the "seeing spaces" that Bret Victor is promoting (
http://tinyurl.com/o8m57wn). All the components of your electronic devices
could potentially report their current state through the Urbit identity
network, and get projected onto the walls of your "seeing space." For most
individual users, managing the internet of things is not particularly
compelling (yet). However, for warehouse managers, logistics companies,
supply chain integrators, and retailers who need to manage their product
inventory, easily managing the Internet of Things is a pressing need that
will likely explode into a massive IT headache in the near future. Urbit
provides a robust identity system to harness the complexity of managing the
massive network demands of the Internet of things, and provides and
infrastructure to bridge the needs of the sensors and devices of the
Internet of Things, with the real human users on the Urbit network.
This is Urbit spoonfed to the Urbit-curious. I think I pretty much grok
your tech, within the limits of my liberal arts education. I apologize in
advance where I have botched my interpretation of the technical
implications of Urbit.
All best,
Mark
Mark,
So great! Letâs see if I can contribute (off the top of my head) a bit of *Urbit
for Dummies *or, even better, *Urbit for the Urbit-Curious. *Which is
probably a community we grossly underestimate. Letâs start with the simple
Urbit is designed to be a general-purpose personal server: a computer that
lives on the network, stores your data, runs your programs and is under
your control. Urbit is also the network of these servers. The Urbit
network is finite and semi-decentralized, so each Urbit is owned
cryptographically as if it were property. Today Urbit works reasonably
well and is pretty stable for anyone whoâs comfortable cloning a Git repo
and building from source. Urbit 2015 does well at publishing static
content to the web, chatting with other Urbit users, sharing code and
talking to other web services using APIs among other fairly simple things.
But, as you say, Urbit is designed to grow into something much more robust.
Even for a savvy semi-technical person itâs not too difficult to
understand the technical outlines of what weâre doing, so letâs get them
out of the way. Urbit works to treat the cloud (or any unix box with an
internet connection) like the internet treated the phone system. We build
a new layer on top, treating the cloud as infrastructure for something
new. Urbit is built out of three parts: a simple combinator VM, Nock; a
functional programming language, Hoon; and an operating environment, Arvo.
Arvo includes networking, identity, global revisioned file storage, an
application model, a build system, a web server, a terminal driver, and a
few other utilities.
Since most of the modern internet runs on Unix machines, each individual
service has to bridge the gap between the combination of an OS from the 70s
(Unix) and a network from the 80s (the internet) to serving you a nice
looking webpage for you to interact with. Doing this involves
re-implementing some collection or âstackâ of the services that Urbit
combines into a single operating environment â and this is where we could
spend a lot of time complaining about how the internet is broken. No need
to go on about that. Our point is simple: we have built an internet where
each app serves N users because Unix just isnât designed to serve an
What is the big deal?
Most broadly, that we might actually be able to give general-purpose
computing back to individual users. The computer feels less and less like
a tool as we have made the move to doing everything online. The modern web
is incredibly convenient, but because most services are not easily
interoperable thereâs very little unexpected output todayâs users can
generate. Users are prescribed their experiences almost entirely.
Imagine, instead, that all of the web services you used simply accessed a
single repository of data. You never used more than one login, you never
had to struggle to move data between services. You never worried about a
service disappearing. Would we ever invent the present way of doing
things? Our laptops remain more powerful in terms of their ability to do
many different things than our collection of web services. By powerful I
mean that the individual can actually produce new and unexpected results of
their own, that they can exercise *their* power over the machine as a
creative tool. In our view, we ought to have a general-purpose computing
solution that can live permanently on the network. Open-ended tools are
enormously important to building and shaping ideas. But, I concede, that
may be a bit of a vague argument.
If youâre even slightly compelled by the above, then you can see that
there are a whole laundry list of smaller deals that can follow. Imagine
that we all owned a general-purpose computer in the cloud that was
universally available, what would we want to do with it? You touch on a
few good points in your previous messages. We have thought about many of
them, but there are many that are yet to be explored. In general our
approach is very deliberately *platform first*. There are surely some
applications (hopefully some that can satisfy the impatience principle)
that we will develop, and hopefully many that others will contribute.
Urbit is 100% open source, including the high level apps that we ship with
it. Although itâs possible, in theory, to ship compiled nock code. So
anyway, what do we see as areas where Urbit applications can bring
something new to the table?
Privacy
Because identity is such a basic primitive of the Urbit system building
applications that deal with privacy in new and unexpected ways is
possible. Verified pseudonymity is an interesting area for applications to
be built that is difficult with the current architecture. Want to interact
with a group of *real humans* on a specific topic, without having to reveal
http://werd.io/2015/help-me-debug-a-personal-project.) Your example
about advertising is another extension of this thinking. The user can
retain control over the personal details that they share when interacting
with an application. Instead of social networks that are purely
person-to-person, perhaps instead we could build relationships that are
purely context-to-context.
Data permanence
Why is it that my Dropbox files donât appear in my Google Drive? Why
canât I send a Facebook message from my email client? Urbit is designed
with the intention of storing your data permanently: both the state of your
applications and your filesystem data. Forget the long-term implications
of this, in the meantime itâs the natural place for you to ease the pain of
interoperating with the web services of today. With a stateful client,
like Urbit, connected to all of your web services you can actually make
them work together as they should. In some far future it means we should
be able to address this message as
/~talsur-todres/mail/urbit-dev/~2015.10.31..11.29 and get the exact state
of this message as Iâm typing it. Well, if I were typing it into an Urbit
that was a more mature piece of software.
Reputation and content quality
With the rise of search the modern web is almost entirely structured
post-facto. Because thereâs no fundamental system of reputation built in
to the internet stack information has to be organized by an outside
authority. This creates a kind of strange hierarchy of control when it
comes to relevance. Google is a fantastic, incredible company, but it
isnât directly incentivized to solve the underlying problem. If we could
reliably attribute content to individuals it would be much easier to bundle
that created content with structured data, and leave it to the user to
decide what parts of that data to share publicly, semi-publicly, or not at
all. Letâs say I want to read first-hand accounts of the 2011 T ohoku
earthquake and tsunami. Not news articles, not secondary sources â but
individual experiences. Perhaps most people donât want to share those with
attribution. No problem, pseudomyity works really well for something like
this. The semantic web is a great idea, but without a strong identity
solution that structured data is useless. For search to really get us to
what we want we need a combination of an identity solution and a structured
data model. Reputation extends itself into a lot of other areas as well.
Do you really trust Yelp reviews? Solving reputation in a decentralized
way gives us the ability to trust and build meaningfully on top of many
kinds of content.
Modular applications
http://radar.oreilly.com/2015/10/do-one-thing.html. With an Urbit itâs
easy to imagine actually building small, single purpose applications that
the user can compose themselves. Because of our current system software
nightmare each service has to implement complete suites of functionality
independently to hang on to as many users as possible. Having people
bouncing around between services is bad for business. Do I really need
multiple writing interfaces? How about a single writing interface that I
can just easily connect to email, notes, or even Twitter or Facebook?
Thatâs a good start. Then imagine if we can simply apply the unix
philosophy to high level applications â sort of as if you took all our
modern web applications, broke them into tiny pieces and made them
interoperate with one another.
My own network of devices
Each Urbit at the sort of âhuman sizedâ 2^32 tier of the address space
also signs the certificates for ~64K children. In practice that means that
I can run a whole fleet of Urbits that are syncing my state and data as I
see fit. I think the canonical example here is a fridge (why does the IoT
always start with a fridge?), but wouldnât it be nice if my biometric
devices were actually just running as a part of the same networked computer
that I owned? Urbit is designed to treat network resources like local
resources, so getting my fleet of Urbits to work together is baked in from
the outset. What about these seeing spaces that Bret Victor has been
talking about? How are all those devices going to interact with one
another? These examples are from the future, but itâs not technically
infeasible today. Today Urbit more or less duplicates the functionality of
Dropbox. Not so successfully for large files, but I can easily write code
on an Urbit running on my laptop and have it sync both to a server in the
cloud and a desktop in the office. GitHub is great, but isnât the whole
point of Git decentralization? And wouldnât it be nice if GitHub were open
source so you could modify and extend the interfaces?
There are so many dreams from the history of computer science and
interaction design that have either not been realized, or have been lost
during this early phase of the internet. Networked computing is still so,
so young and is increasingly a monoculture. Urbit is a construction site,
certainly, but itâs a construction site designed as a counterpoint to that
monoculture. At the heart of our project is concerned with asking, how can
we build a more humane computing experience for the individual? At present
we think we have an outline for an answer, but we need others to
participate in fleshing out what that future might look like. Urbit is not
(and cannot, by design) prescribe to its users how it can be used. Urbit
is an open ended tool and is meant to capture the imaginations of both its
early pioneers and its most naive users.
So, what else can I clarify or elaborate on? Your perspective is much
appreciated â keep it coming!
G
Raymond,
That is a fine answer for someone who understands programming and
computing. For a semi-technical person who is only "Internet savvy" it
makes Urbit sound like a better form of an open identification system. For
an average current internet users (and potential future Urbit) user it is
way over their head. Which is fine, if you are reaching out to more
technical users and early adopters.
There currently is no *Urbit for Dummies*. The existing articles/docs
focus on why the internet is broken and how Urbit is going to fix it.
Great. But to the uninitiated, Urbit *looks *like some sort of old
terminal interface with an over-engineered chat client. Which is fine, if
that is the state of the art for Urbit2015. But the documentation /
propaganda does not clearly indicate - for average folks - what the big
deal is.
- Ok, Urbit can be viewed through a browser, and communicate over the
internet. Does it interact with existing platforms like Twitter and
Facebook? Could existing web portals make themselves Urbit-friendly in some
fashion?
- Currently urbit is a command line interface. Will it get a graphical
interface? Will that be in the browser, as an application running on a Unix
partition, or something on Windows/Mac.
- Can you develop 3rd party programs on top of Urbit? Do those
programs need to be crafted in Hoon,or can 3rd party developers develop on
top of the underlying Urbit foundation with existing programming languages?.
- Does Urbit have unique features that make it more defensible to
hacking, DOS attacks, or government/ISP censorship?
Please don't take the time to answer any of these questions. I only bring
them up to illustrate the level of ignorance among your future
non-technical user base.
Most importantly: what is the vision for where Urbit is going. What is
Urbit2018 going to look like? What about Urbit2020?. I know the Urbiteers
have framed the walls and hooked up the electricity and plumbing, but what
is the place going to look like when the walls are finished, and the
counters are done?
I brought up search earlier. According to this (
http://unqualified-reservations.blogspot.com/2010/03/future-of-search.html),
Urbit has the potential to un-suck search and dethrone Google. That is a
nifty vision, why not update it and mention it?
I also brought up internet advertising. Since individuals own and control
their Urbit, and their private information stays in their control, they may
be willing to help make advertising better and more accurate by more fully
giving relevant marketing information. How much is it worth to a pizza
company to be able to contact everyone in their zip code with a special
friday offer? They contact UrbitAds, and (waves hands), who delivers that
ad to opted-in Urbit users in only that zip code. If UrbitAds rakes some
money off the top of the transaction and return the rest in the form of a
micropayment to the people who received those ads. Voila, Urbit gives you
filtered internet advertizing, and even pays you for the privilege. ,
That is the kind of sizzle that non-technical users are interested in, and
can understand. Seeing a more tangible vision of what Urbit can become
might make them more willing to become pioneers and sign up for that rocket
to Mars.
Mark
Post by Raymond PascoThis is one of the purposes of documents like the "design of a digital
republic" one, so any insights as to where that falls short would be greatly
appreciated.
As a "pleb user", you are not a first-class citizen of Internet now.0,
unless you're a major geek who confines himself to aging Internet then.0
services (email being the only one that remains at all relevant these days,
and who runs their own mail server and isn't one of the aforementioned
"major geeks"?). Today's J. Q. Plebs can sit down at their computer and be a
digital serf from beginning to end of their session, even down to logging in
to what Microsoft is calling "Windows-as-a-service" with their MSN account,
and logging in to their copy of Chrome with their Google account. Bruce
Schneier has called this "feudal security" [1] - Google, Microsoft,
Facebook, Twitter, and other major corporations take on all the risk of
running public-facing Internet hosts, while the serfs "work the land" -
which often means something like "use our service and give us pageviews, a
social graph, &c. that's valuable to advertisers".
With Urbit, you do accept a little feudalism up front in your wallet. But
you haven't signed on to work the land as a serf - you've purchased a
freehold. In less metaphorical terms, you've paid a CA to issue you a
certificate for an inherently scarce 32-bit network address. If you pay
~doznec (soon to be ~marzod) for the ticket to ~ramtev-wisbyt, you're a
first-class citizen of the Urbit network, and ~doznec is certainly not
eavesdropping on your communications (which are all end-to-end encrypted)
and selling anything about them to advertisers. You will likely also pay a
hosting company to host your urbit, but this is for the same reason that you
host your Unix servers with a VPS provider and not your bedroom closet,
rather than the same reason that you host your Twitter account with Twitter.
So, what about the "risk of running public-facing Internet hosts" that
necessitated Schneier's "feudal security" in the first place? Here at Urbit,
we think that this is essentially a failure of the design of Unix (remember,
a mainframe OS!) + Berkeley TCP/IP to scale from collegial academic networks
to the worldwide use it sees today. Urbit is the equivalent of moving to a
new house with up-to-code electrical wiring rather than constantly buying
two-prong adapters and having superstitious rituals about which combinations
of things will trip the circuit breakers. Curtis's whitepaper gives the full
explanation, but Arvo is an operating system that is "designed from the
ground up", to use an awful cliche, to be on a network.
[1]: https://www.schneier.com/blog/archives/2012/12/feudal_sec.html
Yours,
r
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "urbit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to urbit-dev+***@googlegroups.com.
To post to this group, send email to urbit-***@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.