
It was nice to finally hear a few birds singing again, although it was still fairly silent. The sun gave us a nice show. In hindsight, we should have stayed at the summit a bit longer. In the forest, we missed the very best, crazy red sky. We could only see parts shimmering through the tree lines.

https://lyse.isobeef.org/waldspaziergang-2024-09-12/
That website looks like one I would build. :'-D I just always go to bahn.de. It even works alright if the train is operated by another company. At least it's good enough for my connections (VVS, Arverio, Ding & Co.). When GoAhead took over the line from DB, their delay/cancel information on their own website were just as bad as the one relayed by DB most of the time.
Also, the train connections worked out. Just on the way back, I made the error to use the toilet in the train. I've experienced way worse, but there was certainly a little Urine odor in the air. Second thing I noted was a large pile of toilet paper in the bowl.
When I wanted to wash my hands, I got the soap dispenser to work, but the tap just dripped extremely slowly. Not usable. Then it clicked why there was all this paper in the loo. I tried to wipe the soap off with toilet paper as best as I could and then used my water bottle to rinse my hands. Luckily, I had topped it off before I left the office. I only had to use my jumper to increase grip for actually getting the lid off. The sparkling water happily soaked my jumper and the floor in an instant. :-D
Tip for your next train ride: Bring your own water supply, preferably non-carbonated. Alternatively, just use the office toilet beforehand.
Turns out that at least this train model has two separate water tanks. One for the faucet and another for the loo. I flushed the paper without issues before I left.
I could do that again in my client, but you're right, it's a different story for jenny. If I'm not mistaken,
In-Reply-To
could contain several hashes, but the Message-ID
header is the issue.By increasing the hash length for a potential future change, clients could tell, which algorithm to use.
Maybe we could define a magic timestamp in the future that marks the cutoff point. Use the current implementation for messages authored before that magic date or the new algorithm for all messages after that.
But eventually, all clients have to be updated. There's no way around that, I believe. Simplicity is key and my magic time already adds complexity. :-/
> if not I am editing and breaking replies!
Bwahahahaaa! :'-D
It's like that for months. :-( And tomorrow I even gotta go into the office for some two day meeting, but I only attend a single day. On the positive side, I'm gonna see some workmates that I haven't ever met in the real world or for a very long time.
Can't help myself, but I have to include the Uranus song now. :-D https://www.youtube.com/watch?v=OSWszdSHkyE#t=7
tt
rewrite in Go. So, I thought I use the shiny io/fs.FS
. That's supposed to be a super cool new file system API. It allowed me to write tests more elegantly. I don't have to place actual test files on disk, but can keep everything nicely in RAM with testing/fstest.MapFS
. That actually worked out great, I do like that.However,
os.DirFS("/")
for production code is just a terrible solution. I noted that OS paths and io/fs.FS
paths are fundamentally different. This new API does not allow leading slashes in the passed paths. This results in an error. So, I have to cut the leading slash off myself.Also, the whole thing is totally useless on Windows, because of the drives. Simply does not work at all. Well, honestly, I don't care the slightest bit about that operating system, but it would be nice if this concept were cross-platform.
I haven't tested it, but I'm pretty sure relative paths or
~
do also not work. I have to first build absolute paths myself. Unfortunately, there is no builtin helper to translate an OS path into a io/fs.FS
path.Of course, others noted these shortcomings and surprising results, too: https://github.com/golang/go/issues/44279 There is no
OSFileSystem
implementation that would simply allow the easy transition from all the classical os.*
functionality to io/fs.FS
. And they also do not wanna add something like that either. Sigh.I'm really wondering what they were thinking when introducing this. :-?
Even though, it's very silly, I'm gonna keep using it. At least for now. Tests have been written. I'm not keen on rewriting them. Sigh.
url
field in the feed to define the URL for hashing. It should have been the last encountered one. Then, assuming append-style feeds, you could override the old URL with a new one from a certain point on:# url = https://example.com/alias/txtxt.txt
# url = https://example.com/initial/twtxt.txt
# url = https://example.com/new/twtxt.txt
# url = https://example.com/brand-new/twtxt.txt
In theory, the same could be done for prepend-style feeds. They do exist, I've come around them. The parser would just have to calculate the hashes afterwards and not immediately.
My theory about the descent of the original twtxt universe is that a) people just move on to other things and b) it was just not practical enough.
Yes, I'm all for dedicated message IDs. That would be a whole new format then. But I would be fine with it. The only thing is that all our clients have to be touched. At the moment, I do not worry about spoofing (however, I definitely should).
text/plain
(it serves HTML at the moment). Return the physical line from the feed. Maybe with a comment above for the feed URL. Or doesn't the registry format also include the URL separated with a tab somehow? I'm too lazy right now to look it up. Also, not sure how useful that would be. Anyway, good night.
Good hunting and bon appétit! :-) I never had Puerto Rico's national dish, but the photos look delicious. Yum!
I also tried ice cream, but I reckon I simply stick to your last tip instead. :-)
curl -sH "Accept: application/json" https://twtxt.net/twt/st3wsda | jq
You can piece it together from created
and text
(and twter.uri
).
$ du -h .config/twtxt/cache*.db
13M .config/twtxt/cache2.db # contains read status for each twt (very inefficient format)
7,0M .config/twtxt/cache.db # the actual cache by the original twtxt reference implementation
Yeah, wrong place for caches.
I have to read up on the twtxt registry documentation on the weekend (too tired at the moment), but it should probably be no real issue to integrate that API into yarnd.
29°C, zero wind, extremely humid, luckily the sun was behind the clouds. I'm soaking wet, sweat ran down in streams and dripped in my eyes, it burned a bit. The sky is getting a little dark, I hope the thunderstorm and rain are really arriving here later. Rain had always been finally cancelled the couple last days.
I'm gotta go cool off my fingers now, they're swollen from the heat.
Assertion @p->parent->stash_hwaccel failed at src/libavcodec/pthread_frame.c:649
Turns out, it's this: https://forum.mxlinux.org/viewtopic.php?t=81068 Before I even went online, I assumed that turning off hardware acceleration might help. And it does. Phew!
@movq Yeah, I was happily suprised that the grass snake was still in this good shape.
I've no idea. Not sure how well frogs or toads see in the dark, but I would think if there is some noise coming towards you, you escape away and not towards it. Maybe they did not recognize me as a threat but were just curious?
This larger individual was also a frog or toad. :-) It didn't freak me out at all, it was super cool to watch. But I thought, what an idiot. :-D I mean, hopping against me once is alright, but then trying again is a bit silly. It then stopped and sat next to my boot. About half a centimeter away. I waited a few seconds and carefully moved on.
On the way there I picked two handful of blackberries in the forest. Delicious!
Today was the second time in my life that I saw a grass snake in the wild. They can easily be recognized by the yellow "ears". Unfortunately, this one was run over. :-( But I jumped at the opportunity to photograph it as it didn't escape in a fraction of a second like my first encounter three years ago. Still, poor fellow. :-(

On the way home, a deer jumped out of the brush in front of me and headed down the forest road before it went back in the other side. As always, that's nice.
I also had to slow down a bunch of times because of frogs or toads on the paths. Not sure which ones, it was already after dark. I guesstimate it must have been 60-70 amphibians in total, maybe more. Some of them did not move to the wayside but rather into the middle of the track, right in front of me. Crazy suicide frogs! There were four reeeeaaaallly close calls. I could just avoid stepping on them after they tried to hop right under my boot. Not a centimeter to spare. No toads were harmed during my trip. Phew!
Once I had to stop completely because of the large activity ahead of me. A larger (about the size of half a palm) individual surrounded my foot and then jumped against my heel. Twice! What the heck!? :-D But suuuper cool experience. I'm very glad I actually went out. Totally worth it. I met so many amazing animals. Don't care about the missed sunset a single bit.
Just returned from an evening walk. We met a young slow worm, a bunch of small frogs, about the width of a pointing finger and a bucket load of sweat. It's bloody hot and humid. Also, heaps of ripped trash bags in the forest and lake. :-( No photos, it was too exhausting to even carry my pocket camera.
I'm also ready absolutely ready for winter.
--open-registrations=false
has to also use the equal sign, just like the short form, otherwise it's activated. At least that's consistent. But, is has no effect, if the settings.yaml claims something different.I have the impression that command line flags only take effect the first time you start yarnd. Unless the option has no pendant in the config file, such as
-A/--admin-user $user
. Since -A
is not a boolean, but takes a string, you are free to use a blank or an equal sign…It's this package: https://github.com/spf13/pflag?tab=readme-ov-file#command-line-flag-syntax
I also noticed and fixed the typo. 8-)
How much of your screen is gone by now? Looks like a lot.
Wow, crazy. A decade ago, I think I only experienced power outages three or maybe four times in my entire life. Since then, they became a bit more frequent. Probably five or six, maybe more. Not sure how many of these events are attributed to construction incidents, where an excavator ripped a power line apart. Last time, loggers threw a tree in an overhead power line, so the power company had to disconnect my area from the grid.
-R=false
on the command line or leave it out entirely. When explicitly stating -R=false
, there has to be an equal sign. With a space (-R false
) it's somehow parsed as -R
which is equivalent to -R=true
. O_o Very weird. I'd really like to see an error instead.I still have to figure out the precedence of the settings.yaml or command line arguments. I'm probably holding it wrong, but it seems to give me different results…
I just read up on them and – surprise, surprise – it turns out, the Himalayans are not native to most of Europe either. Doh! It gets even more interesting, their origin is unclear. Maybe Armenia and the Caucasus region. Fascinating!
It's funny that you mention it, too. We also were quite surprised that it was incredibly quiet in nature. Not just no man-made noise (we obviously avoided the crowds), not even in the distance, but also hardly any birds. We joked they're still exhausted from the heat of the days before and still resting.
vim "+normal $"
, how cool! :-) Thanks @quark!

More scenery: https://lyse.isobeef.org/waldspaziergang-2024-08-25/
Neither of us has ever seen such a marmelade bun mushroom:

GET /twt/<HASH>
with Accept: application/json
:
$ curl -sH 'Accept: application/json' https://twtxt.net/twt/fgthxaq | jq
{
"twter": {
"nick": "prologic",
"uri": "https://twtxt.net/user/prologic/twtxt.txt",
"avatar": "https://twtxt.net/user/prologic/avatar#gdoicerjkh3nynyxnxawwwkearr4qllkoevtwb3req4hojx5z43q"
},
"text": "(#tkjafka) @<falsifian https://www.falsifian.org/twtxt.txt> @<movq https://www.uninformativ.de/twtxt.txt> You actually only really want the missing root Twt. You could just fetch this from any Yarn pod. There are scripts I built way back when yo do this 😅",
"created": "2024-08-23T00:54:04Z",
"markdownText": "(#tkjafka) [@falsifian](https://www.falsifian.org/twtxt.txt#falsifian) [@movq](https://www.uninformativ.de/twtxt.txt#movq) You actually only really want the missing root Twt. You could just fetch this from any Yarn pod. There are scripts I built way back when yo do this 😅",
"hash": "fgthxaq",
"tags": [
"tkjafka"
],
"subject": "(#tkjafka)",
"mentions": [
"@<falsifian https://www.falsifian.org/twtxt.txt>",
"@<movq https://www.uninformativ.de/twtxt.txt>"
],
"links": []
}
> […] Putting mentions before the hash is still supported but discouraged. […]
> \n Putting mentions before the hash is still supported but discouraged. \n
https://staystrong.run/user/bmallred/twtxt.txt returned 200 but no Last-Modified header - can’t cache content
:-)Another modification I made is to actually cache it anyways. Otherwise,
tt
wouldn't show anything. I implemented that for some other feed that doesn't exist anymore.
twtxt
client by buckket to actually fetch and fill the cache. I think one of of the patches played around with the error reporting. This way, any problems with fetching or parsing feeds show up immediately. Once I think, I've seen enough errors, I unsubscribe.tt
is just a viewer into the cache. The read statuses are stored in a separate database file.It also happened a few times, that I thought some feed was permanently dead and removed it from my list. But then, others mentioned it, so I resubscribed.