Search results

@jerger @steveSteve Bate

Keeping msgs immutable is a general best-practice, I gather.

In the case you mention it becomes confusing to still use client/server terminology. You have a full actor on the client's side, and when it sends a msg it acts in server/S2S role.

Btw, in that scenario we do not have to make the distinction client + server anymore, as we have just actors communicating with each other. Then we can think in terms of the actor model, and honor its qualities.

A client sending to the server's outbox is then analogous to an actor sending to another actor's inbox. That is a one-way msg exchange usually, fire and forget (esp. in a pure event-driven architecture... which the current fediverse is not). The remote actor is not responsible for keeping the Activity (event) in its server-outbox / actor.inbox. That corresponds to the spec part "may disappear at any moment".

@smallcircles🫧 socialcoding.. @jerger > In the case you mention it becomes confusing to still use client/server terminology.

In this case, I think the terms makes sense in the specific content of clients and servers. There's significant overlap in the behaviors of the two, but there are significant differences too. For example, a client cannot federate and often runs in an environment where it can't expose listening sockets (browser, behind a firewall, etc.).

0

@steveSteve Bate @jerger @mariusormarius

As an aside: I just learned about Holos-Discover, an AP search engine was taken offline by @HolosSocial after discussions relating to consent. The key finding was in toot.fedilab.app/@apps/1160514

> This highlighted a real conversation the Fediverse needs about default settings.

Yeah. I would reformulate to say that this is about protocol capabilities vs. these weird things we call "apps".

Can't check the Holos-Discover info, as it was taken down, but it seems to me that relying on an "Indexable" setting is an app-specific thing. Hence it can't be part of a generic consent mechanism.

When it comes to "defaults", the fediverse as a whole has a problem in that Microblogging is seen as something foundational to , a given upon which all else is built. Protocol capabilities. But this is, should not be, the case.

Microblogging constitutes a domain, a set of user stories with well-define particular behavior. Or as app domains (Mastodon) + FEP practices.

0

@smallcircles🫧 socialcoding.. @jerger @mariusormarius I meant "generic" primarily to mean it's not a client for a specific server implementation. In this case, it is a C2S testing client so it is not specific to a particular user domain either. In the first sense of "generic", I could imagine a media publishing app (images, videos) that's not tied specifical to PixelFed or PeerTube (as examples). Or a "generic" microblogging app. The latter is where the Note to Article conversion would probably be an issue.

@steveSteve Bate @jerger @mariusormarius

Guess this is a general area where due to the lack of clear protocol layering there's much confusion in overall terminology usage.

The whole idea of an "app" is not part of itself. It is a leaked abstraction on what devs think they offer ("I build an app for my users").

There is no "generic" microblogging app, unless there exists an agreement for the specification of said app. PixelFed is a spec, PeerTube is another spec in different domain. A generic microblogging app would live where? As FEP? Collection of FEP's? W3C Note giving a 'specification profile'?

0

@jerger @steveSteve Bate

I agree with this. The spec says:

> The server MUST then add this new Activity to the outbox collection. Depending on the type of Activity, servers may then be required to carry out further side effects. (However, there is no guarantee that time the Activity may appear in the outbox. The Activity might appear after a delay or disappear at any period). These are described per individual Activity below.

My expectation as a client is that I find the Activity I just sent in the outbox on the server with the same (Note) payload. If there's translation into Article, then this is a side-effect that comes after that.

0
0

With discover.holos.social we may have highlighted that many Fediverse users don't pay attention to their default settings. We built a fully respectful search engine that only relies on , with instant deletion, updates, and indexing only consenting users. We will likely shut down the service, but the source code will remain available as we believe the approach is ethical. That same indexable setting already lets Google index your posts and keep them cached long after deletion.

0
0
1
0

RE: mastodon.social/@countablenewt

Not every client for every service needs to show all content

Take , for example

Most of the content on isn't immediately visible in the UI

Posts without links don't show up at all, quote boosts don't show up at all, and any text content shared with the post is hidden in the post detail view

The fun thing about the is that we can make highly opinionated clients like this for the people who want it

For those that don't, they don't have to use it

0
0
0
0

Reminder to anyone managing a project that matrix has been adopted as the chat solution by bookwyrm, write.as, friendica, plume, pleroma, fedilab, funkwhale, mitra, forgefed, mobilizon, phanpy, tokodon, moshidon, lemmy, gotosocial, bonfire, voyager, tusky, lemmy, loops, piefed, pixelfed, manyfold, owncast and others. You don't need to start from scratch if you leave discord : join us on matrix!

@GargronEugen Rochko

0

I gotta say Google, the degradation of your Search product is now almost complete.

I was looking for documents that I am fairly sure exist; at the intersection of three specific technical disciplines.

Namely

And basically just want to throw my archives into duckdb and have them in whatever schema the JSON-LD of a mastodon archive carries, so I could do a bit of analytics on my past self.

And for the first time you didn't produce a useful top level result that I could use to find what I was looking for.

You've gotten dumber Google and it shows.

0

I started using a service called Concert Archives (it is what it sounds like) and I really like it! It’s helped me remember live shows that I had forgotten I even went to and artists I didn’t even recall seeing until looking at the archive entries.

I wish it was federated with , something like that on the fediverse would be very cool.

Here’s my profile (still working on adding concerts, lots more to go…) concertarchives.org/jonathan-r

0

I started using a service called Concert Archives (it is what it sounds like) and I really like it! It’s helped me remember live shows that I had forgotten I even went to and artists I didn’t even recall seeing until looking at the archive entries.

I wish it was federated with , something like that on the fediverse would be very cool.

Here’s my profile (still working on adding concerts, lots more to go…) concertarchives.org/jonathan-r

0
0

I couldn't get pixelfed to work under . That's why I'm building pxvoid now. A simple, self-hosted web gallery with integration. No multi-user management, no filters, no stories, and a local upload script. Follows and likes from the are possible. It's an early alpha version, but the basics work in under 1800 LoC . Now all that's missing is the final design and code cleanup 🥳🎉

Screenshot of pxvoid. A federated webgallery. Screenshot of pxvoid. A federated webgallery.
0
0
0
0
0

Your Home Feed is the inbox of an ActivityPub actor — in particular YOUR ActivityPub actor.

There could be an actor for each hash-tag, too.

You could even do Del.icio.us like things — and have actors for intersections of hash-tags, too.

These hash-tag actors' inboxes would need to be readable by anyone.

...

This could be a more ActivityPub like API alternative to Mastodon's "GET /API/v1/tags/{name}" API.

0

Reminder to anyone managing a project that matrix has been adopted as the chat solution by bookwyrm, write.as, friendica, plume, pleroma, fedilab, funkwhale, mitra, forgefed, mobilizon, phanpy, tokodon, moshidon, lemmy, gotosocial, bonfire, voyager, tusky, lemmy, loops, piefed, pixelfed, manyfold, owncast and others. You don't need to start from scratch if you leave discord : join us on matrix!

@GargronEugen Rochko

0
0
0
0
0

7.9.0 — Spring Cleaning 🪣🧹

ActivityPub for WordPress @activitypub.blog@activitypub.blog

Version 7.9.0 is a spring-cleaning release for ActivityPub for WordPress. Custom Fediverse emoji now render properly, profile and following blocks make it easier to build richer identity pages, and new health checks improve reliability. Alongside performance tweaks and many fixes, this update focuses on polish, stability, and smoother everyday federation.

Read more →
0
0
1

I have deeply mixed feelings about 's adoption of JSON-LD, as someone who's spent way too long dealing with it while building .

Part of me wishes it had never happened. A lot of developers jump into ActivityPub development without really understanding JSON-LD, and honestly, can you blame them? The result is a growing number of implementations producing technically invalid JSON-LD. It works, sort of, because everyone's just pattern-matching against what Mastodon does, but it's not correct. And even developers who do take the time to understand JSON-LD often end up hardcoding their documents anyway, because proper JSON-LD processor libraries simply don't exist for many languages. No safety net, no validation, just vibes and hoping you got the @context right. Naturally, mistakes creep in.

But then the other part of me thinks: well, we're stuck with JSON-LD now. There's no going back. So wouldn't it be nice if people actually used it properly? Process the documents, normalize them, do the compaction and expansion dance the way the spec intended. That's what Fedify does.

Here's the part that really gets to me, though. Because Fedify actually processes JSON-LD correctly, it's more likely to break when talking to implementations that produce malformed documents. From the end user's perspective, Fedify looks like the fragile one. “Why can't I follow this person?” Well, because their server is emitting garbage JSON-LD that happens to work with implementations that just treat it as a regular JSON blob. Every time I get one of these bug reports, I feel a certain injustice. Like being the only person in the group project who actually read the assignment.

To be fair, there are real practical reasons why most people don't bother with proper JSON-LD processing. Implementing a full processor is genuinely a lot of work. It leans on the entire Linked Data stack, which is bigger than most people expect going in. And the performance cost isn't trivial either. Fedify uses some tricks to keep things fast, and I'll be honest, that code isn't my proudest work.

Anyway, none of this is going anywhere. Just me grumbling into the void. If you're building an ActivityPub implementation, maybe consider using a JSON-LD processor if one's available for your language. And if you're not going to, at least test your output against implementations that do.

@hongminhee洪 民憙 (Hong Minhee) :nonbinary: I'm reading this thread as a relative noob, but what I see again and again: almost no one "properly" implents largely because is hard but also because the spec itself is unclear. Most people who get stuff done have to go off-spec to actually ship.

This seems a fundamental weakness of the - and that disregarding the limitations coming from base architecture. Seems to pose a mid/long-term existential threat.

What can we do to help improve things?

0

Funding Proposal: Open Media Network (#OMN) – Building Portable, Human-Centred Digital Commons

Hamish Campbell @info@hamishcampbell.com

https://nlnet.nl/fediversity Project Title Open Media Network (OMN): Portable Digital Commons for a Federated Europe Summary The Open Media Network (#OMN) is a real grassroots initiative to build sustainable, human-centred digital infrastructure aligned with the principles of the #openweb and the #4opens. To providing easy-to-use, hosted cloud services with service portability and freedom at their core - OMN focuses on creating living social ecosystems alongside technical […]

Read more →
0

I know this is going to be a hard lesson for people on the to learn, but here we go:

NOT EVERYONE ON THE FUCKING PLANET KNOWS HOW TO DO THE THINGS WE DO!

While I’ll take over , , and , some of y’all make it so difficult to just exist in a space without having to “well, actually” every fucking thing!

Understand that not everyone has all the answers (you sure as shit don’t) and treat people with some fucking grace and respect!

For fuck’s sake!

0
0
0

I have deeply mixed feelings about 's adoption of JSON-LD, as someone who's spent way too long dealing with it while building .

Part of me wishes it had never happened. A lot of developers jump into ActivityPub development without really understanding JSON-LD, and honestly, can you blame them? The result is a growing number of implementations producing technically invalid JSON-LD. It works, sort of, because everyone's just pattern-matching against what Mastodon does, but it's not correct. And even developers who do take the time to understand JSON-LD often end up hardcoding their documents anyway, because proper JSON-LD processor libraries simply don't exist for many languages. No safety net, no validation, just vibes and hoping you got the @context right. Naturally, mistakes creep in.

But then the other part of me thinks: well, we're stuck with JSON-LD now. There's no going back. So wouldn't it be nice if people actually used it properly? Process the documents, normalize them, do the compaction and expansion dance the way the spec intended. That's what Fedify does.

Here's the part that really gets to me, though. Because Fedify actually processes JSON-LD correctly, it's more likely to break when talking to implementations that produce malformed documents. From the end user's perspective, Fedify looks like the fragile one. “Why can't I follow this person?” Well, because their server is emitting garbage JSON-LD that happens to work with implementations that just treat it as a regular JSON blob. Every time I get one of these bug reports, I feel a certain injustice. Like being the only person in the group project who actually read the assignment.

To be fair, there are real practical reasons why most people don't bother with proper JSON-LD processing. Implementing a full processor is genuinely a lot of work. It leans on the entire Linked Data stack, which is bigger than most people expect going in. And the performance cost isn't trivial either. Fedify uses some tricks to keep things fast, and I'll be honest, that code isn't my proudest work.

Anyway, none of this is going anywhere. Just me grumbling into the void. If you're building an ActivityPub implementation, maybe consider using a JSON-LD processor if one's available for your language. And if you're not going to, at least test your output against implementations that do.

2
26
1

I started adding support for services and it looks like it's easier than I imagined it initially.

On the server side, implementing the proxyURL handler doesn't need any new additions as it shares 90% code with other handlers that return objects.

On the client side, I'm creating a new http.RoundTripper that can use the proxyURL transparently for the caller.

As a developer in your client code you only do a regular request for a remote URL, and the round-tripper handles the proxying part transparently if it has all the available bits: a server that supports proxyURL and a valid OAuth2 session towards that server.

0

If decentralization is the future of social media, where millions or even billions of people share knowledge, then we can learn a lot from how the Open Knowledge Foundation (@okfnOpen Knowledge Foundation) and the Wikimedia Foundation (@wikimediafoundation) built cross-border, international movements with clear missions.

These two organizations are just two examples, but they demonstrate an important point: decentralization worked because communities were intentionally nurtured, not just because the technology was open.

The Fediverse, powered by the ActivityPub protocol, already has the technical capacity to thrive (UI tweaks aside).

What we still lack is the decentralization of communities, including shared ownership, coordination, and a mission that extends beyond individual instances.

Cc @eloquenceErik Moeller @bjoernstaBjörn Staschen @_elenaElena Rossini 📍 FOSDEM

0
0
0
0

Will Mastodon, the platform that keeps the alive, miss a strategic opportunity to bring official institutions on board at scale?

By watching how is being marketed compared to , it certainly seems that way.

I wish the folks at Mastodon would invest in more professional marketing, similar to what we're seeing from its rival, Bluesky.

There was a major meeting in the EU Parliament focused on this topic, yet there was no announcement or microblog post from Mastodon. Zero engagement.

Compare these two approaches:

fed.brid.gy/r/https://bsky.app

0
0
0
0
0
0

FediMTL, on the fedi at @info is a new 1-day fediverse related conference in Montreal in just a few weeks on February 24 (is it Fedi-conference season or something?)

There's a streaming option, too! And the sessions look good. Check it out, and spread the word.

fedimtl.ca/#about

0
0
0
0

(1/3)

@laurenshof
> W3C membership structure concentrates formal power ... while the implementers who could counterbalance that power have largely opted out of the process

My impression is that like a lot of things, this is caused by a combo of;

* lack of time and energy among projects devs, most of whom still work as volunteers

* the tense atmosphere that persists in many dev collaboration spaces, like SocialHub (not pointing the bone, I'm no saint, and I recognise I've contributed to this)

(2/3)

My hope is that the chartering of a formal W3C Working Group to update ActivityPub will motivate devs to participate more in standards work. The promise of making concrete changes to the protocol specs might make it feel like less of a Boulder of Sisyphus. Plus, the prospect of working in a formally facilitated process, with fewer rubberneckers (like me), might mitigate any anxiety about discussions getting unpleasant.

0
0

It’s really surprising to me that the hasn’t agreed on a standardized way to open cross-instance objects and instead relies on links that open in the browser.

I found this proposal and what’s thinking… codeberg.org/fediverse/fep/src Which one would be your favorite?

(If anyone has updates on the progress, feel free to point me in the right direction)

0