How to tell type of activitypub server
@Sean Tilley @Nolan @Hypolite Petovan so I know '<domain name>/api/v1/instance' will give you info about a server, but it won't tell you what type of server it is. Is there another common activitypub endpoint for that?
Sean Tilley likes this.
Activitypub Question
So, lets say you look up a user by their address like kevin@friendgroup.social
You do a webfinger query to get their profile page
with their profile url, you can do an activitypub query to get their profile object.
Is there an activitypub query I can run against the domain or profile url to get what kind of server it is? Mastodon, or Pleroma or whatever?
You do a webfinger query to get their profile page
with their profile url, you can do an activitypub query to get their profile object.
Is there an activitypub query I can run against the domain or profile url to get what kind of server it is? Mastodon, or Pleroma or whatever?
Kevin reshared this.
Note to self:
Getting AP objects with curl
curl -H Accept:application/activity+json https://mastodon.ml/@drq | jq
Getting AP objects with curl
curl -H Accept:application/activity+json https://mastodon.ml/@drq | jq
Dr. Quadragon ❌ (@drq@mastodon.ml)
42.1K Posts, 447 Following, 1.78K Followers · Sysadmin, Unix punk, Technolojesus, and Free Software freak Pronoun: he/his Bit of an SJW. Militant atheist and battle skeptic. Devil's advocate. Devout Saganist.Mastodon.ml
Hyper-V
I'm so disappointed that Microsoft couldn't build partition management into it's own hypervisor. You have to boot into linux to resize a windows partition because Microsoft is too lazy to include that feature. Also, enhanced session doesn't work for linux VMs without a hack. It's like they didn't design Hyper-v for windows or linux. They just built it and said, "here's something mediocre, now use it"
ActivityPub
So I've been trying to learn more about ActivityPub lately, but it's been pretty hard to get started.
I tried reading the spec, but it's not that helpful. It's vague and hard to understand. I just want to see some examples I can plug into postman. Also, the examples they show are useless without showing the headers you would need to add to the request.
There are some tutorials by Eugen (Gargron). They are ok, but I couldn't get his examples to work. (I'm sure they are great examples, but I don't know enough to debug/modify them to work for me)
There's a whole website activitypub.rocks that really tries to group all the activitypub info together, common libraries, projects, theres a test suite, but no examples.
So what finally worked? I just downloaded the #Friendica code and started stepping through it in PHPStorm! and I would recommend anyone wanting to learn more about #ActivityPub do the same. Its a little work setting it up, but you can just set breakpoints and watch all the activitypub requests as they happen and see how they are used!
I tried reading the spec, but it's not that helpful. It's vague and hard to understand. I just want to see some examples I can plug into postman. Also, the examples they show are useless without showing the headers you would need to add to the request.
There are some tutorials by Eugen (Gargron). They are ok, but I couldn't get his examples to work. (I'm sure they are great examples, but I don't know enough to debug/modify them to work for me)
There's a whole website activitypub.rocks that really tries to group all the activitypub info together, common libraries, projects, theres a test suite, but no examples.
So what finally worked? I just downloaded the #Friendica code and started stepping through it in PHPStorm! and I would recommend anyone wanting to learn more about #ActivityPub do the same. Its a little work setting it up, but you can just set breakpoints and watch all the activitypub requests as they happen and see how they are used!
2 people like this
It’s a little bit weird at first, but it helps to understand some of the technologies that came before it: namely, OStatus and the Diaspora protocol.
The big thing is that this is a network comprised of Actors. An Actor is usually a Person, but it can otherwise be an Organization or a Group. Actors perform Activities on Objects - generally, these interactions can be represented in a stream of some kind.
In the ActivityPub world, Actors have an Inbox for ingesting subscribed content (activities and objects from other actors), and an Outbox for dispatching their own stuff, which is then sent out to a collection of Followers. Most implementations have a notion of permissions, in the sense of who is allowed to parse or even receive an Activity.
Of course, the protocol and implementations go way deeper into that, but this is the general gist of how ActivityPub is supposed to work.
The big thing is that this is a network comprised of Actors. An Actor is usually a Person, but it can otherwise be an Organization or a Group. Actors perform Activities on Objects - generally, these interactions can be represented in a stream of some kind.
In the ActivityPub world, Actors have an Inbox for ingesting subscribed content (activities and objects from other actors), and an Outbox for dispatching their own stuff, which is then sent out to a collection of Followers. Most implementations have a notion of permissions, in the sense of who is allowed to parse or even receive an Activity.
Of course, the protocol and implementations go way deeper into that, but this is the general gist of how ActivityPub is supposed to work.
ActivityPub
The ActivityPub protocol is a decentralized social networking protocol based upon the [ActivityStreams] 2.0 data format.www.w3.org
Yeah, thanks for the overview @Sean Tilley
It's a pretty big spec and kinda overwhelming,
I haven't even read about OStatus or the Diaspora protocol yet, but I should really look at them too. Maybe I'll do that next week.
I think the biggest problem I had is, if you want to start from scratch, you have to write quite a bit of code just to post a message to mastodon/friendica, and I had a much easier time looking at an existing project's code than writing my own. (I'm lousy at web programming. I mostly write desktop apps in C#)
Also, I just want to say, I'm amazed level of interoperability between all these projects (especially mastodon, pixelfed, pleroma and friendica)
It's a pretty big spec and kinda overwhelming,
I haven't even read about OStatus or the Diaspora protocol yet, but I should really look at them too. Maybe I'll do that next week.
I think the biggest problem I had is, if you want to start from scratch, you have to write quite a bit of code just to post a message to mastodon/friendica, and I had a much easier time looking at an existing project's code than writing my own. (I'm lousy at web programming. I mostly write desktop apps in C#)
Also, I just want to say, I'm amazed level of interoperability between all these projects (especially mastodon, pixelfed, pleroma and friendica)
Also check out the #ActivityPub guide to new implementers, and - since it is a 'crowdsourced wiki post - consider making improvements based on your own experience getting started.
#SocialHub community is good for asking questions, and in the archive of topics you may find a lot of helpful stuff.
https://socialhub.activitypub.rocks/t/guide-for-new-activitypub-implementers/479
#SocialHub community is good for asking questions, and in the archive of topics you may find a lot of helpful stuff.
https://socialhub.activitypub.rocks/t/guide-for-new-activitypub-implementers/479
Guide for new ActivityPub implementers
This wiki post is a place for collaboratively drafting ActivityPub documentation with the hope that this material may be incorporated into proposed improvements to the activitypub.SocialHub
2 people like this
Yeah, the hardest part is just finding a good starting point. I'm kind of on the fence about forking #Pleroma, but I'd have to double down on my knowledge of Elixir and JavaScript to be any good with it.
Depending where you wanna go and most familiar with, that may be a good starter. There's also #Bonfire in #Elixir which is setting in a new direction I find exciting. And they can need helping hands now that they are moving towards a beta for their Social components.
@kevin are you familiar with the #Fediverse #delightful lists? They can be found at https://codeberg.org/fediverse
@kevin are you familiar with the #Fediverse #delightful lists? They can be found at https://codeberg.org/fediverse
Kevin likes this.
It helps a bit to understand the actor model and realize that activities are messages being passed to an actor.
Sadly AP breaks the actor model *caugh*because Mastodon*caugh* but otherwise it fits the model pretty well and thus could use an alternate transport such as what @pukkamustard is doing.
Sadly AP breaks the actor model *caugh*because Mastodon*caugh* but otherwise it fits the model pretty well and thus could use an alternate transport such as what @pukkamustard is doing.
Sean Tilley likes this.
@pukkamustard
In an Actor model system, messages are sent to an actor.
In ActivityPub, sharedInbox breaks the actor model by placing work on the server to filter on whether or not the message should be delivered to the recipient, rather than sending it to multiple recipients.
This violates the principle in an actor model system that an Actor should be the computational unit of work.
...
In an Actor model system, messages are sent to an actor.
In ActivityPub, sharedInbox breaks the actor model by placing work on the server to filter on whether or not the message should be delivered to the recipient, rather than sending it to multiple recipients.
This violates the principle in an actor model system that an Actor should be the computational unit of work.
...
@pukkamustard
The right (tm) way of handling this IMHO is to either not offer a sharedInbox or else to have a special Actor called _all whose job it would be to decide who to deliver to, but by using this concept called a sharedInbox, you violate that principle.
https://www.oreilly.com/library/view/scala-reactive-programming/9781787288645/8253d31d-ed61-46c3-8c69-9d49d8d8ab07.xhtml
The right (tm) way of handling this IMHO is to either not offer a sharedInbox or else to have a special Actor called _all whose job it would be to decide who to deliver to, but by using this concept called a sharedInbox, you violate that principle.
https://www.oreilly.com/library/view/scala-reactive-programming/9781787288645/8253d31d-ed61-46c3-8c69-9d49d8d8ab07.xhtml
Scala Reactive Programming
Principles of the Actor Model (or properties of Actor in the Actor Model) The Actor Model has the following principles: Everything is an Actor In the Actor Model, an Actor … - Selection from Scala Reactive Programming [Book]O’Reilly Online Learning
Kevin reshared this.
Friendica 2022.02 released
We are very happy to announce the availability of the new stable release of Friendica “Siberian Iris” 2022.02. This is the first release containing the work of the Arabic translation team – thanks a lot for your work! Other highlights of the release are
For a detailed overview of the changes, please have a look at the CHANGELOG.
Please note: With this release the minimal PHP version that Friendica requires is PHP 7.3 and later. Known issues with PHP 8 are collected in the issue tracker at github, though Friendica seems to work fine with PHP 8 now.
Deprecation Warning: Some old and unmaintained addons have been removed from the core addon repository. These addons are: blogger, buffer, jappixmini, notimeline, xmpp.
If you are updating from an older version than the 2021.09 release, please first update your Friendica instance to that version.
Ensure that the last backup of your Friendica installation was done recently. We had no problems reported during the upgrade process from 2021.09 to the 2021.12 release candidate, so hopefully you will have a smooth transition.
Updating from the git repositories should only involve a pull from the Friendica core repository and addons repository, regardless of the branch (stable or develop) you are using. Remember to update the dependencies with composer as well. So, assuming that you are on the
cd friendica
git pull
bin/composer.phar install --no-dev
cd addon
git pull
If you want to use a different branch then the
Pulling in the dependencies with composer will show some deprecation warning, we will be working on that in the upcoming release.
We will provide the “full archive” shortly.
The database update should be applied automatically, but sometimes it gets stuck. If you encounter this, please initiate the DB update manually from the command line by running the script
bin/console dbstructure update
from the base of your Friendica installation. If the output contains any error message, please let us know using the channels mentioned below.
Please note, that some of the changes to the database structure will take some time to be applied, depending on the size of your Friendica database.
None at the time of writing.
If you want to contribute to the project, you don’t need to have coding experience. There are a number of tasks listed in the issue tracker with the label “Junior Jobs” we think are good for new contributors. But you are by no means limited to these – if you find a solution to a problem (even a new one) please make a pull request at github or let us know in the development forum.
Contribution to Friendica is also not limited to coding. Any contribution to the documentation, the translation or advertisement materials is welcome or reporting a problem. You don’t need to deal with Git(Hub) or Transifex if you don’t like to. Just get in touch with us and we will get the materials to the appropriate places.
Thanks everyone who helped making this release possible and have fun!
https://friendi.ca/2022/02/06/friendica-2022-02-released/
- The video tab was removed from the profile, in exchange Friendica profiles now have a media tab, showing postings that contain more then just text.
- An addon to allow usage of WebDAV for the storage back-end has been added.
For a detailed overview of the changes, please have a look at the CHANGELOG.
How to Update
Please note: With this release the minimal PHP version that Friendica requires is PHP 7.3 and later. Known issues with PHP 8 are collected in the issue tracker at github, though Friendica seems to work fine with PHP 8 now.
Deprecation Warning: Some old and unmaintained addons have been removed from the core addon repository. These addons are: blogger, buffer, jappixmini, notimeline, xmpp.
Updating from old Friendica versions
If you are updating from an older version than the 2021.09 release, please first update your Friendica instance to that version.
Pre-Update Procedures
Ensure that the last backup of your Friendica installation was done recently. We had no problems reported during the upgrade process from 2021.09 to the 2021.12 release candidate, so hopefully you will have a smooth transition.
Using Git
Updating from the git repositories should only involve a pull from the Friendica core repository and addons repository, regardless of the branch (stable or develop) you are using. Remember to update the dependencies with composer as well. So, assuming that you are on the
stable
branch, the commands to update your installation to the 2022.02 release would becd friendica
git pull
bin/composer.phar install --no-dev
cd addon
git pull
If you want to use a different branch then the
stable
one, you need to checkout the branch before your perform the git pull.Pulling in the dependencies with composer will show some deprecation warning, we will be working on that in the upcoming release.
Using the Archive Files
We will provide the “full archive” shortly.
Post Update Tasks
The database update should be applied automatically, but sometimes it gets stuck. If you encounter this, please initiate the DB update manually from the command line by running the script
bin/console dbstructure update
from the base of your Friendica installation. If the output contains any error message, please let us know using the channels mentioned below.
Please note, that some of the changes to the database structure will take some time to be applied, depending on the size of your Friendica database.
Known Issues
None at the time of writing.
How to Contribute
If you want to contribute to the project, you don’t need to have coding experience. There are a number of tasks listed in the issue tracker with the label “Junior Jobs” we think are good for new contributors. But you are by no means limited to these – if you find a solution to a problem (even a new one) please make a pull request at github or let us know in the development forum.
Contribution to Friendica is also not limited to coding. Any contribution to the documentation, the translation or advertisement materials is welcome or reporting a problem. You don’t need to deal with Git(Hub) or Transifex if you don’t like to. Just get in touch with us and we will get the materials to the appropriate places.
Thanks everyone who helped making this release possible and have fun!
https://friendi.ca/2022/02/06/friendica-2022-02-released/
9 people like this
13 people reshared this
@Friendica News
Updating 1adbdfb8d..72c4ed95f
error: Your local changes to the following files would be overwritten by merge:#
whats going worng?
Updating 1adbdfb8d..72c4ed95f
error: Your local changes to the following files would be overwritten by merge:#
whats going worng?
@Olaf auf Friendica you seem to have made some changes to tracked files.
gid status
will show you which files were changed, git diff
will show you all the changes.SomeBODY
https://youtu.be/rlYys58hsCU
"All Star" by Smashmouth but every word is someBODY
me: yo hand me the aux cordfriend: you better not play smashmouth but every word is "someBODY"me:plz follow me on twitter my old account got suspended @james...YouTube
Let the Music Play
https://youtu.be/NCSHF1rm3Y4
Let the Music Play (12 Inch Version)
Provided to YouTube by Unidisc Music Inc.Let the Music Play (12 Inch Version) · ShannonLet the Music Play℗ 2006 Unidisc Music Inc.Released on: 2006-01-01Main...YouTube
Kevin reshared this.
#tilvids video of the day - #Ukraine Border Crisis Explained: Are we on the brink of war? 🇺🇦
https://tilvids.com/w/qZNvzRHvTVs8RYp3G7EUYN
#PeerTube
https://tilvids.com/w/qZNvzRHvTVs8RYp3G7EUYN
#PeerTube
Ukraine Border Crisis Explained: Are we on the brink of WAR?
Russian troops are lining up in troves along Ukraine’s Eastern borders while making severe demands to NATO and the USA.TILvids
Kevin reshared this.
Found this gem browsing HN today
https://puginarug.com/
The Pug in the Rug
Watch the Pug be in the Rug. Level up and maximize the amount of pug in your life.The Pug in the Rug
Kevin reshared this.
If you think that every interaction, relationship, and motive for doing some is transactional and economic in nature, I'm sorry, but the Capitalism worms have eaten your brain.
Kevin reshared this.
If you reduce all of human behavior down to ONE factor, like Marxism does with power structures, you produce an incomplete theory that inevitably falls apart. A complete theory of human behavior has yet to be constructed because humans, like all animals, are testing a functionally infinite plurality of survival strategies and competing to see which are optimal and under what circumstances.
However, if you discount entire fields like physics and economics because they alone do not sufficiently convey the complexity of human nature to your liking, you blind yourself to numerous factors which will help you to understand people, and that's not a good way for a member of a society to behave.
It's good that you said "if" because I alluded to no such thing. My view of this conversation was like this:
Sean: Don't reduce all of human behavior to economics!
You: You should reduce it to physics instead!
And then when I pointed out that you can't reduce all of human behavior to physics either, you somehow inferred I was discounting either of these fields?
Sean: Don't reduce all of human behavior to economics!
You: You should reduce it to physics instead!
And then when I pointed out that you can't reduce all of human behavior to physics either, you somehow inferred I was discounting either of these fields?
I disagree, it's as real a subject as religion. I'm recruiting for my own church if you're interested.
Kevin reshared this.
#tilvids video of the day - #Battletoads: The Complete History 🎮
(follow @slopesgameroom for more great retro game history!)
https://tilvids.com/w/go5ASh9Du6BYEdy56erJa3
#retrogames #Nintendo #gaming #PeerTube
(follow @slopesgameroom for more great retro game history!)
https://tilvids.com/w/go5ASh9Du6BYEdy56erJa3
#retrogames #Nintendo #gaming #PeerTube
Kevin likes this.
2 people reshared this
Sean Tilley 1 year ago •
Not ActivityPub proper, and kind of a hack, but you could totally use that to determine platform.
Hypolite Petovan likes this.
Kevin 1 year ago
Hypolite Petovan likes this.