Skip to main content

Kevin reshared this.

Thinking how great it is that one rich dude can't buy the fediverse.

Kevin reshared this.

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?
I think you can get away with using nodeinfo to perform a lookup?

Not ActivityPub proper, and kind of a hack, but you could totally use that to determine platform.
'.well-known/nodeinfo' works perfectly! thanks @Sean Tilley

There's only one book I want to read, and I can't have it.

Activitypub Question

So, lets say you look up a user by their address like
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 | jq

Kevin reshared this.


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"

Kevin reshared this.

Happy #ValentinesDay everyone! 😍
A couple kissing: "You had me at 'Let's encrypt!'"

Kevin reshared this.

Kevin reshared this.

I need privacy. Not because my actions are questionable, but because your judgement and intentions are.

Kevin reshared this.


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 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!
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.
LitePub is also interesting here:
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)
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.
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
Very cool! Those are some good lists!
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.
@pukkamustard What do you mean when you say "Breaks the Actor model"?
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.

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.

Kevin reshared this.

Kevin reshared this.

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
  • 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 be
cd 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!
@Friendica News
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.


Let the Music Play

Kevin reshared this.

"Hopefully this hasn't been posted before"

submitted by PM_ME_UR_ROUND_ASS

Kevin reshared this.

This is way too accurate 🤣

Kevin reshared this.

#tilvids video of the day - #Ukraine Border Crisis Explained: Are we on the brink of war? 🇺🇦


Kevin reshared this.

Found this gem browsing HN today

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?
Economics isn't a real subject
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!)

#retrogames #Nintendo #gaming #PeerTube

2 people reshared this