@prologic@twtxt.net Yeah, Rust is quite popular in the Wayland scene, it seems.
In image viewer in 170 lines? Show me. 😅
@prologic@twtxt.net The only image viewer I like in general is this one:
https://codeberg.org/nsxiv/nsxiv
It’s for X11, though.
Allegedly, this Wayland image viewer is somewhat similar to nsxiv, maybe you’ll like that? 🤔
@bender@twtxt.net Someome else’s BDay. I’ll convey the wishes. 😅
It’s ten thousand million degree celsius outside and I have to go to a birthday party today because wElL iTs My BiRtHdAy ToDaY, I think I’m going to die, send help.
@lyse@lyse.isobeef.org Ich zitiere von woanders und bin zu faul zum Übersetzen:
Ich gucke schon den ganzen Tag dem Storm Tracking zu und alle Gewitter in der Nähe haben sich kurz vor meinem Standort ausgeregnet oder sind abgedreht. 😭🥵
Bloody heat, omfg
@prologic@twtxt.net Awwwww. 💚
Am I glad that I host nothing but static HTML.
Bracing myself for the next round …

@lyse@lyse.isobeef.org Hmmmmmm. Can you at least see those? ’ „ “ ”
@lyse@lyse.isobeef.org My thermometer claims 27 °C now but I don’t trust it. It’s hot, it’s humid, it’s horrible.
@lyse@lyse.isobeef.org Sounds lovely! (I think. Not sure about spider webs and such. 😅)
I woke up to 26°C this morning. 🥵
@itsericwoodward@itsericwoodward.com (I still hate that these photos look so good, despite being made with a telephone. 😝 I mean, the (probably built-in) filters are easy to spot, but it looks super convincing when you don’t pay attention.)
@lyse@lyse.isobeef.org Oh wow, we’re talking about such a detailed level. 🤔
I agree with most of what you said.
I probably would have written it like this:
// Arbitrary reference date.
// Y m d H M S nano
date := time.Date(2026, 6, 19, 17, 0, 0, 0, time.UTC)
Would this be better or worse? 😅
@lyse@lyse.isobeef.org Apparently some new ones, yeah, like these: 🫠
@itsericwoodward@itsericwoodward.com
But it also wouldn’t surprise me to find out that people like Bezzos, Musk, and Zuckerberg are actually ghoulish aliens
Yeah, that’s easier to accept, isn’t? “Phew, they’re not human after all. They’re not absolute psychopaths with zero empathy – they’re just aliens. Humans are good!” 😅
@lyse@lyse.isobeef.org … I also meant to comment on the very neat and stylish Play Button, but forgot to do so. 😅😅😅
@itsericwoodward@itsericwoodward.com When I first watched that movie (decades after it was released, probably like 10 years ago), I didn’t expect that. 😅 Feels super silly today, and all the fighting and the “look at me, I’m a strong man” stuff. 😂
@lyse@lyse.isobeef.org Oh wow, nice. 😲 Never seen those in the wild myself.
@lyse@lyse.isobeef.org If I were to guess: They might have done so to avoid bug reports from users with heavily outdated versions. 🫤
@lyse@lyse.isobeef.org Okay, wait, what is the anti-feature here? The nag screen because it’s “old”? The inability to update when run from source? 🤔
@prologic@twtxt.net I think I said this before: This looks like a really cool thing! I just wish I had a use case for it, then I’d be all over you. 😅 But since I run so many servers of my own already …
What’s your motivation for running this, btw? 🤔
(Lol, but this ended up on HackerNews. 189 comments at the moment. https://news.ycombinator.com/item?id=48586231 hfgl, I’m probably not gonna read that.)
I noticed that there are quite a few UI glitches in vim-classic – and quickly found the cause: It comes with outdated Unicode tables.
I have to admit that I wasn’t aware that there’s a new Unicode release every year:
https://en.wikipedia.org/wiki/Unicode#Versions
Look at this huge number of changes. Every program has to keep track of that, often through libraries but sometimes not (like in Vim’s case).
I use Unicode extensively, but this shit is extremely expensive …
My TUI framework is having the same problem. At the moment, this is all offloaded to wcwidth, but if that library was to become unmaintained, I’d have to track Unicode myself.
Gah!
The DOS days were simpler. CP437, end of story. (Yes, I know that’s a lie.)
@lyse@lyse.isobeef.org Yeah, I have a couple of teachers in my family and they all tell similar stories. 🙄
I have almost no recollection of my time at the “Gymnasium” anymore. I’m either traumatized by it or I wasn’t very interested in what happened there. 😅 But I have some vague memories of doing “computer stuff” at school. There certainly were computers and they certainly ran DOS games like Duke Nukem, that I do know. 😂 Just checked my records, and no, this wasn’t an official class. At best, it was one of those AGs. 🤔
@lyse@lyse.isobeef.org Awww, that sounds like a typical experience at school. 😅 They meant well but somehow it was still shitty …
I’ve never heard about that Wahlteil/Pflichtteil stuff (or forgot about it). Must be a BaWü thing. 🤔
@lyse@lyse.isobeef.org It was before my time as well. 3.0 was my first. 😅
Giving vim-classic a try now. Let’s see how it goes. 🤔
@lyse@lyse.isobeef.org The what? What happened? Do I want to know? 😭
@lyse@lyse.isobeef.org I might check it out – once the vacation is over. 😅
But it’s Windows, it doesn’t have a place in my heart.
The older I get, the more I’m glorifying anything pre XP. 😅 But that’s only because everything today is so horrible.
Well, not anything pre XP. 3.0 or newer would be nice, because Windows 2.x was still pretty bare bones:
(OS/2 was great, though, except for the lack of a good file manager.)
@lyse@lyse.isobeef.org Ah, you mean the categorization. Yeah, that would never work in Windows, at least not without having a centralized package manager (so there’s one authoritative source of which program belongs into which category).
Oh wow, those Cassiopeias look pretty cool. Did you have one of those or one for each kid?
Speaking of UIs, this is how Thunderbird looks now:
So we continue to let every program make up its own UI style (and then we complain that “the Linux desktop” looks “messy” and “inconsistent”). I guess this uses GTK, but it doesn’t look like any other GTK program. Buttons, tabs, drop-downs, whatever, it’s all different. It even has its own subwindow system (i.e., popups that you can’t move).
I didn’t say this in the blog post, but I’m convinced that programmers these days absolutely positively hate everything that looks even remotely like Windows 95 or Motif – with a passion. I see that in my coworkers as well, they really can’t stand it. It’s an emotional thing.
@lyse@lyse.isobeef.org In what way was KDE 3’s menu organized? KDE 1 is the only KDE version I ever used. 😅 We’re talking about this one, right?
Isn’t Notepad++ and Python cheating!? :-D
Well, Python was certainly already a thing back then, but Notepad++ is from 2003, right. I think I used https://www.wintotal.de/download/proton/ at the time? Maybe? I don’t know. 😅
@lyse@lyse.isobeef.org That, uh … yeah, that would work as well. 😅🤦♀️
☠️ Doing the taxes today. ☠️
It’s one of those topics that might cause outrage because I’m getting it all wrong.
So far, nobody noticed. It didn’t get posted on HackerNews or Lobsters this time, and it only got 46 hits so far (as opposed to ~50-100k hits when it does end up on those sites). 🤣
@lyse@lyse.isobeef.org Oh, 02.jpg is great. Camera just a little lower next time to put more emphasize on the … whatever that is in the foreground. 😅
Oh god, finally: The thumbnail generator for my blog now renders a typical “play” icon for videos.

Saves me the need to write “this is a video” every time. 😬
@lyse@lyse.isobeef.org Interesting approach. 🤔
The master branch should never be in a broken state (apart from bugs I don’t know about). Any intermediate state during the development of a larger feature will happen in a different branch.
I mean, yeah, but … I don’t know, I like having “traditional releases” as a second safety net when I write programs. I like to let things mature for a while and then I cut a new release. So it’s, like, “we have a bunch of new features and fixes here, and to the best of my knowledge this works fine now”. But maybe I’m just paranoid. 🤔
tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt's cache. This is rather tidious:
@lyse@lyse.isobeef.org Is it this one? https://github.com/rivo/tview It’s almost 10 years old but hasn’t seen a 1.0.0 release yet? 🤔
Updated draft: http://movq.de/blog/drafts/changelog/POSTING-en.html
I’ll probably publish this later today. Or maybe not at all. It’s one of those topics that might cause outrage because I’m getting it all wrong. 🤪
Haha, GitHub. I “unlocked” the “achievement” called “Quickdraw”:

It’s for closing an issue very soon after it was opened.
Only problem: I was the one who opened it and it was a mistake, so I quickly closed it again. 🤦♀️ https://github.com/bundlewrap/bundlewrap/issues/892
@lyse@lyse.isobeef.org Oh god, yeah. In other words: Devs need to think about who their target audience is. 😐
tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt's cache. This is rather tidious:
With multicolored TUIs, I find it usually hard to immediately tell which button is selected if there are just two.
Indeed, I wouldn’t be able to tell in that example, either. movwin works around that by (mostly) assuming that there is no support for colors at all, so there should always be a way to tell which widget has focus, even without colors. That’s why it puts brackets around a button’s label when focused:
The fewer colors you use, the better, I guess. 🤔
tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt's cache. This is rather tidious:
Now I’m curious how movwin deals with that. ;-)
Focus handling? I hardly remember, lol. 😅 Did that 6 months ago and haven’t touched it since. Let’s see.
The core main loop gets keyboard/mouse events from curses. At this level, the main loop only knows about exactly one widget, so it passes the event to that widget (whatever that is, doesn’t matter – they all inherit from the Widget base class, it could be a Window, a WindowManager, or an Edit box directly).
The outermost widget is usually a WindowManager. It implements a few hotkeys of its own, like switching to another window. If none of those hotkeys match, it passes the event to the currently focused window.
Same story here: Window implements some hotkeys (like opening the menu bar). If none of those match, then … the magic happens.
Each Window acts as a focus manager. It can descend into its child widget hierarchy and collect all child widgets in a depth-first search. They are collected into a flat list. Each Window then has an attribute _focus_position, which is an index into that list. Pressing Tab or Shift+Tab increases or decreases that index and that allows you to select the next/previous focusable widget in the current window.
Eventually, Window passes the input event to the currently focused widget.
Usually on initialization, the application can ask a Window object to focus a certain widget. The file selection dialog does that, for example, because the “natural” focus order would be to focus the Edit box at the top of the window first – but that’s not what the user wants, the Table showing the list of files should be focused.
If no widget ever feels responsible for handling a certain input event, then there’s a global unhandled_input callback that the application can provide (same as in urwid).
I think that’s it.
Hm, that’s more complicated than I remembered, but apparently it works fine, because I completely forgot about this. 😅 All I did in the last few months was make new classes that inherit from Widget, like the new Table class or Edit or HexEdit or whatever, and if they want to get input events, then they must implement the methods input_key() or input_mouse().
Does this answer your question? 😅 (I admit that I didn’t exactly understand your scenario, so I just went ahead and rambled about my implementation. 😅)
@prologic@twtxt.net Hmmmmmmmm … 🤔
@lyse@lyse.isobeef.org Thanks!
On the AI changelog part, though, I’d rather recommend to just not have a changelog at all.
I’m afraid that ship has sailed. You can rest assured that someone who uses AI/LLMs for their code (which is almost everybody at this point) will most certainly also use it for changelogs.
I actually considered not mentioning AI output at all, because this just opens a huge can of worms … 😞
While going through these terrible GitHub release pages, I also found these “New Project Contributors” sections
Yeah, they play on a nerd’s pride.
Now, it’s just the same auto shitshow with MR titles in a rolling date-versioned release scheme. It’s just our team who has to deal with that, though. I think I’m the only one who is not a fan of it.
I’ve found that this whole situation is much worse at work than it is in the Free Software world. At work, it’s literally work and hardly anybody actually cares. We still don’t have all people convinced that writing good commit messages or using good branch names is worth the time. It’s … oh god, no, I’m going to stop here, this is bad for my mental health. 😅
Suffice it to say, all release notes at work are now AI-generated. Nobody gives a fuck.

