#social 2017-06-06

2017-06-06 UTC
#
ajordan
csarven++
#
Loqi
csarven has 19 karma in this channel (34 overall)
#
ajordan
cwebber2: embed some EXIF metadata and make sure that's still there? though it wouldn't be entirely unreasaonable for the server to strip that
#
ajordan
maybe upload some binary garbage such that a server _couldn't_ meaningfully process it? then checking the hash is easy
#
ajordan
also aaronpk++ for that amusing wiki thing :D
#
ajordan
aaronpk++
#
Loqi
aaronpk has 86 karma in this channel (1338 overall)
timbl joined the channel
#
ben_thatmustbeme
ajordan++ thanks for the read through
#
Loqi
ajordan has 3 karma
tantek joined the channel
#
cwebber2
adds self to regrets for today
#
cwebber2
I have an appointment
#
sandro
cwebber2, update on status? test suite?
tantek joined the channel
#
ajordan
morning all
#
sandro
'afternoon ajordan :-)
#
sandro
trackbot, start meeting
RRSAgent joined the channel
#
trackbot
is preparing a teleconference.
#
trackbot
RRSAgent, make logs public
Zakim joined the channel
#
RRSAgent
I have made the request, trackbot
#
trackbot
Zakim, this will be SOCL
#
Zakim
ok, trackbot
#
trackbot
Meeting: Social Web Working Group Teleconference
#
trackbot
Date: 06 June 2017
#
ajordan
see ya next week cwebber2!
#
ajordan
ben_thatmustbeme: no problem :)
#
ajordan
I just skimmed the new section
#
tantek
be right there :)
#
Loqi
tantek: saranix left you a message 4 days, 14 hours ago: I was wondering what were the reasons that W3 started switching to github 'issues' and what are they 'switching' from?
#
ajordan
present+
#
sandro
present+
#
tantek
present+
#
tantek
zakim, who is here?
#
Zakim
Present: ajordan, sandro, ben_thatmustbeme, tantek
#
Zakim
... astronouth7303, cwebber2, sandro, Gargron, mattl, DenSchub, trackbot, csarven, nightpool, raucao, jet, bigbluehat, dwhly, bitbear, lambadalambda, Loqi
#
Zakim
On IRC I see RRSAgent, tantek, jankusanagi_, KjetilK, ajordan, saper, wilkie, tcit, ben_thatmustbeme, aaronpk, MMN-o, jaywink, bwn, sknebel, albino, saranix, rhiaro,
#
ben_thatmustbeme
i can scribe
#
ben_thatmustbeme
scribenick: ben_thatmustbeme
#
ben_thatmustbeme
scribe: Ben Roberts
#
ben_thatmustbeme
Chair: tantek
#
ajordan
ben_thatmustbeme: I can scribe while we talk about JF2 if you want
#
ben_thatmustbeme
TOPIC: review of minutes of last week
#
ben_thatmustbeme
thanks ajordan
#
rhiaro
present+
#
ben_thatmustbeme
TOPIC: update for extension
#
ajordan
sure ben_thatmustbeme. I feel bad for not scribing yet
#
ben_thatmustbeme
sandro: no update yet, i created a new w3c.social mastodon instance to hopefully show some support
#
ben_thatmustbeme
... not sure how to show off that link
#
ben_thatmustbeme
tantek: well at least on the WG website
#
ben_thatmustbeme
sandro: i don't think that would be noticablel enough
#
ben_thatmustbeme
ajordan: twitter?
#
ben_thatmustbeme
sandro: oh yeah
#
ben_thatmustbeme
(laughs all around)
#
ben_thatmustbeme
TOPIC: specs
#
ben_thatmustbeme
tantek: with cwebber2 not here i don't know we can do much on activitypub
#
ben_thatmustbeme
... anyone have any hot topics to raise on it
#
ben_thatmustbeme
ajordan: nothing has been raised recently in the issues
#
Zakim
sees ajordan on the speaker queue
#
ben_thatmustbeme
tantek: we don't have aaronpk or julien here, so i don't know we can do much with websub
#
ajordan
q+ to mention the direct-message issue resolution
#
Zakim
sees ajordan on the speaker queue
#
aaronpk
not on the call, but my only update is that pfefferle submitted an implementationreport for wordpress https://github.com/w3c/websub/blob/master/implementation-reports/PUBLISHER-wordpress-pubsubhubbub.md
#
ben_thatmustbeme
... aaronpk did get some websub implementation report for wordpress
#
ben_thatmustbeme
... its a plugin for worpress
#
aaronpk
also julien seems to have just gone through a bunch of websub issues
#
aaronpk
so there is more to discuss on github
#
tantek
ack ajordan
#
Zakim
ajordan, you wanted to mention the direct-message issue resolution
#
Zakim
sees no one on the speaker queue
#
Loqi
[annando] #196 How to differentiate between posts and private (direct) messages?
#
ben_thatmustbeme
ajordan: i happen to have last weeks minutes open, and we were goign to discuss the direct message issue
#
Loqi
[cwebber] Note that Pump.io already does this, and I think this may be the answer: inbox is still used for federation, but multiple streams can be presented to the user in terms of inbox / the "major" feed (which is all the main posts and comments and etc) / t...
#
ben_thatmustbeme
... i just wanted to mention it because it seems like its been resolved
#
ben_thatmustbeme
.. it seems like everyone is on the same page
#
ben_thatmustbeme
tantek: sounds good, i leave it cwebber2 to prompt the original opener to ask if they are satisfied
#
ben_thatmustbeme
tantek: but good to see the updates there
#
ben_thatmustbeme
tantek: the only thing i have to report on post type discovery is in a little bit of messaging with sandro, i have had some ...
#
ben_thatmustbeme
got interrupted by co-worker and missed some there
#
ajordan
waits for aaronpk to pop out of nowhere, shout "MONOCULTURE" and vanish again
#
ben_thatmustbeme
... mastodon works well with other mastodon instances, but not much with others outside of mastodon
#
ben_thatmustbeme
sandro: some others have written plugins to make it work here and there
#
rhiaro
PostActiv is not GNU Social but is OStatus, also works, I think that counts
#
ben_thatmustbeme
tantek: does mastodon have a character limit?
#
ben_thatmustbeme
sandro: yes, but only on the input
#
sandro
(I think)
#
ben_thatmustbeme
tantek: if we were to hlep make mastodon accept webmention, it would need to figure those out by post type discovery or a subset of the PTD algorithm
#
ben_thatmustbeme
... i think i will look in to doing that subset, and it should be even easier to get more interop on it
#
tantek
agenda+ interop
#
Zakim
notes agendum 1 added
#
ben_thatmustbeme
sandro: since we have such an open agenda, i wonder if we could talk more on that
#
tantek
scribenick: ajordan
#
Zakim
sees sandro on the speaker queue
#
ajordan
scribe: AJ Jordan
#
ajordan
ben_thatmustbeme: two of the guys behind micro.blog ??? RSS and Atom released(?) JSON Feed
#
ajordan
... looking at it there was very little difference, but there are some values differently. most of it is a change in vocabulary
#
tantek
s/???/Manton Reece & Brent Simmons, who have implemented
#
tantek
ack sandro
#
Zakim
sees no one on the speaker queue
ajordan_ joined the channel
#
ajordan_
scribenick: ajordan_
#
rhiaro
audio is cutting in and out for me.. maybe my connection
#
ajordan
... I added a section that defines a profile that pretty much matches JSON Feed
#
ajordan
... people can turn microformats into JF2 that way, and can use things like JSON Feed
#
ajordan
... I'd like to publish a new WD of it for that reason
#
ajordan
... let's see if we can unify JSON Feed and JF2 a little more
#
ajordan
sandro: great thing to work on ben_thatmustbeme, I'm curious what you mean when you say "pretty much"
#
ajordan
... why can't it be the same?
#
ajordan
ben_thatmustbeme: for anyone using JSON Feed you have to break on anything you don't recognize
#
ajordan
... in JSON Feed any extensions have to be prefixed with an _
#
sandro
sandro: the _prefix this is an anti-pattern, like x-foo headers
#
Zakim
sees no one on the speaker queue
#
sandro
sandro: also, version numbers? no thanks!
#
ajordan
... the other is mainly vocabulary. either you have to start adding JF2 vocab that isn't referenced anywhere out of JSON Feed, or you convert it over
#
ajordan
... there's a section on how to convert it
#
ajordan
whoops
#
ajordan
scribenick: ajordan
#
ben_thatmustbeme
i can help clean that up in the minutes ajordan
#
ajordan
tantek: great work ben_thatmustbeme on JF2, in particular in finding a profile for JF2 that gets it very close to JSON Feed while keeping it generic AFAICT
#
ajordan
... to the point where essentially it's mostly a property renaming conversion
#
ajordan
... as sandro pointed out this is mostly just a few lines of code
#
ajordan
... generally I think this is an excellent approach to take to kinda bring add'l efforts into interop with our specs
#
sandro
q+ to ask about jf2->html & media type
#
Zakim
sees sandro on the speaker queue
#
ajordan
... we see where you are, we specify things in the direction you're talking about, and we specify how to interop.
#
ajordan
... I really like us saying this publicly
#
ajordan
... don't read issue 49 on JF2 right now, but basically it's a massive flamewar
#
ajordan
s/JF2/JSON Feed/
#
ajordan
... where someone said "here's how to fix your spec" instead of trying to work with them
#
Zakim
sees sandro on the speaker queue
#
ajordan
... I think ben_thatmustbeme's approach is better in the long term and builds community better
#
tantek
ack sandro
#
Zakim
sandro, you wanted to ask about jf2->html & media type
#
Zakim
sees no one on the speaker queue
#
ajordan
sandro: I haven't really been paying attention to JF2 since it didn't seem to matter in the way I saw the universe until recently
#
ajordan
... is there code that converts JF2 to HTML?
#
ajordan
ben_thatmustbeme: there certainly can be? I've written some
#
ajordan
... it basically takes HTML microformats and puts it into JSON
#
ajordan
... you could go back to HTML
#
ajordan
... it's completely vocabulary-independent
#
ajordan
... the idea of doing the profile is now you have things because you say "this field'
#
ajordan
s/field'/field's `url` has to be a URL/
#
ajordan
... now it becomes much more useful
#
ajordan
... a lot of what aaronpk and ??? have been doing is using additional requirements that haven't been codified everywhere
#
ajordan
... perhaps another profile that says "this is how you represent an object"
#
sandro
application/json+jf2feed
#
ajordan
sandro: so something could have a media type something like that? if you were passing around?
#
ajordan
ben_thatmustbeme: yeah and I actually define that as the media type
#
ajordan
sandro: IndieWeb community is fine with microformats but there are lots of people who'd rather pass around JSON
#
ajordan
... this seems like a good bridge between worlds
#
ajordan
... if someone was gonna modify Mastodon to export something that interop'd with IWC stuff
#
ajordan
... the proper way would be to change the HTML
#
ajordan
ben_thatmustbeme: Mastodon already has all the markup
#
ajordan
... I can see someone using a separate service that did all that conversion for me
#
ajordan
... just make rel=alternate for this page <some-url>?convert=<this page>
#
ajordan
... then you only have to maintain one codebase cause all it does is run through the standard parsing and convert
#
Zakim
sees no one on the speaker queue
#
ajordan
tantek: ben_thatmustbeme you put in a request to publish a new JF2 WD?
#
ajordan
... my next question is the change log
#
Zakim
sees sandro on the speaker queue
#
sandro
q+ to suggest adding media type registration appendix
#
tantek
ack sandro
#
Zakim
sandro, you wanted to suggest adding media type registration appendix
#
Zakim
sees no one on the speaker queue
#
ajordan
... Security Considerations is good
#
ajordan
sandro: do you want to go ahead and add the media type registration information into this section? that seems reasonable
#
ajordan
application/json+jf2feed
#
ajordan
s/application/... application/
#
ajordan
... there's an example of how to use it, but there isn't the thing to register it with IANA
#
ajordan
tantek: if you look at ActivityStreams I believe that has a registration for a similar media type
#
ajordan
... application/json+as2?
#
ajordan
... probably a good place to copy stuff from
#
ajordan
sandro: actually +json goes on the end
#
ajordan
... activity+json
#
ajordan
ben_thatmustbeme: I thought the order didn't matter?
#
ajordan
sandro: I think the order matters very much
#
ajordan
tantek: I think it's just an opaque string and any introspection of that string is just convention?
#
ajordan
... probably an RFC about it
#
ajordan
sandro: I think there's an RFC about +xml
#
Loqi
sandro has 43 karma in this channel (50 overall)
#
ajordan
... if it ends in +xml you can parse it as XML
#
ajordan
... probably one for JSON too
#
ajordan
tantek: good catch, don't want multiple, possibly malformed MIME types
#
ajordan
tantek: would you be okay publishing that working draft? with an Appendix and such?
#
ajordan
tantek: sandro does this sound good to you to publish a new WD with the changes you requested?
#
tantek
PROPOSED: Publish new jf2 WD including changes requested to fix content-type and add an appendix for the IANA registration of the application/jf2+json content-type
#
tantek
zakim who is here?
#
tantek
zakim, who is here?
#
Zakim
Present: ajordan, sandro, ben_thatmustbeme, tantek, rhiaro
#
Zakim
... rhiaro, astronouth7303, cwebber2, sandro, Gargron, mattl, DenSchub, trackbot, csarven, nightpool, raucao, jet, bigbluehat, dwhly, bitbear, lambadalambda, Loqi
#
Zakim
sees on irc: ajordan_, Zakim, RRSAgent, tantek, jankusanagi_, KjetilK, ajordan, saper, wilkie, tcit, ben_thatmustbeme, aaronpk, MMN-o, jaywink, bwn, sknebel, albino, saranix,
#
tantek
RESOLVED: Publish new jf2 WD including changes requested to fix content-type and add an appendix for the IANA registration of the application/jf2+json content-type
#
tantek
agenda?
#
Zakim
sees 1 item remaining on the agenda:
#
Zakim
1. interop [from tantek]
#
ajordan
tantek: CG chairs aren't here so let's go to interop
#
tantek
topic: interop
#
ajordan
sandro: today I was thinking interop between Mastodon and IWC sites
#
tantek
is hearing a bunch of voiping
#
ajordan
... what needs to happen to make that work?
#
ajordan
... obviously there's a bunch of stuff around Webfinger that ben_thatmustbeme and I have been talking about
#
tantek
not sure if it is on my end or the network or ?
#
sandro
- webfinger
#
ajordan
... without necessarily going into that what are the major ones
#
tantek
as long as ajordan can hear clearly we're probably good :)
#
ben_thatmustbeme
q+ to talk about various parts
#
Zakim
sees ben_thatmustbeme on the speaker queue
#
ajordan
tantek you talking about the weird beeping? I heard it a minute ago but seems to be fixed
#
tantek
ack ben_thatmustbeme
#
Zakim
ben_thatmustbeme, you wanted to talk about various parts
#
Zakim
sees no one on the speaker queue
#
ajordan
... salmentions, I get lost as to what they're used for
#
ajordan
tantek that?
#
ben_thatmustbeme
not sure why my mic isn't working
#
ajordan
sandro: because someone asked you a question, that's why your mic isn't working?
#
ajordan
"am I muted?"
#
Loqi
[tantek] #24 add a subset algorithm for Response Type Discovery
#
ajordan
ben_thatmustbeme: starting with IndieWeb being able to read from Mastodon
#
ajordan
... for context
#
ajordan
... if an IndieWeb site replies to someone on Mastodon they can read any post for the context of where they were
#
ajordan
... the piece that's missing there is if an IndieWeb site replies to Mastodon, they're gonna send a Webmention to Mastodon and not find an endpoint
#
ajordan
... Mastodon just needs a working Webmention endpoint that would take in comments on their posts from outside
#
tantek
and that's where Mastodon will need Response Type Discovery to turn the Webmention into a reply, like, repost
#
ajordan
... the other biggest limitation is being able to reply to something that's not on Mastodon
#
ajordan
... you have no way to reply to "a URL"
#
ajordan
sandro: can a Mastodon user even see anything outside?
#
ajordan
ben_thatmustbeme: it seems they can if you add certain bits to your website?
#
ajordan
... seems that Mastodon only gets posts via WebSub and ???
#
ajordan
... I haven't tried subscribing to a non-Mastodon instance and then replying to it to see if you even can reply
#
ajordan
... the GitHub issues seemed to indicate you _could_ if it had a Salmon endpoint? and if that's there it should show up as they're able to reply to it?
#
ajordan
... right now you can just "mention" someone which is obviously missing
#
tantek
q+ to note or adding Webmention discovery as an option / fall back if Salmon is missing
#
Zakim
sees tantek on the speaker queue
#
ajordan
... and sending Webmentions when they do that I guess would instead be over Salmon
#
ajordan
sandro: it sounds like if we're gonna change this on the Mastodon side one would have to add basically h-feed parsing
#
ajordan
... and Webmention
#
ajordan
... into Mastodon
#
ajordan
ben_thatmustbeme: I think Mastodon is Ruby right?
#
ajordan
... so I did rewrite the entire Ruby mf2 parser
#
ajordan
... it's much more stable, should do everything they need
#
ajordan
... it's even already included as a dev dep, because it's used for the testing
#
tantek
Mastodon already has the mf2 parser in core for testing?
#
ajordan
sandro: so we have no idea at this point whether they're amenable to adding these things
#
ajordan
... we could add them to an instance
#
ajordan
... upgrading decentralized systems is so hard... you gotta get everyone on board
#
ajordan
ben_thatmustbeme: getting everyone in the same room is tricky too
#
ajordan
tantek: seems like a proof of concept would be nice to show usefulness
#
ajordan
sandro: yeah having it on some instances and then sending patches seems useful
#
ajordan
... sometimes devs want to be involved early on and sometimes they want to wait
#
ajordan
tantek: ben_thatmustbeme have you filed issues on Mastodon based on this analysis?
#
ajordan
... since you've already done a bunch of work getting the mf2 there
#
ajordan
ben_thatmustbeme: I started on Micropub support
#
ajordan
... seems like it's an easier piece to tackle and avoids a lot of this stuff since it's just client to server
#
ajordan
... other than that no
#
tantek
ack tantek
#
Zakim
tantek, you wanted to note or adding Webmention discovery as an option / fall back if Salmon is missing
#
Zakim
sees no one on the speaker queue
#
ajordan
sandro: it'll only participate in sites that offer Salmon, but one would argue there's a case for Salmon and Webmention
#
tantek
because Sandro already said it
#
ajordan
... they don't want people to comment on dead sites
#
ajordan
... this brings me back to "what is Salmention for"?
#
ajordan
ben_thatmustbeme: Webmention simply says when you create a post you gotta notify who you reference
#
ajordan
... if I reply to you my code notifies your endpoint
#
ajordan
... if someone responds to me they're gonna notify me but it never gets back to you
#
ajordan
... if you want to know the full thread you don't have that info
#
ajordan
sandro: it would if A is the first post, B is a reply to that, and C is a reply to that
#
ajordan
... C doesn't get back to A
#
ajordan
... C notifies B via Webmention
#
ajordan
ben_thatmustbeme: you've just defined salmention
#
ajordan
... when you get an update, send a Webmention again
#
ajordan
did I get that right ben_thatmustbeme?
#
ajordan
sandro: ???
#
ajordan
tantek: I think that's the part that's different
#
ajordan
... there's a Webmention CRUD protocol which is for updates to your post (stuff that you wrote)
#
ajordan
... salmention expands that and specifies how and when to send mentions for stuff you receive to your post
#
ajordan
sandro: through a strange lens
#
ajordan
... when you update a page, you send all the mentions on the page
#
ajordan
... I would say salmention is "when there is a reply, you should link to it from your page too, everything else follows"
#
ajordan
tantek: when the post initially sends out Webmentions, it has no responses yet
#
ajordan
... it's a noop
#
ajordan
sandro: when B is created, it sends a reply to A
#
ajordan
... when C is created, it's gonna send a mention to B
#
ajordan
... when B gets that Webmention from C it's gonna update the page to include "C is a reply to me"
#
ajordan
... because it's changed its content it's going to send a mention to A (and C)
#
ajordan
... because it's been modified
#
ajordan
ben_thatmustbeme: I always interpreted it as "webmention says you _may_ send a webmention again if you send updates"
#
ajordan
... you should if you update your own content
#
ajordan
... you may if you receive from others
#
ajordan
... salmention basically says "you must if you receive from others"
#
ajordan
sandro: how do you detect that salmentions are being implmented by peers?
#
ajordan
ben_thatmustbeme: you'll be receiving webmentions for post updates
#
ajordan
sandro: which as I read the webmention spec you already should do
#
ajordan
... if you're changing a SHOULD to a MUST that's undetectable
#
ajordan
tantek: so here's the link in webmention where it mentions salmentions(?)
#
ajordan
... I think the difference here sandro is, is a webmention sent in response to receiving a webmention
#
ajordan
... which is why it's different for implementations
#
ajordan
... specifically that knowledge of "oh I've got other stuff that's depending on me"
#
ajordan
sandro: I don't get it, it seems like you'd have to do that anyway if you're being a good webmention citizen
#
ajordan
... maybe I understand webmention differently somehow
#
ajordan
tantek: reading webmention it does allow impl'
#
ajordan
s/impl'/impl's to send update only when the content changes/
#
ajordan
... that's intentional
#
ajordan
... you're expanding requirements
#
ajordan
... sending webmentions at all is something implementations aren't required to do
#
ajordan
... they could send mentions for some links but not all and still be conformant
#
ajordan
... sending mentions for stuff you link to but not stuff in comments seems okay
#
ajordan
... e.g. "I don't want to send random links people put in my comments"
#
ajordan
... salmention _does_ require that
#
ajordan
ben_thatmustbeme: it does seem that a lot of that stuff made it in the webmention spec
#
ajordan
ben_thatmustbeme can you copypasta that linik?
#
ajordan
tantek: there's sending a salmention, which is sending a webmention in response to sending a webmention
#
ajordan
... then there's receiving a webmention for something you yourself sent a webmention too
#
ajordan
ben_thatmustbeme: there's the additional piece where receiving a webmention might not just be an update to the content
#
ajordan
... if you have links in a comment thread, you may not send webmentions
#
ajordan
sandro: so this only comes up in a situation where there's A B C and D?
#
ajordan
tantek: no it comes up in A B and C
#
ajordan
... salmentions solve the SWAT0 problem
#
ajordan
... A posts a photo of B
#
ajordan
... tags B in the photo
#
ajordan
... C comments on the photo
#
ben_thatmustbeme
ajordan++ for taking a hard day of scribing
#
Loqi
ajordan has 4 karma
#
tantek
is hearing very little now
#
tantek
hears quiet for ~20s
#
sandro
is talking
#
tantek
hopes ajordan heard sandro
#
ajordan_
tantek: if B comments on A, B sends a webmention to A
#
ajordan_
will wait based on sandro's comment
#
ajordan_
scribenick: ajordan_
#
ajordan
... as a result B gets a salmention that there's a comment on the photo
#
ajordan
... that's the usecase that inspired the protocol
#
ajordan
sandro: so A would get notified that B had changed
#
ajordan
... if B included that content from C
#
ben_thatmustbeme
If a response to the source URL is shown on the source URL page (e.g. as a comment), then sender should treat that as an update of the source URL and re-send any previously sent Webmentions.
#
ajordan
tantek: B doesn't have any content
#
ajordan
... just happens to be in A's post
#
ajordan
sandro: B is a user who's in A's post?
#
ajordan
tantek: correct
#
ajordan
... C comments on A's post
#
ajordan
sandro: in response to that A changed their content to show a link to that comment?
#
ajordan
... the webmention requirement at that point is that A send a webmention again and that includes B
#
ajordan_
tantek: assumption is impl's will do the minimum to get it to work. salmention expands requirements
#
ajordan_
*sigh* things are coming through from minutes ago
#
Zakim
sees ajordan_ on the speaker queue
#
tantek
heads-up we are 10+ min over - if anyone has to go, we can close the call.
#
ajordan_
is okay staying
#
ajordan_
will have to step away for ~5 minutes in 20m though
#
tantek
extends telcon to 11:30 PDT
#
ajordan_
tantek: sandro from your description/reading of webmention and trying to see things from your perspective
#
ajordan_
... I see how a lot of what salmention is trying to solve is at least present in the spec
#
ajordan_
... if not completely explicit
#
ajordan_
... webmention is already a REC
#
ajordan_
... one q I'd like to ask is: would adding more details to the sections you've cited just to make it clear that that's the expectation
#
ajordan_
... is that the kind of thing we could do an errata for? would we need webmention 1.1?
#
ajordan_
... I'm asking you sandro since you're the one that pointed out you see this in the existing spec
#
ajordan_
sandro: whether there's an eratta or 1.1 has to do with how other people see it
#
ajordan_
... if other people see it as being there we could do eratta
#
ajordan_
eratta or erratta?
timbl joined the channel
#
Zakim
sees ajordan_ on the speaker queue
#
tantek
ack ajordan_
#
Zakim
sees no one on the speaker queue
#
ajordan_
tantek: I vaguely recollect there being something in the test suite about this?
#
Zakim
sees ajordan_ on the speaker queue
#
tantek
ack ajordan_
#
Zakim
sees no one on the speaker queue
#
ajordan_
tantek: so if you scroll down to receiver tests
#
ajordan_
... and sender tests
#
ajordan_
... there are tests for salmention extensions
#
ben_thatmustbeme
that was just a check box as i remember
#
ajordan_
... so it'll test salmention stuff though as sandro pointed out there seems to be overlap
#
ajordan_
... there are a couple impl's from outside the WG
#
ajordan_
sandro: maybe people implemented it and didn't even know they were implementing it then
#
ajordan_
tantek: we definitely don't have time to revise the spec by the end of this month
#
ajordan_
... but we'll find out in 1-2 weeks if we get the charter extension
#
ajordan_
... one thing I've been advocating for is that any WG that gets extended do maintenance on their specs
#
ajordan_
... if there are missing pieces we can cross that bridge when we get there
#
ajordan_
... file issues accordingly against webmention
#
ajordan_
... if we do need to add a few words here or there to clarify terminology we can make a judgement call as to whether it's errata or 1.0.1 or 1.1
#
ajordan_
... sandro can double-check this but I believe that would be within the charter's scope?
#
ajordan_
... so if we got extended we'd be allowed to do that. though if we did 1.1 we'd be required to go through the full WD->CR cycle
#
Zakim
sees no one on the speaker queue
#
ajordan_
sandro: I believe that'd be within scope but let's deal with that later
#
ben_thatmustbeme
sandro++ good discussion
#
tantek
sandro++
#
Loqi
sandro has 44 karma in this channel (51 overall)
#
ajordan_
sandro++
#
Loqi
sandro has 45 karma in this channel (52 overall)
#
tantek
ajordan++ for scribing an extra long telcon!
#
Loqi
ajordan has 5 karma
#
ben_thatmustbeme
loqi doesn't like me anymore huh?
#
tantek
trackbot, end meeting
#
trackbot
is ending a teleconference.
#
trackbot
Zakim, list attendees
#
Zakim
As of this point the attendees have been ajordan, sandro, ben_thatmustbeme, tantek, rhiaro
#
trackbot
RRSAgent, please draft minutes
#
RRSAgent
I have made the request to generate http://www.w3.org/2017/06/06-social-minutes.html trackbot
#
trackbot
RRSAgent, bye
#
RRSAgent
I see no action items
#
ajordan
sorry I left with 5 seconds' notice
#
ajordan
's mom is leaving for a week
#
ben_thatmustbeme
sandro: should I have announced https://indieweb.org/YAMLFeed as well? :P
#
ajordan
hey if I said things in IRC should I edit them to be <ajordan> or <scribe>?
#
ajordan
ben_thatmustbeme: oh my god
#
ben_thatmustbeme
generally i do
#
ben_thatmustbeme
ajordan: hahahaha
#
Loqi
ben_thatmustbeme: lol
#
tantek
waits for the inevitable yf2
#
ben_thatmustbeme
I still like the idea of EDIfeed
#
ben_thatmustbeme
no actual spec, just a corporate looking website with info on how to become a gold member
#
ben_thatmustbeme
and a contact form for pricing
#
astronouth7303
hahaha +1 edifeed
#
astronouth7303
YAMLFeed is clearly superior, and backwards compatible. All JSONFeed is automatically valid YAMLFeed
#
ben_thatmustbeme
astronouth7303: if I can make the spec work that way, i totally will
#
ben_thatmustbeme
definitely going to write it up eventually
#
ajordan
I wonder if there's a spec that defines how to "expand" JSON to YAML
#
cwebber2
what'd I miss
#
astronouth7303
ben_thatmustbeme: oh, is it more than just "take JSONFeed and run it through a YAML serializer"?
#
ajordan
so tantek maybe you don't need yf2 if you just run jf2 through that
#
ajordan
you could take perfectly valid JSON and "expand" it to the "prettier" form ;)
#
ajordan
but on the other hand
#
Zakim
sees but on the speaker queue
#
ajordan
Zakim: q?
#
ajordan
Zakim, q?
#
Zakim
I see but on the speaker queue
#
ajordan
ack but
#
Zakim
but, you wanted to comment on the other
#
Zakim
sees no one on the speaker queue
#
aaronpk
Zakim++
#
Loqi
zakim has 1 karma in this channel (2 overall)
#
ajordan
what I *meant* to say was on the other hand:
#
ajordan
why would you convert JSON Feed to YAMLFeed when you could just invent an entirely different incompatible spec?
#
Zakim
leaving. As of this point the attendees have been ajordan, sandro, ben_thatmustbeme, tantek, rhiaro
#
ajordan
goes back to editing minutes
#
ben_thatmustbeme
hey, there is implementation experience, i need to look at what fields those two existing implementation use
#
ajordan
!tell tantek you forgot to answer saranix's question about why W3C switched to GitHub issues, and from what
#
Loqi
Ok, I'll tell them that when I see them next
#
ajordan
ben_thatmustbeme: isn't one of the implementations yours?
#
ben_thatmustbeme
no, not on that list
#
ben_thatmustbeme
mine isn't public yet
#
ben_thatmustbeme
saranix: he did mention on the call "oh i'll have to reply to saranix after this call"
#
ben_thatmustbeme
good catch ajordan
#
saranix
thx
#
saranix
ajordan++
#
Loqi
ajordan has 6 karma
#
ajordan
ben_thatmustbeme: only noticed it because I have my head buried in the minutes lol
#
ajordan
with all the ordering and <ajordan>s fixed
#
ajordan
sighs *deeply* at his IRC setup's shenanigans
#
ben_thatmustbeme
can you make sure the #resolution link works as you edit it too
#
ben_thatmustbeme
oh, nevermind
#
ben_thatmustbeme
hadn't seen your line about them being up yet
#
ajordan
which link?
#
ajordan
ok, thx
#
ben_thatmustbeme
the tool doesn't actually put IDs on the resolutions
#
ben_thatmustbeme
but for publishing a draft you need to link to the resolution, so its nicer to have https://www.w3.org/wiki/Socialwg/2017-06-06-minutes#resolution02 work correctly
#
ajordan
ah gotcha
#
ben_thatmustbeme
then every once in a long while i go an update this page
#
ben_thatmustbeme
for those that want to search through all past resolutions
#
ben_thatmustbeme
sometimes i leave out things like approval of minutes, as its not too important
#
ajordan
yeah ben_thatmustbeme I'm already there
#
ajordan
leaving out approval of minutes
#
ben_thatmustbeme
let me know when done, we missed a few meetings on that page
#
ben_thatmustbeme
and skipping some would be way worse than skipping them all
#
ben_thatmustbeme
as i wouldn't know which are missing
#
ajordan
I'm going chronologically
#
ben_thatmustbeme
awesome, thanks
#
Loqi
ajordan has 7 karma
#
ajordan
based on the last update
#
ajordan
if there was a skipped meeting before the last item on the page I didn't catch it
#
ben_thatmustbeme
i think i got them all
#
ben_thatmustbeme
i usually end up doing them in large batches
#
ajordan
*sigh* wtf MediaWiki
#
ajordan
it's redlinking the minutes link on today's meeting page even though they're clearly there
#
ajordan
grumbles
#
ben_thatmustbeme
on what page?
#
ajordan
it's just cosmetic
#
ajordan
anyway Socialwg/resolutions is up to date :)
#
ben_thatmustbeme
funky, if you edit and save the page (with exactly the same text) it fixes that
#
ajordan
technology
#
ajordan
amirite
#
ajordan
technology--
#
Loqi
technology has -1 karma
#
ben_thatmustbeme
btw, nice job keeping up with the logs, i thought it would be me mostly minuting. be glad you aren't doing a F2F
#
ben_thatmustbeme
if you minute those, you usually end up taking a chunk of several hours at a time
#
ajordan
lol thx
#
ajordan
yeah F2F sounds *terrible* honestly
#
aaronpk
it can be fun
#
cwebber2
minuting the f2f?
#
ajordan
you've been minuting a lot recently, we all appreciate that
#
cwebber2
F2F is itself fun
#
ben_thatmustbeme
but do know this, as scribe you are the only person who can stop the chair
#
ben_thatmustbeme
yes, the F2Fs are fun indeed
#
cwebber2
minuting f2f's can be a bit harder because it's higher energy, but also easier because you can tell who the speaker is :)
#
ajordan
hahahaha
#
Loqi
ahahaha
#
cwebber2
though having to scribe timbl is a challenge :)
#
ben_thatmustbeme
very hard when it gets to super technical areas
#
cwebber2
just a very fast speaker
#
cwebber2
good stuff, just very fast
#
ajordan
lol yeah cwebber2 you missed it at the end of the call
#
ajordan
I was like
#
ben_thatmustbeme
cwebber2: you are pretty hard to scribe at times too
#
cwebber2
ben_thatmustbeme: ha, I don't doubt it...
#
ajordan
"maybe do a Find on your names in the minutes since I'm really not sure I attributed things right"
#
cwebber2
I just minuted another group I'm in for the first time
#
cwebber2
and I was like oh man, I forgot what it's like to recognize none of the voices
#
ajordan
me for the past 2 months
#
ajordan
not sure I could've scribed with everyone here ;)
#
cwebber2
ajordan: actually an F2F helps there
#
ajordan
cwebber2: what group was that?
#
cwebber2
in the non-f2f meetings, it's easier to remember
#
ben_thatmustbeme
the webex UI used to let you edit the names, so i would just edit names as people came on
#
cwebber2
the verifiable claims working group
#
ben_thatmustbeme
and so i could just look where the speaker icon was going nuts
#
ajordan
gotcha
#
ajordan
oh yeah that's smart ben_thatmustbeme
#
ben_thatmustbeme
but it doesn't do that (on the web at least) any more
#
ben_thatmustbeme
at least i couldn't see it
#
ben_thatmustbeme
that is one of the advantages to mumble certainly
#
ajordan
I tried WebEx once and noticed that no one did video so it didn't really matter, and I closed the tab and used my phone since it was easier
#
ajordan
maybe I'll switch
puckipedia joined the channel
#
ajordan
(or not)
#
cwebber2
hey puckipedia
#
puckipedia
hello
#
ben_thatmustbeme
ajordan: most of the people just call in, i'm usually one of only one or two that don't
#
ajordan
ben_thatmustbeme: ah ok
#
ajordan
that's what it seemed like :P
#
ajordan
heya puckipedia!
#
puckipedia
well. my ActivityPub implementation seems to almost check all the boxes
#
ajordan
puckipedia: link?
#
cwebber2
puckipedia: of the implementation report? that's great
#
puckipedia
yeah. Haven't implemented uploading media, and I haven't yet implemented any server->server authorization
#
ajordan
goes afk for ~20m
#
puckipedia
it's not yet public, though. I do have it running publicly for some tests (I have built in OStatus federation)
#
puckipedia
I'm very happy ActivityPub requires IDs for basically everything
#
puckipedia
so far the implementation report looks like this https://gist.github.com/puckipedia/23b109c5ffafa522ec2bb49cee4c9c7b
#
jaywink
really hopes server to server authorization doesn't become a thing and instead authorship is validated in other ways (=signatures or remote lookup). Lots of good nice use cases ruined when servers don't just look at the payload but require some kind of auth. It doesn't even do verification of content authorship at all, so that needs to be done anyway.
#
jaywink
btw, hey puckipedia \o>
#
astronouth7303
i keep thinking that applying HTTP signatures to S2S comms makes a bunch of security much easier while still allowing web clients
#
astronouth7303
especially since i think there's several kind of things that don't have remote lookups
#
jaywink
it completely ruins relaying content though. And you can't verify content owner from a third server using S2S auth at all. And that is a core use case in activitypub ;)
#
astronouth7303
mhm
#
jaywink
so the author would still need to be verified
#
astronouth7303
oh, and i would feel much better about lookups if I knew who was asking
#
astronouth7303
(limited audience, DMs, etc)
#
jaywink
the A posts to B and C who don't know each other, so when C replies, A needs to deliver to B
#
astronouth7303
right
#
jaywink
lookups auth would work fine for all cases, but delivery would imho be problematic
#
astronouth7303
*most cases
#
astronouth7303
like i said, i think there's some activities/objects that are ephemeral/don't get URLs. But I also need to read the specs again.
#
jaywink
S2S auth also kills the case of having relay servers deliver content on behalf of other servers. This is something that is in the Diaspora world, though it's not in the core itself. Third party servers handle content delivery to make it easier for new servers to get interesting stuff.
#
jaywink
(I mean S2S delivery)
#
jaywink
delivery auth, sigh... typos ;)
#
astronouth7303
I advocate the use of HTTP signatures of all S2S, so you can verify who is making requests. You can apply it more tactfully for pushes (if it's the provider that owns the originating content or otherwise would be reasonable that they'd do the pushing)
#
astronouth7303
but if you don't have the data at all, you're hands are tied, and you can't even make policies
#
astronouth7303
and i consider it essential for non-push cases
#
astronouth7303
yeah, if foo.com comments on something handled by bar.com, and spam.com is subscribed to notifications, you should expect to receive foo.com's stuff by way of bar.com
#
astronouth7303
but if i'm spam.com and i get something from foo.com about bar.com from stranger.com, i should be viewing that with suspicion
#
astronouth7303
*by way of stranger.com
#
jaywink
but in the first case spam.com should never trust what foo.com says about stuff bar.com has written
#
jaywink
that would allow foo.com to write anything for bar.com :)
#
astronouth7303
yeah
#
jaywink
that is why signatures or lookups are a must even if you implement whatever kind of delivery auth
#
astronouth7303
it's probably a good policy that pushed content is verified when possible
#
jaywink
prefers the stronger signatures
#
astronouth7303
i also think that LD signatures have a place, but I'm not sure what it is? Do you save it for client signatures? Can you have both server and client signatures? what about web clients?
#
cwebber2
http signatures are an easier spec to implement than linked data signatures
#
jaywink
totally see the case for auth on fetching DM's for example
#
cwebber2
it's also useful to remember when you want signatures differently on both of these
#
cwebber2
http signatures are more useful for transient/ephemeral transactions
#
cwebber2
esp anything api related
#
jaywink
yes but http signatures doesn't cover all use cases ;)
#
cwebber2
but if you want something long lived
#
cwebber2
that's when you want something attached to the content
#
jaywink
I mean, it really doesn't
#
cwebber2
like linked data signatures or etc
#
astronouth7303
when (if?) i implement my own server, i plan on just doing http signatures on everything
#
astronouth7303
just make it part of the requests library
#
jaywink
activitypub is great but I think it's taking a huge risk at failing becauise everyone will just implement whatever they want ;)
#
jaywink
nothing might be compatible in the end
#
astronouth7303
yeah, there's some really important issues that are left open
#
astronouth7303
such as S2S auth and security
#
astronouth7303
and federated identity
#
jaywink
we are discussing security here which should be the main concern that is locked down so everyone can implement it in a secure way
#
cwebber2
jaywink: the S2S and security things are the big things left open, I agree
#
cwebber2
jaywink: but you know I agree ;)
#
jaywink
yes :D
#
astronouth7303
"locked down" is such a terse way of summarizing the huge tangled mess of making an open-access federated system secure
#
jaywink
I realize the problems but tbh the problem seems everybody has their own favourite thing and no one wants to compromise
#
cwebber2
jaywink: that's half of the problem
#
cwebber2
jaywink: the other half is that the signatures stuff haven't actually landed as things that can be easily recommended
#
astronouth7303
are there proposals besides HTTP signatures and LD signatures?
#
cwebber2
astronouth7303: you could look at JWT signatures but iirc there's no normalization algorithm provided necessarily
#
cwebber2
and you'd have to store the data received/sent exactly as received/sent... as a string
#
astronouth7303
ewww
#
astronouth7303
and also, we're not using any of the rest of JWT anywhere, are we?
#
cwebber2
not really
#
astronouth7303
add to the list of essentials: C2S auth
#
astronouth7303
kind of an important piece if you want client software to work with multiple providers
#
puckipedia
I think that's semi-covered already
#
jaywink
didn't the spec recommend http auth for c2s and ld signatures for s2s?
#
cwebber2
jaywink: if you take that route ;)
#
astronouth7303
that is NOT how i would have ordered that?
#
puckipedia
the Actor object has a oauthAuthorizationEndpoint and oauthTokenEndpoint, which can be used to implement OAuth 2
#
cwebber2
the spec, unfortunately, provides two "paths"
#
cwebber2
the oauth 2.0 and bearer-tokens-heavy path
#
cwebber2
and the http signatures and linked data signatures path
#
jaywink
which will risk no compatible decentralized software stacks :(
#
astronouth7303
last i read the AP spec, it was just suggestions, and the oauth endpoints were on the chopping block
#
astronouth7303
also, if oauth is the "true path", there has to be some normalization about things like scope and a few other things
#
cwebber2
and both have their own problems: oauth 2.0 is kind of a choose your own adventure and doessn't have a good signatures answer, or if it does (ie if you go full openid connect) the community doesn't agree on it necessarily
#
astronouth7303
oauth2 is somewhat vague on a few details
#
puckipedia
tbh one of the At Risk features I'd preferably see completely scrapped is the object creation without a Create Activity.
#
cwebber2
and linked data signatures and http signatures (particularly the former) don't have wide adoption and aren't 100% nailed down
#
astronouth7303
oauth2 is good enough for C2S auth.
#
cwebber2
puckipedia: don't like that one? :)
#
astronouth7303
client oauth's with server, makes requests with token
#
puckipedia
cwebber2: well, I did kinda miss the fact that Announce was suddenly an allowed Activity too
#
puckipedia
I sent an Announce to my server to test... and it was wrapped in a Create
#
astronouth7303
nothing is signed, but you have a reasonable certainty who made the request
#
cwebber2
puckipedia: yeah unfortunately it means you have to keep track of that
#
cwebber2
puckipedia: which might also get interesting with extensions :)
#
puckipedia
well, I kinda don't do JSON-LD
#
astronouth7303
puckipedia: you are in the wrong part of town
#
cwebber2
astronouth7303: no
#
cwebber2
you can just stick with the default vocabulary if you don't need extensions
#
astronouth7303
how long will that last?
#
puckipedia
I kinda think I do synchronize extensions properly?
#
aaronpk
i don't really do JSON-LD either ;-)
#
jaywink
should really read what json-ld is :D
#
aaronpk
save your energy
#
astronouth7303
i'm waiting for the first server that doesn't use the standard JSON-LD compaction algorithm
#
puckipedia
wait no, I can't really synchronize Objects if they are defined in non-default properties
#
cwebber2
really likes json-ld but also doesn't want to expend energy on arguing about it here ;P
#
puckipedia
well, there's kinda only one shitty JSON-LD implementation for C#...
#
astronouth7303
i think LD is great for this use case
#
puckipedia
which is an auto-translated Java implementation actually
#
astronouth7303
but i think any developer writing an LD consumer that doesn't actually interpret the LD markup is just running on prayers
#
wilkie
the eternal one-sided argument of this group
#
cwebber2
wilkie: :)
#
astronouth7303
of course, a lot of computer runs on prayers, so it might not be that bad
#
puckipedia
so kinda the API and everything is horrible. I kinda worked on a JSON-LD tool but I couldn't be bothered to finish it...
#
cwebber2
wilkie: hence why I said I didn't want to argue about it here ;)
#
cwebber2
also, in a certain sense
#
wilkie
cwebber2: save your energy :)
#
cwebber2
extensions *can* be done without json-ld in this group
#
cwebber2
er, without json-ld awareness
#
aaronpk
also without json-ld
#
cwebber2
since we gave the CG permission to extend the activitystreams context
#
cwebber2
I think having json-ld awareness in any robust system is a good idea
#
cwebber2
for clients in particular though, I think it's not as big a deal
#
cwebber2
probably matters more in servers.
#
astronouth7303
again, assuming all LD producers use the standard compaction algorithm
#
astronouth7303
and implement it correctly
#
cwebber2
astronouth7303: they have to according to the spec.
#
cwebber2
astronouth7303: assuming they're sending activitystreams based linked data
#
astronouth7303
and the first developer that comes along and thinks they have a better compaction algorithm?
#
puckipedia
... I swear the ActivityPub spec said that it had to be compacted
#
wilkie
there's a canonical form according to the spec, no?
#
cwebber2
puckipedia: it does
#
wilkie
json-ld's compaction is to ensure uniform transformations between, say, json and rdf
#
astronouth7303
yes, part of the JSON-LD spec is standard expansion and compaction algorithms
#
cwebber2
json-ld is the clojure of linked data
#
cwebber2
it's trying to survive worse is better by making a compromise to adapt to the world *most* people use
#
wilkie
cwebber2: that's not going to help people who instinctively don't like it, haha
#
Loqi
wilkie: lol
#
cwebber2
yeah I guess not :)
#
puckipedia
tbh the biggest issue I have with JSON-LD is that it's a pain to implement in statically typed languages, imo
#
cwebber2
puckipedia: you mean mapping the json-ld types to classes or types?
#
puckipedia
and tbh that even counts for the weird subset I currently do now
#
astronouth7303
just as true of any other generic markup system
#
puckipedia
cwebber2: currently I have a simple class that is basically a wrapper for a dictionary of lists
#
puckipedia
astronouth7303: yeah. sadly.
#
cwebber2
puckipedia: that's a fine wrapper
#
cwebber2
puckipedia: well the fact that objects can have multiple types does mean that the idea of transforming into most languages' type heirarchy systems isn't likely to work :)
#
cwebber2
hence why pubstrate and activipy don't try ;)
#
cwebber2
though!
#
puckipedia
also when reading any AP object into the database I 'flatten' it, and turn any subobject into its own object with ID etc (unless transient)
#
cwebber2
there is one place that did succeed
#
cwebber2
go figure
#
cwebber2
it was a lisp
#
puckipedia
:D
#
ben_thatmustbeme
wilkie: what is your homepage URL, wilkie.io seems to be down
#
puckipedia
it shouldn't be too hard to add JSON-LD smartness into my flattening algorithm once I can be bothered to implement it
#
cwebber2
there was a semantic web lisp thing using CLOS that was super smart about this stuff and even developed "invisible classes" in the case of an object having multiple types ;)
#
wilkie
ben_thatmustbeme: wilkie.how
#
cwebber2
that won't work either in a statically typed system ;)
#
astronouth7303
i would be looking at old-school explicit interface systems, where you have to request an interface from an object.
#
astronouth7303
cwebber2: that's exactly how i would do it in python, although i have no idea how it would deal with name collisions
#
astronouth7303
i suppose you could also do C-like function-subject stuff, too
#
cwebber2
I just wrote my own lightweight type system that knows the activitystreams heirarchy
#
puckipedia
let's build a tiny GUI to create a new Actor and then just show it to you all :)
#
cwebber2
and uses generic methods for dispatch
#
astronouth7303
cwebber2: in what?
#
cwebber2
astronouth7303: that's in Pubstrate, which is Guile Scheme
#
astronouth7303
ok
#
cwebber2
but I'll probably move ActiviPy also over to using generic methods for its dispatch system
#
cwebber2
because it's way more sensible for these things
#
cwebber2
since fusing methods to classes doesn't make sense for a situation where you're providing the types and asking people to provide their own functionality using it
#
astronouth7303
not really, no
#
cwebber2
I implemented a very weird environment and method system for ActiviPy in the current version that's out there
#
cwebber2
and... it's pretty boroque. generic functions simplify things dramatically.
#
astronouth7303
i would imagine so
#
astronouth7303
i'll have to look in to that, although i would appreciate breaking out the LD handling from the AS2 vocab?
#
astronouth7303
since I think there's other related specs built on LD?
#
ajordan
puckipedia: from my reading of the spec Announce _shouldn't_ be wrapped in a Create
#
puckipedia
I know
#
ajordan
that seems like a bug in your implementation
#
puckipedia
but it was kinda absent from the Client->Server list of activities :P
#
puckipedia
I kinda forgot to add it to the List Of Activities
#
ajordan
ah I see
#
puckipedia
but it'd be nice if the server would just refuse to accept an Activity it doesn't know, instead of blindly wrapping it in a Create
#
ajordan
cwebber2: I wonder if we should make "subtype of Activity" a link in https://w3c.github.io/activitypub/#object-without-create
#
puckipedia
(also the behavior of Undo for Announce is not really defined, I mean, I could remove it from any inboxes, but hmm)
#
ajordan
shouldn't you be able to determine whether something is an Activity based on the presence of an `actor`, `object`, etc. properties?
#
puckipedia
remembers when they accidentally put an `object` on a non-Activity
#
ajordan
if you _don't_ do that then you'll be non-conforming for third-party verbs
#
puckipedia
well, I'll probably get around to implementing proper JSON-LD
#
cwebber2
astronouth7303: yeah I should probably make it more generic than activitystreams
#
ajordan
puckipedia: re: Undo for Announce I'm not really sure what you're saying
#
cwebber2
astronouth7303: eventually I will probably extract all the json-ld stuff from pubstrate too into a linked data lib (or at least json-ld lib)
#
ajordan
where's the ambiguity?
#
ajordan
puckipedia: you also probably shouldn't need JSON-LD even for custom verbs AFAICT
#
puckipedia
well, this might be more of an implementation detail, but I guess I remove the original Announce from the inbox so it isn't shown
#
ajordan
just say "things that have an `actor` and `object` are activities". I think. cwebber2 does that seem right to you?
#
ajordan
puckipedia: yeah
#
puckipedia
that seems about right
#
puckipedia
actor | object | target | result | origin | instrument
#
ajordan
I don't see how that's an implementation dtail tho?
#
ajordan
s/dtail/detail/
#
ajordan
puckipedia: yea that's what I've been consulting
#
puckipedia
well, an Undo for a Like I just keep the original object, and just add the undo later into the inbox
#
cwebber2
ajordan: trying to remember if an activity could have a target and not an object, or not an object at all
#
puckipedia
intransitive have no object
#
ajordan
Evan would know
#
cwebber2
you're right puckipedia
#
ajordan
well every Activity MUST have an Actor
#
ajordan
am I wrong?
#
cwebber2
I think *that's* true..
#
puckipedia
I think any AS vocab item is optional?
#
ajordan
and AFAICT Actor is inappropriate "things that aren't Activities"
#
ajordan
puckipedia: but an Activity without an Actor makes no sense
#
puckipedia
that *is* true
#
ajordan
even if it's not *technically* a MUST (I don't know offhand)
#
ajordan
I'll file an issue against AS2
#
puckipedia
also I looked at Mastodon's AP implementation for a bit and... well
#
puckipedia
boosts etc point towards Activities, and the id for federated posts that are boosted point towards the internal representation, not the representation on the server it's from
#
jaywink
mastodon already has an API implementation?
#
puckipedia
a tiny bit
#
puckipedia
and only read-only
#
puckipedia
and, at least imo, not yet usable for federation with full AP servers
#
puckipedia
oh and the outbox won't load on people with more than a few thousand posts
#
puckipedia
https://github.com/tootsuite/mastodon/issues/3439 might be a sliiiight DoS issue
#
Loqi
[puckipedia] #3439 ActivityPub: Outbox loads all posts into the cache, sometimes errors out
#
cwebber2
puckipedia: oops, are they not using as2 pagination?
#
puckipedia
they are
#
jaywink
I'm really waiting for their S2S implementation. I think for me it's a make or break detail how they implement.
#
puckipedia
but they load all the public posts into the redis cache, then only use a small subset
#
cwebber2
oh strange
#
puckipedia
like, the first and last, to determine first and last page IDs
#
Loqi
[puckipedia] #3438 ActivityPub: outbox pages contain unordered sets of activities
#
puckipedia
(yes, OrderedCollectionPage with normal `items` property)
#
cwebber2
going afk for a bit to focus
#
puckipedia
bye
#
ajordan
see ya!
#
Loqi
[strugee] #422 Q: how to determine whether an arbitrary object is a subclass of Activity?
#
astronouth7303
does LD have subclasses? or just interfaces?
#
ajordan
no idea
#
ajordan
has spent zero time learning JSON-LD
#
puckipedia
there's subclasses, I think?
#
astronouth7303
i've spent some, but i mostly just understand it as "remember RDF? Yeah, it's in JSON now"
#
puckipedia
wellllllll
#
puckipedia
AS2 defines subclasses, but JSON-LD is just types and properties and there's no mapping to which property in which type
#
astronouth7303
i feel like AS2 should have interfaces (types) and no inheritence, just extensions
#
astronouth7303
(ie, all Foo must also be of type Activity)
#
ajordan
various snippets from https://duckduckgo.com/?q=json-ld+subclasses seem to imply that there are ;)
#
astronouth7303
i'll have to actually read LD, then
#
astronouth7303
in my copious free time
#
astronouth7303
maybe i should become a monk and dedicate myself to FOSS. i would have much more time to work on this, then
#
ajordan
that's basically what I'm doing right now tbh
#
astronouth7303
problem is capitalism
#
ajordan
is on a gap year between high school and college
#
ajordan
it's real nice
#
puckipedia
heh, I've got holiday after high school finals
#
astronouth7303
yeah.... i'm about a decade too late for my gap year
#
puckipedia
I am thinking of getting a holiday job though
#
ajordan
if I didn't have this time my blog would literally consist of ugly Apache directory listings
#
ajordan
astronouth7303: never too late ;)
#
puckipedia
okay, my ActivityPub implementation is ready for semi-testing https://lol.puckipedia.com/auth/login -
#
puckipedia
just type in any username/pass
#
astronouth7303
ajordan: capitalism
#
puckipedia
then you can create an Actor, and get a OAuth2 token for it (this is because this is the least code for testing)
#
ajordan
astronouth7303: yea, I feel. I hope you find some time/money though, it's really nice to take a sabbatical and focus on personal stuff
#
ajordan
(shameless plug) the Recurse Center is particularly great for this: https://recurse.com
#
ajordan
puckipedia: I love your url
#
ajordan
> lol.puckipedia.com
#
puckipedia
I had to put it on a subdomain with https so I could test federation with Mastodon etc...
#
astronouth7303
it's on my todo list to write a single-user server for myself. But i also need to read some game rules, and finish a rewrite i'm doing for another project
#
puckipedia
first thing in mind is 'lol'
#
puckipedia
astronouth7303: tbh I kinda built this server partially for myself
#
astronouth7303
oh, and i like having this thing called a social life
#
puckipedia
that's why the users and actors are seperated. one login account can have more than one actor linked
#
astronouth7303
puckipedia: my goal is to make "https://astro73.com/" my mastadon handle
#
puckipedia
I... don't think that's possible
#
astronouth7303
users are referred to by URL, right?
#
puckipedia
I read through mastodon rules, and the handle is always @[preferredUsername]@[domain]
#
Loqi
Aaron Parecki
#
aaronpk
OStatus never required usernames
#
aaronpk
Webfinger doesn't even require usernames
#
astronouth7303
are they using webfinger naming?
#
puckipedia
yeah for webfinger
#
astronouth7303
GUYS WE NEED TO NORMALIZE: EMAIL OR URL STYLE USER HANDLES??????
#
astronouth7303
BECAUSE THIS IS FREAKING REDICULOUS AND JUST LOOKS BAD
#
puckipedia
OStatus can do both (With one sidenote for Quitter and '/user/' in your path)
#
puckipedia
yes. Quitter can't process /user/ in a user's path because it'll process it as a special Quitter user path
#
astronouth7303
...
#
astronouth7303
this is basic stuff.
#
puckipedia
yes.
#
puckipedia
it was a PITA to find this even
#
astronouth7303
and looks really really bad
#
puckipedia
it just refuses to find someone with /user/ in the path that isn't properly formatted
#
astronouth7303
i don't strongly care (although I think that URL pointing at the agent is the simpler approach) as long as we have consensus
#
puckipedia
astronouth7303: yeah. URL for agent seems to be good imo
#
puckipedia
especially because that's a proper AP ID too
#
aaronpk
my main issue with user@host identifiers is that email kind of owns that format and unless your user@host identifier is also routable via smtp it's going to confuse a lot of people
#
astronouth7303
aaronpk: probably
#
astronouth7303
is this something that we can discuss at the CG tomorrow?
#
puckipedia
yeah. and having e.g. host/user point towards a human-readable HTML view
#
ajordan
astronouth7303: I feel
#
ajordan
puckipedia: well, I wonder
#
ajordan
wouldn't it just be <null string>@astro73.com?
#
astronouth7303
ajordan: if we're going email style, possibly
#
astronouth7303
although i suspect i'll break some users and servers with "@astro73.com"
#
puckipedia
basically, @([a-z0-9_]+(@[a-z0-9\.\-]+[a-z0-9]+)?)
#
puckipedia
aka you have to have at least one char for it to be a mention
#
astronouth7303
and i haven't read the webfinger spec, so i don't know how much it aligns with the email address RFC
#
astronouth7303
because hahahahahaha fully-conforming email address validation
#
Loqi
astronouth7303: lol
#
puckipedia
I kinda keep the preferredUsername as a mapping to webfinger, so OStatus federation uses the preferredUsername
#
puckipedia
oh, and things I was wondering (maybe with an extension): Mastodon uses the atom entry summary as a content warning, which I currently translate into AS2 summary. Probably most native
#
puckipedia
... woops, inboxes and outboxes weren't properly tagged, that's why they didn't work
#
puckipedia
right. got federating follows to work again (from mastodon to my own server) - it's time to go to bed here
#
puckipedia
server will shut down as it's on my desktop
#
puckipedia
this was very productive, thank you all :)
#
ajordan
email validation
#
ajordan
amirite
#
ajordan
well in AP-land this isn't a problem ;)
#
puckipedia
ajordan: btw I tested the follow with your(?) test account on my server - https://lol.puckipedia.com/users/inbox/strugee?from_id=994
#
ajordan
puckipedia: mine
#
puckipedia
(mastodon is local, won't I just redirected it to localhost)
#
puckipedia
... the unfollow didn't federate lol
#
ajordan
seems about right
#
puckipedia
yeah. the unfollow salmon msesage in Mastodon uses the same ID as the follow
#
ajordan
thanks for stopping by puckipedia :)
#
puckipedia
I'll stay here for a while longer though :P The spec still isn't done, and neither is my server! :)
#
astronouth7303
So I guess I should make a list of webfinger vs ld vs other?
#
puckipedia
for user resolving/mentioning/etc?
#
astronouth7303
For canonical unique user references
#
astronouth7303
I'm assuming that in-text mentions will use some kind of a non unique or provider specific thing. Honestly, as long as the post is tagged with mentions in general, I think humans can sort out which bit is whom
#
puckipedia
yeah. Mastodon's mentions and hashtags are really wonky - they have a seperate hashtag list, and hashtags in the post are just <a href>
#
puckipedia
same with mentions
#
astronouth7303
Seems reasonable
#
astronouth7303
But if I want to give someone my fedisocial handle, what do I say?
#
astronouth7303
Does it vary by what provider you're typing it into?
#
puckipedia
hm. facebook 'handles' are usually given as [facebook logo] /asdf
#
astronouth7303
Right
#
astronouth7303
Not really meaningful with mass federated systems
#
puckipedia
in the case of Mastodon, you have to search for the handle
#
puckipedia
Qvitter has a small search bar where you can enter handles too
#
astronouth7303
I don't know what the blog-oriented specifications of this group are based on
#
astronouth7303
I think that being able to say astro73.com/jamie is a pretty critical use case
#
astronouth7303
Especially in the face of user privacy
#
astronouth7303
Eg, not every instance will allow you to search for users, or will list everyone for strangers off the street
#
puckipedia
iirc Qvitter first tries to parse it as an Atom feed, then tries to find links to an atom feed, then tries to webfinger something
#
nightpool
astronouth7303: mastodon convention is to use @user@instance.tld
#
nightpool
Which I think is better then URLs for a few different reasons.
#
nightpool
Mostly having to do with how people parse URLs vs how they parse handles
#
puckipedia
sleep is for the weak. I fixed the unfollow support https://lol.puckipedia.com/users/inbox/strugee
#
puckipedia
another fun discussion: server-side ActivityPub relaying, or client-side? aka should the server get any object for the client, or should the client get them all itself? tbh I would prefer server-side relaying with an option for client-side, as I can't really relay non-URLs to e.g. Mastodon
#
puckipedia
anyways now that unfollows work it's really time to go to bed
timbl joined the channel
#
wilkie
I really relate to the person that just said "sleep is for the weak" and 5 minutes later went to bed
#
astronouth7303
nightpool: I don't care about the debate nearly as much as I care about the consensus
#
astronouth7303
If we webfinger always, then do that
#
astronouth7303
If we look at it for ld, then do that
#
astronouth7303
There's a ux argument to be made for both sides
#
ajordan
wilkie: loll
#
ajordan
puckipedia++
#
Loqi
puckipedia has 1 karma
#
ajordan
astronouth7303: I've said this before but I think a great UX is "throw anything in and it will Just Work"
#
ajordan
that works in AP systems
#
ajordan
given discussions we've had about normalizing WebFinger addresses to AP URLs
#
astronouth7303
some software has better UX than others
#
aaronpk
is github down
#
astronouth7303
it's not a myth, but we don't have a lot of control over it
#
astronouth7303
appears to be
#
aaronpk
hey loqi wake up
#
ajordan
lol at first I read that as "github being down is not a myth"
#
aaronpk
is github down?
#
aaronpk
gives loqi a kick
#
Loqi
steps on the kick
#
wilkie
aaronpk++
#
Loqi
aaronpk has 87 karma in this channel (1340 overall)
#
astronouth7303
ajordan: i mean, yes, we should accept lots of things.
#
astronouth7303
but we can't be sure every provider will accept anything, and disagreement in the community will just create user confusion
#
ajordan
you mean not all UIs will accept everything?
#
astronouth7303
the idea is that there will be dozens of packages powering hundreds of providers, right?
#
ajordan
in an ideal world, sure
#
astronouth7303
we can't be certain that some obscure one won't implement webfinger, or implement it in a broken way, or w/e
#
aaronpk
loqi: is github down?
#
Loqi
Major service outage. https://status.github.com/
#
aaronpk
much better
#
astronouth7303
or some semi-corporate one
#
astronouth7303
or w/e
#
astronouth7303
or any other optional spec
#
ajordan
astronouth7303: I'm not following
#
ajordan
that's like saying "we can't be sure some obscure one won't subtly screw up their ActivityPub implementation"
#
ajordan
of course
#
ajordan
and that one just... won't interoperate, unfortunately
#
astronouth7303
on top of that, it just looks bad (and appearing like we have it together is important to draw the masses) if we can't agree on the form of user handle
#
wilkie
webfinger is a lookup mechanism that clients would generally use, you would federate the resolved profile url server-to-server
#
wilkie
the UX already doesn't expect you to type in webfinger addresses... it would have some UI to turn usernames into their full forms
#
astronouth7303
wilkie: does this UI work across providers?
#
wilkie
does... it... need to?
#
astronouth7303
that's kind of the point of federation?
#
wilkie
I'm not following either, I guess
#
astronouth7303
it doesn't matter if i'm not on the same provider as my friends
#
wilkie
you federate activity streams or something that has a canonical form
#
aaronpk
email is a good example of this
#
astronouth7303
basically, yeah
#
aaronpk
in some clients you can type a name and it looks up an email address in your local contact list
#
aaronpk
but email still federates
#
aaronpk
so i'd say no, all providers don't need to do the same thing
#
astronouth7303
but your local contact list is pretty limited, and everything assumes you'll be typing in things that aren't in it
#
aaronpk
"everything"?
#
ajordan
astronouth7303: are you maybe thinking that we're saying each server should be able to speak Webfinger (or other rando protocols) to other servers?
#
ajordan
because that's not what I and presumably wilkie are saying
#
wilkie
if you receive a post from somebody you don't know, you still don't need to know their url/canonical-address, it will just say "wilkie" and you can click "follow" as per the UX of your local system
#
ajordan
what we're saying is that everything on a protocol level would operate with URLs as Actor ids, which is how ActivityPub is designed
#
astronouth7303
that's not exactly the only way humans discover their online identities though
#
astronouth7303
yeah, activitypub is all about LD and URLs pointing to LD
#
ajordan
in the UI, you'd be able to throw in a legacy Webfinger identifier and it would be canonicalized to an AP URL
#
astronouth7303
so what should we consider the canonical identifier?
#
ajordan
bearing in mind that what I'm saying is *not* "Webfinger should be a permanent part of the AP network", this is just to account for legacy systems like Mastodon that already use Webfinger IDs
#
ajordan
astronouth7303: the profile URL
#
wilkie
a url to an actor
#
astronouth7303
that's what I would say
#
astronouth7303
but that's not what's implemented, and there is dissent
#
ajordan
implemented in what?
#
wilkie
I mean, that is what is implemented
#
wilkie
and, sure, you can technically use webfinger to resolve to an actor url, kind of like how you could technically use a QR code if you wanted to
#
astronouth7303
if, say, mastodon were to display it's concept of the canonical, correct identifier for a user on their page, what would it be?
#
astronouth7303
gnu social? diaspora?
#
astronouth7303
friendica?
#
wilkie
whatever leads to a rel=alternate or rel=profile
#
wilkie
or rel=me
#
wilkie
with the appropriate type
#
astronouth7303
so a url
#
ajordan
wilkie: wait really?
#
wilkie
ajordan: why not
#
astronouth7303
also, i thought activitypub suggested HTTP Content-Type negotiation?
#
ajordan
I thought it would be a URL that content-negotiated application/activity+json to return an AP actor
#
wilkie
well yeah, but you can get to that from an html profile with a link
#
wilkie
is that not allowed?
#
astronouth7303
ap doesn't mention it
#
wilkie
the ID for an actor should be that
#
ajordan
ah I see
#
wilkie
but discovery should be able to be done through a profile
#
ajordan
I mean it seems "allowed" in the sense that it seems logical but I don't think anyone will implement that
#
wilkie
and that's up to the server implementation, so you'll generally know what you can pass along
#
ajordan
s/that/that discovery algorithm/
#
ajordan
based on the spec
#
astronouth7303
there's been some revisions since I last looked at ActivityPub, but i don't recall any mentions of <link rel> as methods of agent discovery
#
astronouth7303
and i'm fairly sure that it suggests content negotiation
#
ajordan
wilkie: well you can canonicalize that in the client (which of course could be a server's web UI or something) but I think you'll be screwed if you try to pass anything other than a content-negotiated profile URL over federation
#
astronouth7303
i was mentally planning everything to be content-negotiated
#
ajordan
astronouth7303: I'm pretty familiar with the spec and I've been on the calls and I think you're right
#
wilkie
ajordan: for federation, you would use the url that content-negotiates to an AS actor
#
ajordan
wilkie: yes
#
astronouth7303
"for federation" means "my user handed me this thing"
#
astronouth7303
ie, it's not hidden from the user
#
ajordan
so where does the rel= discovery come in then?
#
ajordan
astronouth7303: no it doesn't, it means "my user's client handed me this thing"
#
wilkie
federation means "a server handled me this thing, how do I make it look like a server didn't do that"
#
ajordan
there's a big difference, because clients can e.g. canonicalize Webfinger addresses
#
ajordan
lol I've gotten so lost with this discussion
#
astronouth7303
ok, question 1: Are webfinger addresses normal or legacy?
#
wilkie
webfinger has nothing to do with federation protocol :/
#
astronouth7303
2: Where is <link rel> discovery for ActivityPub specified?
#
ajordan
astronouth7303: legacy
#
ajordan
astronouth7303: AFAIK it isn't but I could be wrong (wilkie?)
#
astronouth7303
so while conforming clients should accept webfinger addresses for compatibility, this is considered legacy and shouldn't be encouraged?
#
wilkie
they are not part of the federation; webfinger addresses are a choice that servers can make that technically will not be seen by other servers
#
ajordan
astronouth7303: AFAIK the general consensus is that accepting Webfinger addresses is a pure UI consideration
#
ajordan
irrelevant for conformance
#
astronouth7303
so half of FediVerse will display webfinger, and the other half will display URLs.
#
astronouth7303
this is going to be great. A+
#
wilkie
your client will display it however it pleases
#
wilkie
because your client will only see urls
#
astronouth7303
1. Stop trying to not own this. You know that 90% of clients will be the web UI from the provider
#
wilkie
webfinger is a *discovery* mechanism that spits out a url, which will be used instead
#
ajordan
astronouth7303: we work on specifications
#
ajordan
it's not our *job* to own this
#
wilkie
I don't actually know of any clients that currently display webfinger identifiers instead of usernames with links to urls
#
ajordan
it's inappropriate for a specification of this nature to make *any* mandates on UI
#
wilkie
even though 90% of the federation uses webfinger
#
astronouth7303
ajordan: it might not be part of ActivityPub, but there needs to be consistency if you want the ecosystem to take off
#
wilkie
mastodon displays usernames with links to a profile url, no?
#
ajordan
astronouth7303: I agree
#
astronouth7303
the mastodon i've seen is URLs, but that's like one guy
#
wilkie
mastodon is 100% webfinger
#
astronouth7303
displaying/encouraging, or just accepting?
#
wilkie
for discovery
#
astronouth7303
the point of the question is UI
#
wilkie
you can type out webfingers into your posts, too, to explicitly mention, etc
#
astronouth7303
what will common users recognize as their handle? What should they publish on business cards and websites? What will they tell their friends?
#
wilkie
or type just a username where it gives you an autocomplete dropdown
#
ajordan
astronouth7303: URLs
#
wilkie
a URL
#
ajordan
to AP profiles
#
astronouth7303
ok
#
astronouth7303
do the mastodon implementers agree with you?
#
ajordan
good question
#
astronouth7303
or any of the other implementations?
#
ajordan
IIRC a bunch of Mastodon people were involved in the discussion on how to normalize Webfinger to an AP URL? so I'd guess yes but I'm not sure
#
wilkie
it seems likely that webfinger will still be used, or can be used... since it can easily spit out the AP url
#
ajordan
fyi I have to go in ~5 minutes and am only half paying attention to IRC now
#
astronouth7303
that's a necessary step to support webfinger at all? but is their attitude "here's the new workflow forever" or "yeah, this is mostly for transition reasons"?
#
ajordan
I'll be back though (just walking over to my dad's house)
#
ajordan
astronouth7303: AFAIK they haven't taken an explicit position (their AP implementation is still in the early stages)
#
ajordan
I don't follow them closely tho
#
astronouth7303
that's my thing
#
astronouth7303
are webfinger identifiers the way of the future or legacy comaptibility
#
astronouth7303
and the other question, wilkie, where did <link rel> discovery come from?
#
ajordan
astronouth7303: as wilkie and I have mentioned above, they are legacy compatibility