#social 2018-07-13

2018-07-13 UTC
fr33domlover, fr33domlover1, fr33domlover2, fr33domlover3 and fr33domlover4 joined the channel
#
dansup
Gargron: how mastodon uses redis has been a big inspiration for pixelfed, thanks a lot!
fr33domlover, fr33domlover1, fr33domlover2, fr33domlover3 and fr33domlover4 joined the channel
#
Loqi
[dansup] @christianbundy @maloki I think MicroPub might be something to pursue! https://www.w3.org/TR/micropub/ #indieweb
fr33domlover1 joined the channel
#
dansup
I think MicroPub support could be interesting, as a proxy for C2S so you only need S2S
fr33domlover2, fr33domlover and fr33domlover1 joined the channel
#
aaronpk
Micropub is a great lightweight client to server spec!
xmpp-social, fr33domlover, vasilakisfil, timbl and timbl_ joined the channel
#
aaronpk
hm i'm definitely missing something regarding audience/targeting
#
aaronpk
I guess it worked in this case because the two people in the thread are on the same server
#
aaronpk
but when I reply to something that has a bunch of stuff before it, am I supposed to send my reply to everything above the chain?
#
aaronpk
here's my post https://aaronparecki.com/2018/07/13/6/ and here's the post I was replying to https://octodon.social/@cwebber/100368138697354408 where I wanted @craigmaloney to see my reply too
#
Loqi
[Aaron Parecki] I tried doing something similar, but at least Mastodon expects to be able to do content negotiation on both author profile URLs as well as post permalinks, so that kind of prevents it from being able to effectively work with static sites. I got t...
timbl joined the channel
#
nightpool[m]
aaronpk: notifications work only off of @mentions
#
nightpool[m]
(as represented by Mentions in the tags array)
#
nightpool[m]
So if you want someone to be notified of your post, you have to @ mention them
#
aaronpk
hm k, so I guess I would also have to deliver it to their inbox
#
aaronpk
so basically make sure I iterate through all the people in the tags array and deliver to their inboxes?
#
nightpool[m]
sure.
#
nightpool[m]
you should add them to the to if you're directing it at them
#
Loqi
yea!
#
aaronpk
so I have to add them to both the "to" and "tags"?
#
nightpool[m]
to is for delivery, tags Mention is for "this is an @mention parsed from the post content"
#
nightpool[m]
mastodon ties them together because of it's microblogging text-first design
#
nightpool[m]
weirdly it looks like cybre.space and octodon saw different versions of the post?
#
aaronpk
oh how'd it get to cybre.space?
#
nightpool[m]
I loaded it via url
#
aaronpk
ah yeah
#
aaronpk
at some point you said people wouldn't see a notification of a reply unless their username was in the post text, so when I send to their inbox I change the text that goes in the AP payload to include their username
#
nightpool[m]
that's....... confusing
#
aaronpk
I would take that out if mastodon would still consider it a reply without their username in the text
#
nightpool[m]
to be clear, they won't see a notification unless they're Mention'd in the tags array
#
nightpool[m]
It considers it a reply, just not one that's directed at them
#
aaronpk
what does "directed at them" mean?
#
nightpool[m]
One that mentions them
#
nightpool[m]
inReplyTo—shows up in the thread view
#
nightpool[m]
Mention—shows up in notifications
#
nightpool[m]
they're completely decoupled.
#
aaronpk
I guess i'll leave it as is then
#
nightpool[m]
replies don't mean anything to mastodon as far as notifications go, because that's how twitter works.
#
aaronpk
I was pretty sure twitter shows replies and mentions in the same notificatins list
#
nightpool[m]
they only show replies if you're mentioned in them.
#
aaronpk
there is no mentioning in replies anymore
#
aaronpk
they moved that to the tweet metadata
#
nightpool[m]
oh, sure.
#
nightpool[m]
but mastodon is trying to be "old twitter" :P
#
nightpool[m]
(also i think there's still an @aaronpk on the backend, it just gets parsed out for display)
#
aaronpk
it's not in the tweet text anymore, only in the legacy object
#
aaronpk
they are pretty aggressive about being backwards compatible, but the new api representation does not include the username in the post text anymore
#
nightpool[m]
¯_(ツ)_/¯
#
aaronpk
anyway that's what i'm trying to do with my site too
#
aaronpk
but in order to show up in someone's mastodon notifications, I have to include their name in the text, so I changed what I deliver to their inbox so that it does that
#
nightpool[m]
well, like I said, you really just have to include the mention
#
nightpool[m]
although it will be very surprising for mastodon users if they see something they're not tagged in in their notifications
#
nightpool[m]
i guess the real thing here is that you can't deliver two different copies of the same status to the same server
#
aaronpk
ah yeah
#
nightpool[m]
so craigmaloney didn't get tagged ig because you sent the cwebber one first, or something
#
aaronpk
I don't have anything that would have tagged in it anyway
#
aaronpk
tagged him in it
#
aaronpk
which is why I was asking about this in the first place
#
nightpool[m]
yeah well in that case there's no way it would have notified him
#
nightpool[m]
just like if you had unchecked his box on twitter :P
#
aaronpk
it sounds like the answer is if I wanted him to see it I should have actually mentioned his name in the text
#
nightpool[m]
yes
#
nightpool[m]
although again the only actual requirement is a Mention in the tags array
#
nightpool[m]
but it would be Surprising for him to see that without his name being in the text
#
aaronpk
ah now I get it
#
nightpool[m]
also in re the actual content of that message:
#
nightpool[m]
what cwebber is saying does actually work
#
nightpool[m]
you just have to set your `id` to the jsonld representation
#
nightpool[m]
and then you can set your human-readable `url` property to the post permalink
#
aaronpk
but then if like what you did, someone pastes the human readable URL into their search box, it can't find the post
#
nightpool[m]
yeah
#
aaronpk
which happened to me within like 5 minutes of replying to someone
#
nightpool[m]
not having content-negotiation does break doing content negotiation :P
#
aaronpk
or you could do what that github issue suggests and avoid the need for content negotiation
#
nightpool[m]
ehhhhh
#
nightpool[m]
we have some link rel logic for atom stuff
#
nightpool[m]
and it's a huge pain
#
aaronpk
what about it is hard?
#
nightpool[m]
because you have to make multiple requests and parse the whole html body
#
nightpool[m]
it adds a lot of latency to the whole thing
#
nightpool[m]
and you have to worry about recursion, etc.
#
aaronpk
a bit of latency is worth being able to support a wider variety of publishers
#
nightpool[m]
I dunno, the benefits seem pretty slim
#
aaronpk
it's kind of sad that as is, the entire static site or CDN-using communities are excluded from being able to participate
#
nightpool[m]
because you already need something smart to handle the POST and GET stuff
#
aaronpk
that can be offloaded to a separate system than is actually hosting the website
#
aaronpk
that's how all the static site people are able to use webmention and micropub
#
nightpool[m]
also i don't know what you mean by "the CDN using communities". plenty of mastodon instances use CDNs
#
aaronpk
the CDNs that don't support content negotiation won't work
#
nightpool[m]
which ones are those?
#
aaronpk
cloudflare
#
nightpool[m]
i've never heard of it being a problem with cloudflare
#
nightpool[m]
plenty of mastodon instances are behind it
#
aaronpk
I did a bit of searching and that's what I found, then I stopped looking
#
nightpool[m]
well, in practice, it works fine :P
#
aaronpk
apparently cloudflare does work with content negotiation, must have landed on a link with bad info, but the point still stands for static sites
#
aaronpk
from what I can tell, most of activitypub doesn't even require fetching permalinks since everything is passed around via signed http messages. it's only a few use cases that need to fetch permalinks, so I don't see the problem with doing the link rel lookup to support that
#
nightpool[m]
i think there's maybe an argument for it as an additional thing
#
aaronpk
I mean apparently fetching permalinks at all is an "additional thing"
#
nightpool[m]
well, kind of?
#
aaronpk
I was able to get pretty far without ever serving JSON from my site
#
nightpool[m]
the `id` of an activity *has* to be dereferenceable by spec
#
aaronpk
but not according to implementations
#
aaronpk
mastodon didn't seem to care
#
nightpool[m]
just because mastodon doesn't care doesn't mean that other implementation won't
#
aaronpk
it kind of does
#
nightpool[m]
what?
#
aaronpk
specs end up being defined by their implementations, especially ones as big as mastodon
#
nightpool[m]
especially ones that, say, don't want to support http signatures.
#
aaronpk
you can't just point to arbitrary lines in the spec and say "do that" when nobody actually does
#
nightpool[m]
everyone does it though?
#
nightpool[m]
they just don't need others to do it
#
aaronpk
not from what I saw
#
nightpool[m]
what ids aren't dereferenceable in major implementations?
#
aaronpk
that's not my point, my point is that nothing apparently cares that they are.
#
aaronpk
it's like an unimplemented feature of the spec. if nothing is consuming it, then it should be dropped from the spec
#
aaronpk
(i'm not actually arguing that it should, but this is how spec development works)
#
aaronpk
this is why we tried to make sure every feature of the spec has both a producer and a consumer
#
nightpool[m]
shrug
#
nightpool[m]
i think it's important that URI references are always content-negotiable (so if you say followers: "https:://whatev.er/followers" and someone tries to fetch the followers page, it doesn't take a bunch of requests and extra logic)
#
nightpool[m]
but saying that "if you have a URL that isn't already a json-ld document, you may find associated json ld documents using link discovery" would be totally fine
#
nightpool[m]
and support the omnibox search case
#
nightpool[m]
without really changing anything about the spec or for other implementations
#
aaronpk
Gargron is saying mastodon already supports that
#
Loqi
[Eugen] @aaronpk In so far as putting the post's link into the Mastodon search bar to get it loaded, I know it definitely works with HTML links. I also think it does that when resolving inReplyTo threads.
#
nightpool[m]
i wouldn't be surprised, given that we already have that logic for ostatus
#
nightpool[m]
yeah, it looks like when we implemented activitypub we just got that behavior basically for free
#
aaronpk
conceptually it's not really any different from finding someone's inbox by looking up their profile
#
aaronpk
that's also how webmention sending works, all the webmention senders do link rel discovery to find the webmention endpoint
#
aaronpk
anyway, that's great if mastodon already supports that, i'm going to add that to the github issue discussing this
#
nightpool[m]
it's different conceptually because it requires parsing a whole new document type
#
nightpool[m]
it's already mentioned in the OP i think: "[This is already implemented in Mastodon & Pleroma's MastoFE: they will check URLs put into the search bar for the <link rel> described earlier.]"
#
aaronpk
sure enough
#
nightpool[m]
i think riking's proposal makes sense.
#
nightpool[m]
as long as we're careful that we're not making it broad enough that people get confused and put html URIs into as2 documents
#
aaronpk
definitely agree that it needs to be very specific language to avoid accidentally creating bad data
#
aaronpk
okay new issue
#
aaronpk
i'm looking at my logs and realizing that i'm accidentally sending a bunch of duplicate inbox notifications
#
aaronpk
the salmention extension to webmention says that when I get a new comment, to re-send webmentions from my original post, basically treating receiving a comment as an "update" of my post
#
aaronpk
what I didn't realize is that I hooked my inbox notifications into the same place, so now every time I get a new comment, I'm re-delivering the activity to the person i'm replying to
#
aaronpk
apparently it isn't actually causing a problem, since I guess mastodon is deduping it and ignoring the second notification?
#
aaronpk
but I feel like I should probably not be doing that regardless
#
nightpool[m]
if you want to replace that behavior with a useful behavior, it sounds analogous to ap inbox forwarding.
#
aaronpk
oh, like forwarding the comment I received up to the original post?
#
nightpool[m]
yeah
#
aaronpk
interesting
#
aaronpk
how do the receivers of that notification know to trust it? does it require that the thing i'm forwarding has a LDS? or are they expected to fetch the URL?
#
nightpool[m]
handwavy
#
nightpool[m]
you can do a bunch of authentication solutions
#
nightpool[m]
and none of them were explored/standardized at the time of AP standardization
#
aaronpk
what did people end up doing?
#
nightpool[m]
mastodon currently uses JSON-LD signatures
#
nightpool[m]
but we're not super happy with them and would be open to doing other stuff
#
nightpool[m]
i think resolving the URL is the most robust solution personally
#
aaronpk
it seems like fetching the original URL is the simplest
#
aaronpk
especially since even with LDS you need to go fetch the key if you don't know it already (which is probably a large percentage of the time since this is all about getting data that wasn't addressed to you in the first place)
#
nightpool[m]
that's a good point
timbl joined the channel
#
puckipedia
<nightpool[m]> but we're not super happy with them and would be open to doing other stuff <- i'd like some other signature thing that signs every object separately
#
jaywink[m]
salmon to the rescue \o/
#
aaronpk
wouldn't JWS work for that? or that new one that's supposed to be better
#
jaywink[m]
works for diaspora and I believe zot too, if I'm not mistaken
#
jaywink[m]
hmm could be I was wrong about zot. doesn't seem to be very clear, there is a lot of text
#
jaywink[m]
not sure why JWS wasn't higher on the table. I think the general message was that auth should not be talked about and then mastodon did http signatures AND LDS
#
aaronpk
I don't remember how LDS ended up on the table
#
jaywink[m]
maybe auth should have been talked about ;)
#
aaronpk
come to think of it, why did LDS end up doing something so different from JWT?
#
aaronpk
nevermind, that is probably not a productive conversation
#
jaywink[m]
LDS ended up on the table because you have to somehow verify the content is from who it says it is from when delivered via inbox forwarding.
#
aaronpk
I mean why was LDS suggested, but not JWT?
#
nightpool[m]
jwt has a really bad reputation in the security community
#
aaronpk
apparently bad enough that paseto.io is a thing
#
jaywink[m]
jwt's are a bit short lived anyway
#
jaywink[m]
isn't that normally the case? I'm not an expert though. but signatures you might receive after days - maybe your server is offline and gets a really late delivery.
#
nightpool[m]
JWS is signatures
#
nightpool[m]
not jwt
#
puckipedia
ok so, imo: no JWS, no salmon
#
puckipedia
the issue with those is that they depend a lot on the compacted json serialization
#
puckipedia
the json-ld signatures normalize the json-ld document in such a way that they no longer depend on the @context, which is good because I have one that slightly conflicts with mastodon
#
puckipedia
I mean I could complain about secure scuttlebutt's signature thing
#
nightpool[m]
hmm
#
nightpool[m]
why is normalizing important though?
#
nightpool[m]
can't you just validate the signature and then process the document?
#
aaronpk
in order to be able to re-calculate the signature to verify it?
#
aaronpk
you can't know what was signed unless you know how the data was normalized
#
puckipedia
nightpool[m]: combination of two issues
#
aaronpk
I guess salmon solved it by serializing the data into a byte stream and signing it as an opaque blob
#
puckipedia
primarily, that the JSON-LD representation may not be stored as-is, which means things could swap around
#
puckipedia
and also, conflicting extensions
#
nightpool[m]
mmm. still not quite seeing the issue
#
puckipedia
e.g. kroeg-c# has a non-issue where sets are stored /inverse/
#
puckipedia
aka if you have {"attachment": [a, b, c]} kroeg will return [c, b, a]
#
puckipedia
this is all fine specwise
#
nightpool[m]
i guess the difference is if you're storing the signature and verifying it later, or verifying it at the ingress point and then discarding it
#
puckipedia
I would keep them
#
nightpool[m]
there's no reason your internal representation should come into signature verification at all
#
nightpool[m]
is my point
#
puckipedia
e.g. {"type": "Like", "signature": ..., "object": {"id": "hxxp://remote/asdf", "to": "as:Public", "signature": ...}}
#
puckipedia
nightpool[m]: I store the raw ogbjects I receive, but RDF-ized
#
nightpool[m]
right
#
nightpool[m]
but why not verify signatures at point-of-reception?
#
puckipedia
I will also
#
puckipedia
but why not keep them
#
nightpool[m]
before they're RDF-ized?
#
puckipedia
what's the use of discarding signatures
#
nightpool[m]
means you don't have to worry about normalization :P
#
puckipedia
like, the advantage of signatures is that you can embed the objects safely and the remote server doesn't need to pull it to verify it
#
puckipedia
nightpool[m]: ahahahahaha
#
Loqi
puckipedia: lol
#
puckipedia
so
#
puckipedia
secure scuttlebutt.
#
nightpool[m]
is that what they do?
#
puckipedia
well, here's the thing
#
puckipedia
their normalization is NodeJS's JSON.stringify
#
puckipedia
as in, that string is signed
#
nightpool[m]
i dunno, i'm just thinking out loud.
#
nightpool[m]
the JSON-LD processing is by far the most computationally intensive and fragile part of mastodon's security stuff right now
#
puckipedia
JSON-LD processing is pretty core to Kroeg and meow
#
nightpool[m]
is meow the new rust thing?
#
nightpool[m]
or smth else
#
puckipedia
no, it's a go activitypub server
#
nightpool[m]
oh, I haven't heard of it
#
puckipedia
it's pretty new
#
puckipedia
why is the json-ld processing fragile btw?
#
nightpool[m]
b/c it requires looking up remote contexts
#
puckipedia
I mean
#
puckipedia
it's either that
#
puckipedia
or embed the entire freaking context in each message
#
aaronpk
the current list of context URLs is already bigger than the payload of some notifications i'm getting
#
aaronpk
it's kind of silly
#
puckipedia
aaronpk: yeah
#
puckipedia
my contexts are "@context": ["https://www.w3.org/ns/activitystreams", "hxxp://server/-/context"]
#
Loqi
[Amy Guy] ActivityStreams 2.0 Terms
#
puckipedia
I'd have dropped the AS2 context as well
#
puckipedia
but it breaks Mastodon
#
nightpool[m]
hxxp?
#
puckipedia
so Loqi doesn't try to connect to server
#
nightpool[m]
oh
#
aaronpk
hahaha
#
aaronpk
Loqi++
#
Loqi
loqi has 8 karma in this channel (463 overall)
#
nightpool[m]
fun thing I found out the other day is that all hubzilla servers use their own context namespace
#
puckipedia
oh?
#
nightpool[m]
apschema link changes between servers
#
puckipedia
... *OW*
#
nightpool[m]
so technically you have to completely re-implement hubzilla extensions for every server you want to talk to
#
puckipedia
ow ow ow
#
puckipedia
anyways so far I have a slightly newer context.json
#
puckipedia
and well
#
puckipedia
it's ... small
#
puckipedia
and the "as:Public": null is to work around an AS2/AP spec issue
#
nightpool[m]
hmm?
#
nightpool[m]
this is the public collections thing?
#
puckipedia
yup. according to the json-ld spec, hxxps://www.w3.org/ns/activitystreams#Public has to be compacted into as:Public
#
nightpool[m]
why as:Public and not just Public?
#
puckipedia
because "Public" isn't defined
#
nightpool[m]
since it's unambiguous lol
#
nightpool[m]
ah
#
nightpool[m]
right right
#
puckipedia
oh dangit
#
puckipedia
it *is*
#
puckipedia
I'm not sure why it's not being compacted to that
#
nightpool[m]
lol
#
puckipedia
I think because it's defined as being an @id
#
nightpool[m]
how usable is new kroeg?
#
nightpool[m]
if I like, wanted to start building a client front-end on top of it?
#
puckipedia
ehm, should be fine enough for client-to-server things, not yet for server-to-server. there's no OAuth, but the rest should be fine-ish. also you need an older rust
#
nightpool[m]
what's up w s2s?
#
puckipedia
not yet implemented
#
puckipedia
I'm working on http signatures
#
fr33domlover
Hi everyone! I'm looking for advice on extending AP to project hosting
#
fr33domlover
Suppose there's a project hosted on server A
#
fr33domlover
I'm on server B and I open an issue targetting that project's issue tracker
#
fr33domlover
Normally in AP, I host the issue I created on my server B
#
fr33domlover
But then there's a problem: Server A decides on permissions! Which users are allowed to add tags to the issue, assign themselves to work on it, add it to a milestone and so on
#
puckipedia
so i'd fix this pretty easily
#
fr33domlover
And if I host the issue myself, server B doesn't have any control over what happens with the issue
#
puckipedia
server A creates the issue, then requests server B to create a Create activity pointing at A/object
#
fr33domlover
puckipedia, does the issue ID URL point to server A (where the project is) or server B though (where my account is)?
#
fr33domlover
Normally the answer is B, but,
#
puckipedia
the issue is on server A, the create activity is on server B
#
fr33domlover
When permissions are invlolved
#
fr33domlover
I'm unsure
#
puckipedia
{type: Create, object: hxxp://A/issue/1, id: hxxp://B/activity/22319239, actor: hxxp://B/user
#
fr33domlover
puckipedia, hmmmm what about the usual microblogging case like in Mastodon? Where do IDs of comments point, the server that hosts the post or the comment author's server
#
puckipedia
shrug, both'd be valid
#
nightpool[m]
normal comments are owned by the people making them
#
nightpool[m]
in a microblogging case
#
puckipedia
my concept of activitypub servers is that they are mostly just an object store, and then there's clients that talk activitypub c2s
#
nightpool[m]
because comments are on the same conceptual level as the things they're replying to, ish
#
puckipedia
nothing is stopping a server from hosting the object on their own server instead of hosting it on the actor's server
#
nightpool[m]
trustworthy attribution?
#
puckipedia
nope. the Create activity pointing to the remote serveris fine enough
#
puckipedia
for the rest, there's, hehe, signatures
#
fr33domlover
puckipedia, well the server keeps a copy anyway I guess
#
fr33domlover
The question is what the ID is
#
puckipedia
fr33domlover: the ID is wherever the master copy object is stored
#
fr33domlover
puckipedia, yeah I mean I'm wondering if the presence of permissions is a reason to put the created object on destination server rather than source
#
nightpool[m]
something something ocap
#
puckipedia
fr33domlover: you could, I wouldn't quite be surprised
#
fr33domlover
nightpool[m], suppose on a microblogging server I can control which users are allowed to comment on my post. Is that a reason to make comments be hosted on my server rather than on authors' servers the way it works in Mastodon afaik?
#
nightpool[m]
mmm it's a little complicated
#
fr33domlover
Because either way it doesn't prevent people from hosting comments my whitelist accepts
#
fr33domlover
So I'm wondering
#
fr33domlover
Which option is better
#
nightpool[m]
since you'd have to think about who enforces where the comments are created
#
nightpool[m]
like, what's to prevent someone else from hosting the comment?
#
fr33domlover
nightpool[m], well yeah that's what I'm saying. Like, either way there's no way to keep the fediverse in sync if some badly behaving server exists
#
nightpool[m]
this is why cwebber loves to talk about ocap
#
nightpool[m]
i dunno.
#
fr33domlover
Option 1: Keep comments in authors' servers but use signatures to verify which comments I have accepted
#
fr33domlover
Option 2: I host the comments
#
nightpool[m]
it feels like this whole project hosting thing is gonna be shitty until we figure out in-page social interaction anyway
#
fr33domlover
Yeah I want to examine ocap
#
fr33domlover
I was wondering if someone here had insights etc.
#
fr33domlover
About how to do stuff with permissions involved
#
nightpool[m]
i think that puck's idea is the right one
#
puckipedia
nightpool[m]: so I think pump.io is implementing this?
#
nightpool[m]
having the object be owned by the hosting server and the activity creating the object be owned by the user is a really smart seperation
#
nightpool[m]
it wasn't one i had thought of but it makes a lot of sense
#
fr33domlover
nightpool[m], yeah technically I guess that separation can work. But even then like you said, people can host stuff that I've rejected due to permissions. In the other option, my server simply keeps a copy of the stuff it has accepted. So it doesn't feel like a big difference, I wonder if it's worth it to violate the "standard" of you-host-what-you-created
#
nightpool[m]
that's not the point
#
nightpool[m]
the point is that later, if (say) a project owner wants to edit the issue
#
nightpool[m]
they can
#
nightpool[m]
if someone else wants to host the issue and hook it into your repository then ...... whatever?
#
nightpool[m]
it might show up in feeds, but it won't show up in your issue tracker
#
nightpool[m]
or whatever
#
fr33domlover
nightpool[m], hmmm good point
#
fr33domlover
jaywink[m], what do you think? :P
#
fr33domlover
When you have a moment
#
fr33domlover
I'm getting conflicting opinions ^_^
#
puckipedia
I feel like the most opinions are all directed into one direction at least
#
nightpool[m]
i think so far the only people who have given you opinions have agreed haha
#
fr33domlover
nightpool[m], oh I talked about this in another channel ^_^
dxtr_ joined the channel
#
puckipedia
right, found the related pump.io thing
#
fr33domlover
So essentially,
#
fr33domlover
Every activity I need to be able to authorize,
#
fr33domlover
I must host?
#
fr33domlover
Instead of the author being the canonical host
#
nightpool[m]
no i think it's the other way around
#
nightpool[m]
every activity you might want to edit later
#
nightpool[m]
you should host
#
puckipedia
fr33domlover: as long as you trust the other servers, you don't. but you can't trust the others
#
nightpool[m]
you can authorize activities in a bunch of ways
#
nightpool[m]
like Announce or whatever
#
jaywink[m]
I don't see how the ID of something I create could be on another server
#
nightpool[m]
easy
#
nightpool[m]
you send them the content
#
jaywink[m]
so that server can create anything on behalf of anyone and claim they created it?
#
puckipedia
no
#
nightpool[m]
no, that's where the Create comes into play
#
puckipedia
jaywink[m]: the as:object is hosted on the server, the Create itself is still on the actor's server
#
jaywink[m]
doesn't sound right still, feels like a dirty hack
#
nightpool[m]
why?
#
nightpool[m]
you Created the object, but it's not your object, it's an Issue in an issue tracker or something
#
jaywink[m]
what is the benefit?
#
jaywink[m]
why isn't it my object? I created it
#
jaywink[m]
just like a status message on a microblogging platform
#
nightpool[m]
Github allows project owners to close, edit, or remove issues.
#
jaywink[m]
but that is just a definion matter in the GitPub or whatever it would be called extensions
#
nightpool[m]
definition how?
#
puckipedia
jaywink[m]: what if the hosting server refuses to close/edit/remove the issue
#
jaywink[m]
for example that "receivers should respect the activities from the repository they're targeting"
#
jaywink[m]
puckipedia: does it matter? if the repository closes their local object
#
puckipedia
there is no "local object". the issue is the object that is now remotely hosted
#
puckipedia
what if a server hosting an issue disappears
#
puckipedia
does that mean that the issue just, vanishes?
#
jaywink[m]
that sounds terribly inefficient to not cache objects locally
#
puckipedia
it's cached locally, yes
#
nightpool[m]
it doesn't matter whether it's cached locally or not
#
puckipedia
but you can't touch it because you're not the authoritative server
#
nightpool[m]
it matters who can actually edit the object that the other server is serving via http!
#
jaywink[m]
why not? if it's defined in the protocol
#
puckipedia
should
#
puckipedia
whta if a server believes it is the owner of the repo, but isn't
#
fr33domlover
On one hand, project author deserves to be in control of project's work plans. On the other hand, issue author deserves to own stuff they've published. Either way, the copy hosted by the project's server is what's useful to the project team. The question is, is it the authoritative copy or just a cache... :p
#
jaywink[m]
each server in the end will own whatever data they host
#
jaywink[m]
no protocol can change that :)
#
puckipedia
exactly
#
puckipedia
that's the point we're making
#
jaywink[m]
if I host the linux kernel, I m in control
#
puckipedia
yes, but you aren't the canonical host
#
jaywink[m]
I can close all the issues sent to my server, even if the ID's point elsewhere
#
fr33domlover
Logically when you open an issue, the project team should have control. You're welcome to post versions of it for fun like Mastodon toots, but, project team hosts their copy of the issue you opened and that's the copy that matters to the project
#
puckipedia
jaywink[m]: you can make changes, but that won't change what other people's kernels look like
#
puckipedia
and I'm not gonna trust your server to send me the proper commits, I'd validate with the server that owns it, aka linus's servers
#
jaywink[m]
exactly. that is why this works
#
puckipedia
so even if I close the issue, other servers will verify with the server that hosts that issue, which says "yeah it's still open"
#
jaywink[m]
if I post an issue to linus's server, the object ID imho should point to me
#
jaywink[m]
but linus can close it or rejct it
#
jaywink[m]
and it will not show in the official linus server
#
jaywink[m]
but it will show on mine maybe
#
jaywink[m]
but who cares?
#
puckipedia
ok so
#
puckipedia
now we have a malicious server, which spams issues
#
puckipedia
the official server has it blocked
#
puckipedia
does that mean all other servers show ten thousand spam issues
#
nightpool[m]
how do you tell the difference?
#
puckipedia
between spam and not spam?
#
jaywink[m]
depends what the protocol says. maybe the protocol says "trust only issues posted from the repository"
#
jaywink[m]
inbox forwarding
#
nightpool[m]
no sorry that was @ jaywink
#
saranix
not
#
saranix
depends on the impl permission paradigm
#
saranix
protocol does not specify
#
saranix
but practically
#
fr33domlover
Another possibility: Issue is hosted by author but there's a new Sign activity where the project team can GPG-sign stuff they have accepted
#
fr33domlover
(according to permissions etc.)
#
puckipedia
fr33domlover: ... no
#
jaywink[m]
ah, but it could. we're talking about extensions on activitypub, there is possibility to define there
#
puckipedia
that'd be chaos
#
saranix
if I'm on bloggosoft, and spamco.com puts out issues that are blocked by linux.org, but I am friends with spamco.com, I will probably still see spamco, because I have permissions for them and they deliver directly to my inbox
#
nightpool[m]
you don't even have to be friends with spamco for that to happen
#
nightpool[m]
they can just deliver directly to all the inboxes they care about
#
saranix
but if my software is set to block randos
#
nightpool[m]
eh
#
nightpool[m]
what instances are actually whitelist in practice?
#
nightpool[m]
very few because it hurts the network
#
saranix
hubzilla
#
fr33domlover
jaywink[m], note that creating remotely isn't against AP - you can even make a CreateOnDestination activity to be clear the object is to be created on the destination server
#
saranix
diaspora?
#
fr33domlover
It's not the way freely posted stuff is working
#
saranix
I know it doesnt speak ap, but
#
fr33domlover
But it doesn't violate AP
#
saranix
even if there weren't impl that currently do that, that doesn't mean anything anyways
#
puckipedia
and yeah, I feel like locking down as:inbox is deifnitely a valid implementation strategy
#
saranix
puckipedia++
#
Loqi
puckipedia has 16 karma
#
puckipedia
you could say that mastodon even does it
#
fr33domlover
puckipedia, why would the Sign activity create chaos? Suppose I'm a project member, I browse an issue hosted remotely, my client verifies the signatures and I can tell my server has accepted all the stuff I see etc. Hmm I guess a posible problem is, what if some other server fails to notify my server on some relevant activity, and I don't see it in my client - so I can't tell there's some missing
#
fr33domlover
unverified permission-violated activity out there that other people do see :p
#
puckipedia
fr33domlover: use inline signatures on the objects instead
#
fr33domlover
I guess the create-on-destination idea may be the best
#
puckipedia
the remote server owns an object that is signed by the user?
#
jaywink[m]
fr33domlover: I do fail to see why though. To me this is not in the spirit of decentralization or federation but trying to follow a centralization pattern
#
jaywink[m]
the author of the object would basically only be the creator, but the object would not be theirs
#
fr33domlover
jaywink[m], it still is totally in the spirit of federation!! Think about it like this: A repo hosts and controls its issues and MRs and commits and whatever other assets, but people can still open issues and MRs and comment and make project teams etc. across servers
#
jaywink[m]
sure the protocol could say "please respect the creator when receiving edits", but it feels like just a hack
#
fr33domlover
When I envisioned federation for my forge project I never thought about people hosting their issues and MRs etc. to be honest
#
saranix
{ type:[Create,Add], object: {obj}, target:https://remoteserver/appropriate/collection/" }
#
fr33domlover
It's not a requirement for decentralization
#
jaywink[m]
the repo always controls their issues and assets, that can't be changed by anything
#
fr33domlover
jaywink[m], think about a repo like a post: I create a post, I control it. Other people can propose changes but I control and manage it on my server
#
fr33domlover
I understand what you're saying
#
fr33domlover
But hosting repo stuff all on the repo's server doesn't ruin the decentralization
#
saranix
the way things are now, issues belong to a fork. It is interesting to think about issues that belong to all forks collectively though......
#
fr33domlover
Think of "repo" as the atom rather than "issue/MR/comment"
#
nightpool[m]
i think an issue is a valid atom
#
nightpool[m]
but not an individual comment within that issue
#
nightpool[m]
and even though someone "opened" the issue, really they just made the first comment on it
#
jaywink[m]
well, not in github/gitlab etc world
#
nightpool[m]
no, i think that the mental model is still correct with github
#
nightpool[m]
consider that the owner of the repository can edit the issue's text, title, categorization
#
jaywink[m]
no, on github the author can edit and close the issue
#
nightpool[m]
and the person who opened it can't even re-open if it gets closed
#
nightpool[m]
i'm aware
#
fr33domlover
The point is that it should be flexible: In project X any user can open an issue, in project Y only project members can. And so on
#
saranix
"and the person who opened it can't even re-open" <- that would be impossible to enforce... if my software allows it, and my friends reopen, I'll still see it as open, even if your project ignores it]
#
fr33domlover
I mean, people can post toots that looks like issues on project Y, but, to the project team they don't exist
#
nightpool[m]
saranix: again, not if the issue is hosted on the server that hosts the repo
#
nightpool[m]
i think what puckipedia was saying about servers disappearing makes sense here as well. If someone's server goes down, should all of their issues disappear?
#
saranix
"toots that looks like issues" <- I was wondering about this for a diff project... how would I allow mastodon users to post complex objects that mastodon knows nothing about? some kind of magic markdown?
#
jaywink[m]
the server hosting the repo or issue tracker always has the final say
#
nightpool[m]
make mastodon a c2s server lol
#
nightpool[m]
jaywink: not if they don't have authority over the url
#
nightpool[m]
that's the ""final"" say
#
jaywink[m]
if I browse to git.linux.org which is an activitypub based code hosting platform and browse issues, it will have final say, no matter where the objects point to
#
fr33domlover
Either way repo's server can display its version of an issue, but yeah when the actual issue ID URL is elsewhere, people will find it and see some different version that the project team may disagree with
#
jaywink[m]
just like I can delete remote posts from my server and they will be gone
#
jaywink[m]
not from the remote
#
jaywink[m]
but from my server
#
jaywink[m]
and if the protocol defines, and I delete a comment, from any remote servers that respect my authority
#
jaywink[m]
the key is defining who has authority. in this case, the repository
#
nightpool[m]
jaywink: imagine that you're using an AP client, and you request git.linux.org/issues. It says it has 50 issues: ["https://nightpool.club/myissue", "https://jaywink.com/issue1"]
#
nightpool[m]
what happens when I start serving different issue objects to different people?
#
fr33domlover
jaywink[m], say you browse git.linux.org and it's a JS app running in your browser - where does it GET issues from? An informal cache they keep, or does it GET the actual issue IDs to fetch the data? What if someone browses those ID URLs and sees stuff the repo team disagrees with? How do they tell that content hasn't been authorized by repo team
#
saranix
anyone have any thoughts on servers originating complex objects that the originating software doesn't understand?
#
nightpool[m]
nightpool.club could say "fuck the developers and fuck this project!!!" when anyone who isn't a linux developer requests it
#
puckipedia
saranix: shrug, Kroeg handles it fine
#
nightpool[m]
saranix: that's what the c2s api is for
#
jaywink[m]
ah well, now we're talking c2s
#
jaywink[m]
I'm talking s2s :)
#
nightpool[m]
it works fine if you think if AP objects as opaque LD data. it breaks if you want your server to have application logic associated with it
#
saranix
puckipedia: I mean like if I have a {http://custom.example/foo" object type, with 2 fields, "something", and "otherthing", and they have special meaning on my site, I want people to be able to create these objects from on their home mastodon site
#
fr33domlover
saranix, on one hand there's c2s, on the other hand do we want servers that just transparently accept any activity coming via c2s?
#
puckipedia
saranix: yeah, kroeg is fine with that
#
fr33domlover
I'm unsure tbh
#
nightpool[m]
jaywink: i'm still talking about s2s!
#
saranix
puckipedia: "fine with that", you don't understand
#
saranix
puckipedia: how does someone craft their mastodon post to look like a "customfoo" object
#
puckipedia
saranix: it will just assume it's a plain non-special activity, and host it, publish it, run the normal privacy rules
#
puckipedia
oh right that
#
puckipedia
yeah, idk how mastodon would implement it
#
puckipedia
possibly "not"
#
nightpool[m]
mastodon would implement it by implementing the c2s spec
#
puckipedia
but there's going to be enough servers that /will/, if everything is going right
#
jaywink[m]
nightpool loves systemd: then I don't understand the problem
#
saranix
I don't want to rely on mastodon or anyone else implementing, that's the whole point
#
saranix
I want anyone from any activitypub software to be able to create "customfoo" objects
#
saranix
without their software knowing how
#
jaywink[m]
has had a few beers, so possibly is not at his best
#
puckipedia
saranix: as in, they need to handle creating flexible objects, which mastodon can't do
#
nightpool[m]
saranix: you can't do something that your server forbids you from
#
saranix
users don't GAF
#
saranix
they will want to do this
#
saranix
they don't care about technical whatwhat
#
fr33domlover
saranix, I like that idea too! But we need to think whether it's safe to just accept any activity you create on the client
#
fr33domlover
What if some stuff has extra logic associated with it
#
nightpool[m]
no. i'm trying to say deeper then that. if I try to go post "fuck you!" on mastodon, and it has a swear filter, then there's nothing i can do about that
#
fr33domlover
Like permissions
#
nightpool[m]
i have to use a different software
#
saranix
That's why I suggested some kind of magic markdown syntax
#
saranix
that lets you create objects from plaintext
#
nightpool[m]
mastodon could ban it
#
saranix
they could
#
saranix
stop being so negative
#
puckipedia
saranix: .... what exactly are you trying to do
#
puckipedia
like
#
puckipedia
{"type": "Note", "content": "-- magic stuff here--"}
#
saranix
puckipedia: yes
#
puckipedia
I mean, the whole point of activitypub is that you can do {"@vocab": "http://custom.example/foo#", "type": "CustomObject", "something": "a", "otherthing": "b"}
#
saranix
yes but there is no software that even remotely supports that right now
#
saranix
I need something that *works* *now*
#
saranix
not some future spec that relies on cooperation that will never come
#
puckipedia
this isn't a future spec
#
saranix
custom vocab
#
saranix
if the custom vocab doesn't exist yet, it's future ;-0
#
nightpool[m]
i'm so confused
#
nightpool[m]
i'm not trying to be negative i'm trying to say your usecase makes zero sense
#
nightpool[m]
you have to have some future spec to write your magic plaintext thing!
#
saranix
nightpool[m]: "your usecase makes ]zero sense" just because you don't understand what I'm saying doesn't mean I'm not making sense
#
fr33domlover
I have a use case for saranix's thing: I want to open an issue on some repo, and be able to do that from my Mastodon account instead of opening a 2nd fediverse account (since I don't want to open repos, just open an issue that's all)
#
saranix
fr33domlover: precisely
#
nightpool[m]
fr33domlover: right. and that's what the c2s api is for
#
puckipedia
saranix: I see nothing future here
#
saranix
nightpool[m]: no c2s even exist right now, that's not a solution
#
puckipedia
(I wanted to do @vocab, it broke things)
#
nightpool[m]
saranix: plenty of c2s servers exist
#
fr33domlover
nightpool[m], but would it be safe, if Mastodon servers blindly let *any* activity through? Just wondering
#
nightpool[m]
fr33domlover: yes?
#
saranix
if a server says it supports activitypub, and mastodon says it supports activitypub, they will expect that they will be able to use their mastodon to create the other type of posts without signing up to a whole new site. otherwise what is the point of decentralized? users will be very pissed.
#
jaywink[m]
fr33domlover: I still don't see the problem. just post a {create: {issue}} to the target repo
#
puckipedia
saranix: exactly, and I'm disappointed that this isn't the case, and that most people just implement the bare minimum
#
fr33domlover
nightpool[m], hmmm ok semi related question: If I create an issue, repo's server rejects it (I'm not allowed to open issues there) - does my server still host the Create activity or does it discard it
#
nightpool[m]
saranix: i don't think users expect that and I don't think that "create the other type of posts" makes any sense to a normal user
#
nightpool[m]
if they sign up for a mastodon account they expect to be able to make mastodon posts lol
#
puckipedia
huh, I thought the default flavor text mentioned activitypub
#
nightpool[m]
Anyway, if mastodon thought users expected that then they could support the c2s api like many servers here do https://activitypub.rocks/implementation-report/
#
saranix
nightpool[m]: you clearly don't have experience with the users I'm talking about. I do. If I said to you any of the stuff you keep saying, they would get angry with me that I don't get what they want, and they will simply walk away from the business relationship e.g. lost customers. That's not acceptable. Customer is always right.
#
saranix
*said to them*
#
saranix
I understand your point of view.
#
saranix
It's not me that needs convincing.
#
saranix
It's the users, and they are unconvincable. Period.
#
nightpool[m]
that's an extreme user-hostile attitude to have
#
saranix
They want what they want, and it's up to us as technologists to give it to them..
#
saranix
nightpool[m]: "custoemr is always right" is user-hostile? you mean the users are hostile?
#
nightpool[m]
Well, i don't get why you came to us to grind your axe about mastodon's supposed bad treatment of it's users
#
nightpool[m]
no i mean that treating your users as unthinking forces of nature that can never be reasoned with is user-hostile lol
#
saranix
nightpool[m]: no one said anything about mastodon's users
#
nightpool[m]
what is this use-case about if not for mastodon's users?
#
saranix
nightpool[m]: have you never run a business? or been a sys admin?
#
nightpool[m]
users are people just like anyone else and saying that technology is magic that can never be explained to them is blatantly disrespectful
#
saranix
nightpool[m]: telling them that they can get what they want if all they have to do is x,y,z or must use other software, or must sign up[.... that's not understanding what they want in the first place
#
saranix
why don't you get it?
#
nightpool[m]
anyway, you said "[users] will expect that they will be able to use their mastodon to create the other type of posts without signing up to a whole new site"
#
nightpool[m]
that's "mastodon's users"
#
saranix
I'm done with you, I called for ideas, not bullshit "it doesn't matter" excuses and fighting.
#
saranix
nightpool--
#
Loqi
nightpool has 14 karma
#
nightpool[m]
k
#
puckipedia
... wow you can do that
#
puckipedia
nightpool[m]: I see this more as a generic thing, where someone registers with an AP-compatible server expecting it to just work
#
saranix
puckipedia: you get it :-)
#
nightpool[m]
puckipedia: that assumes users have a mental model of what AP is
#
puckipedia
nightpool[m]: it comes up kinda quickly because of the federation thing
#
saranix
and yet you want them to know what AP C2S...that's not having a mental model?
#
fr33domlover
saranix, btw interesting point: Mastodon limits by default to 500 chars. I guess if it accepted any activity, you'd still want some size limit on the objects etc.
#
saranix
fr33domlover: oh yeah, forgot about that...hopefully 500 is big enough though
#
puckipedia
I wonder if I should set up patreon/whatever for Kroeg
#
nightpool[m]
puckipedia: i'd contribute
#
puckipedia
mmm
#
puckipedia
I need to figure out how it works taxwise
#
puckipedia
like, it'll probably go to sole proprietor
#
saranix
fwiw, hubzilla used pseudo-bbcode for this e.g. [customobj][meaningful=something][/customobj] but then people complained and it got moved to proper json metadata attached to the post, but then that still requires all involved servers to have the same plugin enabled to be able to understand that data... which is kind of what we are trying to avoid here
#
nightpool[m]
puckipedia: most patreon campaigns are "Support this person creating internet stuff!" for flexibility and stress reasons.
#
nightpool[m]
and people don't generally seem to have a problem with that
#
nightpool[m]
A lot of feedback i've seen when people have gotten stressed out over not being able to provide enough content for their patreon or do enough things to feel like it "counts" is "We're supporting you, not the product"
#
puckipedia
nightpool[m]: yeahhh, I'd probably say "weird social networking stuff"
#
puckipedia
at the same time, I'm slightly scared if Kroeg is far enough to dothis
#
puckipedia
I shouuld probably finish auth, federation, and add a mastodon api wrapper
#
puckipedia
also I need to figure out if I can offer like, hosting, for patreon rewards
#
puckipedia
probably not, I can fix that issue though
widowclip joined the channel
#
widowclip
Can I toss out a hot take regarding the issue-tracking discussion earlier?
#
widowclip
Read the logs on the indieweb thingy
#
saranix
lol
#
puckipedia
widowclip: ... go ahead?
#
widowclip
As a project owner I feel like I should own my repository and that includes my issue tracker. Anything submitted there I would consider a contribution, and hence ownership forfeited by the author. Therefore, I would suggest requiring issues to live on the server hosting the projectt
#
nightpool[m]
fwiw we had this whole same argument last time we talked about this lol
#
saranix
windowclip: I think most of us agree on that
#
nightpool[m]
it's in the meeting logs for i think the second-most-recent socialcg meeting
#
widowclip
The meeting logs are not posted
#
widowclip
most recent is in june
#
nightpool[m]
that's also the most recent meeting
#
widowclip
Oh, was one skipped?
#
nightpool[m]
we've been pretty off and on because of cwebber2's move
#
nightpool[m]
and a general slowing down of interest
#
widowclip
Also my bad, my understanding of the discussion it seemed assumed that the issue author had ownership of their issue. Didnt realize my take was in fact lukewarm atbest
#
saranix
there are other types of data where the answer may be different, but in the case of git, each repo owns their fork and each fork has their own issues, that's just the way git works, so anything different would be something new. But other things, the reverse is true perhaps
#
Loqi
[tantek] ajordan: we don't need to be tied to previous silo UX
#
nightpool[m]
that's the start of the discussion we had last month on the exact same issue we just rehashed here lol
#
saranix
lol
#
nightpool[m]
widowclip: yeah it seems pretty evenly split between people who think that the issue author should have ownership and that the repo should have ownership
#
widowclip
I think part of the discomfort is that on one level federation is really just a common api for servers to chat about whats been going on in their respective silos
#
saranix
I think it goes much deeper than UX with git. The git data structures themselves, the issues are part of the fork, they are data inside the fork
#
puckipedia
-> bed
#
widowclip
obviously that enables the servers to do things that we also call federation that is not possible in the content silo model but like still
#
nightpool[m]
waves goodnight to puck
#
widowclip
I dunno how to do this third party stuff in irc but have a nice night!
#
widowclip
person*
#
nightpool[m]
it's /me
#
widowclip
Neat. Thanks
#
widowclip
Is the federated community trying to make a single sign-on solution where you have one account that acts on your behalf or are people pretty comfortable retaining one account per service model
#
widowclip
And by federated community I mean people in this chatroom who wish to respond
#
saranix
I'm working towards the former model. indieauth is an example of a community in that model
#
saranix
s/in/favoring/
#
aaronpk
I have no interest in making multiple accounts everywhere. I want to be able to use my website as my identity everywhere.
#
widowclip
aaronpk: you also administrate your own domain correct?
#
widowclip
host your own content, and all the AP things that you do?
#
aaronpk
yeah, I didn't want a separate mastodon account, I want people on mastodon to follow my content directly
#
widowclip
Do you think that users who are not comfortable doing that could be given that as a service?
#
aaronpk
micro.blog is an example of that
#
saranix
aaronpk: oh? you needed a separate mastodon account?
#
aaronpk
saranix: no the point is I didn't want to make a mastodon account and just copy my posts there like others are doing. I want my website to *be* a mastodon/activitypub account
#
widowclip
Thank you I will look at that. I am trying to understand how federated services work, and particularly how they work for a variety of people
#
saranix
aaronpk: and you achieved that, yes? mastodon did not get in the way of that?
#
aaronpk
correct. if you look at any of the threads i've been replying to, my posts show up on mastodon like all the other posts in the thread, but the timestamps link back to my website.
#
widowclip
aaronpk: I have actually seen your website, it is an incredible demonstration, really great work.
#
aaronpk
thanks widowclip
#
widowclip
Does micro.blog have a very general AP client? I feel like a client which can create and POST arbitrary objects would be useful.
#
aaronpk
no, micro.blog uses Webmention, Micropub and IndieAuth
#
aaronpk
micro.blog's apps are actually Micropub clients, so they can work with other servers besides micro.blog
#
saranix
I hope that a client which can create and POST arbitrary objects will become the norm eventually...
#
saranix
solves a lot of problems
#
saranix
shouldn't be hard to make a ux that you just paste a context into, it fetches it then creates appropriately typed form fields...
#
widowclip
saranix: i feel like there is a UX gain in specializing the content you make. If I want to read and consume 500 character content then mastodon (or halcyon) is optimized for that. If I want to consume video then a peertube client provides a nice interface.
#
aaronpk
in practice, apps are usually much more complicated than just a set of form fields
#
widowclip
Maybe I point both at a domain where I have a user whose inbox is full of both kinds of content, and they each give me a different view into my AP world
#
saranix
true
#
aaronpk
widowclip: I like that idea
#
widowclip
I think that is the great promise of AP c2s
#
aaronpk
in the indieweb we're doing something similar with creating different reader interfaces, both as different apps and even different views within the apps
#
saranix
yeah, I started writing a c2s in that idea about a year ago... I forget how far I got. I think I got held up on ld-sigs
#
widowclip
You host your user with some server you trust, imho probably running software more general than mastodon or peertube, and then can point any client you like at it. Hell, run a matrix instance too.
#
aaronpk
here's a few screenshots of some different views on the same data https://github.com/cleverdevil/together/
#
widowclip
Neat
#
widowclip
Although, now I am just thinking out loud but I guess the specialized server software has an important use case: say you are a twitter celebrity with a million followers who pretty much only tweets, I think the best way for the federated world to host you is on your own instance, running mastodon to take advantage of the shape of the data.
#
widowclip
Or maybe the vlogbrothers (are they still around?) want to create an online community centered around vlogging, they could host a peertube instance for themselves and their followers. I guess the biggest hurdle then for that category of use is they need to hire a Sys Admin
#
saranix
I think the most interesting part of it is the psychology. Like there are certain site layouts that are really popular, that I just can't read. Twitter, mastodon, etc. among them. So therefore I am disenfranchised by being cut off from this information, or by not absorbing it the same way as the rest of society. The other option is to try to conform, try to make myself think like everyone else so it isn't so visually jarring...
#
saranix
So you see, in a way, having just 1 way to view information, is really discrimination of sorts...
#
widowclip
Not to mention users whose disability/accessibility issues interfere with their consumption of content
#
saranix
yes... it is as true of recognized humanodiversity as unrecognized
#
widowclip
I think that is the thing, it is almost impossible as a designer to account for every possible human, so we must empower users to shape their own experiences whenever possible.