# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 61083
# self = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=37191
# next = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=37291
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=37091
answerdev/answer: An open-source knowledge based community software. You can use it to quickly build your Q -- Came across thisย nice little tidbit a few nights ago ๐Ÿ‘Œ I guess it s self-hosted clone of something like Stackoverflow? And written in Go! ๐Ÿ˜…
answerdev/answer: An open-source knowledge based community software. You can use it to quickly build your Q -- Came across thisย nice little tidbit a few nights ago ๐Ÿ‘Œ I guess it s self-hosted clone of something like Stackoverflow? And written in Go! ๐Ÿ˜…
@abucci Thanks tip and reminder ๐Ÿ‘Œ I always forget the special keyword to type on those rare occasions you need to bypass the bad/invalid cert. And yes I can confirm nitter.net is having cert issues, I actually confirmed this earlier today but forgot to mention to you...
@abucci Thanks tip and reminder ๐Ÿ‘Œ I always forget the special keyword to type on those rare occasions you need to bypass the bad/invalid cert. And yes I can confirm nitter.net is having cert issues, I actually confirmed this earlier today but forgot to mention to you...
[(1) Australia's Worst Billionaire - YouTube](https://www.youtube.com/watch?v=A-tUvSNwFig) Oh boi ๐Ÿคฆโ€โ™‚๏ธ All about the awesome (NOT) business practices of Justin Hemmes - Wikipedia ๐Ÿคฆโ€โ™‚๏ธ
[(1) Australia's Worst Billionaire - YouTube](https://www.youtube.com/watch?v=A-tUvSNwFig) Oh boi ๐Ÿคฆโ€โ™‚๏ธ All about the awesome (NOT) business practices of Justin Hemmes - Wikipedia ๐Ÿคฆโ€โ™‚๏ธ
@tkanos Right. I think @lyse, @abucci and I are converging (get it? ๐Ÿ˜…) on a few key ideas:

- Converge currently exchanges missing twts between peering pods (It used to validate this, and so that should be fixed)
- Pods can mark Twts for deletion for feeds they follow where twts found in cache/archive that no longer exist in the feed.
- A similar function can be "codified" that supports periodic exchange of deletions
- A "trust" mechanism that involves human operators to build a a level of trust of peering pods that _can_ participate in deletions.

Did I miss anything so far? ๐Ÿค”
@tkanos Right. I think @lyse, @abucci and I are converging (get it? ๐Ÿ˜…) on a few key ideas:

- Converge currently exchanges missing twts between peering pods (It used to validate this, and so that should be fixed)
- Pods can mark Twts for deletion for feeds they follow where twts found in cache/archive that no longer exist in the feed.
- A similar function can be "codified" that supports periodic exchange of deletions
- A "trust" mechanism that involves human operators to build a a level of trust of peering pods that _can_ participate in deletions.

Did I miss anything so far? ๐Ÿค”
Nope I suck! ๐Ÿ˜…
Nope I suck! ๐Ÿ˜…
@carsten It was called "Mario Bros" ๐Ÿ˜… -- Gonna see if I can still play it ๐Ÿ˜…
@carsten It was called "Mario Bros" ๐Ÿ˜… -- Gonna see if I can still play it ๐Ÿ˜…
@marado This kind of reminds me of umm that similar platform game where you bump turtles? shit what was it called?! ๐Ÿคฆโ€โ™‚๏ธ
@marado This kind of reminds me of umm that similar platform game where you bump turtles? shit what was it called?! ๐Ÿคฆโ€โ™‚๏ธ
So... The very long and controversial discussion many of us have been having over the last 24-48hrs or so... Would someone be willing to try to attempt to summarise all the different points and viewpoints we've made thus far into either a single Twt or an Issue so we can continue this in some logical fashion? ๐Ÿ™
So... The very long and controversial discussion many of us have been having over the last 24-48hrs or so... Would someone be willing to try to attempt to summarise all the different points and viewpoints we've made thus far into either a single Twt or an Issue so we can continue this in some logical fashion? ๐Ÿ™
@lyse You are right. Probably not worth doing that, has complexities of its own ๐Ÿ˜…
@lyse You are right. Probably not worth doing that, has complexities of its own ๐Ÿ˜…
@lyse Thank you! ๐Ÿ™
@lyse Thank you! ๐Ÿ™
@marado Actually that's been one of the goals all along when I first started out on this journey. So yes, we try very hard to ensure that whatever we do we build open standards for. Aside from the fact we use Markdown (but pretty much everyone else does too) I _think_ we've documented everything so far...
@marado Actually that's been one of the goals all along when I first started out on this journey. So yes, we try very hard to ensure that whatever we do we build open standards for. Aside from the fact we use Markdown (but pretty much everyone else does too) I _think_ we've documented everything so far...
@ocdtrekkie It's an interesting read indeed and the saga has been quite funny overall so far ๐Ÿ˜†
@ocdtrekkie It's an interesting read indeed and the saga has been quite funny overall so far ๐Ÿ˜†
@marado Also to be clear, feed redirects when a user deletes their account/feeds would be handled by the backend, no operator involvement required.
@marado Also to be clear, feed redirects when a user deletes their account/feeds would be handled by the backend, no operator involvement required.
@marado We can read that old Yarn/thread here:

https://search.twtxt.net/search?q=conv%3a%23opev6mq&p=1&t=qs&s=created&s=_id
@marado We can read that old Yarn/thread here:

https://search.twtxt.net/search?q=conv%3a%23opev6mq&p=1&t=qs&s=created&s=_id
@eaplmx To be honest I _think_ the Mobile App will be unaffected by any changes we make here as its basically a client to the Yarn API ๐Ÿ‘Œ
@eaplmx To be honest I _think_ the Mobile App will be unaffected by any changes we make here as its basically a client to the Yarn API ๐Ÿ‘Œ
@marado No need for any apologies ๐Ÿ˜… Super glad to have someone like you around and welcome back btw to Yarn.social / Twtxt ๐Ÿค—

I _think_ there was a good reason to only allow the # prev field to be relative, so that feed authors (malicious ones) couldn't just arbitrarily point a feed to some other random feed that wasn't there or something. I _think_ @movq wrote the spec if I'm not mistaken. I agreed with it at the time, I think I still do and yarnd fully implements it as of a few weeks ago.

Why do you think redirects won't work for deleted feeds/accounts? I've seen that before I _think_ on Bitbucket of all places, where if you delete a repo, you can tell the system where the new location will be.
@marado No need for any apologies ๐Ÿ˜… Super glad to have someone like you around and welcome back btw to Yarn.social / Twtxt ๐Ÿค—

I _think_ there was a good reason to only allow the # prev field to be relative, so that feed authors (malicious ones) couldn't just arbitrarily point a feed to some other random feed that wasn't there or something. I _think_ @movq wrote the spec if I'm not mistaken. I agreed with it at the time, I think I still do and yarnd fully implements it as of a few weeks ago.

Why do you think redirects won't work for deleted feeds/accounts? I've seen that before I _think_ on Bitbucket of all places, where if you delete a repo, you can tell the system where the new location will be.
@eaplmx Yeah the question is what does that mean in this discussion ๐Ÿ˜… -- Also its not that we had to build moderation features to satisfy the App/Play stores for the Mobile Ap (Goryon), it was mostly really just misunderstanding. Most of the folks that go through the app submission approval process don't even understand their own guidelines. At some point we had to rename buttons to different labels just to get it approved, even though the functionality was the same. There are no "moderation" features at all and hopefully we can keep things that way.
@eaplmx Yeah the question is what does that mean in this discussion ๐Ÿ˜… -- Also its not that we had to build moderation features to satisfy the App/Play stores for the Mobile Ap (Goryon), it was mostly really just misunderstanding. Most of the folks that go through the app submission approval process don't even understand their own guidelines. At some point we had to rename buttons to different labels just to get it approved, even though the functionality was the same. There are no "moderation" features at all and hopefully we can keep things that way.
@mckinley I was also thinking in general (need to make sure we have a feature request / issue for this) that the redirection would say last for 90 days before the pod stopped redirecting the feed.
@mckinley I was also thinking in general (need to make sure we have a feature request / issue for this) that the redirection would say last for 90 days before the pod stopped redirecting the feed.
@eaplmx Some of the main ideas and philosophy are documented here some of the mechanisms above like muting a feed and/or twt (or an entire yarn) had to be built to satisfy "content policies" for the mobile app for the APp and Play stores. That is to say, controls needed to exists for users to control what content they could or could not see. Apparently wasn't enough to just unfollow a user/feed. ๐Ÿคฆโ€โ™‚๏ธ -- Which I guess is fair enough as the same content could be visible to that user on the Discover view. But of course if you logout and use a pod's web interface anonymously, we have no idea who you are, so all bets are off ๐Ÿ˜… Honestly the whole "content" policy guidelines of both App and Play stores are just kind of silly and super pointless to me, and don't really make a terrible lot of sense in a "decentralised" world.
@eaplmx Some of the main ideas and philosophy are documented here some of the mechanisms above like muting a feed and/or twt (or an entire yarn) had to be built to satisfy "content policies" for the mobile app for the APp and Play stores. That is to say, controls needed to exists for users to control what content they could or could not see. Apparently wasn't enough to just unfollow a user/feed. ๐Ÿคฆโ€โ™‚๏ธ -- Which I guess is fair enough as the same content could be visible to that user on the Discover view. But of course if you logout and use a pod's web interface anonymously, we have no idea who you are, so all bets are off ๐Ÿ˜… Honestly the whole "content" policy guidelines of both App and Play stores are just kind of silly and super pointless to me, and don't really make a terrible lot of sense in a "decentralised" world.
@tkanos Haha that would be pretty funny actually ๐Ÿ˜… I've done it before by accident, its kind of weird, and then you realise, "oh shit I muted myself" ๐Ÿ˜…
@tkanos Haha that would be pretty funny actually ๐Ÿ˜… I've done it before by accident, its kind of weird, and then you realise, "oh shit I muted myself" ๐Ÿ˜…
@mckinley Oh that's probably a good point actually. Sorry, my mind is all over the place right now ๐Ÿ˜…
@mckinley Oh that's probably a good point actually. Sorry, my mind is all over the place right now ๐Ÿ˜…
As @mckinley its an important discussion to be had, so let's get this right ๐Ÿ‘Œ -- We've gotten so many other things right, I have full confidence we can get this right too ๐Ÿค—
As @mckinley its an important discussion to be had, so let's get this right ๐Ÿ‘Œ -- We've gotten so many other things right, I have full confidence we can get this right too ๐Ÿค—
@abucci Please don't apologise, we _knew_ this day would come. We just have to figure out the best way to solve this without breaking our own goals and vision.
@abucci Please don't apologise, we _knew_ this day would come. We just have to figure out the best way to solve this without breaking our own goals and vision.
@mckinley In order to complete "this ease" I _thin_ the only missing feature right now is "Delete and Redirect". That is to say, a user downloads their feed, deletes their account, puts in a redirect on the old pod and moves to a new one.
@mckinley In order to complete "this ease" I _thin_ the only missing feature right now is "Delete and Redirect". That is to say, a user downloads their feed, deletes their account, puts in a redirect on the old pod and moves to a new one.
@tkanos I also agree ๐Ÿ˜… (but not @tkanos's joke ๐Ÿคฃ )
@tkanos I also agree ๐Ÿ˜… (but not @tkanos's joke ๐Ÿคฃ )
I _actually_ wonder whether we're over thinking things a bit here entirely...

We already have several user controls:

- Unfollow a feed
- Mute a feed
- Mute a twt

And the pod operator of a multi-user pod can:

- Delete a feed
- Delete an account
- Shadow ban a feed

Because pods are sort of "distributed" I _really_ wonder whether we need to be all that concerned with deleting archived twts across the network at all? ๐Ÿค” It opens up a huge can of worms that _might_ be rather tricky to solve "right now"...

I _honestly_ think the best way to handle this as we grow/scale with more pods in the Yarn.social network is to just build up a strong positive community and just have a "zero tolerance" attitude towards abuse and just nuke offending feeds/accounts without question.

Hmmm? ๐Ÿค” As long as the software yarnd makes it easy for those (hopefully rare) abusive users to move their feeds elsewhere and take their data with them, maybe this is enough? ๐Ÿค”

I dunno ๐Ÿคทโ€โ™‚๏ธ
I _actually_ wonder whether we're over thinking things a bit here entirely...

We already have several user controls:

- Unfollow a feed
- Mute a feed
- Mute a twt

And the pod operator of a multi-user pod can:

- Delete a feed
- Delete an account
- Shadow ban a feed

Because pods are sort of "distributed" I _really_ wonder whether we need to be all that concerned with deleting archived twts across the network at all? ๐Ÿค” It opens up a huge can of worms that _might_ be rather tricky to solve "right now"...

I _honestly_ think the best way to handle this as we grow/scale with more pods in the Yarn.social network is to just build up a strong positive community and just have a "zero tolerance" attitude towards abuse and just nuke offending feeds/accounts without question.

Hmmm? ๐Ÿค” As long as the software yarnd makes it easy for those (hopefully rare) abusive users to move their feeds elsewhere and take their data with them, maybe this is enough? ๐Ÿค”

I dunno ๐Ÿคทโ€โ™‚๏ธ
@mckinley Ooof sorry no what I meant to say was yes your understanding is correct, and I also agree with you that we should try to avoid "policing" here.
@mckinley Ooof sorry no what I meant to say was yes your understanding is correct, and I also agree with you that we should try to avoid "policing" here.
@mckinley

> @prologic It seems very straight forward to do this automatically. When I delete my own post, how is that currently propagated to other pods?

In one of two ways:

- Users on the other pod follow your feed and therefore that pod has those Twts(s) archvied.
- Pods exchange "missing twts" each each other in a sort of "gossip" protocol.
@mckinley

> @prologic It seems very straight forward to do this automatically. When I delete my own post, how is that currently propagated to other pods?

In one of two ways:

- Users on the other pod follow your feed and therefore that pod has those Twts(s) archvied.
- Pods exchange "missing twts" each each other in a sort of "gossip" protocol.
@mckinley

> If a pod admin decides to delete a post on his pod as you have, that deletion should eventually be propagated throughout the network

The problem is this. โ˜๏ธ This is _very hard_ to do "automatically" without having to also worry about "malicious" pods or software propagating unintended or unwanted "deletes"
@mckinley

> If a pod admin decides to delete a post on his pod as you have, that deletion should eventually be propagated throughout the network

The problem is this. โ˜๏ธ This is _very hard_ to do "automatically" without having to also worry about "malicious" pods or software propagating unintended or unwanted "deletes"
@mckinley Your understanding is correct. And there inlines the debate @lyse and I had this morning. There is a conflict of "right to be forgotten" in EU GDPR law(s), what to do with clear violations of abuse (on your pod, and how it affects other peering pods or the network as a whole_)

I agree with you, I have no rights to determine what should or should not happen on say @jlj's pod as much as he does mine. The default Abuse Policy is just that, the default.
_
@mckinley Your understanding is correct. And there inlines the debate @lyse and I had this morning. There is a conflict of "right to be forgotten" in EU GDPR law(s), what to do with clear violations of abuse (on your pod, and how it affects other peering pods or the network as a whole_)

I agree with you, I have no rights to determine what should or should not happen on say @jlj's pod as much as he does mine. The default Abuse Policy is just that, the default.
_
So maybe we can not worry about the "operator abuse" aspect, as that _might_ be a moot point as there is no "proprietary data formats" here and tools exist to move your feed anywhere else you want/desire.

I _think_ for multi-user pods, _some_ level of trust has to exist between its users (a pod's small community) and its operator -- I mean after-all I run twtxt.net as a multi-user pod free of charge and free from ads, etc, etc ๐Ÿ˜…
So maybe we can not worry about the "operator abuse" aspect, as that _might_ be a moot point as there is no "proprietary data formats" here and tools exist to move your feed anywhere else you want/desire.

I _think_ for multi-user pods, _some_ level of trust has to exist between its users (a pod's small community) and its operator -- I mean after-all I run twtxt.net as a multi-user pod free of charge and free from ads, etc, etc ๐Ÿ˜…
@abucci Actually I agree with this. We already have all the tools a user needs to basically migrate their feed off a pod to another or even host their own. The only thing left I can think of is a feature to "Delete and Redirect" your feed to somewhere else.
@abucci Actually I agree with this. We already have all the tools a user needs to basically migrate their feed off a pod to another or even host their own. The only thing left I can think of is a feature to "Delete and Redirect" your feed to somewhere else.
@jason I don't really follow? ๐Ÿค”
@jason I don't really follow? ๐Ÿค”
@abucci In real terms though won't that just be a rogue network of pods distinct and different but running the same (or modified) software? ๐Ÿค” This is a hard problem to solve, because it a "human problem". My view has always been that, if you believe in that kind of stuff, and like to be with other abusive groups of people, fine. But be on your own, and in the open. In other words, do we care? We would just not peer with pods like that or follow feeds from such folks? Right? ๐Ÿค” Being a decentralised network the power is in your hands, however the original Yarn is really about how we deal with abuse on our pods...

Hmmm ๐Ÿค” I _really_ do feel like we've opened a can of worms here ๐Ÿ˜…
@abucci In real terms though won't that just be a rogue network of pods distinct and different but running the same (or modified) software? ๐Ÿค” This is a hard problem to solve, because it a "human problem". My view has always been that, if you believe in that kind of stuff, and like to be with other abusive groups of people, fine. But be on your own, and in the open. In other words, do we care? We would just not peer with pods like that or follow feeds from such folks? Right? ๐Ÿค” Being a decentralised network the power is in your hands, however the original Yarn is really about how we deal with abuse on our pods...

Hmmm ๐Ÿค” I _really_ do feel like we've opened a can of worms here ๐Ÿ˜…
@eaplmx No, not really. In an ideal world, n operator of a multi-user pod would just nuke an account entirely that violates the (default) Abuse Policy -- So really in hindsight that's what should have happened I guess, but maybe I was just being nice in this instance... Problem of course is that this now opens up a can of worms...

In the past we've had some interesting folks swing by and post interesting stuff (to say the least) -- you know the type of vulgar crap that nobody really cares for, or spam, etc. You don't generally have to do anything about that because you as an individual can choose to "Unfollow" that feed, don't follow them in the first place, mute them, mute the hash in question (for yourself), etc.

This is more of a case of direction violation of the abuse policy / community guidelines and more of how we want to shape things -- without going too far down the "let's moderate" everything BS
@eaplmx No, not really. In an ideal world, n operator of a multi-user pod would just nuke an account entirely that violates the (default) Abuse Policy -- So really in hindsight that's what should have happened I guess, but maybe I was just being nice in this instance... Problem of course is that this now opens up a can of worms...

In the past we've had some interesting folks swing by and post interesting stuff (to say the least) -- you know the type of vulgar crap that nobody really cares for, or spam, etc. You don't generally have to do anything about that because you as an individual can choose to "Unfollow" that feed, don't follow them in the first place, mute them, mute the hash in question (for yourself), etc.

This is more of a case of direction violation of the abuse policy / community guidelines and more of how we want to shape things -- without going too far down the "let's moderate" everything BS
@akoizumi ROFL! ๐Ÿคฃ Get out! ๐Ÿ‘‰ ๐Ÿšช ๐Ÿ˜…
@akoizumi ROFL! ๐Ÿคฃ Get out! ๐Ÿ‘‰ ๐Ÿšช ๐Ÿ˜…
Thinking about this some more... We could implement some kind of majority voting system whereby pods will only delete a Twt by hash from its archives there is a majority of votes within a network of peering pods? ๐Ÿค” This would avoid any kind of abuse, or mitigate it, as >50% would have to agree ๐Ÿ˜… (oh wait where have I seen this before?! ๐Ÿคฆโ€โ™‚๏ธ)
Thinking about this some more... We could implement some kind of majority voting system whereby pods will only delete a Twt by hash from its archives there is a majority of votes within a network of peering pods? ๐Ÿค” This would avoid any kind of abuse, or mitigate it, as >50% would have to agree ๐Ÿ˜… (oh wait where have I seen this before?! ๐Ÿคฆโ€โ™‚๏ธ)
@tkanos That's precisely what we're trying to avoid ๐Ÿคฃ
@tkanos That's precisely what we're trying to avoid ๐Ÿคฃ
@mckinley Yes this is "moderation" I guess, strictly speaking. Which I'm not too happy about, and _seems_ unavoidable. Your comment raises an interesting question... Of whether we should do this at all, for risk of being abused to moderate away "unpopular" Twts across the network just because a few (a cooperative) don't like them? (but are otherwise not in clear violation of community guidelines?) ๐Ÿค”
@mckinley Yes this is "moderation" I guess, strictly speaking. Which I'm not too happy about, and _seems_ unavoidable. Your comment raises an interesting question... Of whether we should do this at all, for risk of being abused to moderate away "unpopular" Twts across the network just because a few (a cooperative) don't like them? (but are otherwise not in clear violation of community guidelines?) ๐Ÿค”
@lyse and I discussed this idea a bit on #Yarn.social on IRC -- Summary here
@lyse and I discussed this idea a bit on #Yarn.social on IRC -- Summary here
@lyse Oh good point ๐Ÿ˜† Yea I'll fix this ๐Ÿ‘Œ Mind filing an issue against the search repo? ๐Ÿ™
@lyse Oh good point ๐Ÿ˜† Yea I'll fix this ๐Ÿ‘Œ Mind filing an issue against the search repo? ๐Ÿ™
As discussed on IRC just now (g'night @lyse ๐Ÿ˜ด) couple of things we agree on:

- The API was always written like this, so changing it now is "too much work" ๐Ÿ˜… so we'll leave it the way it is.
- We don't complete agree on the "automatic deletion" just yet, and there are clear problems with this when pods exchange twts with each other (Convergence)
- We should document a design proposal and discuss
As discussed on IRC just now (g'night @lyse ๐Ÿ˜ด) couple of things we agree on:

- The API was always written like this, so changing it now is "too much work" ๐Ÿ˜… so we'll leave it the way it is.
- We don't complete agree on the "automatic deletion" just yet, and there are clear problems with this when pods exchange twts with each other (Convergence)
- We should document a design proposal and discuss
The only reason its there in the first place and the only reason I use Cloudflare at all is so my home infra doesn't get DDoS'd ๐Ÿ˜…
The only reason its there in the first place and the only reason I use Cloudflare at all is so my home infra doesn't get DDoS'd ๐Ÿ˜…
@marado And yes please! ๐Ÿ™
@marado And yes please! ๐Ÿ™
@marado Good god no ๐Ÿ˜†
@marado Good god no ๐Ÿ˜†
@cobra Ewww ๐Ÿคฎ ๐Ÿคฃ
@cobra Ewww ๐Ÿคฎ ๐Ÿคฃ
Morning all ๐Ÿฅฑ โ˜•๏ธx1
Morning all ๐Ÿฅฑ โ˜•๏ธx1
@marado No problem ๐Ÿ‘Œ
@marado No problem ๐Ÿ‘Œ
@marado Essentially a 3-way sync ๐Ÿ‘Œ
@marado Essentially a 3-way sync ๐Ÿ‘Œ
@marado Did you know you can sync your feed now quite easily with the Sync API and yarnc sync command? ๐Ÿค—
@marado Did you know you can sync your feed now quite easily with the Sync API and yarnc sync command? ๐Ÿค—