Waiting..
Auto Scroll
Sync
Top
Bottom
Select text to annotate, Click play in YouTube to begin
00:00:10
hi everyone I'd like to just jump right in so I'm going to start with a story about language in 1972 Italo Calvino published Invisible Cities fictionalize is a series of dialogues
00:00:21
between Marco Polo and Kubla Khan each serving is a contemplation on time memory and language at one point Polo speaks of his time in hypatia a city whose words are unchanged
00:00:34
but whose meanings are distorted the gardens are places of sadness the palace is a prison and the vast libraries are dens of depravity regardlessing to the Coggin Polo has this to say
00:00:48
there's no language about deceit here Calvino speaks not only of the presence of Lies but also of the absence of absolute truth societies has no essential meaning then
00:01:00
what does it mean and where does that meaning come from I argue that questions like these are fundamental to our understanding of distributed systems and that by drawing on ideas from post-modernism and
00:01:12
post-structuralist thinkers we can conceptualize the software that's robust in the face of a rapidly changing and diverse world this is a little bit of a weird topic though so I want to Anchorage against
00:01:24
something more familiar imagine a social network it has over 300 million active users and for many of them this site is their connection to the world and then one day something happens
00:01:36
maybe the site crashes and it doesn't come back up or maybe the company is acquired and things quickly begin to change for the worst huge numbers of people are suddenly thrown into a state of panic as they
00:01:48
realize just how fragile their communication channels really are but then they begin to find their escape not through another social network but through a network of social networks each with no more than a few hundred
00:02:00
people each but all of them able to communicate between themselves here Services crashing or reorganizing is not just a daily occurrence but a feature that offers the network resilience and adaptability in the face
00:02:13
of change in many ways the work I'm talking about is an extension of this idea so I want to start by Framing things in a similar way what does the world look like when you
00:02:24
have millions of tiny databases I'm Quinn and I'm here to talk about post-modern systems and our subjectivity and a project my team has been working on codename dialogue I'm an applied researcher at fission
00:02:39
where I've been spending my time experimenting with new ways of building distributed systems in my free time I often spend my nights tracing through the history of programming languages trying to piece together the context
00:02:52
that led to their development and how the ideas behind them have morphed and shift over time that interest is What's led me to many of the ideas I'll be sharing today first we need to speedrun through
00:03:03
post-modern philosophy post-modern philosophy was introduced by Jean Francois leotard who defined it as an incredulity toward metanarratives this is only a partial definition though
00:03:15
and critics often misunderstand what it is that leotard is trying to say to him post-modernism isn't a period of time following modernism but instead a response to modernism's tendency to
00:03:28
collapse complex world disbanding events into simple Universal explanations as Paul sellers puts it the postmodern condition is characterized by the coexistence of a multiplicity of
00:03:42
heterogeneous discourses in this way I prefer to think of post-modernism not as a tool whose imprecision allows you to say anything but rather as a mode of thinking which recognizes innate complexity and then
00:03:55
strives to understand it through a plurality of lenses whether cultural Geographic or otherwise without doing this work we privilege the narratives which fit into a framework of precision and formalism and in doing so
00:04:08
we fail to account for the chaos inherent to the world I also think that this is something we as system designers are especially prone to do and in a dangerous way we have a tendency to build clean simple
00:04:20
models of the world and then we use those models to make decisions which further impact the same world that we're modeling and a city is not a computer Shannon Mattern criticizes the use of digital dashboards and the governance of
00:04:34
modern cities algorithms and interfaces tend to bracket out those messy and disorderly concerns that simply do not compute when Calvino says the lane there's no
00:04:46
language without deceit I think this is some of what he means even beyond the contextual filters we apply to our communication the process of deciding what to communicate at all serves to legitimize some discourses
00:04:58
over others and as we see all too commonly in the tech industry it's only natural that the decisions we make will fail to account for the needs of the people least empowered to articulate them it's not even that I think these are
00:05:11
malicious decisions made by malicious people but that the entire methodology of top-down design that's pervaded software development since the 70s is fundamentally at risk of building software that models the world using
00:05:24
simplifying and totalizing assumptions often rooted in the experiences of the designers of that software this ties into a point Sussman made in 1999. computer science is in deep trouble
00:05:37
structured design is a failure this is from a short essay titled robust design through diversity where assessment argues the top-down structure design leads to brittle inflexible
00:05:49
systems that resist modification and fail when their underlying assumptions are inevitably violated in part his point is that in designing a system many plans are proposed and all
00:06:02
but one of these are discarded when the system is finally built all of this diversity of thought is just erased in favor of a single unified solution that sacrifices robustness and flexibility
00:06:14
for false Elegance later on in the essay he claims that to advance beyond the existing problems we must change in a fundamental way the language that we use to describe computational systems
00:06:28
he believes that there's lessons to be taken from biology and that systems can be composed from autonomous agents which together evolve according to principles like morphogenesis it's his use of the word language here
00:06:40
that I want to focus on though Saucier was a Swiss linguist whose work laid the foundations for what's become known as structuralism an early model of language that focused on meaning rather than syntax
00:06:53
the central conceit of his model is that language is mediated through synchronous spoken conversation between participants conversation essentially creates a circuit between the participants of a conversation through which the exchange
00:07:06
of ideas takes place and consensus surround meaning emerges and his model signs were composed of two parts a signified and a signifier the signifier was some linguistic unit
00:07:19
like a word which represented a concept called the signified saucier's classic example was the use of the word Arbor to represent both the word tree and the image of a tree importantly though while this relation
00:07:33
between the signified and the signifier is essential it's also completely arbitrary and so the meaning or value of a sign is given by the network of relationships between all signs in a language
00:07:46
where things get interesting though is with the introduction of time under South here's model the linguistic value of a sign is essentially immutable but it can slowly shift in time in response
00:07:58
to its use by a community with the use of speech serving to Anchor meaning among the community at any given point in time there's a problem with this model though much of what we know of cesare today
00:08:10
comes from course in general Linguistics a book published by his students after his death out of a reconstruction of his remaining notes and lectures in the book is preface two of the students remark on the difficulty of
00:08:23
capturing the essence of cellzier's thoughts in written form given the irregularity of oral language and their inability to clarify intention professor to me this speaks of the model's limitation Salazar had proposed that
00:08:37
speech was foundational to language above even writing and that through conversation and meaning becomes consistent and yet not even his students could agree on what he had been saying
00:08:51
was among the founders of post-structuralism a branch of literary theory that grew out of response to structuralists like and of grammatology and darede writes about earlier philosophy's Reliance on
00:09:04
the metaphysics of presence essentially the idea truth is eternal and always at hand he connected this back to sauzer by inverting the model of language rather than prioritizing speech derida focused
00:09:17
on writing his point was that through writing a distance is introduced between both sides in our conversation and that this distance serves as both a spatial and a temporal barrier to
00:09:30
communication if language is transmitted forward in time to some indeterminate reader then there can be no notion of a fixed reference point for the system of language instead language can only be viewed as a
00:09:43
localized process defined by their relationships between signs in a given temporal and spatial context derida's criticism of structuralism reminds me of an argument made by
00:09:55
Christopher Michael John in a recent paper titled A Certain tendency of the database community the main Insight comes from the claim that real world systems are fundamentally eventually consistent they perpetuate themselves through the
00:10:08
exchange of information in the form of letters telephone calls and writing and so they must be resilient to this information being dropped delayed and reordered to aim for a stronger sense of consistency in distributed systems then
00:10:21
is to go against this nature he proposes that rather than targeting Global consistency with some primary node systems should instead be built to treat the local knowledge recorded at each
00:10:34
node as being an accurate reflection of the node's view of the world he argues that to do otherwise is inherently limiting but claims these designs are common because of the way they simplify the use of existing
00:10:47
tooling again we have a case of our technology guiding our world rather than the other way around he then goes on to briefly acknowledge the incompatibility between the designs he's criticizing and the constraints of
00:11:00
peer-to-peer networks and large-scale Edge computation there rather than one Globe spanning Network we end up with a number of smaller sometimes overlapping numbers Computing over different slices of some
00:11:12
total set of data with no guarantee of ever achieving or even Desiring system conversions the fediverse starts to approach this idea where instead of one global social
00:11:24
media feed we instead see localized communities forming using interconnected software like Mastodon and pluroma these communities Define their own norms and cultures and they decide who they're
00:11:36
willing to interact with based on shared values and interests that could be anything from Banning Nazis to Banning the use of the letter e networks like these demonstrate a shift away from decent from centralized
00:11:49
top-down control that we've normalized through technology and toward an Internet that actually prioritizes the individual needs of the people using it but in treating entire communities is the atomic unit under discussion we
00:12:02
still collapse the hugely varied people within those communities into indistinguishable blobs and addressing this means doing something radical if this problem arises when a single
00:12:13
server is used to provide service for more than one person then the obvious solution is for every person to have their own server and at that point why not do away with servers entirely
00:12:25
local first software is a recent Paradigm coined by engine switch in 2019 it defines a set of guiding principles for building software that prioritizes user agency security and privacy
00:12:38
the vision of local first software is of a world that empowers people to take back ownership of their data freeing it from the tyranny of the cloud and of the centralized services that computed the comprise it sorry
00:12:51
and local first software a user's device is the central source of Truth for that user with data all being stored locally and with a hard dependency on the network being severed instead of local first software Embraces
00:13:06
eventual consistency and makes use of techniques like conflict-free data types to synchronize data between devices web native is a local first SDK we've been building in fission it ties
00:13:18
together work we've been doing across a few different domains to support building local first applications that leverage passwordless authentication with webcrypto web authen or passkeys it provides a decentralized
00:13:30
authorization with our ucan token format and end-to-end encrypted storage with a file system we've built on top of ipfs named winfs Vince to Augustine webassembly it also supports all of this in a browser on
00:13:43
mobile devices or on a server all without an internet connection and across multiple devices to support the kinds of ideas I'm talking about today though we need a local first database too and so I've been designing dialogue a
00:13:56
decentralized edge database for local first applications dialogue takes inspiration from slight to Tomic in order to support eventually consistent views over discrete data structures like encrypted stores in ipfs
00:14:10
and dialogue data is persisted as four tuples specifying an entity an attribute of value and any causal links these causal links denote the provenance of data and they reference it using a
00:14:23
Content addressing scheme like you see in ipfs the resulting structure forms a directed acyclic graph over those tuples and to this diagram here visualizes what that might look like for a small number of
00:14:36
Rights using a query language inspired by data log we can then interpret this structure as a crdt in this case it could be viewed as an observed or removed set for a set containing the letter c and d
00:14:49
but because we're using ipfs to derive conduct IDs it also guarantees that the crdts we build are Byzantine fault tolerant which means we can support multiple writers and trustless environments
00:15:02
here rather than writing data to Shared stores we instead query over the union of potentially many single writer stores and then due to the conversion nature of crdts this means that different readers can subscribe to different writers but
00:15:15
in a way that guarantees monotonic progress towards some result this is what enables us to provide every device on the planet with its own database and allowing those devices to communicate in locally meaningful ways
00:15:28
this is an idea that ends up being especially useful in the context of encrypted data where certain readers may only have access to certain other writers in this example the reader doesn't have the decryption key for the events in
00:15:41
Gray and so they're unable to satisfy the causal links for any of their Downstream dependencies and so the resulting set as they observe it only contains the letter d in a sense we treat encrypted data as a
00:15:53
special case of network partition but rather than some of the data being unreachable due to network failure it's unreachable as a side effect of not having been granted the required encryption keys the end result was the same though and
00:16:06
the partition can be healed by later delegating access to the reader there's other reasons a reader May prune the resulting data though and revocation is a clear example of one in this case we can filter out all of
00:16:19
the blue events and end up with a crdt that's consistent with respect to everything else importantly though this logic is happening entirely at query time which means that different readers can impose their own constraints on the data
00:16:32
perhaps I don't trust some other writer and so I don't want to honor any rights that depend on his or perhaps I subscribe to a fact checking service that annotates news stories with trustworthiness course that I can use to
00:16:45
dynamically filter out non-reputable stories or maybe I subscribe to a feed of crowdsourced content warnings that I can filter and overlay onto the content that I engage with this goes so far is allowing a total
00:16:58
reinterpretation of data too like here where the set is instead treated as a counter by viewing additions and removals as increments and decrements in this way devices can repurpose pieces of a graph as different types of data
00:17:11
even annotating it with additional fields or metadata for their unique needs in the case of a collaborative test editor that might mean prioritizing your own rights over in other users but while still managing conflicts and
00:17:24
allowing them to do the same as in the case of dared as system of language the meaning of the data is given not only by the relations between it but also by the context held by each reader
00:17:37
this means that different applications can operate over the same data extending it for their domain and opening up the possibility of new types of applications this might include collaborative media libraries that directly integrate
00:17:50
private data from destroying collections or overlays that Empower users to extend and remix existing applications according to their needs this entirely inverts the way that we build systems like this by prioritizing
00:18:02
the user's agency over the sorts of top-down design we're used to and in all of these cases the focus is on trading data as a medium onto which users can impart meaning of their own rather than
00:18:13
as a commodity to be walled off and sold in a world where every device is generating and sharing information restricting ourselves to a single interpretation of that data is limiting if not impossible to reconcile with the
00:18:27
emergent and complex needs of our users and the preface to Otto places Stafford beer claims that science annihilates real systems causes relations to be lost and relegates synthesis to poetry and I
00:18:40
think that that's some of what we see in the way we build systems if we're to escape that trap then we need to move away from a single system image view of the world and instead recognize the inherent complexity of the
00:18:52
world we're modeling and the individual needs of the people our systems are meant to serve just as thinkers like leotard tried to do before us part right through Invisible Cities Marco Polo tells Kubla Khan of a city
00:19:05
named fedora Fedora is a metropolis centered around a building filled with crystal globes one for every inhabitant of the city within each Globe there exists an idealized version of Fedora
00:19:17
corresponding exactly to the desires of the person who imagined it where in one Globe The Straits are lined by Venetian canals and another elephants parade down those same streets
00:19:29
it's impossible for all of these conflicting versions of Fedora to be real and so none of them are but what if fedoria could exist not as a monument to all of these cities that can never be but as the
00:19:41
simultaneous realization of their being Sussman gave us the structure and interpretation of computer programs but maybe it's with a post-structuralist interpretation of computer programs that we'll be able to bring Fedora to life
00:19:54
and the systems that we build and inhabit together thank you I'm Quinn and I'm looking forward to meeting all of you at the party tonight [Applause] thank you oh does anyone have any
00:20:09
questions for Quinn that was a brilliant presentation by the way really incredible uh not only did uh was it interesting to learn about all that philosophy and history or whatever but
00:20:22
to be able to understand it well enough uh to understand the humor involved yeah this is rolling on the floor about that the book that everyone uses to learn this guy's philosophy was God's taped
00:20:36
together by his students that may or may not have actually understood what he meant that's brilliant what's the name of that philosopher again oh so it's sauzier I'm terrible at saying his name but the
00:20:47
book is course in general Linguistics okay which I've seen you know everywhere forever okay great um so any questions for Quinn from the audience
00:21:02
so can can I use dialogue today no uh the current state of dialogue is basically a series of prototypes that I've built in Elixir so what I've done essentially is uh Implement a variant of
00:21:19
differential data flow in a literature and then I've built a variant of data log that compiles down to differential data flow that gives you automatically incrementalized views over data uh so
00:21:32
all of the ideas work I have demos that show them off but it's all prototype code right now so I'm in the process of writing a specification for the rest of my team and we're doing a rust implementation that'll run over the rest of the web native stack that I briefly
00:21:45
alluded to web nativists though and uh there's like Google Apps clones a Google Drive clone a decentralized music players and stuff built with it all of that's totally usable
00:21:58
cool all right here we go so I can't help looking at energy attribute value causality I can't help but think that's also rdf right quads
00:22:12
exactly sorry uh you were a little quiet did you ask is the causality the same as rdf that model of the four four items uh does that not map uh
00:22:25
directly onto rdf the causality being the quad the fourth term there's definitely a lot of overlap and a lot of inspiration has been taken from rdf I'm hesitant to say that it Maps
00:22:37
exactly to it though because we are not um we're not targeting uh everything else that lives alongside the rdf ecosystem and we're more trying to find
00:22:50
like a synthesis of what we like from systems like Daedalus or datomic and rdf and so on so uh we don't want to kind of box ourselves into a corner by calling it RTF at this point okay great all right
00:23:04
any other questions all right thank you very much yeah thanks for having me
End of transcript