@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
@movq@www.uninformativ.de Good idea, I should probably do the same for my photo galleries.
Ran 4.5 km (2.8 miles) at the lake, middle of the day, 31 degrees! I’m a glutton for punishment.
@movq@www.uninformativ.de Yes, that’s what I was thinking, too. For a moment, I wanted to suggest to use <ol> instead of <ul> to fix that. However, that’s only gonna work for the first level, but subsections then miss their parent level.
And it turns out that I was wrong. At least sort of. There are some CSS tricks to fix it: https://stackoverflow.com/a/26243681 Of course, with text or retro browsers, this is not gonna fly.
I also came across this interesting article. I just skimmed it and it’s about real tables of contents with page numbers, so not what you have in mind, but cool nevertheless: https://css-tricks.com/a-perfect-table-of-contents-with-html-css/