I'm starting to learn Go. At work we're splitting out some parts of our architecture into a few microservices, and our Chief Architect decided we should write them in Go, instead of our usual PHP.
I've been enjoying learning it. It's been a long time since I've really tried to learn a completely new thing (as opposed to a new framework or whatever).
As a project to get myself into this, I've been thinking about building my own Fediverse server in go. Architecturally, I want it to be a lot like microblogpub, which I currently use. I actually want to be able to have a clear migration from one to the other.
Like microblogpub, my new project (which I'm tentatively calling gopub) will be a single user instance, intended to be easily hosted on your own computer, with a fairly simple sqlite database, and focused on broad ActivityPub and IndieWeb compatibility.
But I've got some ideas for a few features that I haven't seen elsewhere.
For example, I was thinking it might be cool to have alternate handles for a single user, to only follow certain things. E.g., if I'm [email protected], and somebody wants to follow me, but not see any boosts from others, instead of following [email protected], maybe they instead follow [email protected]. Or, if they only want to follow my posts that include a particular hashtag, they can follow [email protected].
Similarly, a single user with multiple handles would be nice. I think Friendica has this, but I'm considering including it in my project as well.
And one thing I really want to add is location check-in. Basically, the Fediverse equivalent of Foursquare. ActivityPub already has the vocabulary for this, but I haven't seen it implemented anywhere.
I'm still at the very, very early stages. Who knows if I'll ever get it in a usable state. And I'm working on it during my extremely limited free time. But I'm excited to start a new project.
An interesting thing about microblogpub is that, very unlike other Fediverse software (like Mastodon), I get a notification when somebody has unfollowed me, or blocked me.
Someone accidentally blocked me, and then immediately unblocked me a couple days ago. I got notifications for both of them.
I didn't actually know that it was a standard part of the ActivityPub protocol for an actor to send a block event to the actor being blocked. It doesn't seem like someone should know that I've blocked them, but I guess that's the way it goes.
Just FYI, in case you didn't know (I certainly didn't), someone might know if you've blocked or unfollowed them.
I've got a a #Mastodon / #ActivityPub question.
I understand how self-verification works in Mastodon.
But I'm trying to figure out how the federation of it works. In other words, how does instance A know which links are verified for a profile on instance B.
When I look at the AP profile (curl masto.tld/users/jimmy -H 'Accept: application/activity+json'
), I get something like:
{
"attachment": [ {
"name": "Personal Site",
"type": "PropertyValue",
"value": "<a href=\"https://something.tld\" target=\"_blank\" rel=\"nofollow noopener noreferrer me\"
><span class=\"invisible\">https://</span><span class=\"\">
something.tld</span><span class=\"invisible\"></span></a>"
}
]
}
But I don't see anything anywhere else in the JSON that indicates that that value is verified.
Is there a separate endpoint to check that?