# 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 60780
# self = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=60580
# next = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=60680
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=60480
@bender This ☝️
@sorenpeter No because as the spec statd originally, and we didn't change that syntax at all:

> Mentions are embedded within the text in either @ or @ format

So the lextwt parser we use will simply call this an invalid mention, which it does.
@sorenpeter Unfortunately it does break all clients, because the original spec stated:

> Mentions are embedded within the text in either @ or @ format
@movq Just like Friday's right? πŸ˜…
@andros Yup! πŸ‘Œ
@kat Make sure you're up-todate with main 🀣 I'm fixing little things here and there. Also please report bugs 🐞
Hopefully I haven't missed or messed anything upu πŸ˜…


* 101f3eb0 - (HEAD -> main) Fix a bunch of UX to do with following/unfollowing, bookmarking and unbookmarking (3 seconds ago) <James Mills>


Testing UI/UX is hardβ„’ πŸ˜‰
On a public holiday here (_Labor Day, ironic really considering the labor party here in Australia has won their 2nd term this election haha 🀣_)_
Going to try and few up a few more UX bugs today with yarnd.
@kat Have you rebuild from main recently? πŸ€”
@lyse Yeah to avoid cutting off bits at the end making hashes end in either q or a 🀣
@kat No no, it's just barks at the slightest thing going on around the neighborhod πŸ˜ƒ like it just goes a bit nuts often 🀣 it was a rescue dog, two years old, and it wasn't treated very well, a street dog. I _think_ it's just basically afraid of every human in the world 😒
@andros Programming is art. You become good at art by practising your art. You learn artistic patterns by being inspired by and reading others art works. The most importance however is that you practise your art.
@javivf Yes and still in review .
@lyse You are of course right! 🀣 There are some low level components that can and should be unit tested for sure! πŸ‘Œ
How do you stop a dog from barking? 🧐
@kat It is πŸ˜…
@bmallred You mean ActivityPub + Twtxt? πŸ€”
@kat Ysy!!! πŸ™ŒπŸ™ŒπŸ™Œ
@bmallred It really is 🀣
@bender Bahahah πŸ€£πŸ˜‚ mate, me and one of my SRE colleagues actually came up with the terminology ourselves! πŸ˜›
@lyse Heh I have to wear gloves now when swining an axe or it hurts my hands 🀣
@kat / @xuu Recommend you git checkout main && git pull, rebuild and redeploy: make build, and however you deploy. πŸ™ Lots of fixes (_no more stalling_) and optimizations to the feed fetcher, smoother cpu usage, better internal metrics.
I'm not even being facetious here either. I'd llove to see you "unit tests" this:
@lyse Well you are being _slightly_ rude πŸ€ͺ Sure you could write unit tests for this, but in practise testing emergent properties and behaviors of a system is actually a lot harder than you might realize. But I'm happy to always be proven wrong πŸ˜‘
@kat Yeah right now I'm trying to see if I can "spread the CPU usage of fetching N feeds across M duration" so basically "smooth" out the spikes in CPU usage.
@kat I've almost fixed this btw πŸ€— Just testing it thoroughly and polihsing the code. In case you're curious, I do this style of development called "Observability Driven Development" (ODD) whereby I make observations of the system via metrics and internal observations and adjust the system's overall behavior to the desired outcome πŸ˜…
Hey @kat If you see this, I'm aware of a bug. I'm trying to figure it out and fix it. bare with me πŸ€— It is what's causing things to "stall" and to have to "restart". Sorry 😞
@@twtxt.net The fact that it has an SDK and process management is quite amazing g! 🀯
@movq No problems πŸ€—
@bender Haha 🀣
@kat Please git pull and rebuild πŸ˜‚ Off of main. I merged the catcher branch already!
@kat @xuu Recommend you git checkout main && git pull && make build. Few bug fixes πŸ˜„
@bender You're kind of right though πŸ˜„ It makes it more engaging IMO πŸ˜…
> "Monosyllabic replies" refers to responses that consist of a single syllable. These types of replies are typically brief and concise, often used in situations where a simple, direct answer is given. Examples include words like "Yes," "No," "Okay," or "Sure."

πŸ˜‚ Can I imply you're not interested in things like "LIke", "Report", etc?! πŸ˜‚
@bender I knew you wouldn't be interested in a Twtxt+ActivityPub πŸ˜‚ Now I have to go figure out what "monosyllabic replies" means 🀣
@movq Shall I add this to the spec I'm writing? ✍️
After yarnd v0.16 is released and the next round of specification updates are done and dusted, who wants me to have another crack at building Twtxt and activity pub integration support?
The reason I think this can work so well and I'm in full support of it is that it's the least disruptive way to resolve the issue of:

> where did this hash come from?
@movq I think we can make this work πŸ‘Œ As long as it's just a client hint.
@kat Should be fine πŸ™Œ
Otherwise assume normal behavior. Pretty easy to implement I think.
@movq If we're focusing on solving the "missing roots" problems. I would start to think about "client recommendations". The first recommendation would be:

1. Replying to a Twt that has no initial Subject must itself have a Subject of the form (hash; url).

This way it’s a hint to fetching clients that follow B, but not A (in the case of no mentions) that the Subject/Root might (very likely) is in the feed url.
@bender Fuck I meant "bugs" 🐞 Geez πŸ™„
@kat Unless you've found buds in this branch it should be fine πŸ˜† Um running yhe dame!
@movq Lwt me think on this.
@kat Nope it's totally fine πŸ€—
@kat No new peers shoyls show up automatically.
@sorenpeter You're welcome πŸ€— We'll run into each other again. I'm sure! 🀞
@kat Well some! πŸ™Œ
@thecanine Yeah this is where I think all the _hype_ really falls down. It's all just a really really expensive search engine and auto-complete πŸ€¦β€β™‚οΈ That's it!
@kat MinIO is a good choice for a self-hosted Object Storage (_compatible with S3 APIs_) πŸ‘Œ
@kat Don't be nervous, I make sure I test the shitβ„’ out of things before anyone else does 🀣
Hello @Yarn.social πŸ‘‹ (_testing something_)
@thecanine Sorry, but you were expecting what now?! 🀣
I also fundamentally do not believe in the notion that Twtxt should be readable and writable by humans. We've thrown this "argument" around in support of some of the proposals, and I just don't buy it (_sorry_). As an analogy, nobody writes Email by hand and transmits them to mail servers vai SMTP by hand. We use tools to do this. Twtxt/Yarn should be the same IMO.
@eapl.me I honestly believe you are overreacting here a little bit 🀣 I completely emphasize with you, it can be pretty tough to feel part of a community at times and run a project with a kind of "democracy" or "vote by committee". But one thing that life has taught me about open source projects and especially decentralised ecosystems is that this doesn't really work.

It isn't that I've not considered all the other options on the table (_which can still be_), it's just that I've made a decision as the project lead that largely helped trigger a rebirth of the use of Twtxt back in July 1 2020. There are good reasons not to change the threading model right now, as the changes being proposed are quite disruptive and don't consider all the possible things that _could_ go wrong.
@bender ROFL 🀣
@bender How does it work? πŸ€”
LOL Amazon displaying tariff prices "hostile and political," White House say is this the kettle calling the pot black? 🀣 Trump, pfft, what a fucking idiot. No clue how economies work, let alone countries.
@bender You guessed right 🀣
@bender LOL how would I have guessed that?! 🀣
@javivf 12 Hlirs without power? 🧐 Where do you reside?! 🀣
@lyse likewise I don't have the energy for a fundamental shift in any of our specifications that would inevitably cause a lot of toil and try and change in our clients implementations and unforeseen problems that we haven't really fully understood:
@movq At this point someone needs to make a decision 🀣 @bender keeps reminding me of thatπŸ˜…
03:45 You can pretty blame capitalism for everything that's wrong with anything 🀣
I really do wish we would wake up and smell the roses here πŸ€¦β€β™‚οΈ This whole sets of wars is utterly pointless. Senseless waste of precious human beings 😒
https://git.mills.io/yarnsocial/twtxt.dev/pulls/28
@movq DDoS their ass! 🀣
@bender Yup! πŸ‘
@lyse Noice! πŸ‘Œ
@lyse Hahahaha 🀣 I mean it's "okay" every now and then, but what's the point of having good clients and tools if we don't use 'em 🀣
@lyse Yup! Will do πŸ€—
Nothing like being paged at 00:30 (_midnight_) for a P2 incident that is now resolved at 02:10 🀯 Obviously I'm not going to work tomorrow (_I mean today lol πŸ˜‚_) at the usual start time πŸ€¦β€β™‚οΈ_
I will be adding the code in for yarnd very soonβ„’ for this change, with a if the date is >= 2025-07-01 then compute_new_hashes else compute_old_hashes
We have 4 clients but this should be 6 I _believe_ with tt2 from @lyse and Twtxtory from @javivf?
@bender Same more or less πŸ˜…
Finally I propose that we increase the Twt Hash length from 7 to 12 and use the first 12 characters of the base32 encoded blake2b hash. This will solve two problems, the fact that all hashes today either end in q or a (_oops_) πŸ˜… And increasing the Twt Hash size will ensure that we never run into the chance of collision for ions to come. Chances of a 50% collision with 64 bits / 12 characters is roughly ~12.44B Twts. That _ought_ to be enough! -- I also propose that we modify all our clients and make this change from the 1st July 2025, which will be Yarn.social's 5th birthday and 5 years since I started this whole project and endeavour! 😱 #Twtxt #Update~
And speaking of Twtxt (See: #xushlda, feeds should be treated as append-only. Your client(s) should be appending Twts to the bottom of the file. Edits should never modify the timestamp of the Twt being edited, nor should a Twt that was edited by deleted, unless you actually intended to delete it (_but that's more complicated as it's very hard to control or tell clients what to do in a truely decentralised ecosystem for the deletion case_). #Twtxt #Client #Recommendations
Just like we don't write emails by hand anymore (See: #a3adoka), we don’t manually write Twts or update our twtxt.txt feeds. Instead, we use modern Twtxt clients that conform to the specifications at Twtxt.dev for a seamless, automated experience. #Twtxt #Twt #UserExperience
Nobody writes emails by hand using RFC 5322 anymore, nor do we manually send them through telnet and SMTP commands. The days of crafting emails in raw format and dialing into servers are long gone. Modern email clients and services handle it all seamlessly in the background, making email easier than ever to send and receiveβ€”without needing to understand the protocols or formats behind it! #Email #SMTP #RFC #Automation
@bender Hehe good sleuthing 🀣 I swear it was an edit ✍️ Haha πŸ˜‚ yarnd now "sees" both every single time, where-as before it would just obliterate the old Twt, but remain in archive. Now you get to see both πŸ˜… Not sure if that's a good thing or not, but it certainly makes it much clearer how to write "code logic" for detecting edits and doing something more UX(y) about 'em πŸ€”
@bender It's pretty cool though 🀣
@sorenpeter Oh!
Wrote some serious Python for the first time in like 10 years 😱 I feel so dirty 🀣
@lyse Very nice! πŸ‘Œ So lovely and green πŸ˜… -- What's with the sign in 16? 🧐
Interesting edit observed by the new yarnd powering this pod twtxt.net 🧐
@movq I've tried and there's little interest so I've given up for now 😭
@bender Wut?! πŸ˜‚
@bender Oh 🀣🀣🀣
Should ink to this
Hmm not sure how that link is 404'kng for you 🧐 It doesn't here πŸ€¦β€β™‚οΈ
@bender What you talk'n about 🀣 It's not broken, it's perfectly functional 🀣
@lyse Seems legit πŸ˜…
I have a great idea for fixing the US economy. Get rid of all the nuclear weapons 🀣
@javivf Wanna list it on twtxt.dev? 🧐
@javivf Ahh! So this is your client implementation? 🧐
Today I added support for Let's Encrypt to eris via DNS-01 challenge. Updated the gcore libdns package I wrote for Caddy, Maddy and now Eris. Add support for yarn's cache to support # type = bot and optionally # retention = N so that feeds like @tiktok work like they did before, and... Updated some internal metrics in yarnd to be IMO "better", with queue depth, queue time and last processing time for feeds.
Also you have too much time on your hands πŸ™Œ Haha πŸ˜‚
@movq Only 99.9% pfffft 🀣