@mariusor@metalhead.club
@mariusor@metalhead.club avatar

mariusor

@mariusor@metalhead.club

Mostly a programmer.

Implementing #ActivityPub in the #Go programming language.

Current projects:

  • #GoActivityPub - a library to use ActivityPub in Go.

  • #FedBOX - a generic ActivityPub service supporting the client to server API.

  • #brutalinks - a link aggregator inspired by (old) reddit, hacker news and lobste.rs built on top of FedBOX.

  • #oni - a single user ActivityPub server with minimal fuss.

My posts are mostly related to ActivityPub and web development.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

mariusor, to fediverse
@mariusor@metalhead.club avatar

I made some more progress on the application I plan to bundle as an admin tool with , the generic server, and , the no frills single user instance.

It's called and it looks like this currently.

mariusor, to fediverse
@mariusor@metalhead.club avatar

One of the small things I managed to do while sick this week was to add support for <link rel=alternate type="application/activity+json"> for all the pages where this makes sense.

So now the instance and the individual users are directly discoverable on Mastodon instances by entering the URL in the search box. (Accepting the follows is not functional at the moment... oops)

Ex instance: https://brutalinks.tech/

Ex user: https://brutalinks.tech/~marius

mariusor, to fediverse
@mariusor@metalhead.club avatar

Very productive day in the land of . I managed to take the first steps for an improved filtering API I wanted between the ActivityPub processing package and the storage backends.

Tangentially related to my collection filtering FEP: https://git.sr.ht/~mariusor/Fediverse-Enhancement-Proposal/tree/master/item/feps/fep-6606.md

mariusor, to mastodon
@mariusor@metalhead.club avatar

Another one for the pile, inReplyTo can't be an array in Mastodon land despite that being allowed in the ActivityStreams vocabulary/JSON-LD representation.

Searching for objects on the federated.id server, which are replies to something else, results in internal server error in . :(

Opening bug as we speak, but I have little hope.

mariusor, to fediverse
@mariusor@metalhead.club avatar

I decided to resurrect some of my first projects: @esports_SC2 @esports_QCH and the others in the family of esports calendars.

They haven't been updated in a long while, so probably I will move them away from being on a Mastodon instance all together.

It will be a good test for the Event related functionality in the libraries.

mariusor, to fediverse
@mariusor@metalhead.club avatar

Hey devs, what do you think about my SQL document storage table for ActivityPub objects?

https://github.com/go-ap/storage-sqlite/blob/master/init.go#L46

The dialect is SQLite, but Postgres supports all the features used here: virtual and generated columns, and json_extract.

I don't know about MySQL, but if someone can chime in about it, I'd love to hear from you.

mariusor, to fediverse
@mariusor@metalhead.club avatar

I haven't talked about and in quite a while, as I was focusing on a different project.

Today I fixed some long-standing bugs thanks to some interest from a long time user that stumbled upon some of the problems. 🙇

mariusor, to reddit
@mariusor@metalhead.club avatar

For people invested in the migration from . Here's some details about one of the projects I'm working on, which is a reddit-like discussion platform, built on top of .

It didn't benefit from the attention and funding that lemmy got, so probably it's overall less polished and performant, but some love from the community would do it good.

https://brutalinks.tech/~ild/e469b98e-4b48-48a8-86e5-6c61ebd9aff8

mariusor, to fediverse
@mariusor@metalhead.club avatar

Oh man, I forgot the rush of endorphins that comes from fixing a really longstanding bug.

, the generic service, had a heisenbug for about 6 months where integration tests for federated dispatch would randomly (and rarely when debugging) failed. I tried a couple of times to reproduce it, but it wasn't that big of a deal and it mostly went fine, so I didn't want to dedicate too much time to it.
1/2

mariusor, to fediverse
@mariusor@metalhead.club avatar

My attempt at replacing the current filtering API in storage backends with an improved static typed one is becoming a bit of a chore. The number of exposed functions has ballooned a lot because of the large surface of the ActivityPub objects compounded by the number of filtering criteria we want to support (which are not even that many): equality, fuzzy search, null value.

https://pkg.go.dev/github.com/go-ap/filters#Fn

mariusor, to random
@mariusor@metalhead.club avatar

Made some improvements to my Tree model for @charmcli's Bubbletea TUI framework.

It can now do threaded conversations. 🥳

https://github.com/mariusor/bubbles-tree

mariusor, to random
@mariusor@metalhead.club avatar

A very old friend has released his first solo album: Insepultus - Deadly Gleams of Steel, Blood and Fire.

Now playing "The Last Battle I": https://song.link/i/1720686744

mariusor, to random
@mariusor@metalhead.club avatar

Seeing @helge 's comment about Dunbar's number and "Following" counts, I thought that in social networks it definitely does not apply.

I then did some back of the napkin math to come up with a better one for representing the size of an active/healthy social network community. The end result was:

1416

mariusor, to fediverse
@mariusor@metalhead.club avatar

Improved the webfinger handler for the reference implementation to support finding https:// resources alongside acct: double @ ones used by the larger fediverse.

mariusor, to random
@mariusor@metalhead.club avatar

In land, I have finally made progress in excising the OAuth2 routing to its own individual service.

Deploying has increased complexity, but it paves the path for replacing our spit and duct-tape user management to something more robust, like .

Leftovers in FedBOX are the OAuth2 client CRUD operations, soon to be replaced with automated client creation.

mariusor, to random
@mariusor@metalhead.club avatar

I keep being on a roll today. I discovered the mystery of why doesn't show follows coming from Mastodon.

It actually does, but because they don't have a published date they are ordered at the end of the inbox, so I had to go all the way to the end of the listing to find them. Sigh...

Another one to put on top of the pile of

mariusor, to fediverse
@mariusor@metalhead.club avatar

Another small win today.

, the single user federated instance based on , serves HTML and content from the same URLs based on what the clients request.

Firefox was caching the responses without taking into consideration the Content-Type, and was serving the JSON instead of HTML if refreshing a page. Only today I was reminded of the Vary header and fixed the problem. Yay! :D

I'm a little bit ashamed of myself that I've forgotten about it.

mariusor, to cycling
@mariusor@metalhead.club avatar

A special treat today, the Oudenaarde Koppenbergcross race is starting from 11:45CET (women's) and 14:00CET(men's).

This race is special as it climbs the infamous Koppenberg climb (11% avg gradient for 600m, 22% max gradient) on each lap.

mariusor, to fediverse
@mariusor@metalhead.club avatar

Before taking a break from ActivityPub at the start of the year I was working on bringing all storage types for (the generic service) to better support persistence of collections.

Finally over the past weekend I managed to bring the sqlite backend (the last remaining) from ~180/458 failing integration tests to just 10/458.

It was definitely a journey.

The best part of this is that it paves the way for any sql.DB compatible database.

hrefna, to fediverse
@hrefna@hachyderm.io avatar

Part of my frustration with and one of the things I find baffling giving everything else in it: the lack of tools for backpressure.

Backpressure is fundamental in building reliable distributed systems (c.f., Notes on Distributed Systems for Young Bloods). From a C2S perspective I get why it wouldn't need to be specified, but from a S2S federated protocol perspective its absence is frustrating.

All that it says is to take care not to overwhelm others and a bit on rate limits

mariusor,
@mariusor@metalhead.club avatar

I'm not sure if this is what @julian asks about, but this would be an example of what I meant in the post mentioned by @jenniferplusplus:

https://federated.id/objects/2e6cf5a8-ffa8-4fca-b4cd-8e0c9a584a75/replies

You can see the list of replies fully (the public ones at least), and some of them have inReplyTo attributes that reference multiple objects. This is done to have a way to reconstitute the reply tree structure.

@mikedev

mariusor,
@mariusor@metalhead.club avatar

@mikedev I wasn't following the larger discussion thread, I don't really know what you guys are talking about. I only meant my reply as a clarification to the quote Jennifer++ posted.

mariusor,
@mariusor@metalhead.club avatar

> ...if my code encountered an Array in inReplyTo it might just terminate because it expects a single uri

@julian sadly that's the case for most fediverse software at the moment. :(

@jenniferplusplus

mariusor, to javascript
@mariusor@metalhead.club avatar

Back from vacation, getting depressed again about having to write some .

Anyone in my list of developers willing to lend a hand? (Willing to pay consulting fee for getting me unstuck) 🙏

badlogic, to random
@badlogic@mastodon.gamedev.place avatar

Remwmber when all those messangers started out with XMPP?

(it's a trap)

https://mstdn.binarytango.com/@binarytango/111588690584028338

mariusor,
@mariusor@metalhead.club avatar

@badlogic and, as a little side note, EEE is already happen on the fediverse, but instead of Meta/Google being the bad guy, it's Mastodon.

Because Mastodon has a number of implementation quirks for ActivityPub that everyone needs to copy/make affordances for, or not be a part of the greater fediverse.

For the small projects like mine, we'd just be trading who we need to accommodate, Mastodon, or Threads, and honestly I am equally annoyed to do either.

mariusor, (edited ) to Soundtracks
@mariusor@metalhead.club avatar

In my attempt to wean myself of cloud music services, I've been delving through the game OST list I have, and a relatively recent addition really hit it out of the park.

A fun mix of cyberpunk Ghost in the Shell influences with a dubstep beats, on top of definite NIN and Mick Gordon Quake and DOOM FPS roots:

REVEL - Sprawl OST

It's a bit outside of my usual tastes, but it is very fun and I think it matches the game to a T.

https://revel303.bandcamp.com/album/sprawl-original-soundtrack

  • All
  • Subscribed
  • Moderated
  • Favorites
  • provamag3
  • kavyap
  • DreamBathrooms
  • everett
  • magazineikmin
  • InstantRegret
  • ngwrru68w68
  • Youngstown
  • mdbf
  • slotface
  • vwfavf
  • tacticalgear
  • thenastyranch
  • rosin
  • megavids
  • osvaldo12
  • ethstaker
  • GTA5RPClips
  • khanakhh
  • Durango
  • tester
  • normalnudes
  • cisconetworking
  • modclub
  • cubers
  • anitta
  • Leos
  • JUstTest
  • All magazines