flamingos-cant (hopepunk arc)

Webp’s strongest soldier.

  • 14 Posts
  • 113 Comments
Joined 2 years ago
cake
Cake day: June 12th, 2023

help-circle
  • Right now blacksky.community is an app that uses Bluesky’s AppView, which in turn uses Bluesky’s Relay. They’re working on their own AppView (which will have the equivalent of local-only posts) and that will use their Relay.

    Interesting, from what I understand of ATProto, this would be hard to do on protocol, it’ll be fascinating to see how they do it. Maybe something off protocol like the recent bookmark feature Bluesky got.

    I didn’t mean to undercut your point though, they often talk about PDSs as analogous to web pages, so your “different search engines” analogy is very accurate, it’s just not quite there yet.

    I’d love to take credit for this, but the ATProto docs themselves make this comparison which is where I’m getting this from.

    if I recall correctly either in (((streams))) or Forte (or maybe both) MIke implemented the nomadic identity over ActivityPub as well

    This sent me down a bit a of a rabbit hole. It seems (streams) used an updated version of Zot, Zot/11 but was renamed to just Nomad. I can’t find anything about this, the (streams) repo only contains the spec for Zot/6, so I’m not sure about it’s APub compatibility. Apparently, Nomad had been discontinued in Forte in favour of pure APub, anyway.

    If you’re thinking about this kind of stuff for Lemmy, it’s also worth looking at https://socialhub.activitypub.rocks/t/fep-ef61-portable-objects/3738

    Oh, I know about Silverpill’s work, it’s really interesting! I even mentioned it recently. I’m glad we have someone smart like them working on this stuff.

    I do think some kind of separation of user data from servers, like what AT Proto does, is actually quite desirable. I just don’t like that PDSes can have their data harvested by whoever, I think data sharing with a server should be opt-in.


  • Oh, I thought blacksky.comnunity used Blacksky’s relay. If it uses Bluesky’s then yeah, disregard what I said.

    That’s not a perfect analogy though because Blacksky makes different moderation decisions than Bluesky.

    I’d hope so given how abysmal Bluesky’s moderation is. The discovery feed is filled with transphobia, but you can’t say Charlie Kirk should rest in piss.

    Again though it’s not a perfect analogy because the AT Protocol architecture lets you migrate all your data between PDSs seamlessly, and so far only a few niche ActivityPub implementations support that (Hubzilla et al with nomadic identity, ActivityPods using Solid Pods).

    I don’t believe Hubzilla’s nomatic identity works with APub though, irrc it uses something called Zot.

    I’ve been thinking about how to add nomatic identity to Lemmy quite a bit and it’s something I’d like to work on after 1.0 is out, but it’s hard a problem for sure.












  • This doesn’t have anything to do with sort ordering though, which is based on time and votes. Text search is just a filter on top of sorting.

    You want exact word matches prioritised ahead of entirely unrelated words that include the same characters. Like “enum” should turn up your comment, but rank a comment that contains the text “renumbers” much more lowly. A particularly smart search page might keep “enumerate” high while rejecting “renumbers”, though.

    Of course, it’s true that at least in the current latest release, Lemmy fails at all of this. I hope 1.0 is at least fixing some of it?

    How Lemmy does text search is via pg_trgm which works by breaking down both the content text and search text into trigram* and if the content contains enough of the search trigrams, it’s considered to match the search term.

    * A trigram is just a 3 character ‘words’, for example the trigram of ‘enum’ is {" e"," en",enu,num,"um "}.

    What you’re describing is closer to a tsvector, so you could open up an issues on Lemmy’s GitHub to move from trigram to tsvector. One advantage trigrams have though is that they’re language agnostic while tsvectoss need both a dictionary and to know the language (thankfully, Lemmy already has this info via the language setting, though the way it’s stored will need to be changed to accommodate this). But tsvectors does provide much more intuitive language matching, like what you outlined.




  • Doing it this way is why small instances gets hammered when a user’s post goes viral.

    Setting up caching in the reverse proxy layer would alleviate this a lot of this. Like, GoToSocial only recommends to set up caching for the key and webfinger endpoints, where having it set up to cache posts and profiles for like 60 seconds (or however long the Cache-Control header says, Mastodon defaults to 180s) would alleviate the strain on the server so much.

    There are other thing you can do, like this post explains some other things for Misskey, but the defaults should be sensible so you don’t have to be a sysadmin expert to host an instance and they’re currently not. I host 2 Lemmy instances (ukfli.uk and sappho.social) from a £5/month VPS and they’re able to handle bursts of hundreds of requests without issue.

    Bluesky is built to assume a handful of big relay (remember that a relay can merge in contents of another) and a bunch of appview and a ton of PDS servers, feed generators, moderation labelers, etc.

    People are already building small, non-archival relays so this assumption seems mute. It’s also important to remember that relays are an optimisation, not a core part of the protocol.


  • I mean, this would become less trivial the more replays go into use, where to get a full view you’d have to pull from all the relays that exist.

    ActivityPub’s solution to this is just IMO better, the original post has a replies collection attached to it that acts as the authority the replies the post has. This also allows creators to eject replies from the collection. There are issues with the way fedi software currently handles fetching from these reply collections, but the missing replies thing is very solvable in ActivityPub.




  • Real Account Portability: Move your entire account – posts, comments, followers – to any new instance seamlessly. Your identity travels with you.

    This is nice in theory but comes with edge cases that are hard to account for. Like, what if you have a post and your new instance defeds the instance the post’s community is on? You either have to allow banned content onto the instance or the user loses data, neither of which are acceptable.

    This is part of why ATProto’s decoupling of user data from app logic is kinda genius and the direction we should go in if we want portable actors in Lemmy/thredi.

    Full Fediverse Compatibility: We can add DIDs to Lemmy while staying fully interoperable with Mastodon, Kbin, and all other ActivityPub platforms. No breaking changes, just a powerful upgrade.

    Not really, every fediverse platform that people use expects an Object’s id to be a https URI it can just fetch the resource from. This is part of why FEP-ef61 specifies a way of translating a DID to a https URI. That’s not to mention that moving existing actors from their current ID to a DID will cause all sorts of interop problems.

    Edit: Also, is this AI-generated? It has all the tells of Gemini output, especially the the issue on Github.