It's an activity pub support for 3D printing, and now we're going to talk about something
slightly different, but it's related, so wonderful, thank you James, thank you Andy.
President McMinds, you have more 3D printers than me, because I've only got 2.
Anyway, hi, I'm James, I'm going to talk about something that's been mentioned a couple
of the time today, already, but I'm glad to be able to give more detail, which is
Fediverse, Fedus Discovery, or the Fediverse Observing Service Providers, and it's fast, I don't
really know why I named the talk this, naming it's hard, basically, but yeah, I'm going
to talk about Fediverse Discovery Providers, which was a project that was launched, I think, in
the death room last year, if I remember correctly, it was sort about last year, it's been
sort of built, and why am I talking about it?
I am not involved in project at all, is an NGO search project run by MasterDog, and
Capably done by David down there, give everyone a wave, there we go.
Hi, I am just some guy who read the spec, and thought, I'll have a go.
Why?
I thought I'd have a go.
I built a thing called Manifold, which is, as Andy said, it is a tool for organizing
and sharing the 3D print files, anyone with 3D printable know about thing of us, it's
a bit like having your own one of those, but now also Fedorates with activity pub, so you
can have 3D models on one instance, and you might have your account on another, and how
do you find them between different things, it's the problem, so there was this fetus cover
thing, and I thought, all right, let's see what that's all about, because that would
build my own.
So Fediverse, auxiliary service providers, are these extra services that sit and connect
to your Fediverse services, so we have various things like it could be Macedonic, it could
be Pitch you, but whatever, and then you have the search provider, it sits for instance,
so you might choose to connect to that one over there that's run by somebody, I know, or
that, you know, I might be another one, so it's sort of opting into a shared search index
anyway, and not just for search, it's starting with search, but I'll come to that.
So I'm going to talk a little bit about how it works, see how we did it, there's the
first thing that you do, is that you register your server with the fast, the service provider,
and you do a little registration dumps, you can initially go to the fast, and sign up
from account, and you tell it where your server is, it then does a bit of back and forth,
it's the provider info from the, from node info, does a little bit of key exchange backwards
and forwards, and then says, yep, okay, we've talked and chose you a fingerprint of, of
the keys, then it involves and then redirects you back to your own server, where you check
that fingerprint, make sure that everything is lined up properly, and you say, yes, okay,
cool.
So this is that in action, this is the sign up page on the Fediscovera reference implementation,
I guess, of a fast, this is the one that David built, and I'm running my own off, but
you would find one of these out of that, sign up for a thing, you say, there is the
base URL of my service, and it does a little dumps, and it says, right, you're registered
now, thanks signing up, here's your fingerprint, and because it's taught to the server,
it knows where to send you back to, in order to, to then go back and check, so it will
then click that, send you back to manifold, you can check that fingerprint, and hit the
big green approved button, and at that point, you're connected up to servers, know about
each other, they can securely exchange information, they know how to tell what's what, and
you get, then this list of capabilities, the overall protocol is about the sort of the
registration, and how you discover what's available, and then there are sort of many specs
within that for different capabilities, which, you can see here there's a counter search
follower recommendations, trends, and data sharing, those of the ones that initially
are in the thing at the moment. Some of those, most of those are really simple, they're
actually just, okay, you're registered now, you can do calls to this thing, and account
search is just to get to the account search thing with your keyword, simple as that, likewise
follow recommendations, follow recommendations, you can give it an account, you're right,
so it's like, should this person follow, and if the fast is able to do something with that,
it will, and like my trends, it's just a thing, I want this a little bit complicated
as data sharing, the top ones are all sort of fetching information from the fast, but how
do we tell it what we've got, that's the data sharing part, the data sharing capability,
if you enable that, the fast will send back a request saying, okay, could you let me know
about these things, and it will set up events and subscriptions for different things. In this
case, it's sent back to subscriptions back to Manifold to say, right, could you tell me when
any lifecycle events happen for any account or any content on your server? So now it's
up to my servers to respond to those and let the fast know when those things happen. Of course,
that is in control of my server, the client, cool, so a quick example, this is in my
dev manifold instance, I can go to the right lots of page, I can put in a search term, and
up pop some results from a different server, and all it's done, it's just go to go to the
fast for the results for that keyword. So we have these are all from 3D Print. Social, which is
the not really flagship, Manifold server, but the one that I run publicly, where people can
sign up and post their own things, flagship makes it sound a bit too grand. But yeah,
and then there you go, your family, and also you have follow recommendations that you can set
up at the right in Fediscovera. It's no preview, so it's not very pretty, but at the moment you
will be recommended to follow me and that's on my personal instance. So again, that's a different
system, and these things all fit together. You can get started with it, it's a really nice system,
it feels you're really in control of what information is going where you can choose the search
index or whatever that you want to use, and then what your service ends to it is you're in control
of it. It felt nice as a developer, it didn't feel like I was giving everything away. Anyway,
you can go to Fediscovera.org to have a look at the details that are linked to the specification,
which is on GitHub, there are lots of PRs open for new capabilities, and I'm sure they would
welcome more. There is a dev chat, talk to Andy about that. And yeah, that's it, that's me.
Thank you, James. Traditionally for short talks, we're going to do one question if anybody has
a question for James. It's all completely clear, everybody's going to implement Fediscovera
as soon as possible when I get back to there. I would give it a go. It's excellent. It's
pretty cool. David's going to have a great week. I did a Rails engine for it, if that helps.
I forgot about that. Can I also ask for an extra round of applause for James, who has stepped up
to help myself and Evan today. He's been doing the timekeeping. He's a tremendous human being.
We are very grateful. I can wave a card around with the best of them. And he has left and
lovely manifold stickers on the table as well. As anybody is welcome to do, if you have stickers
that you would like to share with the community, please do that.