WEBVTT

00:00.000 --> 00:10.000
1, 2, 1, 2.

00:10.000 --> 00:18.000
All right, so we are exactly on time for Evan to talk to us about taxile up.

00:18.000 --> 00:21.000
Thanks, everybody.

00:21.000 --> 00:23.000
How you doing?

00:23.000 --> 00:27.000
Hey, Paul, if you're here, okay, get ready to go,

00:27.000 --> 00:29.000
because we're trying to do the lightning style.

00:29.000 --> 00:31.000
Yeah, so I'm going to talk to you about tax.gov.

00:31.000 --> 00:32.000
My name is Evan Podromo.

00:32.000 --> 00:34.000
I'm the research director at the social web foundation.

00:34.000 --> 00:36.000
I don't know what you look.

00:36.000 --> 00:42.000
This is my former friend, the mustache.

00:42.000 --> 00:46.000
I'm the co-author and current editor of the Activity Pub and Activity

00:46.000 --> 00:49.000
Streams 2.0 specifications at the W3C.

00:49.000 --> 00:53.000
I wrote the Activity Pub Programming for the social web book for O'Reilly.

00:53.000 --> 00:55.000
That is my Fediver's handle.

00:55.000 --> 00:58.000
My webfinger, you can find me and follow me there.

00:58.000 --> 00:59.000
It's nice and long.

00:59.000 --> 01:02.000
Evan Podromo at socialwebfoundation.org.

01:02.000 --> 01:06.000
I'm going to be talking about a project called Tax.gov,

01:06.000 --> 01:07.000
which is a domain name.

01:07.000 --> 01:12.000
However, if you go there right now, you're going to get some weird website.

01:12.000 --> 01:16.000
It doesn't exist yet, or maybe one of those like website doesn't exist.

01:16.000 --> 01:18.000
This is the link to find it.

01:18.000 --> 01:20.000
It's on GitHub under social web foundation.

01:20.000 --> 01:21.000
Tax.gov.

01:21.000 --> 01:24.000
So I just wanted to warn you before you go in there.

01:25.000 --> 01:28.000
So hashtags. They are so great.

01:28.000 --> 01:32.000
Hashtags are a really wonderful part of social networking.

01:32.000 --> 01:36.000
They give us a chance to coalesce around topics and ideas,

01:36.000 --> 01:42.000
concepts and movements instead of just connecting to other people.

01:42.000 --> 01:45.000
So they're an extremely important part of what makes social networks

01:45.000 --> 01:47.000
and social media special.

01:47.000 --> 01:53.000
However, on the Fediver's, we have mechanisms for following hashtags.

01:53.000 --> 01:56.000
But not everybody knows this.

01:56.000 --> 01:57.000
They're kind of random.

01:57.000 --> 02:01.000
When you're following a hashtag, you're not really following the hashtag

02:01.000 --> 02:02.000
across the whole Fedivers.

02:02.000 --> 02:07.000
You're following a certain subset of content that's been tagged

02:07.000 --> 02:09.000
with that hashtag.

02:09.000 --> 02:13.000
So if you're a person A in this picture,

02:13.000 --> 02:17.000
and you're on the same server, does this make sense as metaphor?

02:17.000 --> 02:18.000
You're on servers.

02:18.000 --> 02:20.000
You got people on servers that make sense?

02:21.000 --> 02:24.000
So A is on a server with B, and B follows C.

02:24.000 --> 02:29.000
So if C posts something under a hashtag, A is going to see it.

02:29.000 --> 02:31.000
If she follows that hashtag, right?

02:31.000 --> 02:35.000
So as long as we have a follow connection between two servers,

02:35.000 --> 02:37.000
those hashtags are followable.

02:37.000 --> 02:39.000
However, if there's no follow connection,

02:39.000 --> 02:42.000
like here across to the DNE server,

02:42.000 --> 02:47.000
that anything that E posts under the same hashtag

02:47.000 --> 02:49.000
won't go to A's inbox.

02:49.000 --> 02:50.000
That makes sense.

02:50.000 --> 02:53.000
So we have to have a follow connection between the servers

02:53.000 --> 02:57.000
in order to follow a hashtag across the Fedivers.

02:57.000 --> 03:00.000
Well, that's kind of suboptimal because we're trying to connect

03:00.000 --> 03:03.000
those communities across the Fedivers.

03:03.000 --> 03:09.000
So one way to work on this to solve it is to give those hashtags

03:09.000 --> 03:14.000
their own accounts on the Fedivers, on a separate server.

03:15.000 --> 03:20.000
This way, a person A can follow that hashtag on that separate server,

03:20.000 --> 03:24.000
and it's like as if she was following a real person.

03:24.000 --> 03:25.000
Thank you.

03:25.000 --> 03:31.000
And so the hashtags server can coalesce information

03:31.000 --> 03:34.000
through back channels from those other servers.

03:34.000 --> 03:38.000
And we aren't depending on social connections between people

03:38.000 --> 03:41.000
in order to propagate the hashtag content.

03:41.000 --> 03:44.000
So that's the idea behind tags.pub.

03:44.000 --> 03:49.000
That we give a hashtag its own account on the Fedivers

03:49.000 --> 03:52.000
that you can follow just like you follow a person.

03:52.000 --> 03:56.000
Like if you're following the hashtag hashtag,

03:56.000 --> 04:00.000
you would follow the hashtag at tags.pub system.

04:00.000 --> 04:06.000
Now, you might get a little spooked about what we're doing.

04:06.000 --> 04:09.000
There's nothing scary going on here.

04:09.000 --> 04:12.000
We're not sputtering, we're not doing mass following,

04:12.000 --> 04:17.000
we're not scraping, we're just using existing interfaces

04:17.000 --> 04:22.000
that are already used for sharing data across servers.

04:22.000 --> 04:26.000
And these are opt-in systems that servers choose the participate in.

04:26.000 --> 04:31.000
It's not an issue where they don't have consent.

04:31.000 --> 04:33.000
So the idea of bringing these servers together

04:33.000 --> 04:35.000
is things like relay interfaces.

04:35.000 --> 04:39.000
We have a special endpoint that's built into activity pub

04:39.000 --> 04:41.000
for delivering public consent.

04:41.000 --> 04:45.000
We are looking at per service APIs.

04:45.000 --> 04:49.000
Mostly I'm not excited about that, which you can see by my emoji,

04:49.000 --> 04:52.000
although some of the fast work might be interesting here too.

04:52.000 --> 04:56.000
Suffice it to say that we're going to be using pretty good systems

04:56.000 --> 05:02.000
that are opt-in and that are not forcing anyone to participate

05:02.000 --> 05:06.000
in a process that they're not interested in.

05:06.000 --> 05:09.000
The technology stack that tags that pub is built on,

05:09.000 --> 05:12.000
it's built on activity pub bot server,

05:12.000 --> 05:16.000
which is a server-side framework for my book.

05:16.000 --> 05:18.000
It uses activity streams at PM library.

05:18.000 --> 05:22.000
Thank you, James Snell, author of activity streams.

05:22.000 --> 05:25.000
It uses a big postgres SQL database,

05:25.000 --> 05:28.000
some love, a lot of hubris.

05:29.000 --> 05:32.000
So the way it works, when we get create activities,

05:32.000 --> 05:34.000
this is where I go into activity pub,

05:34.000 --> 05:36.000
most people look at falsely real quick.

05:36.000 --> 05:37.000
We get create activities.

05:37.000 --> 05:40.000
We take all the tags that are in the object,

05:40.000 --> 05:43.000
and we broadcast out from each of those tags.

05:43.000 --> 05:45.000
So we announce out from each of those tags.

05:45.000 --> 05:49.000
When we get an update, we announce some, we unenounce others.

05:49.000 --> 05:51.000
We're just taking a delta.

05:51.000 --> 05:55.000
We're making sure that we're keeping things up to date with that object.

05:55.000 --> 05:58.000
If something gets deleted, we unenounce it,

05:58.000 --> 06:00.000
so it goes off the network,

06:00.000 --> 06:04.000
and we re-enounce activities as if they were create activities.

06:04.000 --> 06:07.000
So it's a very straightforward use of activity pub.

06:07.000 --> 06:11.000
We are focusing on privacy.

06:11.000 --> 06:15.000
Mostly using public data with the expectation

06:15.000 --> 06:18.000
that if you post on a hashtag publicly,

06:18.000 --> 06:21.000
your intent is to share out with that community.

06:22.000 --> 06:26.000
We are using privacy respecting announce activities.

06:26.000 --> 06:28.000
So we only use links.

06:28.000 --> 06:31.000
So these are very, these respect blocking.

06:31.000 --> 06:36.000
So we will not expose your content to someone you've blocked

06:36.000 --> 06:38.000
through this announced mechanism.

06:38.000 --> 06:43.000
So this is not, so this is a very privacy respecting system.

06:43.000 --> 06:45.000
We're not storing any content.

06:45.000 --> 06:47.000
We're just getting the content,

06:47.000 --> 06:51.000
taking the hashtags, and re-sending out the announce activities,

06:51.000 --> 06:53.000
and perfect.

06:53.000 --> 06:55.000
We're not doing a search index.

06:55.000 --> 06:57.000
We do have an opt-out mechanism,

06:57.000 --> 07:01.000
and we have free and open source software as our code base.

07:01.000 --> 07:04.000
So our hope is that we get that well examined

07:04.000 --> 07:06.000
in case there's any concerns.

07:06.000 --> 07:10.000
We will be launching this system in March 2022.

07:10.000 --> 07:13.000
We're going to be working with server operators to figure out

07:13.000 --> 07:15.000
the best ways to share data.

07:16.000 --> 07:18.000
I've already started talking to a number of them.

07:18.000 --> 07:21.000
If I haven't talked to you, come talk to me.

07:21.000 --> 07:23.000
And then we're documenting interfaces

07:23.000 --> 07:27.000
to make it easier for folks to submit.

07:27.000 --> 07:29.000
And now question.

07:29.000 --> 07:30.000
We have 30 seconds.

07:30.000 --> 07:31.000
One minute.

07:31.000 --> 07:32.000
30 seconds of questions.

07:32.000 --> 07:34.000
So I got one question and then pull.

07:34.000 --> 07:37.000
Because we're in this sprint of three short talks.

07:37.000 --> 07:40.000
We've got so much time for questions.

07:40.000 --> 07:43.000
I find it nice with the text, but question is,

07:43.000 --> 07:46.000
why do you not extend it for more data?

07:46.000 --> 07:49.000
For example, in friendica, we've got possibilities to filter

07:49.000 --> 07:53.000
for stuff like offer name, offer platform, network types,

07:53.000 --> 07:55.000
stuff like that, and what, why?

07:55.000 --> 07:58.000
Can we, can this be extended to some kind of relay?

07:58.000 --> 08:01.000
System that could be done with really filters.

08:01.000 --> 08:05.000
I also posted this on the social hub,

08:05.000 --> 08:08.000
and stuff had a suggestion there.

08:08.000 --> 08:09.000
Okay.

08:09.000 --> 08:10.000
Sorry.

08:10.000 --> 08:11.000
I'm not going to read something.

08:12.000 --> 08:14.000
But what was the question you wanted to find out?

08:14.000 --> 08:15.000
Are there other content types?

08:15.000 --> 08:17.000
No, it's not only for text,

08:17.000 --> 08:21.000
question is, is this be expanded to more search terms,

08:21.000 --> 08:23.000
like all the name, all the platforms,

08:23.000 --> 08:25.000
stuff like that, all the content.

08:25.000 --> 08:28.000
We're not building a search system.

08:28.000 --> 08:30.000
We're building a tag just tags.

08:30.000 --> 08:31.000
That's the intent.

08:31.000 --> 08:32.000
Yeah.

08:32.000 --> 08:33.000
Okay.

08:33.000 --> 08:36.000
We could discuss maybe in a few minutes or whatever.

08:36.000 --> 08:37.000
Okay.

08:37.000 --> 08:38.000
I've got very extended ideas.

08:38.000 --> 08:39.000
Okay.

08:39.000 --> 08:40.000
Thank you.

08:40.000 --> 08:41.000
Thank you.

08:41.000 --> 08:42.000
Thank you.

