Bluesky Dev
Community discussion of the AT Protocol and Bluesky. (This room is not officially affiliated with the Bluesky team.)
Previous group of messages
  1. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  2. Message deleted by Daniel Holmgren
  3. shreyan

    In reply to this message

    no, a record type
    (edited)
  4. Aaron Goldman
    the records are in a hash tree, the root of the tree is signed whether that signing key lives on the client or the server changes the power dynamic
  5. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  6. Message deleted by Daniel Holmgren
  7. Trinity changed their display name to Jo
  8. Aaron Goldman

    In reply to this message

    iq is not nearly as relevant as if someone explained it to you once
  9. Joanna changed their profile picture
  10. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  11. Message deleted by Daniel Holmgren
  12. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  13. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  14. Message deleted by Daniel Holmgren
  15. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  16. Aaron Goldman
    When you used Twitter who is the authority? It is Twitter. Twitter can say that you tweated something and you can only tweet because you asked them to post somthing for you. If you have the keys to your own repo then the PDS can't speak as you and you can continue to speak even if you get kicked off your PDS.
  17. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  18. Message deleted by Daniel Holmgren
  19. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  20. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  21. Message deleted by Daniel Holmgren
  22. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  23. Message deleted by Daniel Holmgren
  24. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  25. Message deleted by Daniel Holmgren
  26. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  27. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  28. Aaron Goldman
    "according to the people bluesky wants to moderate their platform" is not well defined. Moderation can be done at difrent layer and by difrent people. A client is filtering what is shown to a user. A PDS is filtering what they want to host.
  29. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  30. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  31. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  32. Aaron Goldman
    I would be very surprised if we don't get a few PDSs that I think are disgusting and wish they would not use my protocals
  33. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  34. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  35. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  36. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  37. shreyan
    would it be BGS level or PDS level defederation
  38. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  39. Message deleted by Daniel Holmgren
  40. Aaron Goldman
    yup de-federation is a fair response to not wanting that garbage on your servers.
  41. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  42. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  43. Aaron Goldman
    some things don't need to be in my index. e.g. Google crawled and indexed the Tor hidden services urls that they found on the web. Then decided that condent did't need to be in their search results
  44. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  45. shreyan
    when data is on the public web, crawling it is trivial
  46. In reply to this message

    probably a good decision on their part
  47. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  48. Aaron Goldman
    https://en.wikipedia.org/wiki/.onion find a .onion link get the webpage same as .com
  49. In reply to this message

    I need a search engine. They keep adding content to the internet faster than I can read it.
  50. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  51. Aaron Goldman
    some of it yes, some of it no
  52. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  53. Aaron Goldman
    only a small part of the mountain is the diamonds
  54. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  55. Aaron Goldman
    Hard to say if the internet is getting better but the best of the internet if much better than the best was in 2007
  56. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  57. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  58. Message deleted by Daniel Holmgren
  59. Message deleted by Daniel Holmgren
  60. Message deleted by Daniel Holmgren
  61. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  62. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  63. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  64. shreyan
    ...what is happening
  65. Aaron Goldman
    we got off topic
  66. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  67. Aaron Goldman
    we should go back to protocals and the nash equilibrium that the protocal encourages
  68. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  69. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  70. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  71. Message deleted by Daniel Holmgren
  72. shreyan
    i have an idea what if we follow the room rules in here
  73. Aaron Goldman

    In reply to this message

    off topic
  74. you are welcome to make a room for that conversation but this is not that room
  75. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  76. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  77. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  78. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  79. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  80. Aaron Goldman

    In reply to this message

    Oh, you should look at Nash Equilibrium.
    It is a cool way to think about making seditions in the presence of other people's decisions.

    https://youtu.be/0i7p9DNvtjk

  81. @red6leader9:matrix.org
    Message deleted by Daniel Holmgren
  82. @wvrld:matrix.org
    Message deleted by Daniel Holmgren
  83. Aaron Goldman
    I probably spent more time then was health thinking about why social media tends towards monopolies and how the protocal can change that
  84. Aaron Goldman

    e.g. I thought holding your own keys is important to empower the users. Also, adoption needs a fast way to get started so we need a PDS to be able to generate the keys and manage them for you.

    This is what lead to the design for did:plc: fast easy entry but the ability to take responsibility for your repo.

  85. Daniel Holmgren banned @red6leader9:matrix.org: use of slurs
  86. Daniel Holmgren banned @wvrld:matrix.org
  87. Sabir Ibrahim
    Well this chat certainly went off the rails for a little bit... Thanks Aaron Goldman for restoring order.
  88. Jo changed their display name to Trinity
  89. Joanna

    In reply to this message

    No
  90. We are giving birth to the new tech order
  91. I put my real picture, want to make it clear
    I’m not a bot, I’m 100% human
    My real name is Joanna
  92. Sabir Ibrahim

    In reply to this message

    Well great to meet you Joanna, but you might be in the wrong place if you're looking for a chat where you can "give birth to the new tech order"
  93. Joanna
    Lovely to meet you too Sabir
    Why is wrong chat?
  94. @bbthorson:matrix.org left the room
  95. Girguis Lab joined the room
  96. Girguis Lab
    Hi folks, I'm a professor of marine science and I decided to stop by to pitch an idea to BlueSky developers. In short, I want to propose that you all enable a mass-migration of scientists -especially early career scientists- from other social media platforms to BlueSky. Hear me out on this one. First, I am not talking about celebrities whose social media feeds bring with it a LOT of clutter. Rather, I am talking about approximately 100 scientists who are active on a given social media site, reaching out to their science followers to produce a curated and validated list of e-mail addresses of folks at universities (heck, you might even require folks to use their university address to be considered for an invite). Then, I imagine you could extend an invitation to those on this curated list. Why do this? Because it will jump-start the use of BlueSky as a hub for scientific discussion, which is generally even-keeled and not hyperbolic. Then, those members could continue to invite others at whatever pace you set. I bring this to BlueSky because many early career scientists (including those of us who joined social media platforms as early career scientists) depend HEAVILY on social media to connect with one another, with senior colleagues, to talk about their research publications, etc. There is a real fear in the scientific community that the mass exodus of many scientists from some social media sites will leave them stranded. I think you're in a position, BlueSky, to solve this issue. Also, I think it could be a strategically savvy move on your part as you get a devoted community of used who are not prone to abusing the platform. You get the "credit" of further building a science community. You do not need to worry about the kind of server demands you would see from celebrities. You also lay the work at the feet of folks like me, who will happily build an invite list that is compliant with your requirements. Yes I will work for free because I think these earlier career folks need every tool they can get, and yours is GREAT. I hope this is an idea you can consider. Thanks for your time.
  97. Matthew
    Girguis: a bunch of my friends were part of science twitter (especially around epidemiology) and they report that there is already critical mass in their community to replace the birdsite
  98. which they achieved by, well, inviting each other, and it spreading virally, not unlike their field of research
  99. so: i don’t think you need consent or support from the bluesky developers; just get inviting :)
  100. Girguis Lab
    Thanks Matthew but my impression is that the # of invites I can send is quite limited. Is that indeed the case?
  101. Matthew
    yes, but it can still spread virally
  102. r>1 and all that
  103. it certainly spread easily thru epi twitter without additional invites being injected in
  104. Matthew
    just make sure you invite good people who will be sure to invite other good people
  105. meowycat983

    In reply to this message

    Still messing with it
  106. In reply to this message

    Ohh, okayy, thank youu
  107. tmaehara joined the room
  108. Trinity changed their display name to Joanna
  109. Takanori Maehara changed their display name to tmaehara
  110. tmaehara
    Hello folks, a QQ about atproto/bsky: Is there an API that enumerates posts quoting a given post, say, getQuotingPosts(postUri)? I want to read reactions from people about the target post.
  111. retr0id
    There is not, currently
  112. if the target post is less than 24h old, you can parse through the previous 24h of posting activity via subscribeRepos
  113. and pull out the relevant quotes
  114. @daley_:matrix.org
    Message deleted by Aaron Goldman
  115. tmaehara

    In reply to this message

    oh sad, but I see, thanks!
  116. magicneb joined the room
  117. magicneb

    In reply to this message

    This sounds interesting, I’m not sure there are a lot of devs in here but ping me DM.
  118. In reply to this message

    Daniel Holmgren ban this guy too while you’re at it
  119. bluesky-fanboy joined the room
  120. bluesky-fanboy
    Hello devs!
  121. 🥳🥳🥳
  122. retr0id
    interesting username
  123. bluesky-fanboy
    Thanks you too!
  124. @lunaticmha:matrix.org joined the room
  125. Linad changed their display name to handsoap
  126. handsoap changed their display name to linad
  127. @xjanno:matrix.org joined the room
  128. @xjanno:matrix.org
  129. I don't have invite code
  130. @xjanno:matrix.org
    How long will it take for me to receive the waitlist email?
  131. retr0id
    an unknown, long duration
  132. Aaron Goldman

    In reply to this message

    The hope is that rather than too many invites to the

    other PDSs will be set up to federate with the network.

    Having more than a third of the users on a single company's servers is a big risk to the project.

  133. @numero6:codelutin.com left the room
  134. Daniel Holmgren banned @daley_:matrix.org
  135. m1kola
    How do people test their feed generators? Connecting to the production network? Or do you spin up a PDS and connect to the sandbox?
  136. @manihot.esculenta:matrix.org joined the room
  137. @manihot.esculenta:matrix.org left the room
  138. Nobody Nearby
    Hi, both the app and the website are having the “not enough resources” error
  139. @tayloralgo1:matrix.org joined the room
  140. @rimuru:gentoo.chat changed their profile picture
  141. pfrazee changed the power level of Emily from Default to Admin.
  142. Flip van Haaren joined the room
  143. Kareem Elansary joined the room
  144. alperenalb joined the room
  145. @shorty_gunny:matrix.org left the room
  146. @chris.berg:matrix.org joined the room
  147. @chris.berg:matrix.org removed their display name (chris.berg)
  148. @chris.berg:matrix.org left the room
  149. @maxlange:matrix.org joined the room
  150. @maxlange:matrix.org

    In reply to this message

    Are there any other servers currently? I’d like to try out Bluesky, but haven’t received an invite either, even though I signed up for it a long time ago.
  151. retr0id
    You can see a list of instances here https://atscan.net/pds
  152. @maxlange:matrix.org
    Thx man
    (edited)
  153. @xjanno:matrix.org

    In reply to this message

    Is there a tutorial on how to make our own host?
  154. retr0id
    Personally, I read the protocol docs and wrote my own from scratch https://atproto.com/docs
  155. but there's info about how to spin up an instance using the official implementation here https://github.com/bluesky-social/pds/
  156. AlexxiS
    Message deleted
  157. @xjanno:matrix.org
    You don't need to resend the link 💀
  158. AlexxiS
    Oups i don't see it, i delete my post, sorry
  159. magicneb

    In reply to this message

    How is this supposed to work when federation isn’t even available?
  160. @planetoryd:matrix.org

    In reply to this message

    you can wait
  161. knowtheory changed their display name to Ted Han
  162. Ted Han (than@mozilla.social) set a profile picture
  163. Ted Han changed their display name to Ted Han (than@mozilla.social)
  164. @escapetofreedom:matrix.org left the room
  165. stageance changed their display name to Sterence
  166. giteauser changed their profile picture
  167. @freedom.:matrix.org joined the room
  168. ThatLinuxUser

    In reply to this message

    Federation is available in a sandbox, so while you can federate with other PDS's you can't federate with
    bsky.social
    yet.
  169. magicneb

    That’s my point.

    They don’t want more people on

    because they want us to federate but we can’t federate until they let us. So what’s the point.

  170. Sabir Ibrahim

    In reply to this message

    Federation is a feature that requires extensive testing and QA. Even Meta with all its money and resources still hasn't enabled federation with Threads. Just gotta give them time to get it right.
  171. @jbrooks:matrix.org left the room
  172. Sabir Ibrahim
    As for Bluesky, my understanding is that they've intentionally chosen to pursue a strategy of gradual and deliberate growth. There have been no announcements about when or even if Bluesky will open registrations up to the general public. They're not after the 'hockey stick' trajectory that a lot of startups pursue (at least not for now). Just look at their latest funding round. They raised $8 million in a seed round (by way of comparison, seed rounds of hot startups these days sometimes run into the 8 or even 9 figures). They could have raised much more money if they wanted to. And contrary to widespread belief, Bluesky is not bankrolled by Twitter/X. Twitter provided the initial funding, but Bluesky has had no meaningful affiliation with Twitter/X since the Elon takeover.
  173. ncheck
    "Why doesn't Bluesky let in more people?" Because they have 13 people on staff and are already biting off more than they can chew
  174. @planetoryd:matrix.org
    whats so interesting about bluesky ? I don't get it why some ppl are so hurried
  175. m1kola

    When watching events from com.atproto.sync.subscribeRepos - is there a way to get a subject of a deleted like or follow?

    I understand that app.bsky.feed.like records get deleted, but the subjects themselves still exist.

    I basically need an answer to the question "Is this repoOp deletes a like for from the post X"?

  176. Aaron Goldman
    Dose GitHub let you set a well-known for GitHub pages?
    https://*.github.io/.well-known/atproto-did
  177. shreyan
  178. Aaron Goldman
    garrucho.github.io aka garrucho.bsky.social went to
    github.io
    and back.
    I would expect a lot more users to have used *.github.io
  179. Should we allow multiple akas so that users can have their .bsky.social, .github.io, and their personal domain that all work as a handle and point back to the same did
  180. shreyan
    that would be nice as long as it still required to be verified as an aka in the DID
  181. Aaron Goldman
    Of course you need the two way binding from well-known to DID Document
  182. retr0id
    all the people looking for invites should probably check this out https://forms.gle/gHe4cyBrGCGRzqZt7
  183. m1kola

    In reply to this message

    Yesterday I was thinking about this after bumping into .bsky.social account with description like "You are probably looking for
    customdomainhandle.net
    " or something like that
  184. Aaron Goldman

    In reply to this message

    yes, I think that search should be able to find the account from many handle but still use the first valid handle from the AKA list when you need to display one.
  185. Kjartan
    With multiple plc's I kinda see also the "opposite" to become a thing - one aka being used for multiple dids (used with multiple pds, each in its own federation)
  186. shreyan
    not possible though
  187. Kjartan
    Not now :D
  188. But one could make it possible
  189. Right now its also just 1 aka per did
  190. Aaron Goldman
    why would one handle want to have more than one repo
  191. Kjartan
    One per federation network
  192. jmcasey
    could resolve a different repo depending on the jurisdiction of the requester
  193. Kjartan
    Like 1 I might want to have on the "official" network, for example in
    bsky.social
    . and the same aka I might want to use in a private federation network on my own pds
  194. As the verification always points to the "one internet" I would have no way to use both times the same handle - even though they would never interfere with each other
  195. Aaron Goldman

    In reply to this message

    This kind of brakes the whole idea of the repo being a sequential authenticated data.
  196. at://handel@commit/path/to/object should be enough to validate that I resolved the exact bytes
  197. at://handel/path/to/object may resolve to more than one commit if that object has changed over time but one will be the authoritative latest
  198. That is why you never need to retrieve the repo from an authoritative host. Anyone with the repo blocks is as authoritative as the users PDS itself. That is why the economics is so different from say ActivityPub.
  199. Kjartan
    Talking of federation: how does a pds' admin set up with which pds instances it wants to federate and which instances it wants not to?
  200. Aaron Goldman
    It is the value of immutable data at a specific commit but mutable by advancing through sequential commits
  201. Kjartan

    In reply to this message

    Or is that kinda managed by the bgs?
  202. jmcasey

    does it have to? i would envision one handle dynamically resolving to multiple DIDs

    though the conflict would still arise if i was expecting to always get the same DID

    in the nth, how it different to changing the handle pointer to a new DID every 10 seconds?

  203. Aaron Goldman

    In reply to this message

    A PDS will look at the Repos of it's users. For each PDS that is not on the Blocklist (or is on the Allowlist) it will send a request with all the did's that it is following for the heads. If the head dose not match the one it has it will send a request to pull the diff(old_head, new_head) and the PDS will respond with a CAR file having the new HEAD and all the blocks that are reachable from the new head that were not from the old head.
  204. Kjartan

    In reply to this message

    Does it really tho? Imo it should be two completely different repos (and would be the reason why I would like to have the same aka for two different dids)
  205. Aaron Goldman
    If you don't sync for a while you may mis a number of heads in the middle but who cares you just need the blocks to turn what you have to the current state.
  206. Aaron Goldman

    In reply to this message

    If it is two completely different repos why do you want them to have the same at:// URL it seems like you want Uniform Resource Locator for each of the artifacts you might want to locate.
  207. Kjartan

    E.g. one might be my public social media account. The other one is my account in a specific, isolated*, community.

    • not a single instance. But maybe a federation of 4 pds instances. Compare it for example with the current sandbox situation.
  208. They will have completely different content, follows, followers, etc - but people should be able to easily identify the account as the same person who also has the other account on the public network
  209. I also had with Twitter, GitHub, Facebook, etc everywhere the same username for the same reason - I dont think the idea to have the same handle on multiple, isolated, networks is too uncommon
  210. So far it was usually not possible to have a domain based username (although there are exceptions: like the email address is already often used for multiple purposes in different networks simultaneously)
  211. jmcasey
    Would consider this approach for access control a la veracrypt
  212. Kjartan
    But now that it's possible, I think this is really a use case which not only I would like to do
  213. shreyan
    at://<domain> behaves more like a URI then a username, you likely would not want the same uri to be able to point at two different things on the same protocol
  214. jmcasey
    true
  215. Kjartan
    To be able to have one's domain as handle, was kinda a big thing for me. It's a pity f it's not possible, but I'll have to accept it 🤷‍♂️
  216. Just for clarification: right now it works to use the same aka for multiple dids. But this will break as soon as Bsky starts to federate?
  217. Or is it a bug right now, which shouldn't even work right now?
  218. shreyan
    does it work? you would need to be able to set two conflicting txt records
  219. Kjartan
    Yes and no. In general yes (but not simultaneously)
  220. The pds checks it only when you change the handle (at least the older versions!?)
  221. shreyan
    hmm sounds like a bug
  222. Kjartan
    also, I haven't tried it, but what about one via dns and the other one via well-known? Or are always both checked?
    (edited)
  223. shreyan
    ahhh that's an interesting case. I forget whether it prioritizes DNS or well-known but I think one of them would just take precedence and the PDS will ignore the other
  224. Kjartan
    And another option: if the handle is part if the pds domain (like .
    bsky.social
    ) there isn't a check at all
  225. shreyan
    i think there is, the .well-known check
  226. Aaron Goldman
    It might make sense to have a domain that resolves to a did and that DID Document that has an AKA to the secondary repo. The same name resolving accounts on other services?
  227. Kjartan
    Oh, okay. I never looked into well-known (I hated well-known already with ActivePub; I'm 100% in favour if DNS)
  228. In reply to this message

    I don't get what you mean by "the same name resolving accounts on other services?". Which services are we talking about? Like in my example to have the same username for example on twitter, Facebook,.... ?
  229. m1kola

    In reply to this message

    Ok, I think found an option. Probably not optimal, but at least something.

    I should be able to get a previous commit from com.atproto.sync.getRecord. E.g. something like this:

    123456        const result = await agent.api.com.atproto.sync.getRecord({
              did: evt.repo,
              collection: ids.AppBskyFeedLike,
              rkey: rkey,
              commit: evt.prev?.toString(), // Delete event has previous commit
            })
    
  230. I first tried com.atproto.repo.getRecord and was under the impression that it should work too as it takes cid, but it returns me 400.
  231. Louis Cinematic Novel joined the room
  232. Nobody Nearby
    Is it possible to use subdomain from
    freedns.afraid.org
    as a handle? Since they won't let me add txt record with "_" char but still can CNAME it to Github Pages or something?
  233. Abhay Gupta joined the room
  234. Deavial Drake

    In reply to this message

    cnames can’t resolve to txt records. they can only resolve A and AAA records. some dns servers will allow cnames to point to cnames but not all. a cname also can’t be assigned to @ (root) which is why alias exists.

    not sure why they won’t allow _ as it is a standard for txt records and auto discovery. it would be invalid for an A, MX, or CNAME to start with an underscore though, so maybe they were just being lazy and blocking it all together lol

  235. retr0id

    In reply to this message

    you could use the HTTP verification method and not need to worry about TXT at all
    (edited)
  236. so you could indeed cname it to github pages, and then add a .well-known/atproto-did document
  237. Nobody Nearby

    In reply to this message

    Idk if I'm doing it wrong or it didn't work at all but I've tried it several times and Bsky said unable to resolve handle
  238. retr0id
    what's your handle
  239. Nobody Nearby
    sgt.us.to
    from dns afraid
  240. retr0id
    hm, weird, looks good from where I am, but https://bsky.social/xrpc/com.atproto.identity.resolveHandle?handle=sgt.us.to is indeed failing
  241. https://sgt.us.to/.well-known/atproto-did is, as far as I can tell, set up correctly
  242. I wonder if their http client library doesn't support cname properly or something
  243. Nobody Nearby

    In reply to this message

    http client, yeah I think so..
  244. Nobody Nearby
    Message deleted
  245. Nobody Nearby

    not sure why they won’t allow _ as it is a standard for txt records and auto discovery. it would be invalid for an A, MX, or CNAME to start with an underscore though, so maybe they were just being lazy and blocking it all together lol

    I've been contacting freedns admin about "_" char in txt record, hope we'll get an answer

  246. ken-w joined the room
  247. Deavial Drake

    In reply to this message

    does bsky support the .well-known method? i was under the impression it was dns only
  248. retr0id
    it definitely supports it, my handle is resolved via it
  249. Aaron Goldman
    https://sgt.us.to/.well-known/atproto-did
    returns
    Content-Type: application/octet-stream
    It should be
    Content-Type: text/plain
  250. Aaron Goldman
    may be a bug that the server should treat the atproto-did at ascii no matter the Content-Type:
  251. shreyan
    yup i think gh pages does not allow setting a content-type
  252. retr0id

    In reply to this message

    should it? mine also returns application/octet-stream and it works fine
    (edited)
  253. (I mean, it probably should, but I'm not sure that's the breaker here)
  254. Aaron Goldman

    In reply to this message

    there gos that theory
  255. shreyan
    there is some difference, yours renders as text in the browser, while
    sgt.us.to
    's gets downloaded
  256. certainly seems like a content-type thing..
  257. Aaron Goldman
    The browser has to download a application/octet-stream it does not know how to render raw bytes
  258. shreyan

    In reply to this message

    nope yours returns application/json for me
  259. retr0id
    oh huh maybe I'm misremembering
  260. lemme change it to octet-stream and see if it breaks
  261. just switched and it seems to be working still
  262. Aaron Goldman
    for
    https://retr0.id/.well-known/atproto-did
    I get Content-Type: application/json
  263. shreyan
    i get octet-stream but browser still renders it
  264. Aaron Goldman
    also https://retr0-id.translate.goog/.well-known/atproto-did lol Content-Type: application/binary
  265. shreyan
    oh we all overlooked a very simple explanation
  266. sgt.us.to
    's contains did=did:plc:7capfiv2q4zgx6fhofuslftk
  267. the did= at the beginning shouldn't be there
  268. Aaron Goldman
    🤦
  269. I forgot the TXT record and /.well-known/atproto-did don't match and for no reason
  270. I should make a browser extension to show binary like hexdump -C dose not just download things
  271. retr0id

    In reply to this message

    https://atproto.com/blog/call-for-developers (same link, more words, heh)
    (edited)
  272. In reply to this message

    oops
  273. Alex Immortell changed their display name to Doctor Bluefall
  274. @ignitedpotato:computational.beauty left the room
  275. @emmanuel_davidsone:matrix.org left the room
  276. Rek joined the room
  277. Fi
    hey guys long time no see
  278. woops this is the dev chat sorry lol
  279. Thib changed their display name to Thib (back Sept 1st)
  280. nautical7m changed their display name to nautical7m 🏁
  281. erichts joined the room
  282. ubanis
    hi I built and operated pds in bluesky sandbox. A few days ago caddy caused an error and it was fixed by describing the tls related settings, but I can no longer post. There is [Token has expired Error] in the pds log on docker. Can it be repaired?
  283. wolixoriginal joined the room
  284. Nobody Nearby
  285. In reply to this message

    Welp thanks I fixed it 🫠 but this
  286. Nobody Nearby

    In reply to this message

    I found this and I think it's not possible to set header as application/json on github pages

    https://stackoverflow.com/questions/48283075/githubpages-how-to-enforce-custom-content-type-type-for-any-file

  287. Aaron Goldman
    That's my mistake it doesn't look like the current implementation cares about the content types and we should probably spec it that way.
  288. Sora Morimoto changed their profile picture
  289. @literallyme:matrix.org joined the room
  290. かたぎりあまね changed their profile picture
  291. @wahidislamlinad:matrix.org changed their profile picture
  292. @destiny786:matrix.org joined the room
  293. @henseler:matrix.org joined the room
  294. arcatech changed their display name to Dwayne
  295. Siddhartha joined the room
  296. @treethought:spherics.dev left the room
  297. @guesswho09:matrix.org joined the room
  298. @guesswho09:matrix.org left the room
  299. Siddhartha set a profile picture
  300. zenartist changed their display name to Siddhartha Golu
  301. Siddhartha Golu changed their display name to ZenArtist
  302. @destiny786:matrix.org set a profile picture
  303. golden_lib changed their profile picture
  304. @iphilipp:matrix.org joined the room
  305. Francesco Ambrosini joined the room
  306. kennethmak joined the room
  307. Cody joined the room
  308. @rover:aguiarvieira.pt joined the room
  309. @jsch:matrix.org joined the room
  310. pere changed their display name to pere (AFK until Sunday)
  311. J L
    Heya folks, comin to you via beeper, quite sure signed up for bluesky ages ago, is there way to find out if moved along in queue, or, to get an invite?
  312. Soohan Park (Heartade)
  313. Someone somehow found out my email and asked me for a twitter to bsky crossposter
  314. @xjanno:matrix.org
    I still haven't received any emails from bluesky waitlist
  315. Soohan Park (Heartade)
    Has anyone made a twitter→bsky or bsky→twitter crossposter? Meanwhile twitter to bsky crossposting might actually still be possible if we were to self-host for one account each, crawl new posts using puppeteer or something (though elon will definitely hate this)
  316. kennethmak

    In reply to this message

    the public waitlist or the developer waitlist? i got the developer invite in a day after submission
  317. @xjanno:matrix.org
    Default
  318. In reply to this message

    Dev server?
  319. kennethmak
  320. no, the developer invite is for the public server
  321. @xjanno:matrix.org
    What provider did you choose?
  322. Staging?
  323. kennethmak
    none, just the default option
  324. @xjanno:matrix.org
    Why is it taking me so long?
  325. I don't have an invite code
  326. kennethmak
    This is a dev chat, so if you are building something, pretty sure the invites on the dev form are quicker. Here's the link to the blog post, https://atproto.com/blog/call-for-developers
  327. Just send your github or gitlab profile with your past projects
  328. @xjanno:matrix.org left the room
  329. shreyan

    In reply to this message

    I think Jack Sweeney did it
  330. ZenArtist changed their display name to Siddhartha
  331. rreisman joined the room
  332. woke oak joined the room
  333. foxlet

    In reply to this message

    I got an email a week ago, and had been on the waitlist back in 2022.
    (edited)
  334. wolixoriginal
    Better get some one who already have access to bluesky this waitlist be longer and longer
  335. Also mobile app pretty laggy on my phone 
  336. After open have problems to use it on mobile
  337. m1kola
    Oh, It was fun building the custom feed! I used starter kit, but took some time to understand what it is doing (e.g. how event stream works, etc). I also had a look at the atproto repo itself (mostly to see how feeds are built there). I think I found a bug in starter kit: sub_state table is not being updated because there is no record in it initially. Will send a PR at some point. After this exercise I understand the protocol a bit better. Highly recommend to anyone who wants to more familiar with it. Now I wish the protocol to succeed even more.
  338. Feed in question: https://bsky.app/profile/did:plc:3vekukmab2djjeengw2o3wln/feed/great-shuffle TLDR: every day it randomly selects 10 people who like the feed and watches for their posts. I just launched it so there is only me :)
  339. @maxlange:matrix.org

    In reply to this message

    No wayyyyy, I can’t wait that long!😭
  340. @rimuru:gentoo.chat changed their profile picture
  341. Michael Zeagler joined the room
  342. xb5krnf297
    I would love to setup and experiment with a BGS but I don’t want to pay the hosting costs 😅
  343. I wonder if Bluesky is allocating any grants for developers
  344. Aaron Goldman

    In reply to this message

    I wonder if you could get a few people together that wanted to run PDSs and split the cost of the BGS. Then start advertising to the many people on the wait list that you have a community of federating PFSs and they should join Bluesky rather than waiting for
    bluesky.social
    invites for extended amounts of time
  345. The more PDSs join the more you share the costs of indexes
  346. bluesky.social
    will "eventually" start federating but that doesn't stop other PDSs from doing so.
  347. xb5krnf297

    In reply to this message

    Interesting idea. Who wants to do it?
  348. @circlebuilder:matrix.org left the room
  349. wolixoriginal
    Guys I am created accidentally Frase for bluesky say skyed be like and repost be reskyed and quto post be quto Skyed 
  350. Posts calling skyed for now 
  351. retr0id
    should I call an ambulance
  352. @ausbird:ausbird.dev joined the room
  353. ivnt set a profile picture
  354. CHARLES ILIYA KREMPEAUX (@reiver) changed their display name to @reiver (CHARLES ILIYA KREMPEAUX)
  355. Soulfire joined the room
  356. pere (AFK until Sunday) changed their display name to pere
  357. Apurva Mishra joined the room
  358. @ausbird:ausbird.dev

    I have a strange situation where my handle I used to sign up with on my own instance didn't setup correctly and kept saying "Profile not found" and "Actor not found"
    So I looked around and found I configured DNS without a wildcard. So I did that wiped the database and tried to register again

    This time it kept giving 400 saying it couldn't create a did:plc
    I used a different handle and it worked. I changed my handle and now it is busted.

    • I can post, but it posts under the previous handle
    • The interface shows my profile fine using the handle I signed up with
    • The interface in settings shows my handle is the one I changed to
    • Loading the profile using the one I changed to fails to find the profile

    Any ideas?

    (edited)
  359. Aaron Goldman
    What is the DID. So we can look at the directory
  360. @ausbird:ausbird.dev
    did:plc:xumeq6itlhlgbjd4hvrhtf26
  361. 0xLuo joined the room
  362. 0xluo changed their display name to 0xLuo
  363. 0xLuo set a profile picture
  364. @rbtgeorgi:matrix.org left the room
  365. Dimitar Kalinkov joined the room
  366. J L

    In reply to this message

    Anyone? Thanks again. 🙏
  367. N.B. I'm asking from an end-user POV; apologies in advance if there's another Bluesky group I've missed. 😬
  368. Sabir Ibrahim
    This looks interesting and pertinent. Looks like the conference will be streamed, for those who aren't local to the Bay. https://rdi.berkeley.edu/events/decentralizationaisummit
  369. @joseph54:matrix.org joined the room
  370. juu17 joined the room
  371. Matthew (away) changed their display name to Matthew
  372. dcbyers13 joined the room
  373. dcbyers13 set a profile picture
  374. @notlikedion:internal-fida.ems.host left the room
  375. TaoKing joined the room
  376. 金涛 changed their display name to TaoKing
  377. TaoKing set a profile picture
  378. TaoKing
    I submitted a waitlist application, how long does it take to get approved?
  379. dcbyers13
    Message deleted
  380. Jin Tom joined the room
  381. Tao Tao joined the room
  382. xin peng joined the room
  383. ge jin joined the room
  384. hao699 joined the room
  385. hao699
    Is the waiting list still being reviewed?
  386. hao699 jinhao699 changed their display name to hao699
  387. @0x7c26:hashi.sbs joined the room
  388. @dream:envs.net left the room
  389. 阳建文 joined the room
  390. Tong leme joined the room
  391. limber_1425 joined the room
  392. @christian:c2bo.net left the room
  393. @lexx:nitro.chat changed their profile picture
  394. @lexx:nitro.chat changed their profile picture
  395. tamimi set a profile picture
  396. teilenberger joined the room
  397. Aaron Goldman

    In reply to this message

    The problem is not review as much as that other PDSs are not getting to scale. If we let too many people on the
    bluesky.social
    PDS it will just be a web2 service and not a network
  398. @rickslambiase20:matrix.org joined the room
  399. @lunaticmha:matrix.org left the room
  400. Sidoine B. joined the room
  401. Jordan Reger joined the room
  402. Skyler Hawthorne
    Is there any word yet on the status of federation on the main
    bsky.social
    instance? Not pressuring for a timeline, just curious if anyone involved has a sense of the progress
  403. @planetoryd:matrix.org

    In reply to this message

    just roll your own protocol, and stop focusing on atproto
  404. if you are so enthusiastic, you can do it on your own
  405. Skyler Hawthorne
  406. can't tell if being trolled
  407. shreyan

    In reply to this message

    My impression is that it might still be a while before they open that up
  408. @planetoryd:matrix.org
    Yes, it takes some time. Freenet, ZeroNet are the examples.
  409. shreyan
    Currently the focus seems to be on "internal" federation, where
    bsky.social
    itself is multiple, hidden instances federating with each other for better scalability - no idea what the progress is on that though
  410. @ausbird:ausbird.dev left the room
  411. Aaron Goldman

    In reply to this message

    Not exactly being trolled

    https://github.com/bluesky-social/atproto/tree/8de64178c07b07ffcdaf25ae5afa78831168d02f/packages/pds/src/api/com/atproto/sync

    The sync API is there today.
    You can use getHead to regularly pull the heads of the repos your users follow and getRepo to get the set of IPFS blocks that are in the current repo but not the head you are on.

    getHead and getRepo are all you need to start pulling from a PDS.

    The part that is missing is having them pull the repos hosted by your PDS.

  412. Skyler Hawthorne

    In reply to this message

    The trolling I meant was coming into a chat room specifically for one protocol and interjecting to suggest using a different protocol in answer to a question about federating with the former protocol.
    (edited)
  413. In reply to this message

    So I can see the rest of the network (with manual API calls) but can't interact with it (because no one will see my posts). Am I understanding that right? Don't mean to sound cheeky, but that sounds non-functional to me.
  414. @iphilipp:matrix.org left the room
  415. Aaron Goldman
    Not cheeky at all. The nature of the network is that you can't pick who follows you. You can pick who you follow. PDSs should pull from PDS their users follow.
  416. Skyler Hawthorne
    What good is a network that's only one way?
  417. Aaron Goldman
    Same good as Twitter
  418. And nothing prevents mutual follow
  419. @parfait:filly.chat
    are there any plans to open source big graph services in the future? tried looking for it on the website but couldn't find much
  420. Ivor Stodolsky joined the room
  421. xb5krnf297
    Wondering if the Bluesky folks have a synthetic client for testing
  422. @parfait:filly.chat
    oh! thank you so much
  423. @pita_789.:matrix.org left the room
  424. xb5krnf297
    I have a project to have the whole ecosystem running in a lab
  425. Aaron Goldman

    In reply to this message

    Do you run your own PLC directory or use the global one
  426. @cel:pussy.accountants left the room
  427. xb5krnf297

    In reply to this message

    I am not done yet. My plan is to run my own
  428. @davidprieto:matrix.org changed their profile picture
  429. Nobody Nearby changed their profile picture
  430. Nobody Nearby changed their profile picture
  431. @netman:kotous.cz left the room
  432. magicofazi
    Does Bluesky use any form of a CRDT
  433. Aaron Goldman
    If you count last writer wins
  434. retr0id
    is MST not technically a CRDT?
  435. @rkt:matrix.org left the room
  436. xb5krnf297

    In reply to this message

    Ok found faker
  437. xb5krnf297
    Ok looking at this code and protocol logic you can’t have your own plc server. You would have to do did web
  438. Because the did plc resolvers get initialized with a url
  439. And the plc did is just a part of a hash
  440. xb5krnf297
    Now I know what is meant by centralized in the doc :)
  441. Aaron Goldman

    In reply to this message

    Depends on how you think about it. The MST is an imitable data structure that is pointed to by a commit. All immutable data is a CRDT as no divergence can happen if nothing changes.

    But that's silly clearly we mean what is pointed to by a mutable at: URL. So we consider the commits. Each commit is signed and points to a previous. So if one is an ancestor of the other the merge is a fast forward. What if we have a fork? We could do a first or last writer wins and then we are back to a CRDT but what we do is that a commit is only a candidate head. The PDS it can do a compare and swap. The PDS will only do a fast forward merge where the new commit has the current Head as an ancestor. Now that commit is the new current Head. Otherwise it just rejects you and tells your client to rebase its changes.
    So in that sense it's not a CRDT since if you only have the commits you can't tell which is the Head you must talk to the PDS.

    In an earlier design the pds responded not with a https authenticated json to tell you the Head but with a signed Json. Back when that was true you could store the signed head assertion, called a tick, and by taking the tick with the highest timestamp know what the head was which then made it a CRDT.

    So the thing that makes it no longer a CRDS but instead web service state is that the ticks are no longer signed to force you to use the PDS to get the Head every time.

  442. @henseler:matrix.org left the room
  443. ctardif joined the room
  444. xb5krnf297
    Aaron Goldman: are you on the Bluesky team?
  445. Aaron Goldman

    In reply to this message

    I architected the AtProto but am no longer at Bluesky PBC
  446. RFLEpicGamer joined the room
  447. ereio joined the room
  448. xb5krnf297
    Message deleted
  449. Message deleted
  450. xb5krnf297

    In reply to this message

    Ah I see
  451. I don’t see a way to use PLC even in a lab because it would still be one centralized plc. What i wanted to simulate is multiple providers
  452. My end goal is a BGS scoped to a new specialized lexicon targeted towards gaming and some other things if it goes well and if I get that far
  453. retr0id
    you can just configure your internal services to point at your own PLC
  454. same way the sandbox has its own PLC
  455. xb5krnf297
    My issue is all the nodes in the sandbox would have to use the same plc
  456. Aaron Goldman

    In reply to this message

    Not sure I understand the problem
  457. xb5krnf297

    In reply to this message

    Did is decentralized identify. Just now realizing that plc isn’t decentralized
  458. This is just me discovering how everything works
  459. Aaron Goldman

    In reply to this message

    Ah, so it's not that you can't run a directory just that you didn't previously know that each PDS needs to pick a directory to sync down the DID Document Deltas from.
  460. Hopefully there will be only a few directories and they will all pull from each other so a PDS never needs to ask around.
  461. xb5krnf297
    Looking at did:web for example the resolver goes to the directory designated by the id. Is there some inherent weakness that is being avoided by not doing something similar with plc? Your id can’t be truly self sovereign if the PDS chooses the directory for you.
  462. At least to me it seems counterintuitive to the whole concept so maybe there is something I am missing
  463. xb5krnf297
    In this model if I am understanding it correctly users of different directories can never interact unless the directories federate somehow
  464. Aaron Goldman
    Firstly did:web exists for anyone who can maintain a domain name and wants to trust the DNS/CA infrastructure that is a reasonable thing to do. did:plc is not trying to be better than did:web it is trying to have different tradeoffs. That said with a domain name bound identifier it can be resigned to someone else without your cooperation. E.g.
    twitter.com/x
    and
    twitter.com/music
    were recently reassigned because the company wanted them back. If you control your own domain it is harder to take your name but still doable. https://www.icann.org/resources/pages/help/dndr/udrp-en Okay, so how is PLC any better? The hash in the did:plc is a hash of the initial state of your DID Document. No other document can pretend to have this hash. As long as Sha256 remains unbroken. If you never updated your keys then you could just provide the DID Document with your actions and it would work like a did:pkh or did:key but the goal of did:plc is incremental responsibility. An owner of a did:plc should be able to let the PDS generate it for them and then gradually take more responsibility when they are ready. * escrow your own plc recovery key * sign your own repo updates * remove any keys known to the PDS In order to rotate keys away from your PDS and to only you knowing them we must have key rotation. This means we need DID Document Deltas. Each delta is signed by a key in the current DID Document. Each DID Document is its own little ledger of deltas. But now we have a race condition. What if you and the PDS both decided to rotate who wins and who has an invalid delta? We need an arbiter of delta ordering. The arbiter can't make up a delta since it doesn't know the keys. All the arbiter can do is put the deltas in order so we can have finality on the DID Document state. This arbiter is the PLC directory.
  465. Aaron Goldman
    Adoption is hard. If I ask you to have a domain name to sign up for bluesky most users won't. This would push PDSs into providing subdomains of the PDS domain for did:web DIDs. Then the user is locked into their PDS. By providing did:plc we can simply send the directory
    plc.directory
    a delta to migrate off of our PDS without the permission of the PDS we are leaving.
  466. Aaron Goldman
    Most PDSs will be mirroring the PLC directory https://plc.directory/export?after=2023-08-22T04:54:22Z&count=1000 https://github.com/bluesky-social/did-method-plc/blob/main/packages/server/src/routes.ts#L27 Most PDSs are only going to be pulling the latest 5 minutes worth of deltas every 5 minutes that makes it hard for the directory to change the past most PDSs aren't even looking at the past once they get synced to now.
  467. Oleksandr Balyshyn joined the room
  468. @ppxqq:matrix.org joined the room
  469. @garyasama:matrix.org removed their profile picture
  470. andrewquen joined the room
  471. @garyasama:matrix.org removed their display name (garyasama)
  472. @garyasama:matrix.org left the room
  473. andrewquen
    does requiring a domain name lock in users to bluesky or can the data be accessed from the blockchain anyway, if the latter what's to stop an open source client from removing domain requirement?
  474. wolixoriginal
    Guys I am have question have problem to get notifications why this problem 
  475. This just happening only on android 
  476. Be have some mobile client for bluesky 
  477. @farribeiro:matrix.org
    How can I offer codes here?
  478. Or in a specific room
  479. blaze7593 joined the room
  480. xb5krnf297

    In reply to this message

    Thank you for such a detailed response. Maybe we should have a zoom call or something😅. I am not saying that plc doesn’t have benefits. All I am saying is did:plc is an oxymoron. In terms of Twitter taking over handles that can still happen here by pointing a handle to a new did. The only difference is you would know that the creator of the content has changed.
  481. RFLEpicGamer changed their profile picture
  482. @rickslambiase20:matrix.org
    Message deleted by Administrator
  483. @maxlange:matrix.org
    Bro… that’s not what this group is here for. Please leave and go somewhere else.
  484. Aaron Goldman
    I think we need a few more on the mod list 🤔
  485. @maxlange:matrix.org
    Yes we do. 👀
  486. @parfait:filly.chat
    setting up mjolnir would be a good idea too 😅
  487. Matthew
    running a mjolnir that subscribes to the
    matrix.org
    reputation lists would make sense (sorry that we haven't launched a mjolnir-as-a-service yet :( )
  488. RFLEpicGamer
    and i still don't have a bluesky invite code yet :(
    (edited)
  489. zacwm joined the room
  490. @ztb:matrix.org left the room
  491. @rimuru:gentoo.chat changed their profile picture
  492. @holmosapien:holmosapien.com left the room
  493. holmosapien joined the room
  494. @lambchop:midov.pl joined the room
  495. @lambchop:midov.pl
    Message deleted by Aaron Goldman
  496. @lambchop:midov.pl removed their display name (lambchop)
  497. @lambchop:midov.pl left the room
  498. Aaron Goldman

    In reply to this message

    moving to be less git and more Subversion
    Purge requests are hard.

    If a repo has two candidate heads, I can follow both prev headers back to a common ancestor so I can then tell the difference between A added and B removed when A has a record and B does not. This means you don't need to carry around tombstones.
    This is useful in a distributed change control system like you would have if you kept the repo signing keys on your user agents and didn't trust your PDS with the right or ability to update your repos.

    If instead you trust the PDS then you can do all updates in a central place avoiding forks and has a straight-line fast forward. You can buy more performance by giving up some decentralization.

    Removing 'prev' is much more interesting change than adding the timestamp.
    Adding a timestamp is just shortcut for which block you have.

  499. Aaron Goldman
    I should look deeper at how they plan to do Perge Requests, I guess they we set a flag that tells the client that once they sync down the new state they should run a GC to remove any blocks that are not pointed to by one of the repos they have synced
  500. Dalite Fur 🦊 joined the room
  501. Dalite Fur 🦊

    In reply to this message

    Actually here for what seems like a similar reason, registering on the pds seems to go well "pds:db","handle":"XXX","email":"XXX","did":"did:plc:cd5la5x34urgndl5pv3vl3wq","msg":"registered user"

    Followed by a atproto.server.createAccount request "pds","req":{"id":5,"method":"POST","url":"/xrpc/com.atproto.server.createAccount","query":{},"params":{},"headers":{"host":"XXX","user-agent":"XXX":"*/*","accept-encoding":"gzip, deflate, br","accept-language":"en-US,en;q=0.5","content-type":"application/json","dnt":"1","origin":"https://bsky.app","referer":"https://bsky.app/","sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"cross-site","te":"trailers","x-forwarded-for":"XXX","x-forwarded-host":"XXX","x-forwarded-proto":"https"}},"res":{"statusCode":200,"headers":{"x-powered-by":"Express","access-control-allow-origin":"*","content-type":"application/json; charset=utf-8","content-length":"615","etag":"W/\"267-PrTSvVegUJfRfdAbRSKN6grv4r0\""}},"responseTime":763,"msg":"request completed"}

    But after that it keeps failing to fetch the created profile "xrpc-server","err":{"type":"XRPCError","message":"Profile not found","stack":"Error: Profile not found\n at ServiceClient.call (/app/node_modules/@atproto/xrpc/src/client.ts:126:15)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at handler (/app/node_modules/@atproto/pds/src/api/app/bsky/proxied.ts:9:19)\n at <anonymous> (/app/node_modules/@atproto/xrpc-server/src/server.ts:207:35)","status":400,"error":"InvalidRequest","success":false},"msg":"unhandled exception in xrpc method app.bsky.actor.getProfile"}

    Not sure if I missed something during setup? Only started poking with this recently. I'm running on k8s but the setup is very similar the the docker compose file, just a caddy container forwarding requests to the pds container. On_demand_tls also works. Using the default plc, view, view_did and crawlers url's

  502. Skyler Hawthorne

    In reply to this message

    Interesting. From a place of complete ignorance, it did seem an interesting choice to have a git-style chain of commits, given how frequent deletes are in a social network
  503. Aaron Goldman
    It was an unusual design because we were thinking about how to get the repos to live longer than either the publisher or the service. I don't need to care who the publisher of newton's principia mathematica or Shakespeare's plays. On the other extreme my GeoCity page went down when they did. Granted I am reasonably sure I was the only one of us that was as concerned with our history 400 years from now as 4 hours after the publication.
  504. Gary McCafferty joined the room
  505. Markus Schaper joined the room
  506. mikwee joined the room
  507. mikwee
    Hey all, just experimenting with the Bluesky API (which is a great way to interact with Bluesky without really getting into the mud)
  508. This is a very basic question, but... how do I extract stuff out of the XRPCResponse object? I don't get it
  509. shreyan
    Are you using the TypeScript API?
  510. mikwee
    Oh yeah, I should probably try that
  511. I am using the official API... it's just that I'm accessing from JS
  512. Now, lemme see how I can quickly make it TS...
  513. Okay, I installed TypeScript and changed my file to a TypeScript file, now what do I do?
  514. mikwee
    I've also kinda been struggling with the imports, I usually don't do such simple projects without some yarn create
  515. mikwee
    Going to sleep. I'll see y'all tomorrow
  516. @rimuru:gentoo.chat left the room
  517. interested-observer joined the room
  518. mikwee
    Morning
  519. @louis77:matrix.org left the room
  520. mikwee
    So… what’s going on?
  521. Sabir Ibrahim
  522. What does this mean?
  523. Whoops, wrong chat
  524. (though if anyone knows the answer, please let me know... otherwise, I'll delete)
  525. Rek

    In reply to this message

    network extender

    ... i think? I haven't seen that in ages

  526. Aaron Goldman

    In reply to this message

    That your phone is connected to a tower that is not vetted by your cellular carrier. Most towers are either your carrier or roaming on a carrier that has a contract with your carrier. But some places don't have good coverage and so run towers or network extenders that back hall using the Internet back to your carrier. You get free coverage (free for the carrier the carrier will probably still charge you) but less privacy as you are leaking some information from what the network extender can tell about you by monitoring the encrypted stream between you and the carrier.

    E.g. using the size and frequency of encrypted voice packets to run voice to text on the entropy fluctuation over time.

  527. I believe the icon is supposed to be a house with Wi-Fi coming out the top to imply the use of your local internet connection rather than talking to a tower
  528. Sabir Ibrahim
    Wow, thank you for that helpful explanation
  529. I'm glad I messaged this group by mistake 😀
  530. gustymaster changed their display name to 🦋
  531. 🦋 changed their profile picture
  532. @lexx:nitro.chat changed their profile picture
  533. Siddhartha
    I tried searching for non-dev Bluesky channels but couldn't find anything, so posting this here instead. Apologies if it's off-topic. Dan Abramov announced that he's joining Bluesky as a software developer! https://bsky.app/profile/danabramov.bsky.social/post/3k5vw7g6cvg2h
  534. dubliv joined the room
  535. Siddhartha changed their profile picture
  536. mikwee
    Morning
  537. @maxlange:matrix.org
    Morning
  538. Özkan Demir
    Morning can u give me a invite code
  539. mikwee
    I don't think this is the place for it
  540. Özkan Demir
    👍
  541. In reply to this message

    Send me email
  542. mikwee
    What?
  543. I sent you a DM
  544. So, uh, coming back to my question, how do you extract the data out of the `XRPCResponse` object? I keep getting `undefined`
  545. @nautical7m:matrix.org left the room
  546. Aaron Goldman

    In reply to this message

    Do you mean one of the endpoint that returns JSON or one that returns a CAR file full of CBOR objects?
  547. mikwee

    In reply to this message

    JSON. I'm using the official API library on JavaScript
  548. Aaron Goldman
    What do you see if you hit it with curl or look at the request in dev tools?
  549. mikwee
    What URL am I supposed to call? It should also be mentioned that I'm using Node.js without any browser as of now
  550. @planetoryd:matrix.org
    perhaps you should re-evaluate your tech stack, though bias is almost inherent to human decision
    (edited)
  551. mikwee
    So you're suggesting I should build a simple web app to use the API?
  552. @planetoryd:matrix.org
    deno w/ typescript, or whatever
    (edited)
  553. mikwee
    I'm currently using Node.js with TypeScript
  554. Rek

    In reply to this message

    Depends what you're calling and where. Usually it would be at /xrpc/<nsid>
  555. mikwee
  556. mikwee
  557. But I don't see there anything about reading the responses
  558. I can print the response, but not get the `data` out of it
  559. Aaron Goldman

    So, for something like

    12345import { BskyAgent } from '@atproto/api'
    
    const agent = new BskyAgent({service: 'https://example.com'})
    
    const res2 = await agent.com.atproto.repo.listRecords({repo: alice.did, collection: 'app.bsky.feed.post'})
    

    What do you see when you print the res2?

    (edited)
  560. mikwee
    TS tells me it can't find the name "Alice"
  561. Aaron Goldman
    Try passing in your DID String for your account on your PDS.
  562. mikwee
    A PDS is like an instance of a web app that uses the protocol, right?
  563. That's what I understand from the docs, at least
  564. @planetoryd:matrix.org

    In reply to this message

    wdym
  565. mikwee
    I know ActivityPub has instances where users' data is hosted
  566. So I'm asking if a PDS is like that
  567. @planetoryd:matrix.org
    an instance of a web app that uses the protocol, sounds like a weird way of putting it
  568. mikwee
    Well, the docs seem to completely skip over defining the term clearly
  569. Rek

    In reply to this message

    It's there, just under "applications": https://atproto.com/guides/applications
  570. Are you trying to use whats on bluesky? If so the PDS would be https://bsky.social, your repo in the example would be whatever the DID is for the account
    (edited)
  571. Ezzobir Bezziou joined the room
  572. mikwee
    Okay, I think I get it
  573. Where do I get my account's DID?
  574. mikwee
    Thanks! I think I'm starting to get it. `com.atproto.identity.resolveHandle` is a lexicon, right?
  575. shreyan
    Yup, it's of type 'query'
  576. mikwee
    Cool!
  577. Kjartan

    In reply to this message

    Or if you log in anyway, its also in the response to createSession
  578. mikwee

    In reply to this message

    Pass off my DID... where?
  579. Rek

    In reply to this message

    Where repo: 'did:plc:totallyrealdid', replacing the example alice.did
  580. mikwee
    Okay, thanks!
  581. I thought I was already done with this fetch thing... but it seems not:

    1234567891011121314151617D:\Bluesky API\node_modules\@atproto\api\dist\index.js:15709
        throw new XRPCError(1 /* Unknown */, String(e));
              ^
    
    XRPCError: TypeError: fetch failed
        at _AtpAgent.defaultFetchHandler [as fetch] (D:\Bluesky API\node_modules\@atproto\api\dist\index.js:15709:11)
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
        at async BskyAgent._fetch (D:\Bluesky API\node_modules\@atproto\api\dist\index.js:25727:15)
        at async ServiceClient.call (D:\Bluesky API\node_modules\@atproto\api\dist\index.js:15660:17)
        at async file:///D:/Bluesky%20API/main.js:9:14 {
      status: 1,
      error: 'TypeError: fetch failed',
      success: false,
      headers: undefined
    }
    
    Node.js v18.17.1
    
    (edited)
  582. Rek
    Can you send the code you ran?
  583. mikwee
    Nvm, forgot to change the agent's service link to
    bsky.social
  584. Now I'm getting (what I assume is) a correct output:

    1234567891011121314151617181920212223242526272829303132XRPCResponse {
      data: {
        records: [
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object]
        ],
        cursor: '3k5hxh2mdg22r'
      },
      headers: {
        'access-control-allow-origin': '*',
        connection: 'keep-alive',
        'content-encoding': 'gzip',
        'content-type': 'application/json; charset=utf-8',
        date: 'Sun, 27 Aug 2023 21:47:36 GMT',
        etag: 'W/"791e-rdHevfUVEsKfycq1rYjsItrlfn0"',
        'transfer-encoding': 'chunked',
        vary: 'Accept-Encoding',
        'x-powered-by': 'Express'
      },
      success: true
    }
    
  585. Rek
    Seems like it! 🫡 if there's more issues later on, most function names are (or if not, similar) to the xrpc call defined in the docs. It's usually a little easier to just quickly use cURL to see what's messing up (though that might just be personal preference)
  586. Try running what was failing originally when you first asked and it should work
  587. mikwee
    It gave me something very similar to this
  588. My question was how to extract the data from this object, to look at, for example, individual notifications
  589. Rek
    If you want to get notifications you'd need to authenticate the agent first: https://github.com/bluesky-social/atproto/blob/main/packages/api/README.md#usage then call agent.listNotifications which is bsky-specific
  590. (usually recommended to use an app password instead of your actual password)
  591. mikwee
    App password?
  592. you can use your regular password to auth the agent to test and such if you want though
  593. mikwee
    Okay, so I used login() to authenticate
  594. At least, I think that's what you meant by authentication
  595. Rek
    yup, then using the same agent and calling agent.listNotifications() should give a list of notifs back
  596. (i haven't tested this fully, but the TS client works relatively the same as others)
  597. mikwee

    I tried all of this before thus far. Now, this is what I get from this function:

    1234567891011121314151617181920212223242526272829303132XRPCResponse {
      data: {
        notifications: [
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object], [Object], [Object],
          [Object], [Object]
        ],
        cursor: '1692888369062::bafyreielghmqwadhnpr3cwnrruynun6d4ovrpvr2nbofwzjcwljabsht6y'
      },
      headers: {
        'access-control-allow-origin': '*',
        connection: 'keep-alive',
        'content-encoding': 'gzip',
        'content-type': 'application/json; charset=utf-8',
        date: 'Sun, 27 Aug 2023 22:01:32 GMT',
        etag: 'W/"f2d0-K08VbFclpc16V0tXtE5dEwdTHZs"',
        'transfer-encoding': 'chunked',
        vary: 'Accept-Encoding',
        'x-powered-by': 'Express'
      },
      success: true
    }
    
  598. Rek
    That looks right,
  599. whatever variable has agent.listNotifications(), getting its .data.notifications should give the array only
  600. mikwee
    Okay... I honestly did not realize you needed a variable for that.
  601. Rek
    lol, yeah all good
  602. Usually fine if a function immediately returns a result, but most function calls on the api are promises
  603. Hence why most examples ask you to use await
  604. So doing agent.listNotifications().data (or on any func), you're unintentionally grabbing .data from a promise
  605. mikwee
    Okay, I understand! Thanks
  606. Okay, now I'm getting a little deeper into the ATP rabbit hole. Is app.bsky.feed.post the lexicon you use to query a specific post?
  607. Or if we're talking about Bluesky, skeet?
  608. Rek
    should be, yes
  609. app.bsky is slightly out of what I know though, so I'm sure someone else can correct 😅 I'm not developing on app.bsky's authority at the moment and haven't really had the chance to look into it
  610. mikwee
    Woah... that's unexpected!
  611. mikwee
    I'm currently trying to use agent.getPost(). agent.getPost({uril: [uri]}) does not work
  612. noisedotbar joined the room
  613. mikwee
    Okay, another related question: Why does /xrpc/com.atproto.repo.getRecord?repo=mikwee.bsky.social?collection=app.bsky.feed.post not work? It tells me the repo is not a valid DID or handle, despite it literally being my handle.
  614. Dalite Fur changed their display name to Dalite Fur ➡️ EF
  615. Rek

    In reply to this message

    I'm (50%) sure that should just be agent.getPost(...), and uril as uri
  616. In reply to this message

    Unless the handle is a user's self hosted domain, the repo must be a DID instead of the handle
    (edited)
  617. Rek
    Sorry, was wrong about a few things:
    - repo is right, its only other handle resolvers that care about that. Your issue is the ? next to it, chained query params should use & instead
    - For getRecord (i missed you using it before) you need an item's rkey. If you want to list any instead, use listRecords.
  618. jmcasey

    In reply to this message

    to my eye you have a ? that should be a & there
  619. mikwee

    In reply to this message

    Ohhhhh thanks!
    (edited)
  620. So should both parameters use & or only one of them?
  621. Aaron Goldman
    ? separates the path from the query parameters
    &separates the query parameters themselves
  622. mikwee
    Okay, thanks!
  623. ^ a not terrible Components of a URL description
  624. Jens Gwen changed their profile picture
  625. Tiago dos Santos Carlos joined the room
  626. wolixoriginal
    Guys I am have question about api how get for at protocol and make bluesky client 
  627. shreyan
    could you be a bit more specific about what it is you want to do?
  628. wolixoriginal

    In reply to this message

    Make my own client for bluesky 
  629. xb5krnf297
    There are different types of clients. Are you talking about a mobile front end?
  630. siiii joined the room
  631. @musicloverchris:matrix.org joined the room
  632. geckour joined the room
  633. Ezzobir Bezziou
    How can i use bluesky
  634. Please help me
  635. Bruno joined the room
  636. @musicloverchris:matrix.org left the room
  637. Aaron Goldman

    In reply to this message

    To do what?

    You could search the content doing something like
    https://blue.amazingca.dev/

    You could run your own node.
    You could try to get an invite to someone else's node

  638. Ezzobir Bezziou

    In reply to this message

    Thank you so much
  639. Emily

    Hi everyone! This is Emily, from the Bluesky team. Now that both the network and the atproto dev community have grown significantly, we’ve been having more multi-threaded discussions over on GitHub and haven’t been able to maintain this Matrix room as much, but really appreciate all the discussions happening here.

    As a result, we’re streamlining discussions in the atproto GitHub repo. This room will continue to exist here, thanks to the Matrix team, who very generously offered to take over admin roles here. The room description will be updated accordingly to indicate that it’s no longer an official Bluesky space.

    Find us on GitHub discussions here: https://github.com/bluesky-social/atproto/discussions

    If you’re a developer still waiting for an invite, fill out the dev waitlist and you should receive a code within a week: https://atproto.com/blog/call-for-developers

  640. Emily changed the topic to "Community discussion of technologies related to the AT Protocol and Bluesky. (This room is not officially affiliated with the Bluesky team.) ".
  641. Emily changed the topic to "Community discussion of the AT Protocol and Bluesky. (This room is not officially affiliated with the Bluesky team.)".
  642. Emily changed the power level of Matthew from Default to Admin.
  643. Aaron Goldman
    I wander if I should start using this " https://web.archive.org/web/20230722083328/https://blueskyweb.xyz/blog/2-31-2022-initial-bluesky-team , https://blueskyweb.xyz/blog/2-31-2022-initial-bluesky-team " as my example of the mutability of https and why I think version history of authenticated data is a meaningful difference. Securing connections and content are not the same.
  644. I also wonder if Bluesky PBC is walking away from this room because I was doing the developer relations here. Sorry if I am talking too much in this now officially unaffiliated with the Bluesky PBC room.
  645. Emily

    In reply to this message

    no, we appreciate it when people chime in to ask & answer questions! :)

    we’ve just found that github discussions has made it much easier for us to: have multiple conversations at once, keep our answers discoverable even as time passes, and have public conversations that we can later link to.

  646. Sabir Ibrahim

    In reply to this message

    In reply to
    Emily

    Hi everyone! This is Emily, from the Bluesky team. Now that both the network and the atproto dev community have grown significantly, we’ve been having more multi-threaded discussions over on GitHub and haven’t been able to maintain this Matrix room as much, but really appreciate all the discussions happening here.

    As a result, we’re streamlining discussions in the atproto GitHub repo. This room will continue to exist here, thanks to the Matrix team, who very generously offered to take over admin roles here. The room description will be updated accordingly to indicate that it’s no longer an official Bluesky space.

    Find us on GitHub discussions here: https://github.com/bluesky-social/atproto/discussions

    If you’re a developer still waiting for an invite, fill out the dev waitlist and you should receive a code within a week: https://atproto.com/blog/call-for-developers

    In reply to


    Hi everyone! This is Emily, from the Bluesky team. Now that both the network and the atproto dev community have grown significantly, we’ve been having more multi-threaded discussions over on GitHub and haven’t been able to maintain this Matrix room as much, but really appreciate all the discussions happening here.

    As a result, we’re streamlining discussions in the atproto GitHub repo. This room will continue to exist here, thanks to the Matrix team, who very generously offered to take over admin roles here. The room description will be updated accordingly to indicate that it’s no longer an official Bluesky space.
    Find us on GitHub discussions here: https://github.com/bluesky-social/atproto/discussions
    If you’re a developer still waiting for an invite, fill out the dev waitlist and you should receive a code within a week: https://atproto.com/blog/call-for-developers

    I wasn't aware that this was ever an official Bluesky-affiliated space to begin with. 🤔

    (edited)
  647. Aaron Goldman
    When Bluesky PBLLC was founded most of the discussion was hapening in rooms bridged to Discord. #general-bsky:matrix.org This "Bluesky Community" was an older and more established community coming out of the social protocol evaluation. The ultimate conclusion was that there was not a protocal that could handle the diverse needs of twitter to replace their existing API with a distributed protocal. Jay created this Matrix so there would be a space separated from the "Bluesky Community" where Bluesky PBLLC could talk to people interested in the development of the new protocal without all of the "Bluesky Community" people that where following and comparing many protocols. This room would be about the new ADX(since renamed AtProto) protocal and explicitly not Matrix, ActivityPub, Nostr, peergos, ... In parallel with making this Bluesky Dev room she asked "Bluesky Community" to rename so that Bluesky could be used as the brand for the new App built on the new AtProto protocal. "Bluesky Community" politely renamed to https://dsocialcommons.org/ so Jay and Bluesky PBLLC could use the name as its brand. At that point I moved from spending my time growing dSocialCommons to trying to build up a community of developers interested in the new protocal here. https://discord.gg/UrBMcCYv dSocialCommons still exists but never recovered from the transition from "Bluesky Community" to dSocialCommons. Many of the contributors felt that they had spent years building the Bluesky brand and that the Bluesky project had been stolen from them.
  648. Aaron Goldman
    Now the need for a lot of distributed systems protocols enthusiasts has died down and the need for a lot of API calling developers is needed it makes sense to move to github atproto discussions that can center around a code artifact. AtProto is not exactly done but it is for the most part what it will be. The lexicon and APIs for the PDS as well as the UX are going to need constant evolution. Think about the Filesystem we basically have the API done. Open, Seek, Read, Write, Close. On the other hand we will never be done coming up with new file formats.
  649. there may be new features needed like the way fsync() was added much later but the core is there
  650. Aaron Goldman
    I do still recommend the Ecosystem Overview a lot of good distributed systems experts contributed to it. https://gitlab.com/bluesky-community1/decentralized-ecosystem/-/blob/master/README.md
  651. It's on
    gitlab.com
    becuse a lot of the pre founding Bluesky Community contributers were not fans of centralized proprietary tools. 🤷
  652. Aaron Goldman
    I miss Authenticated Data eXchange I still think adx:// looked cooler than at:// but meh.
  653. @erichf:matrix.org left the room
  654. Matthew invited Administrator
  655. Administrator joined the room
  656. Matthew changed the power level of Administrator from Default to Admin.
  657. Administrator set the server ACLs for this room.
  658. Administrator banned @flooore:matrix.org: spam
  659. Administrator banned @floragordonstar:matrix.org: spam
  660. Administrator banned @gordonforas:matrix.org: spam
  661. Administrator banned @joseph54:matrix.org: spam
  662. Administrator banned @kaddare:matrix.org: spam
  663. Administrator banned @kookoy:matrix.org: spam
  664. Administrator banned @ooooret:matrix.org: spam
  665. Administrator banned @ooovi:matrix.org: spam
  666. Administrator banned @palmlive:matrix.org: spam
  667. Administrator banned @planetoryd:matrix.org: repeated code of conduct violations
  668. Administrator banned @rickslambiase20:matrix.org: spam
  669. Administrator banned @roooy:matrix.org: spam
  670. Administrator banned @tayloralgo1:matrix.org: spam
  671. Administrator banned @treecop:matrix.org: spam
  672. Administrator banned @wertd:matrix.org: spam
  673. Administrator banned @ytoooo:matrix.org: spam
  674. Ltrademark changed their profile picture
  675. nakasyou(Shotaro N.) changed their display name to nakasyou(Shotaro Nakamura)
  676. nakasyou(Shotaro Nakamura) changed their display name to nakasyou (Shotaro Nakamura)
  677. @georgishere:matrix.org left the room
  678. @liink:matrix.org left the room
  679. Thib (back Sept 1st) changed their display name to Thib
  680. Karl Abbott changed their display name to Karl Abbott (Away until 5-September-2023)
  681. Aer0xander
    Is there any way to create categories and sub-categories with the current bluesky namespace? I want to create more of a forum/reddit like experience
  682. Aaron Goldman
    Depends what you mean by bluesky name space. The `at://` urls are usually `at://app/collection/record` but could be different. Assuming your app wants to publish in to it's own top level folder you can organize the namespace how you like. Just make your own lexicons for your record types
  683. If you by bluesky namespaces you mean `at://
    bsky.app/*`
    then you need to follow their layout for the collections.
  684. Aer0xander

    In reply to this message

    I meant
    bsky.app
    , but without federation being enabled in production we can't make custom lexicons for a live app however correct? I'm looking how I could deploy my app in production soon and mostly work through a custom app/client, so maybe I could also use hashtags, or even labeling (although that seems to be more for moderating instead of categorizing)?
  685. comsalmon joined the room
  686. @albattran:matrix.org left the room
  687. comsalmon left the room
  688. @viktormaruna:matrix.org left the room
  689. ekayim joined the room
  690. pepijndevos set a profile picture
  691. saltedlolly changed their display name to olly.dgb
  692. @samme:schizo.cafe left the room
  693. thieflord joined the room
  694. @parfait:filly.chat changed their profile picture
  695. @tommy_plug:matrix.org joined the room
  696. Administrator banned @tommy_plug:matrix.org: spam
  697. Karl Abbott (Away until 5-September-2023) changed their display name to Karl Abbott
  698. @rover:aguiarvieira.pt left the room
  699. Maxi changed their display name to parfait
  700. avelusamy joined the room
  701. @parfait:filly.chat changed their profile picture
  702. xrisk changed their display name to Rishav
  703. Rishav set a profile picture
  704. @hiire:matrix.org left the room
  705. @jaklt:tchncs.de left the room
  706. Karl Abbott changed their display name to Karl Abbott (afk)
  707. Karl Abbott (afk) changed their display name to Karl Abbott
  708. Nad changed their display name to Nad // away
  709. @grumbulon:schizo.cafe left the room
  710. @cmoog:matrix.org set a profile picture
  711. @cmoog:matrix.org left the room
  712. @freedom.:matrix.org left the room
  713. agn0stik3301 set a profile picture
  714. @ppxqq:matrix.org left the room
  715. damon/ changed their profile picture
  716. wolixoriginal
  717. I am have problems to connect to server 
  718. I am try my internet working 
  719. Aaron Goldman
    Which server
  720. shreyan
    known time out with getTimeline I hear
  721. wolixoriginal
    Bluesky original server 
  722. shreyan
    it's a known issue, they're fixing it
  723. Aaron Goldman
    Oh, I see an outage also
  724. Kandy (They/She, DMs Open)

    In reply to this message

    glad im not the only one
  725. wolixoriginal

    In reply to this message

    Good see some more people have same problem 
  726. In reply to this message

    Your furry 
  727. Kandy (They/She, DMs Open)

    In reply to this message

    yep
  728. wolixoriginal

    In reply to this message

    Your open for dms 
  729. Kandy (They/She, DMs Open)

    In reply to this message

    sure am lol
  730. shreyan
    lollll
  731. wolixoriginal

    In reply to this message

    Look on dms I am send you dm
  732. Kandy (They/She, DMs Open)

    In reply to this message

    i can see that
  733. says that you blocked me from receiving it lol
  734. wolixoriginal

    In reply to this message

    Exit dms 
  735. I am going to send you dm again 
  736. jmcasey
    we’re all rooting for y’all
  737. shreyan
    oh hey jik
  738. haven't see you here for a while
  739. Kandy (They/She, DMs Open)

    In reply to this message

    still happening
  740. jmcasey
    yeah, been busy with job stuff, but always lurking ;)
  741. wolixoriginal

    In reply to this message

    Actually wait seconds see this be works
  742. eay changed their profile picture
  743. Nad // away changed their display name to Nad
  744. nakasyou (Shotaro Nakamura) changed their display name to バカ ん?ニックネーム?
  745. バカ ん?ニックネーム? changed their display name to a
  746. @sky0n3:matrix.org left the room
  747. gingervitiz joined the room
  748. a changed their display name to nakasyou (Shotaro Nakamura)
  749. @destiny786:matrix.org left the room
  750. Dalite Fur ➡️ EF changed their display name to Dalite Fur 🦊
Next group of messages