- Moved a couple engines to the graveyard. h/t to dequbed for telling me about moose.at’s demise, and to my broken link checker for telling me about Siik being down for a while now.
- Updated my methodology section to emphasize how I now use word-substitutions to fingerprint an engine’s source. Queries that lend themselves to word-substitution are now my primary approach to uncovering which provider an engine uses for search results, followed by some long-tail queries and search operator support.
- I ought to add a section to describe why I don’t personally like metasearch engines as much as I used to. TLDR: each engine has its own quirks and search operators that I learn to use, and throwing them all on one page forces me to use whatever quirks they have in common. This is really bad for long-tail queries.
- I should put more effort into categorizing engines by strength as well as index size. I’ll have to come up with appropriate terms for things like “ability to find specific pages with specific topics” (less aggressive word substitutions, less focus on semantic search: Mojeek is one of the best at this, Yep is terrible), or “ability to discover pages about a given broad topic” (Yep is good at this once you learn to use it well, but Mojeek isn’t).
That second bullet point is really important. Part of the point of this article is to show that nobody can beat Google at being Google (except perhaps Bing), but we can beat Google at more specific niches.
- Moved a couple engines to the graveyard. h/t to dequbed for telling me about moose.at’s demise, and to my broken link checker for telling me about Siik being down for a while now.
- Updated my methodology section to emphasize how I now use word-substitutions to fingerprint an engine’s source. Queries that lend themselves to word-substitution are now my primary approach to uncovering...
If you argue that your GUI toolkit is better than others because it’s “suckless” I’ll assume it completely lacks any kind of support for bidirectional text, advanced font rendering necessary for several non-Latin languages, or accessibility.
In light of recent events, some people asked me for VPS advice.
uh
i don’t know what I did to deserve this reputation; it’s been years since i’ve rented from a new provider. i will say:
go wild for your fun projects, but if it’s important:
please oh please check the ToS, SLA, customer support, staff hours, data processing agreement (if it exists), and user reviews (paying special attention to how different providers cancel service) before you pick that too-cheap-to-be-true VPS provider to host your most important projects. If they’re a small provider, see who else uses them (you probably don’t want to share a box with someone too shady).
if you’re hosting a large community or your livelihood, talk to staff before you commit to an upstart provider. ask about any of the above you couldn’t find on your own.
Oh, and use a custom ISO if you’re not familiar with your provider’s customizations to OOTB images. Providers nowadays preconfigure their images a lot with questionable regard for security.
With that preface out of the way: Server Hunter is a great resource for finding new low-cost providers. Remember that below a certain price (like $3/mo), you probably get what you pay for. I won’t pay less than that for anything important with a fixed IPv4.
In light of recent events, some people asked me for VPS advice.
uh
i don’t know what I did to deserve this reputation; it’s been years since i’ve rented from a new provider. i will say:
go wild for your fun projects, but if it’s important:
please oh please check the ToS, SLA, customer support, staff hours, data processing agreement (if it exists), and user reviews (paying special attention to how different providers cancel service) before you pick that too-cheap-to-be-true VPS provider to host your...
We should make a compatibility matrix of MastoAPI clients’ feature support beyond vanilla Mastodon. All these clients support sending + rendering reactions:
Web/PWA:
- Whalebird, Fedistar: quotes I think?
- Enafore: quotes, MFM, different posting mimetypes (Markdown, HTML, BBCode, HTML, MFM), bubble timeline
- Mangane: quotes, MFM, different posting mimetypes
- Phanpy (?)
Android:
- Megalodon + Moshidon
iOS:
- Feditext: partial support for rendering quotes.
Flutter:
- Kaiteki: Markdown, maybe posting with different mimetypes?
I know of no clients with reaction support for Freedesktop, macOS, or Windows.
I’ll edit this post as more people make suggestions.
We should make a compatibility matrix of MastoAPI clients’ feature support beyond vanilla Mastodon. All these clients support sending + rendering reactions:
Web/PWA:
- Whalebird, Fedistar: quotes I think?
- Enafore: quotes, MFM, different posting mimetypes (Markdown, HTML, BBCode, HTML, MFM), bubble timeline
- Mangane: quotes, MFM, different posting mimetypes
- Phanpy (?)
If you are releasing software intended to run on a server, document the memory footprint.
People use cheap VPSes with as little as 512mb RAM sometimes. 1GB servers are still super common. Your software won’t be the only thing running on them: you’ll often have a few hundred—or a few dozen—megabytes left to use.
If your server and moderation burden are far below capacity, consider temporarily opening sign-ups. In your “about” page, add instructions on something to include in the registration reason to filter out spam.
If your server or moderation burden are near capacity, consider closing sign-ups.
It just keeps getting more relevant. WhatsApp, GitHub, Twitter, Reddit…each disaster worse than the last. The companies in charge know that the users will just take it after having their autonomy taken first.
The accessibility isn’t “needing improvement”. The Akkoma-FE needs improvement. Calckey’s accessibility is “practically non-existent”.
This is one of the most advanced Fediverse front-ends with several bespoke complex widgets, which makes accessibility a challenge; it needs to be a priority from the start. Yet it seems to be designed in a way to override all the native browser behaviors to make an interface accessible. It’s dug itself into a moat.
From a minute with the front-end, I see this:
- Buttons don’t have readable accessible names.
- Much of the interface isn’t keyboard-reachable.
- Heavy animations don’t respect reduced-motion settings.
- Loading indicators lingering on the accessibility tree.
- All the fancy floating windows are contained in section roles that lack accessible names. The title bars are broken into multiple static text elements, one of which is a Unicode symbol.
This was all within a minute of using Calckey. A more thorough look would probably reveal far more.
I’m not optimistic about bolting accessibility onto an already-complex front-end, but I don’t find the situation hopeless! Effort is probably better spent supporting MastoAPI so people can use accessible clients, and on getting non-Calckey servers to support federated back-filling of missing replies so we don’t have to view posts on a remote Calckey instance’s front-end. It may also be possible to create a separate, more-accessible “read-only” static front-end. Akkoma’s static-FE (not enabled on this instance but visible elsewhere) is one good example of this approach.
Everything I wrote should also apply to the other *key forks (Misskey, Foundkey, etc).
I’d be happy to be proven wrong about any of this.
Edit: Calckey appears to have added support for reduced-motion, and will soon get better keyboard support.
The accessibility isn’t “needing improvement”. The Akkoma-FE needs improvement. Calckey’s accessibility is “practically non-existent”.
This is one of the most advanced Fediverse front-ends with several bespoke complex widgets, which makes accessibility a challenge; it needs to be a priority from the start. Yet it seems to be designed in a way to override all the native browser behaviors to make an interface accessible. It’s dug itself into a moat.
mastodon.social went down right after Website Boy announced they’re experiencing a DDoS. But nearly everyone I interact with is doing just fine, because most of my mutuals aren’t on mastodon.social.