Search
Items tagged with: ActivityPub
I've been thinking about the demise of botsin.space. Running a site for bots is hard (and expensive) but writing and running an ActivityPub-based bot should be easy.
To prove this was the case I added experimental support for bots/automations to Ktistec in the form of scripts that the server periodically runs. These scripts can be in a programming language of your choice. The server provides credentials for its API in the process environment (if you can use curl you can publish posts), simple interaction happens via stdin/stdout/stderr, and the complexity of using ActivityPub is abstracted away.
The code is only available on the following branch for the moment:
https://github.com/toddsundsted/ktistec/commits/run-scripts/
There are a couple example shell scripts here:
https://github.com/toddsundsted/ktistec/commit/4982925a...
I have a few enhancements in mind, but it's already proven useful as a means to periodically log data from my server host, and I'll use it, when finished, to publish release notes.
#ktistec #activitypub #fediverse #bots
GitHub - toddsundsted/ktistec: Single user ActivityPub (www.w3.org/TR/activitypub/) server.
Single user ActivityPub (https://www.w3.org/TR/activitypub/) server. - toddsundsted/ktistecGitHub
Echo for #Lemmy is now available! Goodbye #Reddit, Hello @LemmyDev. #Fediverse #ActivityPub 👋
https://echo.rrainn.com/download/iphone
Echo for Lemmy
Echo for Lemmy is an iOS client for Lemmy, a community based link & text sharing decentralized social platform. - Connect with communities based on your interests. - Sort your feed by most active, trending posts, new posts, and many more.App Store
We are looking for a new member for our #Mastodon core team to work with @Gargron, @renchap and @Claire on building the Mastodon #backend and web app!
This is a #remote #fulltime position and requires an overlap with the CET timezone.
Ideally:
- You are a #Ruby expert
- With prior experience in maintaining #opensource projects
- Prior knowledge of #ActivityPub is a big plus!
For more info and to apply:
https://jobs.ashbyhq.com/mastodon/de1e4d8a-5639-4b6a-86d7-97bd9c768b02
I'm building a public Autospam detection service that will be compatible with Pixelfed, Mastodon and other projects!
I'm leveraging my expertise* in Autospam, along with my 3 year old dataset to build the best fediverse Akismet alternative.
Are you interested? Boosts appreciated!
#pixelfed #fediverse #spam #autospam #activitypub #mastodon
Autospam and Naive Bayes: The Grandfather of Spam Filters Still Making Waves - Pixelfed blog
In the ever-evolving landscape of digital communication, where spam seems to adapt and find new ways to infiltrate our inboxes and social media feeds, it's fascinating to discover...pixelfed.blog
[strong]Frage: Warum wird in Friendica ein weitergesagter Beitrag von einen anderen Friendica Account anders als ein weitergesagter Beitrag von einen anderen via ActivityPub verbundenen Account behandelt?[/strong]
Wenn ich einen Beitrag von einen Friendica Account normal weitersage, also nicht zitiere, sieht das so aus:
Wenn ich hingegen einen Beitrag der via ActivityPub kommt weitersage sieht das so aus:
Hat es einen Hintergrund das das so unterschiedlich gehandhabt wird? Die Variante mit dem weitergesagten Beitrag von einen Friendica Account sieht eher wie das Zitieren aus, dass man bei einen Diaspora Account hat.
#Friendica #Weitersagen #ActivityPub #Diaspora #Darstellung #german #2022-10-05 !Friendica Support
Esiste un modo per parlare di Fediverso senza far esplodere i testicoli dei nostri interlocutori? Beh, noi ci abbiamo provato…
The Podcast Index has an ActivityPub implementation, and now I can follow some of my more irreverent non-techie podcasts directly on the fediverse. So cool! Hopefully they'll add a Follow button soon...but in the meantime:
1) Find your podcast on the site
2) Grab the numeric value at the end of the url
3) Search for the podcast with this name `{numericValue}@ap.podcastindex.org`
Podcastindex.org
The Podcast Index is here to preserve, protect and extend the open, independent podcasting ecosystem.podcastindex.org
Don't be too hasty! That would be unfair. Let's see how well it integrates first. ☝️😌
#activitypub #threads #meta 🤢 #fediverse
My tiny #ActivityPub server is now a massive... 64KB.
Yup. Kilobytes.
* It can send posts with attached images & alt text.
* Reply to posts with a proper thread.
* Read replies sent to it.
* Follow #Fediverse accounts and see their posts & edits.
* You can follow it.
* Hell, it even does HTTP Message Signature Verification!
All of this in a single PHP file. No database, no Docker, no dependencies, no AI.
You can grab the code at https://gitlab.com/edent/activitypub-single-php-file/
😎
Terence Eden / ActivityPub-Single-PHP-File · GitLab
A single PHP file which acts as a basic ActivityPub server.GitLab
Since we integrated with ActivityPub at the end of last year, Minds has added 32,000+ new users to the network via federation, from 2,200+ different ActivityPub networks.
With our new Networks product (https://minds.com/about/networks), anyone can launch their own network in a matter of minutes. These networks can federate with Minds and the rest of ActivityPub too. Your data, your community, your rules.
Building a network of networks.
#decentralization #growth #opensource #activitypub #fediverse
Threads is preparing to venture deeper into the fediverse.
That comes courtesy of Alessandro Paluzzi, who frequently reverse engineers and reveals Threads and Instagram features.Wes Davis (The Verge)
@raroun Nein, nicht abstrus, sonderen dem Zweck angepasste Plattform auswählen.
#Friendica ist Micro- und Macroblogging
#Pixelfed ist fürs Teilen von Bildern.
Dea ist eben das #Fediverse. Es gibt nicht die ein und alle Plattform für ein und alles. Sondern es gibt verschiedene Dienste - sie sind alle über #ActivityPub verbunden.
✅ My #ActivityPub post has location metadata in it!
👀 The post has been federated to Mastodon & PixelFed!
❌ The embedded geotag isn't shown in either of them (Mastodon doesn't support it, PixelFed doesn't show it for non-native posts).
Next step, find a SIMPLE ActivityPub server (preferably in PHP) which I can use to build this service.
Also that #activitypub supports unlimited number options but Mastodon server limits to 4 because the developers feels like?
Also that Friendica doesn't handle polls (but at least display them)?
- Yes of course (46%, 12 votes)
- No of coursen't (30%, 8 votes)
- That's madness (46%, 12 votes)
- 4 choices aren't enough (73%, 19 votes)
Falls ihr einen WordPress Blog habt
If you have a WordPress blog
Aktiviert doch das Activity Pub Plugin von Herrn Pfefferle! Das ist kinderleicht und eure Seite ist sofort föderiert! Schickt mir gern den Link, ich abonniere euch.
Activate the Activity Pub plugin from Mr. Pfefferle! It's child's play and your site is instantly federated! Send me the link and I'll subscribe you.
https://wordpress.org/plugins/activitypub/
https://word.undead-network.de/2024/01/10/falls-ihr-einen-wordpress-blog-habt-if-you-have-a-wordpress-blog/
#activitypub #federation #Fderation #wordpress #wp
ActivityPub
The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.WordPress.org
Frage | Wenn ich einen fremden Kommentar bei einen meiner Beiträge lösche, wird das dann auch auf via ActivityPub verbundenen Server gelöscht oder nur bei mir?
Hintergrund ist das eben jemand meinte das das dann eben anscheinend nur bei mir gelöscht würde, was in meinen Augen recht sinnfrei wäre.
Tags: #Frage #ActivityPub #Friendica #Beiträge #Kommentare #Löschen #Sascha #2024-01-03 !Friendica Support
THe one thing I realized while attending #ActivityPub University is the fragile balance between "marketing" aka shitposting your project and actually coding
anyone can write a line of code, but would anyone care unless they know about it?
so my advice is to shitpost and then build an #activitypub platform (it worked for pixelfed, that shit didn't federate for months lol)
#WordPress #ActivityPub #Debugging #Help!
At https://tepewu.pl/@community sits my new Wordpress with full complement of #AP plugins: ActivityPub official from Automattic, Webfinger, nodeinfo and even Friends.
My Friendica gladly added it to my contacts and even retrieved site logo. And that's it. Nothing shows in my Friendica feed, I am not visible on the followers list there.
Before I start nagging the support, perhaps someone had this drill already?
Looks like the #threadiverse has been widely used by the #Lemmy and #Kbin communities for years, but now it's slowly being co-opted (including by #Meta staff) to refer to the #federation of #Threads.
I predict a complete takeover of the #hashtag, and term in general, before the end of 2024.
#Mastodon #ActivityPub #fediverse #socialweb #hashtags #predictions
Instead, I now need to teach my JSON parser about how to navigate the object and how to resolve a URI—breaking the abstraction layer—or I need to do some rather clever (clever being used here as a negative epithet) and complicated—to get it to navigate all of these aspects.
Oh, and then I need test cases.
So.
So.
Many test cases.
11/11
You can't even generally generate the code.
If it were consistent:
If next/prev and current/first/last were always URIs
if the information was aways on a page, perhaps if the collection was of type _CollectionPage_ rather than having CollectionPage be of type _Collection_.
If it disallowed Link objects.
Then I could easily build a pagination system around it where:
var page = loads(json)
var next = resolve(page.next)
var items = page.items
and we're done.
10/
Remember we're working in a declarative system, for the most part.
So how do we tell it "sometimes this object may have its items in items, sometimes it may have it in current.items, sometimes it may have it in resolve(current).items, and sometimes it may have it in resolve(current.href).items"?
Oh, items might be a set of objects, a set of URIs, or a set of Links.
None of the major systems are built for this sort of thing, and building in that logic is a _lot_ of work.
9/
So the collection page object can also be… paginated?
It's a B-tree?
Also because OrderedCollection is defined as a type of Collection, you could presumably have your Collection object return OrderedCollectionPages, or even a mix of Collection and OrderedCollectionPages.
Which means you're back to checking for orderedItems after all, even when you think you have a "collection" object, as soon as you deserialize the page.
Back up to the Collection itself.
8/
Or separate classes entirely with different definition mapping to the same values.
Not the end of the world, but a touch annoying, and not something you can do trivially in one throw of the parser. You're adding a fair bit of manual work to do this in each case.
But that current object…
It can be an object or a URI or a Link object. Once I follow it I get a collection page…
But a collection page is also a type of collection.
7/
But that's not what we're focusing on here.
Here instead you need to first check the _items_ to see if it is populated. If it isn't then you need to check the _current page_ and see if this collection is a paged collection.
If items is populated you are done, except wait, in an ordered collection it can be orderedItems
This means that, instead of having OrderedCollection be a subtype of Collection (OrderedCollection <: Collection), in most of these tools it needs a oneof
6/
So first of all, the Collection itself is completely untyped. I can't hand a collection to you and expect you to know what's inside of it.
What can be inside are any mixture of:
* URI references
* Objects, which can be heterogeneous
* Link objects
So we're probably extracting it into a List<Object> in our first pass, though some modern serializers know how to work around this, self-describing types are relatively rare and mostly these sorts of tools prefer a little more.
5/
Instead, I want to ask the following question:
Given a typical JSON parser in most mainstream language, where we construct the representation of the object declaratively (throw a dart: Jackson, Gson, Yojson, literally anything based on JSON Schema or OpenAPI, etc), how much work should be expected in order to extract the items from the (potentially paginated) collection and put them in whatever the local equivalent of a List or a Set is?
4/