# 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 6164
# self = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=4916
# next = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=5016
# prev = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=4816
@movq @prologic I just don't. But this script looks really interesting.
@movq 50 kB executable sizes, nice! I can't even recall when I came across one this small. The good old days.
Hmm, three war helicopters clattered past today. It was (and still is) very sunny and there's just a little wind. The 21°C sun on the back felt pleasant. In the forest we encountered two dead mice on the paths, they might have been dropped by birds. https://lyse.isobeef.org/waldspaziergang-2024-04-12/

Canola fields
Just a few minutes into my walk I saw a raven chopping up a slow worm in three parts. :-( I rescued the reptile as best as what you can call rescue in that state. Crazy how the the tail and middle part kept on twisting hard for minutes. I didn't see where the raven went hiding, so I can only hope it did not reattack after the slow worm went its way and I left the scene.

The small forest pond was covered in pollen, looked like a liming truck went by. And the other one with the duck was really oily. Way more than last time. Didn't look healthy at all. :-(

Dandelion
This is soooo cool! Matthias on some solar panning camera build and eclipse shenanigans, highly recommended: https://youtu.be/YLDaM0FcXC4
@movq Being lazy is what I did today. :-)

That's a bitter, but true résumé. I'm pretty sure that I first heard of the Saharan air layer only a few years ago. I would be very surprised if my knowledge is more than a decade old. This could have been a big enough topic to be covered in geography lessons, but it doesn't ring a bell. Just like with everything, there is always something "new" to learn.
@movq I did! :-)
@movq I didn't see *that* reply in your feed. :-)
@movq You're right, that was silly. But what do you gonna do? I could have picked bike, well.

At least it's been a thing since July 1997. :-D I wouldn't be surprised if this goes on for thousands of years. The German Wikipedia article on that matter doesn't explicitly say anything about the time scale, but reading it my assertion corroborates. There is a recorded event in the year 1901.
Oh boy, that was fricking hot. I hiked to the dairy farm to get some fresh milk for waffles and was totally soaked when I returned.

Fortunately, the Saharan air layer reduced the direct sunlight. A slightly older man and I talked a bit how weird the sky looked and he asked me whether that has always been like that. He didn't recall experiencing anything like that in his youth. I really don't know, but I reckon that this is not a new phenomenon. I also don't recall seeing that when I was a child, however, I was also not interested in stuff like that back then. Hence, it could be selection bias. But it also might be more frequent with climate change. 02 shows the yellow, hazy sky quite good if I say so myself. It doesn't compare to last week or whenever that was, though. Last time was much more intense.

Baking waffles in the later evening on the balcony was nice. Temperatures dropped to just 24°C or so. Much more pleasant. The noise level in the neighborhood was also surprisingly low. And no mozzies around, another surprise. Quite the opposite when I was in the forest. Lots of insect clouds that followed me around and tried to bite me.

I witnessed a Eurasian jay land in a tree. On approach it broke off a rotten branch that fell down. The bird luckily selected a different branch to land on. That was crazy.

High stand at the edge of the forest

More pics from the tour: https://lyse.isobeef.org/waldspaziergang-2024-04-08/
@movq But it's supposed to rain tomorrow at max 15°C. :-)
@movq Looks like it. 28°C here, gna.
@prologic Classic move. :-( I think everybody experiences that at least once in their life. Get well!
@sorenpeter Thanks mate! :-)
I've been out a few hours again. I came across a dozen or so forest mice. I heard tons of squeaking and saw a lighting fast moving seething mass under leaves and groves. It was impossible to capture anything but I could watch it for two, three minutes. They even seemed to come as close as 20 centimeters judging by the rustle and moving plant leaves. Pretty cool.

But heaps of people had to fire up their noise machines today. That clouded my overall joy in nature. Once a commercial airliner was about to fade away in the distance, the next one already adumbrated itself. Lots of prop planes and even a helicopter. Obnoxious loud super cars and motorcycles with broken off mufflers or I don't know what. My felt hat amplifies the sound I noted.

Luckily, the sun hid behind the clouds most of the time, so I survived the 25°C. Even hotter tomorrow, yikes!

https://lyse.isobeef.org/waldspaziergang-2024-04-07/

Forest monster
@movq Thanks mate! I'm glad you like it. :-)

Unfortunately, I think it's just an illusion that it's super quiet over here. Mostly boils down to carefully selected recordings, as I want to share the nice stuff. ;-) In reality, you can also hear man-made noises nearly everwhere. Depending on the wind direction, even in the middle of the forest in the middle of the night you can hear the railroad in the valley in the distance or cars and motorcycles on surrounding streets. There are only very, very few spots where there is only the sound of nature.

I tried to record birds singing numerous times, but even if they're quite loud themselves, there has always been the traffic noise in the background on all tracks, so I scrapped them (I would need a directional microphone). And if there is actually no traffic on the ground, a plane comes by. :-) We're in the air corridor of Stuttgart Airport, planes are still relatively high, so it could be way worse. But recreational smaller planes also like to cruise around in our area. And those propellors stir up the air quite a lot.

However, the snow really does cut down a lot of the (annoying) audio waves, that's for sure, no doubt about that. :-)
@movq Yeah, we thought a couple of times that this loader is about to tip over.

Same here, I've seen the needle climb to 27°C. To help cool off, here's some bonus winter footage I edited today: https://lyse.isobeef.org/waldspaziergang-2024-01-20/waldspaziergang-2024-01-20.mp4 (724.1 MiB)
@movq If I go far enough there are indeed a few paths I haven't been on. ;-)

Yeah, that tractor moved up and down a giant manure heap. Although the tires spun a few times, it's quite amazing how relatively effortless it looked to drive on that pile of shit. That machine leaned quite a bit at a few spots. https://lyse.isobeef.org/waldspaziergang-2024-04-05/traktor-auf-misthaufen.mp4 (114.5 MiB) You might have figured, 11 and 17 show also the same subject from different angles.
We went on a three hours hike on today's 22°C warm spring day. Luckily, it was cloudy, so the temperature was bearable. Tomorrow and the day after are supposed to be very sunny 25°C days, puh. We explored even a new path I've never been on. It was a very enjoyable tour, up and down, up and down, up and down. I feel m feet. https://lyse.isobeef.org/waldspaziergang-2024-04-05/

Bee hive in front of a farm
@movq I completely agree.
@adi Dito. :-D
@movq Nice! Oh, I hear you. Remindes me of my multi-line table implementation for tt2. Surprisingly complicated stuff is needed for such a trivial thing as scrolling. I implemented a simple cache to speed up rendering when the same entry didn't change. But there is probably a lot more room for further improvements.
@movq Wow, this is just totally insane!
@movq Haha, nice! :-D
Gonna give cmus a try. cmus-tutorial is a cool thing I have to say.
@movq Exactly! :-D Or call it lazy in that case, to be honest. I just got used to all my workarounds in place. :-/ I still want to recreate tt2 one day. I started with it months ago and never touched it since. Too much other stuff going on.
@movq That's cool! So that dusage scroll buffer is part of the GUI, not "just" a terminal?
@movq What the heck? That screen capture comes from that program?
@movq My setup hasn't changed or progressed for over a year. I still don't consume archive feeds, just produce one every now and then.
@mckinley It's very simple. Quot Libet is my player at the moment, it's okay, but not great. I really did like Amarok back in the days (unfortunately, not available in Debian anymore), then tried Clementine and switched to xmms2 for a bunch of years. I had a few scripts around it. I don't remember why I moved away from it, though. A few years back I gave mpd a try, but could never get it to work properly.

Quod Libet usually just plays the whole collection from top to bottom and I manually skip every now and then. Sometimes even entire bands.

I've got all sorts of file types in ~/music. Usually each artist gets their own directory, depending on how many stuff I've got, there's usually a directory for the album and then come the tracks. Filenames are all over the place, for new stuff I use lowercase only and no spaces but dashes. I make use of common meta data such as artist, title, genre, often also year, album and track number. These days I get a lot of new music from YouTube and cut the start and end off with Audacity. The last three fields are only filled when I can be bothered to look them up.

Currently playing: https://www.youtube.com/watch?v=LS0hYhD-U0A~
Very cool, heavy-duty chainmail from serious chain: https://youtu.be/IyUrDWGtS24
@movq https://www.barrettguitarrepair.com/wp-content/uploads/2014/07/heat-press-guitar-repair1.jpg
@movq Wurde wohl allen erzählt. :-)
@movq We've been spared the horrific murder in the sky. :-D Your photo is actually pretty good. Well done mate!
@movq Yepp, even "blood rain" possible this evening: https://www.wetteronline.de/wetterticker/blutregen-ab-samstagabend-moeglich-saharastaub-als-ursache--9bec6ee5-61ff-4781-9cdc-5be2adb6f187 (beware of the cookie terror banner)
The Sahara pays us a visit again. It's all yellowy here. Looks quite surreal. But I can't show you a photo, just doesn't capture on film.
@mckinley Nice one. :-)
It's the second time, @movq. Not the XFS filesystem driver anymore this time, though. Luckily, with my experience from last time it was rather easy today – once we finally managed to reproduce it. cat /proc/<PID>/{syscall,stack} were absolute key again, thank you very, very much dear Linux kernel hackers for these absolutely wonderful tools! <3 The only tricky part left is figuring out why that actually happens.
@movq Enjoy your thick egg slices. :-)
Hurray, yet another bug where a process is not killable and hangs forever in an uninterruptible system call…
@prologic I might have to look into this thing. But at first glimpse it looks rather complicated and doesn't look like a simple replacement in my chain.

Again, YT keeps on deploying broken shit. >:-( Excerpt from my cronjob error feed: https://lyse.isobeef.org/tmp/404.png
@prologic Does your cronjob parse the HTML, queries an API or how does it work? I parsed the video list HTML in the past. But it constantly broke, because somebody at Google thought they have to mess with the HTML every now and then. When I noticed that there are actually RSS feeds, I immediately switched. It's way better. Here's my setup: https://lyse.isobeef.org/online-video-setup/ I reckon I have to update this article with the latest achievements of #shorts exclusion.
@prologic Not sure why the deerstand's roof is on the ground. That high seat has been built not that long ago. I can't tell for sure but I'm fairly certain that the roof was installed the last time I checked. :-?
@movq Cool! sed 21/s/one/on/ vec.h 8-)
We had 11°C and a lot of wind today. I left the house at beautiful sunshine to go into the woods. I had to shelter from the rain under a coniferous tree right away for 10-15 minutes or so.

Many puddles had plenty of spawn in them. Some of the super tiny tadpoles already hatched. Unfortunately, none of them will probably make it, because all those puddles will all dry up in the next one or two months I reckon. Let's hope for the best, though.

Spawn

A bird landed in the trees about 30 meters away from me and it appeared to be a larger one, like a buzzard. Only at home at the screen I then saw that it was just a pidgeon. :-)

A bit later, there was a chaffinch happily singing and picking on the forest road. I could close in to about five meters before it flew half a meter further and continued. So I made a few steps, too. That game continued for over five minutes, before it then decided to relocate four meters higher onto a branch to let me pass by beneath. Pretty cool!
Ah, it's supposed to be this pattern in the example code, but – to my understanding – applied incorrectly since all interaction with this channel happens in the same goroutine: https://pkg.go.dev/net/http#Server.Shutdown
I'm not a channel expert, @prologic, but idleConnsClosed is useless here, right? https://git.mills.io/yarnsocial/yarn/src/branch/main/internal/server.go#L192
@movq Thanks. It's so cool to see all the colorful change and animal activity that comes along with spring. :-)
@movq Sadly, you're right. The impacts are getting closer, adding two hours today. Yes, I'm speaking of the RSS feeds.
Haha, how cool is that! :-D Bee invasion interrupts tennis game: https://youtu.be/AADUUz2xqos
17°C today and I finally managed to go on a hike again. My thighs are a little bit sore. Sun didn't cooperate too well with my camera, but the sunset was all the more beautiful for it.

Bugs on a lent lily
It's always impressive to see that every now and then YouTube manages to break all feeds for several hours straight. 404s for hours on end. My hourly cronjob failed three times this morning. You'd think at least one test would fail in their CI/CD pipeline to prevent that.
@prologic As a workaround, you can add Alex's channel to your archive: https://www.youtube.com/@anengineersfindings If anyone of you likes engineering stuff, that's certainly worth it. :-)
Hell yeah, this is just so cool to watch. Machining a replacement part for a wristwatch. Also really nice old machinery, truly fascinating. https://youtu.be/i9aQVclIxB4
We participated with the scouts in the county cleanup day and even found a whole rubbish dump at the edge of the woods. Somebody must have dumped a whole truck load down the hill and burried half of it. We filled up a complete trailer with that. I reckon you can get much more out of this place.

Just in time for the start of the event, it began pouring down on us. It was very muddy, but still good fun. One cub scout said: "Oh, this is so cool! Walking around earlier on the paths and picking up trash wasn't bad, but this here is really awesome. I really do enjoy it a lot. Look how much trash there is. Crazy!"

It took me half an hour to hose down all the clay from my rain jacket, -trousers and boots. What a mess.
Oh damn, @movq. @mckinley Yup, paper it is.
@mckinley Oh my gosh, this is brilliant! :-D Thanks for sharing! <3
@sorenpeter I do like the simplicity of Twtxt with the extensions we already have, so I personally do not have a need for some server-side mentioning. But I read through your proposal and fixed a few typos.

I wondered how a client would figure out the endpoint where to POST to.
@thecanine Since they dropped the Linux "desktop" version, I have to use it in Chromium. What annoys the hell out of me:

1. In a call with exactly two participants the "View" menu doesn't do anything anymore. I cannot focus on the content of the screenshare and always have the silly screen space wasted on the right with a giant, useless other person's profile picture. As soon as a third participant is in the call, the "View" menu works again. For months now. You can't even make it the default in the settings.

2. Over the last couple of weeks screenshares seem to get delayed for up to 20 seconds sometimes. I never experienced that before. This makes pair programming or diagnosing stuff very hard and way more time consuming than it should be.

3. I somehow never find the chat box. With the old Linux client that was no problem, but since they moved it to the top, it always takes me several seconds to open it.

4. Sometimes the first call in the morning ends up in total silence so I have to restart Chromium. It then works.

5. On live events I have to completely remove all the cookies and login again, because I get the error message that I have to accept third party cookies. Even if the ten domains or so are explicitly whitelisted or *all* third party cookies are accepted. Always get the error. Each and every time.
@mckinley Yep, so wrong on so many levels.

@movq I just don't want to run such crapware. Browser, mail client and video player aside, I think I don't do too bad on that regard with my private stuff. Yeah, definitely ignoring the situation at the dayjob.

@prologic Only for Rust. Otherwise I stay away from that for sure.
FWIW, I read @mckinley's notes. Because I know they are not only well researched, but also well written. I sometimes even end up spreading these articles to other mates who are not in the Twtxt universe. This only very rarely happens with regular messages here.

But yeah, I absolutely get your point as well, @bender. I also do not mind long messages over here. So I support you in increasing message length limits. :-)
@movq Yes, Alexander Batischev tries to keep the Rust version bumps fairly moderate with Newsboat: https://github.com/newsboat/newsboat/issues/709

I was actually positively surprised that after the outlined rustup upgrade oneliner above, running make in Newsboat again worked flawlessly. Nothing else required. I delayed rebuilding for quite some time because I thought getting this Rust toolchain sorted out is going to be a major endeavor. Luckily, I was wrong. :-)

I just don't know if I now have two Rust installations in parallel or not. Or how much disk space I waste with all this. At least the script didn't tell me it found an old installation. It printed heaps of stuff, but skimming over it, I didn't see anything like that. I then simply selected the regular install. Whatever that meant. Researching this topic will be a project for another day if I'm really bored.
It's time to rebuild Newsboat again after over a year. Now I have to upgrade my Rust installation.

https://www.rust-lang.org/tools/install recommends this very dangerous and fishy thing:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

TLS 1.2 certainly fits the rusty motto.=
@movq Cool. Lasers shooting the moon. :-)
@prologic No idea, in theory that could work. But I'd assume very low output. Or you just have extremely good panels. You could try to improve the yield by moving them under the street lamps at night. :-D
@movq @prologic Yeah, bug was also my first association. :-) I'm surprised how good it still looks after all those years. I thought there might be more decay. But insects are just very tough.
@prologic I see these kind of things pop up as promotional giveaways everywhere. But they all look like rubbish. Not sure if that one is any better. Who needs high quality product photos these days?
@prologic Maybe the full moon was producing some juice. :-D
@movq You can't go wrong with them. :-D
We rode our bicycles to the Reiterleskapelle (Rider's Chapel). At first the sun was out but then it vanished behind the clouds. Icy headwind from the east and a subtle incline all the time made for a physically demanding journey there. The way home was rather quick and effortless. We could have used gloves, it didn't feel like 14°C at all, not even close.

15 shows the drain pipe for the giant tree hole.

Golden rider on the chapel's vane
It's finally up! Well, at least the first part of the L. Half way completed. I used just hand tools except for cutting and routing the sheets of OSB and drilling into the concrete wall.

[![Installed laundry shelf](https://lyse.isobeef.org/tmp/laundry-shelves/4/01-vorschau.jpg)](https://lyse.isobeef.org/tmp/laundry-shelves/4/01.jpg)
@movq Today I actually received an e-mail à la "I reply directly to your questions down below in red". Not the same, but I was still happily surprised. With my own plaintext reply I got rid of his nice color… ;-)

The only upside with TOFU is that you can easily forward an entire conversation to somebody else. But these chains tend to be quite horrible to read anyway.
@mckinley No, I don't mirror code from others unless I work on that project, too. But then it's all manual git fetch, nothing automated. If something is taken down or vandalised I hope that somebody else has a mirror and can help restore. This of course only works for popular code bases.

Good thought, though. I might have to look through my dependencies and identify candidates that might not have somebody who could help to get things back online.
After reading the first messages this morning, I wanted to go back to bed again, too.
I glued the third ladder and started with the fourth. Slow progress, but it's good fun: https://lyse.isobeef.org/tmp/laundry-shelves/3/ Making mortises for the crossbars
@movq After just two weeks. Phew.
Oh yeah! Tommy Johansson and Petter Hjerpe covering Helloween's Future World: https://youtu.be/lEj5i_SZqZY
@prologic Good to hear, the article left it open.
@prologic Good read! I loved the introduction. :-) Is Mike now connected or still waiting?
@adi Not bad! That reminds me, my sed and awk skills could be improved. :-)
@mckinley I see. Once more fields are of interest, this is definitely the way to go.
@mckinley Woah, how cool is that!? :-D Thank you! <3 I'm sure gron will come in very handy some day, now that I have it in my tool bag. My jq skills are pretty much non-existent, though. I don't use it often enough.
@adi Ah! What are you currently building?
@xuu Ah! I never did something with SIGQUIT.
@movq @bender I agree 100% and refuse to TOFU. Even at work.
@movq Haha, nice. :-D
@xuu Cool! I particularly like the idea of converting it into a grep-able version, that's very neat. Interesting choice of aligning the colons at the values and not the keys, I think I never came across this.
@mckinley Same here. Reading the spec I came across some confusing or not inherently logical things. Maybe they turn out not so bad in practice.

Being also a Python programmer, I wish there would be more indentation-based stuff. I do like that part with YAML.

Oh no! :-( That's bad to hear. I configured ejabberd years ago and it just is Erlang if I remember correctly. Quite a cool choice for that software.
@mckinley I hear you, that's why I prefer * as the bullet point wherever possible, e.g. markdown and RST. Not sure if YAML has it, too. I just know at work we use - for lists as well. But then use blank lines to separate list items that are spanning multiple lines. That helps a bit.
Yeah, the lack of comments makes regular JSON not a good configuration format in my view. Also, putting all keys in quotes and the use of commas is annoying. The big upside is that's in lots of standard libraries.

I think the appeal with YAML is that is has comments, is kind of easy to write and read and also provides unlimited nesting levels. But it has all its drawbacks, no question. Forbidding tabs, thousands of different string flavors, having so many boolean options (poor Norwegians) etc. I use it, but I don't particularly enjoy it.

Among simple key value pairs, I like INI files, but with # for comments, not ;. I never used TOML, read up on it yesteray before writing this question, but it looks a bit weird and has some strange rules. I guess I have to give it a try one day.

And yes, as mentioned by several of you, it always depends on the complexity of the configuration at hand.

I'm developing something for the scouts at the moment with rather simple requirements on the config. Currently, there are just four settings. Even INI would be overkill with its section. I selected JSON for now, because that's readily available with Go's std lib. But I do not like it.

Btw. what's your own config format, @xuu?
Question of the day: What configuration file formats do you all like and use?
@movq Exactly. But I fear you just don't learn these kind of skills for real life in school. I think overall I was pretty lucky with mine, but I don't have the feeling that school particularly prepared me all that well for reality out there. I would give my social environment much more credit. But it's very hard to say, maybe subconsciously school had a larger effect than I think. :-?

Anyway, they definitely should teach that, I fully agree! :-)
Oh my goodness! https://www.troyhunt.com/thanks-fedex-this-is-why-we-keep-getting-phished/
@stigatle I just feel like Nanook after our 10-11km hike. Looks like vandals grilled their thermite schnitzel on the public barbie. :-(

Primroses
@stigatle Ah! Yeah, it's raining here all day long, too. 10°C at the moment, but it should reach 12°C later evening with the small storm. The severe weather map is quite colorful, but we're lucky down south:

Colorful storm map for Baden-Württemberg, Germany and Europe
Looking out the window I saw a buzzard sitting in a tree, so I wanted to take a photo. But then its two bodyguard ravens attac^Wsaved it from me and it took off. :-(
Delphi at school, later Java and an own teaching assembler. Uni started out with Ada and then added Java as well. Here and there a few other languages, like Prolog (that I knew from school, though), I think C, the hardware guys brought us VHDL and some assembler that I don't recall anymore.
@stigatle Nice! Is it still frozen?
Cody delivers again, I love it! Making pop can thermite: https://www.youtube.com/watch?v=N9rGAA6eF10 I don't want to spoil, this is so cool, crazy, interesting, educational and entertaining. Highly recommended.
When dealing with unsigned integer, I always write e.g. unit8 instead of uint8. Every. Single Time. And this is usually only noticed by the compiler. I would blame the auto-correction, but I – luckily – don't have any.