@phenomlab
no, ACP - admin/settings/general upload
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
Participantsin order of appearance
Dmitri, @[email protected] Angus, @[email protected] Julian, @[email protected] Rimu, @[email protected] Evan, @[email protected] Mattias, @[email protected] Emelia: @[email protected] a: @[email protected] 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 @[email protected] (in topic, paraphrased): Mastodon values microblogging UX and locked down their allowed html to satisfy this constraint, despite Hubzilla's pleas @[email protected] (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. @[email protected] (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: What SHOULD these things (Note & Article) be used for. 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 @[email protected] replied in-topic: "... we would like to improve how non-Note objects are processed/displayed in Mastodon." Julian mentions a compromise put forth by @[email protected] 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 @[email protected] (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 (@[email protected]) 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 @[email protected] and @[email protected] will update the respective handles of their categories to reflect the new working group name @[email protected] to collate responses to Article vs. Name among implementors, supply recommendation at next meeting. @[email protected] to collate responses re: Group federation among implementors, continue discussion next meeting @[email protected] to solicit feedback asynchronously via the fediverseUnfortunately during today's ForumWG call, we did not have enough time to fully discuss @[email protected]'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!
@[email protected] will start off the discussion with a reply here.
Hey @[email protected], how can I add events to the SWICG calendar? I notice there's a little button to include "Task Forces" in the listing, so I think listing our meetings would be helpful, now that we've settled on a more consistent time/day-of-week.
cc @[email protected] (unrelatedly, do you get notified if I mention your SocialHub handle?)
There have been some scattered discussions I've seen over the past year that mention that @[email protected]'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.
@[email protected], 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.
Does the NodeBB PWA app send push notifications? We hope to have this feature for our new forum.
The browser console displays an error:
Failed to load resource: net::ERR_BLOCKED_BY_RESPONSE.NotSameOrigin site-logo-x50.png:1
3d5d145d-eef5-4993-90c0-6c2f761dc97c-image.png
{confirm_link} is http://{ip}:4567/confirm/d93e04d7-9c6b-4016-991d-688970538da6 instead of http://domain.com/confirm/d93e04d7-9c6b-4016-991d-688970538da6
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 😅
Hi,
We have successfully deployed NodeBB on 1 machine with 3 NodeBB processes on the same machine at different and using nginx to load balance between the 3. We are using MongoDB as the database, and have also setup redis for inter-process communication.
Now we plan to add another machine to further increase user capacity. Both machines will have 3 NodeBB processes each. We have the following questions:
Do we start the NodeBB processes on the machine 2 and have the same redis server in the config so the processes can communicate? Do we set isCluster to true? How do we make a MongoDB replica? Do we add the IPs of both mongo instances in the config file of nodebb on both machines?Any help will be appreciated. Thanks!
Nodebb is using express for the API, right?
Link Preview Image hyper-expressHigh performance Node.js webserver with a simple-to-use API powered by uWebsockets.js under the hood.. Latest version: 6.16.0, last published: 15 hours ago. Start using hyper-express in your project by running `npm i hyper-express`. There are 12 other projects in the npm registry using hyper-express.
faviconnpm (www.npmjs.com)
My company just did some performance testing for our own API, and this package blew express away. It was a drop-in replacement for us.
If I wanted a function that strips certain words from the .content p (post) fields (removes them at DB level), what would be the best way to achieve this? I am pulling an RSS feed that contains text I'd like to remove (this is a private site I am running designed to work as a security feed), and I'd rather have the URL pretty formatted, but of course, it will not render because of the other text on the same line.
Any ideas?
Thanks
Hi,
I have noticed that the number of hits changes, for example for individual visitors in the last week or the last month. Here are two screenshots that were taken within 24 hours. As you can see last week shows 4k less users than one day before. Can anyone explain this?
cc8cf2cf-0815-45f1-9a63-1c17fefb4309-grafik.png
1ad5ad4d-ef42-4db1-b9d1-480d8be45135-421e48ba-258f-40be-a03c-8065ee2dddc9-grafik.png
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...
Full-text searching for NodeBB using Meilisearch. Contribute to oplik0/nodebb-plugin-meilisearch development by creating an account on GitHub.
faviconGitHub (github.com)
This plugin allows you to use Meilisearch as search backend instead of the database or Solr (see this topic for why some want to switch)
InstallationInstall via plugins page in the ACP or run this command in NodeBB folder:
npm install nodebb-plugin-meilisearch Configuration install this plugin via ACP or by running npm install nodebb-plugin-meilisearch Activate in the plugins page (note: make sure dbsearch plugin is disabled) Rebuild and restart NodeBB Check that the plugin successfully connected to Meilisearch and adjust the connection settings in /admin/plugins/meilisearch if necessary. Meilisearch should start indexing all posts as soon as it connects for the first time, but if that didn't happen you can start reindexing from the ACP page Adjust other search settings as you see fit. Defaults should be good enough for most use cases though. Notes This plugin requires a Meilisearch instance or the same server or somewhere else your NodeBB instance can access This plugin conflicts with other search plugins and will not work if nodebb-plugin-dbsearch is active While it should work fine, note that it's still not well tested. User beware 🙂Hello, first of' thanks for the amazing work !
For the context: I'm a junior developer from France, so excuse my english (and my limited understanding of everything lol). I was looking for a software alternative to build a forum RPG. I just installed NodeBB on Ubuntu 20 (Focal) working on WSL 2. I'm using redis and want to write plugin using typescript.
It would be great to have a guide version of the Quickstart plugin in typescript !
I know its possible to write plugin in typescript, the emoji plugin does that. But it would save me so much time to have a guide that explain the extra step we need to do in order of compiler and make it work on NodeBB.
Here's my questions tho:
Is it in the roadmap team of NodeBB to document how to write plugin in typescript? Did the team plan to write a typescript version of NodeBB?Although it would be great to have some more advanced example right in the documentation on how to do something and what are the step to make it work.
Like here : https://community.nodebb.org/topic/16994/how-do-i-add-custom-user-fields-to-my-theme
Like "if I want to add/ change something, I have to think of the scope of this features and what's need to be modify in other file to be working properly". Or at least, say it in the documentation a little bit more straightforward. So that beginner will understand that first sight. But I think examples are more worthy than tons of words.
Is it possible for beginner to contribute on the documentation to make it more specific and understandable for beginners, or is it a documentation for more experienced developers and a choice of the team (and don't want to change that)?
Is it because from a plugin to another, things might be working so differently that it's not worthy to do a more detailed documentation ?
Because people might be wanted to write plugin over time, mutualisation of knowledge would be great, so that might simplified the process of each developer trying to write plugin have to go throw investigations to understand how NodeBB works before even start to develop the actual plugin.
For example: How to interact with the database explain in this answer: https://community.nodebb.org/topic/17657/best-way-to-store-plugin-data-in-database-in-context-of-compatibility/2?_=1714543873650 for me this should be in the documentation.
In conclusion, I feel like in general people agree that it's difficult to start writting plugin without investigate and dive in the structure file of the source code. I'm willing to help on that make it easier to really understand how NodeBB works for developer. So that anyone not familiar with the source code can start almost immediately customization. :emo:
Hi!
I'm using NodeBB 1.17.1 running behind nginx reverse proxy.
All is good enough except one thing: sometimes link to forum logo for example in account confirmation message is malformed and starts with
http://localhost:4567/assets/...Instead of
https://mydomain.tld/assets...How to fix the issue?
What do you think about moving the entire NodeBB view to React? And yes, the view layer is separated from the server and everything communicates via the API. Creating styles in ReactJS is much more modern and exciting 😄
When developing a nodebb plugin, is it possible to develop and deploy plugin with typescript and then compile it with js?
I have also roughly checked the nodebb core source code, and I expect that there will be no major problems if I deploy the plugin using js build after developing ts. However, is there any experience or advice on developing and distributing the nodebb plugin using ts?
Link Preview Image Eventual migration to TypeScript@julian I think it might be possible with some build tooling magic... Importing plugins using CJS is as you mentioned the easy part - await import() works bo...
faviconNodeBB Community (community.nodebb.org)
Link Preview Image Adding TypeScript-support to your Node.js projectMany Node.js projects will reach a level of complexity where we'll often find ourselves wondering... Tagged with node, typescript, javascript, tutorial.
faviconDEV Community (dev.to)
Link Preview Image Node.js, require.main === moduleIn Node.JS document, I found a sentence said When a file is run directly from Node.js, require.main is set to its module. That means that it is possible to determine whether a file has been run
faviconStack Overflow (stackoverflow.com)
Link Preview Image require.main.require imports do not work · Issue #19117 · microsoft/TypeScriptTypeScript Version: 2.6.0-dev.201xxxxx From: microsoft/vscode#35489 (comment) Code const myModule = require.main.require('./file.js') Run go to definition on myModule Expected behavior: Goes to defintion of myModule Actual behavior: Noth...
faviconGitHub (github.com)
Greets All:
Previously only used Redis but bringing up some new forums what will likely have sizable user base. Seems:
Redis may be phased out at some point These forums will be much busier than my Redis based.Hence I am looking at alternatives. Note PostgreSQL support got committed. Kudos to the folks responsible for that. I am a seasoned systems engineer/admin and neither intimidate me, although I've only "played/tested" w/Mongo and never used in production.
Given the above, would those familiar, preferably with each, please share pros and cons of their experiences and any other relevant insights w.r.t. current NodeBB?
TIA-- o/
-
General Discussion
A place to talk about whatever you want
-
NodeBB Development
Stay tuned here to hear more about new releases and features of NodeBB!
-
-
NodeBB Themes
A public listing of community themes created by the NodeBB community. -
Technical Support
Need help with installing or configuring NodeBB? Look here.