# 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 6434
# self = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=6234
# next = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=6334
# prev = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=6134
@kat @bender Hahaha! I can't recall either, maybe even just a chisel or a knive? I'm not terribly good at it, not even close. It's just fun. And I do it all too rarely. :-/
@kat That's cool. Also, looks like a fun woodworking project in case you exceed the hundred slots. :-) The plywood lap joints might be quite repetetive, but gang cutting them with a story stick or some other fixture shouldn't be too terrible.
@movq Their gold teeth collection? ;-)
What do you think I just learned about in this awesome Computerphile video with Matt Godbolt called "Subroutines in Low Level Code"? https://www.youtube.com/watch?v=1su3lAh-k4o

Here's the plot twist, the phrase "till the cows come home". Hahaha, I never heard this before, but I love it! It's always interesting to me to hear English sayings. Sometimes we have the same in German, sometimes – like in this case – entirely different ones. It's fascinating that even though one hasn't come across proverbs, it's typically still clear from the context what's meant.

Yep, some unexpected language stuff. ;-)
Thanks, @movq! That seems to be much easier. It's already implemented in the Python docs as examples of recvmsg(…) and sendmsg(…):

* https://docs.python.org/3/library/socket.html#socket.socket.recvmsg
* https://docs.python.org/3/library/socket.html#socket.socket.sendmsg

I looked at them sooo many times in order to figure out why my SCM_CREDENTIALS sending code didn't work. :-D
Yesterday, I had a look at Unix domain sockets and how to obtain the caller information: https://lyse.isobeef.org/caller-information-via-unix-domain-sockets/
@bender Deal!
@movq @bender @kat Oh yeah, this is a great article! The site looks quite horrible, but tastes are different. :-)
@kat Oh dear, what a way to start the day! :-(
Once again, we had a lovely sunset: https://lyse.isobeef.org/abendhimmel-2025-05-04/
@javivf You also cut from the front and not the back.
@prologic I also wore gloves, but after hours of demanding work, my shoulders and wrists were shattered. I hope I'm back to normal tomorrow. :-)
@prologic To clarify, from my observations on how the system behaves, it feels like that. This doesn't make it any better, I know. Sorry mate! I never claimed that testing is always easy, but in my experience it sure does help cutting down regressions. But to each their own, no worries. The diagram is all Greek to me. Anyway.

@bender True.
@movq Indeed, a Wüstenmaus sounds cute. However, a Wüstenratte — which is more a desert rat — not so much.
@prologic ODD, lol. I don't wanna be rude, but this sounds more like Code And Fix.
We just split about one and a half cubic meters of fire wood at our scout yard. And even more chainsaw action to cut the logs in smaller chunks. I'm bloody tired now. But it was really great fun swinging the axe. I will sleep like a rock tonight.
We went on a 14 kilometers long hike in the heat, only a few spots were in the shade, most of our trip was in the open fields with the sun beating down on us. We reapplied the sun blocker after about two hours or so. All in all it took us about three and a half hours before we reached our destination Besigheim.

Last time I was there it was rainy, now we had the exact opposite. After some yummy Chinese lunch we visited the old town. There's some gorgeous timer framing to see. When kept in decent shape, it just looks so dang cool.

Since it was too hot, we rode back by train. Despite the heat and some sections near the roaring Autobahn, this was a nice hike. Would do it again. Only in colder weather, though. I certainly don't wanna trade my comperatively larger (still nothing to other more rural areas), covering forests with the wide open fields and vineyards in summer. That's for sure.

Fire escape staircase camouflaged behind some wooden slats

https://lyse.isobeef.org/wanderung-von-asperg-nach-besigheim-2025-05-01/
@quark Despite the Reddit part (I never understood it), this is a great analysis. I could not have put it any better. I also feel quite home here with the all feeds I follow. It's a small bunch of good people.
The temperatures are getting pleasant now. All the freshly cut grass really smells lovely. Looks like farmers are securing their harvests before the rain hits tomorrow in the arvo.
@movq @bender 28°C right now, but luckily, just 20°C tomorrow and rain. Even a thunderstorm at night. On Sunday we're down to 12°C. What a ride. Oh boys!
@bender It's like having good manners at the table. Use forks and knives. ;-)
@movq This suits the background image perfectly.
@movq Oooooohhhhhh, I see. Hmmmm.

To answer your question: Ideally, you would have replied directly to my reply. :-) The flat conversation model always felt unnatural to me. I just yielded to the community's way of doing it.
@movq When I reply to a message, I typically already mention the feed. Just like in this very message. I believe this mechanism should work for most replies. But there are of course the odd responses where I do not mention the original feed, but rather some other feed(s) instead to which I actually want to reply. Maybe "forking", as prologic calls it, would be the better option there.
I visited a good mate after a day in the office and went for a stroll in the evening. It still was really hot, phew, about 24°C. Must have been the aftermath of the fire in the morning! For sure! The firealarm went off during a meeting and we all had to leave the building. Anyway, I only managed to take one lizard photo, all the other ones we came across immediately vanished in the brush or cracks in the vineyard walls. The kestrels were way more cooperative:

Kestrel sitting on the edge of a tower

https://lyse.isobeef.org/asperg-2025-04-30/
@movq Oh, I see. I reckon I accidentally late April-fooled myself. :-D

It's an interesting comparison. I really should have thought about that.

You're right, the rendering would not be very spectacular. :-)
@movq Agreed, finding the right motivation can be tricky. You sometimes have to torture yourself in order to later then realize, yeah, that was actually totally worth it. It's often hard.

I think if you find a project or goal in general that these kids want to achieve, that is the best and maybe only choice with a good chance of positive outcome. I don't know, like building a price scraper, a weather station or whatever. Yeah, these are already too advanced if they never programmed, but you get the idea. If they have something they want to build for themselves for their private life, that can be a great motivator I've experienced. Or you could assign 'em the task to build their own twtxt client if they don't have any own suitable ideas. :-)

Showing them that you do a lot of your daily work in the shell can maybe also help to get them interested in text-based boring stuff. Or at least break the ice. Lead by example. The more I think about it, the more I believe this to be very important. That's how I still learn and improve from my favorite workmate today in general. Which I'm very thankful of.
@movq Wow, that's sick! Assuming the rendering is correct, I never realized the mountain ranges being this steep and tall. This has real education potential for geography classes. Really cool!
@movq In case you reconsider, it would be even easier then to just send an HTTP 429 Too Many Requests. :-)
@bender Hehehe! :-D

@movq I have to admit, I didn't follow the topic very closely, but I was under the impression that there were more votes on location-based addressing. But maybe I'm completely wrong. Anyway. I don't have the energy to be part of a fundamental debate.
@prologic Thank you for writing this together. I just left a few comments.
@movq You better push new code sooner!!

As @bender says, that sounds like a bot. I'd just block the IP address, hoping it doesn't change all the time. But then you know for sure that it's the AI fuckwits.

Also, the devil in me thinks it's funny to swap out the repo in question for something entirely different. :-D
Oh wow, that 48 hours timelapse from SDO is super cool: https://social.bund.de/system/media_attachments/files/114/413/834/747/006/466/original/91b1698392ae5188.mp4 At the end, the moon is whizzing by.
@xuu Hahaha, that's cool! You were (and still are) way ahead of me. :-)

We started with a simple traffic light phase and then added pedestrian crossing buttons. But only painting it on the canvas. In our computer room there was an actual traffic light on the wall and at the very end of the school year our IT basics teacher then modified the program to actually control the physical traffic light. That was very impressive and completely out of reach for me at the time. That teacher pulled the first lever for me ending up where I am now.
@prologic Exactly, @bender! :-D This is at the entrance of a veggie farm (11 & 12) where there are free-ranging kids playing on the road, so people should slow down when driving there to buy some supplies. I also wondered why the sign says "Halt!" instead of "Langsam fahren!" (Drive slowly!) or something like that. On second thought, maybe to actually park there on the street right at the property line.

I actually never walked on that road before and discovered that this was a dead end. There's usually at the very least a foot path on which to continue when passing a farm. Not this time, though. I didn't want to stamp down the high grass to cut across country, so I had to walk back maybe 150 meters. Not too bad.
@prologic Phew, I'm indeed not twtxt.dev, because I sometimes actually do edit my feed with vim like a barbarian.
@prologic Can you please draft up a specification for that proposed change with all the details? Such as which date do you actually refer to? Is it now() or the message's creation timestamp? I reckon the latter is the case, but it's undefined right now. Then we can discuss and potentially tweak the proposal.

Also, I see what you did there in regards to the reply model change poll. ]:->
Hahaha! https://blog.bofh.it/debian/id_471
@movq I started with Delphi in school, the book (that we never ever used even once and I also never looked at) taught Pascal. The UI part felt easy at first but prevented me from understanding fundamental stuff like procedures or functions or even begin and end blocks for ifs or loops. For example I always thought that I needed to have a button somewhere, even if hidden. That gave me a handler procedure where I could put code and somehow call it. Two or three years later, a new mate from the parallel class finally told me that this wasn't necessary and how to do thing better.

You know all too well that back in the day there was not a whole lot of information out there. And the bits that did exist were well hidden. At least from me. Eventually discovering planet-quellcodes.de (I don't remember if that was the original forum or if that got split off from some other board) via my best schoolmate was like finding the Amber Room. Yeah, reading the ITG book would have been a very good idea for sure. :-)

In hindsight, a console program without the UI overhead might have been better. At least for the very start. Much less things to worry about or get lost.

Hence, I'd recommend to start programming with a console program. As for the language, not sure. But Python is probably a good choice, it doesn't require a lot of surrounding boilerplate like, say Java or Go. It also does exceptionally well in the principle of least surprise.
@sorenpeter I see, ta. The big spring cleaning continues. ;-)
I went on a small hike, just 12-13km this time. The weather was great, blue sky, sunny 18°C, but with the wind it felt colder. Leaves and other green stuff is exploding like crazy. It looks super beautiful right now.

I came across an unfortunately dead salamander on the forest road, some fenced in deer, heaps of sheep, some unmagnetic cows (some were aligned very roughly north-south, but mainly with the axis of the best view I believe), a maybeetle and finally an awesome sunset. Not too shabby! The sheep were mehing all the time, that was really lovely to hear. And the crickets were already active, too. Didn't expect them to hear yet. I tried to record the concert, but the wind messed it all up. Oh well.

Sheep

https://lyse.isobeef.org/waldspaziergang-2025-04-27/
@bender Must be the US tariffs, it's working reasonably quick in Europe. :-D
@movq Your next experiment should be triangles. :-)
I just fixed a bug in tt's reply to parent feature. Previously, when the message tree looked like the following


Message
├╴Reply 1
│ └╴Subreply
└╴Reply 2


and "Reply 2" was selected, pressing A to reply to the parent should have picked "Message". However, a reply to "Reply 2" was composed instead. The reason was a precausiously introduced safety guard to abort the parent search which stopped at "Subreply", because its subject didn't match "Reply 2"'s. It was originally intended to abort on a completely different message conversation root. Just in case. Turns out that this thoght was flawed.

Fixing bugs by only removing code is always cool. :-)
@movq Bwahahaahaaa, this is fucking brilliant, I love it! :-D What a wonderful thing to start my Sunday.
@movq I hightly doubt that I am wiser than you. :-D
@bender Ha! It turns out, some cows indeed have magnets in them: https://en.wikipedia.org/wiki/Hardware_disease
Cool, Hubble turns 35 today! https://science.nasa.gov/missions/hubble/nasa-celebrates-hubbles-35th-year-in-orbit/ Happy birthday little space telescope and thanks for all the lovely photos! :-)
@movq Aha! See? You got Long (Time Ago) Covid! ;-)

But this also happened to me all the time already before the pandemic. Time just flies and accelerates even more the wiser we get.
@bender Hahaha, is that a satire site? :-D I haven't noticed them prefering a north-south direction. They're typically aligned in the marching direction to step forward to get to new grass. Or they just follow the leader cow.
@bender Mission accomplished. :-)
Hey @sorenpeter, is your neotxt.dk feed permanently dead or will you resurrect it?
It was fairly gray all day. Just before I went on a stroll, a rain shower paid us a visit. Then, the sun took over. Great timing. It's crazy how rapidly the greenery grows. No comparison to only two weeks ago.

Cows on a meadow

https://lyse.isobeef.org/waldspaziergang-2025-04-24/
Yesterday, I saw two courting great tits in front of the window. One fed the other a few times. That was super sweet to watch. I've never witnessed that myself before.
That reminds me of a workmate telling me the other day that my photo albums are blocked by corporate "»'security'«" trashware, bwahahahaaahaaaaa:

Category: Adult Content

Completely expected from AI bullshit.
@bender Great tits always makes for lovely nick names!

A pair of great tits, female on the left, male on the right
Exactly, @bender, I was happily surprised when I discovered it. :-)
I was listening to "Turn On The Night" by Kiss and thought, I very well turn on the light and close the shutters. It's very dark and stormy outside. The second thunderstorm this year is here.
@thecanine Woof, woof, woof, that's pretty cool!
@kat Congrats! I wish it was that easy at work here, too. No matter what, 95% of the time I never complete or very often just even work on tasks that I want to get at. So much other rubbish popping up.
@bender Hell yeah, that sounds like a good day!
Ta, @prologic! Assuming you mean 13, it's just some old shed in an orchard. I reckon the owners keep some of their tools in there. They are all over the place around here. To me they look like they were all built like 50 odd years ago or maybe more, not sure. I could be completely wrong. I just like the look of them and actually wanted to capture the dark sky with the rolling in thunderstorm, but my camera had totally other plans. Didn't work out at all.
@movq Hahaha, this is so cool! :'-D
@kat And tasty! :-) Turns out there's marzipan in the bunny belly. Yum-yum!
@bender Thanks! The rain rapidly cooled off the 17°C to just 10°C. I certainly appreciated that. The weather is coming from the west here, so I thought you've sent it our way. Let me try to return it. :-)
Today's stroll was really nice. Just around 11km in total I'd reckon. We had a barbie at a mate's garden where everybody went on a hunt for an easter basket. Oh boy, what a preparation that must have been! Baking the bunnies, dying the eggs, mixing the bear leek butter and so on. That's dedication, let me tell you. :-)

Contents of the easter basket, not the pliers, though

It was the first time this year that we had half proper April weather and a thunderstorm in general. It started off with clear sky and lovely sunshine. Right after arvo lunch it started to rain, so we went into the hut. Then, the sun returned.

On the way back with the growling thunder in the distance coming closer and closer we escaped the rain just perfectly. A minute or two after we reached the car, wet stuff started coming down the sky. Not even half a minute after opening the front door, it poured like crazy. Lucky twice today. There's beautiful sunshine again by now. It smells absolutely great after the rain. I love it!

https://lyse.isobeef.org/waldspaziergang-2025-04-21/
@movq Oh, that's beautiful!

I opened up all the photos in new tabs and went through them. For a second, I wondered that it was snowing at your place right now. :-D

That made me realize that so far we basically had nearly no April weather whatsoever. May might be full of it then, let's see. :-)
@prologic @movq @bmallred @ionores Thank you! Yeah, the yellow meadows look truly awesome.

Watching "Happy People: A Year in the Taiga" in German the evening before, this thing totally looked like a trap to us. So, we decided to sit on another, more rustic bench nearby. :-) Oh neat, it turns out, there is a much longer four part series of the documentary in English on YouTube. Highly recommended! This is part one: https://www.youtube.com/watch?v=fbhPIK-oBvA

Judging by the surroundings, I think this is actually a forest altar or something of that nature. But it looks like they started with the chappel's reinforcement steel and then they ran out of money before completing it or even placing the concrete forms. :-P

Yeah, 78 might be photo of the month. It's one of my favorites.
A mate and I had an amazing but also exhausting hike to the highest of the Three Emperor Mountains yesterday with perfect weather conditions. Sunny 18°C, blue sky with barly a cloud and a little welcoming breeze, just beautiful.

Mt. Stuifen

Mt. Stuifen is 757 meters above sea level, has a small shelter and a barbie area and is still the most boring one of the three. It's also the one farthest away from me. Not sure why it has two summit crosses, but both aren't at the summit. The third, makeshift one at the real summit was gone by now. Four years ago, somebody had cobbled one together and put it up.

We bought our tucker at a local bakery on our way. This was the first time I tried a Teufelsbrezel (lit. devil's pretzel), a lye pretzel with pepper. Haven't come across that anywhere else. But I can certainly recommend that, it's yummy.

We were glad when we were finally back home after some 26 or 27km. I won't do much today and let my feet rest. Another friend called for a much, much shorter hike tomorrow.

Enjoy the 92 photos: https://lyse.isobeef.org/wanderung-auf-den-stuifen-2025-04-19/
@bender Exactly. I suspect it was because of sqlitebrowser also accessing the database in parallel to debug the original issue.

So far, I have not found the exact reason why some replies don't show up. When I do not filter for unread messages and show all, though, I actually see them. So, there's that.
Today is the day where everything is falling apart. Suddenly, I get: SQL logic error: cannot start a transaction within a transaction
Aha, they all had to do with a dropped feed. I suspect the internal bookkeeping with root paths couldn't keep up.
I just noticed that my unread messages counter was off by quite a bit. It showed 8, but I only saw one unread message. Even after restarting my client, which recalculates the number of unread messages, it remained at eight. Weird. Looking in the database revealed that this is indeed correct.

Apparently, my query to build up the message tree must be incorrect. It somehow misses seven messages. They all are orphaned, maybe that's a clue. However, generating missing root messages (and thereby including the replies) typically works just fine. Hmm.
@movq Hopefully at your neighbors and not your building. :-S Keep your pecker up!

I just heard the fire brigade respond here with their compressed air sirens, too.

If you let fire take effect properly, it helps to reduce density.
That's an interesting research article about Wallbleed, a memory disclosure vulnerability in the Great Firewall of China. They reverse-engineered the buggy DNS query processing code that injects a response if the hostname should be censored: https://gfw.report/publications/ndss25/data/paper/wallbleed.pdf
@movq Lol! Yeah, nobody wants to see you bring your coal-powered forklift into the gym. :-D
Even though I really do like the shell, I always use Dolphin to mount my digicam SD card and copy the photos onto my computer. I finally added a context menu item in Dolphin to create a forest stroll directory with the current date in order to save some typing:

Context menu item to create a new directory and directory name dialog

The following goes in _~/.local/share/kservices5/ServiceMenus/galmkdir.desktop_:

i
[Desktop Entry]
Type=Service
X-KDE-ServiceTypes=KonqPopupMenu/Plugin,inode/directory
Actions=Waldspaziergang;

[Desktop Action Waldspaziergang]
Name=Heutigen Waldspaziergang anlegen…
Icon=folder-green
Exec=~/src/gelbariab/galmkdir "%f"


In order to update the KDE desktop cache and make this action menu item available in Dolphin, I ran:

h
kbuildsycoca5


The referenced galmkdir script looks like that:

h
#!/bin/sh
set -e

current_dir="$1"
if [ -z "$current_dir" ]; then
    echo "Usage: $0 DIRECTORY" >&2
    exit 1
fi

dir="$(kdialog \
    --geometry 350x50 \
    --title "Heutigen Waldspaziergang anlegen" \
    --inputbox "Neues Verzeichnis in „$current_dir“ anlegen:" \
    "waldspaziergang-$(date +%Y-%m-%d)")"
mkdir "$current_dir/$dir"
dolphin "$current_dir/$dir"


This solution is far from perfect, though. Ideally, I'd love to have it in the "Create New" menu instead of the "Actions" menu. But that doesn't really work. I cannot define a default directory name, not to mention even a dynamic one with the current date. (I would have to update the .desktop file every day or so.) I also failed to create an empty directory. I somehow managed to create a directory with some other templates in it for some reason I do not really understand.

Let's see how that works out in the next days. If I like it, I might define a few more default directory names.~_
@bender Oooofff, I'm panting for breath when just thinking about that! I'll immediately stop complaining. :-) I already forgot that a jacket over my jumper would have been nice. I'm happy to be cold.
We had some nice 22°C today. But after work, it got rather windy and cloudy, temps rapidly dropped so just 14°C. Still a nice stroll to our backyard mountain. https://lyse.isobeef.org/waldspaziergang-2025-04-16/
@movq For sure, an app for that is very silly. I've just seen signs in participating shops in my town. That's how I know of this concept.
@movq You just have to dress yourself up in a dog custume to pee on a tree, fence post or house wall. :-P

Depending on the hour, town halls and also graveyards are typically good options for public toilets. But yeah, you have to find them first. And then, there might be the "Nette Toilette": https://www.die-nette-toilette.de/ (Unfortunately, you can't see on the website which towns and cities participate in that concept. :-()
@movq Heck yeah, that's an awesome shot!
@bender Yup, we run an ejabberd.
This 8 bit trip is really cool! https://www.youtube.com/watch?v=pCm1fKZGvl47
@prologic So, this flag isn't doing exactly what you thought it does? Or is there a bug in the implementation itself?
@prologic Ta! :-)
@bender @ionores Yep, it's extremely seldom that a photo turns out looking better than reality. Very rarely does that happen. But basically never with sunsets. ;-) Maybe once a leap year I'm very surprised to wonder how that subject wasn't better in person but actually on film.
A mate and I met at the scout yard to prepare an upcoming workshop. Boy did we have an amazing sunset when we left. The photos don't reflect it, it was a hell lot more beautiful in person: https://lyse.isobeef.org/plaetzle-2025-04-11/

Bloody awesome sunset
@anth Hahaha, for a second I thought that you implemented word splitting according to Swiss (.ch) rules. :-D

Btw, both manpage links string(2) and getields(2) (it's missing an f) point into nothingness: http://a.9srv.net/src/wordwrap.2.html

I can't help but notice line 9: http://a.9srv.net/src/wordwrap.c

And I reckon your finger slipped one key to the right for quore: http://a.9srv.net/src/litclock.1.html

Cool stuff! :-)
@bender @movq Thanks! I'll think about switching to higher resolution teasers in the future. The reasoning behind the thumbnails is to avoid wasting traffic. Maybe folks in the outback or on expensive mobile networks appreciate it. Yeah, they could disable images in general.
That's a dang cool story from Apollo 11 where priority queues saved the day: https://www.nasa.gov/history/alsj/a11/a11.1201-fm.html
Hit by the arvo sun rays behind the window I was convinced that it is t-shirt weather. Deep blue sky, yeah, for sure! It turned out to be just 15°C and declining, though. So, I had to wear my jacket on today's windy stroll. Pretty nice. Didn't take many photos, but there you go: https://lyse.isobeef.org/waldspaziergang-2025-04-10/

Blooming trees
@movq Holy crap, that's really crazy!

Hahaha, you got me. When I read your first sentence I thought you were going to tell about your Wayland experience in comparison to X11. :-D
@movq @ionores Thank you! Nope, still a petting farm over here. The only dangerous (to humans) animals are boars and ticks. But I only ever encountered a wild hog once in my entire life so far. Luckily, it took off and didn't attack me. Ticks, on the other hand, regularly attack me.
@bender @prologic Thanks mates!
Another nice stroll in nature last week: https://lyse.isobeef.org/waldspaziergang-2025-04-03/

Spring makes for colorful trees
@thecanine Hahaha, woofcome back! :-)
@kat It's very well hidden, it took me a while to find that. Go to "Settings" in the menu bar up top → "Profile and Privacy" (already selected) → on the right at "User Info" → "1 Muted" → click the link with the minus in the circle at the message you want to unmute.
@movq @kat Heck yeah, that's crazy! :-) Fingers crossed! (tt also agrees with the right™ hash)
@prologic @bender @movq I'm going to join the party in Down Under. :-)