You may have seen my Spritly colleagues give some talks, had a few of them, and they're
also lovely and well prepared.
And I'm prepared for this talk.
We're going to do a live.
Instead, I just opened up a bunch of tabs in my browser which I've done a few times before,
but I've got a plenty to say.
I'm going to work our way through it.
I think that this talk is talking about where Spritly is from here to there, kind of giving you the vision of things.
Which might seem like something that it's absolutely bananas to just go unprepared, but, you know,
hopefully, it turns out that I just actually have everything that I have that I have.
Let's find out.
So, if you know me, I'm Christine Lamar rubber, Executive Director of the Spritly Institute,
but you may also know me for all my work on activity pub, right?
It's a decentralized networking protocol.
It's a server to server messaging protocol, also trying to server, but people keep forgetting about that.
And it's pretty cool.
I was really lucky actually to be able to work on it with Jessica Talon,
which is just spoke.
We were both on the spec.
And when we finally got to this point, we finally got to a recommendation about the spec.
I felt really, you know, I felt good.
You know, it was a long amount of effort.
It was very anxiety-inducing.
And then, I, you know, what really bothered me was what we couldn't do.
And actually, if you've been here and you've seen me give a talk to this room a few times,
you may remember a talk a few years ago when I talked about this thing called eight-sync.
It was this after-model type thing.
The predecessor to Goblins, in fact, actually.
I gave it this talk, which you may or may not remember.
Raise your hand if you remember this talk.
Okay, all right, we haven't got a few people.
If you didn't see this talk, it's a talk where I had a, a multi-player user dungeon.
It, like, the text adventure.
And I had the audience, and that was my slides, like, rooms and the thing.
And people connected to it.
And I have people say things that they'd like to see in the game, and I changed it live, right?
You know, and you could explore the game and stuff like that.
And, you know, people asked me this question, which was, oh, how do I add stuff?
You're editing skin coat on the fly, right?
You know, this is really cool.
We're like, how do you, how do I add things?
And I'm like, oh, I don't want you to pull my hard drive, right?
But this is a really troubling question, right?
You know, and actually, turns out that I read Andy Wingo's blog at one point,
and he mentions this thing called security criminal based on go on the calculus,
by Jonathan Maurice.
And this, this is, ends up being a great article, and it says, oh, hey,
if you're really serious about, like, lexical scope and stuff like that.
Actually, your ordinary programming models, including steam,
actually, are your security paradigm.
And I started pushing on this further and finding out that this capability, security thing.
There were all these things that I was worried about that, that you just couldn't do an activity pub.
And it always bothered me, like, you know, why couldn't we do a live world
where things are, you know, walking around and interacting with each other?
Why can't we have the richness of everyday life?
You know, we, we think of social, when we talk about social networks,
we think about it as just being, like, sending postcards to each other, basically, right?
But it's not true.
Society is more than just, you know, telling people things.
It's also collaborating, right?
And, and when, and there are other troubling things.
I guess, if servers went down, people felt lost,
or, you know, they couldn't, didn't know how to be able to move from place to place.
The, their stuff would disappear, it would be really painful.
And, like, how do we fix all these things?
And so these things were really bothering me.
And so, frankly, started out originally, right after activity pub,
like, well, actually, before activity pub finished,
is a research project to try to figure out these things.
And, and, days, we have this organization called the Spray at the Institute.
We're running a fundraising campaign, please support us.
We're doing cool things.
The support really helps where a U.S. nonprofit, so on and so forth.
But, you know, we have this, like, let's take back the net.
You know, take thing.
And, and we're, we're, we're building on,
we're, you know, we say, we're building on our experience for activity pub,
we're doing object activity, building security stuff.
And, you know, like, but these better worlds await, right?
And, um, you know, I already mentioned this fundraiser,
but I'll mention one more time.
You know, we, we, sometimes we ship people who are like,
oh, you're too video guinea, blah, blah, blah, blah.
Well, I'll, I'll defend that on this talk.
But, um, but if you donate, uh, some of the levels,
you can actually get your name and the credits of our game, just say.
Um, but, but one of the things that we have is this goblins thing.
This is actually, wow, have you heard of this?
Well, if you're in the room, you just did.
Jessica just talked about this in great length.
It's a distributed programming environment.
And it's really cool.
Um, and, uh, it uses this protocol called O'Captain,
but people, you know, think about, like, sometimes we get people say,
ask, you know, like, how do it?
Can I just, how do I, I want to get sprightly in my language, right?
Um, and we say, well, we, you know, well,
we have this protocol called O'Captain.
They're like, oh, cool, implement that.
But, you know, Jessica showed up all these things with, like,
time travel and, like, you have network programming
without even needing to think about it.
Actually, goblins is a lot more than just the protocol, right?
It's also like this whole environment of thinking about how to write things
and how to make it so that you get these experiences that you reduce
the difficulties of building secure distributed peer-to-peer networks
to something manageable and understandable, right?
You know, so if you, if you have, um,
Jango and Rails did an amazing job, you know, like, in the mid 2000s,
as not only just providing a, you know, like, a web 2.0 type kit
that, like, made it easy to write web 2.0 apps,
but teaching you to think of that mindset, right?
You know, now, granted that mindset was really built for
for for-profit corporations that would have this large dev-off team,
and so on and so forth, and are considered about scaling up, right?
You know, and, um, and, you know, sometimes if you're sprightly people say,
well, we're really, really about scaling down and scaling wide, right?
And, um, but, but I respect that.
When a system can not only make something easy,
but actually make it so that it's the default, right?
That's the goal of sprightly is the level tooling.
And it seems strange sometimes we're like,
we're like, oh, yeah, we're building a future of, you know, social networks,
and people are like, um, of distributed networks,
stuff and people are like, you're like doing computer science research.
What's going on? Well, to this room, maybe it doesn't seem so weird.
You know, you got a lot of CS nerds in here and stuff.
Uh, I'm not a CS person, by the way.
I tricked you.
A humanities major.
Um, oh, boo!
How dare you!
Humanity of the majors are amazing.
So anyway, um, we, so the, the thing is that, um,
the, sometimes you actually need a foundation,
and sometimes you need to step back and do research,
that you can make things easy.
When we started working on activity pub,
actually during the majority of the time that we did any stuff with activity pub,
people would be like, what are you doing?
And I'm like, oh, you know, I do this.
We're building distributed social networks and stuff like that.
And people are like, that doesn't seem possible.
And then I'd be like, well, it's like email stuff like that.
And people are like, uh, nice to look at it.
Right? And then when people experience it,
it's only like, oh, yeah, of course.
And then suddenly you get like 500 hacker news articles a day
that are like, oh, activity pub, you know,
that's just a thing.
Anybody could have done it.
Right? Like, anybody could have done it.
Right? You know, and because these obvious and retrospect,
right? You know, when you, when you get to a point where you have enough there,
it feels obvious, right?
But you need these periods of time where you figure out what's going to happen.
Um, but the problem is we're building this up,
this capability secure distributed programming language.
It's so awesome.
But how are we going to get it to users?
You know, Jeff, install geeks?
Well, I have install geeks.
And I, a lot of my friends install geeks,
but a lot of the world is not using geeks.
And it's not going to wrangle parentheses.
I would like more people to wrangle parentheses.
But a lot of the world is not, right?
And, um, and I think it's actually smart.
I'm all in on the parentheses.
I think list is clay, right?
When we, when we, in,
and especially we talk about, you know,
composable domain specific languages, right?
It's one of the things that makes geeks so amazing.
It has all these tools.
They combine together beautifully, right?
Kind of the, the, the clay-like nature of a list-based environment,
means that you can compose together all these abstraction layers.
Not like next.
Try to compose, like, like,
Lou, this config thing, and then you got batch in there,
and it's like, it looks weird, right?
But we're, but the thing is, is that, like, you know,
if you look at, like, MIT,
people have borrowed all these ideas from MIT,
they're just mining MIT's history for decades.
And, um, and then they're like,
oh, that list thing.
It's a pain in the past.
Well, part of the reason why a lot of beautiful things have happened,
the reason we keep returning to that research that happened in the AI lab,
and stuff like that for decades,
they had a very flexible environment where they could explore ideas, right?
I don't think Sprite Lee's technology,
people see all this stuff and they're like, why did you choose a list?
Well, I don't think we actually could have figured out everything we figured out
if we hadn't chosen that,
because it would give us a lot of flexibility to be able to actually explore these ideas.
And that's my defense, the steam, and the Sprite Lee Institute.
But the thing is, once you figure out these things,
people can borrow them and bring them to other places,
but still, gobbling to the paradigm of how did you programming
it composes with the rest of your steam system,
but it's a paradigm for how did you programming?
But introducing paradigms is not a new thing.
We do it all the time.
But we need to get things to users, right?
So, hoot is a scheme to have a simply thing,
and we've got several hoot people over here in the room.
We got Andy, we got Dave,
and we've got Julie the thing that made it possible for us to get hoot to users.
If you check out the latest exciting article,
you go to our news,
oh, we probably saw this picture.
It's gobbled in the browser,
and if you just saw Jessica's talk, it's amazing.
We actually have this.
This was a big bet, right?
The idea that we would be able to do a scheme to web assembly,
was MGC wasn't even in browsers yet.
It was a proposal.
It was like, we're going to do the hoot thing.
We hope this works, right?
And it did.
But sometimes you have to take that kind of bet.
But what does it mean to move from a research project to something else?
For several years,
it didn't even have a website.
This was actually the original sketch I did for one thinking about
the first Spritely website.
And that website actually ended up changing.
This was the original Spritely website.
Now, we have the new Spritely website,
which looks pretty similar.
It had this middle period where it looked pretty different.
And you can see, I'm sketching on paper,
oh, there's all these things.
You see these little characters on the side here,
like this monster manual of characters.
And you see the ideas here.
My friend Ayves said, maybe don't see a new world's weight.
That sounds a little bit colonial.
She is right, so we said social worlds away.
But the idea here is that I was like,
how do I make this exciting?
How do we get this idea that this technology can be
exciting and beautiful?
And not just like this pile of computer science papers,
but that we should feel something energized and beautiful about it.
And you know, I'm doing this Spritely Institute website.
You know, these various phases of like,
we decided, oh, much more of a research institution.
You know, like Spritely started out,
it's like four or five years of just me working solo.
And then basically three people co-founded it.
Myself, Randy Farmer and Jessica Talon,
who is the first engineer who wasn't me.
And like we, and you know,
with a big change to move from this thing,
we're just a solo project to where we're going to go.
And you know, I'm talking a little bit about the aesthetics.
I'm going to talk a little bit more about it
because we're the aesthetics that some thought it's behind them.
The thing is is that building out a vision
of what we could have, you know,
I'm just going to jump ahead.
I'm going to show you this.
Here's a bunch of these characters sitting around the thing.
I'm saying like, oh, we're going to make it exciting,
etc.
But you know, we have these cutesy things.
This actually started with, oh, do I not have it?
I dropped it.
Oh, you know what I did?
It's not important.
This was the original version.
I sketched these on a tiny index card,
and I sent them the fantasy artist David Revalon.
I'm like, hey, can you make these look cool?
I'm very busy.
And he did.
He came up with this really cool set of designs.
But why do we have all these things?
Sometimes, frankly, scenes are overwhelming.
We talk about, we've tried to pair it down.
We're like, goblins and hoot,
which has not even appearing on this thing.
Right?
And then we've got everything else.
And it's like, too many things, maybe.
Why do we have this?
So to be able to build out the vision that we wanted,
we had to have a bunch of new fundamental components.
So I'm going to spend some time actually one of the things
that we're doing on the new website is we're trying to put out
the project plan.
People have been asking about this.
They're like, sprightly, it seems so cool,
but where are you going?
And that's what I'm actually going to be talking
in this talk about is where we're going.
And then it's been in the plan all along.
And the thing is, if you scroll this old sprightly website,
you just see this monster manual of characters comes up
and it's like, oh, what's sprightly going to do?
Can they take this on?
We'll just do a couple of things.
We'll build a distributed programming environment,
no big deal, build portable encrypted storage
that's probably easy.
We'll do content.
The rethink how we do identity.
That's fine.
We're going to do a whole mapping over the edge of activity
published in addition to the new spec that we're writing.
This distributed financing don't think about that.
It doesn't have to do a blockchains,
so that's actually the really interesting thing.
I will get back to it.
And then there's this and safely execute code.
And then there's this whole thing that's like,
oh, we're going to do a video game,
and the distributed virtual worlds.
And this is where fun days would be like,
I thought you're doing human rights things,
not making a video game.
But there's this fun component that I want to talk about
a bit more.
But you notice just like I showed this whole thing about persistence.
You know, it's serialized in the store of the world.
And there's all these status markers on here.
This one says it's like it's working pre-alpha.
This is old.
We actually have it now, fully.
And we have a distributed debugging environment.
The, um,
Spritly was a research project that involved trying to find out
how old the pieces come together to build a new vision of things.
And I'm going to show you what that actually looks like as in terms of a more high-level thing in a moment.
There were a couple of other things that didn't make it on the map.
This was the thing that was, um, was like, oh,
we're going to have a mascot for the network component.
Well, we ended up calling that network component called,
oh, captain.
And at this point, it was called Boldil.
Um, you know, and, uh,
Later on, I, I commissioned David to review.
One more thing called Navi.
And we never put this on the map.
But this was like for the UI things.
And this is the reason I'm pulling this one up right now is that this is where we're actually going.
You see that giant stack of the monster manual of things.
And it took a while for you can actually get things to users.
But we're now at the point where we can start getting things to users.
Um, so I'm going to, I'm going to, um,
I think I'm going to switch now in this world of chaos.
It is the way that I'm handling this talk and show a presentation I worked on with Randy Farmer.
To try to explain like what, what the vision of things is.
And time is a funny thing.
Because this, I think this presentation really holds up.
But in another sense, you know, like, I come, like, new hype appears on the horizon after you make a thing.
And then you're like, oh, got to revise that.
I'm going to show you it without revisions and explain it within context.
I think it would have been in, um,
2000 that we started working on about five years ago, right?
Like, it was two, it's, they're not too tough.
20, 20.
Oh, yeah.
We started this.
25 years ago.
That's how long we've been thinking about this now.
It was, um, it was in, it was in 2020.
But in 2021 is when we, we had the version of this that we were actually presenting.
So here's, here's this person named Alicia.
Um, and what we can see is that she's a, she's a multi-faceted person.
She's a high school math teacher.
She does tabletop games with their friends.
And she's a fan fiction author.
And she has these different contexts and different communities and different personas.
Um, but we don't consider her duplicitous for having these different personas.
Um, you know, she, she, she, she, she, so here's Alicia.
She's got, um, she's a math teacher, as I said in high school.
And she's, she, she is in, you know, like this, her, her educational, um, context.
And she quicks on, um, her, her persona.
Um, if, uh, her teaching persona, she switches to being able to switch between her different, um,
persona's managed by this system.
This is basically the mockups for Navi that we did, you know, very early on.
Um, and, and you can see, she's got her teacher persona.
She's got her, um, gaining persona and she's got her fan fiction persona.
And, and then she has the, this thing, you know, like, the agents that, like,
be the peer-to-peer user agent that we're displaying here on the right.
You can see what this basically means.
There's a person.
But what does it mean to have an online identity?
We have this sometimes.
Every now and then people completely misunderstood the identity, like,
Facebook's like, we're going to do a true name policy, like a true identity.
And people, you know, like, people are moldy faceted.
Um, in each one of these contexts, Alicia behaves differently.
Um, and she's not a duplicitous purpose of the person for that.
So she switches between them and this, this, this system is allowing her to switch between them.
And the, the interesting thing is that, not everybody might know her in every persona,
right?
She might behave differently.
But some people might know her in both personas.
Right?
Um, and then she hears this thing, Ben's gaming account, uh, hang out.
And there's actually some of the components that I showed earlier,
start appearing in here.
Um, so I mentioned that we're doing a different identity system.
One, think no DNS, right?
There's not even a domain name system.
That's centralization.
We're going to do better.
Right?
Um, imagine this, like, you know, like, if you've ever used, like,
Tauronian services, you see that just,
yeah, you can probably key, right?
You know, and that's your, your name, but the thing you're going to connect to.
Nobody can memorize that.
You know, Facebook's like, we're going to be clever and do Facebook core,
www.onian, and then people can connect to that,
and then that becomes a fishing target, right?
Because it's like, you change one character and it's really hard to tell.
Um, so, so, what, but it turns out,
there's a way to be able to identify, understand what the, um,
what, like, um, identity without a global context.
In fact, you do this probably every day.
On your phone, you probably have a contact list, right?
And if you still use phone numbers, which, because actually,
we have not managed to deprogate those, um, you probably,
you have certainly not memorized all the phone numbers on your phone.
But you have local meaning towards those contacts, right?
So in here, you see, you know, like, the A star light is, like,
you know, it's a pet name in here.
That's what it's called.
It's like a local, even though name.
And then there's also these things with a question marks,
and these dotted lines around these, these are self-proclaimed names.
This is this character.
This person named Carol that there's not an existing relationship
is saying, I am Carol, right?
And we've actually done implementations of this,
Jessica did one, and then Dave did one.
Um, but, you know, so, um, so Alicia goes over and she clicks on
to Carol's profile, and she goes to send a message.
And, um, and then this is one of those things
we're also like, people sometimes like,
ugh, but there's something interesting happening here,
which is says, you don't have an established relationship with Carol,
how would you like to connect?
And it says, pay two stamps or after an intro.
Um, the stamp thing here is actually just an idea for a very simple,
um, like, like, not something that's a currency,
but actually just something that allows you to,
if you have no connection, be able to say,
um, here is some sort of path that involves
some amount of resistance for spam and, um, and
unwanted messages for resistance.
But the preferred path is asked for intro.
The majority of the time, the way that you want to be able to have a contact,
effectively, if you don't have, if you have an unmediaed
contact environment and a peer-to-peer network,
the preferred way to be able to do it is to do it for free
to actually rely on the network of people you already know.
Um, and so, one way or another,
Alicia gets this, this contact over to Carol,
and she gets this thing that's in capabilities would be,
um, it's a revocable, it's called a revocable cat facet,
but what you actually see is she has this capability
that allows her to send a message to Carol.
Um, but Alicia can blow up this connection at any time,
like a fuse, right?
You know, like,
right?
And then the message can't go through anymore.
So, as if any trust is broken,
there's no free path, some sort of path needs to be reestablished.
I don't want to over-focus on the stamps thing,
sometimes people are like, oh, is this some cryptocurrency thing?
This is actually just one of many ways that you can actually handle
if you don't know somebody,
you can actually handle, um,
you can, you can add some sort of other path.
But I believe social relationships are the preferred way
to be able to connect to people.
So, um, so here you have, um, people talking to each other
and saying, you know, oh, um, we're going to meet up.
We're going to hang out, um, let's get some pizza,
um, and like, you know, there's some, like,
an example of, like, this simple payment thing.
Um, but the, um, here's another thing that, like,
it's like, post NFTs, it's like, oh,
god, I wish we hadn't put this in the presentation.
There's something more important here.
The idea is that there's an application that you don't trust
and you're going to install it, right?
We could have done anything here.
It just happened, oh, I'll explain why for a second
of this particular thing happened.
But there's an untrusted application that comes in.
And think about when you have,
somebody emails you solitaire.exe, do you want it?
No? Why not? You should be able to, right?
If you were an accountability-based environment,
you should be able to execute solitaire,
and it would open up in a world where it has no powerful rights.
No ability to open up your file system,
et cetera, et cetera, et cetera.
Um, and this particular example,
the person without any prior experiences
able to install the application,
um, and the thing is that, um,
effectively, there's, there's different paths
into being able to access these different parts of,
uh, of this shared resource.
Now, here we say a file system,
but it could be any sort of, um, number of things.
The thing is that there's not full access to this for anything.
Um, and, um, and this,
one, and so the person installs it to get this,
um, this, this, this starter pack thing,
which again, you know, this is pre,
and a tease taking off.
I wouldn't have chosen a trading card game if I knew that was going to happen.
But, um, but the interesting thing here is that,
effectively, this is, um,
the application is embedding something within another application,
and actually embedding behavior within another application.
Um, and it is, how the, but it's using the same pet name system
so that you could have a hold that accountable as a particular thing.
Um, and, um, and so, here they're claiming that,
they blah, blah, blah, blah, blah, blah.
They go and they battle, and this was Randy Farmer,
Michael Funderhead.
Like, his, his, uh, um,
12 year old kid designed this mock-up like in, like,
like, like 20 years prior, we're like, blah, blah,
he'll see that.
Um, but, you know, the, the, the point.
But that's, effectively the point, the thing.
I haven't really shown that presentation to anyone in a while,
and a while. And it's probably because it's like, oh, we need to update it. We got to get
make people not think we're trying to do that STs or those types of things. But I kind of wanted
to show it today because we're working towards the point where over this next year we're going
to start doing more and more of the user-facing side of things. And there's some ideas that are
in that presentation that seem, if you think about them a little bit wild, the fact that you
have no central naming system that you're able to execute code you don't trust, right? That you're
able to have distributed programming where people are cooperating over a peer-to-peer network
and they have a natural flow of things. It's not how we do things today. And we've been putting
down foundations so that's the type of thing that you can do. I have a bunch of things that I open
in case we wanted to talk about, but like really my colleagues have done such a good job of talking
about them. What can I do other than say this is a cool gift? Let's just see it go again.
Right? There we go. We've actually been, we have been doing mock-ups. So this one's the old
terminal version. We built a more new web-based version. And this is something we've been using
internally to tap actually. It's like kind of bringing back the old multiplayer text adventure
type thing. Every now and then people get confused about virtual worlds. They end up thinking
like, you know, like Mark Zuckerberg here's about this like, oh, we're going to put this
bucket over everybody's head or maybe they'll get real chunky glasses. And then we're going to be
living and fucking no crash. Right? And it's like you missed the point. Right? Because it's not about
the interfaces that I and the O, right? It's not an input and output. The really hard part is how you
actually make it so that you can securely cooperate. If you can do this in text, the 3D stuff
isn't as hard. The hard part is a distributed peer-to-peer system. And being able to allow for
secure cooperation. That's the hard part. So we've been using this internally, like little
experiments. We do it kind of often on to go like two months of like, you know, just like we're
using this every day and in hitting issues and then we're just like, well, let's go back to
matrix for a bat and then we like do it again, like depending on kind of our development cycle.
But the goal is this next year to start moving towards something where we can encourage more
people to play with things. If you saw, I mean, it's possible that you did not watch Jessica
Talon's talk though. If you are maybe not here in the room previously. This is a chat program
that we wrote a few years ago. The interesting thing about this chat program is that this chat program
there's a couple of things. One, it's a peer-to-peer system. It's using touring and services.
That's why there's so much delay in this example. We've mentioned that you can swap out different
net layers. So this is a pretty slow net layer. But here you see actually two
guide programs talking to a racket program. And the code that handles the chat program,
that handles the chat room and the code that handles the user, these messages are authenticated
for which a user they're coming from. There's no, it's peer-to-peer and this is 150 lines of code
for both the user code and the chat room code. This was written a few years ago. It's like a demo I
put together when I was putting together a cap and the interesting thing is I first wrote
together the Goblin chat program. This minimalist code. And I wrote it without mentioning the
network once. Jessica showed you in just a few lines of code. You can hook something up
like this amount of network bootstrapping thing. The interesting thing is that you can write
your Goblin's program without even thinking about the network. The Goblin's abstracts the whole
process about thinking about the peer-to-peer parts. You just focus on the code flow. So none
of the core code I wrote thought about the network. And so the really interesting thing though
is that Jessica poured at this and you can see it on the blog post. You can do this yourself
in Firefox. We're using a feature not yet available in Chrome unless you turn on a flag. But
if you say hello, it'll appear here and then stop. And this is using the same, this is using
a cap and it's running in your browser. Now it's running a little fake network in your browser,
just so that we don't have to keep some infrastructure while we're at phos them and like
kick it and stuff like that. But it's actually using the very the very protocol or very peer-to-peered
protocol. This is Goblin's on who in action. We're getting to the point where we can actually
take care of stuff and make it more available to people. I think so I mentioned the game stuff.
We've got a bunch of video games that we've done. I think this one, I think it's the most fun,
it's called StriggerForm. And just to, you know, they've showed it off a little bit, but like,
you know, like it's like if you like soco-bomb, like block-puzzle things, well it's like that except
you have to solve circuits. But the cool thing is that you can do to get time and go backwards.
And that time travel stuff that Jessica showed off at works in your browser too.
So we've been building towards something. We've been building towards something where the
really hard parts of doing all this stuff are taking care of for you so that you don't have to be
an expert. So you don't have to understand every layer. You can focus on building the application
you want to build. That's the future we want. I don't need to show you the space shooter. That's
fun, but you can play it yourself. It's on Spritly.Institute Slash Arcade. Anyway, I got this
at a donate thing again. It's another picture of Alicia. We want to support users. I'll leave
a donate thing up for a second. But actually, you know what? I'm not going to do it. I'm going to do
just going to open up a new thing and go full screen because I'm not sure what's going to happen
when I ask people to come up and I don't want them to be blinded. But I'm going to actually
make the Spritly crew come up here. So I warn them at that time. Dave, Jessica, Julie, and Amy,
and Andy, you've got to come up too. Okay, you don't have to. Everyone else have to.
I want to, I want to just talk for a second about, so yeah, well, sorry. So there's a reason why I'm
doing this. You can thank Julie. Julie is going to hate me for that. Look at the face.
No, okay, good. Well, the thing is, Julie said something that struck with me a few years ago or maybe
maybe about a year ago. You know, you commented about how a lot of people may sometimes
misinterpret like, you know, I go out and I talk about activity public. And then people get the
impression that like activity pubs this Christian thing, right? And you sometimes don't see when
somebody becomes like the, you know, the face of the thing that that person is not usually acting
alone. And the, you end up with like these kind of Steve jobs and then get even worse. You
on Musk versions of things where, you know, the person's like, yeah, I am this God, right? And,
you know, so partly for my own sanity, I'm, I'm forcing this brightly people to come up on stage so we
can talk about what people do to be able to make this type of work possible. So I'm going to start with
Jessica. Jessica not only worked with me on the activity pubs back. We've been working together
for over a decade, about 12, 13 years now, I think. Jessica came in as an intern throughout
reachy. So if you've ever heard of outreachy, you know, you can thank Jessica, partly for us to
having the fettivers. Because she came in and to, to do a, an internship to be able to add
Federation support to media goblin. And then on accident, we ended up actually just working on
Federation's specs for a while, and that was a real legacy of media goblin. But when, when the
spray of the institute was moving towards a spray of the institute, you know, it was Randy Farmer,
we did a bunch of work on, on like old peer-to-peer, like capabilities, security type things,
who is doing the organizational side of things with me. But Jessica Talon came in and took a big bet
and to, I was like, Jessica, I need somebody else. We've gotten to the point where this is not,
like this is stable enough that we, I know this can work. But I need somebody else to come in
and be able to understand this. Jessica became the goblin enchantress, because Jessica said,
yes, unless for job at Agalia, and came to work with us. And, and, you know, learned everything.
And, and got so excited about goblin, so she took it on as their own. So I just wanted to say,
thank you, Jessica, and I'm going to, let's give a little round of applause.
Agalia, you're next. What, you don't want to round of applause. So you can't give it round of applause for
Dave, but I'm still going to, um, thank Dave. Okay. So Dave, so Dave, um,
when Dave came in as, um, as engineer, um, inspirately, and like kind of a senior engineer type
position, right off the bat, because of all the work he's done in the giling, geeks, and et cetera,
tech communities, and, and how he and I have known each other for such a long time, and,
you know, I knew about his work on video game engines, I'm not going to lie about that, but the,
the, but also just, um, because I knew he was a wonderful person, the way that he treated people
was really good, in addition to being really, um, really brilliant as a programmer. And,
I took over as executive director when I was CTO, and, and that was a scary thing to do,
because, um, you know, like, I, I think of myself as a, you know, primarily technical person,
um, and I do this leadership thing on the side, and then suddenly I'm in primarily leadership position,
and it was like this, what's going to happen? But I didn't need to be worried about it, because I knew
Dave would fit into the role and be a wonderful leader of a team immediately, and he was, and,
and Dave has not only done incredible things on, he did as distributed debugger, he did our, um,
you know, he, he was along with Andy, um, developer on, on hoot, um, and, um, and, uh, but, but, but he,
he's stepped into, to a leadership role in a way we really care about. And, uh, and Julie,
is the reason we have goblins on hoot. Julie, Julie is our integration engineer. She's not only doing
goblins pursuit, she also did goblins with Shepherd. I mean, she's, she's doing shovel,
it's called Shepherd, you heard about, but she also is the one who did the goblins with
hoot stuff. And Julie came in, took, went through a massive number of phases of converting,
bit by bit, goblins, that it was able to work on who, trying to port it piece by piece, um, adding
hacks, and then making Dave and Andy go, oh, we don't want these hacks, and then fix them.
And that was a story of who's becoming a usable system was like, but, but it took somebody who was
really able to be, to, to really stick with it, and, and to learn a bunch of internals,
and work with a bunch of really difficult tooling when it was not easy to work with. And so,
thank you, Julie. So, um, so we, we will give a long-to-class for Julie.
And finally, I wanted to say, um, thank you to Amy, um, you know, um, I am, uh, we had a very unusual
job posting. We made up a title for it. Turns out they actually have that title for people
who were on IT systems, and I didn't know that at the time, but, um, but like, you know, when I
came in as executive director, it was immediately clear that I needed help, like I couldn't do
this alone. And I needed somebody who could both be interested in the organizational side of things,
but also could handle all the tech BS that we do. And so, I needed somebody who could like use
ENAX day-to-day, and also help organize the thing and get excited about organizing the thing.
Amy has been that person, and actually has done so many things inside the organization.
And there's one of the only reasons that, well, no, okay, there's a lot of reasons.
It's only reasons about, like, the things that I was feared about myself that I've been able to
get past those fears to be able to believe that, you know, like, we're, I think we can do this,
and I think we can make it. And so the last thanks, well, first of all, Andy Wingo, thank you,
but I know you don't want me to thank you any further, so I'm gonna stop. But, um, but I, I also
wanted to say, um, thank you to our community, thank you to the people who have funded us,
um, and, um, and, um, I actually, um, well, um, uh, you can, you can signal yes or no,
but, um, no, no signals, so I'm not gonna do it. Um, the, uh, the, I'm actually gonna think
Daniel Bryan, um, Danny, Danny in the back, um, Danny in the back, um,
they're, Sprayley Institute has only partly been able to make it because Danny did his research
and knew about all the history of everything that led to Sprayley, and we, we knew each other
from when he worked at the FF, and he's really done a lot to organisationaly be there to support
us and to support me to be able to make this organization happen. And the last thank you is to the
community of people who have picked it up in the community of the future, which I hope you
include Zalazio. There's maybe a weird talk. I'm talking about the, it's definitely a weird talk.
It's not a minimal talk. It's not a minimal talk. It is declarative.
But, every now and then, I think it's important to do something that's really big vision
and Sprayley's a big vision thing and a risky thing in many ways, but I think we've actually managed
to bring so many components to the point where they're working and that stuff is all coming together.
And what I really hope is that many of you will find it be a coming excited and become part of
things. And I really, and I'm thankful for all the community members who have pitched in.
You know, it's never just an organization, an open source project, it's also the community
who ends up being part of things that even if they're not being paid, you know, and sometimes
especially if they're not being paid, but there's a lot of, you know, like unrecognized labor
that often happens. So I'm going to stop here and bring it to Q&A. If you want, you guys
can hang around on the page for Q&A, but you can go back to your seats. You can go back to your seats.
Thank you, everybody. Thanks for the kindly true for putting up with me doing that last thing.
How much time do we have for Q&A? 10 minutes. All right. Who wants to ask questions?
I just want to ask you a lot of questions.
CRDTs. Yeah. So the question is, what is the relationship between CRDTs and something like
Goblin? So if you don't earn familiar with CRDTs or conflict-free replicated data types,
very interesting systems, we are interested in them. So Goblins is about the kind of peer
connection side of things is in terms of being able to do distributed programming.
CRDTs are a particular kind of data structure, right? You can layer CRDTs on top of Goblins
and it's something we've been very interested in doing. And if we think that actually, if you did
that, it would have a lot of interesting properties because you could use our persistent system and
everything. We haven't done it yet. So CRDTs are nice in that you can get messages from a number of
different places asynchronously. You can come in in whatever order, everybody who has heard the same
messages will end up at the same state. Not all systems require CRDTs, right? People have used
IRC for a long time without CRDTs if you, you know, email for a long time without CRDTs.
And a lot of systems can work great without them, but they can do a lot of useful things
when ordering matters and all sorts of other things. The main thing is that Goblins itself
does not use CRDTs, but I would like to actually have CRDTs implemented and integrated with Goblins.
And I think there are some use cases in which it's very likely that we are going to turn to CRDTs.
That's part of the answer. So, okay, any other questions? You, Danny. I'm sorry again for, for, for,
sorry, I just find, so, for context of this, right? So, basically what you get at that,
I've been involved in a bunch of different projects that have gone through these ages, but
actually, the smoke that remains beyond is, um, there was a point with Rust, where Rust was just
turning from being a sort of single person and that's what team and there's a lot of problem.
And a general feeling that this was more widely applicable and can turn from being a tool into
something that could actually execute some change in the world, right? You get people thinking
about, secure, computing, and everything. And one of the things that's always interesting for me
about Spikey is how, uh, these sort of continues this thing that we've seen talked about in a couple
places in this room, which is about the original kind of list by dear and my key idea of making
everybody's somewhat of the developer having that sort of intimate control with the users and also
sort of user autonomy. And I wondered if you could touch them, sorry, this is a lovely question,
but, um, how do you see, you've done a lot of work as a lot of people, we have with free software,
like, how does, how, how to spritly fit in with, like, the free software as a whole and sort of
a user autonomy. Is that, is it just an accident that it's sort of like this being that way?
So this is a great question and it has about five questions in one, so let me try to summarize them.
So especially since the, the stream may not have heard them, so Danny effectively brought up
rust, the seat feels like the movement and rust moving from kind of a solo thing to, like, a larger thing.
I think, and hope so, I gave some background here that I don't normally give about kind of the
transition from the, the solo thing to kind of a group thing. And that's the reason why I brought
all the spritly people up on stage, actually, with the show, this started as this kind of smaller
thing, but actually, I think we're hitting a point where the interesting thing is, is now,
I can be off doing organizational things and I don't have to worry about it because the spritly team,
I'm like, you should be doing, oh, you're already doing that thing, right? You know, like Dave,
like, it's, it's gotten to that point. So, you know, part of the thing, if the goal is to move it,
so that it's not just like this core group of spritly people internally, but a bigger community
that understands the vision, right? Because this was so much hard core research, and in some ways,
it kind of required this insider view for quite a while. So, I do think, and hope, that we are
moving from beyond the kind of insider view towards larger picture. It's one of the reasons that we
all bet big-on-possed them this year, and on this room in particular, was that we know we're still
in kind of the programming language, you know, like people who are willing to get there, you know,
their hands dirty type, take the scenario, but we want to move increasingly to a point where it's
a wider space. So, to the whole, like, you know, the reminder of, like, the list, the MIT history,
that kind of area of research, how does that all tie in, right? You know, the MIT artificial intelligence
lab, they have all these documents. Anybody could go read them, and in fact, I read tons of them.
In fact, I read so many of them that somebody then gave me a secret archives in my house full
of a bunch of MIT AI lab stuff that nobody else has. I would love to get it online at some point.
But the thing is, is that the thing is that, you know, the AI demos are there, and anybody could
read them, right? And there's this incredible amount of research that was done in this, you know,
what, if you really look at it, in some ways, it's a short period of time, even though it's a long time,
right? And it was by people who were very insider, right? You know, it was a bunch of people at this
lab, they all knew each other, they talked to each other and stuff like that, and they figured all
these things, and like, you know, like, jackets go by, and people are like, you know, we do need,
you know, memory management that like, you know, see might not be enough. Maybe we do need,
you know, this type of like, maybe we, you know, like, maybe we do need, and like, that's like,
this whole, maybe we do need, and then you suddenly like, how were you to get pulled out of a dustbin,
right? You know, stuff like that, all of these things, you know, like, the part of the goal of
Sprightly is actually Sprightly's been doing that. Sprightly's been reaching into that and pulling things off the shelf,
and how do we not end up at a moment where Sprightly stuff is just on the shelf, right? You know,
I don't, what I don't want to happen is to have, you know, like, a decade go by, you know,
the Sprightly has a project or organization, you know, like, you know, kind of diminishes,
and then like, and then like, you know, like, another decade goes by, and then people are like,
turns off the Sprightly stuff, people started to fix all this, and then another thing happens,
where 5% comes out again, and then the rest of it disappears, right? I would like to do better than that.
That's part of the reason why I'm, I'm kind of doing the big ask, the big picture, giving you the view
of kind of the internals of how we got to this moment with Sprightly is I would like this to not be
a, um, even though all the NITI lab stuff was there for anybody to read, it's still, I think,
felt closed off from many people, and I would like that to not happen. I think we've done too much
cool work. We have to get it out to everyone, and we have to get it even beyond just the schemers,
but, um, but the schemers will be able to take advantage of it first and best. So, okay,
and the other questions, we have any more time, or are we done? Okay, all right, good.
Um, so it's basically how much you've, you can, what you can do is you can say, okay, start
keeping track of history. It's not like, uh, so it's not like a blockchain, where like, you know,
you just have this successive series of events that you then hold onto forever and, like,
stuff like that. It's basically you, you can, you can say, okay, start storing this history.
And then you, and it'll, it'll start from that moment, so what happens in the distributed
debugger is that you actually turn, you, you, you turn it on for a specific that,
and you can start playing with it. The part that happens automatically, though, is a transactional
aspect. Time travel is an infinite amount of transactionality, um, but as kind of one or zero
step amount of transactionality is when you have something that's in process and it fails and it
rolls back in an atomic way. That's the part that greatly handles automatically. If something fails,
the state changes that would have been associated with it get rolled back. And the messages that
would have been transmitted from that particular thing are instead not transmitted, but any promise
that's trying to listen to, wait to find out what the result is, is in form of an error. And so,
that's, that's the, and that's the, and that's the part where we incorporate functional programming,
but hide it, right? You know, like, we make the money out of the implicit, so users don't have to
see it. Monads are planning, you know, like, we, we, we keep them from people. But can I just ask
this to your question about the time travel stuff? It's essentially just kept in the process
at the moment, and it's, you want to read buffer? Is, you set, you set the size of the
read buffer? Okay, yeah, so I'm done. So, and you can do me customized how much history you're
accepting. All right, I think we're definitely done, and I want to say, you should absolutely
listen to Hishan, who is one of the best people here. And, um, things have to be finishing.
The maker of ASTOP, okay?