Page 1 of 1

Fediverse, RSS, Development, Scripting

Posted: Wed Nov 16, 2022 6:55 pm
by bobcole
The "Fediverse" (federated universe) is an increasingly active topic on the internet.
Some contributors to the discussion view it as an alternative to Twitter while others see it as a complement to the "Twitter-verse."
Here is an article that is an introduction the Fediverse:
https://axbom.com/fediverse/

Text processing is a large component of each internet universe and RSS is a part, too.
I think LiveCode could play a role (and gain more visibility) and by creating an API to read and write to the Fediverse.
Maybe LiveCode could host a instance in the Fediverse focused on scripting and development tools.

I started this topic due to the increasing discussion on the internet regarding the chaos at Twitter.
The Fediverse is small but growing rapidly as Twitter users look at alternatives (e.g., Mastodon).
Your thoughts...
Bob

Re: Fediverse, RSS, Development, Scripting

Posted: Wed Nov 16, 2022 7:10 pm
by bobcole
Here is a link to an article on scripting.com regarding making an easy-to-use one-line API call to read RSS feeds.
http://scripting.com/2022/11/16.html
Could LiveCode provide a similar feature?
Just thinking out loud...
Bob

Re: Fediverse, RSS, Development, Scripting

Posted: Wed Nov 16, 2022 9:17 pm
by FourthWorld
The Fediverse is the future. Interoperability inevitably wins over islands.

There's so much here, like can we find funding to write an ActivityPub library? I can write it, but after a client recently became unable to pay a large invoice I'm unable to fund it myself right now.
https://www.w3.org/TR/activitypub/

Thank you for the link to Winer's latest blog post. I share his view that RSS is a grossly underutilized format, and I'm glad to see it finding renewed interest in the current decentralization zeitgeist.

Included with the other third-party plugins in LC is one I made as a showcase example of mashups (the read-only half of federation), GoLiveNet.

Among the other resources it pulls in from multiple servers, on the second card you'll find an aggregated collection of LC-related RSS feeds, including this forum, the LC blog, StackOverflow#LiveCode, and others.

That particular implementation uses only the output from a bot that runs in my office to continually collect, collate, and rank by date the various elements in the feeds it monitors. The output is a compressed LC-savvy LSON file, which it posts to one of my public domains, where the LiveNet plugin grabs it for which efficient display in a simple list.

The good news with this approach is a separation of concerns that keeps processing where it's most useful, and delivers end results with the least latency. Bonus points that it's also green, reducing load on the servers providing the RSS feeds to one bot that employs optimized wait periods tailored for the type of content in each feed, rather than hundreds of clients ask grabbing copies ad hoc whenever the plugin is opened.

The bad news with this approach is that the RSS parser is very much bound to the specialized UI I wrote to administer the bot, so it's not currently in a form usable for general-purpose RSS reading.

But it could be.

And we can make tools and services for generating and publishing RSS as well, even using content embedded within LC stacks otherwise unreachable by conventional tools.

Another area of Fediverse integration worth considering is Nextcloud :
https://apps.nextcloud.com/

What began as a one off the better file synching tools has evolved to become the definitive open source platform for self-hosted organizational collaboration.

With excellent community leadership they've grown to include hundreds of apps that orgs can choose. I run my office with it, sharing kanban task boards and spec wikis with clients, along with realtime synching of files so all of my machines and theirs always have the latest stack files - with automated backup and versioning in case we need to roll back to a previous save.

Nextcloud offsers OAuth bidirectionally, a nice compliment to Monte's excellent OAuth lib for LC.

NC cloud storage can be used within LC via the WebDAV libs you can find in these forums.

Nextcloud and its APIs are written with federation in mind. You and I could each run our own Nextcloud servers, and using the convenient UI provided for managing users and groups have fine-tuned control over what we share, who we share it with, and the permissions granted for those shares.

And that's just a handful of options we have for integrating with the growing Fediverse.

There's a lot we can do.

Who needs it badly enough to kickstart it, and what would stakeholders want to start with?

Re: Fediverse, RSS, Development, Scripting

Posted: Wed Nov 16, 2022 9:43 pm
by FourthWorld
PS: this focus on the Fediverse brings to mind the other side of the decentralization movement: Blockchains.

There are many more interesting things going on in that space than just speculative cryptocurrency silliness .

Smart contracts are enabling new protocols and token types that are rapidly expanding applicable use cases, including DAOs and other new forms of decentralized organizations.

I've started learning Solidity to get familiar with the needs and opportunities in that space.

One thing I'm learning: many areas of Blockchain application have grown enough to be nearing The Chasm , that point in the technology adoption lifecycle where the largest set of needs is less about techie types and more about bean counters.

This translates to UX needs.

And that translates to UI.

And LiveCode is very adept at helping folks craft UIs to drive command line tools.

Re: Fediverse, RSS, Development, Scripting

Posted: Wed Nov 16, 2022 11:48 pm
by bobcole
Richard (FourthWorld):
Thank you for your insights!
And thank you for reminding me of your GoLive plug-in. What a wonderful resource. I need to make better (daily) use of it.

Is writing an ActivityPub library the starting point of a development effort or are there any other easier items (low-hanging fruit) that are also needed?
To use an ActivityPub library there must be a server that will host the instance. I assume LiveCode HQ would need to be involved, be aware, approve so maybe they would host an ActivityPub protocol running on one of their their servers.

I am way over my head in understanding all technical details that would go into this prospective project but it definitely seems like a good feature to provide the LC developer community and the wider LiveCode internet user-base.

I look forward to continuing this conversation,
Bob

Re: Fediverse, RSS, Development, Scripting

Posted: Thu Nov 17, 2022 12:30 am
by FourthWorld
bobcole wrote:
Wed Nov 16, 2022 11:48 pm
Is writing an ActivityPub library the starting point of a development effort or are there any other easier items (low-hanging fruit) that are also needed?
I think it all comes down to the application: What do we want to do? Then we can sift through the vast range of options at our disposal to make that happen.

"All men dream, but not equally. Those who dream by night in the dusty recesses of their minds, wake in the day to find that it was vanity; but the dreamers of the day are dangerous men, for they may act on their dreams with open eyes, to make them possible."
- T. E. Lawrence

:)
To use an ActivityPub library there must be a server that will host the instance.
We're in the Cloud Era. VPSes are cheap (as low as $5/mo these days). Shared hosting is even cheaper and useful for some tasks. Servers are everywhere.

For devs.

Layfolk can use servers we devs build.

Despite Moxie Markingspike's wise caution to the contrary, personal server space for microcontent can eventually become as ubiquitous as email servers are today. Tim Berners-Lee's Solid pods are just one of several options pointing the way toward commoditization of managed personal servers.

I have some VPSes I'm not currently using for anything beyond testing. If there's earnest (read "funded"*) interest in exploring a federated system that includes LiveCode, I can drop Nextcloud on one and we'd have a solid foundation we could build on, with project and team management already built in.
I assume LiveCode HQ would need to be involved, be aware, approve so maybe they would host an ActivityPub protocol running on one of their their servers.
Shouldn't be needed, and advisable against for at least three reasons:

1. They already have no shortage of things to do. Everyone in the community depends on the engine team staying focused on the engine.

2. Seeking any centralized solution runs counter to the goals of decentralization.

3. A small indy team funded to do one thing can move both faster and more nimbly than an IDE vendor who would need to constantly evaluate how the evolving project fits into their very different business model.


* The requirement for finding funding is twofold: first, it makes it practical to take time away from other funded work so things actually get done; and second, perhaps most importantly, it weeds out the myriad possibilities of fun-in-the-moment-but-not-really-useful things that can too quickly fill weeks, which can become months, which can become years. Money comes and goes, but time only goes. Invest wisely.

Re: Fediverse, RSS, Development, Scripting

Posted: Thu Nov 17, 2022 4:22 am
by bobcole
FourthWorld wrote...
...
Another area of Fediverse integration worth considering is Nextcloud :
https://apps.nextcloud.com/
What began as a one off the better file synching tools has evolved to become the definitive open source platform for self-hosted organizational collaboration.
...
I installed NextCloud on my LiveCode Hosting account and am now in the process of learning what it does. Apparently it can do quite a lot of things through add-on apps.
I'll get back to it after the PHP memory limit is raised sufficiently (it is choking on some things like displaying image files).

Thanks for the recommendation.
Bob

Re: Fediverse, RSS, Development, Scripting

Posted: Thu Nov 17, 2022 6:30 am
by FourthWorld
If you have any questions about Nextcloud feel free to send me a PM and we can set up a time to chat if you like.

I've been very impressed with the way Frank Karlitschek has been managing that project (their recent hire for dev evangelism was an especially smart move), and their marketing director Jos Poortvliet used to be their community manager, and it shows in their dev-centric outreach. Happy to pass along any useful tips I've learned in my journey.