#dev 2023-03-07

2023-03-07 UTC
#
@typelogdev
↩️ I wish these websites had better info on when you use one spec vs another.. webmentions vs micropub vs activitypub.
(twitter.com/_/status/1632897306306437120)
#
[tantek]
^ we need an updated Social Web Spec guide, on the IndieWeb wiki, because the W3C one is horribly out of date
#
[aciccarello]
What RSS readers support micropub?
gxt__ joined the channel
#
[tantek]
what is a social reader
#
Loqi
A social reader is a modern interactive reader that allows you to directly respond to posts (with a like, comment, etc) right there inline with posts as you read them (as people do in social media), in contrast to legacy feed readers which were one-way read-only experiences and provided no mechanisms to interact with or respond to posts https://indieweb.org/social_reader
#
[tantek]
^ the ones listed there
#
[aciccarello]
I wish there were more options that didn't require self hosting. Aperature probably being the main one. The only legacy /feed_reader(s) that I see are tt-rss and nextcloud news.
#
aaronpk
umm how in the world do you post with the bluesky api
#
aaronpk
update: it wasn't that bad
#
aaronpk
not sure what to do with the identifier that bluesky returns when the post is created, it's not really on the web
geoffo joined the channel
#
[KevinMarks]
Not the prettiest permalink
#
[KevinMarks]
This is like the one built on DAT - fritter was it?
#
aaronpk
omg "Most of our author pages were larger than a megabyte!"
[dave] joined the channel
#
[KevinMarks]
How? Were they inlining the photos as data urls?
rocto joined the channel
#
[snarfed]1
^ aaronpk and anyone else playing with bluesky's API, key thing to note is the data is currently pretty much all publicly exposed via the API! no auth needed. don't be fooled by the closed beta 😁
#
aaronpk
interesting that all profiles are public, that's super not obvious from it being app-only
#
aaronpk
but of course you need authentication to post or update your profile
#
[tantek]
what is BlueSky
#
Loqi
bluesky is a project proposed by Jack Dorsey, Twitter CEO, to “develop an open and decentralized standard for social media – The goal is for Twitter to ultimately be a client of this standard.” https://indieweb.org/bluesky
#
aaronpk
i was going to write up how i updated my bluesky account to use my domain, but apparently they are going to ship support for it in the app by next week
#
[snarfed]1
at least, technically public. not exactly easy or accessible, but not behind auth
#
[snarfed]1
right!
#
aaronpk
it's just a DNS record and an update to your profile
#
[snarfed]1
yup. nice that they're doing that so early. I still expect to want Bridgy Fed for it for federating _content_, not just identity, but this is a nice start!
#
aaronpk
i might even recommend *only* federating content and not doing anything with bridgy fed and the identity side
#
aaronpk
i haven't explored photo uploading yet but at least the posting API is pretty straightforward
#
[snarfed]1
hmm I'm confused. do you mean recommend only syndicating?
#
aaronpk
maybe i'm confused. what did you mean by federating identity?
#
[snarfed]1
ah, domain username via DNS, like you did
#
aaronpk
what would you do to help people with that? since it's supported natively
#
[snarfed]1
right, no, I'm saying the opposite, I expect Bridgy Fed to focus on bridging the protocol, not on the DNS username part
#
aaronpk
ok yeah we are agreeing, i guess I interpreted "focus" as "work primarily on but not exclusively"
#
[snarfed]1
hah ok
#
[snarfed]1
hard to say anything for sure, they say they've mostly nailed down federation, largely PDS repo subscribe/sync based, but they haven't published it yet, not the top priority yet
angelo joined the channel
#
[tantek]
[KevinMarks] we need to get you setup to post notes from @kevinmarks.com@kevinmarks.com! https://xoxo.zone/@KevinMarks/109979198961294212
#
Loqi
[preview] [Kevin Marks] @bmann @lucasgonze You can do this with the fediverse, but it takes some wrangling see @tantek.com or @aaronpk
#
aaronpk
oops TIL bluesky limits posts to 256 chars "Record/text must not be longer than 256 characters"
#
sknebel
aaronpk: what's the TL;DR on how the linking of your domain works on bluesky?
#
sknebel
ah, ops
#
sknebel
was scrolled up
#
sknebel
what happens if the domain changes owners?
#
aaronpk
DNS record TXT of _atproto.example.com with a value of your did, then use the API to update your profile with your domain
geoffo joined the channel
#
aaronpk
no idea
#
aaronpk
unclear how often the apps or servers do the DNS lookup
#
[snarfed]1
aaronpk++
#
Loqi
aaronpk has 26 karma in this channel over the last year (81 in all channels)
#
[snarfed]1
whoa, I just noticed that on Mastodon on mobile, the share button on posts (toots) opens the phone's native share sheet
#
[snarfed]1
didn't realize that was possible
#
[schmarty]
since 2021-09, nice.
#
[schmarty]
heh, sorry, looking at the iOS Safari columns obviously 🙈
gRegor joined the channel
geoffo joined the channel
#
[snarfed]1
aaronpk did you use the app.bsky.actor.updateProfile API method? it doesn't take handle, just did. I'm guessing you used a different method?
#
[snarfed]1
ah, com.atproto.handle.update
#
[snarfed]1
btw aaronpk evidently they run something like cert transparency logs for their dids, you can see that yours rotated onto your domain here: https://plc.directory/export?after=2023-03-06T23:00
#
[schmarty]
wait is this open enough that i could just hack out an identity and start ATposting without an invite??
#
[snarfed]1
no, you need an invite
#
[tantek]
websharetarget++
#
Loqi
websharetarget has 1 karma over the last year
#
[schmarty]
taking the d out of did
#
[snarfed]1
eventually it'll be open
#
aaronpk
i don't fully understand the split between the app.bsky and com.atproto methods
#
[tantek]
dev room gettin spicy in the evening
#
Loqi
[preview] [[snarfed]1] happy monday all! here's the last bluesky beta code I have, good for five invites, feel free to grab the app from the iOS app store and try it. bsky.social-aatmk
#
[schmarty]
i'm mostly trying to get my head around the "it's decentralized" but "it's a closed beta" thing. like is that _only_ because bluesky is running the sole instance of the service? i read a bunch of the things when you were sharing them some weeks ago, snarfed, but a lot of it didn't stick.
#
aaronpk
I believe so yes
#
aaronpk
the app is the closed beta
#
[snarfed]1
right
#
aaronpk
well, actually their hosted service that the app uses
#
aaronpk
presumably if you implement the whole api you can point the app to your instance
#
[snarfed]1
(which BF will probably do eventually)
#
[schmarty]
but say i implemented all the server-side business, is there something about the beta app that blocks (or simply doesn't make available) my profile or posts to folks using the official beta app?
#
aaronpk
No I don't think so
#
[snarfed]1
at protocol (com.atproto.*) is the lower level distributed data protocol that includes identity, migration, etc. bluesky (app.bsky.*) is a thin-ish layer of social networking logic on top of that
#
aaronpk
Ah interesting
#
[snarfed]1
[schmarty] yeah technically that's doable, but in practice you'd have to dumpster dive through their code to figure out how to implement federation, the part that would let your server talk to theirs. they haven't even fully finalized it, much less fully implemented it, and definitely not documented that part yet
#
[snarfed]1
apart from a few of the com.atproto methods for synching and subscribing repos
#
[schmarty]
that helps! thanks snarfed++
#
Loqi
snarfed has 74 karma in this channel over the last year (119 in all channels)
#
[snarfed]1
let me know if you want to help implement it in BF! the time is almost nigh
#
[snarfed]1
or just start with that invite and try out the app as is
#
[schmarty]
to be honest i am taking a wait-and-see to see what the people and content end up being like before i dedicate myself to it in any way. i've been burned by ZeroNet and Patchwork and Planetary and Retroshare and-
#
[snarfed]1
hah yup
#
[tantek]
oh gosh do we have pages on all those?
#
[schmarty]
https://indieweb.org/Secure_Scuttlebutt covers half of the ones i mentioned. RetroShare isn't really IndieWeb-relevant. And ZeroNet is, uh. Well there were some technical ideas there that were explored.
#
[schmarty]
haha wow we _do_ have a /zeronet page 😅
#
[snarfed]1
aaronpk did you have to wait long after calling com.atproto.handle.update? I got a 200, and my DNS is set, but it hasn't taken effect yet
#
aaronpk
No it was instant
#
aaronpk
i was immediately logged out of the app and had to log in again
#
aaronpk
I did set up the DNS record a couple hours before doing the update tho so it definitely had time to propagate, maybe that's it?
#
[snarfed]1
eh DNS is serving happily. I'll keep poking at it
#
aaronpk
hmm. IIRC the response to the update was empty but it did work
#
[snarfed]1
ah my DNS was missing the did= prefix
gRegor joined the channel
#
[tantek]
this is the most actual discussion of implementing "did" for something practical that I’ve ever heard.
#
[tantek]
question is, does it actually buy/mean anything, or it is just urn: for the next generation?
#
[tantek]
and if not, then could it have "simply" been urn:did: instead of squatting top level?
#
[snarfed]1
did:web is one of the two types they currently support, so they're there in spirit
#
[tantek]
I thought they had their own "did: atp" or something?
#
[snarfed]1
yeah did:plc, they eventually want something better but that's their non-DNS one for now
#
[snarfed]1
higher level, my understanding is they very much appreciate and are happily using and leaning on DNS and domain names due to their ubiquity, maturity, ecosystem, etc
#
[snarfed]1
they just also want to be able to support other systems and namespaces, _along with_ DNS, even if in practice most people will use DNS domains
#
[snarfed]1
so, dids
#
[tantek]
"other systems and namespaces, _along with_ DNS" <-- which is why I asked: just urn: for the next generation?
#
[snarfed]1
ah. then sure, maybe?
#
[tantek]
did: -> register at W3C, urn: -> register at IANA?
#
[tantek]
"did" has decentralized in the name, "urn" is for ashes?
gRegor joined the channel
#
[KevinMarks]
"did" is how you say "dead" in New Zealand
KH joined the channel
#
KH
hi
#
IWDiscordRelay
<c​apjamesg#4492> Hello!
jeremycherfas joined the channel
#
IWDiscordRelay
<c​apjamesg#4492> aaronpk Do you have the script you used to change your domain?
mouse[d], IWDiscordRelay, petermolnar, cambridgeport90 and geoffo joined the channel
#
[manton]
[aaronpk] Bluesky tech support… 🙂 I added the TXT record for my DID. I can’t seem to find the API info to update my profile… If you have it handy, mind posting it?
#
aaronpk
ok ok i'll post it
#
aaronpk
one moment
#
[schmarty]
jacky: is this a 0-day wearing academic paper clothing??
#
[schmarty]
Oh, phew, it's already largely patched. They coulda mentioned that in the abstract 😅
#
[manton]
Awesome, thank you!
[pfefferle] joined the channel
#
[pfefferle]
[aaronpk]++
#
Loqi
[aaronpk] has 27 karma in this channel over the last year (82 in all channels)
#
[jacky]
lol [schmarty] very valid concern
#
[snarfed]1
fair warning though, a few people have reported that they borked their accounts because they tried this and got it wrong. and the team is evidently releasing the UI for it within a few days or so. so consider waiting unless you're confident!
#
[manton]
[aaronpk]++ Great instructions, worked!
#
Loqi
[aaronpk] has 28 karma in this channel over the last year (83 in all channels)
#
[manton]
[snarfed] After changing it, I had to sign out of the app and sign back in with my email address instead of subdomain.
#
[jacky]
oh found https://gitlab.com/jmcasey/skysail from aaron's article (I just click through stuff, lol)
#
[jacky]
nice to see client libs
#
[snarfed]1
yeah it doesn't yet let you use a custom domain as your login username, I expect they'll fix that when they officially release the feature
#
[manton]
Yep, clearly bleeding edge still.
geoffo, gRegor and [Murray] joined the channel
#
IWDiscordRelay
<c​apjamesg#4492> I don't think I like service workers.
#
IWDiscordRelay
<c​apjamesg#4492> I like the power, but they have caused a lot of frustration.
#
[aciccarello]
I've heard they are hard to debug and can be frustrating if you get things in the wrong state
#
[aciccarello]
Also caching is not an easy problem in its own right
#
[tantek]
capjamesg, it helps to work on them with someone who knows what they're doing, has been through it before
#
capjamesg
It is possible service workers have caused me a day of frustration.
#
capjamesg
I forgot I had one installed for my offline cache page, the code inspired by adcatio's worker. I made some changes to the caching logic. I then noticed Safari iOS was loading files from the worker, so I must have messed something up.
#
[tantek]
yes it's worth being more cautious with SW code changes than JS changes in general. the breakage isn't immediately obvious
#
capjamesg
This app is technically complicated enough without the worker :D
#
[aciccarello]
capjamesg, are you using workbox for caching?
IWDiscordRelay, mouse[d] and petermolnar joined the channel
#
IWDiscordRelay
<c​apjamesg#4492> I don’t think I was?
#
[aciccarello]
Workbox has a lot of options for generating a service worker to handle standard use cases. Might be a simpler approach.
#
IWDiscordRelay
<c​apjamesg#4492> Thanks!
#
capjamesg
aaronpk What code did you use to set your domain in Bluesky?
#
aaronpk
no code, just http requests
#
capjamesg
Do you have them to hand?
#
capjamesg
I spent a lot of time digging through the Atproto docs.
#
capjamesg
I installed their API and tried to figure out the Typescript in their repo.
#
capjamesg
Suffice to say, I think I was going in the wrong direction.
#
Loqi
[preview] [Aaron Parecki] How to use your own domain as your BlueSky handle
#
capjamesg
Thanks!
#
capjamesg
How do you make a post?
#
capjamesg
I'm trying to POST to com.atproto.repo.createRecord but can't find the "collection" attribute.
#
capjamesg
> {'error': 'InvalidRequest', 'message': 'Lexicon not found: lex:app.bsky.post'}
#
capjamesg
Nvm. There is a typo in their docs :D
#
capjamesg
app.bsky.fed.post should be app.bsky.feed.post
#
[tantek]
fed feed, potayto potahto
#
[tantek]
it does seem people typo feediverse plenty often on Twitter
#
aaronpk
hah nice
#
capjamesg
I can't let someone go through the confusion I've been going through.
#
capjamesg
That library is probably not going to work just yet (the methods do, so you can copy the source and use it, but the package config isn't done yet).
#
[snarfed]1
capjamesg you may also be interested in https://github.com/snarfed/lexrpc
#
capjamesg
You are implementing the server piece, right?
#
[snarfed]1
that's both client and server
#
[manton]
[capjamesg] Cool, this is helpful, just skimming through your Python to see the relevant endpoints.
#
[snarfed]1
not a full fledged PDS, just XRPC + Lexicon
#
capjamesg
[manton] Yeah. The docs are a bit hard to parse so I hope this makes it easier.
#
capjamesg
Just added h-entry -> ATP.
#
capjamesg
[snarfed]++ nice!
#
Loqi
[snarfed] has 75 karma in this channel over the last year (121 in all channels)
#
[snarfed]1
oh and granary converts to/from ATP, specifically app.bsky.*
#
capjamesg
I still need help on the Salmention implementation if anyone can take a look.
#
Loqi
[preview] [capjamesg] salmention: Salmention playground.
#
[snarfed]1
yes! I definitely recommend getting it working on your own site, or any other live site, as the next step
#
[snarfed]1
code review is great, but hard to do in a vacuum, easier when it's actually run
#
capjamesg
I'm more looking for direction. Does what I have resemble a Salmention?
#
[tantek]
capjamesg, I think [snarfed] answered that question "does what I have" — to "have" a "what", it needs to be on a permalink on your personal site
#
[snarfed]1
specifically, post an original post on your site, reply to it on your site, then reply to that reply. the second reply should propagate up to the original post
gerben joined the channel
#
[snarfed]1
(I think)
#
[tantek]
correct and I think we're now going in circles
#
Loqi
[preview] [[tantek]] capjamesg, did you add an example permalink of yours displaying a your post, a reply to it, and a reply to that reply?
#
[snarfed]1
fittingly at least
#
capjamesg
[tantek] The bit I'm struggling with right now is parsing, before I get into display, etc.
#
capjamesg
Hence, I have three posts in local files: a post, a reply, then a reply to the reply.
#
capjamesg
With all of that, I'm unsure what I need to do.
#
capjamesg
[snarfed] Did you figure out how to upload a photo via the AT protocol? I've got the upload working but I don't know how to associate the cid with a post.
#
[tantek]
capjamesg, which scenario of parsing are you struggling with?
#
[snarfed]1
capjamesg no, I haven't worked with the app.bsky API much, more the com.atproto API and the app.bsky data lexicons
#
capjamesg
I'm looking at com.atproto too.
#
capjamesg
[tantek] It would help to have the parsing logic laid out.
#
capjamesg
But before doing anything I'll read over the wiki again.
#
capjamesg
We need salmention.rocks :P
#
[tantek]
capjamesg, for which scenario? sending or receiving Salmentions?
#
capjamesg
Receiving.
#
capjamesg
I know about https://indieweb.org/Salmention#Protocol but I keep reading it and I haven't gotten an intuitive understanding yet.
#
aaronpk
speaking of, i need to renew webmention.rocks soon!
#
[tantek]
capjamesg, which step of https://indieweb.org/Salmention#Receiving_Salmentions are you stuck on?