Java 1.3 on Windows 95 with Proton as the editor could be another option for next Advent of Code.
Win95 runs pretty smoothly on my old box (no surprise, that box came with Win95) and I like Java, so … why not …
Not sure about the speed, though. 🥴

I just read @kat@yarn.girlonthemoon.xyz’s blog post over here:
https://bubblegum.girlonthemoon.xyz/articles/learning-to-code-like-it-s-the-90s
Jesus, it must be so overwhelming for young people to get started with programming.
When I started programming, there was the built-in ROM BASIC of that PC and probably a bit of BASIC on a floppy, and that was it. Nowadays? Millions of libraries and frameworks and languages and what not – and, much worse, there’s the expectation that you need to make something fancy. When I started, printing something and understanding IF was good enough.
Installing software was (is?) such an incomprehensible mess on Windows … Why did you allow any program to install files anywhere in the system? Why was this considered normal and okay? With no chance of ever cleanly removing that stuff again?
And now we’re back to the trend of curl | bash these days … same thing.
@lyse@lyse.isobeef.org This apparently depends on the program now … Some Qt6 programs still allow that, others don’t. I can’t remember if GTK ever had that feature. 🤔 But yeah, this whole “move stuff around as you please”-mentality is mostly gone.
I know I keep referring to StarOffice 3.1 a lot, but it’s just such a good example for all these things. All the toolbars and panels could be rearranged:

(This is running in Wine, btw.)
LibreOffice is the descendant of StarOffice and it doesn’t support anything like that anymore.
Maybe it was deemed too confusing for users? “Oh no, I mis-clicked something and now that bar is gone! How do I get it back? I don’t even know what it’s called!” 🤔
@arne@uplegger.eu Wie sah’s denn drinnen aus? 😅
@bender@twtxt.net twtxthashgeddon, word of the year! 😂
@arne@uplegger.eu Yay! So I’m the only one who fucked it up. 🤪🙈
Well, they paid me something back. (I’m not required to file a tax report, which means that I absolutely should do it. They’re ripping off the “lazy” people.)
@arne@uplegger.eu Foo, bar, and baz! Does it work? Is the houseplant happy?
@lyse@lyse.isobeef.org Oh wow, those are some amazing photos! 🤯
Test! It works now.
🚨 jenny was broken due to the switch to v2 hash tags.
I pushed a hotfix to main, but this needs a few more test cases. I’ll do that tomorrow.
How about now?
Shit. Jenny is broken. 🥴
@lyse@lyse.isobeef.org Test!
@lyse@lyse.isobeef.org Ah, yes, you live in “the zone”: https://social.bund.de/@DeutscherWetterdienst/116839789079697685
If you like Wordle, you’re gonna love Poople: https://poople.io/
@itsericwoodward@itsericwoodward.com … does your cat wear a bow tie?
@lyse@lyse.isobeef.org Don’t worry, my apartment is still at around 28-30 °C, too, and there’s the construction site outside which is noisy is fuck. Everything sucks at the moment. 🤣
It’s 4am now – and it’s raining! 🥳🥳🥳
@prologic@twtxt.net Depends on what you want, I guess.
Stability: vim-classic > vim > neovim
Features: neovim > vim > vim-classic
😅
@kiwu@twtxt.net Last time you asked we were all tired. Now we’re EXHAUSTED because it’s 40 °C around here. 🥵😂😭
@lyse@lyse.isobeef.org It was around 29 °C for a while inside and pretty nice on the balcony, but that’s over now. 🤣
Other than the few Unicode issues I mentioned recently, vim-classic works just fine. I completely forgot that I switched to it.
Starting the day with 32 °C inside and absolutely no cooling from the outside.

@bender@twtxt.net I know heat (I’ve been to Southeast Asia, for example – or Florida 🤣), but you’re right, it does hit very differently when it’s at home. “At home” is usually the cool and relaxed place, but now it’s hell. And no AC anywhere in sight.
We’re at 39.5 °C now. Are we going to hit 40? 
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 👍
@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.)
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. 🤔
@lyse@lyse.isobeef.org I noticed that loading="lazy" might not be so great after all.
This is without lazy loading:

The total page load time is around 400-500 ms. Okay.
Now this is with lazy loading:

It finished much quicker, after about 250 ms. Sounds good.
But notice this gap right here?

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. 🤔
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. 🤣)
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.
I complain about this a lot:
https://movq.de/v/e7cb49eefb/hiccupfx
But to be honest, my blog did the same thing – to some degree.
This is fixed now. The trick is to add width and height to all <img> tags. That way, modern browsers know how much space to reserve for the image. Without this, they just reserve zero space, so when the image finally loads, you get jumpy layout.
This effect is even worse when you use <img loading="lazy"> – which I can finally use, now that the jumpy layout has been fixed. 🥳
@lyse@lyse.isobeef.org It was a wild ride for sure. 😂
@lyse@lyse.isobeef.org Besides, have a look at
again: When it goes from item 9 to item 10, the indentation of the text (after the number) changes. Pretty ugly. In other words, a table of contents should be a table, not a list like it is at the moment. And that would require me to write my own extension for python-markdown … Probably not worth it.
@lyse@lyse.isobeef.org Mhm, yeah … I’ll probably not do it. Just keeping the numbers out of the anchors would be pretty hacky, I guess.
Numbered headings in blog posts, yay or nay?
Biggest problem of having them: Links to section anchors (like bla.html#my-first-section) will break if I add a section later on. 🤔
@itsericwoodward@itsericwoodward.com This will never end. Chat control in the EU is back as well, it seems. 🙄
@bender@twtxt.net Yeah, that would be good, it only supports gzip, though. 🥴
Using gzip compression for the twtxt files now. I don’t expect any issues but let me know if something breaks. 🥁
(This feature is implemented in a pretty minimalistic way in OpenBSD’s httpd …)
@lyse@lyse.isobeef.org Mhm, yeah, I also think I like date := time.Date(2026, time.June, 19, /**/ 17, 0, 0, 0, time.UTC) the most. 🤔 (My only gripe with this is that it isn’t obvious whether the third 0 is milli-, micro- or nanoseconds. These days it’s probably nanoseconds, but you never know.)
@lyse@lyse.isobeef.org Huh. Yeah. Indeed. 😃
@lyse@lyse.isobeef.org You think I thought about it on that level? 😅 I just heard that weird animal noise in the dark and I was the one who was running. 😂