# 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 6154
# self = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=5816
# next = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=5916
# prev = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=5716
@prologic This is fricking amazing, congratulations! :-) \\o/
@prologic This is fricking amazing, congratulations! :-) \o/
That's a well done mapping of computer time scale to human time scale: https://youtu.be/PpaQrzoDW2I Matt Godbolt is also a guy that I just enjoy listening to.
@movq Hmm yeah, you're right. I should have checked for our location prior to getting too excited.
@aelaraji Yeah, a sore neck is always a win. :-P Here's nothing really to see, all cloudy. And also a bit cold at -2°C. I don't feel like standing still all that long outside at the moment. :-D
Your code apparently works just fine. Until it @doesnm't. ;-) The shell languages are weird and having some strange properties that one is just not used to when coming from other languages.
PSA: Yarnd operators might want to define code { white-space: pre }
in their CSS themes to render things as they're supposed to look like.
@andros I love how this is coming together! :-)
@kat To improve you shell programming skills, I highly recommend to check out shellcheck
: https://github.com/koalaman/shellcheck It points out common errors and gives some suggestions on how to improve the code. Some details in shell scripting are very tricky to get right at first. Even after decades of shell programming, I run into "corner cases" every now and then.
E.g. in getlyr
's line 7 it warns:
echo -e $(gum style --italic --foreground "#f4b8e4" "'$artist', '$song'")
^-- SC2046: Quote this to prevent word splitting.
For more information:
https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...
Most likely not all that problematic in this application, but it's good to know about this underlying concept. Word splitting is basically splitting tokens on whitespace, this can lead to interesting consequences as illustrated by this little code:
$ echo $(echo "Hello World")
Hello World
$ echo "$(echo "Hello World")"
Hello World
In the first case the shells sees two whitespace-separated tokens or arguments for the echo
command. This basically becomes echo Hello World
. So, echo
joins them by a single space. In the second one it sees one argument for the echo
command, so echo
simply echos this single argument that contains three spaces.
@prologic Oh yeah, that's terrible, yuck! Let's not do it then. :-)
@prologic As written in IRC, several things turned me off. I don't have the energy at the moment to wrestle through. :-(
After I stripped off my clothes and turned around, I came to the conclusion that the plan to shower was cancelled at this moment. The faucet had broken right off and was laying in the tub. I noticed that the diameters of the hot and cold water pipes were surprisingly small, didn't expect that. Since the pipes were broken flush with the wall, I couldn't even determine if I had to remove the inner our outer threads, well, remains thereof, in order to attempt to repair this mess. Luckily, I was going to see a plumber mate at the christmas tree collection later anyway.
The first thing that came to mind when I woke up was that I didn't catch the logical flaw in my dream: absolutely no water was coming out of the burst pipes. The whole scenario took place in summer, so the water couldn't be frozen either.
@prologic If you've got the feed URL in yarnd's cache, you can easily look up a missing nick. If you can't find it, just show the URL (or maybe just the domain name to be halfway consistent with this @nick@domain
thing that yarnd invented) and be done. It's really that simple.
When yarnds peer with each other, the odds of actually having come across that feed URL in the past are higher than with traditional clients that only have their local set of subscribed feeds. One additional improvment would be to also look at all the mentions and see if somebody used a nick for that URL and go with that.
Yeah, yarnd currently renders some really weird shit when the mention contains just a URL, but I'd call that a bug for sure.
Personally, I do not like the @nick@domain
syntax at all. It looks silly to my eyes. What might have also contributed is the fact of this mentions syntax gotten screwed up so many times by yarnd in the past. But that's a totally different topic.
Hmm, I just noticed that the feed template seems to be broken on your yarnd instance, @kat. Looking at your raw feed file (and your mates as well), line 6 reads:
# This is hosted by a Yarn.social pod yarn running yarnd ERSION@OMMIT go1.23.4
^^^^^^^^^^^^
Looks like the first letters of the version and commit got somehow chopped off. I've no idea what happened here, maybe @prologic knows something. :-? I'm not familiar with the templating, I just recall @xuu reporting in IRC the other day that he's also having great fun with his custom preamble from time to time.
That "broken" comment doesn't hurt anything, it's still a proper comment and hence ignored by clients. It's just odd, that's all.
tt
currently supports all three forms: @<nick url>
, @<url>
and even the illegal @<nick>
. The difference between the last two is whether the token in angle brackets looks like a URL or not. Whenever a nick is available, the nick is rendered. In case there is just a URL, it tries to resolve the nick from the subscriptions. If that also does not work, it displays the URL.
@andros Even though I'm not an Emacs user, that's really cool! :-)
@prologic @movq Well, the original Twtxt Specification explicitly allows for the short form with just a URL and no nick: https://twtxt.readthedocs.io/en/latest/user/twtxtfile.html#format-specification
> Mentions are embedded within the text in either @<source.nick source.url>
or @<source.url>
format […]
I'd just continue supporting it, even though I don't see it all that often in the wild. I guess more common is the case where just a nick is given, which is illegal. But yarnd users seem to produce it every now and then.
What's the motivation for deprecation?
@prologic @movq Well, the original Twtxt Specification explicitly allows for the short form with just a URL and no nick: https://twtxt.readthedocs.io/en/latest/user/twtxtfile.html#format-specification
> Mentions are embedded within the text in either @<source.nick source.url>
or @<source.url>
format \n
I'd just continue supporting it, even though I don't see it all that often in the wild. I guess more common is the case where just a nick is given, which is illegal. But yarnd users seem to produce it every now and then.
What's the motivation for deprecation?
@movq Woohoo, noice! Now you can ship, even sell it! :-D
All kidding aside, even though I never wrote a proper brainfuck program myself, I do like that. :-) Keep it going.
@kat The early bird… oh wait. :-D
Yeah, @bender, I absolutely love it! :-D Monty Python just rocks!
This very knight inspired me to make myself a knight helmet with opening visor out of an old washing machine sheet metal years ago for a theater play. It was really great fun, both making the helmet as well as using it during the week in the play as a silly and shady prince who got all his tracts of land by winning dubious games.
I just couldn't really hear very well in it. And if somebody hit me on the head or just slightly knocked on the helmet, it was incredibly loud. No fine craftmanship by any means and obviously historically extremely questionable at best, but it did the job well enough. One of the running gags was that I had to open the visor when I wanted to talk. Here are some photos in action, you'll find many more when surfing through the gallery:
* https://wawuwo.de/2016/woche2/montag/017.html#image
* https://wawuwo.de/2016/woche2/dienstag/019.html#image
* https://wawuwo.de/2016/woche2/mittwoch/156.html#image
* https://wawuwo.de/2016/woche2/donnerstag/008.html#image
* https://wawuwo.de/2016/woche2/freitag/036.html#image In one lunch break my page and I decided to dress up and play a game of dice against the kids. However, we used badly cogged dice. We just added a few dots of paint on one of the two dice, so that it had two fours, two fives and two sixes or something like that. I always told my opponents: "You can choose whatever dice you want. Except for the red one, that's my lucky dice!" As well-behaved children, they then selected the blue, unbiased one. And usually lost. However, I remember there was one kid that beat me with four sixes in row. :-D Although we thought, we make it halfway obvious that this game is truly not fair, it took them extremely long to figure out that we had messed with my lucky dice. When they finally did, they got super angry. Some of them were on the brink of beating me up. That was really nice to see their sense of justice kick it. :-)
* https://wawuwo.de/2016/woche2/freitag/169.html#image
@movq Woah, that's insane! Yeah, I wanted to take it easy as well, but then suddenly got 9:30 hours on the clock… :-/
Vacations were great, it took me five attempts this morning to enter my disk encryption password. :-D
An hour later and I have glued together a new batch of cardbord boxes. I've cut out the blanks several days ago, though. Easy upcycling project:
New batch of cardboard boxes
@movq Yeah, some smileys in MS Teams are as well. :-(
@movq That looks neat! In the past I always used some Jitsi instance for screen shares.
@movq I read some of them that I thought might be kinda important. But nearly none really were. I gotta try your approach next time. :-)
@movq Wow, that's cool. :-) Even witchcraft! :-D
My shoulder muscles are sore from yesterday's overhead concrete drilling. I even totalled a good drill bit. The workshop air cleaner is now installed on the ceiling. I even can plug in the shop vac directly above its usual location without having to walk over (or usually on) the cord on the ground. The shop vac hose crane had to be shortened 9cm in length in order to fit underneath the air cleaner.
Besides all the chaos in the workshop, one can actually also see the ceiling-mounted air cleaner
@aelaraji Doesn't happen all that often over here either. But I'd estimate a few times a year.
@bender I'm that kind of dude who disables all silly animations and delays. Simply don't waste my time, please. We have fast enough computers nowadays, no need to slow them back down artificially.
@movq Over-ear headphones make moving and turning around quite uncomfortable. But it looks like you're having a very calm sleep, unlike me, who likes to turn a bit on the side every now and then, too.
When I use noise cancelling devices in bed (absolutely required at scouting events), it's simple ear plugs. I got myself a big pack of 200 pairs nine and a half years ago (oh wow, didn't realize I have them this long). A lifetime supply. Especially when I reuse them two, three dozen times or so before they're worn out and don't seal properly anymore.
I received a tad over four hundred e-mails during my three and a half weeks vacation. That's actually really good, I expected way more. It just would have been nice if some bot e-mail addresses hadn't changed and hence slipped through my sorting filter rules in the first place.
@movq Well, congrats, I guess! :-D I never had Vim crash on me, they do a killer job on keeping it stable.
Oh no, best wishes, @aelaraji! To hopefully brighten your day a tad:
Double rainbow
@bmallred Oh no! Best of luck to restore everything. Unfortunately, I cannot provide you a copy of your twtxt feed. It turns out when the messages were gone from your feed and I refetched the now empty feed, all messages were also dropped from my local cache. :-/ But it looks like you're on something already. The message timestamps are all way off, though.
@kat Pics or it didn't happen! We were already back at 14°C today. But there might be chance of snow towards the end of the week. Let's see.
@movq Sounds about right. :-D It's now calm again.
Always noise, whichever way you loo^Whear at it. :-(
Meh, I hit an import cycle while writing tests. Now I have to relocate some code. What do we conclude from that: don't write tests. ;-)
Where is all this wind suddenly coming from?
@aelaraji Thank you very much, glad you like it. :-) I always try to make web pages use as much semantic tags as possible and keep the HTML very simple, so that they also have a chance to look decent in terminal browsers. The logo took me a few hours to draw in all its three sizes.
@aelaraji Ta! It's just the millenia old tabs vs. spaces debate. ;-) Here's a screenshot, that also kinda serves as a preview of the ugly – yet functional – web interface:
Twtxt Feed Validator reporting two errors
@bender Magnetic-core memory. SCNR.
@movq Oh dear. All the best of luck with that noise! And the disks.
@movq I don't use them either.
@prologic Excellent, working fine now. Thank you!
@movq That sounds super useful! I always used bc
and ibase=2
/obase=2
for conversions. But your digit grouping is what I always lacked. I gotta switch.
@movq Yeah, the Python docs are more like a book. They absolutely shine if you have no idea and read them from top to bottom. The tutorial is baked right in. But they don't work all that perfect as cheat sheets. I also remember looking for the return types way too long in the past.
I would have thought that this could be easily improved when type hints are in place. And it sure does: https://www.tornadoweb.org/en/stable/httpclient.html#tornado.httpclient.HTTPClient.fetch
@movq It's crazy! I thought about it the other day on my hike. There are so many shady areas in winter that are fully blasted by the sun in summer.
@movq Heck yeah, they're both very lovely! I like how you can still see the full disk through the clouds in the first one.
@kat Oh cool, I wish I had a similar subject in school. :-)
I cobbled that together yesterday, @aelaraji. Since I was too lazy to write some tests, I simply hit your feed as I knew it contains two invalid lines right now. Sorry mate! :-( Next thing is to actually write some proper tests, improve the messages, etc.
Here's the code: https://git.mills.io/yarnsocial/validator
Looking forward to that, @prologic. :-)
@prologic Looks like I'm hitting this now when reloading my subscriptions:
$ grep twtxt.net .config/twtxt/config | wc -l
26
@eapl.me That's a nice quote. I like it.
@prologic Nah, it's really not necessary from my point of view. There's not enough math here that would justify it. In the spirit of simplicity, I'd leave it off. O:-)
@movq The rabbit hole deepens. :-D
@kat Static angles for too long get indeed a bit boring to watch in my opinion, but just experiment with it. What's the worst that could happen? Wasted disk space or people increase playback speed to time lapse or fast-forward. Hence, not a huge issue. Even if only you had fun recording it and learned something along the way, it's already a win. Everything else is a bonus on top.
@kat Yiha! I reckon the video is a bit squished together on the horizontal axis. Maybe your video site messed something up in postprocessing? No idea. Anyway, you're already better at guitar than I ever was.
If you don't wanna buy a tripod, you could make yourself a makeshift one with some sort of a sandbag, cherry pit pillow or an old, cut off and sewn shut trouser leg section filled with rice, lentils, etc. This gives you a shapeable surface where you can simply rest the camcorder on. It allows for some limited vertical up and down pitch. Obviously, that won't work for extreme angles, but might be just enough for your application of recording at your desk. You just have to watch out for the side to side roll, this could otherwise lead to a slanted sailboat video. ;-)
@kat I'm an absolute sucker for all sorts of crafts videos, mostly wood and metal working, but also leather and construction. So obviously, your Tux sewing project would make a good video in my opinion. :-D (But I fear it would require way more work than just talking into the camera. Think of camera setup time with framing and focusing, repositioning a couple of times, editing, yada, yada, yada. I documented wood working build processes in my shop in the past and it made the projects take easily ten times as long, if not more. So, I stopped doing that.)
As kids we recorded some action films on magnetic tape camcorders. That was also great fun.
Couldn't find anybody to join me this arvo, so I went alone. Only in the forest I began to see real snow. And then of course with each meter of elevation gain. I reckon there were 5-6 cm at the summit, so there is still room for improvement. The weather was absolutely stunning, a sunny blue sky alternating with clouds, most of my hike hardly any wind and 1°C. Climbing the mountain was a different story, the wind hit me hard.
I just love the wind-brushed formations of ice on the twigs and branches. They look soooo incredibly cool. It was kinda hard to capture them on film with the wind pushing everything around.
On the way down I took the narrow and currently fairly slippery path that was closed for some weeks due to felling activity. It looks so different with heaps of trees on the ground now. They've also sawn down the tree with the small hole near the ground (which I think I've shown a few times in the past). The beech in 52 to 54 was probably hit by lightning a few months ago. At least it's completely charred.
https://lyse.isobeef.org/waldspaziergang-2025-01-03/
Snow on trees and bushes
@kat @movq Right!? :-) (In retrospect, must be later than elementary school, but still at least a decade old.)
Haaa! It was only now that I realized that gentoo is indeed a penguin species, I never knew that. Nice! I was always under the impression that the Gentoo distribution was simply named after an invented word. Well, I was so wrong. Thanks for teaching me. :-)
@movq I never used DOS or OS/2, but I fully agree with you. A Unix shell with its tool landscape is hard to beat (photo/video viewing/editing aside).
@movq That's so damn cool mate! I went through the code, but this lowlevel stuff is really not my favorite cup of tea. Having said that, it was actually *really nice* to see the abstractions and APIs work together and how things are getting indeed very readable in the userland programs. That's easy to track in this extremely tiny OS implementation. Excellent work, keep on hacking!
Now, you just have to quickly add a network stack and then can write a twtxt client for it! ]:->
@movq That's neat, good old $\sum_{i=1}^{9} i^3$ (let's see if yarnd's markdown parser has LaTeX support or not ;-)).
@movq That's neat, good old $\\sum_{i=1}^{9} i^3$ (let's see if yarnd's markdown parser has LaTeX support or not ;-)).
Rode my bicycle into town. What the hell is wrong with some of these motorists!? Here in right lane traffic land, a car reversed out of the driveway on the left into the road and nearly hit me. And this happened twice! If you don't fucking see, how about you go slowly and not just hope that nobody is coming!? The first one even decided to honk at me. SUV drivers confirming prejudice…
Well, at least I could help a lady with transfering her child in a pram.
@kat Only the schedule syntax. :-D
Excellent, thank you very much @aelaraji! :-) It doesn't set a custom User-Agent
header, though.
@prologic Hmm, what's this Emacs client you heard about?
@movq Unfortunately, there is no feed URL or nick in the User-Agent, it just consists of "xt/0.0.1", that's it. And this client was only active from mid-November until the end of the month.
It'll probably remain a mystery, we'll never know.
@arne Danke! Ui, sehr schön, das sind zweifelsohne hervorragende Upcycling-Projekte. :-) Ja, im Baumarkt Holz zu kaufen ist ziemlich teuer, erst recht, wenn man sich mal die Qualität genauer anschaut.
@prologic Yiha, that's great news! Now you just have to migrate away from their DNS, too. :-)
Once again I glimpsed at my twtxt feed access log. Now I'm wondering: is there a twtxt client named xt
out there? Does anyone know? I did not find anything for "xt/0.0.1".
@kat Oh nice, I'd love to see some progress photos. :-)
Gesundes Neues, @arne! Was machst Du mit den Raketenstecken? Bastelst Du damit tolle Dinge? Ich hab damit zwei kleine Regälchen zusammengeleimt: https://lyse.isobeef.org/tmp/tischbohrmaschinenregal/10.jpg
Der Wind hat mir soeben einen neuen Stecken beschert, lag er doch plötzlich vor der Tür. Muss wohl vom Dach runtergekommen sein. Damit hab ich ganze zwei dieses Jahr. Hier wird sehr stark auf Böller gesetzt, ein absolutes Unding!
Thank you, @kat and @ionores! Yeah, number four looks like a forest fire.
It was supposed to start raining this afternoon, but a rain cloud hit us in the morning just when we approached the foot of our backyard mountain. With the dark sky above us and wind speed picking up, we decided to take the next turn and head back. Luckily, the rain didn't last long, so we paid the tadpole pond a visit to prolong our stroll. My mate told me that it was frozen a few days ago, but there was not much of the icy cover left today. https://lyse.isobeef.org/waldspaziergang-2025-01-02/
One could have made a temporary sundial out of this branch in the pond a few days ago
We had a faint yellow-orange-redish sky this evening. Only subtle, but it was actually one of those rare 360° sunsets. Just when I thought, that was it, it's now over, the colors took off like crazy: https://lyse.isobeef.org/abendhimmel-2025-01-01/
Sunset
A much nicer start into the year than all the hell yesterday. However, just as I type this, there come also the next round of explosions as darkness falls. Those bloody fuckers, please blow yourselves up!
@ionores Opening the windows is the worst you can do with all that crazy smoke out there. But the music ain't too bad. :-)
@movq This is indeed very cool! :-) Unfortunately, I do not have a proper hot glue gun. Would have to rig something up from timber.
@movq Implementing my own TUI rendering in the tt
rewrite, I know what a headache this can be. :-)
@movq It's not any better on the "ground" with trees and buildings around. They don't dampen at all, in fact the houses just cause reverb and amplify the bangs. Rest assured, I did not hear any people laughing or anything in that nature. Just grenades going off. Talking to my mates, it appears that I live in an especially bad shithole, they reported a noticable reduction of explosions around 00:20. Over here, there was constant fire till around 02:00.
Yep, that's exactly how I imagine a war zone, too.
@movq Wow, quite an elaborate editor you've programmed there!