# 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 6523
# self = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=4896
# next = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=4996
# prev = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=4796
@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.
@xuu These are indeed iterators. Very weird syntax, though.
@xuu Oh, I wasn't aware of this! Thanks for bringing it to my attention.

I do like that they move away from one shared variable per loop to an own one per iteration. That makes sooo much more sense. I don't hit that often, but it happened a few times in the past and getting this figured out is not the easiest thing in the world.

I have to read up on the yield functions. From your examples I fear iterators would have been more useful. Let's see.
@movq I just listened ten (lol) times very carefully, but it's much closer to "ten" than "tin" I think. Hahahaha, the dickheads video is fantastic! :-D Can't tell if I would have understood that correctly if I weren't reading the subtitles.
@movq @prologic Haha, this is nice! I have to admit, my ears cannot differentiate between Aussie and Kiwi, both sound the same to me. But then, for New Zealandish I also just watch Project Brupeg. Two Kiwis rebuilding a sunken boat in Down Under, so they might already have been Straya-lized, no clue.
@mckinley My goodness, 99 specifications!? I'm out.

Maybe some people want to periodically change their keys or if your private key is lost or leaked, you also need a new one. But yeah, you're right. You have to draw a line somewhere.
@movq Oh dear, you should probably switch shops. At least the Verbraucherzentrale backs us up here.
ARGH! All tests passed, but once I ran the exact same scenario in the real application, numbers didn't line up anymore. What the heck, how in the world is this even possible!? Turns out I haven't committed the changes to the database, that's why I still could see them perfectly fine in my debug session, but the application's session of course didn't. Took me four (!) hours to figure this out. Yeah, I really have to go to bed now. Good night.
@stigatle Cool. I was coding today all day long.

@prologic Are you already sick of your fast internet? :-D Enjoy your holidays!
@movq Wow, when entering or leaving?
@movq Just 13°C with cold wind. But the sun shining through the window was nice.
@mckinley Brings up a few interesting points. But I fear it's a rather complicated protocol. I read through a few pages on that site, but I haven't seen a real specification for it. I immediately thought that you can't really change your keys without losing your identity. Basically the same as with changing feed URLs over here. Maybe slightly better, but not much.
Something is wrong with me. My eyes fell on the onions and I thought, mmmmm, those apples look delicious. But I'm now eating a real apple.
@movq Yeah, the visual emoji thing is silly. Picking letters or words only would have been way too easy… So oldschool! But that's what you get with today's kids, they're all emoji power users.

Luckily, my terminal font shows all the same seven squares in the correct order. :-D

I think I see a water pistol in Firefox.
@movq Bwahahahahaahaaahaaaahaaaaa, that's a really good one! :'-D I love it!

When I was tying my shoelaces on the landing, the birds in the neighborhood gave a real concert. Sounded great.
I never tried it, @prologic. And I probably never will after this catastrophic report. @eapl.me @bender E-mail, IRC and Jabber, that's it for me.
16°C, almost bathers weather! Sun was hiding behind the clouds, though. The walk in the forest was very beautiful. Birds were singing, the first bees gathered nectar, all sorts of flowers brought some more color into nature. We enjoyed it.



Who spots the bee?
@prologic It escaped its guard rails! :-D I hope you're alright.
If you like to suffer, you can read a report about trying out Matrix: https://blog.koehntopp.info/2024/02/13/the-matrix-trashfire.html I'm surprised that he didn't abort.
Thank you! Sure, go on, @mckinley, please help yourself! :-) It took me some time to simplify the magic spell to a single sed invocation.

Actually, @movq, I couldn't live without a bell in my prompt either. It's so neat in combination with URxvt.urgentOnBell: true in my _~/.Xdefaults_. Comes in handy every single day.

My self-winding watch just shows me the time._~
I noticed this afternoon that we currently have Carnival vacations this week. So many people outdoors.

I've seen three great spotted woodpeckers and heard dozens more hammering the trees. But the photos turned out to be rubbish.

It was very windy at the summit, but I sat on the castle wall and enjoyed the sun beating on me. I would have loved to just relax there half an hour longer, but I had to be back in time. :-(

09 looks like it's straight from an AI, but the moss was actually on top of a smaller tree. I fell down from a giant moss-covered tree next to it.

Quite cool how much reach the lift's outriggers have to level it on that steep street.

29-32 show the reason for closing the forest road for one and a half months. A tree fell over and got hung up in the telephone cable in a 45° angle. Only the wire prevented it from crashing down on the road. I find it astonishing that the cable did not rip apart. After all, the tree was quite substantial. No idea why it took them so long to get it removed, though.

The entire meadow in 36 was totally covered with mouse holes. Sick!

https://lyse.isobeef.org/waldspaziergang-2024-02-13/

Action shot of a brown squirrel