WEBVTT

00:00.000 --> 00:11.000
Hi, everybody, so our next presenter is Django Ducey, who's going to talk about some of

00:11.000 --> 00:17.720
the exciting new developments in some of the oldest technology on the Fediverse, the Activity

00:17.720 --> 00:20.720
Pub API or C2S.

00:21.720 --> 00:27.720
Thank you very much.

00:27.720 --> 00:29.720
Hi, everyone.

00:29.720 --> 00:31.720
I'll just introduce myself.

00:31.720 --> 00:37.720
I'm Django Ducey, struggling with the slide thing here, but we're going to get that working.

00:37.720 --> 00:39.720
There we go.

00:39.720 --> 00:43.720
I'm a web developer for a co-lab cooperative.

00:43.720 --> 00:47.720
I'm also an instructor of web design at Nate.

00:47.720 --> 00:50.720
I know they're in Alberta, Institute of Technology.

00:50.720 --> 00:58.720
I got to the Fediverse, at least the Activity Pub Fediverse in around 2018, and with

00:58.720 --> 01:01.720
my WordPress experience, I was like, what can I do?

01:01.720 --> 01:07.720
So I started contributing to Mathiasa's project, the Activity Pub plugin for WordPress.

01:07.720 --> 01:14.720
And I contributed around some other projects over the years.

01:14.720 --> 01:29.720
So yeah, the elephant in the room, I'm going to hat tip to the project.

01:29.720 --> 01:38.720
They've basically built their project with a product in mind.

01:38.720 --> 01:43.720
And what this meant is that they departed from the Activity Pub client portion of the

01:43.720 --> 01:45.720
protocol.

01:45.720 --> 01:53.720
They ended up building a rest API, which allowed a whole ecosystem of apps and

01:53.720 --> 01:57.720
web apps to develop.

01:57.720 --> 02:02.720
In my opinion, the humble opinion, this was a brilliant strategy.

02:02.720 --> 02:06.720
A lot of normies, they need their apps, right?

02:06.720 --> 02:11.720
It's a easy way to get on to social and it's sort of an unexpected experience at this point.

02:11.720 --> 02:18.720
So when I joined, I was really excited to try out all the different third party apps that

02:18.720 --> 02:22.720
existed.

02:22.720 --> 02:27.720
But there has since been some tectonic shifts in the space.

02:27.720 --> 02:33.720
Blue sky and threads over the last two years, three years.

02:33.720 --> 02:41.720
I entered the microbiology space and essentially have slowed down the growth of the Fediverse.

02:41.720 --> 02:49.720
So we can't really rely on more waves of people migrating off of X.

02:49.720 --> 02:53.720
So what's beyond microbiology?

02:53.720 --> 02:57.720
Well, we have traditional blogging.

02:57.720 --> 03:02.720
WordPress is how one of the most popular server types on the Fediverse.

03:02.720 --> 03:07.720
So that's really exciting.

03:07.720 --> 03:15.720
With reports of rampant censorship on US tectoc, there's currently an appetite for alternatives

03:15.720 --> 03:18.720
in sort of short videos.

03:18.720 --> 03:27.720
And loops is a place to take some of that interest in some of that growth.

03:27.720 --> 03:33.720
It can also come from like professional networking or mastodating.

03:33.720 --> 03:39.720
But does the mastodon API make sense for any or all of these?

03:39.720 --> 03:42.720
Probably not.

03:42.720 --> 03:48.720
Looking at some of the projects on the Fediverse, we have photoblogging.

03:48.720 --> 03:52.720
So pixel fed ended up using a sort of mastodon compatible API.

03:52.720 --> 03:57.720
Two went and developed their own API as did let me.

03:57.720 --> 04:02.720
And, you know, mbin and pie fed for those familiar with the project.

04:02.720 --> 04:06.720
I've also used this API.

04:06.720 --> 04:13.720
Mobiles on and Jancy have also developed their own APIs.

04:13.720 --> 04:19.720
So there's kind of a thing where there's redundancy, right?

04:19.720 --> 04:24.720
And they're developing their own APIs when activity pub actually came out with client

04:24.720 --> 04:29.720
to server as part of the spec.

04:29.720 --> 04:31.720
But it wasn't with problems.

04:31.720 --> 04:37.720
Eugene commented to help her mastodon content that the spec is probably bear bones.

04:37.720 --> 04:40.720
No notifications separate from home feed.

04:40.720 --> 04:43.720
Everything is mixed together in the inbox.

04:43.720 --> 04:48.720
No search, no on a complete, no domain blocking, et cetera.

04:49.720 --> 04:51.720
So is it even workable?

04:51.720 --> 04:55.720
Can we even do anything with the client to server API?

04:55.720 --> 05:01.720
Well, Arnold Schriever, also known as Circle Builder on the Fediverse,

05:01.720 --> 05:08.720
started a delightful list of servers that support the API.

05:08.720 --> 05:11.720
Missing from here, I didn't have the icon is bonfire,

05:12.720 --> 05:17.720
really excited about their support for the API.

05:17.720 --> 05:24.720
One of the main problems has been connecting apps to the projects.

05:24.720 --> 05:27.720
Some didn't support OAuth at all.

05:27.720 --> 05:32.720
Some were using custom mpoints.

05:32.720 --> 05:34.720
So what about clients?

05:34.720 --> 05:40.720
There's very few really and status as an Android client that's actually kind of old.

05:41.720 --> 05:44.720
Her has supported it for a while.

05:44.720 --> 05:47.720
Supports Pluroma.

05:47.720 --> 05:49.720
Steve Bate, I don't know if he's here.

05:49.720 --> 05:52.720
You develop a client called flows.

05:52.720 --> 05:56.720
There's also anigmatic by someone named Justin Thomas.

05:56.720 --> 05:59.720
So there is a little bit of movement.

05:59.720 --> 06:06.720
Problems and opportunities really from the Eugene quote earlier,

06:06.720 --> 06:09.720
he mentioned trying to build a timeline.

06:09.720 --> 06:12.720
It's true that notifications, at least the kind that we're used to,

06:12.720 --> 06:15.720
where you get something and it's unread until you've read it.

06:15.720 --> 06:20.720
And then once you've seen the sort of message,

06:20.720 --> 06:25.720
it doesn't show up as unread.

06:25.720 --> 06:28.720
Well, happens when you fetch from the inbox,

06:28.720 --> 06:31.720
is you actually get a bunch of activities.

06:31.720 --> 06:35.720
And this can kind of be a challenge to work with,

06:36.720 --> 06:39.720
because maybe you only want to show the creates and the updates.

06:39.720 --> 06:43.720
You can't really show a delete activity.

06:43.720 --> 06:45.720
But when you get all these activities,

06:45.720 --> 06:47.720
you also get likes.

06:47.720 --> 06:51.720
And so there's an opportunity there to build out custom algorithms,

06:51.720 --> 06:56.720
based on who you're following and what they're interested in.

06:56.720 --> 07:01.720
So you can create a sort of four-year feed.

07:01.720 --> 07:04.720
For my part, I'm building a progressive web app,

07:04.720 --> 07:07.720
tentatively named Sprout for the moment.

07:07.720 --> 07:10.720
And I'm sort of working through,

07:10.720 --> 07:12.720
interrupt with all those,

07:12.720 --> 07:16.720
the different platforms that are supporting the client to serve API.

07:16.720 --> 07:20.720
And generally trying to push boundaries of what we can do with it.

07:20.720 --> 07:24.720
And sort of talking about some of the bugs,

07:24.720 --> 07:26.720
some of the issues.

07:27.720 --> 07:32.720
The activity pub task force has started in September.

07:32.720 --> 07:34.720
There's a bunch of user stories and issues there.

07:34.720 --> 07:39.720
The goal of the task force is to create a base profile,

07:39.720 --> 07:44.720
so that, yeah, developers, clients,

07:44.720 --> 07:48.720
developers of clients and servers will have something to work with,

07:48.720 --> 07:51.720
something not be left in the jar.

07:51.720 --> 07:53.720
So yeah, meetings are next.

07:53.720 --> 07:55.720
Every third, third, third, third day.

07:55.720 --> 07:58.720
Come join as much as for users,

07:58.720 --> 08:01.720
not just for developers of front end and back end.

08:01.720 --> 08:05.720
Users are very welcome to share stories of what they would like from an app,

08:05.720 --> 08:08.720
from a Fediver app.

08:08.720 --> 08:11.720
Thank you.

08:11.720 --> 08:26.720
So, tradition all now for the 10 minutes or else we have one question.

08:26.720 --> 08:27.720
Thank you.

08:27.720 --> 08:33.720
How does that deal with radically different content types you can get from,

08:33.720 --> 08:36.720
from the different services if you have a service,

08:36.720 --> 08:39.720
that's a bit of a technical stick.

08:39.720 --> 08:40.720
Client.

08:40.720 --> 08:41.720
Yeah.

08:41.720 --> 08:42.720
That you could connect.

08:42.720 --> 08:44.720
Mass it on the wall, loop,

08:44.720 --> 08:45.720
or whatever.

08:45.720 --> 08:49.720
They have very different styles of content.

08:49.720 --> 08:51.720
How, how, how.

08:51.720 --> 08:52.720
Yeah.

08:52.720 --> 08:55.720
So, I mean, it's going to depend on your server,

08:55.720 --> 09:00.720
what activities it's going to be able to process,

09:00.720 --> 09:04.720
and what shows up in your inbox really.

09:04.720 --> 09:06.720
It's going to be a web client.

09:06.720 --> 09:09.720
I looked at the vocabulary, all the different content types,

09:09.720 --> 09:12.720
and I just created stuff for it.

09:12.720 --> 09:14.720
So, I can, we can handle it.

09:14.720 --> 09:16.720
I guess one of the things that we're looking at is,

09:16.720 --> 09:22.720
like, how do you specify compatibility for posting different content types,

09:22.720 --> 09:23.720
right?

09:23.720 --> 09:26.720
So, if a diploma does the yet support events,

09:26.720 --> 09:29.720
but eventually, you know,

09:29.720 --> 09:32.720
if somebody's trying to post an event,

09:32.720 --> 09:35.720
what should happen, what should be the error type or?

09:35.720 --> 09:37.720
The other thing, sorry, I mean,

09:37.720 --> 09:39.720
to jump in, because I'm passionate about this topic,

09:39.720 --> 09:43.720
is that activity pub comes with fallback representations,

09:43.720 --> 09:45.720
built into the object, right?

09:45.720 --> 09:48.720
So, we have summary to have a text representation.

09:48.720 --> 09:50.720
We have image or icon that you can use.

09:50.720 --> 09:54.720
So, if you get a blurbow, you don't know what it is,

09:54.720 --> 09:57.720
it's still got the summary and the icon,

09:57.720 --> 10:00.720
and you can kind of represent it and use it in your interface.

10:00.720 --> 10:01.720
Thanks.

10:02.720 --> 10:05.720
Great, thank you, Evan, Paul, and Django for your short talks.

10:05.720 --> 10:06.720
Appreciate it.

