Jan-Lukas Else

Tech, life and everything else

Tags: ActivityPub


Integration-testing GoBlog’s ActivityPub implementation

Published on in 👨‍💻 Dev

Recently, I noticed in my blog database export that a couple of ActivityPub users unfollowed. All at the same time. It was strange. Until I noticed all were GoToSocial (GTS) users. In the logs I found the reason: GoBlog failed to deliver some updates to the users, and so the accounts were marked as dead and removed after twenty failed tries.

View

Published on in 💬 Micro

I couldn’t resist buying a new domain! 👀

I chose janlukas.blog as I’m considering rebranding my online presence. I want to move away from the nickname jlelse towards a stylized version of my first name. It also feels much more future-proof, especially if I end up taking my future wife’s last name.

What will probably be even more difficult than deciding on a surname is moving the blog. Moving an ActivityPub instance to a new domain is no easy task. (If you have already done that, please tell me how.)

Fun fact: While Jan and Lukas have long been the top boys’ names in Germany, the name Jan-Lukas with a hyphen is not that common after all. janlukas.de and jan-lukas.de were also still available, before I registered them.

View

Initial thoughts about Bluesky

Published on in 💭 Thoughts

There’s a lot of noise about Bluesky recently, it seems like they passed 20 million users, with more than 1 million new users daily recently.

View

Published on in 💬 Micro
Updated on

Achievement for today: I can finally correctly reply to Mastodon/Fediverse/ActivityPub posts. 🥳

P.S.: And I can mention ActivityPub actors and they will get a notification (at least on Mastodon).

View

Published on in 💬 Micro

I reworked the current ActivityPub implementation of GoBlog, fixed ActivityPub replies to posts and also added support for reply updates and deletions. Under the hood it’s using the comment system. 🥳 Using the go-ap/activitypub library, working with ActivityPub is much easier (but still more complicated than I wish it would be).

View

Published on in 💬 Micro

Some IndieWeb protocols are complicated and there are sometimes no programming libraries to simplify the use of them, but ActivityPub is another beast. Although the standard is documented, the way the specific implementations (Mastodon etc.) work often isn’t and it’s hard to debug. So huge respect for the big rework. 👍

View

Published on in 💬 Micro

GoToSocial seems like a promising alternative to Mastodon. It’s written in Go (👍 in my opinion), lightweight and pretty good documented so far. It’s still “alpha software” but seems to make great progress. In the past, I self hosted a microblog.pub instance and then after some time without any Fediverse profile other than my blog, which has ActivityPub support as well, signed up at Fosstodon to be able to reply to blog comments from the Fediverse. I already set up an instace of GTS, but will probably wait to use it as my primary Fediverse profile until GTS enters the beta stage sometime in 2023 according to the roadmap.

Yesterday, I fixed GoBlog to be able to be followed by GoToSocial users. I didn’t know that some ActivityPub servers require requests to get information about the remote actor to be signed. But that should work now. 😄

View

Published on in 💬 Micro

Mastodon 3.5 finally supports the Update ActivityPub activity. GoBlog supports sending updates for quite a while already, but only Pleroma showed the updated posts and not Mastodon. That would have been useful recently, when I posted “Spaces!” but wanted to post “Tabs!” and updated my post. 😅

View

Published on in 💬 Micro

Finally I have implemented a kind of trash in GoBlog. When I delete a post, it is first marked as deleted and can be restored within 7 days. Unfortunately the integration with ActivityPub is not that easy. ActivityPub allows to Undo a Delete activity, but Mastodon doesn’t support that, just like Mastodon doesn’t support Updates. 🙄

View

Published on in 💬 Micro

Because ActivityPub instances can go offline from time to time and it’s general best practice to retry failed requests, I just added a new queueing system for ActivityPub requests to GoBlog using this nice library named “dque”. There’s always a bug or sub-optimal solution I need to fix before I want to release GoBlog (or whatever I will name it in the end) to the wide world. But the frequency of the discovery of improvable things is decreasing, so I hope I will be able to write documentation soon.

View

Jan-Lukas Else