# 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=28991
# next = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=29091
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=28891
@caesar it works perfectly and what's more it doesn't break older clients, curl and a web browser still works, sure you don't get the intended "view", but that's because it's an "extension" -- You're meant to do a little post-processing when consuming a feed with \i2028 characters in them and replace with \n πŸ‘Œ
@caesar it works perfectly and what's more it doesn't break older clients, curl and a web browser still works, sure you don't get the intended "view", but that's because it's an "extension" -- You're meant to do a little post-processing when consuming a feed with \\i2028 characters in them and replace with \\n πŸ‘Œ
@caesar See Multi-line Extension πŸ‘Œ
@caesar See Multi-line Extension πŸ‘Œ
@caesar Me too πŸ˜‚ Who _thought_ building a company would be so much work 🀣 Turns out there's some huge issues with supply chain problems all over the world and this freak'n stupid idiot of a Putin isn't making any of that any easier πŸ€¦β€β™‚οΈ
@caesar Me too πŸ˜‚ Who _thought_ building a company would be so much work 🀣 Turns out there's some huge issues with supply chain problems all over the world and this freak'n stupid idiot of a Putin isn't making any of that any easier πŸ€¦β€β™‚οΈ
@justamoment This is absolutely spot on πŸ‘Œ It's probably like the reason I moved away from Python, after having been an avid Pythonita for over 15 years (as they call it); I gave up on the language after Python 3 really became a thing, the syntax, the readability, the reasoning and even the stupid concurrency model is just all well umm silly to me. What was a beautifully simple and elegant language, with low cognitive overheads, high productivity, just turned into what is (IHMO) a mess. πŸ˜…

So I turned to Go and love it 😍
@justamoment This is absolutely spot on πŸ‘Œ It's probably like the reason I moved away from Python, after having been an avid Pythonita for over 15 years (as they call it); I gave up on the language after Python 3 really became a thing, the syntax, the readability, the reasoning and even the stupid concurrency model is just all well umm silly to me. What was a beautifully simple and elegant language, with low cognitive overheads, high productivity, just turned into what is (IHMO) a mess. πŸ˜…

So I turned to Go and love it 😍
@justamoment Thanks! I appreciate it πŸ˜… (mostly for my sanity)

I just wanted you to understand something, I respect your opinion that arrow-functions and classes are _maybe_ a good thing, I don't think so personally but that doesn't matter 🀣 The truth is I have a strong bias towards readability, and languages that opt for obscure and abrupt/blunt syntax are hard to read, hard to maintain and often even hard to reason about πŸ€—
@justamoment Thanks! I appreciate it πŸ˜… (mostly for my sanity)

I just wanted you to understand something, I respect your opinion that arrow-functions and classes are _maybe_ a good thing, I don't think so personally but that doesn't matter 🀣 The truth is I have a strong bias towards readability, and languages that opt for obscure and abrupt/blunt syntax are hard to read, hard to maintain and often even hard to reason about πŸ€—
@caesar Makes sense πŸ‘Œ
@caesar Makes sense πŸ‘Œ
@ullarah Hmmm I'll have a closer look πŸ€”
@ullarah Hmmm I'll have a closer look πŸ€”
@screem Oh boi πŸ˜… Sounds rather like an interesting day πŸ˜‚
@screem Oh boi πŸ˜… Sounds rather like an interesting day πŸ˜‚
@justamoment Use of Fetch APi is fine, in fact most of the new API(s) are fine by me really Web Push, Service Workers, Fetch, etc. These all provide quite useful functionality IHMO when it comes to building apps with web technologies πŸ‘Œ But things like JSX, => (arrow functions) and all the new so-called "modern" language in Javascript is just well umm crap IHMO πŸ˜…
@justamoment Use of Fetch APi is fine, in fact most of the new API(s) are fine by me really Web Push, Service Workers, Fetch, etc. These all provide quite useful functionality IHMO when it comes to building apps with web technologies πŸ‘Œ But things like JSX, => (arrow functions) and all the new so-called "modern" language in Javascript is just well umm crap IHMO πŸ˜…
In other words I really don't mind there being two different complete user experiences here, the embedded SSR Web Interface in yarnd and the separate SPA/PWA with a mobile-first design and a more "native"(ish) feel πŸ˜…

The _trick_ will be to reuse as much code between what drives the API and the SSR so changes, improvements or new features can be rolled out to the API, SSR and PWA all at once quite easily... 🀞
In other words I really don't mind there being two different complete user experiences here, the embedded SSR Web Interface in yarnd and the separate SPA/PWA with a mobile-first design and a more "native"(ish) feel πŸ˜…

The _trick_ will be to reuse as much code between what drives the API and the SSR so changes, improvements or new features can be rolled out to the API, SSR and PWA all at once quite easily... 🀞
@justamoment Haha sorry but I'm not a Javascript developer, I really honestly can't stand the language and all the modern buillshit being added to it over the last few years πŸ€¦β€β™‚οΈ I blame Facebook and Google πŸ˜‚

I'd like to steer clear of things ike JSX, etc. MithrilJS fortunately lets you just write regular things like:


export default function Login (vnode) {
  const { context } = vnode.attrs;

  return {
    view: function () {
      return m("twt-login",
        m("form", [
          m("input", {"type":"text","placeholder":"Username"}),
...


πŸ‘Œ
@justamoment Haha sorry but I'm not a Javascript developer, I really honestly can't stand the language and all the modern buillshit being added to it over the last few years πŸ€¦β€β™‚οΈ I blame Facebook and Google πŸ˜‚

I'd like to steer clear of things ike JSX, etc. MithrilJS fortunately lets you just write regular things like:


export default function Login (vnode) {
  const { context } = vnode.attrs;

  return {
    view: function () {
      return m("twt-login",
        m("form", [
          m("input", {"type":"text","placeholder":"Username"}),
...


πŸ‘Œ
@mutefall So about that... This is not something I've designed for at all really.

There are of course things that _can_ be done at the L7 hTTP aching level -- ala CDN(s) / Proxies like Cloudflare, etc, which I run my Pod and my home Infra behind.

If you have ideas around this that don't break some of the "deliberate" design choices, I'm all ears πŸ‘Œ
@mutefall So about that... This is not something I've designed for at all really.

There are of course things that _can_ be done at the L7 hTTP aching level -- ala CDN(s) / Proxies like Cloudflare, etc, which I run my Pod and my home Infra behind.

If you have ideas around this that don't break some of the "deliberate" design choices, I'm all ears πŸ‘Œ
@mckinley Completely 10)% agree πŸ‘Œ Having just come from a school interview for my youngest daughter, it's nice to see that Robotics, Machine Learning and Coding are all being taught at this school πŸ‘Œ -- I certainly hope they also teach the students some of the lower-level things and inner-working of computers, otherwise I _might_ be volunteering to teach some classes πŸ˜…
@mckinley Completely 10)% agree πŸ‘Œ Having just come from a school interview for my youngest daughter, it's nice to see that Robotics, Machine Learning and Coding are all being taught at this school πŸ‘Œ -- I certainly hope they also teach the students some of the lower-level things and inner-working of computers, otherwise I _might_ be volunteering to teach some classes πŸ˜…
@mutefall I'll say this again here, because I don't want anyone to think differently of me πŸ˜‚ I've been there done that with the whole LInux Desktop thing, but when I lost 98% of my sight some ~20yrs ago, I just couldn't use LInux on the Desktop anymore because the accessibility is just "non-existent" there.

macOS is the only UNIX-like OS that actually has decent accessibility that's just baked in πŸ‘Œ~
@mutefall I'll say this again here, because I don't want anyone to think differently of me πŸ˜‚ I've been there done that with the whole LInux Desktop thing, but when I lost 98% of my sight some ~20yrs ago, I just couldn't use LInux on the Desktop anymore because the accessibility is just "non-existent" there.

macOS is the only UNIX-like OS that actually has decent accessibility that's just baked in πŸ‘Œ~
Sounds good! Let's set up some time to play πŸ‘Œ
Sounds good! Let's set up some time to play πŸ‘Œ
At a high level:

- Deploy Prometheus as your metrics storage and wiry engine
- Deploy Node_Exporter for scraping and exposing CPI, Memory, UI, Network and much more..
- Deploy Grafana for querying and dashboard
- Deploy AlertManager for alerting and notifications
At a high level:

- Deploy Prometheus as your metrics storage and wiry engine
- Deploy Node_Exporter for scraping and exposing CPI, Memory, UI, Network and much more..
- Deploy Grafana for querying and dashboard
- Deploy AlertManager for alerting and notifications
@screem Prometheus. I'll give you more details when I get back home (out at the moment)
@screem Prometheus. I'll give you more details when I get back home (out at the moment)
@novaburst Very nice πŸ‘Œ
@novaburst Very nice πŸ‘Œ
@david i'm not really sure what you were implying here…
@david i'm not really sure what you were implying here…
@david can you think of a valid case where you would want to link to something that isn't your own thing?
@david can you think of a valid case where you would want to link to something that isn't your own thing?
@caesar Let's put it this way.. what's the worst that would happen if we do make this assumption that all user links are their own?
@caesar Let's put it this way.. what's the worst that would happen if we do make this assumption that all user links are their own?
@caesar I agree! πŸ‘Œ And you'll love what my company is trying to do here πŸ˜‚ Stay tuned πŸ€—
@caesar I agree! πŸ‘Œ And you'll love what my company is trying to do here πŸ˜‚ Stay tuned πŸ€—
@caesar

> but I can also see that a user could put links there that aren’t their own. πŸ€”

This is my main concern. I don't _think_ we can make this assumption.

The Metadata spec on Links doesn't really allow for anything else besides a Title and URL anyway, so I'm not sure how we can deal with this except to have some Pod-specific behaviour we attach to the links? πŸ€” (some kind of UI/UX around the user indicating whether the link is in fact theirs and maybe a custom icon?) cc @ullarah
@caesar

> but I can also see that a user could put links there that aren’t their own. πŸ€”

This is my main concern. I don't _think_ we can make this assumption.

The Metadata spec on Links doesn't really allow for anything else besides a Title and URL anyway, so I'm not sure how we can deal with this except to have some Pod-specific behaviour we attach to the links? πŸ€” (some kind of UI/UX around the user indicating whether the link is in fact theirs and maybe a custom icon?) cc @ullarah
It's really nice to see the CPU usage reduced by quite a lot (especially on my pod, which is quite a bit busier)



Has anyone else noticed drops in CPU usage on their Pods since enabling websub? πŸ€”
It's really nice to see the CPU usage reduced by quite a lot (especially on my pod, which is quite a bit busier)



Has anyone else noticed drops in CPU usage on their Pods since enabling websub? πŸ€”
@ullarah Hahaha πŸ˜‚ So If I'm reading this right... This is not decentralised in any way? You have to trust and rely on a set of 3rd-party SMP servers? πŸ€”
@ullarah Hahaha πŸ˜‚ So If I'm reading this right... This is not decentralised in any way? You have to trust and rely on a set of 3rd-party SMP servers? πŸ€”
@mutefall If you'd like to play at some point, I quite like playing some real-time Chess on Lichess πŸ‘Œ
@mutefall If you'd like to play at some point, I quite like playing some real-time Chess on Lichess πŸ‘Œ
@darch Ooops sorry, bad typos πŸ˜‚ Thanks for linking (relinking) though πŸ€—
@darch Ooops sorry, bad typos πŸ˜‚ Thanks for linking (relinking) though πŸ€—
@mutefall Glad to hear that mate πŸ‘Œ I'm in this for the long haul too! I'd like to see Yarn.social suceed to a point where people have a serious choice between "centralised privacy eroding garbage" and "decentralised user andprivacyy respecting ecosystem" πŸ˜…
@mutefall Glad to hear that mate πŸ‘Œ I'm in this for the long haul too! I'd like to see Yarn.social suceed to a point where people have a serious choice between "centralised privacy eroding garbage" and "decentralised user andprivacyy respecting ecosystem" πŸ˜…
@justamoment Yeah I like MithrilJS a lot, it's the only _sane_ "reactive", "dom" thingy that I actually don't mind using thanks to @markwylde for introducing me to it (I'm still not very good at it though!)
@justamoment Yeah I like MithrilJS a lot, it's the only _sane_ "reactive", "dom" thingy that I actually don't mind using thanks to @markwylde for introducing me to it (I'm still not very good at it though!)
@novaburst What extensions does it support? πŸ€”
@novaburst What extensions does it support? πŸ€”
@justamoment The original idea was to run the "PWA" as a Pod-level configured theme. In other words you could point a yarnd server via -t/--theme to the directory for the pwa theme and voila. But this is probably a bad idea, so you can largely ignore most of the templating you see there, it would only get used once to render the index.html or / anyway -- the PWA takes over at that point via it's Javascript and Service Worker, etc...
@justamoment The original idea was to run the "PWA" as a Pod-level configured theme. In other words you could point a yarnd server via -t/--theme to the directory for the pwa theme and voila. But this is probably a bad idea, so you can largely ignore most of the templating you see there, it would only get used once to render the index.html or / anyway -- the PWA takes over at that point via it's Javascript and Service Worker, etc...
@caesar Sorry I understand how the rel=me attribute works and why it's important -- I guess I was missing something though in the back of my mind I didn't make clear...

Do we just assume that any User Link a user inputs into their profile or we find on their feed (it's actually part of the Metadata spec) should have a rel=me attr? πŸ€” Ca we make that assumption?
@caesar Sorry I understand how the rel=me attribute works and why it's important -- I guess I was missing something though in the back of my mind I didn't make clear...

Do we just assume that any User Link a user inputs into their profile or we find on their feed (it's actually part of the Metadata spec) should have a rel=me attr? πŸ€” Ca we make that assumption?
And yes your point on Mastodon failing this ceritiea is 100% spot on. No-one (98%) can basically stand up an instance of Mastodon _easily_. It's just FAIL.
And yes your point on Mastodon failing this ceritiea is 100% spot on. No-one (98%) can basically stand up an instance of Mastodon _easily_. It's just FAIL.
@caesar

> On the face of it it’s a generalisation, but s/People/99.99% of people/ and the statement becomes objectively true.

Yes you are right, but ask yourself "Why? How did this happen?"

I'm old enough to remember the times when everyone had their own server, everyone could run their own website easily and many people did. What changed?
@caesar

> On the face of it it’s a generalisation, but s/People/99.99% of people/ and the statement becomes objectively true.

Yes you are right, but ask yourself "Why? How did this happen?"

I'm old enough to remember the times when everyone had their own server, everyone could run their own website easily and many people did. What changed?
@jlj Hmmm yeah looks like there are still some issues with "bad data" -- specifically around your pod and your feed. I'm still working on figuring out how to fix this for you without any drastic measure so stay turned.


(#tv3tyba) @<jlj https://twt.nfld.uk/user/jlj> by the fact  ...
@jlj Hmmm yeah looks like there are still some issues with "bad data" -- specifically around your pod and your feed. I'm still working on figuring out how to fix this for you without any drastic measure so stay turned.


(#tv3tyba) @<jlj https://twt.nfld.uk/user/jlj> by the fact  ...
@caesar I tore it all down 😒
@caesar I tore it all down 😒
@jlj by the fact you see this reply faster than your pod's fetch interval 🀣
@jlj by the fact you see this reply faster than your pod's fetch interval 🀣
Re-trying XMPP was less fun. At least I could stand up a Matrix server without punching all kinds of stupid holes through my network's firewall πŸ˜…

But this "Federation" thing is a joke. It doesn't mean what anyone thinks it means, it's just the latest hyped up BS in my opinion πŸ‘Ž -- Just call it what it really is, server to server communications protocols / API / whatever. And for the love of god, why make it so hard?! πŸ€¦β€β™‚οΈ
Re-trying XMPP was less fun. At least I could stand up a Matrix server without punching all kinds of stupid holes through my network's firewall πŸ˜…

But this "Federation" thing is a joke. It doesn't mean what anyone thinks it means, it's just the latest hyped up BS in my opinion πŸ‘Ž -- Just call it what it really is, server to server communications protocols / API / whatever. And for the love of god, why make it so hard?! πŸ€¦β€β™‚οΈ
@david Yeah I'm quite disappointed really to be honest with you -- And disappointed with the "industry" and "community" at large.

It's one thing to build shitty UI/UX which I'm honestly quite terrible at, but it's another to write shit software, over engineering, poor logging, poor documentation, and well fuck, you've just grown so big that no-one gives a fuck πŸ˜… (please correct me if I'm guilty of some of these too! probably am πŸ˜‚)
@david Yeah I'm quite disappointed really to be honest with you -- And disappointed with the "industry" and "community" at large.

It's one thing to build shitty UI/UX which I'm honestly quite terrible at, but it's another to write shit software, over engineering, poor logging, poor documentation, and well fuck, you've just grown so big that no-one gives a fuck πŸ˜… (please correct me if I'm guilty of some of these too! probably am πŸ˜‚)
Well Matrix is junk πŸ€¦β€β™‚οΈ After staying up late for several hours (it's not 2.30am 😳) I was unable to get my Dendrite homeserver to "Federate". I posted a Federation Failures in the hopes it gets the developers attention, but so far this is honestly a joke.

I honestly can't believe this simple concept of "servers talking to other servers" is so freak'n hard πŸ€·β€β™‚οΈ
Well Matrix is junk πŸ€¦β€β™‚οΈ After staying up late for several hours (it's not 2.30am 😳) I was unable to get my Dendrite homeserver to "Federate". I posted a Federation Failures in the hopes it gets the developers attention, but so far this is honestly a joke.

I honestly can't believe this simple concept of "servers talking to other servers" is so freak'n hard πŸ€·β€β™‚οΈ


> A flaw was found in the way the "flags" member of the new pipe buffer structure was lacking proper initialization in copy_page_to_iter_pipe and push_pipe functions in the Linux kernel and could thus contain stale values. An unprivileged local user could use this flaw to write to pages in the page cache backed by read only files and as such escalate their privileges on the system.

WOW! 😳 Who let that patch through?! πŸ˜…


> A flaw was found in the way the "flags" member of the new pipe buffer structure was lacking proper initialization in copy_page_to_iter_pipe and push_pipe functions in the Linux kernel and could thus contain stale values. An unprivileged local user could use this flaw to write to pages in the page cache backed by read only files and as such escalate their privileges on the system.

WOW! 😳 Who let that patch through?! πŸ˜…
@caesar Well so far I can't get the fucking federation to work despite the federation tester claiming all tests pass so I'm a bit frustrated at this point and am not too far from chucking this Matrix junk in the bin πŸ˜…
@caesar Well so far I can't get the fucking federation to work despite the federation tester claiming all tests pass so I'm a bit frustrated at this point and am not too far from chucking this Matrix junk in the bin πŸ˜…
@caesar Hmmm? πŸ€” Please elaborate?
@caesar Hmmm? πŸ€” Please elaborate?
@carsten Just Yarning about it will be fine πŸ˜…
@carsten Just Yarning about it will be fine πŸ˜…
@david Probably πŸ˜‚ and thank you πŸ™‡β€β™‚οΈ
@david Probably πŸ˜‚ and thank you πŸ™‡β€β™‚οΈ
@david Please Yarn about it as it goes live πŸ˜… I wanna read in bed before I crash πŸ˜‚
@david Please Yarn about it as it goes live πŸ˜… I wanna read in bed before I crash πŸ˜‚
@carsten You have no links in your profile πŸ˜…
@carsten You have no links in your profile πŸ˜…
@carsten How do I reach you?
@carsten How do I reach you?
@mutefall I'd like to think we're here now, but it's going to take a long time before "Yarn" or "Twtxt" (I prefer the former) becomes a household name -- Well it is in my household πŸ˜… I'm often reminded of a recent presentation by Aral (perhaps @dsarch can link this?) whereby:

> Decentralisation starts with decentering yourself.
@mutefall I'd like to think we're here now, but it's going to take a long time before "Yarn" or "Twtxt" (I prefer the former) becomes a household name -- Well it is in my household πŸ˜… I'm often reminded of a recent presentation by Aral (perhaps @dsarch can link this?) whereby:

> Decentralisation starts with decentering yourself.
@mutefall Agreed πŸ‘Œ (not that I'm a big gamer myself due to my vision impairment, but I like playing chess does that count?! πŸ˜…
@mutefall Agreed πŸ‘Œ (not that I'm a big gamer myself due to my vision impairment, but I like playing chess does that count?! πŸ˜