SpringAll icon indicating copy to clipboard operation
SpringAll copied to clipboard

User should be able to follow tags on other pods

Open amckinstry opened this issue 13 years ago • 54 comments

Following tags is very nice, but when Diaspora* is used on a small local pod (rather than say joindiaspora.com) the experience is quite different: if you have 1-5 users, almost nothing happens and the pod is very quiet.

(So I follow tags on other nodes using http://joindiaspora.com/tags/cycling for example).

It would be good to be able to follow tags on other pods, e.g. a short list (per-user?) of pods on which to follow tags;

amckinstry avatar Nov 16 '11 11:11 amckinstry

This will be taken care of when I improve the implementation of public post federation. Stay tuned.

Pistos avatar Nov 16 '11 14:11 Pistos

That will be really great, thanks for your hard work. :)

Detair avatar Nov 20 '11 18:11 Detair

Can't wait for this, thx Pistos.

ghost avatar Nov 24 '11 19:11 ghost

yes yes :D how could we help btw?

fps avatar Nov 30 '11 17:11 fps

We do want to implement this; the question is how. Thanks for the suggestion. I've edited the title a bit.

sarahmei avatar Jan 09 '12 06:01 sarahmei

Are all tags public? Maybe Javascript could walk around the web and download them to reduce bandwidth. There are some limitations of Ajax(only domains which page was downloaded from are allowed).. But i think this can be hacked. This idea could be disaster.

memarko avatar Mar 20 '12 21:03 memarko

@memarko I'd rather not see it done client-side, but server-side.

Let each user set a list of domains they'd like to follow (pre-Populate this list from pods seen in streams, etc?) Users already follow tags. Perhaps poll the other pods hourly, etc.

Why server-side? bandwidth, prepare a server-side list will be faster than x1000 clients doing the same thing. Secondly, and perhaps more importantly for me: privacy; the more we do client-side the more information we leak to observers about the clients interests. Instead of "amck like to follow tag: anarchism" we see "at least 1 person on pod X likes to follow tag: anarchism". etc.

amckinstry avatar Mar 21 '12 06:03 amckinstry

I have a problem with all tags being public. I would rather not have every comment I ever put a tag into be searchable by google. That kind of kills the privacy aspect, I'm actually already hesitant to tag anything because joindiaspora barfs it all up to google, even though I'm not even a member of joindiaspora.

ghost avatar May 01 '12 06:05 ghost

@Todamont I think I agree. To my understanding, its posts and theads that are public / private, not tags: If I have a selection of posts in different aspects, some public, some not, then whether they are visible should not depend on the tags, but rather on the privacy settings of the post, no?

I think we agree that, it a post is marked private (or limited), then it shouldn't become publically visible just because someone can globally search/ subscribe to a tag that it contains. But I don't think we need a separate layer of privacy management for tags.

amckinstry avatar May 01 '12 12:05 amckinstry

So there needs to be an interface for pods to access hashed comments on other pods. Pod maintainers would add a list of other pods to read from, or (dis)allow to read from their own pod. This means there needs to be a communications protocol for one pod to read the most recent hashed comments from another pod, each pod contains a list of datetimes when the other pods last accessed the tagged comments, downloads by hash term would speed things up it seems, as small pods would only need to access the tags for which their userbase was following. There should be some method of automating these calls, by cron seems easiest, this will generate a lot of interpod traffic though. Maybe a daisy-chain could be set up for each term or something. Even IRC logged hashed comments seems feasible, you could have a channel for each term...

The names of people commenting should only be available to their friends, otherwise anonymized, ideally. Maybe if you like someone's anonymous comment you could be shown a link to add them as a friend.

ghost avatar May 08 '12 00:05 ghost

Wouldn't this be better done the other way around, as a push rather than a pull? So each pod that is aware of other pods registers with them which tags their users are interested in. If a pod has a post with a hash tag that it knows others are interested in, it pushes the message out like it would a followed user post. That way avoids polling, and lets the pod manage its own resources better ("I am busy right now, I'll push this post out in a few minutes"). Pods that have users that deregister tags to the point no one is interested would inform the other pods, and if something goes awry with that, then when a pod pushes a tagged message that no one cares about, the receiving pod notifies no-one here is interested, and the sender takes them off the list.

You would probablty want the "get last x posts for this tag" as well, as part of the registration process, to back-fill the stream.

If you could manage the mesh, you could eventually use this as a p2p system, letting pods that are unaware of each other exchange tagged messages, by going through an intermediary they both know. The trickiness I see would be avoiding loops/cascades, with pods telling other pods about messages that they already got from elsewhere.

paulkoan avatar May 15 '12 04:05 paulkoan

Note that with a push operation, you could still accumulate messages for one send, they would just be multiple tags in a single transaction, rather than a single tag with multiple entries.

paulkoan avatar May 15 '12 04:05 paulkoan

How about #, ie. joindiaspora.com#cycling for following the tag #cycling on joindiaspora.com?

dokterbob avatar May 21 '12 11:05 dokterbob

@dokterbob Interesting, but what does "#cycling" mean then ... 'cycling' on the local pod, or cycling globally?

Hmm. that comes down to : do we want to try and follow tags on "all" pods or not (public tags, that is). Twitter can do it, but do we try? can we make it scale? I suspect not, but wouldn't like to rule it out.

amckinstry avatar May 23 '12 15:05 amckinstry

Yes, after some thought I think this is better done as a push operation. I don't think it should be a global setting by default, but something that pod maintainers can control which other pods they are linked to.

ghost avatar May 28 '12 21:05 ghost

hmmmm after getting my pod federated properly, I'm thinking this issue is already resolved just fine. I see posts containing the hashtags I'm following, from many pods now. I'm thinking this issue could be closed.

ghost avatar Jun 15 '12 15:06 ghost

Interesting... so what did you change on your configuration? Or when will code changes will be made available? I'm running a private pod and it gets quite lonely there. No serendipity at all.

calderonroberto avatar Jul 30 '12 20:07 calderonroberto

@amckinstry I think doing this on the local pod should be hard enough... Scaling an operation like this globally would most probably scale really awfully.

dokterbob avatar Aug 07 '12 08:08 dokterbob

Is there still interest in implementing this? Or is this already implemented, as @ghost says? I am hosting my own Diaspora server, but it is very quiet, as @amckinstry says. Do I need to do something special to get federation, maybe not self-sign my SSL cert?

rogerbraun avatar Aug 07 '13 09:08 rogerbraun

While this is not yet implemented, a self signed cert is an effective measure to prevent any incoming communication.

jhass avatar Aug 07 '13 09:08 jhass

Is there any documentation on this? I did not find a document that tells me how to get federation going.

rogerbraun avatar Aug 08 '13 09:08 rogerbraun

Here is an article I recently wrote explaining the problem.

Flaburgan avatar Aug 08 '13 10:08 Flaburgan

I wonder whether this is something that would be helped by my suggestion in Loomio concerning improvements to federation?

goobertron avatar Aug 08 '13 10:08 goobertron

I'd think that what most people expect from tag federation is not actually to see all the tag in the whole network, but just some more than you can see on an almost empty pod. I think it might be enough if you could explicitly follow a set of tags on a different pod, which should be much easier to implement than complete tag federation between all pods.

rogerbraun avatar Aug 08 '13 11:08 rogerbraun

On 08/08/2013 12:03, Roger Braun wrote:

I'd think that what most people expect from tag federation is not actually to see all the tag in the whole network, but just some more than you can see on an almost empty pod. I think it might be enough if you could explicitly follow a set of tags on a different pod, which should be much easier to implement than complete tag federation between all pods.

— Reply to this email directly or view it on GitHub https://github.com/diaspora/diaspora/issues/2407#issuecomment-22316293.

Exactly'; there isn't necessarily a defined list of all pods (or is that even desirable?), so any idea that involves polling them all doesn't scale. But polling / registering to follow tags on a small set of pods would make a quiet pod more interesting.

Alastair McKinstry , [email protected] , [email protected] http://blog.sceal.ie

Anyone who believes exponential growth can go on forever in a finite world is either a madman or an economist - Kenneth Boulter, Economist.

amckinstry avatar Aug 28 '13 09:08 amckinstry

I thought about a temporary hack: some accounts for the most followed tags (#newHere, #diaspora, #linux) on the three biggest pods (jd, diasp.org, geraspora), which would follow and auto-reshare every posts with this tag. Like "JD #linux follower bot". Then every podmin who wants to allow his pod to receive the tags just have to follow the bot (eventually with a dummy account). So every post would reach his pod, and his users would be able to follow the tag normally, without having to do anything else, even knowing the existence of the hack.

That's not a real solution, just a ugly temporary hack suggestion.

Flaburgan avatar Aug 28 '13 11:08 Flaburgan

@Flaburgan that's sort of a hack version of one of the proposals I made here: https://www.loomio.org/discussions/5702

goobertron avatar Aug 28 '13 12:08 goobertron

On 28/08/2013 13:15, goobertron wrote:

@Flaburgan https://github.com/Flaburgan that's sort of a hack version of one of the proposals I made here: https://www.loomio.org/discussions/5702

— Reply to this email directly or view it on GitHub https://github.com/diaspora/diaspora/issues/2407#issuecomment-23409504.

Yes, the idea of polling and discovery of pods is not one I would agree with. Think of the case where D* becomes successful and every household is running a pod with messaging, IM, etc. on a sheevaplug, etc. Then you would be polling millions of pods ...

I was thinking more of a "harvesting" exercise where I'm following #cycling and the D* code spots #cycling in the posts from a remote pod and automatically adds that tag on that pod as something I subscribe to (RSS?) Ideally this would be done by a worker thread on the pod code, so that it doesn't leak the list of interests of individuals on the pod. Some mechanism to garbage collect the list of tags would be needed, so that when I stop following #cycling, or the remote pod doesn't post on that topic after a month, etc. we drop the automatic follow.

regards Alastair

Alastair McKinstry , [email protected] , [email protected] http://blog.sceal.ie

Anyone who believes exponential growth can go on forever in a finite world is either a madman or an economist - Kenneth Boulter, Economist.

amckinstry avatar Aug 28 '13 13:08 amckinstry

Hi, It'd be nice to follow #[email protected] as we do with user.

Sorry if I'm repeating what @amckinstry said. I'm new here.

ciegovolador avatar Oct 04 '13 18:10 ciegovolador

As a step toward following tags on other pods, it might be nice to be able to do a search (for a tag or something else) on another pod.

JamesC1 avatar Feb 09 '14 05:02 JamesC1