# 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=2034
# next = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=2134
# prev = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=1934
Now @fastidious dug up this fucking fantastic article on the Global Positioning System. Holy shit my friends, this is the mooooooooooost awesome explanation on GPS I've ever come across. Forget about everything you're about to do today, and take some time to read and enjoy the brilliant illustrations of said article instead. It will really, really, really, really, really blow your mind. If you can't tell already, I'm totally amazed. And I'm not even half way through yet. It's sooo cool on so many levels. There's heaps of brilliant things to discover. Explore yourself and enjoy, you won't regret it, I will promise you. Now, stop looking at my trash I publish and have a read by this true genius instead! https://ciechanow.ski/gps/
@eaplmx Hahaha, indeed. :-D
@fastidious Exactly, that's been also my "yarn" usage I think.
@fastidious Hehe! ;-) Well, the result looked promising indeed, that also instantly hooked me in the beginning. However, scrolling was quite laggy I have to say. The "let me render one giant string" referes the the `View() string` method, that controls how the UI looks like. For my taste that's not the way I want to build TUI applications. I prefer the, hm, not sure, what's it really called, so let's call it "widget based rendering" where I declare my layout by nesting the available widgets so they take care of themselves.
@prologic So in my opinion it's very problematic that "yarn" names both a "single twt" and a whole "twt conversation". That's not very helpful to distinguish between both.
@darch Haha, thanks! Now I know why I was wondering a bit when reading the "Post Box". But I couldn't tell why it felt weird up until you posted the nice red box.
@prologic Yeah, cool. I prefer my log cabin in the woods, though. ;-) At first I thought, that sounds like German English. But they're probably Swedes. Norah said she works in Switzerland every now and then, so she still might be of German-speaking origin.
@prologic @movq The original article is heaps better than the response I have to say. Very interesting and I agree. Some things in Go are just half-assed.

The dependency hell is one major pain which got me again today. I wanted to find out why or how a certain dependency got pulled in, so I parsed the go mod graph output and filtered for just that dependency branch in question. Turns out, that there are many branches and all but one don't even track back to the main software itself. What the hell? Where are the other dependencies (sometimes only differing in version) coming from? It doesn't make any sense to me at all. They look like they got pulled out of thin air. Need to research further tomorrow.
@<~duriny https://envs.net/~duriny/twtxt.txt> Cool! There's a typo in "param_e_ter" and your script needs some input validation. 8-) https://envs.net/~duriny/cgi-bin/twtxt.sh?file=https://twtxt.net/user/prologic/avatar 502s, I expected more a 400 for PNG data and https://envs.net/~duriny/cgi-bin/twtxt.sh?file=https://twtxt.net/user/prologic/avatar.jpg prints some HTML in the browser.
@movq Yeah, that sounds good.
I'm not sold on the "let me render one giant string" part at all. But there are loooooots of alternatives to choose from. Probably too many.
@eaplmx That's a nice illustration and description.
@off_grid_living In my opinion honey is not only healthy, but also delicious and tasty. That's what I meant with yummy. Not sure, if it has any other connotation. @fastidious Ah, thanks, now I remember again!
@fastidious I had to laugh when reading "Yarn's Head Honcho". We should make this the official address. :-)
@fastidious Hahahahaa, very nice! :-D You definitely should go the extra mile of highlighting the 16th Januaary 2022 in your wall calendar in red! If you don't have an analog calendar, you should get one just for this event. You won't regret it.
@fastidious That's why most (if not all) carts here are locked up with small chains at the trolley station. To use them, you have to insert a 1€ or 2€ coin as pledge. On return at the station you get your money back. This system works pretty good. Maybe that wouldn't work if cash wasn't accepted over here as it (yet) is. But you can also use small plastic pledge coins instead of real money.
@eaplmx Wow, in this article are quite some details I never knew or even thought about. Cool! It shows my simple mind, but I found it funny, that they drew the similarity between the ancient holy water dispenser and a toilet. :-D
@movq What the heck v0.4.0 indeed!
@movq Uuuhhh, very sweet! I especially really like your introduction, well written, mate! So what's your ratio of water and lemon juice? I loved to complete my meal by eating the complete lemon fruit pulp in restaurants when it got served along the meal or drink. Haven't had that for ages I just realized.
@eaplmx @fastidious Now I wonder whether that "Report" link is the way to file a complaint to the @yarn_police, so they can take care of your concern.

I fully agree with Fastidious, the Yarn Police officers are truely fair and just do their job. Very well that is. And that comes out of my view how got fined a couple of times!
@fastidious Haha, thanks! Just ssh-ed into that box and it looks amazing! <3
@fastidious Oh yeah, that sounds like fun. This is an occasion where you just should act like a child to make things enjoyable. Like jumping in the puddles with or without appropriate foorwear: rubber boots. :-D Also looks like people didn't bother returning their shopping carts. Oh wow, 4°C must be an ice age for you. Today's -2°C to +2°C here.
@fastidious Absoluteley, I would have confused this for sanitizer for sure. I mean it's even a sanitizer dispenser! Never did I see anything like that before. @movq Hahahaahaaa, if the devil can't read German he might dissolve himself. :-D
@ionores Ha, the badger archaeologist! Luckily, it wasn't a magpie archaeologist. She had kept the treasure for herself.
@movq I'm wondering whether I should rewrite tt in Go. However, I haven't tried out any Go TUI library yet. There are plenty out there. Even one which is inspired by Urwid.
@fastidious That would also be more aligned with omitting the hash at the display level. *But* it has the danger of drifting off from the raw format too much. At least techies who know the specs could get confused if the subject hash is not part of the entered text anymore. The non-techies would probably benefit, though. On the other hand, techies tend to adopt quicker. Just my two cents on that.
@fastidious I don't understand why you bookmark this, but it's okay. :-) Of course, being thoughtful with paragraphs is important. No doubt about that. I just wanted to proof or showcase the new possibilities of single and double newlines with the yarn above. That's why I went a bit overboard.

Yes, following the latest improvements and changes is not an easy task. I also struggle every now and then to keep track of them. But if you have to do that because of professional reasons, like our dear friends working for the @yarn_police, it's an even bigger burden to be up to date and still allow the perfect amount of leeway for people adapting to the changing environment. But they probably get regular hands-on trainings I bet. Probably instructed by the great masterminds building all this themselves. ;-)
@fastidious It's raining cats and dogs! As unfortunate as it is for you at the moment, it looks really nice to me in the heated and dry house. Too bad it's not a drive-through mall. :-/ Reminds me on the cover I had to seek last week.
Remember? We talked about holy water the other day. Now a mate just shared this funny thing: Nope, that dispenser doesn't provide not sanitizer but holy water! The sign says: "ASPERSORY Please operate using elbow. *No* disinfection agent!" Now would be a good time to swap this holy water for functional sanitizer water if you ask me.
@fastidious Thank you very much for nudging me to tackle this! I never thought, that I would compose twts this long that would make newlines a necessity. In view of the fact that I'm a small typography and typesetting fetishist it's even more embarassing that it took me this long. But oh well. Good things come to those who wait.
@fastidious Very good question, I have to ask him. Not sure, if he still remembers. We'll see. ;-)

Absolutely, can't complain about my childhood.

Thank you very much, this is probably the closest you've ever seen my video conference background. ;-) I'm also a huge fan of it. Turned out better than expected. And I'm quite surprised, that the disks didn't crack. I started from the premise that they all will split up for sure soon. Glad I was wrong.
Now rejoice children! Finally tt supports
multiline twts in the compose form.

Oh yeah. Why didn't I add this sooner? It was really simple.
@fastidious @prologic My brother crocheted a scarf for my penguin about two decades ago. Penguin with a scarf saying "Tux" on it (Sorry, the lighting is rubbish.) When we had that craft in fourth grade I wanted to make myself a lasso and chain stiched several meters of red yarn. Unfortunately, it got tangled up very badly and I couldn't get it sorted, so I sadly abandoned this endeavor after multiple days of work.
@movq @fastidious Yep! The evening sun often makes for a real nice red lighting everywhere. Everything instantly feels so warm with the red. Photographers love it, too.
@fastidious And they all lived happily ever after. Hahaha, this is a great fairy tale.
@fastidious You xinxed the Yarn Police the other day on IRC. I'm so sorry and make a vow to leave yarn kidnapping aside from now on. And no, I didn't implement newlines in tt yet. I manually edited my feed using Vim: Ctrl+V, u, 2, 0, 2, 8. Multiple times. But I think I will start now adding this support after I'm done with the large backlog. But now I'm too lazy to do the same for this twt. Sorry. Probably getting fined for this as well.
@yarn_police Dear Yarn Police, I sincerly appologize, officer, and thus happily accept the fine. The penalty charge will be paid by tomorrow.
@off_grid_living Oh that looks yummy! How many hives do you have?
Bwhahahahhahaaaaa, this is really great satire! I especially love the "made by a PRO" statement.

Back then you needed to wait but it hasn't changed in the meantime. Now we have the technology to quickly transfer and render things, but we still don't get fast response times, because people think they need to introduce silly animations everywhere.
@prologic This is really nice! You can keep your mozzies, but I would trade the beautiful colors for our gray foggy soup today.
@prologic This is cool! When I visited an old mate we had great fun with the kids building towers and bridges out of small wooden planks similar to these dominos.
@fastidious @prologic Well, birds in wide angle shots are quite hard to spot I believe. In 6 birds would be less than a pixel in size over at those trees. Honestly, I truely believed, that everybody would directly start at 1 because that's by faaaaar the most promising one. Anyways, glad you had some fun! :-D
@movq Immerhin ist „halb neun“ überall eindeutig, und das obwohl ihr nicht „halb *vor* neun“ sagt, was ja besser in die strikte vor-/nach-Systematik passen würde. Könnt ja prinzipiell auch „halb nach neun“, also 21:30 Uhr sein. ;-)

Gerade aus dem Halb-Neun-Beispiel heraus finde ich es bemerkenswert, wenn mit viertel und ggf. auch dreiviertel ein Problem herrscht. Im Falle von „halb neun“ oder 20:30 Uhr gibt's ja genauso wenig eine 9 wie bei „viertel neun“/20:15 Uhr.

Genau, es gibt nur Viertelschritte, Drittel sind mir auch noch nie untergekommen, obwohl's eigentlich richtig gut funktionieren würd.

18:20 Uhr wäre hier einfach „fünf nach viertel siebene“, „zwanzig nach sechs" oder „achtzehn (Uhr) zwanzig“. Zu 18:10 Uhr kann man „fünf vor viertel siebene“, „zehn nach sechse“ oder „achtzehn (Uhr) zehn“ sagen. Vor/nach wird bei uns nur gebraucht, wenn's genauer als Viertelstunden sein soll.

Bei mir ist es so halb-halb. Ich nehme sowohl die umgangsprachliche als auch die explizite Form. Wenn ich drandenke, dass ich mit einem „Neigschmeckten“ rede oder schreibe, dann wähle ich auch immer die explizite Form.
@prologic Right, this English time system is totally messed up, it doesn't make any sense: …10am, 11am, 12pm, 1pm, 2pm… Why does pm start with 12 and not end with 12? Modulo, yes. So does this work with 0am and 0pm, too or are zeros illegal in that am/pm notation? Anyways, I cannot make it today. @movq Genau, die – ich nenne sie mal schwäbischen Uhrzeiten – sind komplett logisch, denn sie werden immer aufgerundet, wie bei einem Kuchen auch. Niemand sagt „Ein viertel vor ganzer Kuchen ist noch übrig“, sondern „Ein dreiviertel Kuchen ist noch übrig“. Das dreiviertel bezieht sich also auf den aufgerundeten, ganzen Kuchen. Darum ist es nur sinnvoll das auch mit halben und viertel Stunden zu tun. Immer auf die nächste volle Stunde bezogen. Und nur um das vollständig abzuschließen, kann „viertel neune“ im richtigen System auch 08:15 Uhr in der Früh sein. Aber das ist normal aus dem Kontext dann klar, ob morgens oder abends gemeint ist. Wieso die Nordlichter „viertel neune“ als 09:15 Uhr oder 21:15 Uhr auffassen, erschließt sich mir überhaupt nicht, also nicht einmal im Ansatz. Deinem Beispiel entnehme ich, dass bei Dir oben das auch wie bei mir hier unten aufgefasst wird, oder?
@prologic So what is 12:00pm, midnight or noon? Like 2022-01-16T00:00:00Z or 2022-01-15T12:00:00Z?
@prologic Aha! I now get the idea behind it but to the user this is really weird and inconsistent. It just looks like you're starting off a new root twt. At least that's what I was thinking when I encountered that. Fun fact: Every now and then I just want to mention somebody in a new root twt, so I just reply to a conversation that person had participated in and remove all other mentions and the twt subject. This way I don't have to type out or copy-paste the mention myself. In tt that is.
@thecanine In this case it's crystal clear what's happening: Google tries to pull a prank on all of you with content negotiation/User-Agent evaluation.
@fastidious @prologic Ta! Haha, it's a great family game. Selecting the photo to look at was straight forward, right?
@movq Of course I did! Not. :-/
@off_grid_living And the upper wall is enclosed, too! :-)
@eaplmx I fully agree, I don't understand this behavior either. The subject hashes are definitely missing, that's for sure.
Today's search game is quite simple. Find the bird. I reduced exactly 200 photos down to 14. ![Sun (not part of the picture) is setting](https://lyse.isobeef.org/waldspaziergang-2022-01-14/06.jpg) There are 13 more. The sunny 5°C felt quite hot, I had to open my jacket and take off beanie, scarf and gloves. But when the sun had set I was very lucky to have my extra gear. Going up and down that mountain path was a bit tricky today, some stretches were just solid ice.
@fastidious Yeah, that's good! Also a bit shorter, I like that.
@fastidious We need an exorcist!
@prologic I do this for the discovery. Whenever I encounter a ghost yarn and find the replies interesting I open up the conversation on twtxt.net and can then decide if this feed is something I want to subscribe to or not. My client provides this twxt.net conversation URL automatically for all conversations.
@thecanine Hahahahahhaaaa, that is really broken! :-D Doesn't look the slightest like that on my end.
@fastidious Or just cherry-pick the commit from the wrong branch into the correct one. And then reset the wrong branch to the right commit.
@darch @ullarah Bwahhahaha, Agent Yarn Smith is fucking hilarious, thanks for suggesting that, mates! Let's keep the suggestions rolling in for a bit longer.
Yep, @ullarah, I'm using my own terminal client, similiar to movq's jenny/mutt combo. So I only have access to what is truely in the feed itself, so there's no download link for me. :-)
@thecanine The butterfly wins. Shouldn't the dog's tail swing around?
Thanks! The funny thing is, with photos that's totally cool. But if someone had painted that, it would be considered kitsch.
Glad I found a few minutes to go into the woods for the last remaining sunlight after work. A very colorful sunset again Seven more.
@fastidious Aha, that's interesting! Using the full=1 query parameter I also get the full size version. But sadly this URL is not part of the twtxt feed itself. It turns out, that the other two photos also weren't full size either, but since they had not been only 200 pixels high, they appeared much bigger. With the full=1 query parameter I get the 4k×3k pixels versions. The full sizes take a very long time to transfer, though. In the higher two digit seconds, that is. Could also be just infrastructure, I don't know. Alright, the third image even loads for minutes now…
@fastidious When I open the first image URL (https://twtxt.net/media/mo4w73xFSEVWodU45JY4DF.png) in my browser it's 850×196 pixels in size.
@prologic Oh right, now I remember. I wanted to look into Go packaging! I didn't. Surprise. I'm fine with migrating over to your server. Not sure on the naming of library and executable. useragent is a bit too general, I completely agree. I fear the same with log. Anyone with good ideas of a short and precise name? Or just go with a complete "trash" name?
@movq Ah, excellent. I assumed that you had been subscribed to that feed for some time and it just broke now.
@prologic Thanks!
@eaplmx For inside temperatures that's pretty icy, indeed! No fun just sitting around. Gotta move and work.
@thecanine Wow, interesting. I never thought that you would be that low-tech (no offence, but rather my full respect!) with pixel by pixel.
@prologic Nice! What would be an Aussie without his thongs? :-D Btw. the panorama is really small.
@darch Værsgo! @fastidious Nothing automated at all, I just execute it very irregularily like once a week or fortnight or maybe even month: tail -n 5000 ~/www/logs/twtxt.log | useragent -grt 5s | grep -v http://0.0.0.0:8000/ I manually check whether I see new people, which is getting a bit out of hand, I have to admit. Especially with the last addition of automatically resolving the Who Follow Resources the list gets longer. So I definitely want to add some more features like sorting the output and maybe also providing some interface to the configured follower list to aid in detecting new people. Not sure on the latter one, though. It's probably better to make this a different piece of software. Needs more thinking. @prologic I haven't made any progress on this thought, I have to admit. But one day, there will be some idea, by someone. :-)
@movq Excellent, glad to have made the internet a better place now. ;-) You might have ended up with kind of duplicates because of the change, not sure. Actually, I didn't look at any other code, just that single function.
@eaplmx It will drop to -5°C this night. But you probably laugh at this. Wasn't it you how reported double figures negative degrees?
@thecanine Nice. What software do you use to make these pixel arts, btw. I hope you don't place each pixel by hand as I would have to do it. Haha, it took me quite a while to figure out that the colors resemble the missing letters "A" and "W".
@darch You might be interested in my Twtxt User-Agent Parser that analyzes log files.
@homer @fastidious Thank you very much!
Had some gorgeous sunsets this week and I managed to ban it on film today: sky after sunset Seven more.
No worries, @prologic! @movq will report whether it's actually fixed or not. ;-)
@eaplmx Hmm, true. Why didn't I think of that? I blame it on the late hour.
Oh come on, @tamer, can't you properly greet in your twt!@11!@1 :-P I just pointed out a (what I consider) flaw in a line of argument about neutrality. But to each his own. @prologic I don't have any issues with greetings and farewells at all. And wether they're neutral or not, I couldn't care less. In fact, non-neutral is maybe even nicer, because more natural.
@prologic I just very, very, very quickly scrolled over this article and it sounds like a cool thing. Will take a more thorough read now and continue tomorrow (quite late already).
@fastidious @xuu Very good, this will also cut down the twt flood.
@fastidious Was it at least holy water coming out your breathing apparatus? :-D If so, you might sell it to them and make some good money. I can lend you my hammer drill for your archeological research mission, no worries. Now on a more serious note, where the hell (haha) do they get this holy water in their aspersories? Who brings or even sells this to them? Maybe it's just rain water? It clearly comes from heaven, so it could very well be also holy when landing on the church roofs, right? I'm truely wondering – never asked this myself – and looking for any relevant information.
@eaplmx So why not just a neutral "hello", "hi" or the like without any reference to time? "Good day" might imply day as opposed to night.
@movq @prologic Obviously, comparing byte lengths but working with rune indices is asking for trouble… I'm now working with rune lengths rather byte lengths. https://git.mills.io/yarnsocial/feeds/pulls/21
@fastidious That's easy! Peer review each twt before actually publishing. :-D
@fastidious I happened to just fetch at the very wrong time. ¯\\_(ツ)_/¯_
@fastidious I happened to just fetch at the very wrong time. ¯\_(ツ)_/¯_
@prologic No, not really. I don't want to look at this delta chat thingy. Yet another chat. And then over e-mail. WTF! Hell, no.
@movq @prologic I'm trying to fix this right now and getting panics with out of range things in my unit test. I'm on it.
@fastidious's New Year's Resolution of not editing or deleting didn't last for long… :-P
@fastidious Agreed!
@movq @prologic Didn't try, but something along those lines should do the trick: string([]rune(markdown)[:max])
@prologic Yeah, working through the log I noticed this too. :-D
@movq Yes, subscripting a string works on byte level. You would have to use its runes to get the Unicode codepoints, e.g. by looping over it. https://stackoverflow.com/a/18130880
@prologic At least that's exactly its purpose. But whether feed authors or generators really honor it, is a different question, which can be answered no, if in doubt. In such cases, the feed is cactus.
@tamer Hey, that's actually quite a nice idea with the mobile phone app pulling raw twtxt feeds rather than over a custom API. (Disclaimer: I never used it and most likely never will). But that sounds true twtxt. On the other hand, all the – let's call it yarnd improvements – are harder to integrate.
@prologic Yes, go for it! Day accuracy is plenty good enough.
@movq Yeah, same here. I'd rather have a look at a library and see how they do it, to implement it myself. Especially, if it's a very simple functionality I'm after. No need for tons of other actually unused transitive dependencies.
@fastidious Holy water that is beyond its expiration date?