Before the scaled sort was introduced, I had hoped it would provide a solution similar to the “Hot” or “Top” filters but without so many memes and political posts. Unfortunately, the scaled sort seems ineffective as most posts appear with a single vote, making it practically the same as the “New” sort. Although I’ve banned the largest communities, I still want to see some of that content occasionally.
The developers have closed all issues related to the scaled sort, even though it fails to address the issues raised in several discussions:
- Rework “Hot” sorting to show posts from more varied communities
- The rank of a post in the aggregated feed should be inversely proportional to the size of the community
- Is there any way to reverse degrowth of the niche communities on Lemmy?
- I hate to say it but I haven’t been very active on lemmy, but I want to be
Personally, I believe the best way to address this issue is through the implementation of tags and custom feeds. With post tags and custom feeds, users could create separate feeds tailored to their preferences by subscribing to a few communities and blocking specific tags or keywords. However, this would require an incentive system similar to imageboards like Safebooru, with a leaderboard to encourage accurate post tagging by users, as also mentioned in The Great Monkey Tagging Army: How Fake Internet Points Can Save Us All!
Do you have any ideas or suggestions on how Lemmy could better surface content from smaller communities?
Step 1: it would be nice if we could at least talk about this in a friendly & civilized manner. I have spent a portion of my day today trying to defend even so much as casually mentioning in passing - in a reply to a reply to a reply even, iirc, much less a full-on post - that I would like something similar to what you said. I give up whenever I detect that someone literally did not read what I already wrote, at which point I see that they just wanted to complain rather than add something of substance to the ongoing conversation. And even if we took it for granted that I was a dummy Mc-Stoopid-buttface, nobody bothered once to explain why I might be wrong.
i.e., there seems to be significant push-back to this approach. I have no idea why though - it seems entirely logical and do-able to me? Especially if it were purely optional, like a new sort option rather than taking over the existing Hot one? At a guess, it may just be a difficult task, so it awaits someone to be interested enough to actually implement it. Also, please remember that the entire Fediverse has and continues to be under perpetual attack (message from DMV.social closing down due to being spammed by illegal CP & CSAM amid concerns over the ethical considerations of being a server that allows posts from external users, i.e. the entire Federation model, quoting: “Quite frankly, this is disturbing and I just don’t want to deal with the possibility of this crap.”) - I do not know if it is Huffman, or Musk, or Zuckerberg, or whoever might not enjoy how this could potentially take away from their profits, but they are correct that if we continue to exist on our own, that we need to do something to protect ourselves against this type of thing. So… sorting is important yes, but I could see if it was not the HIGHEST priority, right now.
But moving on, one thought regarding it: allow each user their own customization filters for each “category” of posts, e.g. 1% politics, 2% sports, restrict news to 5% (though the latter requires significantly deeper thinking to implement - e.g. is an article in a Technology sub still “news”? tbh, “news” is probably not a real category then). Or, as you say, an algorithm that would just work mostly fine for most people. The problem with all of this being that tags would have to exist first, so someone would have to develop that before any of this could begin to be developed and tested.
Which brings us back to: it is really fun to talk about such matters, but ultimately it will take someone rolling up their sleeves first, maybe learning an entirely new language (or several - according to this GitHub page, Lemmy is: “Rust 76.4% PLpgSQL 16.4% TypeScript 5.5% Shell 1.5% Other 0.2%”), and just getting something done. Otherwise, beggars cannot also be choosers, if there is nothing else available to choose from.
This is not possible because sorting is done in the database, so adding a new sort option requires a database migration with new indexes, columns and updated queries. Not something that can be done with a simple plugin.
@nutomic@lemmy.ml https://github.com/LemmyNet/lemmy/issues/3936#issuecomment-1738847763
We’ve already mentioned that it isn’t possible. You can’t assign percentages to categories or personalize the sorting in any way since it is done in the database.
It would be beneficial to talk more about these desirable features to ensure that when developers do invest time in them, we’ve already come up with a good and robust solution. Otherwise, we may encounter a situation similar to the Scaled sort implementation, where issues remain unresolved despite the feature being added.
This is interesting. So sorting is done server-side, I assume this is for performance. In fact now that I think of it, for a client to implement a custom sort it would need to fetch basically every single post for the entire period, across the entire fediverse, which really doesn’t sound practical. At that point the client has effectively become its own local server.
So that means sorting algorithms need to be implemented server-wide.
I wonder if this could be done with plugins that servers could experiment with and modify more easily, rather than being baked into full version updates?
Edit: I have read further down, I understand this is not possible.
I feel the need to be pedantic here: that quote continues on to the very next (and final) sentence being:
Not something that can be done with a simple plugin.
However, anything that is logically possible, is doable, with enough effort & investment - e.g. that infamous quote:
All that quote means is that it would be most simple to do as a back-end task, not a simple front-end one (though even a front-end could, in theory, e.g. slurp up 1000 posts and then use some metric to figure out how to display the most proper subset of 20 from that superset).
But for instance, someone could spin up their own instance, and then add whatever sorting method they wanted to it. However, recall again what happened to DMV.social - anyone who opens up a Lemmy server will be spammed with CSAM, it would seem - so there are other more urgent matters to be attended to first, unless that someone used it purely as a testbed, and made all connections to it to be read-only, or else had a team of moderators willing to put in large amounts of time to fend off those attacks with both manual efforts and also developing automated tools at the same time - e.g. they would need to have technical skill even just to moderate, much less administer the machine (unless, like existing Lemmys, there is a whole team of admins doing the technical parts already). Anyway, I don’t suggest this lightly like it is trivially easy, just to say that it is possible.
It would be beneficial to talk more about these desirable features to ensure that when developers do invest time in them, we’ve already come up with a good and robust solution.
Sure, I am not trying to tell you what to do. Just stating that until and unless someone is willing to tinker with actual implementations - and again, right now their attentions seem to be directed elsewhere, plus while Scaled-sorting Hot may not be perfect it is something (I don’t personally have experience to say if it is better than before b/c I was on Kbin.Social at the time which was totally different - but I thought I heard many people say that it is better now?) - then it is going to be a purely theoretical discussion. Which is probably how Scaled sort got implemented too? Though now that it is built, it could be tinkered with, if there is the will to do so.
But unless you are offering to do any of the actual implementation work yourself, I think you would need to discuss this with the actual admins who you would expect to do that work for you - hence you might try Matrix where they hang out, rather than solely discussing it here.
And then, as you said in your OP, when they say “no” and close all GitHub issues, that, as they say, is that. You can’t “force” someone to do work for you for free - and even if you were offering money, or perhaps offering to do all the “design” work yourself for free, they still would need to agree to actually do the implementation.
Moreover, even if you DID offer to do ALL of the implementation work entirely on your own, unless you do want to spin up your own instance to actually run it on, you still would need the buy-in of the instance admins, for which having the buy-in of the developers would go a LONG way.
So you asked:
Do you have any ideas or suggestions on how Lemmy could better surface content from smaller communities?
And my suggestion is that you cannot walk into someone else’s house and tell them how they should do things. Especially when they have ALREADY said no. They know better what their prioritization is, and what they hope to accomplish over the next month, year, and so on. The absolute beauty of the Fediverse is that you can take all of the existing Lemmy code, which is entirely functional, make a fork of it, and spin up your own instance - and not just run it, but even modify the code to do… whatever you want! And then you can share that code, and benefit all the instances that are running Lemmy too! Discuss.Online, Lemmy.World - all of them, well, those that choose to keep your suggestions, though it is up to each one individually to either accept or reject them, and it is ultimately their call. Reddit does not work this way, nor FaceBook/Meta/Threads, Instagram, Xhitter, etc., but we do, b/c it is “open-source”. The caveat to that being… that someone, somewhere, must put in the actual effort to get it done.
And the people who would normally do that, seem to have said no. I gather that you feel frustrated but… it is what it is. Therefore, of what use is it to talk about any of this, when there is no path forward for it? THAT is how to move forward your ideas: either find or become someone yourself who can implement them, and THEN in talking to them you will actually be in an even better position to understand how it all works, and how it might be changed to work even better than it does now.
I dunno, perhaps I should not have replied at all? Sometimes I do overshare my thoughts and if you disliked that here then I apologize:-). It was my hope to help spur your thoughts along these lines that I was thinking, since it seems to me to be the only way forward. But I guess please ignore me if you think I am wrong, and I wish you luck either way!:-)
Fwiw, I do agree that eventually, when the developers are ready to move forward with this again, they indeed might appreciate a ready-made solution if one happened to be already available by then, but again that assumes that one could be made purely on theoretical grounds alone?
I can see the draw of subscribing to and blocking different keywords — adding another taxonomy to the existing communities. Mastodon and similar microblog projects are ahead in that regard, and not only in terms of muting or following hashtags. I would definitely welcome more user settings on Lemmy so we could curate feeds granularly on an individual level.
The freedom from advanced algorithms really demands that users be the wardens of whatever other sorting comes next, rather than Lemmy devs leaving things be or Meta-like algorithms creep in because of familiarity.
It certainly doesn’t help that Lemmy had and still has absolutely no sensible way to actually surface niche communities to its subscribers. Unlike Reddit, it doesn’t weigh posts by their relative popularity within the community but only by total popularity/popularity within the instance. There’s also zero form of community grouping (like Reddit’s multireddits) - all of which effectively eliminates all niche communities from any sensible main view mode and floods those with shitty memes and even shittier politics only. This pretty much suffocated the initially enthusiastic niche tech communities I had subscribed to. They stood no chance to thrive and their untimely death was inevitable.
There are some very tepid attempts to remedy this in upcoming Lemmy builds, but I fear it’s too little too late.
I fear that Lemmy was simply nowhere near mature enough when it mattered and it has been slowly bleeding users and content ever since. I sincerely hope I’m wrong, though.
@PurpleTentacle@sh.itjust.works https://sh.itjust.works/comment/4451602
Reddit isn’t going to magically get better though. Reddit is dying and will only get worse with time, continually shedding users as time goes by.
So making noise about lemmy, and making suggestions on how to prove it is a good thing, because unlike reddit, lemmy might actually get better with time.
Reddit was like this when it started. I was there when Dig was a competitor. It took a decade of constant posts by people who really loved their communities to really take off. And reddit, when it started, didnt have subreddits, it was closer to hackernews.
Not saying your arguments are wrong per-say. But it will take some time to get started. The good news is federation means different instances will come and go but the protocol means we dont need to stay on any one kind of server. Kinda like email. I use mastodon to talk with peertube creators and use lemmy to talk to other lemmy instances all the time.
multireddits
I think you are spot on here. We need this kind of functionality in order to keep up with instances. For example, lemmy.world/technology and lemmy.ml/technology, etc… could all bu there own multicommunities. Something like /mc/technologies or something saved on a per user perspective. It would transform lemmy overnight I think. multicommunities would make those niche topics have a great deal more action.
Mbin has that. They released a new version 2 weeks ago I’ll have a closer look soon, seems very promising
If your issue is that you are only seeing popular stuff from “lowest-common-denominator” communities, then maybe stop browsing by all and only subscribe to the communities you are interested in?
stop browsing by all and only subscribe to the communities you are interested in
The issue with this is that subscribing to a large community results in seeing predominantly content from that community, overshadowing the smaller communities. All the communities I subscribe to would have to be about the same size.
I see. I think this technical issue doesn’t bother me as much as the fact that the communities I’d like to have are small in the first place. The Reddit mirror bots were solving this for me, but apparently I lost this battle.
Out of curiosity: how many communities would you have in your “subscribed” list?
I agree that scaled sort is not working ideally right now. However the issues you linked were opened before the feature was released, so they are not relevant anymore. You are definitely welcome to open a new issue about improving the implementation. The scaled sort logic is here, if you have any concrete suggestions how to improve it thats even better. And I would rather improve this existing functionality to make it work as expected, before tacking on an entirely new feature which may or may not work.
After giving it some more thought, I believe the best way to solve this would be through an API call to fetch metadata from today’s posts. This would include post ID, votes, and comments. By doing so, anyone can experiment on their client with a custom JavaScript Greasemonkey plugin to determine the best way to sort the posts. When a better sorting method is discovered, it could then be implemented in the backend.
Slowly but surely, people are starting to realize that one of the main benefits of decentralization is that it gives power back to the users, and that we don’t need to be tied by the work done on the backend.
(Yeah, I was writing then about Mastodon, but the logic applies to all fediverse applications)
There is already such an API endpoint which is available for mods and admins.
Personally, I believe the best way to address this issue is through the implementation of tags and custom feeds.
I expressed my enthusiasm for tags over in The Great Monkey Tagging Army discussion and have had a chance to ponder this some more - I still like the idea:
- It provides context and meaning to posts - just think of all the disambiguation pages on Wikipedia. Are you looking for Predator the film, the UAV, etc? Really only tags can help there - multitags or disambiguation? Or both? There are discussions to be had.
- It allows more depth to things like communities - I was just talking to someone who had been failing to find a place to talk about a specific British comic until they found !britishcomics@feddit.uk. With tags, I could have tagged the community with #dandy, #beano, #2000AD, #bunty, etc.
- It also provides a way for Lemmy to integrate better with the Fediverse as it doesn’t currently play well with services outside the Threadiverse.
My current thinking is leaning towards FediTags - a separate, federated plug-in service. So you could run it with Lemmy, Pixelfed, etc and it would bring together all the tagged content. You look up stonehenge + photographs and get pictures on Pixelfed, Mastodon and kbin. As a plug-in the changes in code needed to, for example, Lemmy would be minimal and, hopefully, a one-time thing. Development of FediTag could then take place completely separately.
Tagging would make sense to categorize posts within a single community. But you seem to suggest tags which are shared across communities. I dont really see the point of this, as communities themselves are already used for a global “tagging” of posts. So it would only duplicate that functionality.
I just want the ability for people to deploy their own sorting systems. Then we could have opensource projects and everyones happy (ok maybe not, but thats as close as we get to it)
Idk how that would work, I’m not tech literate but it’s the obvious solution to me
I just want a superintelligent AI that always talks to me about the things I like to hear. That’s a bit far-fetched, but I also thought it was possible before: Algorithm Marketplace
This is not possible because sorting is done in the database, so adding a new sort option requires a database migration with new indexes, columns and updated queries. Not something that can be done with a simple plugin.
Ah that’s a shame
Actually scores are regularly calcuated from a scheduled task which runs in Rust. Yes the score caculation is currently implemented in SQL, but it could also be changed to a Rust implementation or a plugin. This would probably need some optimization so that the plugin only calculates scores for recent posts, not every single known post. In any case it would need someone with the time and motivation to implement it.