@devnull@crag.social cover
@devnull@crag.social avatar

devnull

@devnull@crag.social

Co-Founder (@nodebb) & Instance admin of crag.social | Husband 🤷‍♂️ and Dad 🙉 to three | Rock Climber 🧗‍♂️ | Foodie 🥙 | Conductor 🎵 | Saxophonist 🎷

✅ Small teams craft better code.
🗨️ Federating NodeBB (in-progress) with funding from #NLNet ♥️🇪🇺

#fedi23 #linux #foss #opensource #webdev #nodejs #music #conducting #rockclimbing #yyz

This profile is from a federated server and may be incomplete. View on remote instance

julian , to Random stuff
@julian@community.nodebb.org avatar

Wrote a post today and @mike's Flipboard.social sent this back LOL

2024-05-21T15:29:20.513Z [4567/3367934] - warn: [activitypub/send] Could not send Create to https://flipboard.social/inbox; error: I'm a teapot

Sorry Mike, I prefer coffee though. Trouble in ops-land today?

snarfed.org , to Random stuff
@snarfed.org@snarfed.org avatar

Bridgy Fed status update time! It’s been a busy couple weeks. I’m happy to report that I’ve made solid progress on three of my four goals from last time – reliability, delays, and bugs – and improved a number of other things along the way. Here’s a sampling:

Apart from the firehose, one notable area I haven’t focused on yet is infrastructure. It’s scaling ok so far, but it could be a lot better, and a lot more efficient. I’ll need to work on that soon. If you see a bit of time go by without many user-visible improvements, that’s probably what’s happening.

Otherwise, thanks for all the feedback and questions and bug reports! Please do keep them coming. As always, you can follow the now label in GitHub to see what I’m focusing on. See you on the bridge!

julian , to Random stuff
@julian@community.nodebb.org avatar

At the last ForumWG meeting, we discussed at length about Article vs. Note, and whether there was a desire to expand usage of as:Article. You can review those minutes here.

One of the action items that came out was to collate the state of current implementations. Unfortunately, outside of implementations that federate non-textual content (e.g. Pixelfed Stories, Mobilizon Events, etc.), the majority of implementors just use as:Note, which is not surprising given Mastodon's treatment of non-Note objects.

You can see the results of the summary here.


What is less clear is whether there is pent-up demand for use of a different data type for more richly forrmatted content. @mikedev and @jupiter_rowland provided some very illuminating history behind previous attempts to use as:Article, but importantly it seems that Mastodon (via @renchap) may be open to supporting this in some form as well.

While Mastodon has every reason to display as:Note as it sees fit, I'd like to hopefully address the undue influence towards using it especially in instances where as:Article were more appropriate. Mike (upthread) suggested a compromise:

  • that as:Note be reserved for content with attachments (images or otherwise), perhaps with a limited subset of html
  • and as:Article be used for content with a richer set of html (e.g. tables), and including the ability to display inline images

I explicitly did not specify that Note was for shorter content and Article for longer, because there exist plenty of examples of the reverse.

Does anybody see potential complications from such an arrangement?

julian , to Random stuff
@julian@community.nodebb.org avatar

My post from a couple weeks back indicated that NodeBB started following part of FEP-7888: Demystifying the context property.

Our implementation is an endorsement of @trwnh's proposal that the context property be given additional formalization.

During the last ForumWG call, they intentionally (or perhaps unintentionally) summarized their desire that implementors should "just use collections", and that that would be a good starting point for future iteration.

With the current state of context being "there is no coordinated usage of context", this topic aims to provide a snapshot of implementors' use of that property (or lack thereof), and to stimulate further discussion on potential use cases.

Note that this is not the first time the question has been raised. trwnh's discussion topic contained one such summary of current implementations.

As per that topic:

  • Mastodon — does not use context, but provides an ostatus:conversation property
  • Pleroma/Akkoma — uses context, but the url provided is unresolvable, likely used similarly to Mastodon
  • Streams (@mikedev) — uses context, resolves to an OrderedCollection containing all activities encontered (Creates, Updates, etc.)

My hope is that a provided context resolving to a Collection (or subtype thereof) would allow for proactive topic backfill, instead of relying on reply chain traversal, which while workable, has some rather specific downsides.

As mentioned per the above linked announcement that NodeBB was following FEP-7888:

  • We attach context to all Note objects (NodeBB posts), and it resolves to an OrderedCollection that contains the uris to the other objects in the context (the NodeBB topic).
julian , to Random stuff
@julian@community.nodebb.org avatar

I'm confused about a particular aspect of Inbox Forwarding as detailed in the ActivityPub spec:

... the server needs to forward these to recipients that the origin was unable to deliver them to. To do this, the server MUST target and deliver to the values of to, cc, and/or audience...

... The server MUST only target the values of to, cc, and/or audience on the original object being forwarded, and not pick up any new addressees whilst recursing through the linked objects (in case these addressees were purposefully amended by or via the client).

Emphasis mine.

My reading suggests that only the values of to, cc, and audience on the referenced object should be used, and not those values on the activity itself.

But doing so would preclude the use of Inbox Forwarding in scenarios where the Activity wrapper contains additional addressees that the underlying object does not have.

e.g. A Note by A contains a single addressee: as:Public. It is then Announced by B and C. Later, A updates the Note, and their server sends out Update(Note) with the following addressees: as:Public, B, B/followers, C, C/followers, but the object referenced still contains a single addressee: as:Public.

In that case, when received by B and C, should they forward the activity to their followers?

thisismissem , to Random stuff
@thisismissem@hachyderm.io avatar

@julian hey, how does NodeBB federate things like categories with posts?

julian ,
@julian@community.nodebb.org avatar

Current implementations of ActivityPub are passive. You follow people, content comes in, and you build a context around it based on what you already know.

The long view here is that an active means of content discovery should be possible, and the first step to doing that is maintaining a both a context and audience at the object level, but also to have higher-level collections be backreferenceable to those same objects.

audience being a Group and not an OrderedCollection potentially makes this problematic, but... one problem at a time. Maybe this is where the streams property could work, who knows.

@thisismissem @trwnh

Jeremiah , to Random stuff
@Jeremiah@alpaca.gold avatar

Hey @MDN, with Stack Overflow’s ongoing community implosion, now would be an excellent time to launch MDN Answers so people have a better place to help each other learn.

https://answer.apache.org/

Edit: Or @nodebb / other ActivityPub-enabled forum/threaded discussion community server software

julian ,
@julian@community.nodebb.org avatar

@liaizon honestly I'm interested in this purely just to see how badly Mastodon will muck things up if I start sending NodeBB Q&A topics as a Question activity, because Mastodon currently uses it for Polls.

But they don't have a monopoly on using it, and I can make the argument that my use case is more in spirit to the protocol 😸

J12t , to Random stuff
@J12t@social.coop avatar

Finally I'm getting around to listen to @mike 's Dot.Social episode with @rklambo and @pcottle from , talking about .

Mike asks the most important question first: "why are you [Meta] doing this [Fediverse integration]?"

[cont]

julian ,
@julian@community.nodebb.org avatar

@J12t said in Finally I'm getting around to listen to @mike 's Dot.Social episode with @rklambo and @pcottle from #meta, talking about #threads.:

Rachel: one of the challenges with the fediverse is: how do you figure out where your content went, and how can I follow that conversation that now exists on multiple different servers?

Something ForumWG is actively researching at present. A lot of the fediverse is built on reply chains, fragmented ones, but there's a better path forward, and we're figuring out just how to do it.

You shouldn't ever have to "view original post" except out of a sense of curiosity.

julian ,
@julian@community.nodebb.org avatar

@J12t follow the category here: @swicg-threadiverse-wg (although the handle will change at some point) for latest updates and discussion 👍

dansup , to Random stuff
@dansup@mastodon.social avatar

Anyone building a federated Stack Overflow?

julian ,
@julian@community.nodebb.org avatar

@benpate said in Anyone building a federated Stack Overflow?:

Personally, the "accepted answer" is the killer feature. Dunno if NodeBB, Kbin, or others already support this.

Yes! NodeBB's been around for a decade, we have tons of stuff that got built because people wanted it.

So yeah we have a plugin that already does full question-and-answer support. We use it on our forum: https://community.nodebb.org/category/16/technical-support

Note the "solved" and "unsolved" labels, and descending into a solved topic, you'l see the accepted answer floated to the top.


NodeBB's theme and plugin engine is very flexible, so it is feasible to stand up a StackOverflow clone rapidly.

box464 , to Random stuff
@box464@mastodon.social avatar

Flipboard has created a newsletter on LinkedIn called “Fedicurious”. The fediverse has made it to LinkedIn.

Recently, they did a webinar on how federation works in Flipboard geared to content creators.

https://youtu.be/Skv7eKIDxqE

julian , to Random stuff
@julian@community.nodebb.org avatar

You know what I just noticed about @mike's DotSocial podcast? The introductions are always succinct and to-the-point. There's no 30-second "John Smith spent 15 years at X doing Y with Z, and revolutionized foo by barbaz, and is also on the board of Fizzbuzz. He is a leading champion for..." blah-de-blah-blah.

Take @snarfed.org@fed.brid.gy's introduction:

The beauty of an open system is that anyone can build on top of it, and try to make it a better place, in the fediverse, software engineer Ryan Barrett is one such developer. Most recently, Ryan built a bridge to connect Bluesky, which uses the AT Protocol, to Mastodon and other platforms, using the ActivityPub protocol. He wanted to advance the fediverse's promise of interoperability. His work ignited a firestorm, revealing learnings, lessons, and insights discussed today.

I never realized how often meaningless polished intros happens on podcasts, radio shows, TV interviews, etc., because I've just learned to tune it all out.

... or maybe it's because if you're an ActivityPub dev, Ryan needs no introduction :laughing:

julian , to Random stuff
@julian@community.nodebb.org avatar

Please see below for minutes from today's Forum and Threaded Discussions Task Force monthly meeting.

Apologies in advance if I misrepresented anybody or missed any crucial bits of information


Participants

in order of appearance


  • Dmitri invited participants to the regular SWICG call tomorrow; best place to be informed of upcoming events: SocialCG calendar"please come by, it is free for everyone to join or listen in"
  • Angus provided an update to the working group's inclusion under the banner of the Social Web Incubator Community Group (SWICG), revised name would be the Forums and Threaded Discussions Task Force, or "ForumWG" for short.
  • Julian provided an update on this past month's usage of the fediverse to hold asynchronous discussion, a number of threads have been started on the respective forum categories (both of which federate out) for the working group pertaining to discussions re: agenda items, and have been fairly well received.
  • Angus and Julian will update the respective handles of their categories to reflect the new working group name

"Lay of the Land" survey reports

  • Angus: The general spirit of these surveys is 'these are the existing X approaches, the plurality may indicate the need to converge'
  • Nomenclature
    • Rimu: Document continues to be expanded upon
    • Evan re-iterates that it is unlikely any implementors will change their nomenclature to match
    • Angus asks whether participants find utility in the list
    • Evan indicates that whatever is decided upon is best used "on-the-wire", Julian agrees and notes that the agreed-upon terminology would be used in the "Definitions" portion of any report written by ForumWG; suggests the list may be best kept as a living reference
    • Rimu indicates that as the list grows, alternative ways to represent the data may be required
    • Round of applause for Rimu for taking the initiative to start (and now maintain) the list
  • Object Type (Article vs. Note vs. Page)
    • Impetus for topic: WordPress sending out as:Note when as:Article would be more suitable
      • @jupiter_rowland (in topic, paraphrased): Mastodon values microblogging UX and locked down their allowed html to satisfy this constraint, despite Hubzilla's pleas
      • @mikedev (in topic, paraphrased): Raised issue in 2017 to address issues with inline images being removed. Suggested a compromise: treat Article and Note differently (Note, text only with attachments; Article, full HTML) — Eugen 7 months later closed issue with change to further hamper treatment of Article, by showing only title and link back to source.
      • @pfefferle (in topic): "You can choose 'Note' if you want to have the best compatibility"
    • Evan: Whether a note or article is federated, it shouldn't hamper implementation; but as:Page should not be used
    • Mattias: Choice is given to user as to how WP maps the native Post object to ActivityPub. Historically sent out Article but received a lot of pushback from early adopters. Difficult to reconcile UX with technical limitations
    • Evan: "An as:Note is a Tweet (we just couldn't call it that), an as:Article is a blog post"
    • Emelia: "Should software publish different objects based on content length, even if using the same mechanism?"
    • a: Big picture view — it doesn't seem complicated, but it is, because the line between them is completely arbitrary.
    • Mattias: We try to autodetect (no headers, content length, etc.), would prefer different content types based on what users write, but the advantage is being able to read content natively on the user's platform of choice
    • Dmitri: "I think we've got several questions in parallel:
      1. What SHOULD these things (Note & Article) be used for.
      2. What to do about Mastodon who only seems to consume Notes."
    • Emelia: Don't Articles usually have titles?
      • Everyone else: crickets (made us think!)
    • a: https://wiki.trwnh.com/tech/spec/activitypub/confusion/note-vs-article/ (also indicates using title to discriminate Article vs. Post isn't 100%)
    • a: The reason we're talking about this is because of various differring implementations - for example, in one implementor's mental model, you have a thread with a title and that is separate from the posts contained within; posts that may also have titles of their own. How do we reconcile this?
    • Julian and Rimu note that @renchap replied in-topic: "... we would like to improve how non-Note objects are processed/displayed in Mastodon."
    • Julian mentions a compromise put forth by @mikedev where Notes are smaller pieces of content with limited markup and attachments, and Articles are (sometimes) larger pieces with formatting, inline images. Additional survey/spreadsheet to be created, but we could as a group (Mastodon included) converge on a path forward and a report to the SocialCG could be authored. To be continued next month.
  • Group Actor characteristics
    • 1b12 - announcing the activities of their actors, this is what Discourse and NodeBB do, other implementations have taken this approach
    • @nutomic (paraphrased): "intent of 1b12 is to describe the existing status quo"
    • 400e - Pubicly appendable collections; Picked up by a few other folks, also potentially Mastodon (with their new groups implementation)
    • How do we treat group actors in forum/threaded implementations?
      • a: 400e - Groups send Add activities, 1b12 - Groups send Announce activities, otherwise, a Group could even send regular Creates (editor's note: this is a dramatic simplication of the actual post here)
      • Evan: announce style makes the most sense, understanding that folks use both - suggestion: document both but let consumers know they'll see one or both
      • Rimu: Implementors can make opinionated decisions on how it should work, and adjust based on the reality of how the major players adopt
      • Angus will continue collating responses into a spreadsheet re: group implementations
  • Open item: feedback on desired UX (@trwnh)
    • Can a group be multiple different things? e.g. a context/thread has some recipients, a context could be an actor. How forums choose to (or could) represent these relationships via ActivityPub is what is currently being solicited
    • a: Boils down to "Collections, please use them", but best to start foundationally: Notes in Collections, first.
    • Due to lack of time discussion of this will take place asynchronously on the fediverse: https://community.nodebb.org/post/99491 (if this does not open in your client, paste it into the search box)
    • Julian provided one user story: "If you want to share a context to others, one should share the higher-ordered collection, and not what we do today, which is to share the url/object uri for OP."
      • A suitable implementation could see that and backfill the entire context locally, and redirect the user to the first object.
    • Angus noted that Discourse already has some support for Collections, will provide details async on forum topic (linked above)

Action Items

  • @angus and @julian will update the respective handles of their categories to reflect the new working group name
  • @julian to collate responses to Article vs. Name among implementors, supply recommendation at next meeting.
  • @angus to collate responses re: Group federation among implementors, continue discussion next meeting
  • @trwnh to solicit feedback asynchronously via the fediverse
julian , to Random stuff
@julian@community.nodebb.org avatar

An update from last night brings some additional logic to the title generation of topics from the fediverse.

Previously if a title was provided in the name property, that was used as the topic title.

While that hasn't changed (and is the strongest signal for a topic title), not all fediverse content contains titles. Specifically, Mastodon posts do not require or even have a space to put a title in.

For those cases, we fall back to generating one based on the content. We literally grabbed the first 128 characters or so, and added an ellipsis to the end.

While that worked okay as a stopgap, it meant that a lot of topics ended up with really long titles — not ideal.

The new logic tries to grab the first line of text (either the first <p> or line), and from there, the first sentence, using some naive regular expressions.

While still not a proper alternative to... you know... specifying a title, it's better than nothing I suppose!

I wonder if other fediverse softwares implement title generation logic like this...

julian , to Random stuff
@julian@community.nodebb.org avatar

So I have an unreadable notification on slack, because I'm a cheapskate and don't pay for it:

cdbd601b-84ff-47b5-9890-117431c7b4d0-image.png

... and now my taskbar icon will just have a red dot forever, thus rendering it completely useless. Excellent.

81552386-6487-4953-a192-a9fb24fc56fe-image.png

image/png

julian , to Random stuff
@julian@community.nodebb.org avatar

There have been some scattered discussions I've seen over the past year that mention that @pfefferle's WordPress ActivityPub plugin federates their blog posts out as an as:Note, and that the only reason this is done is because Mastodon only treats as:Note (and as:Question) as a first-class object and relegates anything else to a fallback handler that takes a short snippet of the content, and shows a link back to the original source, thus losing any in-app benefits (boosts, replies, etc.)

Whether this is actually true or not, I do not know. So that's why I'd like to ask Mattias — or anybody else with some context — here.


For reference:

  • as:Article: Represents any kind of multi-paragraph written work.
  • as:Note: Represents a short written work typically less than a single paragraph in length.
  • as:Page: Represents a Web Page.

I have also noticed that Lemmy, perhaps out of principle, sends out an as:Page for new generated content, and only the replies federate out as as:Note. It has unfortunately led to some assertions that Lemmy's federation is "broken", even though it is arguably not the case.

@nutomic, care to weigh in?


I don't even blame Mattias for opting to send everything out as as:Note.

End of the day right now it doesn't matter how Mattias or Nutomic represent their higher-level collection of data, because Mastodon is the largest implementor and neither they — nor anyone else I know of, for that matter — treat anything that's not as:Note or as:Question specially.

But that ought to change. The question is how, but this WG is not at the point where we start throwing around decrees and making up standards.

What's important to me right now is what the landscape looks like right now, and why that is the case.

N.B. The discussion here will eventually make its way to online real-time discussion at one of the future WG meetings.

julian , to Random stuff
@julian@community.nodebb.org avatar

Had a chance to listen to @pfefferle on WeDistribute's Decentered podcast. Surprisingly informative, and eye opening just how locked down shared hosting providers are.

Things we take for granted like the ability to mount routes on /.well-known (they could be blocked!)... or that you can't always assume cron is available.

https://wedistribute.org/podcast/wordpress-matthias-pfefferle/

Having used a VPS for years, I would never go back to shared hosting, but you definitely cannot argue with the convenience, ease of use (CPanel, et al.), and most of all, value for money. However, those three come with significant trade-offs in terms of flexibility and power.

Kudos to you Mattias for having the patience to try to get those shared hosting providers to change. If I were in your shoes I'd just tell them to hop on over to a different provider!

firstyear , to Random stuff
@firstyear@infosec.exchange avatar
pfefferle , to News from fediverse
@pfefferle@mastodon.social avatar

Oh nice! Following a blog using is working like a charm!

Good job @julian

julian ,
@julian@community.nodebb.org avatar

Thanks @pfefferle! All I did was implement the protocol as many others have done. Half the credit would go to you as well for the other end of the integration!

It is really cool to be able to follow a blog from a forum. Are comments from the fediverse integrated?

pfefferle OP ,
@pfefferle@mastodon.social avatar

@julian The plugin federates posts and comments.

But for now, a WordPress User can only be followed, I have no idea how to implement the following part nicely (yet).

pfefferle OP ,
@pfefferle@mastodon.social avatar

@julian btw. I would love to understand/support how NodeBB handles categories and groups!

julian ,
@julian@community.nodebb.org avatar

@pfefferle I think there's a bit of a push to provide a full fediverse client (that includes two-way interaction between users). That's what the NodeBB integration is trying to do — to be that all-in-one fediverse client.

But the reality is there's no reason you have to do that. Simply federating content out and maybe ingesting responses back as comments would be a feature complete integration as far as I'm concerned! Anything else is gravy.

julian , to Random stuff
@julian@community.nodebb.org avatar

Does anyone know what the most broadly implemented standard is for signalling that a web page has an alternative ActivityPub endpoint?

What I found online (and with @evan and @silverpill's input) was to deliver a Link header and set a <link> tag, but it doesn't seem to work (at least with Megalodon)...

julian , to Threadiverse Working Group
@julian@community.nodebb.org avatar

To refresh your memory, you can read the minutes of last week's meeting.

Please see @angus's note below regarding agenda preparation for the May WG meeting

Follow up

  1. The Social Web Community Group approved our application to turn this into a Task Force.
  2. Async work will happen across any federated platform followed by either (or both) of these categories

Next Meeting
We're going to have our next meeting in the first week of May.

Time
Please vote in our meeting poll. Whatever time we decide for this one, we'll aim to keep as our regular monthly slot.

Agenda
Please see this google doc. Everyone has comment permission. Julian will incorporate comments into the agenda.

Looking forward to seeing you at the next meeting!

My apologies for the delay. Angus and I have been working these past few weeks to hammer out some federation issues between our respective forum categories (the ones mentioned above re: async work.)

sam , to Random stuff
@sam@social.coop avatar

Is there any / fediverse software for forums?

I am not looking for Reddit alternatives (ie. not Lemmy, although, to be quite honest, I'm not really sure if or why that's different, but they feel fundamentally different from eg. Discourse or phpBB to me, interesting thing to think about later, I suppose).

julian ,
@julian@community.nodebb.org avatar

Hi @sam, it's very early days but Discourse and NodeBB have both been working independently on their respective ActivityPub implementations.

As of perhaps a month ago, the two started working together (along with Daniël from Flarum) as part of the SWICG Threaded Discussions and Forums task force.

As of this week, NodeBB and Discourse can synchronize categories with each other. Discourse has category actors, NodeBB has both user and category actors, plus content discovery via a dedicated route.

Happy to discuss more, but suffice to say this year is going to be big for forums on the fediverse!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • Mordhau
  • WatchParties
  • Rutgers
  • steinbach
  • Lexington
  • cragsand
  • mead
  • RetroGamingNetwork
  • mauerstrassenwetten
  • loren
  • xyz
  • PowerRangers
  • AnarchoCapitalism
  • kamenrider
  • supersentai
  • itdept
  • neondivide
  • space_engine
  • AgeRegression
  • WarhammerFantasy
  • Teensy
  • learnviet
  • bjj
  • khanate
  • electropalaeography
  • MidnightClan
  • jeremy
  • fandic
  • All magazines