# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 220777
# self = https://watcher.sour.is?offset=220777
# prev = https://watcher.sour.is?offset=220677
"Travar-nos de ir a eleições? Nem na Alemanha isso podia acontecer", diz #Ventura, mostrando a quem se compara na história política alemã

#ptpol
"Travar-nos de ir a eleições? Nem na Alemanha isso podia acontecer", diz #Ventura, mostrando a quem se compara na história política alemã

#ptpol
"Travar-nos de ir a eleições? Nem na Alemanha isso podia acontecer", diz #Ventura, mostrando a quem se compara na história política alemã

#ptpol
@lyse So it might just be what the youngsters call a “skill issue”? 😅
@lyse So it might just be what the youngsters call a “skill issue”? 😅
@lyse They are optional dependencies and listed as such:

$ pacman -Qi pinentry
Name : pinentry
Version : 1.3.1-5
Description : Collection of simple PIN or passphrase entry dialogs which
utilize the Assuan protocol
Optional Deps : gcr: GNOME backend [installed]
gtk3: GTK backend [installed]
qt5-x11extras: Qt5 backend [installed]
kwayland5: Qt5 backend
kguiaddons: Qt6 backend
kwindowsystem: Qt6 backend

And it’s probably a good thing that they’re optional. I wouldn’t want to have all that installed *all the time*.
@lyse They are optional dependencies and listed as such:

$ pacman -Qi pinentry
Name : pinentry
Version : 1.3.1-5
Description : Collection of simple PIN or passphrase entry dialogs which
utilize the Assuan protocol
Optional Deps : gcr: GNOME backend [installed]
gtk3: GTK backend [installed]
qt5-x11extras: Qt5 backend [installed]
kwayland5: Qt5 backend
kguiaddons: Qt6 backend
kwindowsystem: Qt6 backend

And it’s probably a good thing that they’re optional. I wouldn’t want to have all that installed *all the time*.
@movq Huuuhhh?! Did I get this correctly? There are programs installed that miss (some of) their dependencies?! What the heck! O_o
@movq Following all your Wayland endeavors, it doesn't sound like a mature and usable thing to me yet.
@movq I found it quite easy to mentally parse this structure.
[47°09′04″S, 126°43′12″W] Carrier too weak
We finally got a caliper donated for this year's scout flea market. We didn't sell it, but kept it ourselves. It will come in very handy every now and then in our material store. For example, I missed having a caliper in the past when sorting our random assortment of screws or measuring the depth of a hole. It's a wee bit banged up (probably happened during transport) and didn't come with a box, but the latter is now solved.

The lid and bottom came from a wardrobe back panel I got from a mate, the sides were rocket sticks in their former lives. I found some scrap of felt in our material store and some hinges laying around in the drawers of my own workshop.

Unfortunately, the table saw teared up the plywood veneer fibres badly, even though I put tape around to prevent that. This is the first time it didn't work. At. All. To cover that up, I painted the box with some decades old tinting paint (price tag says Deutsche Mark, not Euro!) from my paint cabinet. It's awesome, works absolutely perfectly and doesn't smell the slightest bit. I reckon, this caliper box is plenty good enough for occasional use at our scout material store.

Caliper box
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?
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?
[47°09′45″S, 126°43′19″W] Transponder still failing -- switching to analog communication
@lyse @kat I spent so much time in the past figuring out if something is a dict or a list in YAML, for example.

What are the types in this example?

items:
- part_no: A4786
descrip: Water Bucket (Filled)
price: 1.47
quantity: 4
- part_no: E1628
descrip: High Heeled "Ruby" Slippers
size: 8
price: 133.7
quantity: 1

items is a dict containing … a list of two other dicts? Right?

It is quite hard for me to grasp the *structure* of YAML docs. 😢

The big advantage of YAML (and JSON and TOML) is that it’s much easier to write code for those formats, than it is with XML. json.loads() and you’re done.
@lyse @kat I spent so much time in the past figuring out if something is a dict or a list in YAML, for example.

What are the types in this example?

items:
- part_no: A4786
descrip: Water Bucket (Filled)
price: 1.47
quantity: 4
- part_no: E1628
descrip: High Heeled "Ruby" Slippers
size: 8
price: 133.7
quantity: 1

items is a dict containing … a list of two other dicts? Right?

It is quite hard for me to grasp the *structure* of YAML docs. 😢

The big advantage of YAML (and JSON and TOML) is that it’s much easier to write code for those formats, than it is with XML. json.loads() and you’re done.
@lyse YAYYYY <3
@lyse YAYYYY <3
@lyse I might need that script as well. 🙈🙏
@lyse I might need that script as well. 🙈🙏
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
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
@lyse The cynic in me says: “It’s not bleeding edge, it’s from 2008!” That’s not fair, though, looks like the issue only arose in libinput in 2019. And maybe these weird mice are super rare. Dunno.
@lyse The cynic in me says: “It’s not bleeding edge, it’s from 2008!” That’s not fair, though, looks like the issue only arose in libinput in 2019. And maybe these weird mice are super rare. Dunno.
@lyse The underlines are a bit much, yes. It appears to be related to my font (Helvetica) … Maybe they do some Unicode trickery these days, I don’t know. 🫤
@lyse The underlines are a bit much, yes. It appears to be related to my font (Helvetica) … Maybe they do some Unicode trickery these days, I don’t know. 🫤
Qwen3-Coder: Agentic Coding in the World
https://qwenlm.github.io/blog/qwen3-coder/
[47°09′14″S, 126°43′28″W] Transponder malfunction
[47°09′19″S, 126°43′27″W] Reading: 1.34 Sv
[47°09′13″S, 126°43′30″W] Raw reading: 0x68806C51, offset +/-1
yggdrasil Network <3 http://[200:6823:aabc:7629:cd2d:e9d7:cf7f:c6f8] #ygg #httpd #ergo #ipv6
@andros U2FsdGVkX1/IvWjriWZG42dQhwoouGubCVIGytDynx3GTo5H8WJH3LkzaR80PGAZHiy3OtRJaTWluQ56NE+6jQ==
🧮 USERS:1 FEEDS:2 TWTS:1410 ARCHIVED:88550 CACHE:2546 FOLLOWERS:22 FOLLOWING:14
Desktop SSH->Pinephone->here. This is crazy. Sxmo is the best UI for the Pinephone, and maybe phones in general. Insane: basically dwm on a phone with gestures and built-in yt-dlp + mpv (among others).
[47°09′12″S, 126°43′15″W] --bad checksum--
@movq I fully agree with you on https://www.uninformativ.de/blog/postings/2025-07-22/0/POSTING-en.html!

Although, in the first screenshot, the window title background is much darker in the new version than the old one@1@1 :-P Kidding aside, the contrast in the old one is still better.

Also, note the missing underlines for the Alt hotkeys now. I just think that the underline in the old one is too thick.
How to Firefox
https://kau.sh/blog/how-to-firefox/
@movq LOL! No, I mean Wayland.
Of course, @kat! But I'll first write some instructions (hopefully this week) and then let you know. :-) Should be much easier then.
@lyse What’s bleeding edge? The mouse? Yeah, maybe. 😅 I didn’t buy that on purpose and didn’t even know hi-res mouse wheels were a thing …
@lyse What’s bleeding edge? The mouse? Yeah, maybe. 😅 I didn’t buy that on purpose and didn’t even know hi-res mouse wheels were a thing …
https://www.wsws.org/en/articles/2025/07/21/ckjv-j21.html
https://www.un.org/unispal/document/a-hrc-59-23-from-economy-of-occupation-to-economy-of-genocide-report-special-rapporteur-francesca-albanese-palestine-2025/
[47°09′29″S, 126°43′13″W] Non-significative results -- sampling finished
[47°09′44″S, 126°43′21″W] Re-taking samples
[47°09′51″S, 126°43′34″W] Taking samples
new snapshot, #openbsd works like a charm :)
new snapshot, #openbsd works like a charm :)
[47°09′52″S, 126°43′43″W] --interrupted--
🧮 USERS:1 FEEDS:2 TWTS:1409 ARCHIVED:88527 CACHE:2536 FOLLOWERS:22 FOLLOWING:14
Hi @wxcafe@wxcafe ! Is the Hackers GIF bot still running somewhere?
Hi @wxcafe@wxcafe ! Is the Hackers GIF bot still running somewhere?
Hi @wxcafe@wxcafe ! Is the Hackers GIF bot still running somewhere?
@lyse got this script anywhere cuz i would be interested 👀👀👀
@lyse got this script anywhere cuz i would be interested 👀👀👀
@lyse that's so interesting omg!!! if true i wonder why it does that.... so weird!
@lyse that's so interesting omg!!! if true i wonder why it does that.... so weird!
check my shit plis! xD https://dev1lsconf.github.io/
Hello from Romania as well
I have a Python script that transforms the original YouTube channel Atom feed into a more useful Atom feed by removing the spam description and replacing it with the video duration, filtering out videos by title, duration, etc. I just updated it to exclude the damn Shorts garbage more efficiently. Finally, YouTube updated their Atom feed generation, so that the video URL contains /short/ if it's of this useless kind. Never thought that they ever actually will improve their Atom feeds. Thank you, much appreciated!
@javivf Perfect, it's fixed! :-)
Hey @lyse thanks for noticing. I think I had a DNS record pointing to the old IPv6 host. Is the issue gone now?
The command line version is here:

https://github.com/villares/sketch-a-day/blob/main/admin_scripts/pngs_to_gif.py

I should add a "public domain dedication" to both scripts...

#Python #imageio #GIFAnimation
Hi @javivf, your TLS certificate ia broken:

> certificate is valid for cluster029.hosting.ovh.net, not adn.org.es
[47°09′31″S, 126°43′12″W] Dosimeter overflow
@movq Oh boy! Fingers crossed.

That's what you get when playing with bleeding edges. :-D
@kat I have absolutely no idea, but I wouldn't be surprised if it uses the closest full image after your cut point and not the one before. Hence, the deltas between the two full images have nothing to really refer to. So, the video player just shows the first full image it finds and "freezes" the image until the video stream actually hits it.

Let me try to visualize it, | represent full images, . just subsequent deltas:


Original start of video
↓
|......|.....|........|......|..
   ↑                      ↑
   Cut point      Cut point

Resulting video:

   ....|.....|........|....
   ↑↑↑↑
   This is where it freezes         


Could be complete bullshit, though. Wouldn't be the first time that I'm wrong. :-)

I'm just curious, what exact command line do you use to cut the video?
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:

- https://github.com/labwc/labwc/issues/1068
- https://github.com/labwc/labwc/pull/2933

(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.)
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:

- https://github.com/labwc/labwc/issues/1068
- https://github.com/labwc/labwc/pull/2933

(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.)
[47°09′30″S, 126°43′19″W] Dosimeter fixed
@birb@birb https://www.jornalmapa.pt/rss
@birb@birb https://www.jornalmapa.pt/rss
@birb@birb https://www.jornalmapa.pt/rss
@kat why does ffmpeg always freeze the video in the first five seconds after a cut lmfao
@kat why does ffmpeg always freeze the video in the first five seconds after a cut lmfao
can you imagine being this cunty
can you imagine being this cunty
@kat not k-pop but i will share one. look at my girl dambara ruru
@kat not k-pop but i will share one. look at my girl dambara ruru
we need more k-pop stans on here i swear that is the key to making this network even more alive. bring in the fan cams❗❗❗❗❗❗❗
we need more k-pop stans on here i swear that is the key to making this network even more alive. bring in the fan cams❗❗❗❗❗❗❗
i should work on my PHP project again just so i have an excuse to use htmx
i should work on my PHP project again just so i have an excuse to use htmx
[47°09′10″S, 126°43′25″W] Resetting dosimeter
@lyse yeah same YAML over XML forever bc at least one is more readable lmfao!! doesn't forgive YAML's crimes though... cursed formats
@lyse yeah same YAML over XML forever bc at least one is more readable lmfao!! doesn't forgive YAML's crimes though... cursed formats
@lyse yesss it's not my idea but it's sooo fun here ngl like i should use it more!!
@lyse yesss it's not my idea but it's sooo fun here ngl like i should use it more!!
New day and new workout done! Today was full body HIIT, lower body and some abs, for a total of 40 minutes. I am very happy that I did it!
New day and new workout done! Today was full body HIIT, lower body and some abs, for a total of 40 minutes. I am very happy that I did it!
#MaradoWeekly #WeeklyPlant Week 29 Pumpkin flower
#MaradoWeekly #WeeklyPlant Week 29 Pumpkin flower
#MaradoWeekly #WeeklyPlant Week 29 Pumpkin flower
The warning is: your browser is suspiciously anonymous. And my ip from Telekom Munich.
Telekom GmbH Munich
Sorry shibboleths.org! I get a warning with my ip, even when I use lynx with a german IP from
[47°09′42″S, 126°43′32″W] Dosimeter malfunction
Well that was a short night 😴 and it seems like the thunderstorm dropped a few degrees but the humidity is still awful.
[47°09′59″S, 126°43′41″W] Raw reading: 0x687DC951, offset +/-4