WEBVTT

00:00.000 --> 00:08.480
Welcome now the next speaker, the duo.

00:08.480 --> 00:16.000
We have Andreas and Tobias and they're going to talk about, was a local first Linux desktop

00:16.000 --> 00:19.000
with Modal Reflection and peer-to-pondal.

00:20.000 --> 00:21.000
Welcome!

00:27.000 --> 00:33.000
Hi everyone, I'm Tobias and this Andreas and we're from Modal.

00:33.000 --> 00:36.000
Shout out to all the other Modal people here in the room.

00:36.000 --> 00:38.000
Really cool that everyone's here.

00:38.000 --> 00:40.000
Great energy.

00:40.000 --> 00:49.000
Today we're here to talk about local first on the desktop and also the broader Linux mobile

00:49.000 --> 00:51.000
desktop complex.

00:51.000 --> 00:57.000
Yeah, I'm going to start that on kind of a broader context.

00:57.000 --> 01:02.000
I think this picture is maybe good for setting the stage.

01:02.000 --> 01:08.000
Because I think for many of us we've been in this movement for a long time and I think over the last year

01:08.000 --> 01:15.000
people outside of our specific circles have really realized all of our infrastructure fully dependent

01:15.000 --> 01:18.000
on the US, what the fuck are we going to do?

01:18.000 --> 01:22.000
And I think from a meta perspective this could have been like, wow, this is the moment

01:22.000 --> 01:25.000
or everyone realizes what needs to happen.

01:25.000 --> 01:28.000
We're just going to switch over, everyone's going to use three software now.

01:28.000 --> 01:34.000
Except most of the things that people actually need, we don't actually have.

01:34.000 --> 01:37.000
We don't have a daily travel phone operating system.

01:37.000 --> 01:42.000
We don't really have the level of security like on the Linux desktop that like iOS or Graphene have.

01:42.000 --> 01:46.000
A lot of the collaborative tools that people need in the real world like relax and so on.

01:46.000 --> 01:48.000
We don't have like a good alternative.

01:48.000 --> 01:52.000
Anything that's like the bi-sync is like a question mark.

01:52.000 --> 01:57.000
And it's all a bunch of stuff like this where we are like 80% of the solution that works as long as you're really technical.

01:57.000 --> 01:59.000
And for anyone else it's like,

02:00.000 --> 02:07.000
and our takeaway sort of as a collective and like I guess some of the people around are in our circles

02:07.000 --> 02:10.000
is that we really need to be much more focused on strategic.

02:10.000 --> 02:17.000
We need to like actually think about how we can solve these problems in a way that scales to people who don't come the fossil.

02:17.000 --> 02:23.000
And also I think we need to sort of take an account the fact that the world is not where it was five years ago or 10 years ago

02:23.000 --> 02:27.000
when most of the tech that we have now was built and planned.

02:27.000 --> 02:32.000
I was like, yeah, these platforms are just kind of sort of neutral and like it would be nice if we had free software.

02:32.000 --> 02:35.000
But like, you know, whatever.

02:35.000 --> 02:37.000
It's also fine if only some of us can use it.

02:37.000 --> 02:43.000
That's not where we're going and we need to be much more realistic about the kind of risks that we're facing.

02:43.000 --> 02:48.000
And that is sort of the background where model comes from.

02:48.000 --> 02:55.000
It's a new collective from I guess mostly the Berlin community around Gnom and post market and Peter Pandan some other things.

02:55.000 --> 02:59.000
It comes sort of like out of our local events there.

02:59.000 --> 03:03.000
And it sort of the idea is that we're organizing differently.

03:03.000 --> 03:06.000
We're organizing around goals rather than like these specific technologies.

03:06.000 --> 03:12.000
But we're also doing it in this focused way to like actually achieve them on a semi useful timescale.

03:12.000 --> 03:16.000
And for us that starts maybe like by taking another step back.

03:16.000 --> 03:20.000
I like sort of looking at like what we're actually trying to do.

03:20.000 --> 03:23.000
Because software freedom is useful and good and we still need it.

03:23.000 --> 03:28.000
It's sort of one of the one of the driving principles of everything always.

03:28.000 --> 03:29.000
But it's not the only thing.

03:29.000 --> 03:34.000
And I think in the Gnom community people have long realized this that's why like the design first is always like a big thing there.

03:34.000 --> 03:40.000
And I think that always needs to be part of it because otherwise people who are not at fuzz them don't want to use stuff.

03:40.000 --> 03:43.000
But also I think we need to be much more aggressive about security.

03:43.000 --> 03:49.000
We need to like actually think about the kind of threats that not only like are real now but are going to be really in the future.

03:50.000 --> 03:55.000
We need to think about post internet. We need to think about all of the like.

03:55.000 --> 04:00.000
Current and future risks that that sort of exist nowadays that people didn't think about before.

04:00.000 --> 04:05.000
And for us this friends say it's into a few semi concrete medium term goals.

04:05.000 --> 04:10.000
One of them is the security saying like actually getting the Linux desktop to be as secure as graphene.

04:10.000 --> 04:14.000
That's like a big topic 100 different small things need to be done there.

04:14.000 --> 04:16.000
But that's like sort of a driving force for us.

04:16.000 --> 04:21.000
We need a daily drive mobile phone that you can actually use to deploy in the field instead of Android.

04:21.000 --> 04:24.000
We need to look for sync. I don't think I need to say more for this room.

04:24.000 --> 04:29.000
We need robust like foundations for like the system itself.

04:29.000 --> 04:32.000
Like you don't want people in the field to like do the NF upgrade and then everything breaks.

04:32.000 --> 04:35.000
You need image space. Like there's no question there.

04:35.000 --> 04:39.000
You'd hardware to like be sort of I don't know.

04:39.000 --> 04:45.000
Usable as long as the hardware itself is usable because we don't know like what those supply chains are going to be doing in the future.

04:45.000 --> 04:54.000
And you know that in irrespective of the other good things right like you can just keep stuff for longer and like fewer emissions and so on.

04:54.000 --> 04:56.000
You really need to keep that hardware.

04:56.000 --> 05:02.000
And then we need an Apple ecosystem of apps that actually work with all of this stuff that are local first and so on.

05:02.000 --> 05:07.000
And in order to get there we do all kinds of things. We do developments design organizing.

05:07.000 --> 05:09.000
We write grants to all of the above.

05:09.000 --> 05:14.000
But also policy stuff I think is really important because for example bootloader unlocking does not really like a good technical solution.

05:14.000 --> 05:16.000
There you need the policy solution.

05:16.000 --> 05:22.000
And sort of our provocative goal in the long term as we would like a free software iPhone so to speak.

05:22.000 --> 05:26.000
Like an actual computing platform that is nice to use for everyone.

05:26.000 --> 05:34.000
And that gives everyone the rights that currently like only free software people or yeah technical people like enjoy.

05:34.000 --> 05:37.000
And for that we have a specific stock.

05:38.000 --> 05:42.000
I guess like there is sort of the standard Linux desktop stock.

05:42.000 --> 05:45.000
Linux system D for all the security stuff.

05:45.000 --> 05:47.000
Free desktop, wallet, and pipe wire.

05:47.000 --> 05:48.000
You know, desktop stock.

05:48.000 --> 05:52.000
GTK and a wide app because that's the stuff that sort of works best of mobile.

05:52.000 --> 05:55.000
Peter Panda for Logan networking.

05:55.000 --> 05:56.000
A photographer's networking.

05:56.000 --> 05:59.000
And then flatback for app delivery.

05:59.000 --> 06:06.000
And basically what we do is we just work upstream on these various projects to push forward our evil agenda of everything being good and cool.

06:07.000 --> 06:17.000
But I think one specific goal obviously for this room is that we meet networking to be way more resilient because that's like one of the sort of if we're talking about various risks.

06:17.000 --> 06:18.000
That's one of the most immediate risks.

06:18.000 --> 06:21.000
The network sort of can go away at any moment.

06:21.000 --> 06:24.000
And so that is I think like one important goal for us.

06:24.000 --> 06:29.000
And that's why looking for a sync is sort of at the core of of this broader vision.

06:29.000 --> 06:33.000
And for that, I'll let Andreas talk about Peter Panda.

06:33.000 --> 06:34.000
Hi.

06:34.000 --> 06:37.000
Yeah, my name is Andreas. I'm part of the Peter Panda gang.

06:37.000 --> 06:39.000
We are free people right now.

06:39.000 --> 06:42.000
This is like Sam, Cliff and me.

06:42.000 --> 06:45.000
We are based in Berlin in London.

06:45.000 --> 06:49.000
And funded for open source grants since the last six years.

06:49.000 --> 06:52.000
Sometimes we do also consultancy contracts.

06:52.000 --> 06:53.000
Yeah.

06:53.000 --> 06:59.000
And that Peter Panda is basically like a collection of what we call building blocks.

06:59.000 --> 07:03.000
And of course, the goal is to make like app development very easy.

07:03.000 --> 07:05.000
So people should focus on building the application.

07:05.000 --> 07:07.000
I think we all want that.

07:07.000 --> 07:11.000
For us, it's quite important that these building blocks are very modular.

07:11.000 --> 07:15.000
And agnostic to your data types, agnostic to the transports underneath.

07:15.000 --> 07:18.000
Basically to avoid something like the framework lock in.

07:18.000 --> 07:20.000
So we want this to be hackable.

07:20.000 --> 07:22.000
People should plug in the things together.

07:22.000 --> 07:23.000
How they want.

07:23.000 --> 07:27.000
And they should view their locked in into like certain technologies here.

07:28.000 --> 07:34.000
Some highlights, maybe of some things we've been working on is like confidential discovery and sync.

07:34.000 --> 07:36.000
This is also inspired by the Willow project.

07:36.000 --> 07:39.000
I think there's similar things going on there.

07:39.000 --> 07:44.000
We have a key agreement scheme for groups, which is full offline first.

07:44.000 --> 07:47.000
And it even supports double-ratcheting.

07:47.000 --> 07:50.000
Maybe it's the first implementation out there in Rust.

07:50.000 --> 07:55.000
We have CRDTs to organize groups, which is interesting for multi-device.

07:55.000 --> 08:00.000
We have forms of garbage collection, different forms of coordination strategies to prune your data.

08:00.000 --> 08:03.000
Because you don't want to keep it around forever.

08:03.000 --> 08:05.000
And we focus also.

08:05.000 --> 08:07.000
This is like one of a high-level goal and introspection.

08:07.000 --> 08:09.000
So like every system should be observable.

08:09.000 --> 08:11.000
You should really understand what's going on.

08:11.000 --> 08:13.000
This helps for debugging a lot.

08:13.000 --> 08:17.000
And as I mentioned before, all of this is independent of peer-to-pandler.

08:17.000 --> 08:20.000
Basically, these are fully generic implementations.

08:20.000 --> 08:24.000
You can combine them with any stacks, any peer-to-peer protocol whatsoever.

08:24.000 --> 08:28.000
So this is all of these are very concrete modules.

08:28.000 --> 08:30.000
You can just pull into your project.

08:30.000 --> 08:37.000
Another thing which is interesting about Pietopanda is that we don't really distinct between federation and decentralization.

08:37.000 --> 08:42.000
Like Pietopanda and its cores, like pure peer-to-peer decentralized.

08:42.000 --> 08:48.000
But it's also sometimes okay to have a note running somewhere in multiple clients, talk to it.

08:48.000 --> 08:52.000
That can be a note running on a server and then you have lightweight clients in the browser.

08:52.000 --> 08:55.000
You know, basically using the note as a proxy.

08:55.000 --> 09:00.000
Or having the note on system level and the multiple applications talking to it on the same machine.

09:00.000 --> 09:03.000
And then there's hybrids of these.

09:03.000 --> 09:08.000
And we think it's kind of up to the users or the communities, like based on the trade-offs of these two worlds.

09:08.000 --> 09:11.000
And to decide which one is best for them.

09:11.000 --> 09:16.000
Here, Tupanda is basically, we call that post-internet.

09:16.000 --> 09:20.000
So we also not only think about offline first, what happens if the internet is gone.

09:20.000 --> 09:28.000
We also think about what happens if there is no internet at all for political reasons for catastrophic reasons.

09:28.000 --> 09:36.000
So all our data types and designs are also prepared for basically like a broadcast only world.

09:36.000 --> 09:41.000
That means packet radio, Laura, Bluetooth, low energy.

09:41.000 --> 09:45.000
I mean, it's still established connections with Bluetooth for energy.

09:45.000 --> 09:52.000
But you get the idea we're basically like prepared for these scenarios.

09:52.000 --> 09:58.000
On our underlying principle, which inspires this reference model, we call the walkaway stack.

09:58.000 --> 10:05.000
And by that, we basically mean the events delivery part, like how your events arrive to your stack.

10:05.000 --> 10:06.000
We don't really care.

10:06.000 --> 10:08.000
We have some solutions here.

10:08.000 --> 10:09.000
We have things.

10:09.000 --> 10:14.000
But we want you to be able to swap that out in application should continue to run.

10:14.000 --> 10:17.000
It shouldn't be bothered about how these events arrive.

10:17.000 --> 10:22.000
Laura, packet radio, over the internet, over tour.

10:22.000 --> 10:29.000
And for this advice, it's very important because we don't know if the infrastructure is going to have in the future will be will stay.

10:29.000 --> 10:32.000
And we also don't know what power dynamics will play there.

10:32.000 --> 10:40.000
So walkaway basically means choose your own power and balances by choosing your own infrastructure.

10:41.000 --> 10:44.000
And you can see that being reflected in the creator-panda stack.

10:44.000 --> 10:47.000
So we have really a whole bunch of modules.

10:47.000 --> 10:51.000
Like down here, we have our event delivery layer, let's say.

10:51.000 --> 10:56.000
And very different sorts of connectivity substrates.

10:56.000 --> 11:02.000
You can plug in, also I mentioned, like, Laura and based.

11:02.000 --> 11:07.000
And up here, we've entered the event processing world.

11:07.000 --> 11:09.000
It's basically what the application wants to do.

11:09.000 --> 11:12.000
And there we have different modules, which might be interesting for you.

11:12.000 --> 11:15.000
Key agreements to agree on a symmetric key.

11:15.000 --> 11:18.000
Maybe then you start to encrypt that towards relay.

11:18.000 --> 11:24.000
That relay has then zero metadata because we agreed on the key beforehand for this key agreement scheme.

11:24.000 --> 11:26.000
Things like that.

11:26.000 --> 11:28.000
And then, at the very end, you have your database.

11:28.000 --> 11:30.000
And all the things you want to do.

11:30.000 --> 11:33.000
And we don't really have an opinion on how you want to do that.

11:33.000 --> 11:40.000
I think already, like, just the talks I heard before, all technologies, which could probably put there on top.

11:40.000 --> 11:42.000
And of course, it's a little bit cumbersome.

11:42.000 --> 11:46.000
You kind of need to be a peer-to-peer expert to know what you're really doing.

11:46.000 --> 11:49.000
With all of these modules, so currently, this is our work right now.

11:49.000 --> 11:53.000
We're working towards what we call peer-to-panda node and peer-to-panda client.

11:53.000 --> 11:59.000
These are more opinionated, high-level APIs, where you get very easy interfaces.

11:59.000 --> 12:03.000
Publish, subscribe, pattern, to deal with the whole stack.

12:03.000 --> 12:07.000
This is kind of, like, there we're leaving the modules on.

12:07.000 --> 12:10.000
There you get your whole all-in-one solution.

12:10.000 --> 12:15.000
And then, next to all of the development work, we also do research.

12:15.000 --> 12:20.000
You can follow that research on our blog, where we publish all our findings.

12:20.000 --> 12:24.000
And we also part of different events.

12:24.000 --> 12:30.000
We organized, like, last year, I was one of the organizers of the DWAP seminar in San Francisco and the Internet archive.

12:30.000 --> 12:33.000
And I also organized, like, a little lecture series.

12:33.000 --> 12:34.000
I'm going to talk about it.

12:34.000 --> 12:36.000
Free your clock.

12:36.000 --> 12:41.000
About this walk-away stack, I just mentioned, and some more philosophical thoughts about it.

12:41.000 --> 12:44.000
And then, yeah, we do collaborations with other teams.

12:44.000 --> 12:47.000
This is really great for us, because they're building the applications.

12:47.000 --> 12:49.000
They're giving us feedback on our APIs.

12:49.000 --> 12:51.000
They find the bugs.

12:52.000 --> 12:55.000
Yeah, this collaboration, now specifically, we're going to talk about it.

12:55.000 --> 13:00.000
It's the one with the GNOME community, and, yeah, this is them.

13:00.000 --> 13:04.000
Very concrete leading to the reflection project we will talk about.

13:04.000 --> 13:05.000
All right.

13:05.000 --> 13:06.000
Yeah.

13:06.000 --> 13:14.000
So, reflection is sort of the end product of, I guess, a two-year, like, collaboration between the GNOME community,

13:14.000 --> 13:17.000
P2Panda and, like, the various other people around model.

13:17.000 --> 13:23.000
And, sort of, the basic insight was that, like, we need an app that people can actually use day-to-day.

13:23.000 --> 13:25.000
And that's why we started, like, a text editor.

13:25.000 --> 13:28.000
That's the one thing we do all day is, like, take notes.

13:28.000 --> 13:32.000
So, like, sort of collaborative note-taking seems like a good, concrete case.

13:32.000 --> 13:37.000
And also, it seems like a good thing to, like, actually test all of the UI patterns.

13:37.000 --> 13:41.000
And, sort of, things that we're going to need across any local first app,

13:41.000 --> 13:46.000
because it's, like, a pretty, pretty generic thing that you can use for all kinds of stuff.

13:46.000 --> 13:51.000
And it started as, like, just sort of, a hack fest, where we, like, experimented a bit.

13:51.000 --> 13:55.000
And then, eventually, like, as part of an anomaly grant, Julian, who's there in the back,

13:55.000 --> 13:59.000
expanded it to a slightly more real app.

13:59.000 --> 14:03.000
And then, over the past six months, we've worked on this as part of a prototype fund grant

14:03.000 --> 14:06.000
to, like, get to a first release.

14:06.000 --> 14:09.000
And, yeah, that's sort of where we're now.

14:09.000 --> 14:13.000
Current state is, it is a fully native GTK app.

14:13.000 --> 14:17.000
You can install on your Linux machine, or hopefully soon in my class.

14:17.000 --> 14:20.000
We have some builds, but nothing published yet.

14:20.000 --> 14:24.000
And it works for all of the basics.

14:24.000 --> 14:27.000
It's a pretty simple, like, app, right?

14:27.000 --> 14:30.000
Like, it's a text view that sings.

14:30.000 --> 14:35.000
But behind that, of course, is a gigantic amount of technology that needs to all work together

14:35.000 --> 14:36.000
in just the right way.

14:36.000 --> 14:39.000
And we're really happy that, like, we got those, those basics to work,

14:39.000 --> 14:41.000
and that we can now build on it.

14:41.000 --> 14:44.000
And we still have a few more months of funding under prototype fund.

14:44.000 --> 14:47.000
And as part of that, we're going to focus on both stabilizing that,

14:47.000 --> 14:50.000
and, like, doing some user testing, and, like, sort of seeing where this project

14:50.000 --> 14:53.000
needs to go in the medium term.

14:53.000 --> 14:56.000
But also, we're really interested in ecosystem side.

14:56.000 --> 14:59.000
So, like, one of the next things is G object binding.

14:59.000 --> 15:02.000
So, like, the app is written in Rust, because P-dependence written in Rust.

15:02.000 --> 15:05.000
But if you want to use it in a Python app or in a JavaScript app,

15:06.000 --> 15:08.000
you're going to need G object bindings.

15:08.000 --> 15:10.000
And so, that's going to be one of the next focuses.

15:10.000 --> 15:14.000
So, any GNOME app developer can just use this sort of for free.

15:14.000 --> 15:17.000
And then we're also going to work on developer documentation to make that easier.

15:17.000 --> 15:23.000
And also, if you're interested in this, maybe Bookmark March 236,

15:23.000 --> 15:26.000
we're going to have a series of online events for developers

15:26.000 --> 15:29.000
where people can ask questions, and we work through the problems

15:29.000 --> 15:30.000
and questions people have.

15:30.000 --> 15:34.000
Because it is really important to us for this to, like, be, sort of,

15:34.000 --> 15:37.000
the beginning of an ecosystem rather than, like, this one app.

15:37.000 --> 15:40.000
Like, it is more about those ecosystem effects to us.

15:40.000 --> 15:42.000
And also, as part of this project,

15:42.000 --> 15:45.000
we've done quite a bit of user interface research,

15:45.000 --> 15:50.000
because a lot of the questions around local first

15:50.000 --> 15:52.000
are also not solved from a user interface,

15:52.000 --> 15:56.000
one of you, not just, like, from a science point of view.

15:56.000 --> 15:58.000
And to us, like, sort of, the idea of, like,

15:58.000 --> 16:02.000
solving these, sort of, as UX patterns,

16:02.000 --> 16:04.000
was also really important.

16:04.000 --> 16:06.000
And so, in addition to the stuff that we built,

16:06.000 --> 16:09.000
we also did quite a bit of exploration around stuff

16:09.000 --> 16:11.000
that we might want to do in the future.

16:11.000 --> 16:14.000
For example, Peter Pond already has, like,

16:14.000 --> 16:17.000
most of the technical side of access controls

16:17.000 --> 16:18.000
and permission management.

16:18.000 --> 16:21.000
And we also explored, like, how this would be integrated in reflection.

16:21.000 --> 16:23.000
And then, sort of, as an extension,

16:23.000 --> 16:27.000
how this would be done in any, like,

16:27.000 --> 16:30.000
local first GDK app.

16:30.000 --> 16:34.000
Another one is revision control, often, like,

16:34.000 --> 16:37.000
whatever, if you go offline for a longer time,

16:37.000 --> 16:41.000
maybe you don't want to, like, just randomly merge everything

16:41.000 --> 16:43.000
back when everything together when you're back.

16:43.000 --> 16:46.000
Maybe you want to, like, sort of, consciously branch off.

16:46.000 --> 16:48.000
And there are a lot of, like, UI questions around how

16:48.000 --> 16:50.000
would you do this for plain text?

16:50.000 --> 16:53.000
It was one question for more complex things.

16:53.000 --> 16:54.000
It's quite another question.

16:54.000 --> 16:56.000
And that's also something that we started exploring

16:56.000 --> 16:59.000
and would be really interesting to look into more.

16:59.000 --> 17:00.000
Another one is zones.

17:00.000 --> 17:02.000
This is one that we're hearing a lot from the people

17:02.000 --> 17:04.000
who actually are using the app.

17:04.000 --> 17:07.000
Like, having to have every single document

17:07.000 --> 17:09.000
beats on network, which is currently the case,

17:09.000 --> 17:10.000
has some downsides.

17:10.000 --> 17:11.000
You always have to have it open.

17:11.000 --> 17:14.000
And one of the ideas is that you just have

17:14.000 --> 17:16.000
these shared folders that, like, sync all together,

17:16.000 --> 17:18.000
rather than just, like, per document.

17:18.000 --> 17:20.000
And so, yeah, we did a lot of exploration around that.

17:20.000 --> 17:23.000
And the important thing for us is that we saw

17:23.000 --> 17:25.000
these problems in a way that, like, sort of,

17:25.000 --> 17:29.000
can ideally be inherited by the rest of the ecosystem.

17:29.000 --> 17:31.000
Maybe, eventually, as part of, like, some kind of widget library,

17:31.000 --> 17:34.000
where you just, like, get this little popover for free.

17:34.000 --> 17:36.000
And one concrete example for this is that last year

17:36.000 --> 17:39.000
at Guadak, Yakum and I were designing a new app

17:39.000 --> 17:41.000
that is currently still working progress,

17:41.000 --> 17:44.000
but Georgia is working on it here.

17:44.000 --> 17:46.000
It's, like, a presentation app.

17:46.000 --> 17:48.000
And they were like, but what if we had collaboration?

17:48.000 --> 17:51.000
And there was, like, sort of, copied the UI

17:51.000 --> 17:53.000
for the collaboration thing in from reflection.

17:53.000 --> 17:55.000
It just made sense.

17:55.000 --> 17:57.000
And sort of, I think it's a good example

17:57.000 --> 18:00.000
that, like, most of these apps are quite similar in this sense.

18:00.000 --> 18:04.000
And we hope to, sort of, yeah, make this possible for more people

18:04.000 --> 18:07.000
essentially without having to know about the local first that much.

18:07.000 --> 18:09.000
And then, sort of, like, I guess the next step

18:09.000 --> 18:11.000
is to bring it even more into the system

18:11.000 --> 18:13.000
and for that, I'm giving it back to the Andreas.

18:13.000 --> 18:14.000
Yeah, exactly.

18:14.000 --> 18:18.000
So, looking at all of these patterns

18:18.000 --> 18:20.000
reemerging, of course, we can ask ourselves,

18:20.000 --> 18:24.000
I think, we all do, like, okay, is there, like, some patterns

18:24.000 --> 18:28.000
we might just apply on a host level.

18:28.000 --> 18:30.000
So, host basically being a host environment,

18:30.000 --> 18:32.000
which, like, hosts multiple apps.

18:32.000 --> 18:34.000
And, of course, the operating system

18:34.000 --> 18:36.000
would be a good choice for that.

18:36.000 --> 18:39.000
And, yeah, so we've been, like, brainstorming a little bit.

18:39.000 --> 18:42.000
This is already, like, a process of, like, the last two years.

18:42.000 --> 18:44.000
Like, how would that play out?

18:44.000 --> 18:47.000
Like, obviously, one thing you may be want to do

18:47.000 --> 18:49.000
is, like, organize your context

18:49.000 --> 18:51.000
on some way on operating system level.

18:51.000 --> 18:53.000
Like, you know, you have free of public keys every year.

18:53.000 --> 18:55.000
Or, yeah, hash is already IDs.

18:55.000 --> 19:00.000
What if there is, like, a contact book application.

19:00.000 --> 19:03.000
And, you request access to that application.

19:03.000 --> 19:05.000
You add, like, some application can be written

19:05.000 --> 19:06.000
and anything.

19:06.000 --> 19:08.000
It doesn't even need to be peer-to-pender.

19:08.000 --> 19:10.000
Just request access to it.

19:10.000 --> 19:13.000
And, then, the user can give scope access, like, say,

19:13.000 --> 19:15.000
okay, I only want to share, like, these five contacts

19:15.000 --> 19:17.000
with this application.

19:17.000 --> 19:18.000
And, then, the application retrieves it.

19:18.000 --> 19:21.000
And, that's what everybody needs to do with this material.

19:21.000 --> 19:25.000
So, this is, like, one very concrete solution

19:25.000 --> 19:28.000
for, like, something we can sort on the host level.

19:28.000 --> 19:31.000
We, of course, want this to be, like, as private as possible.

19:31.000 --> 19:34.000
We don't want, like, unnecessarily, like,

19:34.000 --> 19:38.000
link, you know, people to, like, imutable data records.

19:38.000 --> 19:40.000
And, then, that across all applications.

19:40.000 --> 19:43.000
So, this is a tricky challenge.

19:43.000 --> 19:46.000
Obviously, pad name systems will be play a big part in this.

19:47.000 --> 19:50.000
And, something we call, or, like, which came up in the peer-to-peer

19:50.000 --> 19:53.000
browser group last week, like, something, like, maybe lazy identities.

19:53.000 --> 19:57.000
So, you don't want your data to be linked across all everything.

19:57.000 --> 20:00.000
So, you only want to reveal it, maybe, on demand

20:00.000 --> 20:04.000
when it is actually necessary to have it, for example,

20:04.000 --> 20:06.000
for access control.

20:06.000 --> 20:11.000
So, here, again, like, some beautiful wire frames of tovy.

20:11.000 --> 20:15.000
Like, this is now just, like, jam on, like, what this could look like.

20:15.000 --> 20:21.000
Maybe interesting to highlight is, like, yeah, you can add the context of how you met that person that might be interesting to,

20:21.000 --> 20:28.000
to keep around, like, you see the devices, like, which are connected to that identity

20:28.000 --> 20:31.000
because I think multi devices still have a big issue.

20:31.000 --> 20:35.000
And, and something we need to think about, and then, like,

20:35.000 --> 20:38.000
the documents, like, you share with that user.

20:38.000 --> 20:41.000
Think, obviously, something we all need, at least if you are

20:41.000 --> 20:44.000
application once, eventually, consistency guarantees.

20:44.000 --> 20:49.000
So, that would be great to have on the host level as well.

20:49.000 --> 20:52.000
Of course, the application doesn't even need to, like, think about this anymore.

20:52.000 --> 20:54.000
It just, like, subscribes to a topic or something.

20:54.000 --> 20:57.000
And, like, it receives, like, the events it needs to have.

20:57.000 --> 21:00.000
I don't, I don't think, I think, probably your all agree.

21:00.000 --> 21:06.000
We will not agree on a super sync protocol, which everyone will be happy with right now.

21:06.000 --> 21:08.000
I don't think we are there yet as a community.

21:08.000 --> 21:11.000
But maybe we can slowly agree on, like, interfaces.

21:11.000 --> 21:14.000
How they might look like, because they might look the same.

21:14.000 --> 21:16.000
So, this is going in a little bit in the direction, also,

21:16.000 --> 21:19.000
what the people from Delta Chat have been doing, like, the web XDC,

21:19.000 --> 21:23.000
where they try to simplify the interface so much, and then, basically,

21:23.000 --> 21:26.000
it doesn't really matter anymore once again, where the events come from,

21:26.000 --> 21:29.000
the event delivery layer is abstracted away, and that can be very different

21:29.000 --> 21:31.000
implementations.

21:31.000 --> 21:34.000
And, we try to get in that direction as well and think how we can maybe,

21:34.000 --> 21:36.000
at least express an API here.

21:36.000 --> 21:39.000
This is, like, just research.

21:39.000 --> 21:41.000
Another thing are, like, support nodes.

21:41.000 --> 21:43.000
Some people call them relay.

21:43.000 --> 21:45.000
Some people call them always online nodes, like,

21:45.000 --> 21:48.000
there's definitely terminology around.

21:48.000 --> 21:52.000
This is also awesome to do on an operating system level, right?

21:52.000 --> 21:56.000
Like, you can actually, like, share it across apps.

21:56.000 --> 21:58.000
You don't want to leak any data.

21:58.000 --> 22:00.000
It should be, like, fully encrypted.

22:00.000 --> 22:03.000
And, that phone, that device doesn't even need to be a server.

22:03.000 --> 22:05.000
It can just be your post-market OS device.

22:05.000 --> 22:10.000
With a solar panel attached, and that could be already like your support node.

22:10.000 --> 22:14.000
Of course, we want this to be multi-transport.

22:14.000 --> 22:15.000
Yeah.

22:15.000 --> 22:17.000
And, this is now part of a grant.

22:17.000 --> 22:21.000
We receive from an LNet, this sort of research and development.

22:21.000 --> 22:23.000
We're going to start around May.

22:23.000 --> 22:27.000
And, as I already mentioned, these are many open questions.

22:27.000 --> 22:31.000
And, yeah, we very much invite you to join us here.

22:32.000 --> 22:38.000
We also have this event happening now in a couple of weeks.

22:38.000 --> 22:43.000
And, this is one of the ongoing events series of the model collective,

22:43.000 --> 22:46.000
where we specifically are going to talk about identity systems, like,

22:46.000 --> 22:51.000
Kate, DM, and Eileen Wagner will be invited.

22:51.000 --> 22:54.000
And, yeah, we also going to talk about the Worker Wasteck.

22:54.000 --> 22:56.000
And, also, all the other usual topics.

22:56.000 --> 23:00.000
If you're interested in post-market, or, yeah, a curl, stuff,

23:00.000 --> 23:03.000
or a system-d or a GNOME design, you're also welcome.

23:03.000 --> 23:05.000
Yeah, it's always a fun time.

23:05.000 --> 23:07.000
Yeah, thank you very much.

23:07.000 --> 23:08.000
Thank you.

23:16.000 --> 23:18.000
Thank you very much, Les.

23:18.000 --> 23:20.000
And, Tobias, we'll take questions in the room.

23:20.000 --> 23:22.000
Do we have questions on the Internet?

23:22.000 --> 23:24.000
Please raise your hands.

23:24.000 --> 23:25.000
All of you.

23:25.000 --> 23:28.000
Now, so I know how many questions we have.

23:28.000 --> 23:29.000
Two.

23:29.000 --> 23:30.000
Okay.

23:30.000 --> 23:33.000
You can still think about it.

23:47.000 --> 23:48.000
Hi.

23:48.000 --> 23:49.000
Sorry.

23:53.000 --> 23:54.000
Oh, okay.

23:54.000 --> 23:55.000
Yes.

23:55.000 --> 23:56.000
Oh, yes.

23:57.000 --> 23:58.000
Oh, okay.

24:00.000 --> 24:01.000
I understand.

24:01.000 --> 24:02.000
Thank you.

24:02.000 --> 24:04.000
So, I maintain an app called Multiplex.

24:04.000 --> 24:07.000
That you just can use to like, stream, like, see, watch Torx together.

24:07.000 --> 24:08.000
Very sources.

24:08.000 --> 24:12.000
And, like, I had to get a, like, WebRTC base, like,

24:12.000 --> 24:14.000
like, is he side channels?

24:14.000 --> 24:16.000
You can, like, synchronize, like, playback positions.

24:16.000 --> 24:17.000
Membership and so on.

24:17.000 --> 24:19.000
And, and, and, I'd be curious to see, like,

24:19.000 --> 24:22.000
Cundee, I used, like, bit Torrent, and, like,

24:22.000 --> 24:24.000
what do you see, like, two different protocols.

24:24.000 --> 24:26.000
And, like, this is a chance of peer-to-peer, like,

24:26.000 --> 24:29.000
could do this, that could, for example, stream the actual video,

24:29.000 --> 24:32.000
as well, like, this is a way, or a story to do that.

24:32.000 --> 24:34.000
Yeah. I think that's not a peer-to-peer,

24:34.000 --> 24:37.000
but, actually, like, lower level, like, on the transport,

24:37.000 --> 24:39.000
because they really don't want to have any overhead,

24:39.000 --> 24:40.000
when you do streaming.

24:40.000 --> 24:43.000
But, I would look at IRO, and, and,

24:43.000 --> 24:47.000
there's currently an experimental repository called IRO live,

24:47.000 --> 24:50.000
which actually does all of that on top of the quick stack.

24:50.000 --> 24:53.000
And, I mean, get upon the has.

24:53.000 --> 24:56.000
I also built in, so you would basically talk the exact same APIs.

24:56.000 --> 24:58.000
Where peer-to-peer would help you, is, like,

24:58.000 --> 25:01.000
all the data you may be want to organize around your session,

25:01.000 --> 25:04.000
like, you know, who is online, what are we watching currently

25:04.000 --> 25:06.000
together, all of these sorts of things.

25:06.000 --> 25:09.000
But, like, the actual streaming I would do on the quick stack,

25:09.000 --> 25:11.000
maybe with IRO. Yeah.

25:11.000 --> 25:12.000
Thank you.

25:12.000 --> 25:13.000
Thank you.

25:21.000 --> 25:22.000
Hi, thank you.

25:22.000 --> 25:23.000
You're not here.

25:23.000 --> 25:25.000
I wanted to ask you.

25:25.000 --> 25:28.000
So, of course, this project is a very opinionated,

25:28.000 --> 25:32.000
and tightly linked to the economic system,

25:32.000 --> 25:34.000
and especially GTK.

25:34.000 --> 25:37.000
So, I'm wondering, as right now,

25:37.000 --> 25:39.000
the app is usable strictly on Linux,

25:39.000 --> 25:41.000
and you're planning on MacOS.

25:41.000 --> 25:45.000
I was wondering about interface plans that you have,

25:45.000 --> 25:46.000
especially, I don't know, Android,

25:46.000 --> 25:50.000
IOS, to broaden the applicability,

25:50.000 --> 25:54.000
and use a job reflection beyond the Linux,

25:54.000 --> 25:58.000
and specifically, you know, my ecosystem.

25:58.000 --> 26:01.000
I mean, like, GTK works on Android now,

26:01.000 --> 26:02.000
I hear.

26:02.000 --> 26:05.000
No, I mean, like, obviously, having this

26:05.000 --> 26:08.000
app specifically work on more platforms is cool,

26:08.000 --> 26:11.000
but like, there's no reason why you couldn't build

26:11.000 --> 26:13.000
a native client for other platforms,

26:13.000 --> 26:17.000
that called reflection or not, like, that's totally possible.

26:17.000 --> 26:20.000
And in fact, there is already an experiment

26:20.000 --> 26:22.000
to sort of make it work on the web.

26:22.000 --> 26:25.000
We have some experiments running it on the web browser,

26:25.000 --> 26:28.000
and also, I mean, I think what would be nice

26:28.000 --> 26:32.000
to agree on, like, a common way to do text editing,

26:32.000 --> 26:34.000
of course, I think the people from team type

26:34.000 --> 26:36.000
are thinking in that direction.

26:36.000 --> 26:39.000
So, yeah, if there's, like, a common protocol

26:39.000 --> 26:42.000
on how to describe, like, text CRDTs,

26:42.000 --> 26:44.000
then it would be fairly easy

26:44.000 --> 26:47.000
for them to have different ways to speak

26:47.000 --> 26:50.000
to reflection on different platforms.

26:50.000 --> 26:51.000
Yeah.

26:51.000 --> 26:52.000
Yes.

26:52.000 --> 26:53.000
Question here.

26:53.000 --> 26:55.000
Do you think that just matter?

26:55.000 --> 26:56.000
Yes.

26:56.000 --> 26:57.000
I have a question.

26:57.000 --> 26:59.000
So, you're doing, like, a great deal of design

26:59.000 --> 27:01.000
and UX in your work.

27:01.000 --> 27:03.000
And I was one, and at the same time,

27:03.000 --> 27:06.000
you're trying to do new products, new solutions.

27:06.000 --> 27:09.000
I was wondering, couldn't be interesting

27:09.000 --> 27:11.000
in that such people, like you, that do great design,

27:11.000 --> 27:13.000
actually work on solutions that are already

27:13.000 --> 27:15.000
heavily used to make them better,

27:15.000 --> 27:17.000
instead of trying to make new products,

27:17.000 --> 27:20.000
which are going to then fragment more

27:20.000 --> 27:22.000
the open source ecosystem.

27:22.000 --> 27:24.000
What are the existing things?

27:24.000 --> 27:29.000
Well, they might not fit everything you want to do,

27:29.000 --> 27:31.000
but I'm from CRYPAT, for example.

27:31.000 --> 27:34.000
We could do much better in design,

27:34.000 --> 27:36.000
but we don't necessarily always have the scale

27:36.000 --> 27:38.000
and the help of the people that have the scales.

27:38.000 --> 27:41.000
And when people kind of say,

27:41.000 --> 27:44.000
oh, it doesn't look good enough,

27:44.000 --> 27:48.000
then then go to solution that do way less than what we do.

27:48.000 --> 27:52.000
But then are looking nice, which is great.

27:52.000 --> 27:54.000
It's cool that there are new solutions.

27:54.000 --> 27:57.000
But why don't they come to help?

27:57.000 --> 27:59.000
Why don't more people come to help on design

27:59.000 --> 28:01.000
to make our solution better?

28:01.000 --> 28:05.000
Speaking from myself, I don't want to name myself.

28:05.000 --> 28:06.000
Sorry.

28:06.000 --> 28:07.000
No, sorry.

28:07.000 --> 28:08.000
Speaking of a solution designer,

28:08.000 --> 28:10.000
if you use GTK, then I'm all yours.

28:10.000 --> 28:12.000
If not, let's imagine.

28:14.000 --> 28:16.000
Hello, answer.

28:16.000 --> 28:18.000
Is there any doubt about questions?

28:18.000 --> 28:19.000
Well, I'd like to answer.

28:19.000 --> 28:20.000
We have one minute.

28:20.000 --> 28:21.000
Is the last question?

28:21.000 --> 28:24.000
I was wondering to what extent this stack is also

28:24.000 --> 28:27.000
allowed could work on a mesh, right?

28:27.000 --> 28:29.000
Not just peer to peer, but peer to peer to peer to peer.

28:29.000 --> 28:32.000
Like sending messages across multiple hubs.

28:32.000 --> 28:33.000
Is that possible?

28:33.000 --> 28:34.000
Yes.

28:34.000 --> 28:38.000
So this is what I hinted on the post-internet sort of as light.

28:38.000 --> 28:42.000
And I'm going to give a lecture as a talk on that in at

28:42.000 --> 28:46.000
3.30 in the decentralized internet and privacy room.

28:46.000 --> 28:48.000
I think it's about exactly that topic.

28:48.000 --> 28:52.000
And basically showcasing how these things are maybe the same

28:52.000 --> 28:54.000
depending on how we look at it.

28:54.000 --> 28:55.000
Really exciting.

28:55.000 --> 28:57.000
We're staying here, aren't we?

28:57.000 --> 28:58.000
Yeah.

29:02.000 --> 29:03.000
Thanks again.

29:03.000 --> 29:05.000
Thank you very much.

29:05.000 --> 29:06.000
Thanks a lot.

