From 83b44e0091d746f8bdc2886ab2c684a4c0d1f374 Mon Sep 17 00:00:00 2001 From: "Schimon Jehudah, Adv." Date: Wed, 11 Dec 2024 15:00:16 +0200 Subject: [PATCH] Update information and references; Add some pages from the Gemini version of this publication. --- README.md | 17 ++- pages/blasta.rst | 30 ++-- pages/cleanurls.rst | 54 +++++++ pages/index.rst | 11 +- pages/newspaper.rst | 112 ++++++++++++++ pages/projects.rst | 19 ++- pages/rivista.rst | 33 +++-- posts/addressbook-and-xmpp-roster.rst | 162 +++++++++++++++++++++ posts/background-software-as-a-routine.rst | 126 ++++++++++++++++ 9 files changed, 532 insertions(+), 32 deletions(-) create mode 100644 pages/cleanurls.rst create mode 100644 pages/newspaper.rst create mode 100644 posts/addressbook-and-xmpp-roster.rst create mode 100644 posts/background-software-as-a-routine.rst diff --git a/README.md b/README.md index 2ec3f20..4da0881 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,25 @@ -# Slixfeed Publication +# Schapps Publication + +Schapps site and publication. ## About -This repository contains the official Slixfeed Publication: https://slixfeed.woodpeckersnest.space/ +This repository contains the official Schapps publication which is kindly +sponsored by WPN, and hosted at https://schapps.woodpeckersnest.eu ## Contributing Anyone is welcome to submit code that fixes problems and improve things. -You can also submit redesigns, yet first open an issue report informing us, preferably with an example. +You can also submit redesigns, yet first open an issue report informing us, +preferably with an example. ## Building -The site uses [Nikola](https://getnikola.com/) as a static site generator. +The site utilizes [Nikola](https://getnikola.com) as a static site generator. -To generate the site, execute the following command inside the repositpry directory: +To generate the site, execute the following command inside the repository +directory: ```shell nikola build @@ -35,6 +40,6 @@ git init git checkout -b main git add * git commit -m "Description of action" -git remote add origin https://git.xmpp-it.net/sch/slixfeed.woodpeckersnest.space.git +git remote add origin https://git.xmpp-it.net/sch/schapps.git git push -u origin main ``` diff --git a/pages/blasta.rst b/pages/blasta.rst index 3e36aba..4099757 100644 --- a/pages/blasta.rst +++ b/pages/blasta.rst @@ -1,23 +1,29 @@ .. title: Blasta .. slug: blasta .. date: 2024-09-24 00:00:00 UTC -.. tags: blasta +.. tags: blasta, bookmarks, collaboration, pubsub, xmpp .. link: blasta .. description: The agreeable and cordial civic bookmarking system .. type: text +About +----- + Blasta is a collaborative bookmarks manager for organizing online content. -It allows you to add links to your personal collection of links, to categorize -them with keywords, and to share your collection not only among your own -software, devices and machines, but also with others. -What makes Blasta a collaborative system is its ability to display to you the -links that other people have collected, as well as showing you who else has -bookmarked a specific link. You can also view the links collected by others, -and subscribe to the links of people whose lists you deem to be interesting. +It allows to add links to personal collections of links, to categorize them with keywords, to share them with people and synchronize them. -Blasta does not limit you to save links of certain types; you can save links of -types adc, dweb, ed2k, feed, ftp, gemini, geo, gopher, http, ipfs, irc, magnet, -mailto, monero, mms, news, sip, udp, xmpp and any scheme and type that you desire. +What makes Blasta a collaborative system is its ability to display links that other were collected by others, as well as showing who else has bookmarked a specific link. It is also possible to view links that were collected by others, and subscribe to the links. -Project source is hosted at `git.xmpp-it.net/sch/Blasta `_. +Blasta is not limited to links of certain types; it can save links of types adc, dweb, ed2k, feed, ftp, gemini, geo, gopher, http, ipfs, irc, magnet, mailto, monero, mms, news, sip, udp, xmpp and any scheme and type. + +Resources +--------- + +Project source: `git.xmpp-it.net/sch/Blasta `_ + +Video (PeerTube): https://video.xmpp-it.net/w/cfozoUeVLFbBFMCCSCJ1Dn + +Video (magnet link): `magnet:?xt=urn:btih:0411cb12107bda0457475c4692c49e7c8be19cc4` `_ + +Video (torrent): `blasta_an_xmpp_pubsub_annotation_management_system.torrent `_. diff --git a/pages/cleanurls.rst b/pages/cleanurls.rst new file mode 100644 index 0000000..a4c1326 --- /dev/null +++ b/pages/cleanurls.rst @@ -0,0 +1,54 @@ +.. title: Clean URLs +.. slug: cleanurls +.. date: 2024-09-24 00:00:00 UTC +.. tags: ecma, html, greasemonkey, link, privacy, tracker, url +.. link: cleanurls +.. description: Original URL redirector and fixer +.. type: text + +Remove needless parameters from a given URL and correct it to a cleaner one. + +About +----- + +This script was started as a proof of concept of utilizing the URL API instead of RegEx. + +To add a new hash or parameter, simply add it to the respective array. + +Enjoy graceful sharing! + +Legend and visual examples +-------------------------- + +``` +l) Discovered URL + URL found within a parameter + +w) Pure link + URL without parameters (mere pathname) + +g) Safe link + URL with whitelisted parameters + +y) Semi-safe link + URL purged by blacklist + +r) Unsafe link + Original URL (useful in rare cases) + + orderBy orderDir src ref version source url Custom Visual Example +Link №1 ✓ ✓ ✓ ✓ ✕ ✕ ✕ ✕ (l)(w)(g)(r) +Link №2 ✓ ✓ ✕ ✕ ✓ ✕ ✕ ✕ None +Link №3 ✓ ✓ ✕ ✓ ✓ ✕ ✕ ✕ (w)(g)(r) +Link №4 ✓ ✓ ✕ ✓ ✓ ✓ ✓ /ref= (l)(l)(w)(g)(y)(r) +Link №5 ✓ ✓ ✓ ✕ ✓ ✕ ✕ 465933 (l)(w)(g)(y)(r) +Link №6 ✓ ✓ ✕ ✕ ✓ ✕ ✓ ✕ (l)(w)(g)(y) +Link №7 ✕ ✕ ✕ ✓ ✕ ✕ ✕ slackware (l)(w)(r) +Link №8 ✕ ✕ ✕ ✕ ✕ ✓ ✕ (l)(w)(y) +``` + +Resources +--------- + +* https://greasyfork.org/scripts/465933-cleanurls-clean-url-improved Greasy Fork +* https://openuserjs.org/scripts/sjehuda/Clean_URL_Improved diff --git a/pages/index.rst b/pages/index.rst index 2c7a07f..5d2c90a 100644 --- a/pages/index.rst +++ b/pages/index.rst @@ -6,16 +6,21 @@ .. description: Schapps Software .. type: text -Welcome to Schapps Software. +Welcome to Schapps Software! Schapps Software provides a selection of XMPP software, such as bots, tools and utilities. -Among the collection of software are Blasta, KaikOut, Rivista XJP and Slixfeed. +Among the collection of software are Blasta, JabberCard, KaikOut, Rivista XJP, Slixfeed and Syndikate. Our intention is to promote flexible and portable data sharing and management platforms. We are namely focusing on free and open protocols, such as IRC and XMPP. -Our main platform is XMPP. +Our main platforms are XMPP, IRC, BitTorrent, and Gemini. + +Our additional platforms are DC, eD2k, Gopher, I2P, LXMF and MQTT. We hope you would enjoy the software offered by Schapps. + +Your hosts, +Schimon and Simone diff --git a/pages/newspaper.rst b/pages/newspaper.rst new file mode 100644 index 0000000..bca24b9 --- /dev/null +++ b/pages/newspaper.rst @@ -0,0 +1,112 @@ +.. title: Newspaper +.. slug: newspaper +.. date: 2024-09-24 00:00:00 UTC +.. tags: activitystream, atom, ecma, html, json, greasemonkey, news, newspaper, rdf, rss, smf, syndication, xml +.. link: newspaper +.. description: View news feeds inside the browser +.. type: text + +About +----- + +Newspaper is a Greasemonkey script which renders syndication feeds into +readable and printable HTML file. + +It supports ActivityStream, Atom, JSON, RDF and RSS syndications. + +If you are using LibreWolf, Waterfox etc., please replace your browser or +follow the instructions at the bottom of this page in order to make the best +use of this software. + +Features +-------- + +* Audio player; +* Beautiful interface; +* Content filtering; +* Controllers; +* Customization of news reader handler; +* Customization of fonts; +* Customization of text size; +* Dark mode; +* Text direction control. + +What is a Syndication News Feed? +-------------------------------- + +Syndication Feed is a mean for content and media publishers to reach a wider +audience easily. It allows you to receive information directly without the going +from site to site. + +Essentially, a feed is a function that allows “Feed Readers” to access multiple +sites automatically looking for new content and then posting the information +about new content and updates to another site, mobile app or desktop software at +the office. + +Feeds provide a way for users to keep up with the latest news, events, package +and delivery status information posted on different sites such as news sites, +music sites, content sites (i.e. social networks), torrent indexers and podcasts +in one spot. + +Instructions for Gecko based browsers +------------------------------------- + +The following instructions are intended to circumvent the various of +arbitrary limitations that have been foisted by Mozilla since 2018 to +attempt to hide the syndication technology from your awareness. + +Read `The RSS deprecation conspiracy `_ + +Get Falkon +---------- + +You are encouraged to install [Falkon browser](https://falkon.org). + +Enable JSON +----------- + +* Navigate to "about:config". +* Set "devtools.jsonview.enabled" to "false". + +Enable Atom & RSS +----------------- + +* Install `Open in Browser `_ + +* Import the following rules via extension preferences. + +``` +{ + "mime-mappings": { + "application/atom+xml": "1text/plain", + "application/rss+xml": "1text/plain", + "application/rdf+xml": "1text/plain", + "application/feed+json": "1text/plain", + "application/x-atom+xml": "1text/plain", + "application/x-rss+xml": "1text/plain", + "application/x-rdf+xml": "1text/plain", + "application/xml": "1text/plain", + "text/xml": "1text/plain" + }, + "sniffed-mime-mappings": { + "application/atom+xml": "1text/plain", + "application/rss+xml": "1text/plain", + "application/rdf+xml": "1text/plain", + "application/feed+json": "1text/plain", + "application/x-atom+xml": "1text/plain", + "application/x-rss+xml": "1text/plain", + "application/x-rdf+xml": "1text/plain", + "application/xml": "1text/plain", + "text/xml": "1text/plain" + }, + "text-nosniff": false, + "octet-sniff-mime": true, + "override-download-type": false +} +``` + +Resources +--------- + +* https://greasyfork.org/scripts/465932-newspaper-html-feed-reader +* https://openuserjs.org/scripts/sjehuda/Newspaper diff --git a/pages/projects.rst b/pages/projects.rst index 7e1e74d..6bae19f 100644 --- a/pages/projects.rst +++ b/pages/projects.rst @@ -6,12 +6,29 @@ .. description: Projects from Schapps .. type: text +Privacy +------- + +`CleanURLs `_ is a browser extension which removes tracking elements from hyperlinks. + +Syndication +----------- + +`Newsline `_ is a news bar panel for high freqency updates. + +`Newspaper `_ is a feed renderer for HTML browsers. + +XMPP +---- + `Blasta `_ is a collaborative annotation system. `BukuBot `_ is a bookmarks bot. +`JabberCard `_ is a journal publisher for XMPP which turns XMPP accounts into private sites. + `KaikOut `_ is a moderation bot. -`Rivista XJP `_ is a journal publisher. +`Rivista XJP `_ is an XMPP PubSub gateway to HTTP news readers. `Slixfeed `_ is a news bot. diff --git a/pages/rivista.rst b/pages/rivista.rst index 604cdf7..5667e87 100644 --- a/pages/rivista.rst +++ b/pages/rivista.rst @@ -1,21 +1,34 @@ -.. title: Rivista -.. slug: rivista +.. title: Rivista XJP +.. slug: rivista-xjp .. date: 2024-09-24 00:00:00 UTC -.. tags: rivista +.. tags: atom, rivista, syndication, xmpp .. link: rivista -.. description: Journal publisher for XMPP +.. description: XMPP gateway and journal publisher .. type: text +About +----- + Rivista is a lower-cost dynamic site generator, and a gateway for XMPP PubSub. -Rivista is usable with both, Feed Readers and HTML Browsers. +It is usable with both, Feed Readers and HTML Browsers. Features -------- -- Parse XMPP Pubsub Nodes and sends them as Atom Syndication Format or OPML over - HTTP. -- Generate Atom syndication feeds (RFC 4287) from XMPP PubSub nodes (XEP-0060). -- XSLT stylesheets that transform PubSub nodes into XHTML journal sites. +* Parse XMPP Pubsub Nodes and sends them as Atom Syndication Format or OPML over HTTP. -Project source is hosted at `git.xmpp-it.net/sch/Rivista `_. +* Generate Atom syndication feeds (RFC 4287) from XMPP PubSub nodes (XEP-0060). + +* XSLT stylesheets that transform PubSub nodes into XHTML journal sites. + +Resources +--------- + +Project source: `git.xmpp-it.net/sch/Rivista `_ + +Video (PeerTube): https://video.xmpp-it.net/w/vNqcMooy3pqRAZ8Yb8grr1 + +Video (magnet link) `magnet:?xt=urn:btih:7feae97d6d836c5bff01eab093867917f1910813 `_ + +Video (torrent) `rivista_xjp_an_xmpp_pubsub_content_management_system.torrent `_ diff --git a/posts/addressbook-and-xmpp-roster.rst b/posts/addressbook-and-xmpp-roster.rst new file mode 100644 index 0000000..ccf726a --- /dev/null +++ b/posts/addressbook-and-xmpp-roster.rst @@ -0,0 +1,162 @@ +.. title: Contacts Are In Roster And Also In Address Book +.. slug: addressbook-and-xmpp-roster +.. date: 2024-10-30 8:22:04 UTC +.. tags: address, addressbook, book, chat, contact, jabber, xmpp +.. category: journal +.. link: contacts-are-in-roster-and-also-in-address-book +.. description: Not all of your XMPP contacts should be in your roster. +.. type: text + +Greetings, to one and all! + +I gladly greet you, whether you are in my roster or in my address book or +neither. + +Good news about Convo +--------------------- + +It was yesterday, that Mr. Badri Sunderarajan, the developer of the XMPP chat +client *Convo*, has announced that the download count of Convo has surpassed the +101 count in less than a day after he has published Convo at the repository of +`BananaHackers` `_. + +With no advertising nor marketing, and plenty of foreign attempts to restrict +XMPP, it is a good display which indicates of the high popularity of XMPP. + +This is indeed good news! + +A note about adding of contacts +------------------------------- + +While I was reading the release notes of the release titled "Channels" +(`Convo 0.1.0 `_), +I have further noticed, that there is an even earlier release; it is a +pre-release version titled "Early Preview" (Convo 0.1.0-pre1). + +I was not certain as to how to interpret the following sentence. + +> Keep in mind that you will probably want an extra client to do "advanced" +> things like adding a new contact. + +### The XMPP roster has benefits + +While the benefits of adding a contact and consequently subscribe to a contact +on the XMPP network allows to observe the status of the contact (e.g. online, +chatty, away and extended away) and status messages, which may also include +music titles of the music that the contact is currently listening to, and even +further includes moods and even activities. + +`XEP-0107: Contact Mood `_ + +`XEP-0108: Contact Activity `_ + +The added benefits of the features that are exposed by subscribing to a contact +on XMPP are definitely useful, namely for contacts of people that you are either +constantly or physically interacted with (i.e. in "real life"). + +Otherwise, that information is distracting and you would not want to have that +contact in your roster, as it would not be productive. + +A practice which I advocate +--------------------------- + +To realize the productivity matter, I will describe one of my recent +communications. + +For example, in the last period of month, I have been contantly in contact with +Kris of `JoinJabber `_, who is guiding my efforts towards +a new introduction and publishing system for XMPP (`JabberCard` `_); + +Both of us, are in direct contact for over three months, and non of us has ever +added the other counterpart to his roster nor shared his subscription with the +other, respectively. + +Nevertheless, I did save the XMPP contact of Kris to my address book, and I have +also saved the XMPP address of the group chat JoinJabber to my address book too. + +This is the entry which is saved in my computer as filename `joinjabber.vcf`. + +``` +BEGIN:VCARD +VERSION:4.0 +FN:JoinJabber General Chat +ORG:JoinJabber +TITLE:An inclusive space on the Jabber network +URL:https://joinjabber.org +NOTE:A landing place for the open federated Jabber community. +X-XMPP;TYPE=MUC:xmpp:chat@joinjabber.org?join +END:VCARD +``` + +This matter also applies for channels (PubSub nodes) and group chats. + +moparisthebest has said... +-------------------------- + +> I agree, I would go further and say that presence is an antiquated concept +> that has no place in modern messaging. + +> "whether someone is currently online" mattered a ton in 1999 when people would +> not get your message at all if you sent it when people were offline. + +> Today, people will get it whenever they want to get it, and will respond when +> they want to respond, hence presence is a completely useless concept. + +I would not categorically determine that presence is a completely useless +concept, as it has its advantages by knowing when a friend is busy, and it is +also useful when engaging with automated software over XMPP (e.g. news bots). + +Conclusion +---------- + +I maintain a roster which does not exceed 50 contacts. + +Most of my roster contacts are: + +* Family +* Local friends +* Frequent contacts +* Current associates +* Sports companions + +And my address book currently has over 3,500 addresses which mostly includes +emails, IRC addresses and telephone numbers, and with over 800 contacts with +XMPP addresses. + +The interactive benefits of the XMPP roster are useful to the highest extent in +history of instant messaging, and yet, as already mentioned, adding contacts to +the XMPP roster is mostly useful when those contacts are of your family, +friends, local community members, associates and colleagues of your work and of +your joint sports activities. + +Other than those and, perhaps, other types that I might have neglected to +mention, use an address book as a mean to store addresses of contacts. + +Best regards, +Schimon + +Appendix +-------- + +People who I collaborate and communicate with on a weekly basis, without sharing +presence. We even communicate via VoIP. + +Alex of `DenshiSite `_ + +Diggy of `Dig Deeper `_ + +`Hook `_ + +luna of `l4.pm `_ + +magdesign of `PocketVJ `_ + +roughnecks of `WPN `_ + +Staff members of `Simplified Privacy `_ + +TheCoffeMaker of `Cyberdelia `_ + +`ThUnD3r|Gr33n `_ + +And others... diff --git a/posts/background-software-as-a-routine.rst b/posts/background-software-as-a-routine.rst new file mode 100644 index 0000000..1fd7fc4 --- /dev/null +++ b/posts/background-software-as-a-routine.rst @@ -0,0 +1,126 @@ +.. title: Background Software As A Routine +.. slug: background-software-routine +.. date: 2024-10-30 8:22:04 UTC +.. tags: atom, bittorrent, chat, cli, console, daemon, gtk, interface, library, liferea, module, rss, server, software, syndication, toolkit, xmpp +.. category: journal +.. link: background-software-as-a-routine +.. description: A crucial consideration for independency and longer sustainability. +.. type: text + +Good day! + +This post suggests to consider to build software as background software +(sometimes referred to as so-called "daemon" or "server") and build, in addition +to it, a companion software, which would be utilized as an interface to the +background software. + +Liferea and GTK+ toolkit +------------------------ + +Earlier this week, I was informed, that Mr. Lars Windolf, the maintainer of a +popular desktop and office software, Liferea, intends to cease from maintaining +it. + +From reading the fourth paragraph of the announcement which was published at +`lzone.de `_, +I have concluded that the prominent reason, for his intention, is the unexpected +maintenance costs and requirements that are consequent to the changes that have +been made to the graphical toolkit called GTK+. + +> Looking back at those 20 years for me the GNOME ecosystem developed in a way +that the maintenance work was ever increasing. The different aspects of this are +the major GTK releases causing massive refactorings, continuous API deprecations +causing compiler noise and work that does not benefit the features. So every +time I was close to dropping the project, the reason always was the GTK +development cycle. + +And the paragraph ends with a mention of libxml2. + +> This is for example different with another important library for Liferea: +libxml2. The API was practically 95% **stable** for 20 years. +**Zero maintenance effort!** + +This is not a positive matter, unless lessons will be learnt and measures to +avoid such undesirable indicents be practiced. + +FLTK and SDL toolkits +--------------------- + +FLTK appears to be a viable toolkit for Liferea and other projects of sort. + +So it is for SDL which the Gemini browser +`Lagrange `_ is built upon. + +Qt toolkit +---------- + +It has already happened in the past, with other prominent projects such as +`LXDE `_ +which has later formed into `LXQt `_ and +`Wiresark `_ which was +migrated from GTK+ to Qt due to consequences of decisions that were made for GTK+. + +It will be interesting if The GIMP would also switch to utilizing Qt or FLTK. + +Background mode +--------------- + +Some software have a good interface, be it command line, console or graphical, +and some software have a good core, and some software have both. + +Sometimes, new modules (sometimes referred to as "libraries" so-called), are +created and replaced by older modules. + +For example, the XMPP chat client software `PyTalk `_ +and `Speeue `_ are both based on the Python +module `xmpppy `_; PyTalk offers a Qt interface, +and Speeqe offers an HTML interface to interact with people who desire to +communicate via the XMPP communication network. + +The module xmpppy is built for version 2 of the computer language Python, which +was replaced in favour of the version 3 of the computer language Python, and is +not present on most systems nowadays. + +By all means, this does not mean that PyTalk and Speeqe are obsolete, but it +does mean that restructure of these software be required in order to easily +deploy them on most systems. + +Yet, if Speeqe and PyTalk would have been built into a couple or triple of +components (e.g. core, background, and interface), both would have been usable +on most systems, even today, provided that the background software be rebuilt or +redesigned with a more current module (e.g. +`Slixmpp `_) instead of xmpppy. + +BitTorrent clents as an example +------------------------------- + +It is interesting, that BitTorrent software, such as qBittorrent, RTorrent and +Transmission, to name just a few, tend to be modular, and are often provided in +several forms of background, console and graphical interfaces, and the core is +the library that each utilizes to communicate in the protocol BitTorrent. + +A common functionality, that BitTorrent clients have, is remote control, usually +via the the protocols HTTP and XMPP. + +There is a variaty of advantages that are realized when background components +are made available, one of which is the facilitation of adding functionality for +remote control. + +Music On Console +---------------- + +Another instance, is `MOC (Console audio player) `_, +which, despite its title, it is compartmentalized into a triple of complonents, +a background process, a command-line interface and a console interface to +visually interact with it. + +Conclusion +---------- + +Building software in several modes with, at least, background and interface, is +a basic and yet **crucial** consideration in order to ensure the sustainability +and independency of projects, and not to be relied on the whims of a toolkit +lord. + +Best regards, +Schimon