@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)
@andros@twtxt.andros.dev You know, Iād really love to see how/if location-based addressing works in practice. I might fork jenny to judy and run both things in parallel for a while ⦠š¤
The main reason I named my new pet machine Ephemera, is because I donāt trust SSD/NVMeās ⦠itās always just a matter of time before everything goes to shā¦rimps.
ā`
$ mail
[ā¦]
The following warning/error was logged by the smartd daemon:
Device: /dev/nvme0, number of Error Log entries increased from 1587 to 1590
[ā¦]
āā`
7 to 12 and use the first 12 characters of the base32 encoded blake2b hash. This will solve two problems, the fact that all hashes today either end in q or a (oops) š
And increasing the Twt Hash size will ensure that we never run into the chance of collision for ions to come. Chances of a 50% collision with 64 bits / 12 characters is roughly ~12.44B Twts. That ought to be enough! -- I also propose that we modify all our clients and make this change from the 1st July 2025, which will be Yarn.social's 5th birthday and 5 years since I started this whole project and endeavour! š± #Twtxt #Update
that said, and reading to @sorenpeter@darch.dk and @andros@twtxt.andros.dev I have new thoughts. I assume that this wonāt change anyoneās opinions or priorities, so it makes no harm sharing them.
Itās always tempting to use something that already exists (like X, Masto, Bsky, etc.) rather that building anything through effort and disagreement until reaching to something useful and valuable together. A āsocial serviceā is only useful if people is using it.
Iāll add that I havenāt lost interest on the āhackyā part of twtxt about developing tools, protocols, and extensions as a community. Itās the appealing part! Itās a nice hobby to have, shared with random people across the world.
But this is not the right way for me, and makes me feel that Iām unwelcome to propose something different (after watching replies to my previous twt). Feels like āIf you donāt agree, you are free to leave, weāll miss you.ā Naah, not cool. Iāve lived that many times before, and nowadays I donāt have enough spare time and energy for a hobby like that.
Letās see what happens next with the micro-community!
@andros@twtxt.andros.dev what makes Kagi āthe best search engineā? It is premium, alright. Allegedly you donāt get ads, but pay up-front for it, monthly.
@andros@twtxt.andros.dev@andros@twtxt.andros.dev itās epic!
7 to 12 and use the first 12 characters of the base32 encoded blake2b hash. This will solve two problems, the fact that all hashes today either end in q or a (oops) š
And increasing the Twt Hash size will ensure that we never run into the chance of collision for ions to come. Chances of a 50% collision with 64 bits / 12 characters is roughly ~12.44B Twts. That ought to be enough! -- I also propose that we modify all our clients and make this change from the 1st July 2025, which will be Yarn.social's 5th birthday and 5 years since I started this whole project and endeavour! š± #Twtxt #Update
@andros@twtxt.andros.dev @eapl.me@eapl.me @sorenpeter@darch.dk Sad to see you go. š«¤