Why doesn't lemmy show communities in the 'all' section unless people from your server are already subscribed to him?
It's excruciatingly obnoxious to have to rely on third party sources for what should be a first-party feature.
Like, I select all and then search a query. "Oh no, nobody on your server used a third party service to find it, so you won't see it here."
Like, how short-sighted is that, really? If I search for a string in the 'all' servers, I should have a list of 'all' the servers containing that string.
It's a really simple concept. Not sure why this post even has to be made, but I'm wondering if there's something I can do to make these 'features' more intuitive.
totally understand the frustration, and i’m not going to try and invalidate it!
… however, it’s definitely not a problem with a simple solution
since anyone can start an instance, when you search “all”, where should it search? i don’t mean generally like “all the instances”, i mean where specifically? things like lemmy.world, lemmy.ml, kbin.social, etc are obvious… but what about lemmy.mydomainforfriends.social (not real but let’s pretend someone created their own little instance for friends there!)?
let’s say you say yes that should be searched, okay… how does your instance know it’s there? does it tell all other instances that it exists at some point? where does IT get that list from? (the current solution to this is that your instance starts to “know about” an instance after someone interacts with it, but this has the problem you’ve described)
let’s say that instance shouldn’t be searched… now, what are the rules (automatic id assume; not with human intervention) that would allow an instance to be added to some big list somewhere? also where is that list? now we’re back at problem 1: how do you store a federated list of servers?
the problem gets even harder when you consider mastodon, pixelfed, peertube, etc… all these services interact: should all include them? only certain things in them?
While it has problems of its own, instances could pool and share that knowledge. The first time an instance talks to a different insta ce it could just ask "hey, what other instances are you aware of?". The main issue there is just instances obsessively sending exponentially growing lists of instances back and forth.
But no, that is the main bane of federated social media, discoverability without a center of truth
yup! 100% agree! federation is kind of a new thing and we have some issues to work out that’s for sure!
heck, i could even see some kind of federated search service: activitypub instances could submit their content for indexing and individual instance could choose an existing, or run their own federated fediverse search… importantly, there would need to be choice for each individual instance with no centralised repository
So many options, doing none seems lazy. I can source all kinds of lists for my pihole to block traffic. I can put a lot of repos in my yum.conf. It’s not like this should be reliant on any one single source of truth. There could certainly be an open source list maintained. I’m surprised this is considered such a difficult problem with so many smart folks involved, I’m obviously really ignorant to how this stuff works. I just don’t get how a problem that seems to have been solved across a litany of technical products using shared sources in defederated environments is such an exotic hurdle here.
since anyone can start an instance, when you search “all”, where should it search?
Easy! It should search all the servers your server is federated with! Servers should contain a list of their community names that can be easily and quickly queried by other servers.
Federation isn't opt-in though. It would be VERY easy to spin up a bunch of instances with millions or billions of fake communities and use them to DDOS a server's search function.
Searching current active subscriptions helps mitigate that vector a little.
In this context it means all posts which are stored on the server you are on. And only things are stored which people subscribed to. It does not mean "‘all’ servers".
There are good reasons why the protocol has been designed like that, if you're interested then you can find out about it. If not, reddit still exists for people who like it more.
So All does not show posts from all instances federated with your instance, but only posts from all communities subscribed to by people in your instance?
The word "all" fundamentally means everything? By calling it "all" they are really doing a disservice to everyone who, gasp, assumes "all" means "all" when it really means "local communities and local user foreign subscriptions". I don't know what they should call it, but redefining the words "all" to be "not all" is super confusing, especially for users new to lemmy.
Resource wise, it makes sense to only retrieve content the users of the instance are interested in. Think about all the nsfw communities popping on lemmynsfw and pornlemmy, as well as all the content in languages your users don't speak.
Some instances are multilingual, so you don't want to defederate from them (and defederation shouldn't really be used in this context anyway), but retrieving 50% of content none of your users is ever going to read seems like a waste.
It's just not very simple, quite the contrary, you would need to have a server park like reddit has it to store everuthing on every instance, the databases would be so big that you would need specialosts running just the database servers.
It's a massive usability issue and a massive content discovery issue, imo.
For lemmy users who got lucky and had their first lemmy experience on a top 5 instance where a lot of popular off-instance communities are already subscribed to, then users would see a huge list of both local and foreign communities. For users who got unlucky and had their first lemmy experience on a small instance, their view of "all" looks like a ghost town.
Part of the problem is semantical. If they are going to call it "all" then it should really be all (all lemmy communities available on all federated instances). If it isn't going to actually show everything, then they should call it something else that indicates it's only local communities plus whatever local users are subscribed to.
Resource wise, it makes sense to only retrieve content the users of the instance are interested in. Think about all the nsfw communities popping on lemmynsfw and pornlemmy, as well as all the content in languages your users don't speak.
You are obviously speaking from the privilege of someone not only familiar with how lemmy works, and who understands the difference and pros/cons of joining a large vs small instance and can probably even name a bunch, but also someone who knows of obscure tools and github repos that host those tools. What prevents users from switching using that obscure tool you referenced is that most users never heard of it and didn't know it even existed. You are using the argument that new and casual users should have god-level knowledge and understanding...which is exactly the point I'm trying to argue against. Casual and new users don't know what they don't know. They don't know what other communities are out there and they don't know that when they view "all" that they aren't seeing them. Think about this from the perspective of someone who doesn't know what you know.
Regarding your argument about NSFW and foreign language search results....that already happens now when users of your instance have subscribed to those things. You can't argue that it would become a problem when it's already happening right now. If it really was the problem that you think it is, then the solution would be to mimic what every other search tool figured out three decades ago and put an option to exclude nsfw results when viewing/searching "all" communities. It's already possible for communities to flag themselves as NSFW, and it's already possible for communities to designate their community language setting, it would make sense that those options be presented to users for filtering. These filtering options are things we need now regardless of whether search results come from actual-all or subset-all. I'm just suggesting that "all" mean "actual all".
But, just for fun, let's steelman your claim that it would be technologically infeasible for "all" to be "all fediverse" as opposed to a subset of just what this server's users subscribe to (it's absolutely not technologically infeasible, but lets pretend it is) - even it that scenario, they should at least change up the UI for the communities page to make it clear that when the user selects "all" that they aren't really getting all - it should be made clear what the user is actually getting, which is "local, plus foreign content that is subscribed to locally". It simply is not truly "all", so presenting it as "all" is only leading to more confusion about what the users are seeing.
I think the lemmy-ui's could very much benefit from a "global community discovery service" like https://browse.feddit.de , but integrated into the front ends. I'd of course prefer that each lemmy back-end do their own crawling of communities and instances, to make it as distributed as possible.
The simple explanation is your instance doesn’t “know” what’s out there. lemmy.world doesn’t know when lemmy.ml adds a community, and it doesn’t know when hypothetical.server pops up as a new instance. There’s not really a good way of knowing that without having a central repository, which defeats the purpose of a centralized platform.
One thing you can do is use Lemmy Explorer to search for communities on other instances and subscribe to them. This will fill up All for everyone on your instance.
Looks to me like lemmy explorer could just be sourced for results fairly easy. Even if it was just added as an additional source to the default listings. Similar to setting up yum repos etcetera. Is there a good reason this isn’t a thing? I know my use and exposure to communities is severely limited by the current cluster fuck of finding communities. I just don’t care enough to go further than searching in the app and closing out if nothing shows up. I realize my laziness contributes to my user experience but saying an instance doesn’t know what’s out there and then providing a site that will let me search for what’s out there doesn’t seem logical.
If they can't bother with investigating the platform for 10 minutes, I think they should stay on Reddit and keep complaining about the awful app and website over there.
I'm not exactly sure what features are up to the admins and which are standard. If there's a server that implements this and mine doesn't, I can definitely see myself switching.
Forgive what is probably a silly naive question...
Can someone point me to an explanation of the federated architecture of lemmy? I haven't found one yet that has helped me build a good mental model.
I either get a step-by-step startup guide, or discussions on the merrits/demerits of a distributed system.
I think I've pieced together that it's basically independent "instances" of the machine each with their own communities within. Sort of like if there were multiple instances of reddit, each with its own r/aww or whatever. I don't yet understand, however how these interact/relate/ovelap/collaborate...which I think is the basis for this thread.
All you need to do is subscribe to it yourself. You don't need to rely on someone else. You can find the place with the search feature on your own, then subscribe so it starts getting pulled in all.
There really should be a link to this on every instance/communities page with a note that if users really want to see "all" communities, they must use a 3rd party search tool to do it.