GNU social JP
  • FAQ
  • Login
GNU social JPは日本のGNU socialサーバーです。
Usage/ToS/admin/test/Pleroma FE
  • Public

    • Public
    • Network
    • Groups
    • Featured
    • Popular
    • People

jonny (jonny@social.coop)'s status on Tuesday, 13-Feb-2024 00:06:11 JST

  1. Embed this notice
    jonny (jonny@social.coop)'s status on Tuesday, 13-Feb-2024 00:06:11 JST jonny jonny
    in reply to
    • Nathan Schneider
    • Robin Berjon
    • Boris Mann

    @ntnsndr @robin @boris
    not: https://neuromatch.social/@jonny/111885148573895886
    a: https://neuromatch.social/@jonny/111706358996489762
    fan: https://neuromatch.social/@jonny/111634408989477713
    so: https://neuromatch.social/@jonny/111660754706547194
    far: https://neuromatch.social/@jonny/110552727539983159

    In conversation about a year ago from gnusocial.jp permalink

    Attachments

    1. No result found on File_thumbnail lookup.
      Dr. jonny phd (@jonny@neuromatch.social)
      from Dr. jonny phd
      Compare figure 3 here in the #atproto / #bluesky paper https://bsky.social/about/bluesky-and-the-at-protocol-usable-decentralized-social-media-martin-kleppmann.pdf To the diagram here: https://bsky.social/about/blog/5-5-2023-federation-architecture The paper figure is a lot cuter, but by linearizing it and presenting it as two parallel tracks they have obscured the most salient feature of the network: the big relay in the middle. Beyond "centralization bad," that pins down most of the undesirable and dangerous features of the protocol, and makes it seem like theres a lot more choice than there is. Since the design purposefully hides the architecture: you dont know where your feed generators are drawing from, or those used by your friends. So you cant know what the effect of choosing a different relay would be, aka the main relay is always indispensable. Importantly the relays subscribe to you, you dont push to the relay, and since you arent really supposed to operate your own data store, you can be dropped from the network without knowing - the relay serves as an unaccountable point of moderation.
    2. No result found on File_thumbnail lookup.
      Dr. jonny phd (@jonny@neuromatch.social)
      from Dr. jonny phd
      So OK I keep trying to like #atproto / #bsky, lexicons specifically but they make it so hard. like... let's see, OK we're going to reinvent RDF and JSON-Schema such that - schemas are identified by [reverse domain names](https://atproto.com/specs/nsid) like `com.example.myLexicon` - there is some concept of a ["namespace authority"](https://atproto.com/specs/lexicon#authority-and-control) rooted in DNS ownership of a domain name that is supposed to maintain a set of lexicons and do things like make sure there are no duplicates (eg. lexicon IDs are case sensitive but you are not allowed to have IDs that differ only in case, which a ns authority has to ensure) - but there is no means of *using* the domain to retrieve a schema, so eg. it is explicitly *not* spec'd to require `com.example.myLexicon` be at `myLexicon.example.com` - so the whole goofy Javabrained reverse-domain name thing as the ID is pointless - Accordingly, lexicons have to be sourced ad-hoc and by convention, and the convention is bonkers!!!! According to their reference implementations, the way you are supposed to use lexicons is to autogenerate their json schema definitions and version them locally everywhere they are used. I can't express how baffling this is to me - like the `atproto` monorepo has a top level [lexicons](https://github.com/bluesky-social/atproto/tree/main/lexicons) directory, and then their [Makefile](https://github.com/bluesky-social/atproto/blob/de2dbc2903a383f092756d3d2ad1ff3753361e76/Makefile#L29-L36) then goes through several of the subpackages calling each of their (separate) code generation [scripts](https://github.com/bluesky-social/atproto/blob/de2dbc2903a383f092756d3d2ad1ff3753361e76/packages/api/package.json#L23), resulting in local, vendored copies of each of the lexicons - and by copies of the lexicons i mean both [generated code](https://github.com/bluesky-social/atproto/tree/main/packages/api/src/client/types) AND [typescript interfaces](https://github.com/bluesky-social/atproto/blob/main/packages/api/src/client/types/app/bsky/feed/defs.ts) AND an entire copy of the whole [schema](https://github.com/bluesky-social/atproto/blob/main/packages/api/src/client/lexicons.ts). - This is presumably because there are REFERENCES between lexicons EVEN WITHOUT those lexicons having a meaningful notion of location or dereferenceability - how would you know what `'app.bsky.feed.defs'` is referring to unless you *packaged and built all lexicons together*? the [method for resolving references](https://github.com/bluesky-social/atproto/blob/de2dbc2903a383f092756d3d2ad1ff3753361e76/packages/lexicon/src/lexicons.ts#L212) literally requires them to all be locally present at runtime as far as i can tell, idk the lexicon code is unreadable to me. - There is no means of versioning, so "Once a schema is published, it can never change its constraints" and the only means of changing is to change its freaking name, so `com.example.myLexicon.FinalFinalv2` is explicitly encouraged. The reference implementations repeatedly violate this, though, so whatever. - Again, there is no actual mechanism of "publishing" a schema, though, so it's completely unclear what that's supposed to mean - how do people know the schema has changed names since they just have it hardcoded in their clients? and the entire spec documentation is just a bunch of harebrained ideas that amount to, as far as i can tell, just literally being JSON-Schema just different? And they compare it to RDF but there's literally nothing to compare there except for the absence of an explanation as to why they didn't just use JSON-LD. I literally cannot tell how this is supposed to work as an interoperability/extensibility layer if there is no means of resolving terms or lexicons and all definitions have to be known in advance.
    3. No result found on File_thumbnail lookup.
      Dr. jonny phd (@jonny@neuromatch.social)
      from Dr. jonny phd
      Content warning: longpost on bluesky/atprotocol made public for search indexing purposes
    4. No result found on File_thumbnail lookup.
      Dr. jonny phd (@jonny@neuromatch.social)
      from Dr. jonny phd
      Content warning: long re: interaction analysis on the fedi and others
    5. No result found on File_thumbnail lookup.
      Dr. jonny phd (@jonny@neuromatch.social)
      from Dr. jonny phd
      I truly do not know how it is possible to address the problem of needing to allow anyone to scrape your posts. you can't know what Algo providers the ppl you might want to see you use, and if you block them (if that's possible) you're effectively invisible from them. Worse, there are actually two layers that make it impossible to control who can see you - posts are aggregated by gigantic scrapers and then feed generators subscribe to those. you might not even know which scraper the Algo gets posts from. Here we can ban Nazi instances because they are a recognizable entity, registering a domain is too expensive for mass instance creation, authorized fetch is possible to do, and instances batch the problem instead of needing to do it person by person. I dont see how you could stop someone from, say, making an algorithmic feed with every self-identifying trans person and then getting flooded by Nazis that can make as many DIDs as they want and you actually cannot lock down your profile.

Feeds

  • Activity Streams
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.