Socialhome v0.1.0 released

The plan was to start doing releases either when 1) enough features are implemented to satisfy a certain level of use or 2) when the first non-project instance is running.

Since the latter happened (yay!) yesterday, I decided to push out the first initial release of #Socialhome today. The first version 0.1.0 includes the following main features:

  • Streams (followed, public, profiles)
  • Content creation
  • Content OEmbed / OpenGraph previews
  • Replies
  • Follow/unfollow of profiles
  • Contacts list
  • Pinning content to profile

The rationale of moving to releases is that other node maintainers will have an easier job running their node. A changelog will be kept for any noteworthy changes that users or node maintainers should be aware of. Releases will happen probably every few months, depending on what lands in master branch.

If you run an instance following the master branch, please keep an eye on the changelog for any important changes when pulling in fresh code.

Interested in trying Socialhome or participating?

#federation #thefederation

Socialhome HQ - Socialhome

Socialhome HQ
7 hours ago

Anyway, this profile is likely to remain sparse for a while. The reason is simple: while I wanted to have a foothold in the #Federation, and #Socialhome appeals to me a lot more than the alternatives, I also want to remain relatively anonymous, and way too much of my activity online is tied to my real name.

Another thing is that while federated social networks are wonderful, they do force me to consider what content I'm willing to let fly free on dozens of other servers, completely out of my control, with no effort on anyone's part. Which is just how it works.

a day ago

Can't help but notice that the #Federation is a lot more active than the #Fediverse despite fewer users... except that seems to be largely due to a few commercial outfits -- including newspapers -- spamming links. Also a few people launching into the equivalent of tweetstorms, despite the lack of tight post length limits.

2 days ago

federation version 0.13.0 released

This #Python #federation library release mostly fixes compatibility with the latest #Diaspora federation protocol changes that are rolling out to some nodes.



Backwards incompatible changes

  • When processing Diaspora payloads, entity used to get a _source_object stored to it. This was an etree.Element created from the source object. Due to serialization issues in applications (for example pushing the object to a task queue or saving to database), _source_object is now a byte string representation for the element done with etree.tostring().


  • New style Diaspora private encrypted JSON payloads are now supported in the receiving side. Outbound private Diaspora payloads are still sent as legacy encrypted payloads. (issue)
    • No additional changes need to be made when calling handle_receive from your task processing. Just pass in the full received XML or JSON payload as a string with recipient user object as before.
  • Add created_at to Diaspora Comment entity XML creator. This is required in renewed Diaspora protocol. (related issue)


  • Fix getting sender from a combination of legacy Diaspora encrypted payload and new entity names (for example author). This combination probably only existed in this library.
  • Correctly extend entity _children. Certain Diaspora payloads caused _children for an entity to be written over by an empty list, causing for example status message photos to not be saved. Correctly do an extend on it. (issue)
  • Fix parsing Diaspora profile tag_string into Profile.tag_list if the tag_string is an empty string. This caused the whole Profile object creation to fail. (issue)
  • Fix processing Diaspora payload if it is passed to handle_receive as a bytes object. (issue)
  • Fix broken Diaspora relayables after latest 0.2.0 protocol changes. Previously relayables worked only because they were reverse engineered from the legacy protocol. Now that XML order is not important and tag names can be different depending on which protocol version, the relayable forwarding broke. To fix, we don't regenerate the entity when forwarding it but store the original received object when generating a parent_author_signature (which is optional in some cases, but we generate it anyway for now). This happens in the previously existing entity.sign_with_parent() method. In the sending part, if the original received object (now with a parent author signature) exists in the entity, we send that to the remote instead of serializing the entity to XML.
    • To forward a relayable you must call entity.sign_with_parent() before calling handle_send to send the entity.


  • Post.photos entity attribute was never used by any code and has been removed. Child entities of type Image are stored in the Post._children as before.
  • Removed deprecated user private key lookup using user.key in Diaspora receive processing. Passed in user objects must now have a private_key attribute.

Python library for abstracting social federation protocols

Jason Robinson
6 days ago

A symbolic donation challenge

Since you are reading this post I guess you are directly interested in the improvement of Diaspora*. As you probably know Diaspora* couldn't improve without the hard and enthusiastic work of the developers. That is why

I challenge you to give at least a symbolic €0.01/week amount to the Diaspora* developers

€0.01/week is not much. It just €0.52/year so probably you can easily afford that. I guess you throw away much more to buy some fancy junk you don't even need at all ;-)

Isn't €0.01/week too little?

Yes, it is symbolic, but it is much more than nothing.

Also it can be a lot if most of us are willing to join (especially if some of us are willing to give a bit more).

For example, imagine if just 1% of the currently registered users of the federation have been taking this challenge. That would mean about €65/week for the developers. Just 15% of the users that were active in the past 6 month could give €75/week this way. 70% of the monthly active users could give €105/week for the developers by this "symbolic" donation.

Of course, you are free and encouraged to give more. (I also do so.)

How to participate?

Please, also encourage others to join this cause by spreading the message and voting on the poll below.

#diaspora #developer #donation #liberapay #crowdfunding #freesoftware #free-software #opensource #open-source #foss #floss #gnu #freedom #privacy #poll #hubzilla #gnusocial #friendica #federation

Gergely (∀E∃A)
7 days ago

I spent way too much time making this. #federation #clippy

Sean Tilley
10 days ago

I finally managed to add a working "comment on Diaspora" button on my blog posts: it will ask to the user the domain of his pod and will open the post in that pod so the users of every pod that federate with mine will be able to comment! Note: it will work only with recent posts on my blog, I need to update the old ones.

#diaspora #federation #blogging #wordpress

Alessandro Longo
16 days ago

Here's a thought: What if we FEDERATED rather than REGULATED things like evironmental standards and health and safety standards? When software is federated a given standard is created and adopted by those wishing to work on the project. No one is FORCED to use HTTP as a network protocol, one is totally free to create their own network protocol, but if they wish to join the community at large they will need to use the federated protocol. If a new protocol is created the only way a community will develop around it is if everyone can agree on what that protocol will be. And the only way that protocol, or software, or policy, gets adopted by others is if it's of sufficient merit for them to adopt it. So instead of creating a health and safety regulation policy for x or y region or country that is based on violence and force, and is unique to that location's legal code; why not create a federated and modular health policy that, that is voluntary, could be adopted by ANY country, state, or region, or individual even? In short instead of creating laws and regulations that don't adapt well and scale badly why not create voluntary federated protocols that DO adapt well, are modular, and CAN scale?

People all over the world seem to have the same problems. We have different values so may not all want to solve those problem in the same way, ergo modular policy, but there are just so many ways you can solve the same kind of problem. And if a new way is found surely someone else has the same problem and would find the new solution useful. All over the net I keep hearing "Look at what this country is doing. Look at what that country is doing. Why aren't we doing what those guys are doing?" Well to some extent it's economics. Putting in place renewable energy for example means that oil and gas gets less funding. Or making canabis and encouraging natural health services means the drug companies make less money. But to a large degree it's just the fact governments take a long time to debate the creation of policy. Now if we weren't debating government regulations and instead just deciding which predefined protocols to adopt that would save a lot of brain power, which obviously those deciding national policy are sorely lacking. :-)

#society #politics #opensource #federation #environment #health #idea

David McCauley
17 days ago

Hey, folks! I'm visiting #Portland for the first time next week! Does anyone in the Federation live out there?

#diaspora #federation

Sean Tilley
20 days ago

Followed stream is here!

Finally! The most basic feature of them all, seeing what the people you're interested in are writing about, has finally landed in #Socialhome. Why did it take this long? Well, before this many things had to be implemented, for example contacts on the #federation layer and actually following people in the UI.

Additionally, added a preferences screen for users. There is one preference available at the moment, choice of landing page. When logged in, users used to always see their own profile. Now you can choose what page you want to see when you log in or click the navbar logo. Tip: if you change it to a stream, access your profile via the "My Profile" link in the navbar.

Currently "profile" is the default (to keep old behaviour). I'm thinking of making the "followed" stream the default (which mimics what you see on other networks normally). Opinions?

Next: contact management! Have a feature that would make Socialhome more useful to you or make you want to try it? Let me know!

#devdiary #changelog

Socialhome HQ
20 days ago

Been in the #federated social sphere since 6 years or so and only now actually tried #Friendica 😱 Been spending way too much time looking through #Diaspora lenses..

Have to say it sure does have a lot of settings available. Had to create an account to test some #federation stuff with #Socialhome.

Jason Robinson
23 days ago

Profile content stream + minor redesign

Added now a new "All content" stream for each profile. This can be found in the user profile. It is always rendered by default if the profile is remote or is a local profile with no pinned content.

Also related to this a minor redesign of the profile page. The "stamped" area with profile information is now centered with two columns on xl-large screens, two columns on left for large screens and full-width on medium or smaller. It now has a user actions drop-down for modifying settings or profile content, and for other user profiles there are the home/follow/unfollow buttons as in stream content.

The navbar also received a rewrite as bumping a #Bootstrap 4 alpha version broke things again.


Would love to receive feedback on the usefulness of the profile stream, or streams in #Socialhome in general. If you have tried Socialhome, did you find the grid layout useful or confusing?

It is likely the design will live quite a bit in the future. The current one was really a "let's try this" idea which still needs to be proven. Underneath the code is starting to suffer from "spaghetti code" problems with lots of #jQuery events firing to pull the strings. I'm seriously considering rewriting the stream with either #React or maybe #Vue. Before that happens, it would be nice to have a clearer idea of the future stream #UX.

If you want to give feedback or discuss these things, feel free to leave some comments here or get in touch via chats or GitHub issues. Private messages don't yet work in the #federation layer so please don't send those yet.

Project info

As a reminder for new readers. Socialhome is a #Django powered project aiming to create a platform that allows users to create a simple social profile with dynamic content. All content is federated using the #Diaspora protocol. Streams are in a central role, and we plan to have many types of streams, including custom per user streams.

You can find the code here and some documentation. The official site is https://socialhome.network which is a Socialhome instance itself and open for registration. Feel free to play around and feedback is always welcome!

#devdiary #changelog

Socialhome HQ - Socialhome

Socialhome HQ
20 days ago (edited)

Nach dem NetzDG, 07.06.2017


#Diaspora #NetzDG #Hubzilla #Telepolis #Föderation #federation


Hubzilla connected people. Workshop
a month ago

#cuban #workers’ #federation: We will #never #sacrifice our #right to #build an #independent and #socialist #nation http://en.granma.cu/cuba/2017-06-19/we-will-never-sacrifice-our-right-to-build-an-independent-and-socialist-nation

Miguel Ungooglable Unfacebookable Rotunno
a month ago

Cloud Federation – Getting Social

#cloud #federation #getting #social

Nextcloud Planet (unofficial)
a month ago


Today, I have fiddled around a bit with the #gnusocial network, yesterday I checked out #Hubzilla. I must say that, for now, I find all of them pretty much equally good, but I found all of them to be weak in one very important aspect. I would like to know your thoughts about this.

IMHO, neither gnusocial, nor Hubzilla, nor diaspora* are handling #federation well. I would, from whatever I read about the systems, expect any pod, hub, or instance to be able to synchronise with all the others. There should be a protocol to gather all posts from all pods, hubs, or servers, not only the ones that someone from your own pod/hub/server has already added.

I opened what is here called the public activity on two different #quitter (a gnusocial installation) servers, only to be shown two entirely different timelines. Not even ten percent were shared content.

Maybe I have the wrong idea of what all this should be or has been made for, but as far as I can tell, social media are in part about a sufficient amount of people to connect with. At present, some instances only host a handful of people, others some dozens, and only very few are listing more than a hundred users.

I believe that only once all pods, hubs, and gnusocial servers connect to all the others (maybe even all the other protocols), than there will be a sufficient amount of people online to make those an interesting alternative for people who are tired of Facebook®, Twitter®, what have you, but still go there because only there they’ll find their friends, family, acquaintances, and interests all under one roof, so to speak.

Am I wrong? Or am I doing something wrong?

Babu Menos
a month ago

hallo, ich bin #neuhier.
Ich will herausfinden, wie ich #friendica mit #diaspora, #mastodon etc. verknüpfen kann ( #federation ).
Hat jemand Tipps dazu?

King Emir
2 months ago

Yay, not far from getting follows working in #Socialhome. Just UI buttons missing, #federation layer works 😅

Jason Robinson
2 months ago

"The world is immersed in a profound systemic crisis which engenders instability and threatens a new world war. This is the essence of the present stage of capitalism. The inherent contradictions of this system have not gone away: the contradictions between Labor and Capital, between the social character of production and private form of appropriation of the results of labor. On the contrary, the inborn flaws of this system have assumed a worldwide character. There is no corner on Earth where the tentacles of the rapacious octopus have not reached. As Marx pointed out in his time its very nature forces it to scour the world in search of maximum profits. Therefore the miasma of overripe and decaying capitalism are poisoning practically all the countries and continents." - #cp of the #russian #federation, #political #report of the #central #committee to the XVII Congress of the #cprf http://www.solidnet.org/russia-communist-party-of-the-russian-federation/cp-of-the-russian-federation-political-report-of-the-central-committee-to-the-xvii-congress-of-the-cprf-en-es

Miguel Ungooglable Unfacebookable Rotunno
2 months ago

Hey, long time no see!

I am now more active on #Mastodon as fdavidcl@mstdn.io, just in case anyone wants to follow my stuff over there.

Diaspora just seems less active lately and there are even people I personally know on Mastodon so it's more likely that I'll keep that other account updated. I hope that both networks will federate in the future though. In the meantime, have a great time anywhere in the #fediverse!

#federation #thoughts

David Charte
2 months ago

federation v0.12.0 released

#Python #federation now includes more support for the upcoming #diaspora protocol breaking changes and also includes support for the new Contact entity type. Additionally, legacy sharing/following Request entity has fixes.

Repository: https://github.com/jaywink/federation


Backwards incompatible changes

  • Removed exception class NoHeaderInMessageError. New style Diaspora protocol does not have a custom header in the Salmon magic envelope and thus there is no need to raise this anywhere.


  • New style Diaspora public payloads are now supported (see here). Old style payloads are still supported. Payloads are also still sent out old style.
  • Add new Follow base entity and support for the new Diaspora "contact" payload. The simple Follow maps to Diaspora contact entity with following/sharing both true or false. Sharing as a separate concept is not currently supported.
  • Added _receiving_guid to all entities. This is filled with user.guid if user is passed to federation.inbound.handle_receive and it has a guid. Normally in for example Diaspora, this will always be done in private payloads.


  • Legacy Diaspora retraction of sharing/following is now supported correctly. The end result is a DiasporaRetraction for entity type Profile. Since the payload doesn't contain the receiving user for a sharing/following retraction in legacy Diaspora protocol, we store the guid of the user in the entity as _receiving_guid, assuming it was passed in for processing.

Python library for abstracting social federation protocols

Jason Robinson
6 days ago (edited)

Federation is the Future

>Social media have become an integral part of our lives. They are, in many cases, our primary means of social interaction. We meet new friends, keep up with old friends, plan our events, get our news, and share our lives via social media. While this is enormously convenient, it has had the effect of giving control of our digital lives -- and the personal, private information associated with them -- to a tiny handful of companies.

>Fortunately, there is an alternative.


#FOSS #Federation #Diaspora #Mastodon #XMPP #Tox

Project 9501
2 months ago

"The Next Challenge for Open Source: Federated Rich Collaboration", 10.05.2017

"When over a decade ago the file sync and share movement was started by Dropbox and later joined by Google Drive, it became popular very fast. Having your data available, synced or via the web interface, no chance of forgetting to bring that important document or use USB sticks -- it was a huge step forward. But more than having your own data at hand, it enabled sharing and collaboration. No longer emailing documents, no longer being unsure if you got feedback on the latest version of your draft or fixing errors that were already fixed before. Usage grew, not only among home users but also business users who often used the public cloud without the IT departments' approval." #FrankKarlitschek Frank #Karlitschek
read more -> https://www.linux.com/blog/next-challenge-open-source-federated-rich-collaboration

@We Distribute+ @{Zot universe NEWS+ ; zotnews@parlementum.net} #OpenSource #FederatedRichCollaboration #Federated #Federation #Collaboration #sharing #Dropbox #publicCloud #Cloud #filestorage #github #versioning #selfhosting #Nextcloud #Nextcloud12

The Next Challenge for Open Source: Federated Rich Collaboration
When over a decade ago the file sync and share movement was started by Dropbox and later joined by Google Drive, it became popular very fast. Having your data available, synced or via the web interface, no chance of forgetting to bring that important document or use USB sticks -- it was a huge step forward. But more than having your own data at hand, it enabled sharing and collaboration. No longer emailing documents, no longer being unsure if you got feedback on the latest version of your draft or fixing errors that were already fixed before.

neue medienordnung plus
2 months ago (edited)

git checkout -b activitypub

Time to start taking #Python #federation to multi-protocol stage, as it was planned to be from the start ;) Might take a while but got to start some day!


Jason Robinson
a month ago (edited)


#uptodate #information on our #federation... all #nodes'n more...<br>#diaspora* #Friendica #Hubzilla ✱ click #picture to go there... #hm.


YA ∵ ⁹⎷π ⟶ ⧝
2 months ago

1. XMPP-Meetup

The 1st XMPP Meetup Dresden has officially been announced. (The talks are going to be held in German I should say.)
Am Dienstag findet ein erster Erfahrungsaustausch zu Jabber, dem Extensible Messaging and Presence Protocol, statt.
<https: www.c3d2.de="" news="" ta-xmpp-meetup-1.html="">
#xmpp #jabber #conversations #Dresden #Federation

2 months ago

Dies ist ein Test. Es wäre schön, wenn jemand auf pod.geraspora.de drauf antworten könnte. #test #federation #friendica

Testgruppe 1b
2 months ago


#Federation #Decentralization #w3c

Jason Robinson
2 months ago

In just SIX DAYS the #RUSSIAN #FEDERATION will #pay off its #debt to the #Talmudic devil money changers of the #Synagogue of Satan.From then on it’s my bet #Putin will make sure the world knows the debt is paid before executing the Golden #Ruble de-dollarization destroying the US #military w/a pen

3 months ago