#social 2018-08-12
2018-08-12 UTC
xmpp-social joined the channel
# saranix so it seems there really is a problem with impl requiring things that aren't part of activitypub (therefore not actually being compliant with or federating with activitypub as such). I tried simply viewing an actor on both pleroma and mastodon, and neither will accept my perfectly valid actor object. pleroma also tries to fetch host-meta and webfinger
# saranix further, there is no error feedback given to the user as to what it doesn't like about the actor object so I have no way to fix it without installing these softwares and reviewing debug logs I guess
# stephank saranix: Hmm, I haven't encountered that? At least for Mastodon, the inbox prop is required, and maybe some other props, but nothing outside spec.
# stephank Webfinger is a requirement for foo@bar.com type identifiers. I can search in Mastodon by actor URI, but not sure what kind of deps that has.
# stephank I _have_ seen _specific_ instances of Mast and Pleroma fail to find my actor, though. Or fail to post to my inbox. But I don't log as much detail, so don't yet know why.
# saranix the object has endpoints:[followers,following,inbox,outbox,sharedinbox], summary,name,type,id properties. mastodon doesn't webfinger, but pleroma does, using URI syntax
# saranix unless I'm skimming too fast the only 4 required properties are: type,id,inbox,outbox
# saranix even @context is a SHOULD (I added it but it didn't help)
# stephank castling.club doesn't have an outbox, so it's not required
# stephank I think Mastodon at leat requires `preferredUsername`?
# saranix preferredUsername is a MAY. Adding it appears to have satisfied pleroma, but not mastodon
# stephank It'd be cool if they'd interop with the bare minimum, but I guess they just don't have the UI currently. Like, how to mention an actor that has no webfinger, just a URI?
# stephank But maybe you can link us your actor, so we can take a look?
# saranix @https://example works
# stephank Oh wow, haha, didn't know!
# stephank I'm also not sure how important `Content-Type` is in practice.
# stephank Ah, the ld+json works too in my experience. I only use activity+json for matching Accept.
# stephank (ld+json with profile)
# saranix oh durnit. testing is tricky because once it accepts the object it's cached so I can't make changes
# saranix hmm... I wonder if I can get away with not even using httpsigs...
# saranix you know what would be useful? A sitewide bulk fetch service. Not quite a shared outbox, because the requester is controlling all the semantics, not the server. e.g. POST example.com/bulk-fetch
{ itemCount: 25, items: [ 'user1/activity/12323','user5/activity/45454',... ] }
vasilakisfil joined the channel
# saranix ugh pleroma has a hard requirement for http sigs
# nightpool[m] mastodon documents it's requirements on https://activitypub.rocks/implementation-report/
# saranix nightpool: however, it does not even fetch webfinger, so something not listed there is also amiss
# nightpool[m] mm. not sure that's true.
# nightpool[m] are you sure the instance has never fetched the webfinger for that actor?
# nightpool[m] it could be caching it
# saranix never, not once
# saranix it just fetches the actor and stops. it fetches the actor every time I do a 'search'
# saranix but the UI shows '0 results'
# saranix from the 'search'
# nightpool[m] what actor is it?
# nightpool[m] like, can you give me a link?
# saranix I've been testing with a simple faker script. adding and removing fields and such. nothing works with mastodon. pleroma works but won't take a post without http sig
# nightpool[m] are you sure you're serving the actor with the right content-type?
# saranix application/json, same as pleroma, so if pleroma works with mastodon then that can't be the problem
# nightpool[m] nope
# nightpool[m] MUST present the ActivityStreams object representation in response to application/ld+json; profile="https://www.w3.org/ns/activitystreams"
# saranix "in response to". I do.
# saranix you said content-type, not accept. don't confuse the 2
# nightpool[m] we send an Accept with atom and activity+json
# nightpool[m] and we use the returned content type to distinguish which of the two we got
# nightpool[m] also, the Accept header is the next line in the spec so
# saranix strange. wonder how pleroma works with mastodon then. I guess it doesn't? Because I'm literally just copying their behavior
# nightpool[m] i'm guessing pleroma produces the correct content-type if you include an accept header that asks for activity+json
# saranix no, I'm telling you, it doesn't
# nightpool[m] uploaded an image: image.png (106KB) <https://matrix.cybre.space/_matrix/media/v1/download/cybre.space/PlYpXHxhHVRcsfzocJEoikyF>
# nightpool[m] seems pretty conclusive lol
# saranix maybe version matters
# saranix anyways I changed the response to application/activity+json and no change in mastodon behavior, it still fetchs only the actor, and returns 0 results in the UI
# nightpool[m] can you give me the URL so I can test it?
# stephank Also, are you testing from live Mastodon / Pleroma instances, or something local?
# nightpool[m] probably just going to curl and look over it by hand.
# saranix grr stupid typo was causing 500 error. finally got mastodon to fetch webfinger after fetching the actor after throwing the kitchen sink in.
# nightpool[m] What did you add?
# saranix but now I'm unsure whether I want to continue to care about mastodon federation, because webfinger is anathema to AP's FYN
# saranix I added outbox, followers, following (I had commented them out), @context with w3id.org, and a publicKey object
# nightpool[m] hmm.
# nightpool[m] what was your context before?
# saranix just activitystreams
# nightpool[m] but it was definitely in there?
# saranix I can start commenting back out now that I know there was a typo
# nightpool[m] we only check for activitystreams context
# nightpool[m] ahhh, what was the typo?
# saranix meh, apparently it needs one of outbox,followers,following, or all 3. let's find out.
# saranix interesting. followers and following required but outbox not
# nightpool that's a bug then
# nightpool i'm looking at the code right now and all three of those are definitely optional
# nightpool[m] how are you determining what's "required"?
# saranix by wehter it fetches the webfinger after fetching the actor. I'm using a new fake actorid every time just in case
# nightpool[m] the only thing it checks before webfinger is supported_context? && expected_type?
# nightpool[m] and ofc preferredUsername and id.
# nightpool[m] because it needs those two properties to construct the webfinger url
# nightpool[m] it only processes the rest of the document after verifying the webfinger
# saranix weird. it definitely stops without followers and following
# nightpool[m] can you send me the document to see if I can reproduce it?
# saranix idk what the heck happened. I commented out just about everything and now it works
# nightpool[m] probably a JSON syntax error or some-such
# saranix *sigh* now I have to decide whether to do webfinger. I don't want to. even for just this one project. webfinger is lame
# saranix I don't want to do http signatures either
# saranix they actually aren't necessary
# nightpool[m] so, the reason mastodon requires webfinger is that it provides a non-ambiguous way for plain-text clients to mention actors
# nightpool[m] if we didn't require it, mastodon users wouldn't be able to reply or have a conversation with actors that didn't support it
# saranix nightpool[m]: meaning, older installations that only speak ostatus?
# nightpool[m] no, i mean mastodon users would be able to @ mention any users that didn't have a webfinger address
# nightpool[m] because mastodon is plain-text only
# nightpool[m] which is part of our microblogging focus
# saranix I still don't get it. @https://example/mention-me
# nightpool[m] hmm. it's possible we could support that as a fallback, but i think it would look pretty ugly to users.
# saranix what's even more ugly is requiring a requirement that isn't even required
# nightpool[m] I don't know, if you want to create a ticket with that justification it would probably generate an interesting discussion, at least.
# nightpool[m] Not sure what you mean. we definitely require webfinger.
# donpdonp even tim burners lee apologized for the look of a url. user@server.com is easier to read.
# saranix plus, once you have fetched the actor and they are in your address book, it should be @'Hey this is my friends name' not @nosssdklfjslfjdsf
# nightpool[m] that's not plain-text though, that requires additional metadata if you're just looking at the status
# saranix totally disagree
# nightpool[m] how so?
# saranix Here's how I know webfinger isn't really "necessary": my impl won't fetch webfingers and it'll still be able to do everything it wants. Even if I respond to webfinger, it will be merely to enable mastodon to get over itself
# nightpool[m] sure
# nightpool[m] i'm not saying webfinger is necessary in the general use case.
# nightpool[m] i'm saying it's required for mastodon's design and UX goals
# saranix and I just told you how it isn't, but ok
# saranix actor has preferredUsername. you can go by that.
# saranix although technically requiring that is a violation of activitypub too, but less offensive anyway
# nightpool[m] saranix: if you want to start a discussion about this on the github issue tracker, it's possible gargron would be open for discussion on falling back to @URI
# nightpool[m] ultimately we want to do as much as we can to interop with others and make it easier for people to interop with us
# saranix lol I refuse to sign up to github ;-)
# nightpool[m] email eugen@zeonfederated.com then
# saranix k
# donpdonp saranix: how would a system convert user@server.com into an email without webfinger?
# donpdonp into a url, i mean.
# nightpool[m] using the Mention records
# saranix donpdonp: first time anyone adds that contact on that server
# nightpool[m] AS2 is designed to be microsyntax agnostic
# nightpool[m] which is why we have Mention records
# donpdonp saranix: not sure what you mean
# saranix donpdonp: well it only takes once. The @foo@bar addressing scheme is literally defined by webfinger so yes you need webfinger to resolve it if that's all you have. But you can also use the AP preferredUserbane if the actor was discovered some other way first
# nightpool[m] you should never need to parse that syntax if you don't care about people authoring it
# nightpool[m] because federated statuses includes Mention records just for that reason
# donpdonp nightpool[m]: understood. that sounds like a different usecase. i was thinking of first-contact or bootstrapping a remote follow where only the user@server.com is known.
# nightpool[m] just use URIs instead
# donpdonp i cringe a little at @user@server.com but i can see how it evolved from twitter handles.
# saranix donpdonp: I hate it even more precisely because of that ;-)
# saranix although I'm telling myself the first @ means 'Address' not 'at' and it's helping a little
# saranix I still loathe using the word 'hash' to describe #. So not cool.
# nightpool[m] octothorpe
# saranix pound, number sign, or even 'channel' are acceptable
# saranix old irc days it was pronounced channel
# nightpool[m] haha
# nightpool[m] so it's okay if it has a platform-specific name
# nightpool[m] as long as it's old
# donpdonp in a url its a fragment
# saranix no. it's not ok because hash actually is a totally different symbol, and always has been
# saranix not only that, but, for that matter, there is nothing hash about hash-tags.
# csarven because https://pbs.twimg.com/profile_banners/14188834/1448570914/1500x500 .. the person that was talking to didn't know how to input "#" on their keyboard.. adn i was saying "pound" over the phone. They spotted that but their UK/Irish or wahtever keyboard didn't have '#' visible. They had to use an alt of some sort.
# nightpool[m] uploaded an image: image.png (22KB) <https://matrix.cybre.space/_matrix/media/v1/download/cybre.space/CGNyPXKlyiLBvoPEKYjDHojM>
# nightpool[m] 1960s
# saranix I'd even be ok with waffle
# saranix or tic-tac-toe
# saranix nah
# nightpool[m] uploaded an image: image.png (39KB) <https://matrix.cybre.space/_matrix/media/v1/download/cybre.space/DePjdFkHdbaPkZgFyucEdXte>
# nightpool[m] "1961 Ann. Rep. 1960 (Chicago Civil Service Comm.) A hash-mark (#) after a position means that a title has been recommended for this position that is different from the budget title."
# saranix I denounce the colonial oligarchies texts. No working class person ever used it that way
# nightpool[m] lol
# saranix *argh*
# saranix I went back to the full object, and decided to try direct messaging to see what happens, it stops after fetching the actor
# saranix it does a HEAD then a GET then stops
# saranix nightpool[m]: looks like DM is different code path. any suggestions?
timbl joined the channel
# saranix fun fact: pleroma requires http sigs to POST to the inbox, but allows anyone to fetch objects (posts) even if the channel is set to 'followers only' so long as you have the uri. seems though that this proves that http sigs *are* necessary unless everything is public
# dansup heh
# saranix approves
# donpdonp waffletags https://pxlfd.me/p/donpdonp/168 #waffletag
# dansup heh
# donpdonp what you do mean @ me
# donpdonp mention you in a new toot?
# donpdonp ah
# donpdonp i cannot, pixelfed isnt federated yet :O
# donpdonp its still in development
# donpdonp how would i respond to your post from mastodon?
# aaronpk right now my site doesn't know what to do with those links :( https://xray.p3k.app/parse?url=https%3A%2F%2Fpxlfd.me%2Fp%2Fdonpdonp%2F168&pretty=true
# dansup aaronpk: Yeah, I'm planning on adding some indieweb stuff :) Each user does have an RSS feed, want to add pagination support to that and add the meta tag to profiles.
# donpdonp aaronpk: oh riiight
# donpdonp aaronpk: boom.
# puckipedia feeds Kroeg link into xray.p3k.app
# puckipedia yup that seem-- ow
# puckipedia text "henlo from my Psion netBookmessage sent from my Psion netBook"
# puckipedia html "<p>henlo from my Psion netBook</p><p>message sent from my Psion netBook</p>"
# puckipedia netBookmessage
# puckipedia aaronpk: oh fun
# puckipedia gives different results
# puckipedia it's https://puckipedia.com/.json :D
# puckipedia honestly everything can be an object
# dansup heh
# puckipedia I unflatten up to an arbitrary depth, any local objects or remote objects that I know to be public
# aaronpk heh there's no "url" property in your https://puckipedia.com/.json
# puckipedia correct
# puckipedia because, y'know, it's the same as the id
# puckipedia the rest is fine with it :P
# puckipedia yes
# puckipedia you can always GET ID values
# puckipedia AP spec
# puckipedia "All Objects in [ActivityStreams] should have unique global identifiers. ActivityPub extends this requirement; all objects distributed by the ActivityPub protocol MUST have unique global identifiers"
# puckipedia " Publicly dereferencable URIs, such as HTTPS URIs, with their authority belonging to that of their originating server. (Publicly facing content SHOULD use HTTPS URIs). "
# puckipedia because it isn't
# puckipedia it's part of JSON-LD
# puckipedia same as type
# puckipedia because AS2 doesn't define "id" because it's part of the spec it depends on?
timbl joined the channel
# puckipedia actually nvm
# puckipedia In addition to having a global identifier (expressed as an absolute IRI using the id property) and an "object type" (expressed using the type property), all instances of the Object type share a common set of properties normatively defined by the Activity Vocabulary.
# puckipedia it's in the spec
# puckipedia the activitystreams core spec