Also, this is a first jab at Forkeys. I guess it won't be the last.
JupiterRowland
I'm not even only talking about a 24-hour lag. I'm talking about parts of the Fediverse never being discovered at all. After all, the Fediverse doesn't have a centralised DNS of its own in which all instances are registered but only them, where a search crawler could simply look them up.
Even if someone developed a Web search crawler much like the Google Bot, something that crawls the entire WWW looking for Fediverse instances, how is it supposed to tell Fediverse instances from websites that aren't Fediverse instances?
I bet the first two proposals for solutions wouldn't work with (streams).
The first proposal would probably be to go for the instance type, like "mastodon" or "lemmy" or "mbin" or "akkoma" or "misskey" or whatever. This, however, would require valid instance types to be manually added to a kind of config file from which the search crawler could look valid instance types up. This, in turn, would only work if this list was constantly kept complete and up-to-date.
This means: Whenever someone launches a new project, the identifier of this project will have to be added to the list. Whenever someone forks something into a new project, ditto. Now let the devs of the crawler have as little time as the Plume devs or as the sole Firefish dev early this year, and the list of Fediverse instance types will spend months outdated with new projects missing, and the crawler won't recognise the instances of these new projects as Fediverse projects.
Oh, and it wouldn't work with (streams) at all. See, (streams) is intentionally without a name, without a brand identity and even without a unified, pre-defined, fixed instance type. It isn't like all instances identify as "streams" or "(streams)". Some identify as "streams", but many others have unique types. The crawler wouldn't know these identifiers as valid Fediverse instance types (how is that crawler supposed to know that "bunny of doom" is a Fediverse identifier), and thus, it wouldn't be able to identify (streams) instances as Fediverse instances.
Now you could say that (streams) is so tiny that it wouldn't hurt to sweep it under the rug. Nobody would notice.
But that'd exactly be the problem. One of the (streams) users is the guy who created (streams) and everything before it all the way back to Mistpark in 2010, the one man who developed more Fediverse protocols and server applications than anyone, the man who invented nomadic identity and magic single sign-on: Mike Macgirvin. He is on one out of only two instances that identify as "y" (because Y is not X).
He is one of the few people in the Fediverse who actually post about what's possible in the Fediverse that goes way beyond Mastodon. Not only possible, but readily available right now. He started advertising (streams) in the wake of the mass-migration of Twitter users to Mastodon. And if his most recent creation, Forte, manages to take off, he'll probably advertise that. If (streams) wasn't caught by crawlers, nobody would read his advertisement except those who already follow him, and I guess half of them already know his creations and what they can do.
Hard-coding the custom identifiers of (streams) instances into the list is a stupid idea, too. The instance type is not defined upon installation in a config file. It's an admin-side free-text field that can be changed anytime with no consequences for connections, just because the admin feels like it.
Okay, so here's the second proposal: Go for nodeinfo. The problem this time: Mike has also intentionally removed almost all nodeinfo code from (streams). He didn't want (streams) to participate in that eternal rat race between Fediverse projects and Fediverse instances for the best stats on FediDB, Fediverse Observer and The Federation. In fact, (streams) is entirely absent from all three. This, too, is intentional.
If anyone has a better idea, I'm all ears.
I've got loads of still unposted stuff. Don't worry.
But then again, the whole community was my idea.
Still, the issue would be to find all instances of all Fediverse server applications.
I mean, the idea was to cover the whole Fediverse with that search. Literally everything.
Like, imagine I spin up my own instance of Forte on a home server to try it out and see if it already works.
How's a Fediverse search engine supposed to know about my brand-new Forte instance? Clairvoyance? Hah. A crawler? Yeah, right, as if any crawler out there was fast enough to discover a brand-new instance of something that doesn't have a running instance at all yet. At least not beyond enclosed, experimental instances detached from the rest of the Fediverse.
I mean, instead of Forte, I could also install what Forte was forked from, namely something colloquially referred to as (streams). Something that intentionally doesn't have a name, doesn't have a brand identity, doesn't have a unified server identifier. Unlike Mastodon whose instances all identify as "mastodon" and Lemmy whose instances all identify as "lemmy" and Hubzilla whose instances all identify as "hubzilla", (streams) instances don't all identify the same. That field is customisable. And it has been customised for as long as (streams) has been around. You can't reliably crawl (streams) instances. Instead of "streams", they can identify as "y" (because Y is not X) or "get ready to rumbly" (public instance actually) or "bunny of doom" or "diversi spiritus".
In fact, crawlers would have to be able to identify any kind of Fediverse server software. Even if someone has only just forked something, a crawler would be able to recognise it as Fediverse server software. If you hard-code server identifiers into the crawler, it'd be out-of-date as soon as someone decides to fork Mastodon or Misskey or Firefish or Sharkey or whatever again. And, as mentioned above, you can't crawl (streams) instances by identifier.
It simply is impossible to discover and index the whole Fediverse by crawling, Google-style. And if a Fediverse search engine can't discover a (streams) instance that identifies as "y", it can't index the content coming from the man who created (streams) and Forte and still occasionally develops both. The man who created the oldest still existing Fediverse project, Friendica, as well as the Swiss Army knife of the Fediverse, Hubzilla, and the very concept of nomadic identity. One of the most competent and experienced Fediverse devs ever. A crawler couldn't find him.
Still, the search engine needs to know all Fediverse instances, right?
Well, if crawling fails, and crawling does fail, there's only one way to achieve that: Each instance would have to announce its presence to anything that's supposed to be able to search the Fediverse.
But in order to be able that, each instance would have to know everything that can search the Fediverse. And all instances of it. Every single one of them.
And if it shall announce its existence when it spins up for the first time, it will have to know all these search instances immediately before spinning up.
How can it possibly know them all before even going online itself?
Two options. Either a centralised list of all search instance that's being updated as soon as a new one is spun up.
But you said, "federated." As in not centralised.
Or the list would have to be built into the source code as it's being git pulled from the code repository. In fact, the list would have to be git pulled from the code repository immediately before the server spins up so that it's up-to-date when the server spins up. This would mean that the whole server software would have to be updated before start-up.
Of course, each Fediverse server software project that's started from scratch would have to implement this list, otherwise its instances couldn't be found.
But how is this list supposed to be kept up-to-date?
I mean, let's suppose what has been spun up here is something that has Fediverse search built in. It itself would have to be added to this list so that other new instances can announce themselves to this new instance, so that it can find them and index their content.
So how is this new search-equipped instance supposed to be added to the list of search instances?
Shall it add itself to the list by manipulating the production code of all Fediverse server applications that have Fediverse search built in? Past the maintainers and without their consent?
Perfect search that covers 100% of the Fediverse has to rely on lists of some kind, that's clear. The Fediverse changes too quickly to be crawlable. It's too diverse to be crawlable. And it has server software which itself is inherently uncrawlable because it's undiscoverable by design.
But such lists are impossible to always be kept up-to-date, too.
Feels like the A.1 issue of Mastadon as a platform. If person A on instance Q wants to follow person B on instance R, there’s no straight line easy path to do that. Compared to Twitter or BlueSky or Threads, where its all one ecosystem and you just say “I’d like to follow @LieutenantDickweasel” and now you’ve got their posts in your stream, Mastadon is byzantine and not worth the effort to explore.
You do know that the Fediverse is more than just Mastodon, Truth Social and the Threadiverse?
Search that covers 100% of the Fediverse is technologically impossible. Any Fediverse-wide search would need to know all of the Fediverse. All of it.
Like, let's suppose R is B's personal instance. Let's suppose B spins up the instance for the first time. Any all-encompassing Fediverse search would have to know about it immediately. The very millisecond Apache or nginx or whatever comes to life, that search would have to know it's there to be able to always cover exactly 100% of the Fediverse.
How's that supposed to work?
If it's one centralised search engine, it would have to be hard-coded into the source code of every last Fediverse project out there so all new instances can automatically announce their existence to the search engine.
And that's not four projects or so. It's over 100. Not only Mastodon, Lemmy, Mbin and PieFed. It's also Ecko and Hometown and Glitch and many other Mastodon forks. And Pleroma and Akkoma and other Pleroma forks. And Misskey and Firefish and Iceshrimp and Iceshrimp.NET and Sharkey and CherryPick and Catodon and Meisskey and Tanukey and Neko and dozens upon dozens of other Misskey forks. And Mitra. And Socialhome. And GoToSocial. And micro.blog which, by the way, is closed-source. And Friendica and Hubzilla and the streams repository and Forte. And Pixelfed. And Funkwhale. And Bandwagon. And Castopod. And PeerTube. And Owncast. And Mobilizon. And Gancio. And BookWyrm. And Flohmarkt. And so forth.
It'd be even worse if it was supposed to be built into the Fediverse projects themself. Like, you could search the whole Fediverse from Lemmy's Web interface or any one Mastodon app.
That'd require each new instance to announce its instance to each running instance.
That'd require each new instance to know all running instances immediately.
That'd only be possible by building a list of 20,000++ Fediverse instances into every last Fediverse server software repository so that it's installed along with new instances.
And that list would always have to be up-to-date.
So when B spins up R, the following would have to happen:
- R
git pull
s the most recent version of the main branch of Mastodon's source code to have a most up-to-date list of active instances possible. - R starts up.
- R announces its existence to the 20,000++ Fediverse instances on the list.
- R goes through a list of all Fediverse server application code repositories which it has pulled from the Mastodon code repository as well.
- R announces its existence to every last one of these repositories by creating a new branch, editing the list of active Fediverse instances, submitting the edit as a pull request and merging its own new branch into the main/stable/release/... branches of all these code repositories.
Any Fediverse server out there would be able to hack into any Fediverse server code repository and manipulate the production code. Otherwise, this whole thing couldn't work.
Fediverse server code repositories would be flooded with automated pull requests plus mergers. Oh, and if Mastodon can add a new instance to a list in the Mastodon production source code, anything could remote-manipulate anything in the Mastodon production source code.
Not more than mentioned in that thread.
But I guess the cat's out the bag, it's known that this is doable, so maybe this won't stay the only time.
That, and/or people might bolt other stuff to Hubzilla.
A lot is going on in and around Hubzilla recently. Version 9.4 has only been released a couple of weeks ago, and it already got four bugfix releases. We might actually be approaching Hubzilla 10 in the not-so-distant future which will adopt a few features from (streams).
Scott M. Stolz is back at developing his new third-party themes which we expect to improve Hubzilla's UX. On top of that, he plans to launch a bunch of new public hubs, also so aspiring users in North America won't have to resort to overseas hubs.
The re-writing of Hubzilla's entire help in German and English is on-going.
Most recent surprise: Someone has managed to integrate the Bandcamp alternative Faircamp into a Hubzilla channel.
If only (streams) had more people taking care of it...
If you really want entire lemmy instances to be 100% meme-free, the mods would have a lot to do because they'd have to read through every last post and comment.
Just like not every picture with text in white Impact with black outlines is a meme (it has to be established as such), memes aren't only pictures with text in white Impact font with black outlines. In fact, they aren't always pictures. They can just as well be text, embedded in other text.
Any catchphrase can be a meme. Snowclones are memes, too. Snowclones are the memes of the analogue era. They date back to the analogue era, to the mainstream media of the 1970s, the 1960, the 1950s, as far back as William Shakespeare, as far back as ancient Rome, and I'm pretty sure there are snowclones from ancient Greece.
I can't imagine the mods of any one Lemmy instance reading through all posts and all comments and sanctioning everyone who has dared to use a decades-old snowclone in it.
(Whoever finds a meme in this comment may keep it.)
They’re all about saying as little as possible using a slightly altered version of a scripted scene.
More like using as few words as possible while relying on the scene for the context.
Exactly that. And especially in social media, this is of imminent importance. Always remember that the Fediverse is not only Lemmy.
I'm mostly active outside the Threadiverse. The Fediverse outside the Threadiverse is dominated by Mastodon and thus by people who refuse to read anything that's over 500 characters long.
But I'm not on Mastodon myself. I'm on something that doesn't have a character limit. So the thoughts that I pour into posts are not necessarily simple enough for 500 characters. They don't have to.
So I could write an essay about them. Thousands of characters. But many Fediverse users (remember that Mastodon is 70% of the Fediverse) will ignore it because it's too long, because it's over 500 characters long.
Or I could pick an appropriate meme template that's best at expressing my thoughts and feelings and make an image macro out of it, adding my own text. By the way, I mostly hand-craft my image macros in GIMP. And then I post that.
Sure, I do add some explanation afterwards where explanation is due. I link to the KnowYourMeme entry that explains the used template(s), and I link to what my image macro is about. If I can't link to the latter, I explain it in my own words. But I do so after the image. If you don't need these explanations, if the image macro works for you without these explanations, you can skip them without having to skip the image macro.
A few examples (content warning: all these links lead to meme content):
You could ramble on and on about how tricky and difficult something is. Or you can let Boromir speak for yourself: One does not simply implement FEP-ef61. If you think I'm just too lazy to type, check out the 25,000 characters of explanations right below. That was before I was told that linking to external sources is actually more convenient for readers than having such a massive pile of infodumps within the post iself.
Here, I've commented on the bleak future (or total lack thereof) of three Fediverse server applications in only one fully hand-crafted image with only few words. This time, the templates weren't images but phrases ("That's cute", "Bitch, please"). For comparison, the whole situation is explained below. Notice what a wall of text it is. Imagine exposing someone who's used to Twitter to so much text.
Another example: I could say that the history of Mike Macgirvin's Fediverse creations is pretty complex. You wouldn't have an idea of how complex it is. Or I could use the Pepe Silvia template to illustrate it. That'd give you more of an idea of how complex it is without me having to ramble about it and give you details that you haven't even asked for.
I could also have written an essay on the current spam wave on Mastodon, how it's bad, but how I don't care, and I don't pity Mastodon because Mastodon had it coming with its self-imposed weaknesses, and Fediverse server software with reasonable safety features are not and can't be affected by this kind of spam. Instead, I resorted to having Jeremy Clarkson of Top Gear and The Grand Tour speak for myself, using an image macro which I had made as a response to an earlier spam wave a while ago. Easier to understand with much fewer words.
People can communicate really complicated or nuanced emotions very simply and clearly with a meme.
Exactly. A single image macro often says more than a 1,000-word essay.
Of course, it only works if the recipients understand the meme. Luckily, some are pretty obvious.
Firefish will be discontinued around the end of the year.
Here's the context: Calckey/Firefish, a direct Misskey soft fork was mostly a one-person show, entirely run by Kainoa who was also the sole tech admin of the lighthouse instance. There were other devs, but Kainoa was the sole maintainer and the only one who could merge patches into production code. Nobody else was ever authorised to do so. Calckey/Firefish was Kainoa's baby.
In late 2023, Kainoa largely disappeared from the face of the Earth. No engagement with the Fediverse at all anymore. There were sparse signs of life, but that was all. Turned out Kainoa had graduated and started a job and didn't even have a few seconds to post anything into the Fediverse. In the meantime, Firefish didn't follow Misskey's development and got stuck on Misskey 12 level while Misskey went to version 14. Also, the lighthouse instance whose only tech admin was Kainoa completely crapped off and became entirely unuseable.
All other devs jumped ship. I think both Iceshrimp and Sharkey were launched by former Firefish devs (at least one of them was, Iceshrimp being a former hard fork of Firefish which was quickly rebased into a more up-to-date Misskey soft fork whereas Sharkey started out as a Misskey soft fork right away.
After about half a year, Kainoa came back and promised that things would continue. But someone else had to continue it. And that was Naskya. It was up to her to continue, but with zero help from Kainoa. The latter didn't want to continue any of the existing Firefish sites, not the website, not the lighthouse instance, not even the code repository because all three ran on Firefish-specific domains which Kainoa probably couldn't be bothered to transfer. All three were scheduled to shut down which is why many people think Firefish is dead: The old links no longer work.
So when Naskya took over, she had to set up a wholly new code repository, essentially fork Kainoa's repository as long as it still existed (Naskya's Firefish is a hard fork of Kainoa's Firefish, technically speaking) and set up a new llighthouse instance. But since she ended up the only dev, it became much too much work. And so she announced to discontinue Firefish by the end of 2024.
Iceshrimp was designed for stability which is also why a number of Firefish features had been kicked out. It itself is on maintenance for as long as it will continue to exist, which won't be that long.
The reason: Iceshrimp.NET. The Iceshrimp devs decided to no longer put up with Misskey's mangled, faulty code base and no longer try to patch what's broken on Misskey's side. And besides, a Fediverse server application entirely based on JavaScript (TypeScript + Node.js) doesn't sound that much like a good idea. Instead, the Iceshrimp devs decided to re-write all of Iceshrimp from scratch, from the ground up, in C#. This is far from done which means it's even farther from being daily-driveable.
So you've got two Iceshrimps now: One is a Forkey and only receives bugfixes or security patches anymore, if anything. One is not a Forkey and not ready for public deployment yet either.
Sharkey used to be the king of features, but at the cost of reliability. Especially Sharkey's Mastodon API implementation is infamously bad. The Sharkey community has been waiting for someone to step up and develop a completely new Mastodon API implementation for Sharkey for I don't know how long.
Also, the Sharkey devs lost a whole lot of community support when they collected donations for a server for Sharkey purposes and then took the money to set up a Minecraft server. Make of that what you want.
News on Catodon are sparse, if there are any. But then again, Catodon is Iceshrimp dumbed down for Mastodon converts' convenience with a UI that's as close as possible to the default Mastodon Web UI. That's probably not what you're looking for.
And it being Iceshrimp-based may pretty well mean that the Catodon development is halted and waiting for Iceshrimp.NET to be released so that Catodon can be rebased from the dead TypeScript/Node.js Iceshrimp codebase to the new C# Iceshrimp.NET codebase.
And then there's CherryPick. AFAIK, it's a Japan-based Sharkey soft-fork in which a whole lot of Misskey and Sharkey issues have been fixed; don't ask me for details, I only know this stuff from hearsay. Basically, CherryPick is Sharkey in good. Or in better.
Caveats: Like Misskey, CherryPick is developed in Japan. I wouldn't count on any of the devs, much less all of them, being fluent in English or anything else that isn't Japanese. Also, there's one (1) public instance outside of East Asia; it's located in the Washington, D.C. metropolitan area. All the other instances are in and around Tokyo and Seoul.
All this combined may be why next to nobody in the West even knows that CherryPick exists.