Helge's blog

by helge@mymath.rocks

Powered by longhorn
based on bovine

Helge's blog

BIN-4 Quotes

In this new Bovine Implementation Note, I will discuss how I'm handling quotes in longhorn, the ActivityPub Client this blog runs on. This discussion is based on my thoughts in Thoughts on oEmbed and quoting. In particular, I will disucss how the quoting notification problem is solved in longhorn. One issue that is not solved by this implementation is enabling posters to mark their posts as not quotable. This cannot be solved here, as first such a mark must be set by the posters. Finally, I only ensured that this implementation works well together with Mastodon so far.


I'm currently experimenting with using Mastodon as a client for bovine, and want to explain how the setup works. This means that I keep running bovine on mymath.rocks, but can use a locally running Mastodon instance (mastodon.local) to write and read posts. In this case, Mastodon is no longer a federated ActivityPub server, but a client application. I will discuss both how to post from mastodon.local and have a federated and home timeline.

BIN-3 Object Visibility for Browsers

In this third Bovine Implementation Note, I will discuss how I am handling what to show to an user viewing an object from Bovine in a web browser. This is mainly so I have a specification to refer to from writing the tests for Bovine. There will be two types of behavior, first for objects having an url property, i.e. objects having a known web representation, second objects without the url property.

BIN-2 Moo Client Registration Flow

In this second _Bovine Implementation Note, I introduce a flow how to register ActivityPub Clients with an ActivityPub Server based on Moo-Auth-1. The goal here is to describe behavior that is already implemented in bovine and used for example in mechanical_bull. By the use of asymmetric encryption (Ed25519), there is no need for a secret to be exchanged in order to register a client.

Failing Gracefully

I'm talking about how software can fail gracefully and how it will be important to the FediVerse to require your software to have nice failure behavior. As an example, you folks on Mastodon and possible other platforms, you might only see one paragraph followed by a link. This is what I would call "pretending everything is ok, while it isn't". You'll miss all the content, if you don't click on the link.

Thoughts on oEmbed and quoting

Over the Christmas holiday season the FediVerse was animated with discussions about "quote boosts". This describes the act of embedding a post into another post and adding a comment. For various reasons this lead to tempers boiling high. Since then many new Mastodon apps emerged, some of these support quote boosts in some form and nobody seems to care. This post is both to record some things and to experiment.

Link header for better interoperability with Mastodon

One of my goals with this blog is to make it into a first class ActivityPub citizen. Today, I want to talk about how to make it so that Mastodon can lookup the blog post, when pasting the URL in its search box. I mostly write this down, to have the behavior documented somewhere.

BIN-1 Moo Authentication and Authoriation

In this first Bovine Implementation Note, I introduce Moo Authentication and Authorization for HTTP requests. This meant as an authentication and authorization scheme to replace [HTTP Signatures] when communicating with Bovine. The simplest to state advantage is that HTTP requests will be authenticable without having to look up a private key. For this Moo Auth will replace the usage of an RSA keypair with Ed25519, which has the advantage of shorter keys.


As some of you people might notice, this post looks a little bit unusual compared to other ones. It has a title, followed by a paragraph, followed by a link. This is due it not being a Note but an Article as far as ActivityPub is concerned. Mastodon makes out of this what you see. Now, why am I writing this thing, well I hope that my comment system is now working. So if you reply to this publicly on Mastodon, it should appear on the page with the link. More details after clicking on the link.

At least Three Times

Writing a blog about my thoughts on the FediVerse versus microblogging has the distinct advantage that I can repeat myself even better. I can first microblog, then blog, then microblog, then blog, then microblog, ... without boring myself. Also due to the nature of repeating myself, I get to generate testing data.

Identity in the FediVerse

I rant about Identity in the FediVerse. It's mostly written, so I have a text to test various things. Also I'm building a blog, where texts like this belong. The blog is going to be an ActivityPub Client. While building this, I realized that I need to implement 2 to 1 below, and it annoys me.