Soy el detective Baldo. AĆŗn recuerdo cuando esa gatita salvaje entró en mi caja contoneando su cola. Le habĆan robado el cascabel de oro. AceptĆ© el caso sin dudarlo, querĆa meter los bigotes en ese caso. OlĆa a pescado podrido.
#catsoftwtxt
@kat@yarn.girlonthemoon.xyz On the one hand, all these programs have a very long history and the technology behind manpages is actually very powerful ā you can use it to write books:
https://www.troff.org/pubs.html
I have two books from that list, for example āThe UNIX programming environmentā:

Itās a bit older, of course, but it looks and feels like a normal book, and it uses the same tech as manpages ā which I think is really cool. š
Itās comparable to LaTeX (just harder/different to use) but much faster than LaTeX. You can also do stuff like render manpages as a PDF (man -Tpdf cp >cp.pdf) or as an HTML file (man -Thtml cp >cp.html). I think I once made slides for a talk this way.
On the other hand, traditional manpages (i.e., ones that are not written in mandoc) do not use semantic markup. They literally say, āthis text is bold, that text over here is italicsā, and so on.
So when you run man foo, it has no other choice but to show it in black, white, bold, underline ā showing it in color would be wrong, because thatās not what the source code of that manpage says.
Colorizing them is a hack, to be honest. Youāre not meant to do this. (The devs actually broke this by accident recently. They themselves arenāt really aware that people use colors.)
If mandoc and semantic markup was more commonly used, I think it would be easier to convince the devs to add proper customizable colors.
-”Deja de estudiar y hazme caso!-
#catsoftwtxt
i signed up for omg.lol and iām really liking it. such a cozy and fun little community with a suite of fun web things. i wish the financial barrier to entry was a bit lower though (maybe like $5 for a few months on it or something) just so i could recommend it to my broke friends more, but i totally get why itās priced the way it is (solo dev!!!)
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.)
@important_dev_news@n8n.andros.dev Oh gawd, is the EU doing this āage verificationā bullshit too!? Not just Australia?! š¦šŗ Farrrrk!!!!! Help!!!!
@lyse@lyse.isobeef.org Oh, huh, maybe it was just my GNOME 2 themes back then that didnāt show the icon. š¤
I like the looks of your window manager. Thatās using Wayland, right?
Oh, no. Itās still X11. All my recent Wayland comments resulted from me trying to switch, but I think itās still too early. Being unable to use QEMU (because it canāt capture the mouse pointer) is a pretty big blocker for me. This is completely broken, it just happens to be unnoticeable with modern guest OSes, so itās probably not a priority for devs.
(Not to mention that I would have to fork and substantially extend dwl in order to āreplicateā my X11 WM. And then, after having done that, Iād have to follow upstream Wayland development, for which I donāt have the resources. Things would need to slow down before I can do that.)
all that wasted space of the windows not making use of the full screen!!!1
Heh. Iāve been using tiling WMs for ~15 years now, so itās actually kind of refreshing to see something different for a change. š
Probably close to the older Windowses.
That particular theme is a ripoff of OS/2 Warp 3:
š
We ran some similar brownish color scheme (donāt recall its name) on Win95 or Win98
Oh god. Yeah, I wasnāt a fan of those, either. š„“
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 ā¦
-Me gusta mi nueva cestita-
#catsoftwtxt
Se ha ido la colonia que habĆa fuera y el ājefeā que me pegaba. Ā”Ya puedo subir otra vez!
#catsoftwtxt
Yin-cat
#catsoftwtxt
@lyse@lyse.isobeef.org I do my timetracking in a little Python script, locally. Every now and then, I push the data to our actual service. Problem solved ā but itās a completely unpopular approach, they all want to use the web site. I donāt get it. Then, of course, when itās down, shit hits the fan. (Luckily, our timetracking software is neither developed nor run by us anymore. Itās a silly cloud service, but the upside is that Iām not responsible anymore. š¤·)
Some of our oldschool devs tried to roll out local timetracking once, about 15 years ago. I donāt remember anymore why they failed ā¦
This is developed inhouse, Iām just so glad that weāre not a software engineering company. Oh wait. How embarrassing.
Oh to be anonymous on the internet. That must be nice. š
Mejorando sus tƩcnicas de camuflaje para cazar moscas
#catsoftwtxt
Fresquito
#catsoftwtxt
@movq@www.uninformativ.de Interesting internal education sessions are way too infrequent here as well. There are a bunch of āknowledge transferā meetings actually, but 90% of the topics already sound totally boring to me. The other 9% talks turned out to be underwhelming, sadly. I only attended a single one where it was delivered what has been promised. Theyāre all talks, not real hands-on trainings like you did.
Once a year the security guys organize a really great hacking event, though. Teams can volunteer to hand in their software dev instances and all workmates are invited to hack them and report security vulnerabilities. Thatās a lot of fun, but also gets frustrating towards the end when you donāt make any progress. :-) Thereās also some actual hands-on training in advance for preparation of the two days. Unfortunately, I missed the last event due to my own project being very stressful at the time.
When I had a Do What You Want Day I also show my direct teammates what I learned in the hopes of this being interesting to them as well. Iām the only one in my team using this opportunity, sadly.
I did a ālectureā/āworkshopā about this at work today. 16-bit DOS, real mode. š¾ Pretty cool and the audience (devs and sysadmins) seemed quite interested. š„³
- People used the Intel docs to figure out the instruction encodings.
- Then they wrote a little DOS program that exits with a return code and they used uhex in DOSBox to do that. Yes, we wrote a COM file manually, no Assembler involved. (Many of them had never used DOS before.)
- DEBUG from FreeDOS was used to single-step through the program, showing what it does.
- This gets tedious rather quickly, so we switched to SVED from SvarDOS for writing the rest of the program in Assembly language. nasm worked great for us.
- At the end, we switched to BIOS calls instead of DOS syscalls to demonstrate that the same binary COM file works on another OS. Also a good opportunity to talk about bootloaders a little bit.
- (I think they even understood the basics of segmentation in the end.)
The 8086 / 16-bit real-mode DOS is a great platform to explain a lot of the fundamentals without having to deal with OS semantics or executable file formats.
Now that was a lot of fun. š„³ Itās very rare that we do something like this, sadly. I love doing this kind of low-level stuff.
@aelaraji@aelaraji.com Oh, thatās great! I havenāt heard about any of them before either. Thereās also a caveat though, that I ran right into the very first time I tried this in zsh:
$ ls > /dev/null
$ echo $_
--color=tty
Yeah, exactly what you think:
$ which ls
ls: aliased to ls --color=tty
Alt+. is going to be my favorite one! In the above, it would also give me /dev/null, which might be probably more what I would expect.
Batdo
#catsoftwtxt
- Esta almohada me gusta. ”Pa mi! -
#catsoftwtxt
Las 50 sombras de Baldo
#catsoftwtxt
@bender@twtxt.net Canāt you see this twt ??
Just as a little courtesy call (is that the right term?): 2025 continues to be annoying and exhausting, and I wonāt really have the energy to work on twtxt/Yarn or texudus. Other than the occasional retrocomputing thingy (which gives a nice boost of nostalgia), Iām not doing much of anything lately.
wongerās website https://wonger.dev/
Ultimately, Go sits in the sweet spot on the complexity vs performance chart:
- Minimal syntax & concepts ā low learning curve
- Compiled speed ā high throughput
- Built-in CSP concurrency ā scalable by default
See Rob Pykeās presentation on Expressiveness of Go
One of the nicest things about Go is the language itself, comparing Go to other popular languages in terms of the complexity to learn to be proficient in:
- Go:
25keywords (Stack Overflow); CSP-style concurrency (goroutines & channels)
- Python 2:
30keywords (TutorialsPoint); GIL-bound threads & multiprocessing (Wikipedia)
- Python 3:
35keywords (Initial Commit); GIL-bound threads,asyncio& multiprocessing (Wikipedia, DEV Community)
- Java:
50keywords (Stack Overflow); threads +java.util.concurrent(Wikipedia)
- C++:
82keywords (Stack Overflow);std::thread, atomics & futures (en.cppreference.com)
- JavaScript:
38keywords (Stack Overflow); single-threaded event loop &async/await, Web Workers (Wikipedia)
- Ruby:
42keywords (Stack Overflow); GIL-bound threads (MRI), fibers & processes (Wikipedia)
#<2025-05-10T19:34:00+00:00 https://andros.dev/texudus.txt> Nice:) And is this implemented in your client as well? Iāve started to brainstorm on how to parse texudus in php, but I guess it could snatch some code from you?
@kat@yarn.girlonthemoon.xyz I totally recommend zs 𤣠It powers all my sites! š https://twtxt.dev https://yarn.socia/ https://prologic.dev etc š
Fin de semana: ”A jugar!
#catsoftwtxt
En estos momentos, no sƩ si un dios le estƔ pidiendo que libere su pueblo felino o estƔ mirando una paloma
#catsoftwtxt
@kat@yarn.girlonthemoon.xyz Look into using something like pyrra for creating and managing SLO(s) with Prometheus š I use this myself actually, plus I also use HetrixTools for external monitoring with SLO-style measures via status.mills.io š
Z for UTC +00:00- is that allowed in your specs?
Regarding url = I would suggest to only allow one and the maybe add url_old = or url_alt = !?
I'm still not a fan of a DM feature, even thou it helps that i have now been split out into a separate feed file. Instead if would suggest a contact = field for where people can put an email or other id/link for an established chat protocol like signal or matrix.
@bender@twtxt.net I think this would be a good idea as @movq@www.uninformativ.de and @andros@twtxt.andros.dev have done ā
I may even join the experiments if I have any spare time to hack a custom yrand branch and run it up on say something like a yarnexp.mills.io or something š¤
@ You seem to be a bit ahead of your time: https://darch.dk/timeline/conv/jl2mf2a
@andros@twtxt.andros.dev@andros@twtxt.andros.dev i know MVC but i donāt know model view view model what does this meanā¦. i am learning PHP (and a tiny bit of perl scripting) as a mainly ruby girl so mayhaps i am improving but my focus is SERVERS
@ About the URL, since it no longer used for hashing there might be no need to change it. I agree that we keep all the parts that already are out there for the most parts. Instead of a contact field you could also just use links like: link = Email mailto:user@example.dk or link = Signal https://signal.me/sthF4raI5Lg_ybpJwB1sOptDla4oU7p[...]
@andros@twtxt.andros.dev Thanks for consolidating a lot of good ideas. Especially how you have deiced to just extend the mention syntax for location-based treads. This might even be backward compatible with older (pre-yarn) clients.
What about using Z for UTC +00:00- is that allowed in your specs?
Regarding url = I would suggest to only allow one and the maybe add url_old = or url_alt = !?
Iām still not a fan of a DM feature, even thou it helps that i have now been split out into a separate feed file. Instead if would suggest a contact = field for where people can put an email or other id/link for an established chat protocol like signal or matrix.
@andros@twtxt.andros.dev Yup! š
@andros@twtxt.andros.dev Wait, texudus is like compatible fork of twtxt?
@andros@twtxt.andros.dev Programming is art. You become good at art by practising your art. You learn artistic patterns by being inspired by and reading others art works. The most importance however is that you practise your art.
You need break the routine.
I havenāt really done that lately. š¤ Maybe have another go at Rust (given its increasing importance in the Linux kernel)? Or Elixir, yes, I only had some very, very brief contact with it. š¤
I just came across an old forum posting of mine about Prolog. That brought up some memories. Prolog is pretty alien, but I do miss stuff like that because itās so different.
Just thinking out loud here. š
@andros@twtxt.andros.dev @eapl.me@eapl.me Still lots of bugs in my client. š„“ Iāll try to fix it next week.
And yes, using the same timestamp twice will very likely break threads.
¿Me rascas detrÔs de la orejita?
#catsoftwtxt
Sol y caja, ¿qué mÔs se puede pedir?
#catsoftwtxt
@andros@twtxt.andros.dev Alright. š Btw, your feed uses spaces instead of tabs. š
@movq@www.uninformativ.de ok, I have included a small modification in the documentation to allow you to reply in your own thread: https://texudus.readthedocs.io/en/latest/
You can see my reply: https://andros.dev/texudus.txt
Donāt delete anything and give me time to make my modifications to the client.
@andros@twtxt.andros.dev I set up a test feed here:
https://www.uninformativ.de/texudus.txt
I made some preliminary adjustments to my client so that it can work with the different threading model. (And I totally get the concerns, this can be quite a bit of work. Especially in a large code base like Yarn.)
@doesnm@doesnm.p.psf.lt nah, Iām fine without a web ui. But I like what the dev did with the 2009 facebook/VK look, it kind of feels notsalgic. (the tld is a .me not a .com if anyone else wants to take a look atit)