Just checked and realized that four of my older posts are over the 140 character recommendation. Will be more careful!
Wer „Feuer und Flamme – Mit Feuerwehrmännern im Einsatz“ geil findet, dem gefällt sicher auch „In höchster Not – Bergretter im Einsatz“ vom Bayerischen Rundfunk. https://www.ardmediathek.de/serie/in-hoechster-not-bergretter-im-einsatz/staffel-1/Y3JpZDovL2JyLmRlL2Jyb2FkY2FzdFNlcmllcy9GMjAyNFdPMDA0MjM3QTA/1
@thecanine@twtxt.net Oh, I’m absolutely bad with videogames. Never heard of that one.
@bender@twtxt.net Please, mate, keep the heat to yourself! I don’t wanna trade that. ;-)
Every morning we are born again. What we do today is what matters most.
The firefly season is ending. I only saw 200 of them or so. There was one female directly on the forest road. If only I brought my camera and tripod, that would have worked out I reckon. I had my torch with me and this looked really cool.
Dusk took forever today. It was really long light out there. Full moon is tomorrow.
On the way back, there was suddenly a load clatter and crashing sound 100 meters away from me. I didn’t see anything, but a tree fell over in the forest out of the blue. Fuck me dead, that was scary as hell. Luckily, I was already on the main road, only meadows around me. It’s the second time I witnessed a tree accidentally coming down. The first one was during the most expensive hail storm in our area so far in 2011 behind me when setting up a summer camp. The weather changed in less than 15 minutes.
Maybe not such a good idea to go out so late alone. :-? Any rustling in the forest immediately reminded me of the boar the other day. Luckily, always false alarm. Still a bit terrified from that event.
@lyse@lyse.isobeef.org so pretty! Ah, the anticipation of an incoming heat wave! Now you guys have a small glimpse of what we live with here almost every single day. 😅
@lyse@lyse.isobeef.org Thanks! You had one of the strangest guesses so far, first one I had to look up. 😄 It is a reference to a (human) cop/detective, from a 2019 videogame. Since there’s no spoilers tag on Twtxt, the name of the file on my site, includes the correct answer.
@movq@www.uninformativ.de Oh my! :-O We reached 38°C. It’s now down one degree.
I just got up from my two, three hours siesta. And I tell you, that was bloody amazing. Layed in bed in undies, no blanket, just some power metal in my headphones and I was sleeping like a baby. Normally, I NEED a blanket, no matter what. But this summer, it’s already the second time that I actually manage to drop off without one.
We’re at 39.5 °C now. Are we going to hit 40? https://movq.de/v/43544d5385/2026-06-27–14-12.webp
box (command-line container runtime). It works great 👍
@prologic@twtxt.net (I haven’t checked out CEF recently. Back then (over 10 years ago), just using a GTK widget was certainly much easier than CEF. 😅)
box (command-line container runtime). It works great 👍
@movq@www.uninformativ.de CEF turns out to be pretty easy. I had to write a bit of C and Go to bridge, but once that got going I was able to write it into my pure Go go-wayland wlui library for final rendering. The delegating the entire CEF part was a good idea though because it keeps all the complexity in a container Image, leaving me with just the Go + C stubs/interface and SHM/IPC parts.
box (command-line container runtime). It works great 👍
@prologic@twtxt.net Ah, the joy of making your own browser – welcome to the club. 😃 (I chose WebKitGTK back then and that was not super compatible with websites … CEF would have been better, but also harder to use.)
So I decided to change tact a bit with GoNIX and instead of trying to build apure Go browser from scratch (which I kinda of half succeeded, in at least it was able to render most static ssr sites), I’ve instead decided to write a new browsered using the Chromium Embedded Framework, otherwise known as CEF. So now I have a fully working browser in GoNIX 🎉 – However since my goal is to keep GoNIX pretty lcean and mostly written in Go, I delegated the cef part(s) to an OCI container image and run that with GoNIX’s box (command-line container runtime). It works great 👍
Compromise: Don’t lazy-load the first ~7 images or so, i.e. the ones that are immediately in view.
tl;dr: Lazy loading is much better on slow internet lines but shittier on fast ones. 🫠
Ah, with lazy loading, browsers only start loading images when the load event occurs. And that takes time. Hm. Not a fan, I might revert this. 🤔
@movq@www.uninformativ.de Oooph! Web development is tidious.
I also include width and height from now on in my galleries.
@movq@www.uninformativ.de I second that!
@lyse@lyse.isobeef.org I noticed that loading="lazy" might not be so great after all.
This is without lazy loading:
https://movq.de/v/1ea351add4/s.png
The total page load time is around 400-500 ms. Okay.
Now this is with lazy loading:
https://movq.de/v/9708e1afff/s.png
It finished much quicker, after about 250 ms. Sounds good.
But notice this gap right here?
https://movq.de/v/96645a7a75/s.png
This wasn’t there before. With lazy loading, it now takes something like 80-100 ms until the browser even starts loading images. This is Chromium, but Firefox shows a similar gap.
The net result is that there is a very noticeable delay/flicker when you open a page, because it takes so long until the images have loaded. Yes, the layout doesn’t shift around, but that has nothing to do with lazy loading.
How odd. 🤔
@movq@www.uninformativ.de I see. I just use CDATA (and still have the XHTML trailing slash for <img … />). But of course, it also has its drawbacks: https://waspdev.com/articles/2026-05-11/avoid-using-cdata-in-rss I might just move away from it.
Everything is a web service these days. :-/
Interesting, HTTPS is almost twice as slow as plain HTTP on my server (~72 ms vs. ~135 ms):
$ hyperfine -r 50 "curl -so /dev/null 'http://movq.de/blog/postings/2024-05-23/0/t/word11a.jpg.jpg'"
Benchmark 1: curl -so /dev/null 'http://movq.de/blog/postings/2024-05-23/0/t/word11a.jpg.jpg'
Time (mean ± σ): 72.7 ms ± 17.2 ms [User: 6.2 ms, System: 4.8 ms]
Range (min … max): 49.5 ms … 99.7 ms 50 runs
$ hyperfine -r 50 "curl -so /dev/null 'https://movq.de/blog/postings/2024-05-23/0/t/word11a.jpg.jpg'"
Benchmark 1: curl -so /dev/null 'https://movq.de/blog/postings/2024-05-23/0/t/word11a.jpg.jpg'
Time (mean ± σ): 135.5 ms ± 28.9 ms [User: 17.8 ms, System: 5.6 ms]
Range (min … max): 93.2 ms … 198.5 ms 50 runs
@lyse@lyse.isobeef.org Oh my god, there’s nothing that CSS can’t do, eh? 😳 Crazy stuff.
Okay, I’m using the “official” validator now:
https://github.com/w3c/feedvalidator
That repo is supposed to be a website/webservice, though. The feedvalidator directory contains the actual validator. I’m using this wrapper on top: https://movq.de/v/94b5b8978c/
@lyse@lyse.isobeef.org Putting HTML into the feed. It should be XHTML. 🤪 (I used <img ...> instead of <img .../>.)
@lyse@lyse.isobeef.org Nice! (But if you ask me, a day without sun would a welcome change. 🤣)
@movq@www.uninformativ.de Congrats, how did you break it? :-)
Damn, I broke my Atom feed (and a reader let me know, that’s cool!).
I run vnu on all HTML and CSS files after each build of the website, but I don’t run a feed validator. 😬 Time to change that.
🎶 矢野顕子+坂本龍一【連弾】Water Ways Flow Backward Again (1986.11.23.)https://www.youtube.com/watch?v=Gk_tRnnMFx0
I have switched several websites from Strapdown.js (Markdown parser) to gmi2html.
Today’s sunrise: https://lyse.isobeef.org/morgensonne-2026-06-27/01.jpg