Goofed Home

Conversation

$$21399
https://cosocial.ca/users/evan posted on Apr 1, 2026 23:17

I think if there's one thing I'd say to #ActivityPub developers, it's this: it seems like it's going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it's not. You have to keep track of too many variations. Use a JSON-LD library instead. For JavaScript, try activitystrea.ms:

https://github.com/jasnell/activitystrea.ms

https://cosocial.ca/users/evan/statuses/116332001773753660

$$21507
https://cosocial.ca/users/evan posted on Apr 2, 2026 12:51
In reply to: https://mastodon.social/users/trwnh/statuses/116333828835838324

@trwnh "more actively maintained"?

The code is long-term but it was built by one author of AS2 and maintained by the other. It works well, and I use it in production systems all the time.

I'm pretty sure @hongminhee has made a similar package, although I'm not sure it's distributed independently.

https://cosocial.ca/users/evan/statuses/116335199274721737
$$21512
https://hollo.social/@hongminhee posted on Apr 2, 2026 13:01
In reply to: https://cosocial.ca/users/evan/statuses/116335199274721737

@evan@cosocial.ca @trwnh@mastodon.social I’m maintaining the @fedify/vocab package which depends on the jsonld package from Digital Bazaar. It’s written in 100% TypeScript, and has worked well on production services!

https://hollo.social/@hongminhee/019d4e48-b607-7523-a2a0-f1e0cf6b4670

Scaling: ActivityPub over NNTP?

$$21184
https://piefed.social/u/rimu posted on Apr 1, 2026 09:18

Here’s an interesting thought experiment.

Way back in the 1980s and 90s, Usenet was a sorta-federated discussion forum (using the NNTP protocol) that was very popular. It still exists and is distributing 400 million messages each day (mostly spam and trash as far as I can tell). Hard numbers are difficult to come by but it seems like Usenet is capable of significantly higher throughput. Why is that?

The big thing holding ActivityPub back is the fan-out. You know the story - someone with 50,000 followers causes their instance to send up to 50,000 HTTP POSTs every time they click the little spinny star or reply to something.

It’s basically a hub-and-spoke network topology. Except everyone takes turns being the hub, ideally, but not much in practice. And in this topology, the hubs are where the strain and bottlenecks are.

Back in the 1980s they had computers literally 1000 times slower than ours and network links to match. So how did they do this? With a peer to peer network topology! When a new post is made, they don’t send it to everyone they just send it to a handful of other servers. Those servers in turn forward the post on to a handful of other peers, and so on, until the whole network receives the post. No individual server is a single point of failure and none has to bear the full brunt of orchestrating it all.

Let’s do a picture. A creates a post and sends it to B and D.

A ─ B ─ C  
 \      /  
   ─ D ─  

B sends it on to C.

Meanwhile D sends it on the C also but C already has it so does nothing more. IRL this would be a much larger mesh. Who peers with who can be a mixture of manual selection and random spiciness.

Posts can arrive out of order so each server would need to wait until the dependencies between posts are resolved before making them available to clients. That’s a bit tricky.

In the ActivityPub-over-NNTP idea, each NNTP post would be a thin wrapper around a data structure containing the HTTP headers (with signature and digest) and JSON that a normal HTTP POSTed Activity would have. Servers would use NNTP to distribute the activities and upon receiving one they’d POST it to their own /inbox to run the usual ActivityPub processing that their AP instance does.

{  
  "headers": {  
    "Signature": "...",  
    "Digest": "...",  
    "Date": "..."  
  },  
  "activity": { ... normal ActivityPub JSON ... }  
}  

In this way there is no need to rewrite ActivityPub semantics as only the transport layer changes. Our existing inbox logic remains intact.

NNTP comes with a lot of historical baggage so we’d probably need to evolve the protocol a bit. Maybe use HTTP requests (even http2 streams?) instead of the original line-oriented text protocol using raw TCP sockets. But you get the idea.

Thoughts?

https://piefed.social/c/technical-discussion/p/1939768/scaling-activitypub-over-nntp

8 posts in conversation

$$21355
https://piefed.social/u/rimu posted on Apr 1, 2026 20:22
In reply to: https://piefed.zip/comment/4549493

Yes, I think that’s part of NNTP already. Each post has a list of the servers it has traveled through so when considering where to forward the post on to a server can check if it’s already been there. That would help somewhat but still there would be quite a few times when a server discards posts.

I haven’t gotten deep enough into this yet but I’m sure there have been protocol improvements since NNTP that address this. Gossip protocols have been experimented with since the early 2000s. For example, rather than servers saying to others “I have this post, do you want it?” they might say “the most recent post I have in the fediverse@lemmy.world community is #5” and another server which only has posts #1 and #2 would respond “cool, give me posts #3, #4 and #5”.

https://piefed.social/comment/10785115
$$21357
https://piefed.social/u/rimu posted on Apr 1, 2026 20:26
In reply to: https://mitra.social/objects/019d49cb-4435-0420-3d7c-c45d9303451f

Good point.

https://piefed.social/comment/10785159

Conversation

$$21276
https://hollo.social/@hongminhee posted on Apr 1, 2026 16:09

The #CFP for the Fediverse & Social Web track at COSCUP 2026 (Taipei, Aug 8–9) is now open! If you’re working on #ActivityPub, the #fediverse, or anything in the open social web space, we’d love to hear from you. The deadline is May 9. #COSCUP is free to attend.

👉 https://hackers.pub/@fedidevkr/2026/fediverse-social-web-track-at-coscup-2026-cfp

(Boosts appreciated!)

#SocialWeb #fedidev

https://hollo.social/@hongminhee/019d49ce-e617-7f8d-94ba-65ef8f8e8a17

Conversation

$$20915
https://cosocial.ca/users/evan posted on Mar 31, 2026 19:09
In reply to: https://activitypub.space/post/1694

@julian OK, I'll take a look!

https://cosocial.ca/users/evan/statuses/116325360946127779

$$20951
https://cosocial.ca/users/evan posted on Mar 31, 2026 20:24
In reply to: https://activitypub.space/post/1694

@julian awesome!

https://cosocial.ca/users/evan/statuses/116325656169371110

Conversation

$$20877
https://catodon.rocks/users/ajnx09gnv7z90005 posted on Mar 31, 2026 14:44
In reply to: https://activitypub.space/post/1691

@julian@activitypub.space yeah, i know 🥲
I have a lot of things I wanna do on Misskey/Sharkey - give me a few more months and this will be totally transformed =)
@evan@cosocial.ca

https://catodon.rocks/notes/akiakw5frrvd011m

Conversation

$$20353
https://cosocial.ca/users/evan posted on Mar 30, 2026 03:42
In reply to: https://activitypub.space/post/1683

@julian @liaizon @cogdog I can't remember if Mastodon supports multi-typed actors. [Group, Service] would be reasonable!

https://cosocial.ca/users/evan/statuses/116316057073932666

$$20780
https://cosocial.ca/users/evan posted on Mar 31, 2026 02:21
In reply to: https://cosocial.ca/users/evan/statuses/116316057073932666

@julian @liaizon @cogdog ok, I opened a ticket for this.

https://github.com/mastodon/mastodon/issues/38494

https://cosocial.ca/users/evan/statuses/116321398315930590

Conversation

$$20610
https://mastodon.xyz/users/Profpatsch posted on Mar 30, 2026 18:47

The cool thing about the Activitystreams Activity Vocab RFC is that it’s nearly completely useless for any practical implementation purpose …

#activitypub

https://mastodon.xyz/users/Profpatsch/statuses/116319613686215743

Conversation

$$19388
https://cosocial.ca/users/evan posted on Mar 28, 2026 16:56

Friends, if you haven't already, it would be a big favour to me if you could enable tags.pub to boost your public tagged posts.

Just follow @_followback . It will follow you back, and when you make a post with a hashtag in it, the server will boost your post from the appropriate hashtag.

If you're interested in any topics, like @nokings , follow that account to get posts with that hashtag from across the Fediverse.

Let me know how it works for you!

#tagspub #hashtags #activitypub

https://cosocial.ca/users/evan/statuses/116307853693355052

5 posts in conversation

$$20570
https://cosocial.ca/users/evan posted on Mar 30, 2026 15:17
In reply to: https://indieweb.social/users/tchambers/statuses/116318681986249415

@tchambers @joe great idea!

I think it's a really interesting question of how much of the Fediverse needs to be providing data to tags.pub.

I think this might be an interesting network science problem. I'll do some math and let you know!

https://cosocial.ca/users/evan/statuses/116318789888867447
$$22371
https://cosocial.ca/users/mpjgregoire posted on Apr 5, 2026 17:09
In reply to: https://cosocial.ca/users/evan/statuses/116307853693355052

@evan I read years ago that multi-word tags should be done in CamelCase, for the benefit of screenreaders. So when I take my posts, I'm careful to do so. It appears however that tags.pub lowercases all my tags.

I understand that it shouldn't create separate accounts for tags that vary only by capitalisation, but when creating a new account, why not preserve the capitalisation of the original tag?

https://cosocial.ca/users/mpjgregoire/statuses/116353203516225811

Conversation

$$20379
https://fosstodon.org/users/potatomeow posted on Mar 30, 2026 05:07

fixed my ios app, now I'm not sure if location should be attached onto a note object or account actor or both
#ActivityPub

https://fosstodon.org/users/potatomeow/statuses/116316388155128812

$$20385
https://piefed.social/u/rimu posted on Mar 30, 2026 05:22
In reply to: https://fosstodon.org/users/potatomeow/statuses/116316388155128812

Account actor, IMO.

https://piefed.social/comment/10745507
$$20418
https://fosstodon.org/users/potatomeow posted on Mar 30, 2026 07:46
In reply to: https://piefed.social/comment/10745507

@rimu did both, thought just in case some seller has different warehouse locations

https://fosstodon.org/users/potatomeow/statuses/116317013959824143

Conversation

$$20216
https://poliversity.it/users/elettrona posted on Mar 29, 2026 22:36

Journey with self hosting for personal blog and fediverse

@selfhosted

Hello, I followed the "selfhosted" instance on LemmyWorld in order to be able to talk about my experiences having them in order, without confusing criteria into Fediverse. Hoping they can be useful to others.

Current setup: Hostinger vps kvm2 plan, Debian12, YunoHost, Hostinger's docker manager installed.

Personal background: blind since birth, (I don't see), I'm mostly a computer power-user, worked and studied with ms-dos since 1989 until late 90s. Basic GNU/Linux knowledge in 2002, then interrupted in 2004.

I don't care talking about disability when discussing unrelated topics but it's necessary in this case as my needs are quite different from others.

So, I've been scared by self-hosting and have had shared hosting web sites until now. Until @_elena started self hosting her digital echosystem from scratch using YunoHost.

Due to lack of drivers I stopped with Linux on my private machine, drivers for the Braille display I had, and then the uneffective (at least for my need) screen reader capabilities on Linux's GUI based distros.

Finally in January 2026 I jumped in the dark after reading Elena Rossini's blog about YunoHost and having explored their demo pages. At the worst, I'll cancel the contract...

In the end I've managed to run WriteFreely, WordPress, CastoPod and GoToSocial, just by YunoHost; but if someone says terminal knowledge is not needed, this is a complete lie.

Where a system (such as YunoHost) can do the dirty work configuring postfix and nginx, I'll support it but it has its disadvantages: not every app can be installed through it.

For me it's very difficult to create and look after a config file on my own, it's frustrating for a sighted to miss a punctuation sign, an apostrophe, an indent. Let alone for me! A single space skipped, can crash a system.

A lie even saying that my butt completely helps. It does solve some small, simple, immediate tasks but it has some mistakes as well. The so-called allucinations which create a real mess if you can rely on no personal skill.

Such as "sudo yunohost tools cert-install", or similar. my butt wrote "cert-install" while the real command is "cert install"! A power user can get rid of it and correct, a beginner with no command-line knowledge, just copies, pastes, and gets scared.

My late attempt has been Madblog, a static markdown-based blogging platform with Fediverse activitypub in it, so I learned what Docker is and how it basically works. But I gave up, due to several timeouts and activitypub slow-downs. I think I'm going to use WordPress for blogging then. In case of comments it'll be more intuitive for non-fediverse folks.

Hopefully share others' experiences as well!

#ActivityPub #blind #fediverse #introduction #selfhost #selfhosting #WordPress #YunoHost

https://poliversity.it/users/elettrona/statuses/116314850260570098

$$20411
https://poliversity.it/users/elettrona posted on Mar 30, 2026 07:19
In reply to: https://neander.social/users/marzlberger/statuses/116316727865564612

@marzlberger @selfhosted @_elena Thanks. Now I'm fighting with WordPress on self hosting: I wanted a multisite but every attempt has failed, so I'm planning to have two installs (one for Italian and one for English) which will keep me busy in maintenance for double time. But my multilingual solution I have on my current production site, is yet more fragile.
And guess what, translation plugins are expensive or, in other cases, never satisfy accessibility needs.

https://poliversity.it/users/elettrona/statuses/116316908000855876
$$20504
https://poliversity.it/users/elettrona posted on Mar 30, 2026 12:25
In reply to: https://poliversity.it/users/elettrona/statuses/116314850260570098

@selfhosted I keep updating my thread. I'm currently studying lichen-markdown documentation -it is in te YunoHost catalog so it'll cause no harm. I'll keep the thread updated accordingly

https://poliversity.it/users/elettrona/statuses/116318113572730279
Create New Post