Skip Navigation

flamingos-cant (hopepunk arc)

@ flamingos @feddit.uk

Posts
47
Comments
225
Joined
3 yr. ago

  • alice from A makes a post “Hello, world” to B

    Alice can't make a post to B, but I assume you mean a community on B, let's call it foo. When Alice makes a post it first goes through A's local API and creates the local (and canonical) version of Alice's post. Once A has finished processing Alice's post, it will create an ActivityPub representation of Alice's post to send to B.

    ActivityPub is basically a bunch of assumptions laid on top of JSON. An ActivityPub 'file' can be divided into broadly 3 types, Object, Activity and actors.[^note1] These types then have subtypes; for example, both Alice and foo are actors but Alice is a Person while foo is a Group.

    A second important assumption of ActivityPub is the concept of inboxs and outboxs, but, for Lemmy, only inboxs matter. An inbox is just a URL where Lemmy can send activities and it's something all actors have.

    So when instance A is finished processing Alice's post, it will turn it into a Page object, wrap that in a Create activity and send it foo's inbox.

     json
        
    {
      "@context": [
        "https://join-lemmy.org/context.json",
        "https://www.w3.org/ns/activitystreams"
      ],
      "actor": "https://a/u/alice",
      "type": "Create",
      "to": ["https://www.w3.org/ns/activitystreams#Public"],
      "cc": ["https://b/c/foo"],
      "id": "https://a/activities/create/19199919009100",
      "object": {
        "type": "Page",
        "id": "https://a/post/1",
        "attributedTo": "https://a/u/alice",
        "to": [
          "https://b/c/foo",
          "https://www.w3.org/ns/activitystreams#Public"
        ],
        "audience": "https://b/c/main",
        "name": "Hello world",
        "attachment": [],
        "sensitive": false,
        "language": {
          "identifier": "en",
          "name": "English"
        },
        "published": "2024-12-29T15:10:51.557399Z"
      }
    }
    
      

    .

    Now instance B will then receive this and do the same kind of processing A did when Alice created the post via the API. Once it has finished, it will turn the post back into a Page but this time wrap it in an Announce activity. B will then look at all the actors that follow the foo (i.e. are subscribed to it) and send this Announce to all of their inboxs. Assuming a user on instance C follows foo, it will receive this Announce and process it like A and B before it, creating the local version of Alice's post.

    Edit: I made a small mistake, I said that foo wrapped the Page in an Announce, when it actually wraps the Create in an Announce.

    [^note1]: Technically, Activity and actors are themselves objects, but they're treated differently. There's also Collection's which are their own type, but Lemmy doesn't really utilise them.

  • They do, at least, acknowledge this:

    We recognise that this Annual Report for 2023 is arriving later than we had intended. Going forward, we plan to release our Annual Report for 2024 in Q1 of 2025, where we will establish clear and ambitious goals for 2025 and beyond. This adjusted timeline allows us to provide more timely insights and better align our reporting with our ongoing growth and development.

  • They don't strip out the markdown on the bluesky side, so posts are just full of junk. Weird choice given the focus on 'seamless' integrated between the two.

  • It's because YouTube puts a bunch of JavaScript at the start of the file (1MiB) before the opengraph tags and Lemmy only fetches the first 512 KiB (a fix was merged a couple days ago).

  • It seems the bridge didn't see the reply. Might be something worth making a bug report about. (Also, ignore the update profile entry, I clicked the icon by accident)

  • Your reply is there? Did it just take a while to go through?

  • You can, it's just that individual accounts need to opt into the bridge.

  • It has an algorithm that puts content in front of you, unlike Mastodon where it only puts what you ask for in your feed. I'm convinced that if Mastodon populated people with low following count's feed with random posts it wouldn't have bled as many users as it did.

  • You can go to the trouble to learn Rust, and then fight with them to get your modifications accepted or...

    Can you actually point to any instances of the devs dragging their feet on accepting changes or is this just conjecture? I've contributed to Lemmy, and plan to do so in future, and my experience is that they're fairly accepting of changes.

  • Mods can also see votes in communities they moderate, lemmy-ui just doesn't show the option (and no other client, to my knowledge, has the feature).

  • We could do what I think you’ve done, and regex the details of the attachment into ! [] ()

    To be clear, this pull request doesn't use regex, it's just JSON deserialisation and string interpolation.

    I’ve never actually seen a Mastodon user try to add an image to something that ended up as a Lemmy comment, tbh, so it’s not something I’ve thought too much about.

    The pull request actually includes one, the main KDE account tags !kde@lemmy.kde.social and includes pictures in their threads regularly. It's just hard to tell from our side as you can't see what's missing.

  • This is Mastodon's HTML sanitiser, you can see they stipe out <img> tags.

    How does Piefed handle image attachments, btw?

  • I wouldn't call Bluesky's federation fake, we'd need a working definition of 'federation' for that, but I would say it lacks meaningful federation.

  • .ml is running the beta branch that actually started to apply image size limits to thumbnails, your app is probably using the thumbnail URL instead of the main URL and thus getting the compressed image.

  • I've heard good things about Sharkey, it's what blahaj uses for their microblog stuff.

    There's also Iceshrimp, though last I heard they were becoming their own thing written in C#.

    The others I know about don't seem to be maintained. Can't speak to using them, I find the interface far too busy (default Mastodon UI users).

  • This is straight up misinformation, Dorsey was on the Bluesky's board, but left in May. As far as I'm aware, he's never even invested in the company (but he has given money to the nostr devs).

  • You can write backbends in Typescript, It's what the *keys use.

  • Clojure, a simple grammar but most of the vocabulary is imported from another language.