Dear viewer, these subtitles were generated by a machine via the service YouTube and therefore are (very) buggy. If you are capable, please help us to create good quality subtitles: https://c3subtitles.de/talk/2482 Thanks!
[Music]
elen is presenting to us decent patents
on ux library for decentralization
welcome thank you so
[Applause]
much after that last lightning talk I
feel like I'm being very greedy with 20
minutes but maybe we'll just have more
time for questions um so I'm here to
talk about decent patterns in open 's
library for decentralization this is a
project that I guess I started a few
years ago with a small team of
co-conspirators some of whom are all in
uh at this Camp actually so you can meet
us too and talk more about this um I'm
hoping this talk would be interesting to
those of you who are building
decentralized Technologies um but of
course also people who are generally
just knowledge workers right like if you
have done a library in your life U maybe
you'll run into some similar questions
that I'm going to raise today um
similarly I think it's an interesting
answer to the question what can
designers contribute an open source um
this is something that I've been
thinking about for a long time so I
think maybe maybe there's some answers
here but um but why why why build one in
the first place um so I'm a designer uh
I work in decentralization uh
Technologies uh around that and whenever
I work with people uh you know you you
know how it is you go into a small team
you work with them intensely for a few
months and then you go to another team
and you go to an organization and then
maybe you get a chance to talk to
another designer but basically you're
kind of alone and but as I was working
alone with all of these groups there
were just some recurring questions that
everybody had right um how to
permanently delete content this is uh a
very very common question if you're
working P2P how to store encryption keys
where to store them if you have multiple
devices and you have no Central
Authority uh how to ensure a critical
number of peers being online right
that's so that the content can be
replicated how do you communicate the
unusual privacy and security properties
of your new technologies um How do you
explain a Federated architecture I think
we saw a lot of that with the migration
to Mastadon of how to do it and how not
to do it um and then finally overall
like very abstract questions like how do
you even distribute trust and power
right like what is the right way to do
it and I see all of these teams
struggling with that
and as I was working on it I was like
surely someone thought about this you
know surely someone has come up with a
general solution to these very general
problems and um I
was no I was sitting there I was nope uh
nobody has really written like bigger
pieces of like solutions to these
problems and more than that it wasn't
just that I couldn't find those
resources that I needed for my work but
it was also somewhat of a a general
adoption problem something well ux
problems that caused adoption problems
and by that I mean most of us who are
building these Technologies
decentralized not um we're seeing that
as a vehicle to drive or at least
support sociopolitical change and for
sociopolitical change to happen you
really have to have a critical mass of
people using it right it doesn't mean it
has to be the whole world but it means a
critical mass of users need to be using
this tool and adoption also is actually
very well understood like products and
services get adopted you know by some
very common U you know systems like
people are infused about it and then
some people are Visionaries they see it
and then finally the pragmatists the uh
conservatives and the Skeptics follow
but you know that curve is very well
understood and as I was working with the
folks I realize that we really never
move much further beyond the first group
of people right the people who want to
try out everything who want to show you
a proof of concept and who are really
excited about it but there was very
little movement forward and in my you
one of the reasons for that is when you
have new technologies like this you
don't have a lot of you don't have a
common framework you can build into when
you have new Concepts and everybody
names it differently right every user
new user who has to learn this has to
learn a completely new framework this is
super hard so in my view when I was
thinking about adoption I was really
thinking about something like design
standards like what would a good
standard be as you are building this new
technology and by standards I don't mean
sort of generic guidelines
like always give people good error
messages when you build a tool right
like not like generic things like that
but also not super specific things like
Apple's mobile interface guidelines or
anything like that like something
somewhere in the middle what was that
middle
right and then I realized actually that
middle is also very well understood um
this this is what I had to do to sign up
for this talk you know you you go to
this website either you have an account
already then you log in or you don't
have an account and you need one then
you register I see another pattern there
uh reset password right you lost your
password you reset the password there is
a language switch I don't know if you
can see it on the top right on the
bottom you have like the the legal bits
right like all of this is something
that's familiar to us just as users on
the internet like it's something we see
day in and day out we're trained to sort
of understand how that user experience
is supposed to be and in in that way
we're sort of learning a language
learning a language of how to interact
with these Technologies and this idea of
having a language is also not new um
this is a book by Christopher Alexander
1979 a Timeless way of building it
really details this idea of um how you
can see different patterns in the World
Christopher Alexander Was An Architect
he was meticulously documenting
different ways of looking at sort of
buildings um Urban infrastructure uh
small room like window placement um and
he he defined this idea of a pattern as
a careful description of a perennial
solution to a recurring problem so again
buildings right people have lived in
buildings for thousands of years you
don't need to reinvent the wheel when
you're doing a new building you just
look at existing buildings and this is
what he was was doing as he was sort of
collecting these patterns and this is
just one example for sort of urban
planning like these are the the typical
ways of how you can put buildings
together right like a very simple idea
he's just going around collecting
different ways of putting buildings
together so what I and the small team
I'm working with wanted to do was to
just sort of collect these things and
see how we are putting our language
together how we could put our language
together and with that I just want to
show you really um the thing that we
built this is decent patterns.com it's a
pattern Library meaning that we have uh
you know different categories and
different patterns sort of explained uh
to a general audience the first thing we
had to come up with was a template for a
pattern so I'm just going to show you
really um this is a pattern we called
host roulette of course the name is the
most important thing because that is the
thing that explains it and people can
refer to it
um so host roulette um is addressing a
design problem the design problem is
when you are signing people onto a
Federated system uh you want to give
people default options that's just good
ux but if you give everybody the same
default option it's not much of a
Federated system anymore right so host
roulette very simple solution you
randomize it you're putting the host on
a roulette get I don't know um so
basically what you're doing is is you're
randomizing the um sign up process and
you can achieve better distribution of
your users and then we so we describe
the solution and then give an example of
who's already doing this in this case
this is nextcloud um and then we again
this is a short one but why choose host
roulette right like understanding what
contexts uh what reasons you would have
to actually uh actually use such a
pattern then we have best practice these
are just tips from the actual practice
of implementing these patterns um a
small discussion potential problems with
a pattern a takeaway and then some
references where you can learn more so
this is the general template that we
have for a pattern um and importantly
here I think uh we also have the option
for you to just edit it on GitHub so you
can always just you know join the actual
uh GitHub and uh see what's you know
what what you might want to change
what's inaccurate what you might want to
add um the other thing that we did which
I think is also part of running a
knowledge base is we did um name
categories we basically identified even
more kind of overall topics that are
interesting here in decentralization we
think those are sort of around roughly
four different categories where it's
different from centralized paradigms uh
and that's identity and
agency moderation and
curation sharing and permissions and syn
and status I'm not going to go into
detail on you know why they're important
but I think for any of you who have
worked in decentralization hopefully
those categories ring
true
um yeah I think this is just my very
quick demo of the library um you can
play around in it there's also you can
just look at all the patterns if you
want to see them all um again the most
important part here may be the naming of
it um and then the other things just
sort of come uh themselves you'll see
that there many there are very different
levels of um kind of yeah gener well
generality here like some some of them
are very specific like a visual idea but
some of them are I don't know I'm
looking at cautious optimism that is an
idea of how to even build a protocol
like how to think about trust in a
protocol things like that so we really
have sort of like very large ideas IDE
and very small ideas all collected in
this one pattern
Library um next I want to talk a little
bit about like okay so what have we
learned um in doing this I think one
thing that was really interesting for me
to see is when we first started it we
were very happy about putting uh QR code
verification in it it was a very
immediate way for devices to connect and
to verify it had great security
properties it had it was just very
immediate um and then the pandemic
happened and QR codes were everywhere
right every like all the different apps
that you had like introduced QR codes it
just really sort of accelerated that
development and then um you see things
like this I don't know if the video is
going to be very much visible but this
person is in Atlanta and is just peeling
off the QR code from a parking uh ticket
uh provider I suppose and that's that's
what happens right like once you have an
idea uh that is out there in the world
and people learn to use it like it's
actually first of all what a success
story for QR codes but also here are the
caveats here are the consequences that
um that come with that so how do we make
sure that the patterns we do have you
know I mean I'm not saying we have to
see though so far into the future but
what kind of critical discussion what
kind of context can we actually provide
people with um who are using this in
their actual
development the other thing we sort of
ran into is um a question around
descriptive versus prescriptive ways of
presenting the patterns and by that I
just mean descriptive as a you know it's
a description or just showing you the
actual patterns prescriptive is there is
some recommendation coming with it right
so in a descriptive sense we have
collecting existing Solutions and
relating them to one another so the work
that you do there is mostly just finding
the right level of abstraction and
making sure that the patterns you have
in a library are are described correctly
and you're to inspire you're there to
inspire people you're not not more in a
prescriptive world we have uh a library
that perhaps creates new solutions to
these problems so you really are
generating new content um maybe you're
testing and validating them with you
know real users in the real world and
you're making sure that whatever you
build is actually going to work and not
just uh
hypothetical in that case then the
library is to guide people to really
offer some guidance and recommendations
so we're still sort of unclear about
that right now it's a collection and we
do think most of the patterns we have
are good but that's just our opinion
right and we know as designers that a
lot of the things uh we we design aren't
necessarily good until we test them so
that's it from me um you can check out
decent patterns.com we obviously
obviously welcome contributions and also
shout out to the team raised there we
have Vincent and KN also um and if
you're interested in pattern libraries
in general you should also check out I
mean they're General libraries that you
can just go to that have ux patterns if
you're a designer and trying to learn
how to design but there's also
particular libraries I really would
recommend for privacy security for
social media uh there's one about
digital public spaces being made right
now of course there's also anti patterns
you should think about patterns that are
deceptive um those are all great
libraries that you should check out just
if you're into patterns in general and
um that said I would love to answer your
questions thank
you okay um thank you elen Applause are
fine but I thought maybe we uh take the
time for questions we have time for two
because we're a bit behind schedule what
are your questions
to does somebody have a question
I just one question not uh I'm really
cous about XI and I wanted to know if I
wanted to know more because you gave me
a lot of links if I wanted to have to
know more about it where I could look
into it about what's new because like
what look what you did was really is
already Edge but I'm really curious
about the world field because it's as a
developer it's really interesting for
me yeah I think I mean so those are good
links to look if you're into patterns I
think it's always difficult to think
about how patterns fit into the
development process because it's very
abstract and sometimes you do need a
designer to help you actually put the
pixels in place right like it's it's a
bit of a different type of work um but
if you're interested in uxui in general
like they're awesome resources the one
that I like a lot is the interaction
design Foundation they have a lot of
really good courses and it's like a
foundation in Denmark that just sort of
does good work and it's sort of very
classic and and uh well presented I
think we have time for one more
question
anyone okay then I'll say thank you elen
again go talk to elen if you have other
questions it was nice to have
[Applause]
[Music]
you