Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XMPP: Post to PubSub #1686

Open
sjehuda opened this issue Apr 17, 2024 · 12 comments
Open

XMPP: Post to PubSub #1686

sjehuda opened this issue Apr 17, 2024 · 12 comments

Comments

@sjehuda
Copy link

sjehuda commented Apr 17, 2024

Greetings!

In XMPP, using PubSub(1) (XEP-0060), it is possible to store posts as Atom Syndication(2) entries into XMPP(3).

There are several XMPP extensions that apply it, namely XEP-0227 (4) and XEP-0472 (5) which make node xmpp:microblog:0 as a common choice to manage news for client accounts (e.g. blog@moinmo.in), yet a component account (e.g. pubsub.moinmo.in) may use all of its nodes for this purpose.

pubsub.moinmo.in/
|
|-- updates/
    |-- Sombre
     `-- Varied
|-- releases/
 `-- events/
pubsub service/
|
|-- node/
    |-- item
     `-- item
|-- node/
 `-- node/

I have made a script that realizes viewing PubSub node items as Atom XML feeds over HTTP.

  1. XEP-0060: Publish-Subscribe
  2. RFC 4287: The Atom Syndication Format
  3. Atom Over XMPP
  4. XEP-0277: Microblogging over XMPP
  5. XEP-0472: Pubsub Social Feed
  6. PubSub Over HTTP
@ThomasWaldmann
Copy link
Member

Maybe don't assume that people are familiar with this and describe it from a "how is this useful" perspective.

@sjehuda
Copy link
Author

sjehuda commented Apr 18, 2024

XMPP -> PubSub (XML) -> Atom (XML)

PubSub + Atom = Functional website hosted on XMPP

There are several observations:

Note: I am well aware that VPS can coast as low as $3 a month.

  1. People who do not want a website, or have specific type of contents they do not want to publish on an HTTP website, and want to utilize a moin CMS and associate their content with their personal XMPP account, either by making it publicly available or only for their contacts to read.
  2. XMPP server administrators who would want to:
    (a) Use their XMPP instances as a CMS, and so they can use dedicated PubSub nodes where they publish news that are of the interest to their users.
    (b) Provide their XMPP instances as an extra service of which people who hold XMPP account on those servers would have a CMS system of their own.
  3. Portability: Sharing data over PubSub (namely in Atom Syndication Format) would provide a standard fashion to convey data to any other platform from it, be it to Movim or to a feed reader (provided it can communicate with XMPP).

Mr. Kevin Cox of statit has made the following argument of post processing (after deployment):

I don't see the advantage of integrating this into statit.

I have a very similar workflow with pinging WebSub hubs about the feeds after a deploy. However I just do this with a curl command after the deploy step.

For which I have suggested to use PubSub nodes as both a mean of publishing and a mean of storing source files, which makes it also as a backup and synchronization solution:

Publishing node <- Public or restricted to certain JIDs
|- Item (ID: 0001)
  |- Atom entry (HTML inside)
|- Item (ID: 0002)
|- Item (ID: 0003)
|- 

Management node <- Private only to the account owner.
|- Item (ID: 0001)
  |- Source file
|- Item (ID: 0002)
|- Item (ID: 0003)
|- 

Currently, only two platforms are offering a user-friendly view of PubSub are Movim and Libervia and both are web based.
Yet, the more CMS software to implement PubSub, the more desktop clients would add support for PubSub.

The basic solution I offer is not the best, yet is sensible, in a form of providing a web interface to fetch content from pubsub node and display it as HTML or as XML (converted into HTML using an XSLT stylesheet) which is readable with a feed reader.

@sjehuda
Copy link
Author

sjehuda commented Apr 21, 2024

I have elaborated on it at xenocrat/chyrp-lite#250 (comment) (CMS based on PHP).

Thursday, I am expected to participate in a virtual meeting with Backdrop CMS (also CMS based on PHP) about the matter. I would want to record the session and use it as a good presentation of explaining the matter.

I surely hope to have a CMS with support for PubSub very soon; and when there would be a working CMS of both HTML (CMS) and XML (PubSub) it would be easy to refer to it as a working example.

@RogerHaase
Copy link
Member

I think @sjehuda is an AI experiment. Are there bots filling GitHub with fake projects and creating fake issues on existing projects?

@sjehuda
Copy link
Author

sjehuda commented Apr 21, 2024

@RogerHaase, good day (it is evening here)

My name is Schimon Jehudah and I am an attorney at law.
I have no background in professional software engineering.
My background is namely data engineering, statistics and analyses, as well as legal matters of sorts.

Concerning to myself

While understanding the issues of Javascript in recent years, especially after the HTML5 propaganda and the joint removal of syndication (i.e. Atom/RDF/RSS) support from corporate web browsers, I am working furiously to think of ideas of recoverying from this issue.

Concerning to my projects

In the last couple of years, I have been working on a news syndication bot for XMPP.

https://gitgud.io/sjehuda/slixfeed

I have also made a bookmarks manager project

https://gitgud.io/sjehuda/slixmark

and many others like a pure Javascript feed renderer after I have discovered that the red lizard has sabotaged its proposed library of XSLTProcessor.

I am also using non-corporate web browsers and so I look up for solutions for popular extension like ClearURLs and Privacy Redirect.

I am now focusing on CMS software to support PubSub and I have even made a working Python script (a first of its kind that realizes the use of slixmpp library being used as an instance which is not the main "actor" (so called) of a Python program) which - specifically - is a display of gathering data from PubSub, as this is my current domain of interest.

Note: To upload data to PubSub, you can try atomtopubsub (please see the pull requests and issues that I have made).

Due to the urgency of this matter, I have ceased to receive and accept any legal work this year 2024 in order to be more focused on Syndication, XMPP and other important technologies.

The state of which I have set myself for 2024 where I live and by the legal system to which I am subjected to, costs me over $500 per month (namely "property tax" and "social security").

Note: I am quite happy to do this voluntary recess due to the irrational fashion legal data is "secured" in the system provided by the court system here and the ignorance of most of the lawyers here on this concern;

And I am also looking for migrating out from where I am to - preferably - Europe and I am studying the bible, but these are other matters, albeit important to me.

Questions

Please kindly explain to me these:

  • What made you to determine that I create fake issues?
  • What made you to determine that I create fake projects?

Of note

  • If I was fake then I probably would not have kept my account (or profile) activity here public.
  • If I was fake, I think I would have opened different versions of this issue in different forms and from different aliases.
  • The following CMS projects are based on Perl and I did not yet send the above ticket to any of these because I have yet to find a Perl library that offers PubSub support.
http://ikiwiki.info/
https://sveinbjorn.org/mentat
https://twiki.org/
https://foswiki.org/Home/WebHome
https://git.2f30.org/bliper/log.html
https://oddmuse.org/
  • I also did not send this ticket to CMS software based on Bash as I did not test all the sendxmpp (Note: the original is written in Perl) variants available, and the current nomination is sendxmpp-py from moparisthebest.

Good night,
Schimon

@sjehuda
Copy link
Author

sjehuda commented Apr 21, 2024

I have updated my last post.

@RogerHaase
Copy link
Member

Reported sjehuda's comments as spam, blocked user from project.

@Alumniminium
Copy link

Reported sjehuda's comments as spam, blocked user from project.

...why?

@ThomasWaldmann
Copy link
Member

I don't think @sjehuda is an AI, he contacted me via email.

But I explained to him that:

  • project focus for MoinMoin is getting moin2 into a releasable state with a basic feature set
  • likely XMPP features are not part of such a basic feature set
  • that his posts are hard to read and understand for people unfamiliar with XMPP and should have been written from a more practically motivated POV, like "what problem are we solving, why and how would anyone use such functionality".

So I would suggest to unblock him, so he can edit and improve this or maybe better create one new issue.

I currently don't think this could be in scope for moin2 development until moin 2.1 though.

@Neustradamus
Copy link

I confirm that @sjehuda is not a bot or a spammer. Please unmark comments.

The feature request is really important!

You can look for example here:

For example, you can contact on Psi+ XMPP MUC Room: xmpp:psi-dev@conference.jabber.ru?join

To use XMPP, there is a client list (Desktop, Mobile or Web) here:

@RogerHaase
Copy link
Member

I have unblocked @sjehuda and unhide his posts. I apologize for mistaking him as a bot.

@sjehuda
Copy link
Author

sjehuda commented Apr 23, 2024

Thank you!

We are all friends here and we are all sharing similar causes!

Please pardon me for the belated respond.


Below is a part of a correspondence which I have had with Thomas:

I hope this clearly expains the matter.

I know a little, but only very little and even I could not extract much from what you wrote, especially not "what problem are we solving here?", practical use cases, why and how somebody would want to use something like what you proposed.

  • Managing MoniMoin via XMPP alone (optional).
  • Easier access to data.
  • Portability of data.
  • Uniformity of data (disputable).

Using XMPP as a hosting medium with XML files that MoinMoin already generates.

While HTML pages of MoinMoin are namely dedicated to HTTP browsers, XML can be dedicated to XMPP just as it is dedicated to HTTP feed readers.

This is useful, in general, and in particular to communities revolving around XMPP, such as Gajim, Psi, Speed Dreams and many more who maintain a wiki and want to incorporate Wiki-CMS like MoinMoin with XMPP.

That would make MoinMoin a CMS that can be also viewed and managed from XMPP alone.

Essentially, to the aforementioned XMPP communities, adding support to XMPP PubSub would allow editing MoinMoin wiki while having an interactive chat on an XMPP groupchat.


  • Uniformity of data (disputable).

By "uniformity" I meant to HTML.
Yet, it would be posible to upload both files to two different nodes: One node for source files (to be used for editing) and one for HTML pages (to be used for viewing).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants