Compare commits

..

3 commits

Author SHA1 Message Date
Schimon Jehudah, Adv.
1efc50a747 Add a new post;
Fix syntax of previous posts.
2024-12-12 12:40:26 +02:00
Schimon Jehudah, Adv.
83b44e0091 Update information and references;
Add some pages from the Gemini version of this publication.
2024-12-11 15:00:16 +02:00
sch
808a319ed0 Merge pull request 'favicon-fix-attempt' (#4) from roughnecks/schapps:favicon-fix-attempt into main
Reviewed-on: sch/schapps#4
2024-10-13 20:27:34 +02:00
14 changed files with 634 additions and 47 deletions

View file

@ -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
```

View file

@ -948,7 +948,6 @@ IMAGE_FOLDERS = {'images': 'images'}
# <link rel="name" href="file" sizes="size"/>
FAVICONS = (
("icon", "/favicon.ico", "16x16"),
("icon", "/icon_128x128.png", "128x128"),
)
# Show teasers (instead of full posts) in indexes? Defaults to False.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

View file

@ -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 <https://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 <https://git.xmpp-it.net/sch/Blasta>`_
Video (PeerTube): https://video.xmpp-it.net/w/cfozoUeVLFbBFMCCSCJ1Dn
Video (magnet link): `magnet:?xt=urn:btih:0411cb12107bda0457475c4692c49e7c8be19cc4` <magnet:?xt=urn:btih:0411cb12107bda0457475c4692c49e7c8be19cc4&dn=Blasta%20-%20An%20XMPP%20PubSub%20Annotation%20Management%20System%201080p.mp4&tr=wss%3A%2F%2Fvideo.xmpp-it.net%3A443%2Ftracker%2Fsocket&tr=https%3A%2F%2Fvideo.xmpp-it.net%2Ftracker%2Fannounce&ws=https://video.xmpp-it.net/static/streaming-playlists/hls/5b16d9d1-97b8-42c8-ada6-6727ba59cc87/ce428cc1-82e2-428f-84e3-815a8d8a77f6-1080-fragmented.mp4>`_
Video (torrent): `blasta_an_xmpp_pubsub_annotation_management_system.torrent <https://video.xmpp-it.net/download/torrents/e72b143a-befd-443f-9ef8-11b6cee887e7-1080-hls.torrent>`_.

59
pages/cleanurls.rst Normal file
View file

@ -0,0 +1,59 @@
.. 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
--------------------------
* Discovered URL (l)
URL found within a parameter
* Pure link (w)
URL without parameters (mere pathname)
* Safe link (g)
URL with whitelisted parameters
* Semi-safe link (y)
URL purged by blacklist
* Unsafe link (r)
Original URL (useful in rare cases)
.. code::
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
* https://openuserjs.org/scripts/sjehuda/Clean_URL_Improved

View file

@ -6,16 +6,22 @@
.. 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

113
pages/newspaper.rst Normal file
View file

@ -0,0 +1,113 @@
.. 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 <https://diggy.club/articles/mozilla.xhtml#rss>`_
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 XML
----------
* Install extension `Open in Browser <https://addons.mozilla.org/firefox/addon/open-in-browser/>`_
* Import the following rules via extension preferences.
.. code:: json
{
"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

View file

@ -6,12 +6,29 @@
.. description: Projects from Schapps
.. type: text
Privacy
-------
`CleanURLs </cleanurls>`_ is a browser extension which removes tracking elements from hyperlinks.
Syndication
-----------
`Newsline </newsline>`_ is a news bar panel for high freqency updates.
`Newspaper </newspaper>`_ is a feed renderer for HTML browsers.
XMPP
----
`Blasta </blasta>`_ is a collaborative annotation system.
`BukuBot </bukubot>`_ is a bookmarks bot.
`JabberCard </jabbercard>`_ is a journal publisher for XMPP which turns XMPP accounts into private sites.
`KaikOut </kaikout>`_ is a moderation bot.
`Rivista XJP </rivista>`_ is a journal publisher.
`Rivista XJP </rivista>`_ is an XMPP PubSub gateway to HTTP news readers.
`Slixfeed </slixfeed>`_ is a news bot.

View file

@ -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 <https://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 <https://git.xmpp-it.net/sch/Rivista>`_
Video (PeerTube): https://video.xmpp-it.net/w/vNqcMooy3pqRAZ8Yb8grr1
Video (magnet link) `magnet:?xt=urn:btih:7feae97d6d836c5bff01eab093867917f1910813 <magnet:?xt=urn:btih:7feae97d6d836c5bff01eab093867917f1910813&dn=Rivista%20XJP%20-%20An%20XMPP%20PubSub%20Content%20Management%20System%201030p.mp4&tr=wss%3A%2F%2Fvideo.xmpp-it.net%3A443%2Ftracker%2Fsocket&tr=https%3A%2F%2Fvideo.xmpp-it.net%2Ftracker%2Fannounce&ws=https://video.xmpp-it.net/static/streaming-playlists/hls/f1542678-ad70-4a9b-af4d-1528b3c0b2b6/39955e3b-4b81-441f-9507-5d2b8d245353-1030-fragmented.mp4>`_
Video (torrent) `rivista_xjp_an_xmpp_pubsub_content_management_system.torrent <https://video.xmpp-it.net/download/torrents/75858dae-75f0-48b9-a130-372c8a6be4f1-1030-hls.torrent>`_

View file

@ -1,9 +1,9 @@
.. title: Slixfeed News Bot
.. slug: slixfeed-news-bot
.. slug: 2024-05-23-slixfeed-news-bot
.. date: 2024-05-23 16:27:48 UTC
.. tags: atom, bot, chat, feed, feedparser, jabber, news, python, rdf, rss, slixfeed, slixmpp, syndication, xmpp
.. category: news
.. link: slixfeed-news-bot
.. link: 2024-05-23-slixfeed-news-bot
.. description: Slixfeed is a news aggregation bot for the XMPP communication network which aims to be easy to use and fully-featured. It provides a convenient access to Blog and News sites.
.. type: text

View file

@ -1,9 +1,9 @@
.. title: XMPP News Bots
.. slug: xmpp-news-bots
.. slug: 2024-05-23-xmpp-news-bots
.. date: 2024-05-23 18:38:22 UTC
.. tags: atom, bot, chat, feed, jabber, news, rss, slixmpp, syndication, xmpp
.. category: news
.. link: xmpp-news-bots
.. link: 2024-05-23-xmpp-news-bots
.. description: This is a selection of news chat bots for the XMPP network which you might be interested at.
.. type: text
@ -18,47 +18,55 @@ AtomToPubsub
AtomToPubsub is a simple script that parses feeds and pushes the entries to a designated XMPP Pubsub Node.
Proceed to `edhelas/atomtopubsub <https://github.com/edhelas/atomtopubsub>`_
`edhelas/atomtopubsub <https://github.com/edhelas/atomtopubsub>`_
err-rssreader
-------------
A port of old Brutal's Feed Reader for `Errbot <https://errbot.readthedocs.io/>`_.
A port of old Brutal's Feed Reader for Errbot.
Proceed to `errbotters/err-rssreader <https://github.com/errbotters/err-rssreader>`_
`errbotters/err-rssreader <https://github.com/errbotters/err-rssreader>`_
`Errbot <https://errbot.readthedocs.io/>`_
feed-to-muc
-----------
feed-to-muc is an XMPP bot which queries newsfeeds and posts the short summary to a XMPP MUC if there is a new article.
Proceed to `mdosch/feed-to-muc <https://salsa.debian.org/mdosch/feed-to-muc>`_
`mdosch/feed-to-muc <https://salsa.debian.org/mdosch/feed-to-muc>`_
Jabber RSS Transport
--------------------
`Jabber RSS Transport <https://jabberworld.info/Jabber_RSS_Transport>`_ offers a `component <https://xmpp.org/extensions/xep-0114.html>`_ interface which embodies feeds as contacts, which makes it highly efficient to any chat client.
Jabber RSS Transport offers a component interface which embodies feeds as contacts, which makes it highly efficient to any chat client.
Proceed to `jabberworld/jrd_rss <https://github.com/jabberworld/jrd_rss>`_
`jabberworld/jrd_rss <https://github.com/jabberworld/jrd_rss>`_
`Jabber RSS Transport <https://jabberworld.info/Jabber_RSS_Transport>`_
`XEP-0114: Jabber Component Protocol <https://xmpp.org/extensions/xep-0114.html>`_
JabRSS by Christof
------------------
A simple syndication headline notification service for Jabber/XMPP.
Proceed to `dev.cmeerw.org <https://dev.cmeerw.org/Projects/jabrss>`_
`dev.cmeerw.org <https://dev.cmeerw.org/Projects/jabrss>`_
`Documentation <https://dev.cmeerw.org/jabrss/Documentation>`_
JabRSS by Jens W. Wulf
----------------------
The code is based on `jabrss@cmeerw.net <https://dev.cmeerw.org/jabrss/Documentation>`_. It was restructured and offers additional features.
The code is based on JabRSS from Christof. It was restructured and offers additional features.
Proceed to `jotwewe.de <http://www.jotwewe.de/de/xmpp/jabrss/jabrss_en.htm>`_
`jotwewe.de <http://www.jotwewe.de/de/xmpp/jabrss/jabrss_en.htm>`_
Morbot
------
Morbo is a simple Slixmpp bot that will take new articles from listed syndication feeds and send them to assigned XMPP MUCs. This bot works best with TinyTinyRSS published articles feeds.
Proceed to `TheCoffeMaker/Morbot <https://codeberg.org/TheCoffeMaker/Morbot>`_
`TheCoffeMaker/Morbot <https://codeberg.org/TheCoffeMaker/Morbot>`_

View file

@ -0,0 +1,168 @@
.. title: Contacts Are In Roster And Also In Address Book
.. slug: 2024-10-30-addressbook-and-xmpp-roster
.. date: 2024-10-30 8:22:04 UTC
.. tags: address, addressbook, book, chat, contact, jabber, xmpp
.. category: journal
.. link: 2024-10-30-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 <https://store.bananahackers.net/#Convo>`_.
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 <https://git.disroot.org/badrihippo/convo/releases/tag/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.
.. epigraph::
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 <https://xmpp.org/extensions/xep-0107.html>`_
`XEP-0108: Contact Activity <https://xmpp.org/extensions/xep-0108.html>`_
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 <https://joinjabber.org>`_, who is guiding my efforts towards
a new introduction and publishing system for XMPP (`JabberCard </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`.
.. code:: ini
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...
--------------------------
.. epigraph::
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 <https://denshi.org>`_
* Diggy of `Dig Deeper <http://diggy.club>`_
* `Hook <https://matija.suklje.name>`_
* luna of `l4.pm <https://l4.pm>`_
* magdesign of `PocketVJ <https://fosstodon.org/@pocketvj>`_
* roughnecks of `WPN <https://blog.woodpeckersnest.space>`_
* Staff members of `Simplified Privacy <https://simplifiedprivacy.com>`_
* TheCoffeMaker of `Cyberdelia <https://cyberdelia.com.ar>`_
* `ThUnD3r|Gr33n <xmpp:thorsten@emevth.no-ip.biz?vcard>`_
And others...

View file

@ -0,0 +1,131 @@
.. title: Background Software As A Routine
.. slug: 2024-10-30-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: 2024-10-30-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 <https://lzone.de/liferea/blog/20-years-of-Liferea-and-the-future>`_,
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+.
.. epigraph::
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.
.. epigraph::
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 <https://gmi.skyjake.fi/lagrange/>`_ is built upon.
Qt toolkit
----------
It has already happened in the past, with other prominent projects such as
`LXDE <https://blog.lxde.org/2013/04/25/a-guide-for-porting-gtk-applications-to-qt/>`_
which has later formed into `LXQt <https://lxqt-project.org>`_ and
`Wiresark <https://blog.wireshark.org/2013/10/switching-to-qt/>`_ 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 <http://pytalk.trunat.fr>`_
and `Speeue <https://github.com/thepug/Speeqe>`_ are both based on the Python
module `xmpppy <http://xmpppy.sourceforge.net>`_; 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 <https://codeberg.org/poezio/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) <http://moc.daper.net>`_,
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

View file

@ -0,0 +1,62 @@
.. title: Add Custom Feeds To Your Site
.. slug: 2024-11-22-custom-feed
.. date: 2024-11-22 3:02:09 UTC
.. tags: atom, html, json, rdf, rss, server, syndication
.. category: journal
.. link: 2024-11-22-custom-feed
.. description: Utilize your social feed as a news source on your homesite
.. type: text
If you utilize XMPP, OStatus or ActivityPub accounts with services such as
Movim, StatusNet, Pleroma, Akkoma, Mitra, GNU Social, Mastodon, SoapBox or
others, then you can use your respective syndication feed of your account on
your home site, by adding the following HTML lines, respectively.
While any code would work, it is recommended to use the code with the proper
"type" attribute.
Atom Syndication Format
-----------------------
Most recommended.
.. code:: xml
<link rel="alternate" type="application/atom+xml" title="Set a title (Atom)" href="https://path/to/file.atom">
JSON Feed
---------
Lesser recommended.
.. code:: xml
<link rel="alternate" type="application/json" title="Set a title (JSON)" href="https://path/to/file.json">
RDF
---
When applicable.
.. code:: xml
<link rel="alternate" type="application/rdf+xml" title="Set a title (RDF)" href="https://path/to/file.rdf">
RSS
---
Least recommended.
.. code:: xml
<link rel="alternate" type="application/rss+xml" title="Set a title (RSS)" href="https://path/to/file.rss">
Conclusion
----------
You are not limited to your ActivityPub or XMPP accounts, and you can add any
source of any account and type that you desire.
Good luck!
Schimon