Interoperability with other social networks

I don’t know whether Friendica Mike would be up for that personally, especially with all the work he’s putting into Zot2/RED. It’d be nice to get the Friendica community to talk to the Tent guys, though.

I have no idea what would go into making Diaspora a Tent app, but if it benefits both projects and helps push forward the agenda of decentralized social networking, I’m all for it. As it stands, this thread is intended to be a discussion over the merits of doing it, and what kind of problems we’d have to face, should we choose to do it.

When the discussion is far enough along (need moar commentators up in here!), it’d be good to make a proposal and vote on it as a community, as this is definitely a big deal.

I’m not the right person to talk about technical implementations but I think Diaspora could settle with supporting the standards while building in some translations under the hood. Tent and Diaspora are both very different, or maybe not different enough, to really merge. Both host the user data and both do it differently. I’d probably talk to tent in tent’s native language, though that doesn’t take away the fact that Diaspora has it’s own weird language.

The only way to really merge with tent would be to turn joindiaspora into a tent hosting provider which provides Diaspora on top. That means separating the app from the host and that would be a huge undertaking. So then I’d probably try to apply tent’s rules wherever possible while maintaining workarounds elsewhere. Following people, receiving posts, managing aspects, should all be possible in tent’s language, whereas user@diaspora would probably need an user.diaspora equivalent to make things work.

Gah, it’s so complicated! :3

Maybe a total merge would be overkill at this point, but seeing as we want to put federation into a layer anyway (some kind of hot-pluggable federation backend system might be nice), maybe we just want to be compatible on a federation level?

Of course, it’d be nice to have the benefits of “Log in with Tent” for apps. I guess we’d have to figure out the best strategy to use, and the best point of attack. To me, being Tent-compatible through some refactoring and restructuring may be good enough for now.

I like how Tent allows many kinds of apps on top of the same core tent protocol. As far as I know, the apps don’t even need to be self hosted (a tent app could be an iOS/android app without its own backend), although they do require registration, which might require a homepage at the very least, and possibly a redirect_uri?

Applications can then post to your feed using either the standard formats for maximum interoperability (I think tent.is supports “status” format messages for tweet-like posts when you use the free account, and essay/photo/etc… posts for paid accounts). Or apps can define their own post format to be anything they want.

This is, in my opinion, tent’s “killer feature”. As some have already mentioned, rather than be yet another facebook-like service, tent is a platform and ecosystem on top of which any app could potentially be written.

Although it doesn’t go all the way, this seems like it’s really one step closer towards a Personal Data Store (PDS) future, where app developers like me can take advantage of the user’s existing tent server for some limited cloud storage, instead of having to pay for my own cloud hosting service. Users, on the other hand, get to take control of the data that apps like mine can store - because that PDS may be hosted on their own personal tent server, or else their tent server might have account settings letting them export their app’s isolated storage data or import data exported elsewhere, or to delete that data entirely.

But, now that I think of it, you could always just have a PDS/VRM app on top of tent… Hmmm… interesting…

Anyway, some good questions to ask before we even consider taking the tent route:

  1. Is Diaspora going to be a tent server implementation in and of itself, or just an app? Both?
  2. Currently “Tent” is still under Copyright for Appollic Software, INC to “prevent fragmentation”. It is unclear what this means, because it also states that it is a free and open standard, which seems contradictory to me. They say they’re going to release it under an open license, but I’ve heard that song before.
  3. What features do we lose when we use the standard tent post formats? Can we still do aspects? What about tag following? Likes, reshares? Threaded comments on posts? Can we do this without just creating our own proprietary post format (because of course that wouldn’t be compatible with anyone else).
  4. If we implemented Tent protocol - what would happen to users’ existing posts, aspects, profile, private messages, photos, and so forth?

Isn’t this a human problem more than a technical one? I.e. it’s a case of everyone who is working on open-source social software agreeing on which protocol to adopt, rather than a technical issue. A standard is merely a protocol which enough people have agreed to use, isn’t it?

I don’t know anywhere near enough to make any recommendations about which course of action to take, although it might be best to wait until it becomes clear which protocol is going to work best for Diaspora. By the sounds of it, tent is in fairly early stages of development, and there’s Zot2/RED being developed as well. I’m sure there are a few others.

It would be a shame to nail our colours to one mast too soon and find out, once all the work of making D* compatible with that protocol, that actually it has a lot of security holes which make D* less attractive as a network (or something like that, some big flaw which causes problems).

I’d suggest, for the time being, discussing and voting on whether we should aim for D* to be part of or adopt a standard in the future, when there is one protocol which it is clear will be good enough for D* and open enough to become a standard for all decentralised social interactivity. But not jump on to one particular one too soon, just because it looks promising in the early stages.

Definitely keep an eye on what progress is being made on the various attempts to achieve this, and perhaps support the people working on these; perhaps with donations; perhaps also by talking to them, discussing with them what D* would need their protocol to be in order for it to work and for D* to move onto it, hear from them the issues they’re facing and think how these issues might impact how D* is developed in the future. And that way hopefully speed the time when it’s possible for D* to adopt one of these protocols.

As D*'s code base becomes more modular, it should hopefully be a lot easier to adopt one of these protocols.

It sounds like an excellent idea in principle. I’m all for collaboration rather than competition between projects.

I am not so sure if tent is a good protocol at all. To me a protocol should be a way how different servers can communicate with each other. But tent is even more. It demands from all servers to use special technology like oauth2 or it uses very special urls. A PHP-server that wants to implement the tent-protocol would need mod-rewrite for correct urls for example.

It hat however some very sweet attributes. It’s apps are absolutely nice and seem to work exactly how I would have thought about apps in Diaspora.

But there are some problems in the tent-protocol:

  • It demands special technologies from the implementations, which might be restrictive for different softwares.
  • It has until now almost no userbase. So adapting the protocol wouldn’t do any benefit for Diaspora or any other system that a code-rewriting of the Diaspora-protocol couldn’t do.
  • It is not open source. Yet? Probably yet, but who knows? Right now it is >>impossible<< to implement tent for a FOSS like Diaspora.

The protocol itself might work well, but so does the libertree-protocol or OStatus. Why not implement one of these with a larger userbase? Because of the apps? Okay, but all other protocols could be extended by the same app-infrastructure that tent is planning to have.

For me i would make much more sense to focus on OStatus and make an (optional) privacy extension for that. I like the fact that basically all wordpress installations can be made to full featured OStatus publisher-servers just by adding some plugins. Also I thought most of the protocol is allread implemented. Like salmon, webfinger and actifitystream.

@Good and Rasmus: I agree that we shouldn’t think too lightly about adopting a certain protocol. It would require a lot of work from the Diaspora team and it has to be worth every single minute spent.

What I suggest is to monitor zot and tent to see how they evolve, how they work and how they could work for Diaspora. In the meantime a lot of the legacy mess can be sorted out. Sean has been talking about moving federation into it’s own module for a while now and no matter what we do, making things more modular remains at the top of the current to-do list. Then there’s also things like designing a new single-post-view and cleaning up other views. Tent or zot would be limited to the federation part; anything else that is being done to make Diaspora a better app benefits the app, no matter the protocol.

Here’s the way I see it: over and over again, these different decentralized social projects have been re-inventing the wheel, and for whatever reason, they haven’t done much to communicate cross-project. The few exceptions I can think of are StatusNet, Friendica, and Movim, but there’s way more networks out there.

What I like about Tent is that it’s not just a protocol specification, it’s also an example of how a decentralized app authentication system could work. Although it would be premature to just say “Let’s adopt this!” without further investigation, I think there’s a particularly captivating way that this could play out.

Imagine being able to log in to a web application, with the platform of your choice being your form of authentication. So, you could log in with Diaspora/Friendica/Libertree/whatever, but still have full control over what data is being pulled by the app. Furthermore, you could talk to all these different people on these different platforms and networks. Needless to say, it’s promising, and I think the future of the Open Web could certainly benefit from it.

The main issue I see with this is traction. It’s difficult to get a standard to catch on without projects and people to back it, but I feel that if a lot of decentralized socnets get involved, we could help make a really strong standard. We all have different pieces of the puzzle, and we’ve all dealt with a range of problems, some of them have been shared by multiple projects, others are unique to each one. Either way, I think if we come together, we could actually learn quite a lot.

I’m Skyping with the Tent guys tomorrow, and working on talking to different socnet projects about where they’re at, and if this vision is something they’d like to be a part of in the future.

First, I totally agree that every socnets has to be able to talk between them. I said that a long time ago.

Second, I’m not sure that tent is the perfect answer to that. Tent is something completely new. And as every thing completely new, it is too young to do anything. It will be a lot of secure problems, things we didn’t think about…

So, why don’t we use something which already exist ? Look at the movim project. They build it on the XMPP protocol, already used by a lot of projects (Google and Facebook for chat, but jappix, movim, etc…). We should talk to movim developers.

Third, warning, this is a totally crazy idea : why are we using http ? We already have something really awesome and underestimated : SMTP. Think about it. E-mails are completely decentralized. And the protocol is really old, really mature. It is easy to put security on it with S-Mime or PGP. And… everyone already has an e-mail address. And with Mozilla Persona, log in is really easy.

So, why don’t we built something on an e-mail server ? Just an interface. Kind of webmail. Just a different way to display e-mails. Think about it. Private message ? A simple mail. Message to an aspect ? Everyone of the aspect is in “cc”. Want to mention someone on the message ? He is in “to”. Want to share images, or anything else ? In attachment. Reshare ? This is forward. Your stream is your reception folder, your profile, the send folder.

Everything already exists. Everything works well. You can talk to everyone in the world, everyone has an email. And if he doesn’t use the social interface, he can read the e-mail correctly, he just doesn’t have a beautiful display. You can talk to EVERYONE.

It would be easy to install, too. Because it is only an interface.

The only problem I see is that e-mails send cannot be edited or deleted, so, this can not be implemented in the “network”, but if the users understand that this is just a better way to display e-mails, they will understand that they can’t delete them after sending.

Any standard to be adopted would have to be a FLOSS project, wouldn’t it? Not being free and open-source software would be a deal-breaker, wouldn’t it? At the moment, tent isn’t, but it might become so in the future. But I can’t see it being a good idea to build a FLOSS project on a standard which is proprietary, or not fully free and open.

Would it be worth talking to the people behind other open social net projects such as Libertree, Friendica and so on at this point? If we could jointly discuss:
a) what the thoughts of people behind different projects are about searching for a protocol to adopt jointly as a standard,
b) what requirements their project would have of any protocol in order for it to be adopted by them,
c) and which of the available protocols out there might fit the bill,
it might help a lot towards achieving the ‘human’ side (finding general agreement) of adopting a standard. Not sure if anyone has contacts at other projects or would like to take on this task.

I’d be concerned about using SMTP because it would be very easy to get black-listed as a spammer if mails are sent out to large numbers of recipients, which could lead to the network falling down. Also, my understanding is that in the SMTP protocol, data are ‘pushed’ from the sending server to recipient servers when the originator presses ‘send’. In Diaspora, data are ‘pulled’ by the recipient servers when the user logs in. This latter method means that data are only needed to be transferred when a recipient wants to see messages. This means a lot of data doesn’t need to be transferred, if recipients don’t log in. Apologies for the unclear wording of this, but hopefully you understand my point. Using SMTP would seem to put unnecessary strain on servers and increase traffic. Email is known as a highly inefficient method of sending data in bulk. I may be misunderstanding something about Flaburgan’s proposal, but that’s what comes to mind initially.

This is a good discussion, and exciting.

@Goob : SMTP is certainly not the perfect solution, my point was that maybe we don’t have to invent something new but start by looking at what already exists and works well.

Fair enough - it would definitely be good to discuss all options, and that’s good lateral thinking about SMTP.

What about starting a stand alone loomio group that could be neutral territory for progressing this conversation?

Then you can invite reps from the different socnet communities and host a wider conversation about standards and interoperability.

A privacy extension for Ostatus shouldn’t really be that hard. At least for a scenario where the subscription server (the webapp) has the same rights as I as user. This would of course imply that you have to trust not only your contacts but also their podmins. But at least I have made my peace with that.

A tier 2 security can of course allways be built on top of the other for the tinfoilhats.

I see private messages and conversations as a fully parallel/seperate problem. We could use the jabber protocol for that or come up with a protocol that is similar to Ostatus. Maybe Omessages?

For private data storage there is allready Oauth, which is playing niceley with Ostatus i think.

Such a modularity would help to make to protocol more versatile as well as easier to implement.

Don’t we already have the federation working group - shouldn’t this really be there?

From everything I understand about OStatus, it’s great for building a Twitter clone, but it’s very limited for doing much else. Not to mention, as a protocol it has virtually no support for private posting. It doesn’t cover very many use cases, and IMO, it’d be better to build together on something younger and more suited to being influenced by third-party change. OStatus, conversely, is much older, and I think a lot of projects would be facing an uphill battle trying to get it to fit their use cases. By design, it only really applies to a StatusNet-like use case.

I know, that idea with SMTP was only an example and an enforcement to think of alternatives. But my experience within social networks is this: direct messages from one person to another person are an outdated form of communication. People are used to group-discussions like discussions on threads in facebook, that are real-time. If such postings can be private to a restricted but extendable audience a social network doesn’t need something like an email anymore. Your proposal for smtp is a nice idea, but a social network based on that would only be a subset of email and any real-email-user participating who is not clicking “reply” instead of “reply all” would totally destroy the flow of messages.

And now for something completely different: I really enjoy this discussion. Your ideas are all totally great and I thin we are heading into the right direction. I can’t wait to get to know the protocol, that is going to be the standard. If it’s Ostatus2, libertree, red or a revised tent, I don’t care. But I wanted to work on adapting a federated protocol for a platform (Stud.IP) that is highly used on universities in germany. I already have created the social network-gui-functions, people who tested it enjoyed the function and it works within one server. But I still need to do all the work for the federation. My first thought was to implement OStatus. But whatever protocol you will pick here, I am going to implement it for a large new userbase.

People have said a lot of things that I wanted to say in the first place.

The problem with Tent right now is that it isn’t open source. Maybe it will be one day, but that day may never come.

What I wanted to propose is to create an open standard, named, for example, Internet Social Contract, which would specify how data is structured, what kinds of various information can be exchanged between users and socnets, and it wouldn’t care about the actual implementation. Some socnets might use SMTP, others might use OStatus, etc.

I wanted to develop a standard that would be implementation - neutral, and then every socnet that conforms to Internet Social Contract would be compatible with every other socnet implementing it. We can, for example, exchange data in pure XML between networks and users, and then write hot pluggable code that will deal with the actual implementation.

It is important to note that the standard would be completely open and free, otherwise it defeats its purpose. I am willing to dedicate my time and resources for this, only if we agree that we all need an open standard for exchanging data between different socnets.

@petar i think what you are looking for is http://activitystrea.ms/

The protocol has to be modular to allow a hirarchy of compelxity, so that not everyone has to implement everything in order to communicate with the network.