# 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=1734
# next = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=1834
# prev = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=1634
@prologic LOL! :-D
@fastidious Yeah, we know what's happening, but not why the fuck it is this inefficient.
@fastidious Exactly! I'm pretty sure that was the one I've seen.
@movq Hahahahaaaa, what a workaround! :-D
@fastidious Reminds me of a cartoon I've seen the other day, where people have used GDPR to get them cleared of the naughty list. :-D Can't find it anymore and not sure where I came across it.
@fastidious @prologic Hahaha! It was a really cool debugging session. Well, prologic did all the hard work. :-)
@prologic The pretty take a punishing. ;-D
@fastidious, yes, I like it! By now it's already completely gone again down here. Oh yes, @prologic, around 0°C. And with the blowing south wind it felt even icier. I highly doubt it, @movq. In fact I cannot remember experiencing a white christmas even one. It always got warmer towards the end of December – if we had snow before. But let's see. ;-)
Up the mountain there were about 8 cm of snow. Snowy fields on the way We tried to build a snowman, but the snow was a bit too powdery. It was also very hard to balance the balls on the metal, they always wanted to slide around. So we just piled a lot of balls on the figure and had some some fun that way. Kids were riding their sledges downhill and even built themselves a jump. It was quite cool watch them fly off that thing.
@movq Glad to hear that. Weiterhin gute Besserung!
@novaburst Bwahahahaa, this commit message is brilliant!
@jlj Oh, earmuffs! I didn't recognize them as such.
And it's snowing again! Yep, snowing right now Let's go for a walk.
@quark Some of them were, yes. :-)
@movq So, how're you going today? Everything back to normal?
@quark Wow, that looks like it is made from wax. Very cool!
@prologic I wish they had these signs over here, too.
@jlj A unicorn!
@prologic Don't you sweat under that hat at your temperatures? :-)
@prologic Cool, thanks for the analysis! So you listed 18 goroutines, profiler goroutines will be hopefully not present in non-debug mode. That leaves about 30 for networking. Constant networking seems a bit odd, but okay. Yeah, we probably don't need to worry about getting them reduced. Just for the general understanding what's going on.
@movq I fear so, yes.
@anth "It's an old telephone."
@stackeffect It's documented right in the code. :-P
@quark Nope, that font is completely blurred. My decommissioned CRT was sitting on my desk for verrry long. When I turned it on after several years just for fun, it couldn't look at it for more than half minute, before I got serious headache. I can't explain how I could sit in front of that thing for multiple hours back in the days.
@quark I didn't look at the new conditions. I just have this account because of a mailing list I'm subscribed to that is hosted over there. :-(
@quark I didn't look at the new conditions. I just have this account because of a mailing list in subscribed to that is hosted over there. :-(
Lol, my spam filter tagged Google's changed ToS e-mail as junk.
@movq Oh dear. :-( Luckily, chances are that you're completely fine again tomorrow.
@anth Nice. Sorry mate, but this text shadow is driving me crazy on your page. It's like I wrapped my monitor in plastic foil or wear my grandma's glasses.
@homer "Please give us more money."
@anth /dev/null sounds like a good file to use for work items.
@anth Ah, okay!
@thecanine Oh, that's quite a big calf indeed! I see where you're going there.
@anth Yes, I assumed so. :-) Do you launch it with a specific file?
@movq I _think_ that you just need to change the avatar URL by appending an anchor or query string. Then this will get picked up once your feed is fetched and parsed. You probably don't even have to post a new twt for that. I reckon updating the avatar metadata field is enough. But that's all just from vague memories.
@movq Hahaha, I can confirm that. :-D
Chlorophilia #12 from May: This photo always reminds me of the Orion Nebula by the Hubble space telescope or something like that. Tadpoles and fish in the rocky shallow waters of the pond with the sun making for a cool universe reflection Not quite, my lovely friends the tadpoles and some very little fish are swimming around in a nearby pond. More shots from this hike into the woods can be found over here. If I'm not mistaken, that day my mate and I also encountered our first slow worm of the year.
@stigatle Whooow, that's quite a traffic jam! O_o
@prologic Very nice! :-) Have they ever experienced snow for real?
@movq Haha, yeah! Very well explained. :-D Can't add anything to that. It's just weird. But the sound is good, that's all that counts for music in my mind.
@fastidious @yarn_police LOL! :-D And if they deploy their K9, @thecanine?
@fastidious Hahaha, true! :-D
@anth Hahaha, nice one! So I reckon a single letter alias like e for ed and a second key stroke for Enter is too much, that's why you now have a dedicated hardware button to launch ed? ;-D
@prologic Thank you!
@fastidious One of the positive things indeed. :-)
But the cover by Turisas is better: https://www.youtube.com/watch?v=cdkBs0VCSX0 I also like the first comment a lot:
> So we have a Finnish folk metal band covering a German produced disco tune originally sung by a group of Afro Caribbean singers about a Russian monk on an American website. God bless globalization, for without it we wouldn't have this.
Hahaha, speaking of falling into YouTube holes, how about Boney M.'s Rasputin!? https://www.youtube.com/watch?v=16y1AkoZkmQ Now, is that something or what!? I believe that was a German band.
Hahahahahaaa, @movq, immer wieder gern zu Diensten! :-D Well, @fastidious, I think most European bands don't make it over the Atlantic or even spread in Europe itself. Especially if they focus on their mother tongue. Which is not a bad thing in my opinion.
@fastidious Alright, I didn't say anything. :-) Ta!
@movq Thanks, it's right on the edge I'd say.
Ah, I completely forgot that EAV also made an English version of Ba-Ba-Bankrobbery! https://www.youtube.com/watch?v=4gSEhNPKT9g The Austrian band name EAV, Erste Allgemeine Verunsicherung, German for First General Confusion/Uninsurance, is a pun on the name of an Austrian insurance company. Fun fact: A resident loadly played this song when a bank in Vienna was robbed in 2007 until the police intervened. :-D
@fastidious Phew, at least you're not bothered by shitty music all night long.
We had the tiniest bit of snow in the morning, but 99% melted over the day. However, as expected our local mountain acted as a good snow storage. My mate and I called it a day quite early and went up there. This snowman is about 70 centimeters tall The main path was closed off with a simple sign, that recommended to use the sneaky trail on the other side instead, so we followed that suggestion. Going uphill we noticed, that there had not been a lot of traffic and we ended up being the only two people up there. On the way back we just went down the main path without issues. My fingers froze a bit in the end, I need to get better gloves. Sorry, the images are a bit blue. https://lyse.isobeef.org/waldspaziergang-2021-12-07/
@movq @fastidious This should be illegal.
@fastidious The installation would freeze over if you were lucky. ;-)
@prologic Very good.
@fastidious @prologic :-)
@fastidious WTF! That's several magnitudes over the top.
@thecanine Oh yeah, very nice! :-) Welcome @fox!
Chlorophilia #11 from July shows a robin. European robin on a post in the woods
@movq No, my enthusiasm is limited. Right now I think we should not go down the Unicode nickname rabbit hole. I cannot be done in a real backwards-compatible fashion as far as I can tell.
@fastidious ;-)
@movq To complete, the Referer isn't a problem I'd say, since it's a URL and Unicode can be URL-encoded.
@movq Good question, I didn't think of the User-Agent header! So according to this answer it's a fragile thing, we probably need to implement MIME encoding in the clients ourselves.
Alright, I didn't try it, but in Go regexes one should be able to just replace \w with \p{L} and in Python regexes \w just needs the re.UNICODE flag. At least, that's the theory. Now, before actually implementing this, we should carefully think about all the implications we're creating with that. Also, I don't know whether this is enough for scripts like Japanese or the like where there are no letters but "syllables". (And now you know, that I don't a clue about Asian scripts.)
Alright, I didn't try it, but in Go regexes one should be able to just replace \\w with \\p{L} and in Python regexes \\w just needs the re.UNICODE flag. At least, that's the theory. Now, before actually implementing this, we should carefully think about all the implications we're creating with that. Also, I don't know whether this is enough for scripts like Japanese or the like where there are no letters but "syllables". (And now you know, that I don't a clue about Asian scripts.)
So I can't register a new username in yarnd using the lovely nick äöüß. Let's see, how Unicode and regex marry. Need to read up on that topic.
Oh yeah, worky, worky! \o/
Oh yeah, worky, worky! \\o/
Let's see, how tt's parser and lextwt behave. Nothing better than using PROD to do some experiments: @äöüß. Looks like at least tt will accept it as a nick. I have to admit, I'm quite surprised. Would have bet against it.
@fastidious @prologic At first I thought, that the original Twtxt Specification limited the nicks to be ASCII-only, but I was wrong. I couldn't find anything in that regard. The reference implementation also allows it:

$ twtxt follow äöüß https://example.com
✓ You’re now following äöüß.
@xuu :-D
@fastidious Nice, a little bit of brown in the leaves! :-)
@off_grid_living That timber floor is really beautiful!
@ullarah Technically you could use more special characters in the local part, but good luck getting this mail through other mail servers. Even nowadays e-mail address validation is completely broken on lots of websites and rejects even simple characters like +. A mate is constantly complaining about that, when he tries to sign up somewhere and wants to use a dedictated address for it to automatically move it into a certain folder. So you better limit yourself to alphanumeric, dot, minus und undercore. :-(
@ullarah Ahhh!. I always thought this is a play on Uluru.
@movq It pops you modal message boxes with compilation errors in your face right while editing even though you didn't press save. I had to use it once at my former employer. For this alone somebody should have been hung, drawn, quadrisected, revived, drowned, stabbed…
@ullarah Ah, right! Thanks.
@movq Yes, the date is also quite important in my opinion since I will most likely go with a date based rotation. I need to check the numbers but maybe quarterly or in high-traffic months even monthly. Not sure yet.
@prologic I always thought that the "logic" refers to the logic or logical thinking in programming and the "pro" could stand for "programming". Quite close. :-)
@darch Cool! Up until now I went with the German "ch" instead of the "k". Simplifies the pronounciation in my head a bit.
@xuu Quite evolved, cool story! I always pronounced it in my head as "xuu" with an actual "x". Now I know better.
@fastidious Oh yeah! :-D
@xuu ;-) So like the first version?
@prologic I started out with Delphi, it had the best GUI editor ever. Later in other languages it was always best to write the GUI just completely yourself and draw it on paper first. Today, I avoid programming GUI applications.
@prologic Oh very nice! And not shy at all. Looks like a crow, how do you call it?
@ullarah @thecanine Yes, please! :-)
@movq It is. I like it a lot and I don't know anybody else with it either.
@movq Pretty boring actually: Lyse is just my abbreviation I came up with for my first name Lysander.
@fastidious Hahaha, brilliant! :-D
@movq Very good!
@movq Oh mate, what an absolute great story indeed! You are truely insane! :-D You went completely nuts back then, but I love it. I really do. That's some real dedication. I never tried to type with my feet but I'm pretty sure I would always hit multiple keys at once. Aiming at the right key just seems to hard with the toes. So glad I asked. Never imagined such a bloody amazing background! :-) I hope your wrist issues are under control now!
@movq Oh wow, you created quite a lot of small archive feeds! I like the hash being part of the filename, very good idea. Definitely copy that, when I come around to implement it, too.
@fastidious Yeah, I believe English doesn't have an "ü" sound, so "ee" as in "cheese" is the closest match I can ask for. ;-) In fact the Swabian dialect also replaces "ü" by "i" (English "ee"), so real Swabians also butcher my nick. :-D
@fastidious @movq As forecasted: raining all day long here, too. Not too bad, if you didn't have to leave the house.
@movq Hahaha! :-D Ok, cool, thanks clarifying that. Why did you pick that, any cool stories about it? Is it some kind of a special instruction? Yes, exactly! Lyse is prounced „Lüße“: https://lyse.isobeef.org/lyse.ogg
@fastidious Privacy. When talking about the new peering and resolving phantom twts it dawned on me that it's possible to exfiltrate all the feeds someone is following on a single-user yarnd, even though they disabled publicly showing of their following feeds in the settings. To make it even worse it's already possible today using the /twt/hash endpoint. If you want to know if that person is subscribed to a certain feed, just pick a recent random twt from the feed in question, compute its hash and send it to the mentioned endoint. If you get back an HTTP 200, you know that the person is following the feed. When receiving HTTP 404 chances are that they may not. Now you do this for all the feeds you know, @xandkar conveniently has some lists for you. :-) This attack does not work for multi-user yarnd instances, though. The thing is, /twt/hash just looks in its cache to reply with the twt. If the user is interacting with the feed (mentions it), it's quite obvious and not a big deal. But read-only feeds are leaked that way. And of course the discover view will leak that information, too.
@prologic Which also sounds very nice.
An important question came up in our call: How's your nick pronounced, @movq? I reckon it is a reference on assembler (I'm not proficient in it), so I'd say "move q", could be totally wrong though.
@prologic @thecanine @darch That was really awesome! Sorry for bringing up the old downer topic again. :-)