Private/Direct Messages and Federation

Hi, I’d like to start a discussion on Diaspora’s private messaging and federation with other services.

Currently diaspora only allows you to message a contact who is already sharing with you - which is highly limiting. I would be in favour of it allowing you to contact any user - though this obviously brings up issues about spam ( a discussion of which is starting up separately for posts, rather than messages, here: https://www.loomio.org/discussions/4686). I would be in favour of a facebook type way of dealing with this which has a main and an ‘other’ inbox for messages from people who are not already contacts.

However I think we need to go beyond this and find a way to make the messaging useful for contacting a wider range of people - an obvious starting point for which would be supporting email contacts (email contacts could also be included in aspects similiar to the google plus implementation). This would I guess involve adding a minimalist email server to diaspora pods…

I guess another thing for messaging to federate with might be xmpp (see discussion here for realtime chat: https://www.loomio.org/discussions/3678) but I don’t know if xmpp supports asynchronous (email type rather than real time) messaging? There definitely needs to be a bit of thought put into how diaspora deals with realtime vs. non real time messaging.


Note: This discussion was imported from Loomio. Click here to view the original discussion.

See also this discussion about posts and email-federation: https://www.loomio.org/discussions/5305

I’m against this. The reason for only allowing people to send private messages once a mutual connection has been made, is because that gives each person the control over who can send them private messages. If I place you in an aspect, I’m saying that I’m happy for you to send me private messages. If I don’t want you to send me private messages, I don’t place you in an aspect and then you can’t send me private messages. This is an important principle, and is one of the pillars Diaspora was founded on - that each person has control over their interactions.

I can’t see any positive reason for allowing people to contact privately whoever the hell they like, and can only see benefits for spammers, trolls and other abusers of the system.

If you’ve got more information on why you think this would be a good idea for Diaspora (rather than for privacy-abusing networks such as Facebook and Google+), please do explain them.

Personally, I don’t want just anybody sending me private messages. Maybe we could do this opt-in style if there’s enough demand for it? Check this box if you want to receive messages from non-contacts.

Facebook actually does this really well :slight_smile: Contacts messages show up, any others go to others box and you can check them if you like.

But for D* for defo this should be opt in.

We’re already discussing how best to integrate XMPP with the project on a purely IM/chat level: https://www.loomio.org/discussions/3678

The one major blocking issue is how do you solve for the Heroku use case? Heroku can’t support XMPP natively, so people would have to configure and host a separate server on another VPS/box in order to use XMPP chat. For basic realtime IM that’s fine, because it’s not really a requirement for usage of the app, but ripping out messages and forcing people to set up a new server and maybe even have to start contributing money for the VPS that hosts the XMPP server…that doesn’t seem right to me.

@tomscott I think we already voted on the Heroku thing and people voted to not design Diaspora* according to how Heroku works, so we should respect that and ignore the Heroku constraint.

After all, Heroku pods don’t have to offer chat. It should always be opt-in for pods.

@jasonrobinson it’s sort-of a different problem, now. we discussed and came to a consensus on XMPP as an optional feature. what the OP is describing here is more of a required feature, wherein we are dropping support for anyone who can’t run an XMPP server. that just seems like the wrong way to encourage more people to set up pods. not to mention that AFAIK joindiaspora.com is hosted (sponsored) on Heroku, so any features we add won’t be immediately available on the reference implementation of our pod. totally ignoring Heroku as a host and going about our business with a complete disregard for how it works is not feasible.

And if a pod such as jd.com really wants to have the optional chat feature, they can always move host from Heroku to another host. As Jason says, it was decided that we shouldn’t develop around a particular service which some podmins choose to use, and I think that’s an important principle.

I think there are problems with the proposal other than incompatibility with Heroku, as I explained before.

Let’s focus on email here and don’t go out of topic. I personally this is an interesting idea (i already thank about it years ago, discussing with a friend): emails are completely decentralized and work very well, why do not use it for diaspora*? I even think about building the complete federation on SMTP instead of Salomon. Now that the federation becomes a separated part of the code (thanks to @florianstaudacher ) it would be awesome to try it on a fork.

Anyway, about the particular use case of private message, implementing it using SMTP instead of our own protocol is a good idea in my opinion: maximum of interoperability, not so hard to do (some pods already allow to redirect from the handle to an email) but maybe a little big, even if pods already send emails, don’t know if add that implicates to integrate a mail server to diaspora…

From the user point of view, I disagree with @goob : everybody can send you emails, yeah, there is spam, but does this really annoying you? I don’t think so. Being contactable by e-mail by anybody is a good thing imo.

Imagine, diaspora is embedding an smtp server, that means your handle becomes a real e-mail address. First, no need to another address to receive notifications, etc (it offers freely a privacy respectful email address, and that’s nice, bye bye gmail), email address which can be used to everything like any traditional email. Moreover, the private message of diaspora just becomes a webmail for this address, you’ll be able to consult it everywhere. In the other hands, you can check your emails (so private message and more) from your mobile or thunderbird easily.

I personally love this idea and don’t see a problem to be contactable by anyone having an email, even the non-diaspora people. Moreover, we can easily put a filter which will block everything which is sent by a non-contact.

The only problem I see here (and it’s not a small one): it implicates to integrate an SMTP server to Diaspora, and this is pretty huge.

Making this an opt-in (or opt-out) feature would be a great solution in my opinion.

OK, so there are a number of reasons why I think it is important why you should be able to contact someone who is not already sharing with you:

a) To tell them about yourself, why you’re trying to get in touch with them, and why you might want to be ‘friends’/‘contacts’.

b) To contact someone whose post you’ve seen (maybe in a public hashtagged discussion) about what they’ve said, maybe with some private information, perhaps with something specific that they’ve requested people to contact them about. In certain wikileaks type scenarios, you might now even want to comment publicly saying ‘add me to an aspect’.

  • because currently it is not clear to diaspora users that you have to choose to share with them (outward communication) to be able to receive messages from them (inwards communication).

  • Lastly, because I see diaspora not as just a plaything social network, but as part of a wider project for a decentralised web. Currently many people use facebook increasingly as an alternative to email.I think that’s a really bad thing,but we have to see how people are using it and why - and one of the reasons is because it is a good way of people contacting people. I think diaspora will fail if it cannot be part of an alternative to this.

@flaburgan - I have no particular knowledge so can’t comment here but implementing an smtp server I can imagine is a big issue!

From the user point of view, I disagree with @goob : everybody can send you emails, yeah, there is spam, but does this really annoying you? I don’t think so. Being contactable by e-mail by anybody is a good thing imo.

The difference is that someone has to discover my email address in order to send me an email. I’m careful about whom I give my address to, so only people I want to email me can send me emails. This is analogous to the current situation in Diaspora, in which only people I have added to an aspect can send me private messages.

It’s a question of visibility: in Diaspora anyone can find my account easily, when they see a comment I have made on a public post, for example. If they could then send me private messages, I would find that annoying, yes. It happened a number of times when Diaspora was first running, before the ‘mutual sharing’ limitation was brought in for private messages - people would send me unsolicited private messages, and it was annoying and intrusive (to use your word from another discussion). If it was possible once again for people whom I hadn’t chosen to share with to send me private messages, it would make me limit the help I felt able to offer to people asking for help in public posts, because it meant I was opening myself up to unwanted and unsolicited contact.

And yes: I do find the small amount of spam I receive by email to be annoying! It’s an annoyance I have to live with and have worked hard over years to minimise, but it is certainly not something I would willingly add to. And I don’t think Diaspora should become a conduit for such unwanted contact.

If there is really a case for implementing this - and some of Nick’s examples in the most recent post are ones which would be useful to users - it must be made opt-in, not compulsory or opt-out.

One way of effectively sending someone a private message is as follows:

  1. Add them to an aspect which has no other contacts in it.
  2. Write a post, @-mentioning them.
  3. Make the post limited only to that aspect.

This is what I’ve done on the several occasions when I’ve felt I’ve needed to contact someone privately e.g. to warn them about something they’d said publicly which gave away private information.

Add them to an aspect which has no other contacts in it.
Write a post, @-mentioning them.
Make the post limited only to that aspect.

That’s what I call a hack =P (but it’s nice, yeah).

So what about a setting saying “I want to be able to use my diaspora handle as an email”?

Fla, that’s completely different, and I’d be more than happy with that. What you are talking about, enabling a user to say ‘I want to be able to use my diaspora handle as an email’, is giving someone who has chosen to share their email address with Diaspora the ability to receive emails sent to that address. What I have a problem with is someone using Diaspora uploading other people’s email addresses, without necessarily having their permission to do so, to Diaspora in order to send them emails from Diaspora.

The first is someone making a choice about their own email address, and is fine; the latter is someone making a choice for someone else on their behalf about how their email address is used, which is not fine.

You can see what I’m getting at, even if you disagree, can’t you?

@goob what I propose (it could probably be improved) is something like this:

Instead of using is own non-interoperable private message system, diaspora* could use e-mail to do that. This would mean that our diaspora handle would become a real e-mail address, and that every email received on this address would be displayed in the private message interface of diaspora. This interface could be improved to allow us to send e-mail to recipients who are not diaspora users, simply e-mail users.

Moreover, we could also manage our e-mail / private message (this would become the same thing) from an e-mail client (like thunderbird) on desktop or on mobile.

But, as you pointed out, this would allow anyone (diaspora users who are not your contact, more, anyone with an email) to send you private message in diaspora. Some people (like you) don’t want to receive message from non contact, so I propose to add a setting which would block (redirect to a spam folder) any e-mail sent by someone not in your contact. This would be the default behavior.

With a setting like that, we can easily keeping the exact actual behavior, or choose to massively improve the private message feature.