#social 2017-07-30

2017-07-30 UTC
xmpp-social joined the channel
#
puckipedia
hm. I think I'll accept "invalid" Accept/Reject on Follows
#
saranix
what makes it invalid?
#
puckipedia
well, there's a few situations
#
puckipedia
like {type: Accept, actor: userA, object: {type: Follow, object: userB}}
#
puckipedia
(userA accepting a follow for userB)
#
puckipedia
I consider those invalid
#
puckipedia
hm, this is getting interesting
#
puckipedia
I think I'll accept them and assume signatures do the job
#
saranix
yeah all objs have to be validated regardless
#
saranix
let validation fail
#
puckipedia
yep
#
puckipedia
except I will just refuse the above situation
#
saranix
I'm trying to decide whether to implement my client UI as an activity stream or a doc stream. I've done doc stream in the past, but I can't figure out what to do with all of the activity objects (UI-wise) if I do that with AP
#
puckipedia
hm, what would doc stream look like?
#
saranix
looks ugly no matter how I picture it
#
saranix
trying to tack on activities that is
#
puckipedia
I mean, I don't have any reference for doc stream
#
puckipedia
like, would that just be a stream of e.g. Notes?
#
saranix
in many cases yeah
#
saranix
it's more fun when it's all different types
#
puckipedia
ah, right
#
saranix
it's more of a UI gimmick than anything else
#
puckipedia
so emh, what you could do, is kinda split it up? Like, have two columns/pages, one for all notes and one for all follows/delete/etc
#
saranix
oh yeah I forgot about negative actions
#
saranix
hmm... I think I'm trying to be too fancy
#
saranix
I'm really just procrastinating finishing my parsers :-P
#
puckipedia
I'm working on building a test implementation for Accept/Reject of Follows
#
puckipedia
ehm, how long should a Follow request be valid for?
#
saranix
forever
#
puckipedia
well, I need to implement a thing that you can only 'redeem' a follow request once, I think
#
puckipedia
so one Follow can only be Accepted once
#
saranix
check for an existing Accept/Reject action?
#
puckipedia
that's my plan :)
#
puckipedia
I got a bit of code already for that
#
puckipedia
(needed for OStatus support)
#
saranix
What about changing an accept to a reject?
#
saranix
or vice versa
#
puckipedia
I don't need to check for that
#
puckipedia
I guess?
#
saranix
probably Undo Accept is more semantic... I think that's what we decided on before
#
puckipedia
{type: Undo, object: {type: Accept, object: {type: Follow}}}
#
puckipedia
lol
#
saranix
parse that!
#
saranix
:-P
#
saranix
this protocol is a bit rediculous at times
#
puckipedia
I think Reject follow is good enough?
#
saranix
thing is, people can theoretically spin it 100 different ways and they're all "valid" according to the really loose spec
#
saranix
be conservative in what you send and liberal in what you accept
#
puckipedia
well, you can also Reject a Follow before it's Accepted
#
puckipedia
anyways, bbiab
#
saranix
[{type:Undo, object: {type: Reject, object: followid}}, {type:Accept, object: followid } ]
timbl joined the channel
#
ben_thatmustbeme
wonder how systems would handle an undo of an undo of an undo of an ...
#
puckipedia
ben_thatmustbeme: once undone, you can't un-undo
#
puckipedia
You'd just repeat the original activity
#
ben_thatmustbeme
Well, that's what you are supposed to do
#
saranix
what if... userA's software sends [{type:Undo, object: {type: Reject, object: followid}}, {type:Accept,object: followid } ], but userB's software does not accept the Accept, that is, it is no longer interested in following because of the Reject it already got
#
saranix
haha
#
Loqi
awesome
#
puckipedia
saranix: so, implicitly, the reject already happened
#
puckipedia
you can't undo a reject and then accept it
#
puckipedia
because the Follow has already been 'redeemed', so to say
#
saranix
but some software might decide you can
#
saranix
it's ambiguous
#
saranix
both behaviors are valid
#
puckipedia
actually I think this is actually in the spec
#
puckipedia
> There are some exceptions where there is an existing and explicit "inverse activity" which should be used instead. Create based activities should instead use Delete, and Add activities should use Remove.
#
saranix
but that doesn't really apply because there is no Unfollow
#
puckipedia
it's follow/undo follow
#
puckipedia
and [accept/reject] follow
#
saranix
still doesn't disallow what I said above
#
saranix
and I'm pretty sure that there's still quite a bit of disagreement over this issue amongst the group
#
saranix
with most disagreements ending in "we'll just do whatever mastodon wants" :-/