WEBVTT

00:00.000 --> 00:12.000
You may have seen my Spritly colleagues give some talks, had a few of them, and they're

00:12.000 --> 00:15.000
also lovely and well prepared.

00:15.000 --> 00:17.000
And I'm prepared for this talk.

00:17.000 --> 00:20.000
We're going to do a live.

00:20.000 --> 00:24.000
Instead, I just opened up a bunch of tabs in my browser which I've done a few times before,

00:24.000 --> 00:25.000
but I've got a plenty to say.

00:25.000 --> 00:27.000
I'm going to work our way through it.

00:28.000 --> 00:35.000
I think that this talk is talking about where Spritly is from here to there, kind of giving you the vision of things.

00:35.000 --> 00:41.000
Which might seem like something that it's absolutely bananas to just go unprepared, but, you know,

00:41.000 --> 00:46.000
hopefully, it turns out that I just actually have everything that I have that I have.

00:46.000 --> 00:47.000
Let's find out.

00:47.000 --> 00:52.000
So, if you know me, I'm Christine Lamar rubber, Executive Director of the Spritly Institute,

00:52.000 --> 00:56.000
but you may also know me for all my work on activity pub, right?

00:57.000 --> 00:59.000
It's a decentralized networking protocol.

00:59.000 --> 01:05.000
It's a server to server messaging protocol, also trying to server, but people keep forgetting about that.

01:05.000 --> 01:08.000
And it's pretty cool.

01:08.000 --> 01:12.000
I was really lucky actually to be able to work on it with Jessica Talon,

01:12.000 --> 01:13.000
which is just spoke.

01:13.000 --> 01:15.000
We were both on the spec.

01:15.000 --> 01:21.000
And when we finally got to this point, we finally got to a recommendation about the spec.

01:21.000 --> 01:24.000
I felt really, you know, I felt good.

01:24.000 --> 01:26.000
You know, it was a long amount of effort.

01:26.000 --> 01:28.000
It was very anxiety-inducing.

01:28.000 --> 01:34.000
And then, I, you know, what really bothered me was what we couldn't do.

01:34.000 --> 01:38.000
And actually, if you've been here and you've seen me give a talk to this room a few times,

01:38.000 --> 01:42.000
you may remember a talk a few years ago when I talked about this thing called eight-sync.

01:42.000 --> 01:44.000
It was this after-model type thing.

01:44.000 --> 01:47.000
The predecessor to Goblins, in fact, actually.

01:47.000 --> 01:50.000
I gave it this talk, which you may or may not remember.

01:50.000 --> 01:52.000
Raise your hand if you remember this talk.

01:52.000 --> 01:54.000
Okay, all right, we haven't got a few people.

01:54.000 --> 02:00.000
If you didn't see this talk, it's a talk where I had a, a multi-player user dungeon.

02:00.000 --> 02:02.000
It, like, the text adventure.

02:02.000 --> 02:05.000
And I had the audience, and that was my slides, like, rooms and the thing.

02:05.000 --> 02:06.000
And people connected to it.

02:06.000 --> 02:10.000
And I have people say things that they'd like to see in the game, and I changed it live, right?

02:10.000 --> 02:12.000
You know, and you could explore the game and stuff like that.

02:12.000 --> 02:16.000
And, you know, people asked me this question, which was, oh, how do I add stuff?

02:16.000 --> 02:18.000
You're editing skin coat on the fly, right?

02:18.000 --> 02:19.000
You know, this is really cool.

02:19.000 --> 02:20.000
We're like, how do you, how do I add things?

02:20.000 --> 02:23.000
And I'm like, oh, I don't want you to pull my hard drive, right?

02:23.000 --> 02:26.000
But this is a really troubling question, right?

02:26.000 --> 02:29.000
You know, and actually, turns out that I read Andy Wingo's blog at one point,

02:29.000 --> 02:32.000
and he mentions this thing called security criminal based on go on the calculus,

02:32.000 --> 02:33.000
by Jonathan Maurice.

02:33.000 --> 02:37.000
And this, this is, ends up being a great article, and it says, oh, hey,

02:37.000 --> 02:42.000
if you're really serious about, like, lexical scope and stuff like that.

02:42.000 --> 02:45.000
Actually, your ordinary programming models, including steam,

02:45.000 --> 02:47.000
actually, are your security paradigm.

02:47.000 --> 02:51.000
And I started pushing on this further and finding out that this capability, security thing.

02:51.000 --> 02:56.000
There were all these things that I was worried about that, that you just couldn't do an activity pub.

02:56.000 --> 02:59.000
And it always bothered me, like, you know, why couldn't we do a live world

02:59.000 --> 03:02.000
where things are, you know, walking around and interacting with each other?

03:02.000 --> 03:04.000
Why can't we have the richness of everyday life?

03:04.000 --> 03:08.000
You know, we, we think of social, when we talk about social networks,

03:08.000 --> 03:13.000
we think about it as just being, like, sending postcards to each other, basically, right?

03:13.000 --> 03:15.000
But it's not true.

03:15.000 --> 03:19.000
Society is more than just, you know, telling people things.

03:19.000 --> 03:21.000
It's also collaborating, right?

03:21.000 --> 03:24.000
And, and when, and there are other troubling things.

03:24.000 --> 03:27.000
I guess, if servers went down, people felt lost,

03:27.000 --> 03:30.000
or, you know, they couldn't, didn't know how to be able to move from place to place.

03:30.000 --> 03:33.000
The, their stuff would disappear, it would be really painful.

03:33.000 --> 03:35.000
And, like, how do we fix all these things?

03:35.000 --> 03:37.000
And so these things were really bothering me.

03:37.000 --> 03:41.000
And so, frankly, started out originally, right after activity pub,

03:41.000 --> 03:44.000
like, well, actually, before activity pub finished,

03:44.000 --> 03:47.000
is a research project to try to figure out these things.

03:47.000 --> 03:53.000
And, and, days, we have this organization called the Spray at the Institute.

03:53.000 --> 03:56.000
We're running a fundraising campaign, please support us.

03:56.000 --> 03:58.000
We're doing cool things.

03:58.000 --> 04:02.000
The support really helps where a U.S. nonprofit, so on and so forth.

04:02.000 --> 04:04.000
But, you know, we have this, like, let's take back the net.

04:04.000 --> 04:06.000
You know, take thing.

04:06.000 --> 04:10.000
And, and we're, we're, we're building on,

04:10.000 --> 04:13.000
we're, you know, we say, we're building on our experience for activity pub,

04:13.000 --> 04:15.000
we're doing object activity, building security stuff.

04:15.000 --> 04:18.000
And, you know, like, but these better worlds await, right?

04:18.000 --> 04:21.000
And, um, you know, I already mentioned this fundraiser,

04:21.000 --> 04:23.000
but I'll mention one more time.

04:23.000 --> 04:25.000
You know, we, we, sometimes we ship people who are like,

04:25.000 --> 04:26.000
oh, you're too video guinea, blah, blah, blah, blah.

04:26.000 --> 04:28.000
Well, I'll, I'll defend that on this talk.

04:28.000 --> 04:31.000
But, um, but if you donate, uh, some of the levels,

04:31.000 --> 04:34.000
you can actually get your name and the credits of our game, just say.

04:34.000 --> 04:38.000
Um, but, but one of the things that we have is this goblins thing.

04:38.000 --> 04:40.000
This is actually, wow, have you heard of this?

04:40.000 --> 04:42.000
Well, if you're in the room, you just did.

04:42.000 --> 04:44.000
Jessica just talked about this in great length.

04:44.000 --> 04:46.000
It's a distributed programming environment.

04:46.000 --> 04:48.000
And it's really cool.

04:48.000 --> 04:51.000
Um, and, uh, it uses this protocol called O'Captain,

04:51.000 --> 04:54.000
but people, you know, think about, like, sometimes we get people say,

04:54.000 --> 04:56.000
ask, you know, like, how do it?

04:56.000 --> 05:00.000
Can I just, how do I, I want to get sprightly in my language, right?

05:00.000 --> 05:02.000
Um, and we say, well, we, you know, well,

05:02.000 --> 05:04.000
we have this protocol called O'Captain.

05:04.000 --> 05:05.000
They're like, oh, cool, implement that.

05:05.000 --> 05:07.000
But, you know, Jessica showed up all these things with, like,

05:07.000 --> 05:09.000
time travel and, like, you have network programming

05:09.000 --> 05:11.000
without even needing to think about it.

05:11.000 --> 05:14.000
Actually, goblins is a lot more than just the protocol, right?

05:14.000 --> 05:17.000
It's also like this whole environment of thinking about how to write things

05:17.000 --> 05:21.000
and how to make it so that you get these experiences that you reduce

05:21.000 --> 05:25.000
the difficulties of building secure distributed peer-to-peer networks

05:25.000 --> 05:28.000
to something manageable and understandable, right?

05:28.000 --> 05:31.000
You know, so if you, if you have, um,

05:31.000 --> 05:35.000
Jango and Rails did an amazing job, you know, like, in the mid 2000s,

05:35.000 --> 05:39.000
as not only just providing a, you know, like, a web 2.0 type kit

05:39.000 --> 05:42.000
that, like, made it easy to write web 2.0 apps,

05:42.000 --> 05:45.000
but teaching you to think of that mindset, right?

05:45.000 --> 05:48.000
You know, now, granted that mindset was really built for

05:48.000 --> 05:52.000
for for-profit corporations that would have this large dev-off team,

05:52.000 --> 05:56.000
and so on and so forth, and are considered about scaling up, right?

05:56.000 --> 05:59.000
You know, and, um, and, you know, sometimes if you're sprightly people say,

05:59.000 --> 06:03.000
well, we're really, really about scaling down and scaling wide, right?

06:03.000 --> 06:06.000
And, um, but, but I respect that.

06:06.000 --> 06:09.000
When a system can not only make something easy,

06:09.000 --> 06:13.000
but actually make it so that it's the default, right?

06:13.000 --> 06:15.000
That's the goal of sprightly is the level tooling.

06:15.000 --> 06:17.000
And it seems strange sometimes we're like,

06:17.000 --> 06:21.000
we're like, oh, yeah, we're building a future of, you know, social networks,

06:21.000 --> 06:23.000
and people are like, um, of distributed networks,

06:23.000 --> 06:27.000
stuff and people are like, you're like doing computer science research.

06:28.000 --> 06:31.000
What's going on? Well, to this room, maybe it doesn't seem so weird.

06:31.000 --> 06:33.000
You know, you got a lot of CS nerds in here and stuff.

06:33.000 --> 06:35.000
Uh, I'm not a CS person, by the way.

06:35.000 --> 06:36.000
I tricked you.

06:36.000 --> 06:38.000
A humanities major.

06:38.000 --> 06:40.000
Um, oh, boo!

06:40.000 --> 06:41.000
How dare you!

06:41.000 --> 06:43.000
Humanity of the majors are amazing.

06:43.000 --> 06:49.000
So anyway, um, we, so the, the thing is that, um,

06:49.000 --> 06:53.000
the, sometimes you actually need a foundation,

06:53.000 --> 06:56.000
and sometimes you need to step back and do research,

06:56.000 --> 06:57.000
that you can make things easy.

06:57.000 --> 06:59.000
When we started working on activity pub,

06:59.000 --> 07:02.000
actually during the majority of the time that we did any stuff with activity pub,

07:02.000 --> 07:04.000
people would be like, what are you doing?

07:04.000 --> 07:06.000
And I'm like, oh, you know, I do this.

07:06.000 --> 07:08.000
We're building distributed social networks and stuff like that.

07:08.000 --> 07:10.000
And people are like, that doesn't seem possible.

07:10.000 --> 07:13.000
And then I'd be like, well, it's like email stuff like that.

07:13.000 --> 07:15.000
And people are like, uh, nice to look at it.

07:15.000 --> 07:17.000
Right? And then when people experience it,

07:17.000 --> 07:18.000
it's only like, oh, yeah, of course.

07:18.000 --> 07:21.000
And then suddenly you get like 500 hacker news articles a day

07:21.000 --> 07:23.000
that are like, oh, activity pub, you know,

07:23.000 --> 07:24.000
that's just a thing.

07:24.000 --> 07:25.000
Anybody could have done it.

07:25.000 --> 07:27.000
Right? Like, anybody could have done it.

07:27.000 --> 07:30.000
Right? You know, and because these obvious and retrospect,

07:30.000 --> 07:33.000
right? You know, when you, when you get to a point where you have enough there,

07:33.000 --> 07:34.000
it feels obvious, right?

07:34.000 --> 07:39.000
But you need these periods of time where you figure out what's going to happen.

07:39.000 --> 07:42.000
Um, but the problem is we're building this up,

07:42.000 --> 07:45.000
this capability secure distributed programming language.

07:45.000 --> 07:46.000
It's so awesome.

07:46.000 --> 07:49.000
But how are we going to get it to users?

07:49.000 --> 07:52.000
You know, Jeff, install geeks?

07:52.000 --> 07:54.000
Well, I have install geeks.

07:54.000 --> 07:56.000
And I, a lot of my friends install geeks,

07:56.000 --> 07:58.000
but a lot of the world is not using geeks.

07:58.000 --> 08:00.000
And it's not going to wrangle parentheses.

08:00.000 --> 08:03.000
I would like more people to wrangle parentheses.

08:03.000 --> 08:05.000
But a lot of the world is not, right?

08:05.000 --> 08:08.000
And, um, and I think it's actually smart.

08:08.000 --> 08:10.000
I'm all in on the parentheses.

08:10.000 --> 08:12.000
I think list is clay, right?

08:12.000 --> 08:13.000
When we, when we, in,

08:13.000 --> 08:15.000
and especially we talk about, you know,

08:15.000 --> 08:17.000
composable domain specific languages, right?

08:17.000 --> 08:19.000
It's one of the things that makes geeks so amazing.

08:19.000 --> 08:20.000
It has all these tools.

08:20.000 --> 08:22.000
They combine together beautifully, right?

08:22.000 --> 08:26.000
Kind of the, the, the clay-like nature of a list-based environment,

08:26.000 --> 08:28.000
means that you can compose together all these abstraction layers.

08:28.000 --> 08:29.000
Not like next.

08:29.000 --> 08:30.000
Try to compose, like, like,

08:30.000 --> 08:32.000
Lou, this config thing, and then you got batch in there,

08:32.000 --> 08:34.000
and it's like, it looks weird, right?

08:34.000 --> 08:37.000
But we're, but the thing is, is that, like, you know,

08:37.000 --> 08:38.000
if you look at, like, MIT,

08:38.000 --> 08:40.000
people have borrowed all these ideas from MIT,

08:40.000 --> 08:43.000
they're just mining MIT's history for decades.

08:43.000 --> 08:45.000
And, um, and then they're like,

08:45.000 --> 08:46.000
oh, that list thing.

08:46.000 --> 08:47.000
It's a pain in the past.

08:47.000 --> 08:50.000
Well, part of the reason why a lot of beautiful things have happened,

08:50.000 --> 08:54.000
the reason we keep returning to that research that happened in the AI lab,

08:54.000 --> 08:55.000
and stuff like that for decades,

08:55.000 --> 08:59.000
they had a very flexible environment where they could explore ideas, right?

08:59.000 --> 09:01.000
I don't think Sprite Lee's technology,

09:01.000 --> 09:04.000
people see all this stuff and they're like, why did you choose a list?

09:04.000 --> 09:07.000
Well, I don't think we actually could have figured out everything we figured out

09:07.000 --> 09:08.000
if we hadn't chosen that,

09:08.000 --> 09:12.000
because it would give us a lot of flexibility to be able to actually explore these ideas.

09:12.000 --> 09:14.000
And that's my defense, the steam, and the Sprite Lee Institute.

09:14.000 --> 09:16.000
But the thing is, once you figure out these things,

09:16.000 --> 09:18.000
people can borrow them and bring them to other places,

09:18.000 --> 09:23.000
but still, gobbling to the paradigm of how did you programming

09:23.000 --> 09:26.000
it composes with the rest of your steam system,

09:26.000 --> 09:28.000
but it's a paradigm for how did you programming?

09:28.000 --> 09:30.000
But introducing paradigms is not a new thing.

09:30.000 --> 09:32.000
We do it all the time.

09:32.000 --> 09:35.000
But we need to get things to users, right?

09:35.000 --> 09:38.000
So, hoot is a scheme to have a simply thing,

09:38.000 --> 09:41.000
and we've got several hoot people over here in the room.

09:41.000 --> 09:43.000
We got Andy, we got Dave,

09:43.000 --> 09:47.000
and we've got Julie the thing that made it possible for us to get hoot to users.

09:47.000 --> 09:51.000
If you check out the latest exciting article,

09:51.000 --> 09:52.000
you go to our news,

09:52.000 --> 09:54.000
oh, we probably saw this picture.

09:54.000 --> 09:56.000
It's gobbled in the browser,

09:56.000 --> 09:58.000
and if you just saw Jessica's talk, it's amazing.

09:58.000 --> 09:59.000
We actually have this.

09:59.000 --> 10:01.000
This was a big bet, right?

10:01.000 --> 10:03.000
The idea that we would be able to do a scheme to web assembly,

10:03.000 --> 10:05.000
was MGC wasn't even in browsers yet.

10:05.000 --> 10:06.000
It was a proposal.

10:06.000 --> 10:08.000
It was like, we're going to do the hoot thing.

10:08.000 --> 10:10.000
We hope this works, right?

10:10.000 --> 10:11.000
And it did.

10:11.000 --> 10:15.000
But sometimes you have to take that kind of bet.

10:15.000 --> 10:23.000
But what does it mean to move from a research project to something else?

10:23.000 --> 10:25.000
For several years,

10:25.000 --> 10:26.000
it didn't even have a website.

10:26.000 --> 10:29.000
This was actually the original sketch I did for one thinking about

10:29.000 --> 10:32.000
the first Spritely website.

10:32.000 --> 10:35.000
And that website actually ended up changing.

10:35.000 --> 10:38.000
This was the original Spritely website.

10:38.000 --> 10:40.000
Now, we have the new Spritely website,

10:40.000 --> 10:42.000
which looks pretty similar.

10:42.000 --> 10:45.000
It had this middle period where it looked pretty different.

10:45.000 --> 10:50.000
And you can see, I'm sketching on paper,

10:50.000 --> 10:51.000
oh, there's all these things.

10:51.000 --> 10:53.000
You see these little characters on the side here,

10:53.000 --> 10:55.000
like this monster manual of characters.

10:55.000 --> 10:58.000
And you see the ideas here.

10:58.000 --> 11:01.000
My friend Ayves said, maybe don't see a new world's weight.

11:01.000 --> 11:02.000
That sounds a little bit colonial.

11:02.000 --> 11:04.000
She is right, so we said social worlds away.

11:04.000 --> 11:07.000
But the idea here is that I was like,

11:07.000 --> 11:08.000
how do I make this exciting?

11:08.000 --> 11:11.000
How do we get this idea that this technology can be

11:11.000 --> 11:13.000
exciting and beautiful?

11:13.000 --> 11:17.000
And not just like this pile of computer science papers,

11:17.000 --> 11:23.000
but that we should feel something energized and beautiful about it.

11:23.000 --> 11:27.000
And you know, I'm doing this Spritely Institute website.

11:27.000 --> 11:29.000
You know, these various phases of like,

11:29.000 --> 11:32.000
we decided, oh, much more of a research institution.

11:32.000 --> 11:34.000
You know, like Spritely started out,

11:34.000 --> 11:37.000
it's like four or five years of just me working solo.

11:37.000 --> 11:40.000
And then basically three people co-founded it.

11:40.000 --> 11:43.000
Myself, Randy Farmer and Jessica Talon,

11:43.000 --> 11:45.000
who is the first engineer who wasn't me.

11:45.000 --> 11:48.000
And like we, and you know,

11:48.000 --> 11:50.000
with a big change to move from this thing,

11:50.000 --> 11:53.000
we're just a solo project to where we're going to go.

11:53.000 --> 11:57.000
And you know, I'm talking a little bit about the aesthetics.

11:57.000 --> 11:59.000
I'm going to talk a little bit more about it

11:59.000 --> 12:04.000
because we're the aesthetics that some thought it's behind them.

12:04.000 --> 12:09.000
The thing is is that building out a vision

12:09.000 --> 12:13.000
of what we could have, you know,

12:13.000 --> 12:14.000
I'm just going to jump ahead.

12:14.000 --> 12:16.000
I'm going to show you this.

12:16.000 --> 12:18.000
Here's a bunch of these characters sitting around the thing.

12:18.000 --> 12:20.000
I'm saying like, oh, we're going to make it exciting,

12:20.000 --> 12:21.000
etc.

12:21.000 --> 12:24.000
But you know, we have these cutesy things.

12:24.000 --> 12:28.000
This actually started with, oh, do I not have it?

12:28.000 --> 12:30.000
I dropped it.

12:30.000 --> 12:32.000
Oh, you know what I did?

12:32.000 --> 12:36.000
It's not important.

12:37.000 --> 12:39.000
This was the original version.

12:39.000 --> 12:41.000
I sketched these on a tiny index card,

12:41.000 --> 12:43.000
and I sent them the fantasy artist David Revalon.

12:43.000 --> 12:45.000
I'm like, hey, can you make these look cool?

12:45.000 --> 12:46.000
I'm very busy.

12:46.000 --> 12:47.000
And he did.

12:47.000 --> 12:49.000
He came up with this really cool set of designs.

12:49.000 --> 12:51.000
But why do we have all these things?

12:51.000 --> 12:53.000
Sometimes, frankly, scenes are overwhelming.

12:53.000 --> 12:55.000
We talk about, we've tried to pair it down.

12:55.000 --> 12:56.000
We're like, goblins and hoot,

12:56.000 --> 12:57.000
which has not even appearing on this thing.

12:57.000 --> 12:58.000
Right?

12:58.000 --> 13:00.000
And then we've got everything else.

13:00.000 --> 13:03.000
And it's like, too many things, maybe.

13:03.000 --> 13:05.000
Why do we have this?

13:05.000 --> 13:08.000
So to be able to build out the vision that we wanted,

13:08.000 --> 13:11.000
we had to have a bunch of new fundamental components.

13:11.000 --> 13:13.000
So I'm going to spend some time actually one of the things

13:13.000 --> 13:15.000
that we're doing on the new website is we're trying to put out

13:15.000 --> 13:16.000
the project plan.

13:16.000 --> 13:17.000
People have been asking about this.

13:17.000 --> 13:19.000
They're like, sprightly, it seems so cool,

13:19.000 --> 13:20.000
but where are you going?

13:20.000 --> 13:22.000
And that's what I'm actually going to be talking

13:22.000 --> 13:24.000
in this talk about is where we're going.

13:27.000 --> 13:30.000
And then it's been in the plan all along.

13:30.000 --> 13:34.000
And the thing is, if you scroll this old sprightly website,

13:34.000 --> 13:38.000
you just see this monster manual of characters comes up

13:38.000 --> 13:40.000
and it's like, oh, what's sprightly going to do?

13:40.000 --> 13:41.000
Can they take this on?

13:41.000 --> 13:43.000
We'll just do a couple of things.

13:43.000 --> 13:45.000
We'll build a distributed programming environment,

13:45.000 --> 13:47.000
no big deal, build portable encrypted storage

13:47.000 --> 13:48.000
that's probably easy.

13:48.000 --> 13:49.000
We'll do content.

13:49.000 --> 13:51.000
The rethink how we do identity.

13:51.000 --> 13:52.000
That's fine.

13:52.000 --> 13:55.000
We're going to do a whole mapping over the edge of activity

13:55.000 --> 13:58.000
published in addition to the new spec that we're writing.

13:58.000 --> 14:00.000
This distributed financing don't think about that.

14:00.000 --> 14:02.000
It doesn't have to do a blockchains,

14:02.000 --> 14:03.000
so that's actually the really interesting thing.

14:03.000 --> 14:04.000
I will get back to it.

14:04.000 --> 14:09.000
And then there's this and safely execute code.

14:09.000 --> 14:11.000
And then there's this whole thing that's like,

14:11.000 --> 14:12.000
oh, we're going to do a video game,

14:12.000 --> 14:14.000
and the distributed virtual worlds.

14:14.000 --> 14:16.000
And this is where fun days would be like,

14:16.000 --> 14:19.000
I thought you're doing human rights things,

14:19.000 --> 14:21.000
not making a video game.

14:21.000 --> 14:26.000
But there's this fun component that I want to talk about

14:26.000 --> 14:27.000
a bit more.

14:27.000 --> 14:31.000
But you notice just like I showed this whole thing about persistence.

14:31.000 --> 14:33.000
You know, it's serialized in the store of the world.

14:33.000 --> 14:35.000
And there's all these status markers on here.

14:35.000 --> 14:38.000
This one says it's like it's working pre-alpha.

14:38.000 --> 14:39.000
This is old.

14:39.000 --> 14:40.000
We actually have it now, fully.

14:40.000 --> 14:42.000
And we have a distributed debugging environment.

14:42.000 --> 14:44.000
The, um,

14:44.000 --> 14:49.000
Spritly was a research project that involved trying to find out

14:49.000 --> 14:53.000
how old the pieces come together to build a new vision of things.

14:53.000 --> 14:58.000
And I'm going to show you what that actually looks like as in terms of a more high-level thing in a moment.

14:58.000 --> 15:01.000
There were a couple of other things that didn't make it on the map.

15:01.000 --> 15:04.000
This was the thing that was, um, was like, oh,

15:04.000 --> 15:06.000
we're going to have a mascot for the network component.

15:06.000 --> 15:08.000
Well, we ended up calling that network component called,

15:08.000 --> 15:09.000
oh, captain.

15:09.000 --> 15:11.000
And at this point, it was called Boldil.

15:11.000 --> 15:13.000
Um, you know, and, uh,

15:13.000 --> 15:15.000
Later on, I, I commissioned David to review.

15:15.000 --> 15:17.000
One more thing called Navi.

15:17.000 --> 15:18.000
And we never put this on the map.

15:18.000 --> 15:20.000
But this was like for the UI things.

15:20.000 --> 15:25.000
And this is the reason I'm pulling this one up right now is that this is where we're actually going.

15:25.000 --> 15:29.000
You see that giant stack of the monster manual of things.

15:29.000 --> 15:32.000
And it took a while for you can actually get things to users.

15:32.000 --> 15:36.000
But we're now at the point where we can start getting things to users.

15:36.000 --> 15:40.000
Um, so I'm going to, I'm going to, um,

15:40.000 --> 15:44.000
I think I'm going to switch now in this world of chaos.

15:44.000 --> 15:48.000
It is the way that I'm handling this talk and show a presentation I worked on with Randy Farmer.

15:48.000 --> 15:51.000
To try to explain like what, what the vision of things is.

15:51.000 --> 15:53.000
And time is a funny thing.

15:53.000 --> 15:56.000
Because this, I think this presentation really holds up.

15:56.000 --> 16:01.000
But in another sense, you know, like, I come, like, new hype appears on the horizon after you make a thing.

16:01.000 --> 16:03.000
And then you're like, oh, got to revise that.

16:03.000 --> 16:07.000
I'm going to show you it without revisions and explain it within context.

16:07.000 --> 16:13.000
I think it would have been in, um,

16:13.000 --> 16:16.000
2000 that we started working on about five years ago, right?

16:16.000 --> 16:18.000
Like, it was two, it's, they're not too tough.

16:18.000 --> 16:19.000
20, 20.

16:19.000 --> 16:20.000
Oh, yeah.

16:20.000 --> 16:21.000
We started this.

16:21.000 --> 16:22.000
25 years ago.

16:22.000 --> 16:26.000
That's how long we've been thinking about this now.

16:26.000 --> 16:29.000
It was, um, it was in, it was in 2020.

16:29.000 --> 16:33.000
But in 2021 is when we, we had the version of this that we were actually presenting.

16:33.000 --> 16:36.000
So here's, here's this person named Alicia.

16:36.000 --> 16:39.000
Um, and what we can see is that she's a, she's a multi-faceted person.

16:39.000 --> 16:41.000
She's a high school math teacher.

16:41.000 --> 16:43.000
She does tabletop games with their friends.

16:43.000 --> 16:45.000
And she's a fan fiction author.

16:45.000 --> 16:49.000
And she has these different contexts and different communities and different personas.

16:49.000 --> 16:55.000
Um, but we don't consider her duplicitous for having these different personas.

16:55.000 --> 17:00.000
Um, you know, she, she, she, she, she, so here's Alicia.

17:00.000 --> 17:04.000
She's got, um, she's a math teacher, as I said in high school.

17:04.000 --> 17:09.000
And she's, she, she is in, you know, like this, her, her educational, um, context.

17:09.000 --> 17:13.000
And she quicks on, um, her, her persona.

17:14.000 --> 17:19.000
Um, if, uh, her teaching persona, she switches to being able to switch between her different, um,

17:19.000 --> 17:21.000
persona's managed by this system.

17:21.000 --> 17:25.000
This is basically the mockups for Navi that we did, you know, very early on.

17:25.000 --> 17:28.000
Um, and, and you can see, she's got her teacher persona.

17:28.000 --> 17:32.000
She's got her, um, gaining persona and she's got her fan fiction persona.

17:32.000 --> 17:36.000
And, and then she has the, this thing, you know, like, the agents that, like,

17:36.000 --> 17:39.000
be the peer-to-peer user agent that we're displaying here on the right.

17:39.000 --> 17:40.000
You can see what this basically means.

17:40.000 --> 17:41.000
There's a person.

17:41.000 --> 17:43.000
But what does it mean to have an online identity?

17:43.000 --> 17:44.000
We have this sometimes.

17:44.000 --> 17:46.000
Every now and then people completely misunderstood the identity, like,

17:46.000 --> 17:49.000
Facebook's like, we're going to do a true name policy, like a true identity.

17:49.000 --> 17:52.000
And people, you know, like, people are moldy faceted.

17:52.000 --> 17:56.000
Um, in each one of these contexts, Alicia behaves differently.

17:56.000 --> 17:59.000
Um, and she's not a duplicitous purpose of the person for that.

17:59.000 --> 18:04.000
So she switches between them and this, this, this system is allowing her to switch between them.

18:04.000 --> 18:08.000
And the, the interesting thing is that, not everybody might know her in every persona,

18:08.000 --> 18:09.000
right?

18:09.000 --> 18:10.000
She might behave differently.

18:10.000 --> 18:12.000
But some people might know her in both personas.

18:12.000 --> 18:13.000
Right?

18:13.000 --> 18:17.000
Um, and then she hears this thing, Ben's gaming account, uh, hang out.

18:17.000 --> 18:20.000
And there's actually some of the components that I showed earlier,

18:20.000 --> 18:21.000
start appearing in here.

18:21.000 --> 18:24.000
Um, so I mentioned that we're doing a different identity system.

18:24.000 --> 18:26.000
One, think no DNS, right?

18:26.000 --> 18:27.000
There's not even a domain name system.

18:27.000 --> 18:28.000
That's centralization.

18:28.000 --> 18:29.000
We're going to do better.

18:29.000 --> 18:30.000
Right?

18:30.000 --> 18:32.000
Um, imagine this, like, you know, like, if you've ever used, like,

18:32.000 --> 18:34.000
Tauronian services, you see that just,

18:34.000 --> 18:35.000
yeah, you can probably key, right?

18:35.000 --> 18:38.000
You know, and that's your, your name, but the thing you're going to connect to.

18:38.000 --> 18:39.000
Nobody can memorize that.

18:39.000 --> 18:42.000
You know, Facebook's like, we're going to be clever and do Facebook core,

18:42.000 --> 18:45.000
www.onian, and then people can connect to that,

18:45.000 --> 18:47.000
and then that becomes a fishing target, right?

18:47.000 --> 18:50.000
Because it's like, you change one character and it's really hard to tell.

18:50.000 --> 18:53.000
Um, so, so, what, but it turns out,

18:53.000 --> 18:58.000
there's a way to be able to identify, understand what the, um,

18:58.000 --> 19:02.000
what, like, um, identity without a global context.

19:02.000 --> 19:03.000
In fact, you do this probably every day.

19:03.000 --> 19:06.000
On your phone, you probably have a contact list, right?

19:06.000 --> 19:08.000
And if you still use phone numbers, which, because actually,

19:08.000 --> 19:10.000
we have not managed to deprogate those, um, you probably,

19:10.000 --> 19:14.000
you have certainly not memorized all the phone numbers on your phone.

19:14.000 --> 19:17.000
But you have local meaning towards those contacts, right?

19:17.000 --> 19:21.000
So in here, you see, you know, like, the A star light is, like,

19:21.000 --> 19:23.000
you know, it's a pet name in here.

19:23.000 --> 19:24.000
That's what it's called.

19:24.000 --> 19:25.000
It's like a local, even though name.

19:25.000 --> 19:27.000
And then there's also these things with a question marks,

19:27.000 --> 19:30.000
and these dotted lines around these, these are self-proclaimed names.

19:30.000 --> 19:31.000
This is this character.

19:31.000 --> 19:34.000
This person named Carol that there's not an existing relationship

19:34.000 --> 19:36.000
is saying, I am Carol, right?

19:36.000 --> 19:38.000
And we've actually done implementations of this,

19:38.000 --> 19:41.000
Jessica did one, and then Dave did one.

19:41.000 --> 19:46.000
Um, but, you know, so, um, so Alicia goes over and she clicks on

19:46.000 --> 19:50.000
to Carol's profile, and she goes to send a message.

19:50.000 --> 19:53.000
And, um, and then this is one of those things

19:53.000 --> 19:55.000
we're also like, people sometimes like,

19:55.000 --> 19:58.000
ugh, but there's something interesting happening here,

19:58.000 --> 20:01.000
which is says, you don't have an established relationship with Carol,

20:01.000 --> 20:02.000
how would you like to connect?

20:02.000 --> 20:04.000
And it says, pay two stamps or after an intro.

20:04.000 --> 20:08.000
Um, the stamp thing here is actually just an idea for a very simple,

20:08.000 --> 20:11.000
um, like, like, not something that's a currency,

20:11.000 --> 20:13.000
but actually just something that allows you to,

20:13.000 --> 20:16.000
if you have no connection, be able to say,

20:16.000 --> 20:18.000
um, here is some sort of path that involves

20:18.000 --> 20:21.000
some amount of resistance for spam and, um, and

20:21.000 --> 20:23.000
unwanted messages for resistance.

20:23.000 --> 20:26.000
But the preferred path is asked for intro.

20:26.000 --> 20:30.000
The majority of the time, the way that you want to be able to have a contact,

20:30.000 --> 20:33.000
effectively, if you don't have, if you have an unmediaed

20:33.000 --> 20:35.000
contact environment and a peer-to-peer network,

20:35.000 --> 20:37.000
the preferred way to be able to do it is to do it for free

20:37.000 --> 20:40.000
to actually rely on the network of people you already know.

20:40.000 --> 20:42.000
Um, and so, one way or another,

20:42.000 --> 20:45.000
Alicia gets this, this contact over to Carol,

20:45.000 --> 20:48.000
and she gets this thing that's in capabilities would be,

20:48.000 --> 20:51.000
um, it's a revocable, it's called a revocable cat facet,

20:51.000 --> 20:54.000
but what you actually see is she has this capability

20:54.000 --> 20:56.000
that allows her to send a message to Carol.

20:56.000 --> 21:00.000
Um, but Alicia can blow up this connection at any time,

21:00.000 --> 21:02.000
like a fuse, right?

21:02.000 --> 21:03.000
You know, like,

21:03.000 --> 21:04.000
right?

21:04.000 --> 21:06.000
And then the message can't go through anymore.

21:06.000 --> 21:08.000
So, as if any trust is broken,

21:08.000 --> 21:12.000
there's no free path, some sort of path needs to be reestablished.

21:12.000 --> 21:14.000
I don't want to over-focus on the stamps thing,

21:14.000 --> 21:17.000
sometimes people are like, oh, is this some cryptocurrency thing?

21:17.000 --> 21:20.000
This is actually just one of many ways that you can actually handle

21:20.000 --> 21:22.000
if you don't know somebody,

21:22.000 --> 21:24.000
you can actually handle, um,

21:24.000 --> 21:26.000
you can, you can add some sort of other path.

21:26.000 --> 21:29.000
But I believe social relationships are the preferred way

21:29.000 --> 21:30.000
to be able to connect to people.

21:30.000 --> 21:34.000
So, um, so here you have, um, people talking to each other

21:34.000 --> 21:36.000
and saying, you know, oh, um, we're going to meet up.

21:36.000 --> 21:39.000
We're going to hang out, um, let's get some pizza,

21:39.000 --> 21:42.000
um, and like, you know, there's some, like,

21:42.000 --> 21:44.000
an example of, like, this simple payment thing.

21:44.000 --> 21:46.000
Um, but the, um, here's another thing that, like,

21:46.000 --> 21:48.000
it's like, post NFTs, it's like, oh,

21:48.000 --> 21:51.000
god, I wish we hadn't put this in the presentation.

21:51.000 --> 21:53.000
There's something more important here.

21:53.000 --> 21:56.000
The idea is that there's an application that you don't trust

21:56.000 --> 21:58.000
and you're going to install it, right?

21:58.000 --> 21:59.000
We could have done anything here.

21:59.000 --> 22:01.000
It just happened, oh, I'll explain why for a second

22:01.000 --> 22:03.000
of this particular thing happened.

22:03.000 --> 22:05.000
But there's an untrusted application that comes in.

22:05.000 --> 22:07.000
And think about when you have,

22:07.000 --> 22:11.000
somebody emails you solitaire.exe, do you want it?

22:11.000 --> 22:15.000
No? Why not? You should be able to, right?

22:15.000 --> 22:17.000
If you were an accountability-based environment,

22:17.000 --> 22:19.000
you should be able to execute solitaire,

22:19.000 --> 22:22.000
and it would open up in a world where it has no powerful rights.

22:22.000 --> 22:24.000
No ability to open up your file system,

22:24.000 --> 22:26.000
et cetera, et cetera, et cetera.

22:26.000 --> 22:29.000
Um, and this particular example,

22:29.000 --> 22:31.000
the person without any prior experiences

22:31.000 --> 22:33.000
able to install the application,

22:33.000 --> 22:36.000
um, and the thing is that, um,

22:36.000 --> 22:38.000
effectively, there's, there's different paths

22:38.000 --> 22:40.000
into being able to access these different parts of,

22:40.000 --> 22:42.000
uh, of this shared resource.

22:42.000 --> 22:43.000
Now, here we say a file system,

22:43.000 --> 22:46.000
but it could be any sort of, um, number of things.

22:46.000 --> 22:50.000
The thing is that there's not full access to this for anything.

22:50.000 --> 22:53.000
Um, and, um, and this,

22:53.000 --> 22:55.000
one, and so the person installs it to get this,

22:55.000 --> 22:58.000
um, this, this, this starter pack thing,

22:58.000 --> 23:00.000
which again, you know, this is pre,

23:00.000 --> 23:01.000
and a tease taking off.

23:01.000 --> 23:04.000
I wouldn't have chosen a trading card game if I knew that was going to happen.

23:04.000 --> 23:06.000
But, um, but the interesting thing here is that,

23:06.000 --> 23:08.000
effectively, this is, um,

23:08.000 --> 23:12.000
the application is embedding something within another application,

23:12.000 --> 23:15.000
and actually embedding behavior within another application.

23:15.000 --> 23:19.000
Um, and it is, how the, but it's using the same pet name system

23:19.000 --> 23:21.000
so that you could have a hold that accountable as a particular thing.

23:21.000 --> 23:25.000
Um, and, um, and so, here they're claiming that,

23:25.000 --> 23:27.000
they blah, blah, blah, blah, blah, blah.

23:27.000 --> 23:29.000
They go and they battle, and this was Randy Farmer,

23:29.000 --> 23:30.000
Michael Funderhead.

23:30.000 --> 23:31.000
Like, his, his, uh, um,

23:31.000 --> 23:34.000
12 year old kid designed this mock-up like in, like,

23:34.000 --> 23:36.000
like, like 20 years prior, we're like, blah, blah,

23:36.000 --> 23:37.000
he'll see that.

23:37.000 --> 23:39.000
Um, but, you know, the, the, the point.

23:39.000 --> 23:42.000
But that's, effectively the point, the thing.

23:42.000 --> 23:44.000
I haven't really shown that presentation to anyone in a while,

23:44.000 --> 23:48.080
and a while. And it's probably because it's like, oh, we need to update it. We got to get

23:48.080 --> 23:54.800
make people not think we're trying to do that STs or those types of things. But I kind of wanted

23:54.800 --> 24:01.760
to show it today because we're working towards the point where over this next year we're going

24:01.760 --> 24:07.840
to start doing more and more of the user-facing side of things. And there's some ideas that are

24:07.840 --> 24:12.880
in that presentation that seem, if you think about them a little bit wild, the fact that you

24:12.880 --> 24:18.720
have no central naming system that you're able to execute code you don't trust, right? That you're

24:18.720 --> 24:22.720
able to have distributed programming where people are cooperating over a peer-to-peer network

24:22.720 --> 24:28.080
and they have a natural flow of things. It's not how we do things today. And we've been putting

24:28.080 --> 24:34.080
down foundations so that's the type of thing that you can do. I have a bunch of things that I open

24:34.080 --> 24:37.680
in case we wanted to talk about, but like really my colleagues have done such a good job of talking

24:37.680 --> 24:41.440
about them. What can I do other than say this is a cool gift? Let's just see it go again.

24:43.040 --> 24:50.000
Right? There we go. We've actually been, we have been doing mock-ups. So this one's the old

24:50.000 --> 24:55.280
terminal version. We built a more new web-based version. And this is something we've been using

24:55.280 --> 25:00.080
internally to tap actually. It's like kind of bringing back the old multiplayer text adventure

25:00.080 --> 25:06.080
type thing. Every now and then people get confused about virtual worlds. They end up thinking

25:06.080 --> 25:09.520
like, you know, like Mark Zuckerberg here's about this like, oh, we're going to put this

25:09.520 --> 25:13.440
bucket over everybody's head or maybe they'll get real chunky glasses. And then we're going to be

25:13.440 --> 25:18.960
living and fucking no crash. Right? And it's like you missed the point. Right? Because it's not about

25:18.960 --> 25:25.040
the interfaces that I and the O, right? It's not an input and output. The really hard part is how you

25:25.040 --> 25:30.320
actually make it so that you can securely cooperate. If you can do this in text, the 3D stuff

25:30.320 --> 25:35.280
isn't as hard. The hard part is a distributed peer-to-peer system. And being able to allow for

25:35.280 --> 25:40.320
secure cooperation. That's the hard part. So we've been using this internally, like little

25:40.320 --> 25:45.040
experiments. We do it kind of often on to go like two months of like, you know, just like we're

25:45.040 --> 25:48.640
using this every day and in hitting issues and then we're just like, well, let's go back to

25:48.640 --> 25:53.040
matrix for a bat and then we like do it again, like depending on kind of our development cycle.

25:53.040 --> 25:57.680
But the goal is this next year to start moving towards something where we can encourage more

25:57.680 --> 26:03.760
people to play with things. If you saw, I mean, it's possible that you did not watch Jessica

26:03.760 --> 26:08.160
Talon's talk though. If you are maybe not here in the room previously. This is a chat program

26:08.160 --> 26:13.440
that we wrote a few years ago. The interesting thing about this chat program is that this chat program

26:14.160 --> 26:17.760
there's a couple of things. One, it's a peer-to-peer system. It's using touring and services.

26:17.760 --> 26:21.760
That's why there's so much delay in this example. We've mentioned that you can swap out different

26:21.760 --> 26:26.480
net layers. So this is a pretty slow net layer. But here you see actually two

26:26.480 --> 26:35.520
guide programs talking to a racket program. And the code that handles the chat program,

26:36.560 --> 26:41.920
that handles the chat room and the code that handles the user, these messages are authenticated

26:41.920 --> 26:48.080
for which a user they're coming from. There's no, it's peer-to-peer and this is 150 lines of code

26:48.080 --> 26:52.720
for both the user code and the chat room code. This was written a few years ago. It's like a demo I

26:52.720 --> 26:58.400
put together when I was putting together a cap and the interesting thing is I first wrote

26:58.400 --> 27:03.600
together the Goblin chat program. This minimalist code. And I wrote it without mentioning the

27:03.600 --> 27:08.720
network once. Jessica showed you in just a few lines of code. You can hook something up

27:08.720 --> 27:13.680
like this amount of network bootstrapping thing. The interesting thing is that you can write

27:13.680 --> 27:19.680
your Goblin's program without even thinking about the network. The Goblin's abstracts the whole

27:19.680 --> 27:23.520
process about thinking about the peer-to-peer parts. You just focus on the code flow. So none

27:23.520 --> 27:31.200
of the core code I wrote thought about the network. And so the really interesting thing though

27:31.200 --> 27:34.880
is that Jessica poured at this and you can see it on the blog post. You can do this yourself

27:35.920 --> 27:40.560
in Firefox. We're using a feature not yet available in Chrome unless you turn on a flag. But

27:40.560 --> 27:47.520
if you say hello, it'll appear here and then stop. And this is using the same, this is using

27:47.520 --> 27:52.080
a cap and it's running in your browser. Now it's running a little fake network in your browser,

27:52.080 --> 27:56.560
just so that we don't have to keep some infrastructure while we're at phos them and like

27:56.560 --> 28:01.680
kick it and stuff like that. But it's actually using the very the very protocol or very peer-to-peered

28:01.680 --> 28:08.000
protocol. This is Goblin's on who in action. We're getting to the point where we can actually

28:08.000 --> 28:16.640
take care of stuff and make it more available to people. I think so I mentioned the game stuff.

28:16.720 --> 28:21.520
We've got a bunch of video games that we've done. I think this one, I think it's the most fun,

28:21.520 --> 28:26.560
it's called StriggerForm. And just to, you know, they've showed it off a little bit, but like,

28:27.120 --> 28:31.120
you know, like it's like if you like soco-bomb, like block-puzzle things, well it's like that except

28:31.120 --> 28:35.920
you have to solve circuits. But the cool thing is that you can do to get time and go backwards.

28:35.920 --> 28:39.200
And that time travel stuff that Jessica showed off at works in your browser too.

28:40.000 --> 28:43.360
So we've been building towards something. We've been building towards something where the

28:43.440 --> 28:49.920
really hard parts of doing all this stuff are taking care of for you so that you don't have to be

28:49.920 --> 28:55.280
an expert. So you don't have to understand every layer. You can focus on building the application

28:55.280 --> 29:00.880
you want to build. That's the future we want. I don't need to show you the space shooter. That's

29:00.880 --> 29:05.200
fun, but you can play it yourself. It's on Spritly.Institute Slash Arcade. Anyway, I got this

29:05.200 --> 29:10.560
at a donate thing again. It's another picture of Alicia. We want to support users. I'll leave

29:10.640 --> 29:14.080
a donate thing up for a second. But actually, you know what? I'm not going to do it. I'm going to do

29:14.080 --> 29:17.920
just going to open up a new thing and go full screen because I'm not sure what's going to happen

29:17.920 --> 29:21.200
when I ask people to come up and I don't want them to be blinded. But I'm going to actually

29:21.200 --> 29:32.640
make the Spritly crew come up here. So I warn them at that time. Dave, Jessica, Julie, and Amy,

29:32.640 --> 29:38.480
and Andy, you've got to come up too. Okay, you don't have to. Everyone else have to.

29:41.200 --> 29:50.560
I want to, I want to just talk for a second about, so yeah, well, sorry. So there's a reason why I'm

29:50.560 --> 29:55.920
doing this. You can thank Julie. Julie is going to hate me for that. Look at the face.

29:56.720 --> 30:03.120
No, okay, good. Well, the thing is, Julie said something that struck with me a few years ago or maybe

30:03.120 --> 30:08.560
maybe about a year ago. You know, you commented about how a lot of people may sometimes

30:09.520 --> 30:14.160
misinterpret like, you know, I go out and I talk about activity public. And then people get the

30:14.160 --> 30:19.840
impression that like activity pubs this Christian thing, right? And you sometimes don't see when

30:19.840 --> 30:24.640
somebody becomes like the, you know, the face of the thing that that person is not usually acting

30:24.640 --> 30:30.080
alone. And the, you end up with like these kind of Steve jobs and then get even worse. You

30:30.080 --> 30:35.280
on Musk versions of things where, you know, the person's like, yeah, I am this God, right? And,

30:35.600 --> 30:39.600
you know, so partly for my own sanity, I'm, I'm forcing this brightly people to come up on stage so we

30:39.600 --> 30:44.240
can talk about what people do to be able to make this type of work possible. So I'm going to start with

30:44.240 --> 30:50.080
Jessica. Jessica not only worked with me on the activity pubs back. We've been working together

30:50.080 --> 30:57.440
for over a decade, about 12, 13 years now, I think. Jessica came in as an intern throughout

30:57.440 --> 31:02.960
reachy. So if you've ever heard of outreachy, you know, you can thank Jessica, partly for us to

31:02.960 --> 31:10.080
having the fettivers. Because she came in and to, to do a, an internship to be able to add

31:10.080 --> 31:14.720
Federation support to media goblin. And then on accident, we ended up actually just working on

31:14.720 --> 31:20.320
Federation's specs for a while, and that was a real legacy of media goblin. But when, when the

31:20.320 --> 31:24.480
spray of the institute was moving towards a spray of the institute, you know, it was Randy Farmer,

31:24.480 --> 31:31.520
we did a bunch of work on, on like old peer-to-peer, like capabilities, security type things,

31:32.400 --> 31:38.240
who is doing the organizational side of things with me. But Jessica Talon came in and took a big bet

31:39.120 --> 31:44.240
and to, I was like, Jessica, I need somebody else. We've gotten to the point where this is not,

31:44.240 --> 31:48.960
like this is stable enough that we, I know this can work. But I need somebody else to come in

31:48.960 --> 31:52.400
and be able to understand this. Jessica became the goblin enchantress, because Jessica said,

31:52.400 --> 32:01.120
yes, unless for job at Agalia, and came to work with us. And, and, you know, learned everything.

32:01.200 --> 32:06.000
And, and got so excited about goblin, so she took it on as their own. So I just wanted to say,

32:06.000 --> 32:09.440
thank you, Jessica, and I'm going to, let's give a little round of applause.

32:11.680 --> 32:16.560
Agalia, you're next. What, you don't want to round of applause. So you can't give it round of applause for

32:16.640 --> 32:24.640
Dave, but I'm still going to, um, thank Dave. Okay. So Dave, so Dave, um,

32:25.520 --> 32:33.520
when Dave came in as, um, as engineer, um, inspirately, and like kind of a senior engineer type

32:33.520 --> 32:37.360
position, right off the bat, because of all the work he's done in the giling, geeks, and et cetera,

32:37.360 --> 32:41.600
tech communities, and, and how he and I have known each other for such a long time, and,

32:41.920 --> 32:45.600
you know, I knew about his work on video game engines, I'm not going to lie about that, but the,

32:45.600 --> 32:50.320
the, but also just, um, because I knew he was a wonderful person, the way that he treated people

32:50.320 --> 32:56.160
was really good, in addition to being really, um, really brilliant as a programmer. And,

32:57.200 --> 33:01.760
I took over as executive director when I was CTO, and, and that was a scary thing to do,

33:02.560 --> 33:07.120
because, um, you know, like, I, I think of myself as a, you know, primarily technical person,

33:07.840 --> 33:12.560
um, and I do this leadership thing on the side, and then suddenly I'm in primarily leadership position,

33:13.440 --> 33:18.160
and it was like this, what's going to happen? But I didn't need to be worried about it, because I knew

33:18.160 --> 33:23.920
Dave would fit into the role and be a wonderful leader of a team immediately, and he was, and,

33:23.920 --> 33:29.920
and Dave has not only done incredible things on, he did as distributed debugger, he did our, um,

33:30.000 --> 33:39.360
you know, he, he was along with Andy, um, developer on, on hoot, um, and, um, and, uh, but, but, but he,

33:39.360 --> 33:45.200
he's stepped into, to a leadership role in a way we really care about. And, uh, and Julie,

33:45.200 --> 33:49.920
is the reason we have goblins on hoot. Julie, Julie is our integration engineer. She's not only doing

33:49.920 --> 33:54.320
goblins pursuit, she also did goblins with Shepherd. I mean, she's, she's doing shovel,

33:54.320 --> 33:56.800
it's called Shepherd, you heard about, but she also is the one who did the goblins with

33:56.800 --> 34:02.320
hoot stuff. And Julie came in, took, went through a massive number of phases of converting,

34:02.880 --> 34:08.400
bit by bit, goblins, that it was able to work on who, trying to port it piece by piece, um, adding

34:08.400 --> 34:12.720
hacks, and then making Dave and Andy go, oh, we don't want these hacks, and then fix them.

34:12.720 --> 34:18.000
And that was a story of who's becoming a usable system was like, but, but it took somebody who was

34:18.000 --> 34:22.480
really able to be, to, to really stick with it, and, and to learn a bunch of internals,

34:22.480 --> 34:26.000
and work with a bunch of really difficult tooling when it was not easy to work with. And so,

34:26.080 --> 34:30.080
thank you, Julie. So, um, so we, we will give a long-to-class for Julie.

34:32.960 --> 34:42.080
And finally, I wanted to say, um, thank you to Amy, um, you know, um, I am, uh, we had a very unusual

34:42.080 --> 34:45.200
job posting. We made up a title for it. Turns out they actually have that title for people

34:45.200 --> 34:49.120
who were on IT systems, and I didn't know that at the time, but, um, but like, you know, when I

34:49.120 --> 34:53.520
came in as executive director, it was immediately clear that I needed help, like I couldn't do

34:53.600 --> 34:58.160
this alone. And I needed somebody who could both be interested in the organizational side of things,

34:58.160 --> 35:02.800
but also could handle all the tech BS that we do. And so, I needed somebody who could like use

35:02.800 --> 35:07.200
ENAX day-to-day, and also help organize the thing and get excited about organizing the thing.

35:07.200 --> 35:10.880
Amy has been that person, and actually has done so many things inside the organization.

35:10.880 --> 35:14.480
And there's one of the only reasons that, well, no, okay, there's a lot of reasons.

35:14.480 --> 35:19.440
It's only reasons about, like, the things that I was feared about myself that I've been able to

35:19.440 --> 35:23.200
get past those fears to be able to believe that, you know, like, we're, I think we can do this,

35:23.200 --> 35:28.080
and I think we can make it. And so the last thanks, well, first of all, Andy Wingo, thank you,

35:28.080 --> 35:34.560
but I know you don't want me to thank you any further, so I'm gonna stop. But, um, but I, I also

35:34.560 --> 35:40.800
wanted to say, um, thank you to our community, thank you to the people who have funded us,

35:41.440 --> 35:50.640
um, and, um, and, um, I actually, um, well, um, uh, you can, you can signal yes or no,

35:50.640 --> 35:57.440
but, um, no, no signals, so I'm not gonna do it. Um, the, uh, the, I'm actually gonna think

35:57.440 --> 36:01.760
Daniel Bryan, um, Danny, Danny in the back, um, Danny in the back, um,

36:02.960 --> 36:07.520
they're, Sprayley Institute has only partly been able to make it because Danny did his research

36:07.520 --> 36:12.240
and knew about all the history of everything that led to Sprayley, and we, we knew each other

36:12.240 --> 36:17.440
from when he worked at the FF, and he's really done a lot to organisationaly be there to support

36:17.440 --> 36:22.320
us and to support me to be able to make this organization happen. And the last thank you is to the

36:22.320 --> 36:25.360
community of people who have picked it up in the community of the future, which I hope you

36:25.360 --> 36:31.440
include Zalazio. There's maybe a weird talk. I'm talking about the, it's definitely a weird talk.

36:31.920 --> 36:36.080
It's not a minimal talk. It's not a minimal talk. It is declarative.

36:39.680 --> 36:45.920
But, every now and then, I think it's important to do something that's really big vision

36:46.560 --> 36:51.680
and Sprayley's a big vision thing and a risky thing in many ways, but I think we've actually managed

36:51.680 --> 36:56.880
to bring so many components to the point where they're working and that stuff is all coming together.

36:57.440 --> 37:02.560
And what I really hope is that many of you will find it be a coming excited and become part of

37:02.560 --> 37:07.840
things. And I really, and I'm thankful for all the community members who have pitched in.

37:07.840 --> 37:11.760
You know, it's never just an organization, an open source project, it's also the community

37:11.760 --> 37:14.960
who ends up being part of things that even if they're not being paid, you know, and sometimes

37:14.960 --> 37:20.240
especially if they're not being paid, but there's a lot of, you know, like unrecognized labor

37:20.240 --> 37:27.760
that often happens. So I'm going to stop here and bring it to Q&A. If you want, you guys

37:27.760 --> 37:32.720
can hang around on the page for Q&A, but you can go back to your seats. You can go back to your seats.

37:32.720 --> 37:39.440
Thank you, everybody. Thanks for the kindly true for putting up with me doing that last thing.

37:40.720 --> 37:45.920
How much time do we have for Q&A? 10 minutes. All right. Who wants to ask questions?

37:46.160 --> 37:49.840
I just want to ask you a lot of questions.

37:49.840 --> 37:57.680
CRDTs. Yeah. So the question is, what is the relationship between CRDTs and something like

37:57.680 --> 38:03.280
Goblin? So if you don't earn familiar with CRDTs or conflict-free replicated data types,

38:03.280 --> 38:11.120
very interesting systems, we are interested in them. So Goblins is about the kind of peer

38:11.200 --> 38:15.280
connection side of things is in terms of being able to do distributed programming.

38:15.280 --> 38:20.720
CRDTs are a particular kind of data structure, right? You can layer CRDTs on top of Goblins

38:20.720 --> 38:24.480
and it's something we've been very interested in doing. And if we think that actually, if you did

38:24.480 --> 38:27.680
that, it would have a lot of interesting properties because you could use our persistent system and

38:27.680 --> 38:33.120
everything. We haven't done it yet. So CRDTs are nice in that you can get messages from a number of

38:33.120 --> 38:38.240
different places asynchronously. You can come in in whatever order, everybody who has heard the same

38:38.240 --> 38:43.600
messages will end up at the same state. Not all systems require CRDTs, right? People have used

38:43.600 --> 38:48.720
IRC for a long time without CRDTs if you, you know, email for a long time without CRDTs.

38:48.720 --> 38:52.320
And a lot of systems can work great without them, but they can do a lot of useful things

38:52.320 --> 38:57.680
when ordering matters and all sorts of other things. The main thing is that Goblins itself

38:57.680 --> 39:03.680
does not use CRDTs, but I would like to actually have CRDTs implemented and integrated with Goblins.

39:03.680 --> 39:08.080
And I think there are some use cases in which it's very likely that we are going to turn to CRDTs.

39:08.720 --> 39:15.520
That's part of the answer. So, okay, any other questions? You, Danny. I'm sorry again for, for, for,

39:15.520 --> 39:22.240
sorry, I just find, so, for context of this, right? So, basically what you get at that,

39:22.240 --> 39:27.440
I've been involved in a bunch of different projects that have gone through these ages, but

39:27.520 --> 39:37.440
actually, the smoke that remains beyond is, um, there was a point with Rust, where Rust was just

39:37.440 --> 39:42.160
turning from being a sort of single person and that's what team and there's a lot of problem.

39:42.160 --> 39:50.000
And a general feeling that this was more widely applicable and can turn from being a tool into

39:50.000 --> 39:55.440
something that could actually execute some change in the world, right? You get people thinking

39:55.760 --> 40:03.600
about, secure, computing, and everything. And one of the things that's always interesting for me

40:03.600 --> 40:11.120
about Spikey is how, uh, these sort of continues this thing that we've seen talked about in a couple

40:11.120 --> 40:19.760
places in this room, which is about the original kind of list by dear and my key idea of making

40:19.840 --> 40:26.000
everybody's somewhat of the developer having that sort of intimate control with the users and also

40:26.000 --> 40:32.160
sort of user autonomy. And I wondered if you could touch them, sorry, this is a lovely question,

40:32.160 --> 40:38.800
but, um, how do you see, you've done a lot of work as a lot of people, we have with free software,

40:38.800 --> 40:46.400
like, how does, how, how to spritly fit in with, like, the free software as a whole and sort of

40:46.400 --> 40:51.440
a user autonomy. Is that, is it just an accident that it's sort of like this being that way?

40:52.720 --> 40:56.720
So this is a great question and it has about five questions in one, so let me try to summarize them.

40:57.760 --> 41:03.360
So especially since the, the stream may not have heard them, so Danny effectively brought up

41:03.920 --> 41:10.080
rust, the seat feels like the movement and rust moving from kind of a solo thing to, like, a larger thing.

41:10.080 --> 41:15.120
I think, and hope so, I gave some background here that I don't normally give about kind of the

41:15.120 --> 41:19.200
transition from the, the solo thing to kind of a group thing. And that's the reason why I brought

41:19.200 --> 41:24.720
all the spritly people up on stage, actually, with the show, this started as this kind of smaller

41:24.720 --> 41:28.800
thing, but actually, I think we're hitting a point where the interesting thing is, is now,

41:28.800 --> 41:33.040
I can be off doing organizational things and I don't have to worry about it because the spritly team,

41:33.040 --> 41:35.920
I'm like, you should be doing, oh, you're already doing that thing, right? You know, like Dave,

41:35.920 --> 41:40.800
like, it's, it's gotten to that point. So, you know, part of the thing, if the goal is to move it,

41:40.800 --> 41:45.520
so that it's not just like this core group of spritly people internally, but a bigger community

41:45.520 --> 41:49.760
that understands the vision, right? Because this was so much hard core research, and in some ways,

41:49.760 --> 41:54.560
it kind of required this insider view for quite a while. So, I do think, and hope, that we are

41:54.560 --> 41:59.360
moving from beyond the kind of insider view towards larger picture. It's one of the reasons that we

41:59.360 --> 42:04.560
all bet big-on-possed them this year, and on this room in particular, was that we know we're still

42:04.560 --> 42:08.560
in kind of the programming language, you know, like people who are willing to get there, you know,

42:09.200 --> 42:15.840
their hands dirty type, take the scenario, but we want to move increasingly to a point where it's

42:15.840 --> 42:22.480
a wider space. So, to the whole, like, you know, the reminder of, like, the list, the MIT history,

42:22.480 --> 42:28.800
that kind of area of research, how does that all tie in, right? You know, the MIT artificial intelligence

42:28.800 --> 42:33.360
lab, they have all these documents. Anybody could go read them, and in fact, I read tons of them.

42:33.360 --> 42:37.360
In fact, I read so many of them that somebody then gave me a secret archives in my house full

42:37.360 --> 42:42.800
of a bunch of MIT AI lab stuff that nobody else has. I would love to get it online at some point.

42:42.800 --> 42:49.040
But the thing is, is that the thing is that, you know, the AI demos are there, and anybody could

42:49.040 --> 42:53.760
read them, right? And there's this incredible amount of research that was done in this, you know,

42:54.960 --> 42:58.400
what, if you really look at it, in some ways, it's a short period of time, even though it's a long time,

42:58.400 --> 43:02.480
right? And it was by people who were very insider, right? You know, it was a bunch of people at this

43:02.480 --> 43:05.360
lab, they all knew each other, they talked to each other and stuff like that, and they figured all

43:06.320 --> 43:12.800
these things, and like, you know, like, jackets go by, and people are like, you know, we do need,

43:12.800 --> 43:18.640
you know, memory management that like, you know, see might not be enough. Maybe we do need,

43:18.640 --> 43:22.720
you know, this type of like, maybe we, you know, like, maybe we do need, and like, that's like,

43:22.720 --> 43:26.960
this whole, maybe we do need, and then you suddenly like, how were you to get pulled out of a dustbin,

43:26.960 --> 43:33.520
right? You know, stuff like that, all of these things, you know, like, the part of the goal of

43:33.520 --> 43:39.040
Sprightly is actually Sprightly's been doing that. Sprightly's been reaching into that and pulling things off the shelf,

43:39.040 --> 43:44.240
and how do we not end up at a moment where Sprightly stuff is just on the shelf, right? You know,

43:44.240 --> 43:51.120
I don't, what I don't want to happen is to have, you know, like, a decade go by, you know,

43:51.120 --> 43:56.000
the Sprightly has a project or organization, you know, like, you know, kind of diminishes,

43:56.000 --> 44:00.640
and then like, and then like, you know, like, another decade goes by, and then people are like,

44:01.200 --> 44:05.040
turns off the Sprightly stuff, people started to fix all this, and then another thing happens,

44:05.040 --> 44:10.000
where 5% comes out again, and then the rest of it disappears, right? I would like to do better than that.

44:10.800 --> 44:17.920
That's part of the reason why I'm, I'm kind of doing the big ask, the big picture, giving you the view

44:19.040 --> 44:24.480
of kind of the internals of how we got to this moment with Sprightly is I would like this to not be

44:25.360 --> 44:33.120
a, um, even though all the NITI lab stuff was there for anybody to read, it's still, I think,

44:33.120 --> 44:38.160
felt closed off from many people, and I would like that to not happen. I think we've done too much

44:38.160 --> 44:43.360
cool work. We have to get it out to everyone, and we have to get it even beyond just the schemers,

44:43.920 --> 44:49.840
but, um, but the schemers will be able to take advantage of it first and best. So, okay,

44:49.920 --> 44:54.880
and the other questions, we have any more time, or are we done? Okay, all right, good.

45:06.560 --> 45:13.520
Um, so it's basically how much you've, you can, what you can do is you can say, okay, start

45:13.520 --> 45:18.160
keeping track of history. It's not like, uh, so it's not like a blockchain, where like, you know,

45:18.240 --> 45:22.560
you just have this successive series of events that you then hold onto forever and, like,

45:22.560 --> 45:27.200
stuff like that. It's basically you, you can, you can say, okay, start storing this history.

45:27.200 --> 45:30.960
And then you, and it'll, it'll start from that moment, so what happens in the distributed

45:30.960 --> 45:34.880
debugger is that you actually turn, you, you, you turn it on for a specific that,

45:34.880 --> 45:39.760
and you can start playing with it. The part that happens automatically, though, is a transactional

45:39.760 --> 45:45.520
aspect. Time travel is an infinite amount of transactionality, um, but as kind of one or zero

45:45.520 --> 45:49.600
step amount of transactionality is when you have something that's in process and it fails and it

45:49.600 --> 45:55.840
rolls back in an atomic way. That's the part that greatly handles automatically. If something fails,

45:55.840 --> 46:00.080
the state changes that would have been associated with it get rolled back. And the messages that

46:00.080 --> 46:04.320
would have been transmitted from that particular thing are instead not transmitted, but any promise

46:04.320 --> 46:09.200
that's trying to listen to, wait to find out what the result is, is in form of an error. And so,

46:09.200 --> 46:12.720
that's, that's the, and that's the, and that's the part where we incorporate functional programming,

46:12.720 --> 46:16.320
but hide it, right? You know, like, we make the money out of the implicit, so users don't have to

46:16.320 --> 46:21.120
see it. Monads are planning, you know, like, we, we, we keep them from people. But can I just ask

46:21.120 --> 46:26.800
this to your question about the time travel stuff? It's essentially just kept in the process

46:26.800 --> 46:31.360
at the moment, and it's, you want to read buffer? Is, you set, you set the size of the

46:31.360 --> 46:35.760
read buffer? Okay, yeah, so I'm done. So, and you can do me customized how much history you're

46:35.920 --> 46:44.400
accepting. All right, I think we're definitely done, and I want to say, you should absolutely

46:44.400 --> 46:51.680
listen to Hishan, who is one of the best people here. And, um, things have to be finishing.

46:57.520 --> 46:58.800
The maker of ASTOP, okay?

