@julian@community.nodebb.org
@julian@community.nodebb.org avatar

julian

@julian@community.nodebb.org

Hi! I'm Julian, one of the co-founders of NodeBB, the forum software you are using right now. I started this company with two colleagues, Baris and Andrew, in 2013, and have been doing the startup thing since (although I think at some point along the way we stopped being a startup and just became a boring ol' small business). In my free time I rock climb, cycle, and lift weights. I live just outside Toronto, Canada, with my wife and three children.

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

julian, to random
@julian@community.nodebb.org avatar

Finally, you are now able to look up remote content and user profiles using the built-in NodeBB search tooling.

In the quick search bar and on the search page itself, you can paste in a URL to a post. If NodeBB can fetch it using the ActivityPub protocol, then it will be immediately parsed and returned as a search result:

057bb06d-4108-4d1e-b715-61d32691959e-image.png

If you change the search type to "In users", or use the search bar in the users page, then you can look up remote users using their URL or handle:

2230f50f-bed2-4470-aa97-3037a7d13d02-image.png

This change resolves the final hurdle stopping a brand new NodeBB from connecting to the fediverse. It wasn't possible to actually find anyone or anything in order to start those first follow relationships. Now it is possible.


Aside — I'm frankly surprised by how long it's taken for me to actually do this. It goes to show you just how much you'll put off doing something if it's not really critical.

image/png

julian, to random
@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@snarfed.org'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 😆

julian, to random
@julian@community.nodebb.org avatar

As of today, the NodeBB-ActivityPub implementation now supplies both context and audience properties with every post.

N.B. When I say context and audience, these are also terms used by the ForumWG that refer to "topic" and "category", in NodeBB parlance.


Early indications from the last ForumWG meeting indicate movement towards the inclusion of context in a low-level as:Note object (a federated NodeBB post), resolvable as an as:Collection or as:OrderedCollection. The latter is what NodeBB will send, ordered by post time.

Discussions with @angus also suggest that Discourse has the ability to parse an as:OrderedCollection context if provided, but currently does not if encountered as a property in a Note.

A minor change today also updates the audience property, which used to erroneously point to the context/topic, but now points to the audience/category. This change aligns usage of this property with FEP-1b12's expectations.


This change should allow other implementors to:

  • automatically group objects together given a the provided context, and
  • more thoroughly backfill a given object's context, without relying on inReplyTo traversal
julian, to random
@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,
@julian@community.nodebb.org avatar

@arnelson Let me add you to the list-of-people-to-mention whenever something is scheduled 🙂

julian, to random
@julian@community.nodebb.org avatar

Unfortunately during today's ForumWG call, we did not have enough time to fully discuss @trwnh's desire to solicit feedback regarding the Fediverse UX for forums.

The next best thing is to collect those user stories via the fediverse and discuss again at the next meeting, so here we are!

@trwnh will start off the discussion with a reply here.

J12t, to ai
@J12t@social.coop avatar

Concerned about ? Overblown imho. Be concerned about people who might even consider doing something like this!

https://www.reuters.com/world/us-official-urges-china-russia-declare-only-humans-not-ai-control-nuclear-2024-05-02/

julian,
@julian@community.nodebb.org avatar

@J12t in an alternate reality where AI has control over the nuclear arsenal of every nation state... we'd then only be several steps removed from the TOS episode "A Taste of Armageddon", where an AI foregoes war completely and just vaporizes its own citizens after simulating war between another nation.

evan, (edited ) to fediverse
@evan@cosocial.ca avatar

Very happy to announce that @tomcoates and I have been given a grant to develop an end-to-end encryption (E2EE) protocol for DMs, including a reference implementation and a report to submit to the W3C SocialCG.

https://forum.summerofprotocols.com/t/sop-2024-pig-and-pog-grantees/1270

julian,
@julian@community.nodebb.org avatar

@evan how would this work alongside posts that are addressed to specific people, would this be an opt-in replacement?

julian, to random
@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,
@julian@community.nodebb.org avatar

@crazycells no, I will never use AI for this purpose.

Because the resulting content is in the title, it would be implicitly misattributed to the topic author, without their consent.

julian,
@julian@community.nodebb.org avatar

@jupiter_rowland said in Slightly better titles from fediverse topics:

Title@CommunityPost body

Thanks, I hate it.

I should say, rather, that I get why it was done, and bonus points for just getting it done, but it reads like so much like "hack it until it works" methodology that I feel like we ought to be better than that by now.

julian,
@julian@community.nodebb.org avatar

@rimu said in Slightly better titles from fediverse topics:

I like your method of stopping at the first '.', that would yield better results more often.

Thanks, it worked decently until I remembered that there were additional punctuation marks besides the lowly period.

So I had to add in support for ? and !, and update the logic to actually add those punctuation marks back in to the title.

... and yet there are more edge cases... some bot accounts post a title-esque first line along with a link, which needs to be teased out.

julian, to random
@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

maegul, (edited ) to mastodon
@maegul@hachyderm.io avatar

Reflecting on the firefish/calckey "moment"

which was about a year ago now, I can't help but suspect it was a small event with wider implications on the dominance of in the

I think it was the last chance to direct the twitter migration energy into discovering new/different fedi platforms.

And it was blown, with alt-social in a weird steady/waiting state that's smaller I suspect, than what many hoped for.

@fediverse

cntd: https://hachyderm.io/@maegul/112358202238795371

1/

julian,
@julian@community.nodebb.org avatar

@maegul at the end of the day Firefish burned brightly but quickly. It might be worth doing a post-mortem of it purely as a technical exercise because building a fediverse application has some unique constraints... though I imagine when you get down to it the failures may end up being the same social and/or technical failings you see anywhere else.

Sometimes I wonder how much their name choice (Calckey, specifically) set them back on their fedi speedrun.

After all, NodeBB isn't exactly a "hip" and marketable brand name 😬

julian,
@julian@community.nodebb.org avatar

@maegul said in Reflecting on the firefish/calckey "moment" ...:

And so all the promise of being big/serious was facade/hype.

But being honest here, who hasn't thrown out a few "company we's" in order to sound bigger or more established?

I did not see firsthand what happened (I guess I didn't follow the right people!), so I'm probably off. How much of it was bluster and when does it become problematic? Bluster is rewarded in the capitalist Americas, blech...

poppastring, to fediverse
@poppastring@dotnet.social avatar

I was looking at implementing with a while back, and I admittedly struggled and lost my enthusiasm for the project. However, I have found @mapache explanations and tutorials incredibly helpful and intuitive.

I am following his guide here: https://maho.dev/2024/02/a-guide-to-implement-activitypub-in-a-static-site-or-any-website/

DasBlog is not static so some of this does not apply, but enough does, and for the rest I can easily overlap gaps with the rich blogging engine. I am currently on step 5, this is happening!

julian,
@julian@community.nodebb.org avatar

@poppastring nice, go @mapache!

Your resources were not available (or maybe I just didn't know about them at the time), but this looks great!

julian, to random
@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
@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!

pfefferle, to wordpress
@pfefferle@mastodon.social avatar

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

Good job @julian

julian,
@julian@community.nodebb.org avatar

@pfefferle ah sorry, NodeBB cannot accept DMs at this time. Any chance you can message @devnull ?

julian,
@julian@community.nodebb.org avatar

@pfefferle the NodeBB community is updated to include @oplik0's commit, so you can try again 🙂

julian, to random
@julian@community.nodebb.org avatar

I may regret creating this topic but here goes.

If you experience a bug or other unexpected behavior while using NodeBB and its related ActivityPub integration, please post it here so it can be tracked and resolved.

No formal process as of yet, and we're still at pre-alpha so expect many things to be broken or unavailable 😅

julian,
@julian@community.nodebb.org avatar

@crazycells That's a good question, and not one I'm sure I have the answer for.

It's something I wonder about because it has been said that search engines will penalize sites that contain repetitive content. Does that mean we may see downweighting because federated content can be found word-for-word elsewhere? I don't know.

I think what might be a good practice would be for a site to refer back to the original site if available.

For example, if you inspect the source for this topic, you'll see that it contains a canonical reference:

<link rel="canonical" href="https://community.nodebb.org/topic/17867/pre-alpha-activitypub-related-bug-reports?page=3" />

If this topic appears elsewhere (and it does, on the ActivityPub SocialHub), then it would be better if that site also provided a canonical reference back to community.nodebb.org, but that's not a requirement anywhere at this point in time.

That way, a search engine upon encountering a site, would be able to learn the appropriate original source and weight it accordingly.

julian,
@julian@community.nodebb.org avatar

@crazycells said:

originally- I just made a comment in a topic, but there it looks like I opened a new topic

That one's because SocialHub (more specifically, Discourse's implementation of ActivityPub) does not automatically traverse up the reply-chain to discover the original post. The original topic pre-dates @angus and I syncing the categories together, so SocialHub does not know about the other posts in this topic. In that scenario, it will create a new topic like you saw.

julian,
@julian@community.nodebb.org avatar

@crazycells said in Pre-Alpha ActivityPub-related bug reports:

edited federated posts are not updated on other sites?

We're sending the appropriate activity out (an Update activity) whenever a post edit takes place.

I believe @oplik0 worked on this a bit, so if there are issues perhaps he may be able to speak to that.

However there is no guarantee that updates are properly handled across the fediverse. Best effort, I guess 🙂

julian,
@julian@community.nodebb.org avatar

@bh4@community.nodebb.org That's because that counter is not a real counter 🙂

I have not yet worked on allow-list or deny-list filtering of servers.

julian,
@julian@community.nodebb.org avatar

@nutomic hello! Hope it was a successful test 🙂

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