# 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 2286
# self = https://watcher.sour.is?uri=https://twtxt.net/user/bender/twtxt.txt&offset=986
# next = https://watcher.sour.is?uri=https://twtxt.net/user/bender/twtxt.txt&offset=1086
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/bender/twtxt.txt&offset=886
@off_grid_living hmm, are we talking about the same "GOD"?

> " When the Lord your God delivers it into your hand, put to the sword all the men in it. As for the women, the children, the livestock and everything else in the city, you may take these as plunder for yourselves. And you may use the plunder the Lord your God gives you from your enemies."

🤔 or...

> "However, in the cities of the nations the Lord your God is giving you as an inheritance, do not leave alive anything that breathes. Completely destroy them"

Is that Him? Empowering and wise, indeed.
@off_grid_living hmm, are we talking about the same "GOD"?

> " When the Lord your God delivers it into your hand, put to the sword all the men in it. As for the women, the children, the livestock and everything else in the city, you may take these as plunder for yourselves. And you may use the plunder the Lord your God gives you from your enemies."

🤔 or...

> "However, in the cities of the nations the Lord your God is giving you as an inheritance, do not leave alive anything that breathes. Completely destroy them"

Is that him? Empowering and wise, indeed.
@lyse isn’t it great? I remember when email, and Usenet threads were always like that. Alas, came Google, Microsoft, heck, even Apple doesn’t do threading anymore, and things started to go down the drain since.
@off_grid_living I say, let’s don’t take any medicine at all, and leave our fate to the loving, merciful, all caring, hands of god.
@off_grid_living I say, let’s don’t take any medicine at all, and leave our fate to the hands of god.
@quark this is what I see:

Screenshot of neomutt running jenny, a twtxt client
> But you should not be seeing any requests from this pod

Just curious, how are you accomplishing this? Using egress iptables blocks?
Imagine if SMTP behaved like this. It would be mayhem! SMTP bounces are certain number of retries, thus alerting the user that the email address, or server, is wrong. By the way, this same problem happens on the various implementations of ActivityPub (Mastodon, all "romas", all "keys", and GoToSocial, which I use). Some have implemented a process to drop federation, after certain delivery attempts.
Imagine if SMTP behaved like this. It would be mayhem! SMTP bounces are certain number of retries, thus alerting the user that the email address, or server, is wrong. By the way, this same problem happens on the various implementations of ActivityPub (Mastodon, all "romas", all "keys", and GoToSocial, which I use). Some have implemented a process to drop federation, after certain number of delivery attempts fail.
@prologic is it more than this, right? For example, user "justamoment" (https://twtxt.net/user/justamoment/twtxt.txt) has netbros.com twice on its following list. Both feeds are long gone. There are more cases like that.
@prologic you are welcome! :-)
@prologic he is referring to "ivermectin".
Sent you some logs on Matrix.
@prologic LOL. After that I ran Yarn on the apex, at netbros.com. Go to Matrix, let me drop you a snippet.
@prologic I understand. It is useful. But Lyse doesn’t use Yarn.

I think I am not successfully explaining the problem I perceive here. People checking non existing feeds with the hope they will come back, over and over, and no provisions in Yarn to do much about it. 🤷🏻‍♂️
@lyse so, is it safe to assume you occasionally, but carefully, vet your feeds, and have contingencies in place to not keep requesting a seemingly dead feed over and over?
@falsifian that's the thing: Twtxt doesn't care much about followers. It is not that kind of social media. Yet, I agree with the exponential back off approach. I just don't want to keep constantly trying to fetch that which will not resurrect, nor want people to continue hitting my endpoint, which will not resurrect. 😊
If case it wasn't clear, and from the horse's mouth itself (my emphasis):

> // These are permanent 4xx errors and considered a dead feed
@lyse good finding! Let's make ErrDeadFeed work, @prologic!
@lyse well, well, so much for "that isn’t actually true as it depend on the ingress architecture and networking", @prologic... :-P
@lyse right, now, on this:

> "The right™ way is to signal 410 Gone if the feed does not exist anymore and will not come back to life again. But that’s hard to come by in the wild. Somebody has to manually configure that in almost all situations."

Even so, what does Yarn do if a 410 is sent? I don't think it does anything at the moment, but I could be wrong.
@falsifian that sounds like a good compromise. Regardless of what @prologic wrote, a 404 is a 404.
@xuu poor lady! 😩 I have trained mum to call me with anything remotely fishy. She pretty much don’t trust anything. On top of the weekends, when I visit them, I usually go to their house once or twice during working days, to check on emails, calls, or funny looking snail mail.
@prologic if a twtxt.txt is not found, under which conditions will it be found again, and can something be done if say, it isn’t found for X amount of hours, days, months?
@lyse saw it, thanks! It pains me to see that speed. I mean, I blink slower than what it took that guy to climb that wall. LOL.
@prologic no worries mate, and thanks! I wonder if something could be done for feeds rendering 404, so that they get automatically “unfollowed”, and removed.

A twtxt.txt file should never spit out a 404, unless it’s no more.
@lyse this what I get:

> “Video unavailable
> The uploader has not made this video available in your country”
The thing is, I don’t have a twtxt.txt file on netbros.com.
@prologic thousands of daily requests.
Well, this one (ferengi.one) isn't hammered (that was my dramatic animal guide showing off, LOL). I believe this one is simply "normal" twtxt.txt usage.
Also hammering ferengi.one.
@prologic it is kind of hammering my VPS, specifically netbros.com, every single day.
@movq right, I don't think there is one per se. I think you get send a code on SMS, but it has been a while since I did it.
@prologic, does this rings a bell to you? 159-196-9-199.9fc409.mel.nbn.aussiebb.net
@prologic much envious here. I would trade my 35°C for *anything* cooler. Anything!
@prologic LOL. That’s it.
@prologic maybe it is because of your geographical location. It works fine for me.
@prologic a lot. Look carefully at the vertical alignment.
@movq the algorithms are nuts everywhere. I was cancelled from Instagram and TikTok a while back for the same reason, yet, at the time I got the email telling me about it I hadn't used them both for over a year. 🤷🏻
@prologic text/label on the buttons isn't centred:

BeerCSS showing a button with text not centred
@prologic not sure what you find on BeerCSS. I have never found that style (following "Material Design" aesthetics) attractive at all. Many of its components are misaligned (at least they are under Gnome's Chrome). Look that the buttons, and you will see and example of what I am talking about.
Came across YTCH yesterday, and it is very addictive. Simple, and well done. You can host it yourself if you want. The trick I haven't figure out yet is how to create the list.json that drives it.
Cool, looking good! Ought to work on showing the Emoji too, I noticed that's missing. Next, to render correct markdown. :-)
A little bit more verbose:


david@dreadnought:~/$ apt-cache depends -i --recurse shellcheck
shellcheck
  Depends: libc6
  Depends: libffi8
  Depends: libgmp10
libc6
  Depends: libgcc-s1
libffi8
  Depends: libc6
libgmp10
  Depends: libc6
libgcc-s1
  Depends: gcc-14-base
  Depends: libc6
gcc-14-base
@mckinley interesting. In Ubuntu the list is rather short:


david@dreadnought:~/$ sudo apt depends shellcheck
shellcheck
  Depends: libc6 (>= 2.34)
  Depends: libffi8 (>= 3.4)
  Depends: libgmp10 (>= 2:6.2.1+dfsg1)
@lyse tracking read/unread is something that Yarn could benefit from. It has been thought before, just never gotten anywhere. Yarn just don't keep track of those, it will be something that @prologic will need to implement. Maybe if I keep poking him he will! 😂
@prologic yeah, this is how Phanpy does it:

Phanpy, Fediverse client, showing the little bell on top right corner with a dimmed dot, indicating activity
On the "Mentions" topic, maybe @prologic can do something about it? What exactly is up to him, and the capabilities present. Perhaps simply bolding Mentions if there if are unread ones? I don't know how we will handle the resetting of it, after reading...
Oh, I just saw they have an installable package! Pretty cool! Thanks for the pointer, @prologic.
@prologic what is shellcheck? The website, or a local tool one can run?
@lyse when I come around, I normally check, and get busy just reading, under "Discover", and often forget to even check mentions. Since there is nothing on "Mentions" telling me there are some pending to be read (at the very least, a tiny dot, or something), if often gets ignored. 😅
@lyse when come around, I normally check, and get busy just reading, under "Discover", and often forget to even check mentions. Since there is nothing on "Mentions" telling me there are some pending to be read (at the very least, a tiny dot, or something), if often gets ignored. 😅
@prologic for those ancient, dreaded times, on which I needed to use PHP (shivers), I simply used php-fpm with Caddy. Unless I am missing something, FrankenPHP is a modified Caddy. If I already run Caddy, why would I need another one?

Of course, FrankenPHP might fit @off_grid_living needs, if he is to switch from Apache to FrankensteinPHP.
@movq it should be:

h
bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
@movq it should be:

h
bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'


eq is for numericals.
@lyse for some reason I didn't see this here on time. Thank you much mate! 😊
Woot! Need to change the nick now to on_grid_living. 😛
Is that from the same guy who made Caddy? Name sounds familiar. It looks neat, let us know what you think of it when you have tried it. 😛
@prologic I didn't mean to burst bubbles, by the way 😅. It is a baby step; we just need to refine it.
@lyse I envy you. Our always cloudy sky during summer has allowed me to see the grand total of zero. 😩
@prologic couple of issues. That #reading tag also pulls #now-reading. It shouldn't. Second, I can't reply from the search results. If you click/tap on the tag, and get the list containing it, clicking/tapping reply on one of the results do nothing.
@prologic I use ClownFlare for now. Used to be on Google Domains, but you know Google: if something is doing well, they shut it down.
@prologic he is making -$13/month. A bargain! 😂
@prologic well, that's "lovely".
Yeah, that .box TLD is absolute rubbish.
I can't tell by the screenshot. What are you getting from APIs?
@prologic his feed shows not found. Is that because it rotated, and he hasn't posted anything since?
@prologic how’s the old man doing? I have him muted, LOL, but used to unmute every once in a while when he would post stuff he was working on. Hoping he is well!
@prologic, do you self host OIDC? If so, which one?
@prologic just pick one, but have it show the picked way consistently. Right now I often see the short handle, and the long handle, for users on the same pod, in a very inconsistent manner. That’s what I am talking about.
@xuu 😂😂😂😂😂😂
@stigatle all good.
I meant, they both work. The pedantic in me would like it to be consistent, and the same, all the time.
@lyse good idea! Thanks for looking out for me, mate. Password changed to a slight, more secure, variation: hunter3!.
@prologic 🥳🥳🥳 That’s good! I wasn’t looking forward to change my password123 password (you should see that at your end as *********, due to Yarn’s high security measures).
@prologic, what makes your mention of my handle show differently like this?

@prologic no worries! It pains me to find bugs in Yarn, though. I want it to be flawless, you know, like Microsoft Windows. 🤭
@mckinley Caddy is simpler and act as both, web server *and* a reverse proxy. Traefik is only—albeit on steroids—a reverse proxy.
@mckinley it is opt-in because all your devices logged into the same iCloud account need to be at a compatible level. You also have to have a designated recovery account member which, obviously, you need to manually add.
@prologic ah, fuck it, don’t worry. I consider one the original (I flip a coin to pick which), and the other’s a backup, just in case. 😂
See:

https://twtxt.net/twt/7hraijq
https://twtxt.net/twt/ta6uu5q
Yeah, truly weird and odd behaviour.
@mckinley I also see repeated Lyse twtxts, and I can’t even mention him on this twtxt. When I type @Lyse the pop up shows up, but when I tap on it, it just autocompletes as @lyse@, nothing else.

I am on mobile.
@lyse nope. That’s all Yarn’s doing. 😳😬
@prologic clean’em all! 😂
@prologic break a leg, or a table, mate! Win or lose, have fun!
@prologic I ended up installing the PDS again, this time manually (not using Docker). It is running, with space to spare, on 510MB RAM right now.
@prologic all these mentions are broken. 😭
@prologic because my other (and only one now) VPS is maxed out.
@stigatle happy birthday, dude! We also take birthdays very seriously, and treasure them. It's reaching a milestone, and worthy of celebration. Mine is next Tuesday, and I am taking Monday and Tuesday off, so this is a long weekend for me. 🥳

I was already almost 15 years old when you were born. Time do fly!
@prologic same official client works with your own PDS. Not going to keep it, though. To test I spun up a new VPS, and I don’t want to pay $6/month for it. 😂
Turns out it is pretty easy to run your own BlueSky PDS (personal data server). I am @david.collantes.me.
@stigatle 😍 lovely partner, mate! I can't help but noticing that everything around is quite clean, that your motorbike tyres aren't dirty at all, and that white Tesla model 3 right there on the left, chilling. 😊
@mckinley I run various applications with Docker, and a few websites.
@mckinley I run various applications with Docker. I also run a few websites.
This is pretty cool!. Hurrah, and props to the Germans!

> "At a Berlin trade fair for sustainability, a new gadget caught Waltraud Berg’s eye — a solar panel small enough to be easily installed on the side of a balcony and then plugged into a wall socket to feed energy produced by the sun directly into her home."
This is pretty cool! Hurrah, and props to the Germans!

> "At a Berlin trade fair for sustainability, a new gadget caught Waltraud Berg’s eye — a solar panel small enough to be easily installed on the side of a balcony and then plugged into a wall socket to feed energy produced by the sun directly into her home."
@prologic LOL. All of them!
@prologic yes. 😅
@eldersnake how big is that VPS, if you can tell? My 1 vCPU, 2GB, 50GB is maxed out. 😬