Automatic Refreshing of Content

Hallo everyone,

I’ve only just now found out about the loomio for diaspora.
We, some weeks ago made our own pod to start using diaspora more.
While doing that I notice that, the stream does not autorefresh, just like any notifications
Anyone who’s been on any other social network, like g+ twitter facebook and so on, hopefully knows what I mean

There is a script out there https://github.com/Faldrian/diasporaAutoUpdate which can be used along greasemonkey to do this, well part of it
I in turn added this to my main.js
But that is not really the way to do this I fear

I would like a feature like this to be added to the main diaspora branch because it is an essential feature

How it should work:

Idea 1:
When a change is detected, the user should get a button to load the new content at will

Idea 2:
Changes should be loaded automatically, but not disturb the flow, as in, when I read a post in the stream, I do not want that to go swoosh away
this version is harder, but I dare say mebe better

Hope I did this all right

Cheers

Linus


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

I think some podmins may want to enable/disable this feature to fine-tune the load on the server - since this feature will poll every X seconds for new updates (90seconds in the plugin referenced above).

I agree with Linus and with Faldrian.
In my opinion, it’s interesting, whether I don’t know if this would make every D* user happy. Maybe only refreshing the notifications would be enough. Refreshing the flow seems to me (humble D* user) a bit too much.

I think your idea no. 2 is the best, however, it should be made such as one could have that as an option - like „Do you want to enable stream auto-update? Yes/No” Many people don t like the idea of auto-update of stream, so it would be great, both for the conservatives and for the liberals more „facebook” oriented :wink:

There’s an open Github issue for this - #3890 - and a closed pull request - #4352 which was never finished. As yet there’s no elegant solution which would work in Diaspora as it currently exists. See the comments in that issue and PR for explanations why. The main issue is (pod) server load.

Yes, we all know the story with the pod server load. There must be a solution to this! Simply closing a discussion doesn’t help anyone…others made it (on other social networks), so I think it’s virtually possible!

@goob : I think I’ve understood that Rails4 used in develop enables websockets and that notifications problems and other could be solved this way ?

@augier source?

@augier If you want to use websockets to push notifications and new posts to users, you have to implement a whole event-thing based on incoming federation-messages and new user-posts and so on… it would be quite a big thing to do. Possible, but big.

Also: Don’t underestimate the number of open connections for bigger pods like geraspora… several hundred(thousand?) open connections all the time additional to the short connection times normal requests do.

I think you mean the built-in streaming support that’s new with Rails 4 -> http://api.rubyonrails.org/classes/ActionController/Streaming.html
that would probably behave more like long-polling, server-sent-events or comet or whatever you want to call it, and work via the “normal” http request cycle, unlike websockets.

This thing will be great. If Diaspora won’t keep up to modern times, who wants to use it other than few privacy concerned people?

@karthikeyanak : Lots. The opening of framasphere in France made not-so-concernd-by-privacy people sign up. It’s only a matter of who talks about it and the influence they have.

@jonnehass : no source. I just thought I read someone say it, but there’s a good chance I’m wrong.

others made it (on other social networks)

Other social networks tend to be either contained on centralised servers and awash with investor money (Facebook, Twitter) so they can just buy as many extra servers as they like, or, in the case of many other decentralised networks, they have few users compared with Diaspora, and generally don’t have the historical problem of a few pods having a very large user base, which Diaspora still has. Just because other networks have been able to do this in their circumstances doesn’t mean that Diaspora, a volunteer-run and -funded project with a largish user base, can do it without problems.

If Diaspora won’t keep up to modern times, who wants to use it other than few privacy concerned people?

I love the idea that ‘modern times’ = ’ auto-refresh of a page’. Thanks for a morning giggle!

I think the key here is to have this disabled by default, allowing the podmin to enable this if the podmin wants the additional impact on the server. This may provide additional reasons to spread the users to smaller pods, since they (with only a few users) may be more likely turn this feature on.

In addition: If the pod supports auto-refresh the user should be able to enable it for the account.

This would be 2-level opt-in to not impose additional work if not wanted.

I agree with Faldrian here
It should be opt-in
I am not sure how much more load this would make though
Since I am no programmer I cannot really have a say in this, I am only voicing what I’ve heard from people using diaspora

An automation of the stream and notifications should be in this project, because it makes using the pod more effective and it’s easier to reply to stuff in a timely manner

Personally I’d really want something scalable, like socket.io that works on (almost) any browser, using websockets where it can and falling back to whatever is supported.

But that solution would require a small component in between to listen to clients and send over notifications from the server. It doesn’t make, imho, sense to bloat the diaspora core server with something like this.

I’m going to say what I’ve said many times before - diaspora* should have not just one server application that is decentralized to create a network, but also other apps that people can run to contribute towards the network. Because at the moment we’re just adding to the already heavy server app.

One of those components could be a simple and light node.js socket.io server app that does comms between clients and servers, relaying only minimal info like “new stuff in feed, please refresh” - then client gets data automatically from server directly. Implemented this in one previous job and man it was efficient, lightweight and worked on any decent browser I could try it on.

Another app I’ve suggested before is the public posts relay component that could relay posts around the network without making the core server any heavier in federation calls.

All these kind of apps could be run by community members in a decentralized fashion.

Please do not do this without the option to disable or pause, many hate it, I hate that :slight_smile: is terrible to be reading something and everything moves down.

The diaspora.net.gr pod has a notification system in upper bar indicating the amount of actalizaciones, I like most, is less annoying and consumes less resources.

Not everything do on facebook and g+ is good, I find a very bad reference.

@juansantiago well that is a given, content sliding around is not an option, no sir
either it should auto load the content and reposition your view of the page without you noticing, or as you say, let you know with an indicator, that there is something happening
Incidentally I really like the idea of adding that to the upper bar, do you know how they made that?

@linusigbyoneill

They said that it is a few lines of code that were under consideration for future Diaspora versions.

The podmin is: manolis@diaspora.net.gr the pod is currently not working, it’s a small pod and the server is at Manolis home with slim internet line.

the group of diaspora.net.gr on loomio https://www.loomio.org/g/bT8IoW0k/diaspora-net-gr

@juansantiago Please bring in the other people that were working on this feature, ty.