# 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 60922
# self = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=60421
# next = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=60521
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=60321
@thecanine Pretty cool! ๐Ÿ˜Ž
My Hypothesis for why registries didn't work and why they still won't really work today is because the bend the rules of "true" decentralization a bit. Users have to pick one or more registries to "register" to. Why would they want to do this? What is their incentive to do so? Then on the other hand, users need a client that has registry support, but now which registry or sets of registries do you choose?
@bmallred Nice! ๐Ÿ‘Œ
@bender wut?! ๐Ÿ˜ฎ
This is fixed now ๐Ÿฅณ Thanks @xuu!
@bender I _believe_ that's the only way. We'll deal with it as it comes up I think.
@bender I _can_ fix and make that work in the parser too. But I'm no longer sure how to cater for the general case. It's too much to support all punctuation whilst at the same time as other contradicting rules. For example you cannot both support . in nicknames and then expect to be able to to end a mention with a . ๐Ÿคฆโ€โ™‚๏ธ
@bender Yes I know ๐Ÿคฃ It's okay, we just have to build better parsers ๐Ÿ˜…
@abucci totally my fault sorry ๐Ÿ˜ž
@bender LOL ๐Ÿ˜‚
There are 5 of such "Twters" on this pod that have periods in their nick ๐Ÿ˜ข


sqlite> select count(distinct(nick)) from twters where nick like '%.%';
count(distinct(nick)) = 5
sqlite> select distinct(nick) from twters where nick like '%.%';
 nick = @marado@ciberlandia.pt

 nick = eapl.me

 nick = eapl.mx

 nick = grumpygordie.great-site.net

 nick = @chyrp.doesnm.cc
I'll see if I can fix this and write a test case for what's going on here. I _think_ this is made difficult now because folks like @eapl.me decide that it's okay to have a . (_period_) in their # nick ๐Ÿคฃ tbh I _think_ nick(s) should have rules of what they can and cannot be comprised of. i.e: no punctuation ๐Ÿคฆโ€โ™‚๏ธ
Whereas @movq @lyse and @bender are all cool ๐Ÿ˜Ž
That's kind of weird actually. Hmmm @movq, @lyse, and @bender are all cool ๐Ÿ˜Ž
@bender This story just reminds me of the couple of times we've paid for things in cash ๐Ÿ’ฐ ๐Ÿ’ฒ and the stupid banks with the ridiculous "scam alert policy" ask you all kind of dumb ass questions about what you need the cash for ๐Ÿคฆโ€โ™‚๏ธ One of these days I need an excuse to buy something that costs a few $k just so I can answer when asked, "what do you need the cash for?" to which my response will be "drugs and hookers of course!" ๐Ÿคฃ
@bender Sounds good to me! Done โœ… Also you did some, so thanks! ๐Ÿ™
@doesnm.p.psf.lt Remind me alter ๐Ÿ™
@doesnm.p.psf.lt Because I'm a lazy project manage and I haven't grooomed the backlog in a while ๐Ÿคฃ Since you're there, do you mind cleaning it up for me? ๐Ÿ™
@kat creating habits or rituals as hard, dropping ones that you no longer need or considered harmful is even harder! Good luck! ๐Ÿ™
@kat That's what she said ๐Ÿคฃ
Responded to a bunch of Twtxt open issues across multiple repositories today ๐Ÿ‘Œ
@bender You said:

> as long as those working on clients can reach an agreement on how to move forward. That has proven, though, to be a pickle in the past.

I _think_ this is because we probably need to start thinking about three different aspects to the ecosystem and document them out:

- Specifications (_as they are now_)
- Server recommendations (_e.g: Timeline, yarnd, etc_)
- Client recommendations (_e.g: jenny, tt, tt2, twet, etc_)
@bender wut?! Who carries three grand worth of cash in their handbag?! ๐Ÿ‘œ Haha ๐Ÿ˜†
@kat Bahahaha so do it all the time ๐Ÿคฃ
@andros Some good points here that I share and empathize with ๐Ÿ™Œ
@bender I see hmmm ๐Ÿง
@andros Zulu said:

> what is twtxt for you?

For me Twtxt is just the underlying format that Yarn.social builds upon ๐Ÿ˜…
@andros Ahh cool! I'll try following it again ๐Ÿคฃ Mind @-mentioning/linking the feed again? ๐Ÿ™
Also what's a, who's the Pope? ๐Ÿ˜…
@quark I know! I saw three Hacker News posts on it in a row ๐Ÿคฃ
@andros Haha ๐Ÿคฃ We've explored this idea in the past and we decided that it's _actually_ a good idea to have an "append-only" feed for various reasons. We've also explored the idea of using Range requests, but opted instead to just archive/rotate our feeds periodically ๐Ÿ˜… There really isn't much point in having a feed in reverse chronological order, except (_maybe?_) so a human read view the new twts at the top of the file?! ๐Ÿคฃ_
@bender This is just a website that cycles through random Youtube channels? ๐Ÿค”
I guess mentions with .(s) / dot(s) like @eapl.me are valid? ๐Ÿค” Or nicks even? ๐Ÿค”
Fark Youtube is so utterly boring ๐Ÿฅฑ
@bender Ahh yes you caught me ๐Ÿคฃ
@bender Not copy/paste ๐Ÿคฃ Hand on heart! โค๏ธ However it was a pretty nice article ๐Ÿ˜…
Getting Forked by Microsoft โ€ข Philip Laine ๐Ÿ‘ˆ Yet another pretty sad story of a megacorp (_Microsoft_) being total assholes ๐Ÿ˜ข
Regex Isn't Hard - Tim Kellogg ๐Ÿ‘ˆ this is a pretty good conscience article on regexes, and I agree, regex isn't that hardโ„ข -- However I _think_ I can make the TL;DR even shorter ๐Ÿ˜…

----

Regex core subset (portable across languages):

Character sets
โ€ข a matches โ€œaโ€
โ€ข [a-z] any lowercase
โ€ข [a-zA-Z0-9] alphanumeric
โ€ข [^ab] any char but a or b

Repetition (applies to the preceding atom)
โ€ข ? zero or one
โ€ข * zero or more
โ€ข + one or more

Groups
โ€ข (ab)+ matches โ€œabโ€, โ€œababโ€, โ€ฆ
โ€ข Capture for extract/substitute via $1 or \1

Operators
โ€ข foo|bar = foo or bar
โ€ข ^ start anchor
โ€ข $ end anchor

Ignore nonโ€‘portable shortcuts: \w, ., {n}, *?, lookarounds.

#regex101=
@bender No worries ๐Ÿ˜‰
There we go. Restored all the old settings ๐Ÿ‘Œ
@bender Lemme look at the old backup...
@bender

> I am up to increase the length of a twtxt, though.

Recall what we had this set to for this pod? ๐Ÿง
@bender Really? Wow! ๐Ÿ˜‚
@bender Hah ๐Ÿคฃ
Just had a freak storm โ›ˆ๏ธ with lots of horizontal rain โ˜”๏ธ that took out and tripped our internal RCD (_again_) ๐Ÿ˜ฑ Took out our Fibre too (_servers were fine, good 'ol UPS_). Need to get a UPS for the Fibre box ๐Ÿ“ฆ Haha ๐Ÿคฃ
@movq So cool! ๐Ÿ˜Ž Where's the time lapse video you used to have of this tree? ๐ŸŒณ Hmm ๐Ÿง
@movq Yeah I know ๐Ÿคฃ I found another bug in lextwt ๐Ÿคฆโ€โ™‚๏ธ This whole DM / bang-mention thingy has thrown a spanner in the works ๐Ÿ”ง -- Even if I wanted to implement it, I'm not even ready to try at the moment ๐Ÿ˜ข
@kate (_as I was trying to say..._), Glad you think so๐Ÿ‘Œ My goal with Yarn.social has always been to provide the best (_best that I can anyway_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood ๐Ÿ˜…
@xuu As I also mentioend on IRC I _think_ this is a. bug?
Holy hell?! When I post this:


@<kate https://yarn.girlonthemoon.xyz/user/kat/twtxt.txt> Glad you think so! ๐Ÿ‘Œ My goal with Yarn.social has always been to provide the best (_best that I can anyway!_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood ๐Ÿ˜…


Something is swallowing it.
@kate Glad you think so! ๐Ÿ‘Œ My goal with Yarn.social has always been to provide the best (_best that I can anyway!_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood ๐Ÿ˜…
What if I do this...
Nope hmmm
What about here?
Okay they're not here...
Why are my replies getting swallowed?! ๐Ÿค”
Glad you think so! ๐Ÿ‘Œ My goal with Yarn.social has always been to provide the best (_best that I can anyway!_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood ๐Ÿ˜…
@kate Glad you think so! ๐Ÿ‘Œ My goal with Yarn.social has always been to provide the best (_best that I can anyway!_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood ๐Ÿ˜…
Hmmm?
Hmmm?
@kate Glad you think so! ๐Ÿ‘Œ My goal with Yarn.social has always been to provide the best (_best that I can anyway!_) truly decentralised (_slow_) social experience that uses the Twtxt format under the hood ๐Ÿ˜…
This expands the usefulness of Twtxt / Yarn.social to:

- Sharing small posts
- Sharing links
- Sharing media
- Having long conversations
- Voting on topics, opinions or decisions
- RSVPing to virtual or physical events
The nice thing here is that any Ui/UX rendering for a "good user experience" is similar to what yarnd does for Youtube/Spotify/whatever embedding. Plus anyone can participate, even if they don't really have a client that understand it, it's just text with some "syntax" afterall.
#event:abc123 RSVP: yes +1
#event:abc123 Go Meetup โ€“ Sat Apr 27, 3pm @ Darling Harbour
#poll:xyz123 Vote: None
#poll:xyz123 Favorite Go framework?
- Gin
- Echo
- Chi
I'd have to write i up in full, but essentially looks a bit like this (_contribived examples follow_)...
๐Ÿ’ก I had this crazy idea (_or is it?_) last night while thinking about Twtxt and Yarn.social ๐Ÿ˜… There are two things I _think_ that _could_ be really useful additions to the yarnd UI/UX experience (_for those that use it_) and as "client" features (_not spec changes_). The two ideas are quite simple:

- Voting -- a way to cast, collect a vote on a decision, topic or opinion.
- RSVP -- a way to "rsvp" to a virtual (_pr physical_) event.

Both would use "plain text" on top of the way we already use Twtxt today and clients would render an appropriate UI/UX._
@bender I _think_ I could, but I haven't bothered to do so yet... I'll try that out later...
@kate You're welcome ๐Ÿ˜‡
@bender Hehe, thanks for fixing this (_was_) broken thread ๐Ÿงต Haha ๐Ÿคฃ
@sorenpeter I really think you should fix the # url in your feed to be https:// ๐Ÿ˜…
@bender Sure! ๐Ÿ‘


{
    ...
   # Layer 4 Reverse Proxy
   layer4 {
      # Gopher
      0.0.0.0:70 {
         route {
            proxy <internal_ip>:70
         }
      }

      # IRC (TLS)
      0.0.0.0:6697 {
         route {
            proxy <internal_ip>:6697
         }
      }
   }
}
Am I the only one that's confused by the discussions, and then the voting we had on the whole threading model? ๐Ÿค” I'm not even sure what I voted for, but I know it wasn't the one that won haha ๐Ÿคฃ (_which I'm still very much against for based on an intuition, experience and lots of code writing lately_).
@xuu Good point! ๐Ÿคฃ
OH nevermind. Ignore me. I _think_ @sorenpeter's feed is a bit weird. Because his url is http:// but he actually hosts a https:// feed with redirects. so things get a bit weird ๐Ÿ˜ข
e.g: @sorenpeter
@bender I noticed that although the Discover view (_and your own Timeline_) is much improved with a MaxAgeDays configuration at the pod level, that now _some_ profiles are rather empty. This is only because well, they're a bit "inactive" so to speak ๐Ÿ—ฃ๏ธ Not sure what to do about this at the moment... Open to ideas? ๐Ÿ’ก
@bender According to his @buckket Github profile, I _belive_ so.
There are other tasks LLM(s) are _far_ better suited for, which are also its downsides, and gawd so expensive and unrealistic to run yourself ๐Ÿคฆโ€โ™‚๏ธ Do you know what one of these NVIDIA H100's cost? ๐Ÿ’ฒ That's right! ๐Ÿคฃ > $50k USD ๐Ÿ˜ฑ And many of the models out there require 8 of these suckers ๐Ÿคฃ Each one consumes around ~400W of power each (_not including the machine that houses them!_)~
@movq Yeah I couldn't agree more. The utility of using it in any way to form "truths" or to do anything that require a high degree of "accuracy" is utterly pointless.
@lyse Very nice! ๐Ÿ˜Š You must love those yellow dandelions? ๐Ÿค”
But it is still a giant inefficient use of resources and energy ๐Ÿคฃ
AI isnโ€™t a shortcut for thinking. In her guide for skeptics, Hilary Gridley reframes AI as a collaboratorโ€”not a replacement. Use it like spellcheck for your thoughts. Donโ€™t fear itโ€”iterate with it. Insight improves, speed follows. Full post: https://hils.substack.com/p/the-ai-skeptics-guide-to-ai-collaboration
@movq Haha ๐Ÿคฃ Figures ๐Ÿคฆโ€โ™‚๏ธ Also no need to be concerned with that here, I've personally blocked the ASN(s) of Microsoft, OpenAI, Claude and Google ๐Ÿ˜‚
@movq Yeah ๐Ÿ‘ Haha ๐Ÿคฃ Does your own cache go back this far? ๐Ÿค”
Ahh so I was _partially_ right ๐Ÿคฃ
@movq Apparently that is @buckket's name? ๐Ÿค”
Hmmm there's a bug somewhere in the way I'm ingesting archived feeds ๐Ÿค”


sqlite> select * from twts where content like 'The web is such garbage these days%';
      hash = 37sjhla
  feed_url = https://twtxt.net/user/prologic/twtxt.txt/1
   content = The web is such garbage these days ๐Ÿ˜” Or is it the garbage search engines? ๐Ÿค”
   created = 2024-11-14T01:53:46Z
created_dt = 2024-11-14 01:53:46
   subject = #37sjhla
  mentions = []
      tags = []
     links = []
sqlite>
@movq It's nice to see shit like this still works ๐Ÿคฃ Even years later ๐Ÿ˜‚
@bender Yup ๐Ÿ‘
I do want to improve the feeds.twtxt.net service one day (_soonโ„ข_) with features like this. But first I'll have to prevent spammers from abusing it by introducing IndieAuth as an authentication layer._
Btw @andros ; The automated feed you put together for Hacker News... Does it at any point rewrite parts of the feed as it goes along? ๐Ÿค” I've had to unfollow it because I've found in practise it makes a twt, then seems to modify that same twt (_observed by content manually_) at least twice. This ends up becoming effectively an "Edit" and essentially duplicate (_looking_) posts ๐Ÿ˜ข
@bender Shall we remove this primary/secondary color sttting? ๐Ÿง
@bender Btw, do we want to nuke this compact feature? ๐Ÿง
@bender How do you mean? ๐Ÿง Caddy doesn't do L4 by default.
@kate I _think_ it's totally fine. I mean self-hosting costs money too. Power, Hardware, Time/effort, etc.
@bender I recommend this also ๐Ÿ‘Œ My eris was based off of a much much older version of ergo.
@kate I already have my IRC server irc.mills.io running behind Caddy Layer 4. However I don't terminate TLS at the edge in this case.