Terence Eden. He has a beard and is smiling.

Terence Eden’s Blog

Theme Switcher:

I paid people to try and follow my README

· 14 comments · 700 words · Viewed ~36,890 times


A tiny lego Storm Trooper eats a chocolate coin.

Developers suck at writing documentation. We like to say RTFM but often there ain't no FM to R. At best we have a half-arsed collection of notes, some obsolete tips, and a link to a desolate forum full of people asking the same questions again and again. That's no way to treat our users. I naïvely believe there's a better way. As I've written before, you should sit down and actually test your …

Some quick thoughts on Unit Testing ActivityPub

· 3 comments · 600 words · Viewed ~2,404 times


The PHP logo.

I'll be radically honest here - I never really got the idea of "Test Driven Development". I'm much more of a "telnet into production and damn the consequences" kind of guy. Look, it's much more fun and my cardiologist recommends severe shocks every now and again. The essence of unit testing is pretty simple: Feed a function some data See how it responds Send it good data and if it returns…

ActivityPub - How to send an updated user profile to Mastodon and the Fediverse

· 1 comment · 350 words · Viewed ~1,452 times


Logo for ActivityPub.

Let's suppose you've updated the description of your ActivityPub account from "World's Number 1 Taylor Swift Fan" to "This account is now a Nickleback Truther". How do you let the rest of the Fediverse know that you've changed your allegiance? By default, most Mastodon instances won't periodically poll your account information just to see if you've updated it. So how does the information get…

ActivityPub - Is it worth defending against replay attacks and message/signature time skew?

· 5 comments · 1,750 words · Viewed ~2,058 times


Logo for ActivityPub.

Here's a problem that I've found with ActivityBot - my little ActivityPub server. Sometimes it receives messages which were originally sent months ago. Why does that happen and is it risky to accept and process them? My tl;dr is that it probably isn't worth worrying about. But I'd love someone to tell me why I'm wrong. Here's my thinking: Table of ContentsCausesIs that a problem?What are we…

A reasonably practical guide to validating RFC 9421 HTTP Signatures for ActivityPub in PHP

· 2 comments · 900 words · Viewed ~1,465 times


A padlock engraved into a circuit board.

If you're reading this, you've probably been hitting your head against a brick wall trying to parse and decipher the new HTTP Signatures sent by Mastodon and other Fediverse servers. This is a basic and somewhat incomplete guide to accepting these signatures. I'm sure there are various gotchas, but it works with the signatures I've seen in the wild. Shut Up And Show Me The Code! OK, wow, no…

ActivityBot is the recipient of an NLnet grant!

· 6 comments · 1,750 words · Viewed ~2,405 times


NLnet logo.

Back in February, I applied for NLnet's Next Generation Zero grant. They were looking for Fediverse projects to help rewild the social media landscape. Or, as they describe it: Reclaim the public nature of the internet Small and medium-sized R&D grants between 5.000 and 50.000 euro, with the possibility to scale up. I run ActivityBot - it is a single-file ActivityPub server suitable for…

Some updates to ActivityBot

· 1 comment · 1,150 words · Viewed ~753 times


Logo for ActivityPub.

I couple of years ago, I developed ActivityBot - the simplest way to build Mastodon Bots. It is a single PHP file which can run an entire ActivityPub server and it is less than 80KB. It works! You can follow @openbenches to see the latest entries on OpenBenches.org, and @colours for a slice of colour in your day, and @solar to see…

Introducing ActivityBot - the simplest way to build Mastodon Bots

· 9 comments · 350 words · Viewed ~1,340 times


Logo for ActivityPub.

As you may have read, BotsIn.Space is closing down, I have lots of automated bot accounts living on the Fediverse - and I want them to continue posting. Installing and maintaining an entire Mastodon instance sounds like hard work. Paying people to host my stuff feels like putting my fate in someone else's hands. Say… didn't I write my own ActivityPub server? Why, yes! Yes I did! I took the c…