blog.ratterobert.com

movq (www.uninformativ.de)

The audacity … how about you keep it, eh?

From: Netflix <info@members.netflix.com>
Subject: Here’s what’s leaving Netflix soon
Read replies 15 hours ago
movq (www.uninformativ.de)

You can fuck right off, thank you very much.

(18/29) upgrading firefox
New optional dependencies for firefox
    onnxruntime: Local machine learning features such as smart tab groups
Read replies 1 day ago
movq (www.uninformativ.de)

I’ve got a prototype of my hardcopy simulator going. I’m typing on the keyboard and the “display” goes to the printer:

https://movq.de/v/56feb53912/s.png

https://movq.de/v/235c1eabac/MVI_8810.MOV.mp4

The biiiiiiiiiig problem is that the print head and plastic cover make it impossible to see what’s currently being printed, because this is not a typewriter. This means: In order to see what I just entered, I have to feed the paper back and forth and back and forth … it’s not ideal.

I got that idea of moving back/forth from Drew DeVault, who – as it turned out – did something similar a few years back. (I tried hard to read as little as possible of his blog post, because figuring things out myself is more fun. But that could mean I missed a great idea here or there.)

But hey, at least this is running on my Pentium 133 on SuSE Linux 6.4, printer connected with a parallel cable. 😍

(Also, yes, you can see the printouts of earlier tests and, yes, I used ed(1) wrong at one point. 🤪 And ls insisted on using colors …)

Read replies 2 days ago
movq (www.uninformativ.de)

RIP Android:

https://9to5google.com/2025/08/25/android-apps-developer-verification/

Since nobody is going to push back on this (I don’t even know if that would be possible), this is going to be a reality on every platform sooner or later.

I’d guess in 20, 30 years, there won’t be “PCs” anymore. No more home computing, no more “I just write my own software”. You won’t own devices anymore, it’ll all be rented and the landlord will tell you what you can do with it.

I hope that I’m wrong, but given where we are today, I don’t think that I will be.

Read replies 3 days ago
movq (www.uninformativ.de)

Should I go on a tour with these hot air balloons some day? Not sure if it’s scary as hell. 😂

https://movq.de/v/3e26ec9a71/IMG_8800-edit.jpg

Read replies 5 days ago
movq (www.uninformativ.de)

I’ve been doing this for so lang that I’ve unlearned how to do this.

Read replies 1 week ago
movq (www.uninformativ.de)

Sooooooooo, things happened, and I now have a dot matrix printer again. 😍😂

(One of the end goals is to simulate a hardcopy terminal on my old box. I’m waiting for another cable to arrive, I don’t have USB there. And then use ed(1) like it was meant to be used! 😅)

https://movq.de/v/850e04ba36/VID_20250821_180801.mp4.mp4

https://movq.de/v/850e04ba36/closeup.jpg

Read replies 1 week ago
movq (www.uninformativ.de)

The GPG signatures of my software tarballs have been wrong for years (because I’ve been using rsync wrong, funny enough, it wasn’t a GPG issue) and nobody ever noticed. (They still are wrong at the moment, because I haven’t pushed the fix, yet.)

This confirms that this is just a total waste of time. Nobody ever checks this. Maybe this matters if you’re a distro, but why even bother as a single person …

Read replies 1 week ago
movq (www.uninformativ.de)

Please enjoy this horrible madness: https://userinyerface.com/game.html

Read replies 1 week ago
movq (www.uninformativ.de)

UNIX: A History and a Memoir by Brian Kernighan

https://www.youtube.com/watch?v=WEb_YL1K1Qg

I could listen to him all day.

Read replies 1 week ago
movq (www.uninformativ.de)

Okay, often times, these “employer gimmicks” are just silly, but this one did make me laugh:

Read replies 2 weeks ago
movq (www.uninformativ.de)

This genre is great for background music: https://www.youtube.com/watch?v=n--SX54AUZU

Read replies 2 weeks ago
movq (www.uninformativ.de)

What’s Missing from “Retro”: gopher://midnight.pub/0/posts/2679

Read replies 3 weeks ago
movq (www.uninformativ.de)

Hard to believe that this song is from 1985:

https://www.youtube.com/watch?v=cen22TBHo9M

Read replies 3 weeks ago
movq (www.uninformativ.de)

We did an experiment at work today: Do I even need to lock my laptop when I’m gone or is nobody able to use it anyway?

It went as expected. 🤣

Read replies 3 weeks ago
movq (www.uninformativ.de)

Spiders are the only web developers that enjoy finding bugs.

Read replies 3 weeks ago
movq (www.uninformativ.de) Read replies 4 weeks ago
movq (www.uninformativ.de)

Speaking of manpages:

“Man pages are great, man readers are the problem”

https://whynothugo.nl/journal/2025/04/09/man-pages-are-great-man-readers-are-the-problem/

Read replies 4 weeks ago
movq (www.uninformativ.de)

mandoc is nicer to read/write than the man macro package and, most importantly, it’s semantic markup.

HTML output is a bit broken in GNU groff, though (OpenBSD on the left, GNU on the right):

https://movq.de/v/f1898e648f/s.png

🤔

Still, I’m inclined to convert my manpages to mandoc.

Read replies 4 weeks ago
movq (www.uninformativ.de)

In 1996, they came up with the X11 “SECURITY” extension:

https://www.reddit.com/r/linux/comments/4w548u/what_is_up_with_the_x11_security_extension/

This is what could have (eventually) solved the security issues that we’re currently seeing with X11. Those issues are cited as one of the reasons for switching to Wayland.

That extension never took off. The person on reddit wonders why – I think it’s simple: Containers and sandboxes weren’t a thing in 1996. It hardly mattered if X11 was “insecure”. If you could run an X11 client, you probably already had access to the machine and could just do all kinds of other nasty things.

Today, sandboxing is a thing. Today, this matters.

I’ve heard so many times that “X11 is beyond fixable, it’s hopeless.” I don’t believe that. I believe that these problems are solveable with X11 and some devs have said “yeah, we could have kept working on it”. It’s that people don’t want to do it:

Why not extend the X server?

Because for the first time we have a realistic chance of not having to do that.

https://wayland.freedesktop.org/faq.html

I’m not in a position to judge the devs. Maybe the X.Org code really is so bad that you want to run away, screaming in horror. I don’t know.

But all this was a choice. I don’t buy the argument that we never would have gotten rid of things like core fonts.

All the toolkits and programs had to be ported to Wayland. A huge, still unfinished effort. If that was an acceptable thing to do, then it would have been acceptable to make an “X12” that keeps all the good things about X11, remains compatible where feasible, eliminates the problems, and requires some clients to be adjusted. (You could have still made “X11X12” like “XWayland” for actual legacy programs.)

Read replies 1 month ago
movq (www.uninformativ.de)

“Wayland Will Never Be Ready For Every X.Org User”

https://youtu.be/yURfsJDOw1E

Read replies 1 month ago
movq (www.uninformativ.de)

Bloody AI clowns:

https://movq.de/v/34ccfc125c/s.png

How many IPs am I supposed to block, eh?

Read replies 1 month ago
movq (www.uninformativ.de)

Do I buy a new monitor or do I live with the burn-ins all the time? It’s getting annoying. When I edit images in GIMP, I have to double check if something is a pixel or a burn-in.

Read replies 1 month ago
movq (www.uninformativ.de)

You know you’re getting old when there’s quite a few scripts in your ~/bin that you use daily, but you haven’t edited them once in well over 10 years …

Read replies 1 month ago
movq (www.uninformativ.de)

Here’s an example of X11/Xlib being old and archaic.

X11 knows the data type “cardinal”. For example, the window property _NET_WM_ICON (which holds image data for icons) is an array of “cardinal”. I am already not really familiar with that word and I’m assuming that it comes from mathematics:

https://en.wikipedia.org/wiki/Cardinal_number

(It could also be a bird, but probably not: https://en.wikipedia.org/wiki/Cardinalidae)

We would probably call this an “integer” today.

EWMH says that icons are arrays of cardinals and that they’re 32-bit numbers:

https://specifications.freedesktop.org/wm-spec/latest-single/#id-1.6.13

So it’s something like 0x11223344 with 0x11 being the alpha channel, 0x22 is red, and so on.

You would assume that, when you retrieve such an array from the X11 server, you’d get an array of uint32_t, right?

Nope.

Xlib is so old, they use char for 8-bit stuff, short int for 16-bit, and long int for 32-bit:

https://x.org/releases/current/doc/libX11/libX11/libX11.html#Obtaining_and_Changing_Window_Properties

That is congruent with the general C data types, so it does make sense:

https://en.wikipedia.org/wiki/C_data_types

Now the funny thing is, on modern x86_64, the type long int is actually 64 bits wide.

The result is that every pixel in a Pixmap, for example, is twice as large in memory as it would need to be. Just because Xlib uses long int, because uint32_t didn’t exist, yet.

And this is something that I wouldn’t know how to fix without breaking clients.

Read replies 1 month ago
movq (www.uninformativ.de)

I was drafting support for showing “application icons” in my window manager, i.e. the Firefox icon in the titlebar:

https://movq.de/v/0034cc1384/s.png

Then I realized: Wait a minute, lots of applications don’t set an icon? And lots of other window managers don’t show these icons, either? Openbox, pekwm, Xfce, fvwm, no icons.

Looks like macOS doesn’t show them, either?!

Has this grown out of fashion? Is this purely a Windows / OS/2 thing?

Read replies 1 month ago
movq (www.uninformativ.de)

Only figured this out yesterday:

pinentry, which is used to safely enter a password on Linux, has several frontends. There’s a GTK one, a Qt one, even an ncurses one, and so on.

GnuPG also uses pinentry. And you can configure your frontend of choice here in gpg-agent.conf.

But what happens when you don’t configure it? What’s the default?

Turns out, pinentry is a shellscript wrapper and it’s not even that long. Here it is in full:

#!/bin/bash

# Run user-defined and site-defined pre-exec hooks.
[[ -r "${XDG_CONFIG_HOME:-$HOME/.config}"/pinentry/preexec ]] && \
        . "${XDG_CONFIG_HOME:-$HOME/.config}"/pinentry/preexec
[[ -r /etc/pinentry/preexec ]] && . /etc/pinentry/preexec

# Guess preferred backend based on environment.
backends=(curses tty)
if [[ -n "$DISPLAY" || -n "$WAYLAND_DISPLAY" ]]; then
        case "$XDG_CURRENT_DESKTOP" in
        KDE|LXQT|LXQt)
                backends=(qt qt5 gnome3 gtk curses tty)
                ;;
        *)
                backends=(gnome3 gtk qt qt5 curses tty)
                ;;
        esac
fi

for backend in "${backends[@]}"
do
        lddout=$(ldd "/usr/bin/pinentry-$backend" 2>/dev/null) || continue
        [[ "$lddout" == *'not found'* ]] && continue
        exec "/usr/bin/pinentry-$backend" "$@"
done

exit 1

Preexec, okay, then some auto-detection to use a toolkit matching your desktop environment …

… and then it invokes ldd? To find out if all the required libraries are installed for the auto-detected frontend?

Oof. I was sitting here wondering why it would use pinentry-gtk on one machine and pinentry-gnome3 on another, when both machines had the exact same configs. Yeah, but different libraries were installed. One machine was missing gcr, which is needed for pinentry-gnome3, so that machine (and that one alone) spawned pinentry-gtk

Read replies 1 month ago
movq (www.uninformativ.de)

Since Wayland compositors handle input devices on a lower level than X11 window managers, every compositor has to figure out on their own what a “mouse wheel click” is:

(I think “Wayland compositor” is a misnomer. They are full-blown display servers that also do compositing, plus Wayland window management, plus X11 window management.)

One can only hope that all this eventually gets moved into the wlroots library. (I’m not sure if that’s possible, nor if people would want that.)

Read replies 1 month ago
movq (www.uninformativ.de)

I wore a Kubernetes shirt, in public, by accident, and now I feel dirty and ashamed. 😢

Read replies 1 month ago
movq (www.uninformativ.de)

Xfce does one thing very right: It stores its settings in plain-text XML files. This allows me to easily read, track, and maybe even distribute these settings to other machines.

(Unlike GNOME’s dconf, which uses some binary file format. Fun fact: The older and now deprecated gconf also used XML files.)

Read replies 1 month ago
movq (www.uninformativ.de)

Nooooooooooooooooooooooooooooooooooooooooooooooooooooooo, the doctors have started using AI voice agents and they understand jack shit. 😭😭😭

Read replies 1 month ago
movq (www.uninformativ.de)

HTTP referrers are quite broken, aren’t they?

Because of that recent storm on my blog, I had a peek at them. There’s a lot of garbage in there. For example, https://docs.freebsd.org/en/books/handbook/disks-virtual.html is supposed to refer to one of my blog posts …

What’s going on here?

Read replies 1 month ago
movq (www.uninformativ.de)

AI this, AI that.

Tech is no longer interesting. I need to find a new field.

Read replies 1 month ago
movq (www.uninformativ.de)

Thinking about doing “Wayland Wednesday”. Only use Wayland every Wednesday. Collect bugs, report bugs, fix bugs.

Read replies 1 month ago
movq (www.uninformativ.de)

PSA: setpriv on Linux supports Landlock.

If this twt goes through, then restricting the filesystem so that jenny can only write to ~/Mail/twt, ~/www/twtxt.txt, ~/.jenny-cache, and /tmp works.

Read replies 1 month ago
movq (www.uninformativ.de)

Something happened with the frame rate of terminal emulators lately. It looks like there’s a trend to run at a high framerate now? I’m not sure exactly. This can be seen in VTE-based terminals like my xiate or XTerm on Wayland. foot and st, on the other hand, are fine.

My shell prompt and cursor look like this:

$ █

When I keep Enter pressed, I expect to see several lines like so:

$
$
$
$
$
$
$ █

With the affected terminal emulators, the lines actually show up in the following sequence. First, we have the original line:

$ █

Pressing Enter yields this as the next frame:

$
█

And then eventually this:

$
$ █

In other words, you can see the cursor jumping around very quickly, all the time.

Another example: Vim actually shows which key you just pressed in the bottom right corner. Keeping j pressed to scroll through a file means I get to see a j flashing rapidly now.

(I have no idea yet, why exactly XTerm in X11 is fine but flickering in Wayland.)

Read replies 1 month ago
movq (www.uninformativ.de)

The WM_CLASS Property is used on X11 to assign rules to certain windows, e.g. “this is a GIMP window, it should appear on workspace number 16.” It consists of two fields, name and class.

Wayland (or rather, the XDG shell protocol – core Wayland knows nothing about this) only has a single field called app_id.

When you run X11 programs under Wayland, you use XWayland, which is baked into most compositors. Then you have to deal with all three fields.

Some compositors map name to app_id, others map class to app_id, and even others directly expose the original name and class.

Apparently, there is no consensus.

Read replies 1 month ago
movq (www.uninformativ.de)

“🫩” is my new favorite emoji.

Read replies 1 month ago
movq (www.uninformativ.de)

QEMU on Wayland unusable, because it can’t grab the mouse … I’ll add it to my TODO list and investigate/report it eventually.

Read replies 1 month ago
movq (www.uninformativ.de)

The lack of suckless-like simple, hackable software these days is appalling.

Read replies 1 month ago
movq (www.uninformativ.de)

The Linux installation on my main PC turned 14 today:

$ head -n 1 /var/log/pacman.log
[2011-07-07 11:19] installed filesystem (2011.04-1)
Read replies 1 month ago
movq (www.uninformativ.de)

I bought the “remastered” versions of Grim Fandango and Forsaken on GOG, because they’re super cheap at the moment. Both have native Linux versions.

And both these Linux version crap their pants. 🫤 The bundled SDL2 of Forsaken says it “can’t find a matching GLX visual” and I couldn’t figure out how to fix that. I didn’t spend a lot of time on Grim Fandango.

Both work great in Wine. 🤦

(I do have the original version of Grim Fandango from the 1990ies, but that one does not work so well in Wine. I figured, if it’s so cheap, why not. And I now get to play the english version. 😃 The german dub is pretty damn good, actually, but I always prefer the original these days.)

Read replies 1 month ago
movq (www.uninformativ.de)

Okay, now this is a very interesting Rust feature:

https://blog.rust-lang.org/2025/07/03/stabilizing-naked-functions/

This (and inline assembly) makes Rust really interesting for very low-level stuff. 🥳

Read replies 1 month ago
movq (www.uninformativ.de)

It took about a year, I think, but I’ve now finished another run of Tomb Raider I, II, and III. And I have, for the first time, played the two bonus packs “Unfinished Business” (for TR I) and “Golden Mask” (for TR II). They’re available as a free download, if you have the original games. (The bonus pack for TR III is not free.)

I just love these games – and the game mechanics. It’s just the right balance between challenging and relaxing.

https://movq.de/v/c55a2a137d/the%2Dend.jpg

Read replies 1 month ago
movq (www.uninformativ.de)

What kind of half-assed nonsense is this? They only broadcast half of the current european soccer cup … (Let me guess, I’m supposed to subscribe to some streaming service if I want to watch every game, right?)

Read replies 1 month ago
movq (www.uninformativ.de)

This aggressive auto-logout on my bank’s website …

Dude, you want me to print something, sign it, and scan it back in. This takes forever and I’ll have to re-login a dozen times. Narf.

Read replies 1 month ago
movq (www.uninformativ.de)

Is des äni Hitz!

Read replies 1 month ago
movq (www.uninformativ.de)

TIL: The logo of sudo is a sandwich. 🫠 https://www.sudo.ws/

Read replies 1 month ago
movq (www.uninformativ.de) Read replies 2 months ago
movq (www.uninformativ.de)

Someone did a thing:

https://social.treehouse.systems/@ariadne/114763322251054485

I’ve been silently wondering all the time if this was possible, but never investigated: Keep doing X11 but use Wayland as a backend.

This uses XWayland’s “rootful” mode, which basically just gives you a normal Wayland window with all the X11 stuff happening inside of it:

https://www.phoronix.com/news/XWayland-Rootful-Useful

In other words, put such a window in fullscreen and you (more or less) have good old X11 running in a Wayland window.

(For me, personally, this won’t be the way forward. But it’s a very interesting project.)

Read replies 2 months ago
Reply via email