App/feature Request: Filter the New feed

in #steemdev7 years ago (edited)

I've casually requested this feature for months now in several discussions, but it doesn't look like we have something to do this just yet. Really, it's very simple, yet I believe it has some demand. It should be part of Steemit.com, but till it is, this seems like a nice opportunity.

The problem is simple, there's too much junk on the New feed. Yet, you don't want to miss posts from unknown authors etc, especially if you're regular curators. Before the reward pool collapsed after HF18, we were seeing activity levels not seen since August 2016. With the reward pool filling up nicely now, the post count is going up again - there's no reason to believe it won't get back to where it was before HF18, and that is nearly 2,000 posts per day. If the marketing initiatives work out, there could be tens thousands of posts everyday before the Communities feature releases.

So, curators need a way to sort through the New page. Some of the parameters should be -

  • Min / max Rep of author
  • Tags to match / avoid
  • Min / max pending payout
  • Min / max votes
  • Min / max comments
  • Min / max length (characters)
  • Min images
  • Min / max SP holding of the author
  • Title keywords to match / avoid

It could be other parameters, but a subset of this is a good place to start. I have reason to believe this is fairly easy to accomplish as AutoSteem already has many of these features, but in an automatic voting scheme. We just want a filtered new list that can be changed on the fly. SteemDB had a filtered list for Curie qualifying posts too (though it doesn't work any more). So, surely, this is probably not a major feature. Indeed, you can take the New feed code from Condenser's GitHub repo, and modify it - maybe even contribute back to Condenser should they be interested in integrating this feature. If not, run it as your own app.

In case you need server resources, I'm happy to arrange for something.

Sort:  

Here is a GitHub issue for it. Problem is that it isn't as easy as it sounds. We offered a $300 SBD bounty just to do a part of it, and it went unclaimed. I think Steemit is planning to do it, but it is something that won't be done until communities and a few other things are done first.

https://github.com/steemit/condenser/issues/125

From helicopter view it is more or less to create a frontend such as customer care people use for messaging/chatting type of services based on using SQL type of queries. I have no idea how this works in the blockchain as DB, since any SQL type of query can have performance impact. I only know that with 20 years experience in high end IT and telecommunications industry and solutions, I was selling a product that just did that!

The same product had also instance reporting through pre-aggregation of parameters, and we had a whole bunch of those parameters in a multi dimensional DB to allow all sort of cross views/reporting. The pre-aggregation was there to create the instant response on a report request. OLAP technology was used. The difficult part of the product was the data loader, ie the data stream from the core engines (te messaging engines, such as SMS, MMS, RCS) towards this customer care and reporting product, since it needed to support 10.000 - 50.000 tx/sec (and under race track conditions (ie no hardware failures) up to 100.000 tx/sec), and we succeeded in creating this. We had this tool separate from the core messaging engines for the obvious reason that the processing required for data loading, data aggregation and the SQL queries for customer care shall not have impact on the performance of the core messaging service.

Relating this back to blockchains (just a DB again in my helicopter view again), you want to create a copy of the blockchain and perform these type of tasks offline from the core blockchain that needs to totally focus on speed of transactions. If somehow the blockchain is sooooo superfast it can handle everything on the same blockchain, go for it, but I would say: try to find another solution since transaction speed is super super important for scale.

NOTE: I'm not a software architect, I'm also not a software designer so my suggestions above shall be taken with precautions; However the information I provided can be taken as real and correct.

Note: 300 SBD bounty? Seriously? If you want a good working system being able to handle proper performance, this will cost factor of 100s more! If you just want to have the functionality but no performance at all, maybe 300 SBD or lets say factor of 10 (ie 3.000 SBD) could be sufficient

Yes, that is a good explanation. Basically what they need to do is have a daemon that processes the blockchain transactions and puts them into something that can be easily and efficiently queried (like a SQL database). I agree that it would be expensive to get someone to develop - which goes along with what I was saying as far as it not being something that can be quickly and easily done. It is a very useful feature, and it is something that can be done, but it is going to take time/resources to complete.

I'm in the business of mission critical software with super performance, and about 5% of all software engineering effort is writing the code lines. Rest is making sure the system is stable and FAST! any software engineer can make marketing software, ie functionality only, but when it comes to performance and stability, then software architecting and engineering is a whole different beast.

EDIT: btw, No SQL DB seems to become more popular. Also DB technologies from Facebook and Google are super super fast, Cassandra. But even LDAP is very fast, at least in reading, not so much in writing. For proper tools, already DB selection is super important. DB expert is required. Than an software architect (usually not the same person, or you have one of those superman software architects).

I am actually in a similar industry :)

Than you know all what I mean :) But, I'm (just) a product manager and sales guy hahahaha...but love to work with software architects :)

The original proposal in the bounty was to use ElasticSearch

I have no idea what ElasticSearch is. To be honest, our search capabilties s*cks and that is Google search. It does not load last day or two so. Furthermore, search in own post and comment history is not possible, I think Google does not look into comments, but did not play around with to much. That basically means, a lot extra time for posters to use something already written in the past. So inconvenient. Also even Chrome is too slow in get the next batch of 20 posts, that is why in my view most posts at position 80 or 100 in one of the general channels get lost for everybody. Hence, the gamers in the community will seek optimal time to post to get most rewards etc. This really needs to change to get retention of a lot more users.

EDIT: comparison between ElasticSearch and Cassandra, didn't read it yet myself: http://stackoverflow.com/questions/27054954/elasticsearch-vs-cassandra-vs-elasticsearch-with-cassandra

I do agree it is a very important feature! I was the one who wrote the GitHub issue, and organized the bounty to try and get it done :)

To be honest, I would love to have a desktop App, that keeps posts loaded in history. Also local search can be much faster than through remote server and browser. Also, more local means much less load on the servers, requiring less hardware, hence costs. But hey, I'm a local software guy; Love Apps on my Smartphone much more than WebApps and so on.

Ah, thanks for that. I know nothing about development, but I see it already there in AutoSteem. Just needs a more manual curation approach.

Of course, I can understand a Search feature will be difficult, but this is just filtering new posts coming in.

In GitHub it is "waiting for microservice" which basically means that they first need to implement something that allows them to filter and query for data, rather than just providing a stream of what the blockchain returns. It can be done, but my understanding is that there are some higher priorities to get done first.

I think the two main reasons for the microservice flag are scaling (Create a "search" service which can be scaled separatly instead of scaling the whole application) and avoiding implementations that have to be refactored later when implementing the microservices. Those reasons are pretty valid from my point of view so #NoOffence.

Beside that I do not see any other valid reasons why this has not been implemented yet, because I guess that the implementation itself should be quite easy. - Do you know some?
Actually I've already scanned the whole blockchain some weeks ago using my Java-API to collect usernames and their IDs - It was done in about 2 days consuming about 2GB of RAM so the resources should not be a problem at all. We also would only need to save the metrics (like number of votes, number of characters, ...) for each post and not the whole content of it - This saves a lot of disk space. Also projects like SteemDB have shown that it is not that hard to scan the blockchain and store the data.

That would be very nice to have. Add keyword(s) in post; Media types in posts. I also opt for personalisable HOME channel and add similar filters on top of the HOME channel as well. This allows users to increase the number of followings whilst keeping their HOME channel under control.

too complex.
KISS
a filter would be just fine.
a "do not access anything with (xxxxx) keywords.

Hi @liberosist, your post was an inspiration for me to create a new tool. It is called Custom Feed.
Now you have a lot of options to filter the content on your feed.

Details here:
https://steemit.com/utopian-io/@jga/introducing-custom-feed-filter-the-authors-and-posts-that-you-want-to-read

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.029
BTC 66372.71
ETH 3445.12
USDT 1.00
SBD 2.63