https://movq.de/v/a1c4a819e6/vid.mp4
(It runs smoothly. My computer just isn’t fast enough for a smooth X11 screengrab at that resolution.)
https://movq.de/v/a1c4a819e6/vid.mp4
(It runs smoothly. My computer just isn’t fast enough for a smooth X11 screengrab at that resolution.)
> Hence, I'd recommend to start programming with a console program. As for the language, not sure. But Python is probably a good choice
That’s what I usually do (when we have young people at work who never really programmed before), but it doesn’t really “hit” them. They’ve seen so much, crazy graphics, web pages, it’s all fancy. Just some text output is utterly boring these days. ☹️ And that’s my problem: I have no idea how I could possibly spark some interest in things like pointers or something “low-level” like that. And I truly believe that you *need* to understand things like pointers in order to program, in general.
> Hence, I'd recommend to start programming with a console program. As for the language, not sure. But Python is probably a good choice
That’s what I usually do (when we have young people at work who never really programmed before), but it doesn’t really “hit” them. They’ve seen so much, crazy graphics, web pages, it’s all fancy. Just some text output is utterly boring these days. ☹️ And that’s my problem: I have no idea how I could possibly spark some interest in things like pointers or something “low-level” like that. And I truly believe that you *need* to understand things like pointers in order to program, in general.
> Also, I see what you did there in regards to the reply model change poll. ]:->
The community is heavily divided in this regard, and yet we need consensous. We’re like the three Borg in VOY: Survival Instinct). 🥴
> Also, I see what you did there in regards to the reply model change poll. ]:->
The community is heavily divided in this regard, and yet we need consensous. We’re like the three Borg in VOY: Survival Instinct). 🥴
git pull
on one of my repos – once every two minutes. This is a very pointless endeavour. I push new code a couple of times *per month*.So far, this isn’t causing any issues. I *think* this is just a regular human being who misconfigured some automation. And I *hope* this doesn’t mean that the “AI” bots have finally discovered my page …
git pull
on one of my repos – once every two minutes. This is a very pointless endeavour. I push new code a couple of times *per month*.So far, this isn’t causing any issues. I *think* this is just a regular human being who misconfigured some automation. And I *hope* this doesn’t mean that the “AI” bots have finally discovered my page …
#!/bin/sh
# Position the pointer at the center of the dot, then run this script.
sleep 1
start=$(xdotool getmouselocation --shell)
eval $start
r=400
steps=100
down=0
for step in $(seq $((steps + 1)) )
do
# pi = 4 * atan(1)
new_x=$(printf '%s + %s * c(%s / %s * 2 * (4 * a(1)))\n' $X $r $step $steps | bc -l)
new_y=$(printf '%s + %s * s(%s / %s * 2 * (4 * a(1)))\n' $Y $r $step $steps | bc -l)
xte "mousemove ${new_x%%.*} ${new_y%%.*}"
if ! (( down ))
then
xte 'mousedown 1'
down=1
fi
done
xte 'mouseup 1'
xte "mousemove $X $Y"

Interestingly, you can abuse the scoring system (not manually, only with a script). Since the mouse *jumps* to the locations along the circle, you can just use very few steps and still get a great score because every step you make is very accurate – but the result looks funny:

🥴
#!/bin/sh
# Position the pointer at the center of the dot, then run this script.
sleep 1
start=$(xdotool getmouselocation --shell)
eval $start
r=400
steps=100
down=0
for step in $(seq $((steps + 1)) )
do
# pi = 4 * atan(1)
new_x=$(printf '%s + %s * c(%s / %s * 2 * (4 * a(1)))\n' $X $r $step $steps | bc -l)
new_y=$(printf '%s + %s * s(%s / %s * 2 * (4 * a(1)))\n' $Y $r $step $steps | bc -l)
xte "mousemove ${new_x%%.*} ${new_y%%.*}"
if ! (( down ))
then
xte 'mousedown 1'
down=1
fi
done
xte 'mouseup 1'
xte "mousemove $X $Y"

Interestingly, you can abuse the scoring system (not manually, only with a script). Since the mouse *jumps* to the locations along the circle, you can just use very few steps and still get a great score because every step you make is very accurate – but the result looks funny:

🥴
It feels like 2020 to and including 2023 never happened. 🫤
It feels like 2020 to and including 2023 never happened. 🫤




[](https://movq.de/v/07e4be1aad/a.ff.jpg)
[](https://movq.de/v/07e4be1aad/b.ff.jpg)
[](https://movq.de/v/07e4be1aad/a.ff.jpg)
[](https://movq.de/v/07e4be1aad/b.ff.jpg)
https://movq.de/v/f0c0e1e38c/
Now it’s getting greener:
https://movq.de/v/24e62315ef/
[](https://movq.de/v/24e62315ef/IMG_20250421_071652.jpg%2Dsmall.jpg)
https://movq.de/v/f0c0e1e38c/
Now it’s getting greener:
https://movq.de/v/24e62315ef/
[](https://movq.de/v/24e62315ef/IMG_20250421_071652.jpg%2Dsmall.jpg)
> My profile pic is AI modified to prevent deepfakes. I used local Stable Diffusion on my solar powered 7900XTX to average a few selfies.
That sounds like a fun thing to do. Do I have a chance of doing that on my old box from 2013 without a dedicated GPU? 😂
> My profile pic is AI modified to prevent deepfakes. I used local Stable Diffusion on my solar powered 7900XTX to average a few selfies.
That sounds like a fun thing to do. Do I have a chance of doing that on my old box from 2013 without a dedicated GPU? 😂
What the heck is going on in 86.jpg? An art installation, apparently, but, uh, I wouldn’t trust that. 😂
What the heck is going on in 86.jpg? An art installation, apparently, but, uh, I wouldn’t trust that. 😂
[Global]
Name = your.irc.server.com
Password = yourfancypassword
Listen = 0.0.0.0
Ports = 6667
AdminInfo1 = Well, me.
AdminInfo2 = Over here!
AdminEMail = forget.it@example.invalid
[Options]
Ident = no
PAM = no
[SSL]
CertFile = /etc/ssl/acme/your.irc.server.com.fullchain.pem
KeyFile = /etc/ssl/acme/private/your.irc.server.com.key
DHFile = /etc/ngircd/dhparam.pem
Ports = 6669
Start it and then you can connect on port 6667. (The SSL cert/key must be managed by an external tool, probably something like certbot or acme-client.)
I’m assuming OpenBSD here. Haven’t tried it on Linux lately, let alone Docker. 😅=
[Global]
Name = your.irc.server.com
Password = yourfancypassword
Listen = 0.0.0.0
Ports = 6667
AdminInfo1 = Well, me.
AdminInfo2 = Over here!
AdminEMail = forget.it@example.invalid
[Options]
Ident = no
PAM = no
[SSL]
CertFile = /etc/ssl/acme/your.irc.server.com.fullchain.pem
KeyFile = /etc/ssl/acme/private/your.irc.server.com.key
DHFile = /etc/ngircd/dhparam.pem
Ports = 6669
Start it and then you can connect on port 6667. (The SSL cert/key must be managed by an external tool, probably something like certbot or acme-client.)
I’m assuming OpenBSD here. Haven’t tried it on Linux lately, let alone Docker. 😅=
Information published on the internet (or anywhere, for that matter) was never guaranteed to be correct. But at least you had a “frame of reference”: “Ah, I read this information about Linux on a blog that usually posts about Windows, so this one single Linux post might not necessarily be correct.” That is completely lost with LLMs. It’s literally all mushed together. 🤷
Information published on the internet (or anywhere, for that matter) was never guaranteed to be correct. But at least you had a “frame of reference”: “Ah, I read this information about Linux on a blog that usually posts about Windows, so this one single Linux post might not necessarily be correct.” That is completely lost with LLMs. It’s literally all mushed together. 🤷
> If it is not possible to install Borg on the remote host, it is still possible to use the remote host to store a repository by mounting the remote filesystem, for example, using sshfs.
> If it is not possible to install Borg on the remote host, it is still possible to use the remote host to store a repository by mounting the remote filesystem, for example, using sshfs.
https://www.youtube.com/watch?v=QSMDb1CWD6Y
Notice how old all these people sound. They started playing this game like 10, 15, 20 years ago, most of them left, but some are still there. I love that level of commitment. 😃
Also interesting from a technical point of view. Creating that virtual world and keeping it running *consistently* for so long … 🤯
https://www.youtube.com/watch?v=QSMDb1CWD6Y
Notice how old all these people sound. They started playing this game like 10, 15, 20 years ago, most of them left, but some are still there. I love that level of commitment. 😃
Also interesting from a technical point of view. Creating that virtual world and keeping it running *consistently* for so long … 🤯
https://restic.net/#compatibility
So, yeah, they do use semver and, yes, they’re not at 1.0.0 yet, so things might break on the next restic update … but they “promise” to not break things too lightheartedly. Hm, well. 😅 Probably doesn’t make a big difference (they don’t say “don’t use this software until we reach 1.0.0”).
https://restic.net/#compatibility
So, yeah, they do use semver and, yes, they’re not at 1.0.0 yet, so things might break on the next restic update … but they “promise” to not break things too lightheartedly. Hm, well. 😅 Probably doesn’t make a big difference (they don’t say “don’t use this software until we reach 1.0.0”).
if-modified-since
header). You can nuke these files at any time, it might just result in more traffic (e.g., always getting a full response instead of just “HTTP 304 nope, didn’t change”).@quark Yes, I often write a couple of twts, don’t publish them, then sometimes notice a mistake and want to edit it. You’re right, as soon as stuff is published, threads are going to break/fork by edits.
if-modified-since
header). You can nuke these files at any time, it might just result in more traffic (e.g., always getting a full response instead of just “HTTP 304 nope, didn’t change”).@quark Yes, I often write a couple of twts, don’t publish them, then sometimes notice a mistake and want to edit it. You’re right, as soon as stuff is published, threads are going to break/fork by edits.
For example, in 2021, this change got introduced:
https://www.uninformativ.de/git/jenny/commit/6b5b25a542c2dd46c002ec5a422137275febc5a1.html
This means that jenny will always ignore my own edits unless I also manually edit its internal “json database”. Annoying.
That change was requested by a user who had the habit of deleting twts or moving them to another mailbox or something. I *think* that person is long gone and I might revert that change. 🤔