# 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 60515
# self = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=60415
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=60315
@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.
it is infininately simpler to run/operate 🀣
@kate @movq You could also have a play with eris which I use to power my little tiny server (_that almost no-one uses 🀣_)_
@bender Ahh okay, I must have misread the website πŸ€”
Seem like it's a server-client thingy? πŸ€” I much prefer tools in this case and defer the responsibility of storage to something else. I really like restic for that reason and the fact that it's pretty rock solid. I have zero complaints πŸ˜…
@bender Hahahahaha 🀣🀣🀣