@prologic@twtxt.net AHA the .*
entry did the trick! i originally had these rules in there, they were added by default except for the youtube rules:
imgur\.com
giphy\.com
imgs\.xkcd\.com
reactiongifs\.com
githubusercontent\.com
youtube\.com
yt.\be
also oooh the missing feature sounds very handy!
@lyse@lyse.isobeef.org βAdvancedβ, well, probably more βmatureβ. There arenβt a ton of crazy features and that icon thing is the largest code addition in the last 10 years. %)
Speaking of OS/2 β¦ I just realized that Windows 3.x didnβt have icons, either. If Iβm not mistaken, this only got added in Windows 95. In other words, OS/2 had this feature before Windows did, because at least OS/2 2.1 from 1993 had icons. Who would have thunk.
(Now I kind of want to know which system really introduced this feature.)
@aelaraji@aelaraji.com And I read the following funny response to that:
Bluesky: Users verify their age by adding a payment method or uploading a photo ID.
Mastodon: Users verify their age by posting pictures of the vintage computer equipment in their homes.
https://beige.party/@maxleibman/114848276288629121
π
setpriv
on Linux supports Landlock.
Another example:
$ setpriv \
--landlock-access fs \
--landlock-rule path-beneath:execute,read-file:/bin/ls-static \
--landlock-rule path-beneath:read-dir:/tmp \
/bin/ls-static /tmp/tmp/xorg.atom
The first argument --landlock-access fs
says that nothing is allowed.
--landlock-rule path-beneath:execute,read-file:/bin/ls-static
says that reading and executing that file is allowed. Itβs a statically linked ls
program (not GNU ls).
--landlock-rule path-beneath:read-dir:/tmp
says that reading the /tmp
directory and everything below it is allowed.
The output of the ls-static
program is this line:
βrwβrββrββββx 3000 200 07-12 09:19 22'491 β /tmp/tmp/xorg.atom
It was able to read the directory, see the file, do stat()
on it and everything, the little x
indicates that getting xattrs also worked.
3000
and 200
are user name and group name β they are shown as numeric, because the program does not have access to /etc/passwd
and /etc/group
.
Adding --landlock-rule path-beneath:read-file:/etc/passwd
, for example, allows resolving users and yields this:
βrwβrββrββββx cathy 200 07-12 09:19 22'491 β /tmp/tmp/xorg.atom
@prologic@twtxt.net Yeah, this really could use a proper definition or a βmanifestβ. π Many of these ideas are not very wide spread. And I havenβt come across similar projects in all these years.
Letβs take the farbfeld image format as an example again. I think this captures the βspiritβ quite well, because this isnβt even about code.
This is the entire farbfeld spec:
farbfeld is a lossless image format which is easy to parse, pipe and compress. It has the following format:
ββββββββββ€ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Bytes β Description β
β βββββββββͺββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β 8 β "farbfeld" magic value β
ββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ’
β 4 β 32-Bit BE unsigned integer (width) β
ββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ’
β 4 β 32-Bit BE unsigned integer (height) β
ββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ’
β [2222] β 4x16-Bit BE unsigned integers [RGBA] / pixel, row-major β
ββββββββββ§ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The RGB-data should be sRGB for best interoperability and not alpha-premultiplied.
(Now, I donβt know if your screen reader can work with this. Let me know if it doesnβt.)
I think these are some of the properties worth mentioning:
- The spec is extremely short. You can read this in under a minute and fully understand it. That alone is gold.
- There are no βknobsβ: Itβs just a single version, itβs not like thereβs also an 8-bit color depth version and one for 16-bit and one for extra large images and one that supports layers and so on. This makes it much easier to implement a fully compliant program.
- Despite being so simple, itβs useful. Iβve used it in various programs, like my window manager, my status bars, some toy programs like βtuxeyesβ (an Xeyes variant), or Advent of Code.
- The format does not include compression because it doesnβt need to. Just use something like bzip2 to get file sizes similar to PNG.
- It doesnβt cover every use case under the sun, but it does cover the most important ones (imho). They have discussed using something other than RGBA and decided itβs not worth the trouble.
- They refrained from adding extra baggage like metadata. It would have needlessly complicated things.
The lid is on and the first saw brackets are done. Letβs see how impractical they are. I might have to add heavy chamfers to better guide them in.
I added 07 to 11: https://lyse.isobeef.org/tmp/hobelbankschubladen/
Saw this on Mastodon:
https://racingbunny.com/@mookie/114718466149264471
18 rules of Software Engineering
- You will regret complexity when on-call
- Stop falling in love with your own code
- Everything is a trade-off. Thereβs no βbestβ 3. Every line of code you write is a liability 4. Document your decisions and designs
- Everyone hates code they didnβt write
- Donβt use unnecessary dependencies
- Coding standards prevent arguments
- Write meaningful commit messages
- Donβt ever stop learning new things
- Code reviews spread knowledge
- Always build for maintainability
- Ask for help when youβre stuck
- Fix root causes, not symptoms
- Software is never completed
- Estimates are not promises
- Ship early, iterate often
- Keep. It. Simple.
Solid list, even though 14 is up for debate in my opinion: Software can be completed. You have a use case / problem, you solve that problem, done. Your software is completed now. There might still be bugs and they should be fixed β but this doesnβt βaddβ to the program. Donβt use βsoftware is never doneβ as an excuse to keep adding and adding stuff to your code.
@prologic@twtxt.net will do. No worries, not a show stopper. I will suggest that the muted numbered list not be sorted, but latest muted first. That way we have a better idea. Maybe adding timestamps to those too? Just a thought.
Of Pointlessware and CEOs
Had a moment, to check up on some of the companies, I stopped following, get to The Browser Company and see their newest product - itβs just Chrome, with an AI chat window pop-up and thatβs it. Something Canary Chrome, come with already.
I see Theo from T3.gg, making fun of it on YouTube and promoting βhisβ product - an AI chat app, where you can choose from multiple models, by all the popular AI companies. Something I already have a worse version of, at work and I donβt even use it.
Thereβs also an interview, about the future of virtual keyboards, surely this is at least actually a real thing and not more pointless horse shit. I check the website of the keyboard SDK, and itβs around 20 identical apps, that just copy the same keyboard SDK/api and slap chatgpt features on top - in the App Store, these are surrounded by chatgpt clones, that just feed the users prompts, into the real thing and put ads, next to the answers.
Aha! So, @bender@twtxt.net added all the Spanish feeds then!? ]:->
@movq@www.uninformativ.de oh, you bet someone is adding them. Being as we are a small community, I could almost guess who added what. π
@lyse@lyse.isobeef.org oh it wouldnβt be very long, maybe thatβd make for a fun blog post! i just used the same tool that the nerd font people use to add glyphs, but for a βcustom glyph setβ i just added. the whole noto font LMAO
Amsterdam baby!!
just got a very new location added to the bag, Amsterdam.
Amsterdam baby!!
just got a very new location added to the fleet, Amsterdam.
To follow up what I said minutes ago, they donβt even want you to think of the initial idea, they want you to be a mindless organism, the AI algorithm analyses and tells what you should make, down to the script, so that you get the highest number of people possible to click it and see some AI generated advertisement, blended seemly into whatβs no lonher even your work.
https://arstechnica.com/gadgets/2025/05/netflix-will-show-generative-ai-ads-midway-through-streams-in-2026/
https://youtu.be/dGA6sVaGveU
@prologic@twtxt.net @movq@www.uninformativ.de I donβt even think the premise of this makes much sense. If an artist is convinced they cannot compete, with the βAIβ learning models, we already have today, they must have some self esteem issues, strange opinion on what the purpose of art is, or just be someone mindlessly redrawing already established things and not be all that good at it.
It might be connected to some typically non-artists assumption, that the more time and effort the artwork took to accomplish, the more artistic it is - this can be further twisted in these peoples minds, into the βmore pointless detail = more artistic artβ meme. AI often ads pointless and illogical details everywhere, βso itβs obviously better, than the human artist, who drew the originalβ.
Some people just enjoy having the picture they wanted or having the status of an artist to brag about and donβt actually enjoy the artistic process of discovery and small decisions, made while drawing, that shape the outcome into something, only you could have created.
We had sun, clouds, wind, rain and a whole lot of fun on our trip to the Wasserberg. Weβve been out seven hours in total, not bad at all for all those kilometers. We added on some detours to check out a pond Iβve been introduced by a mate a few years back.
After some (expensive) tucker at the Wasserberghaus, we tried to actually visit the summit this time. However, thereβs nothing to see, just a rough logging trail (46-49). That was a dead end, so we had to turn around. It was some nice exploring, but I reckon this was my first and last time up there. :-)
Unfortunately, we didnβt go to the neighboring Fuchseck this time, only the Wasserberg with some extras.
https://lyse.isobeef.org/wanderung-auf-den-wasserberg-2025-05-18/
Buying a TV these days, means trying to avoid endless enshitification:
-Spyware and adware
-Shitty AI upscaling/ frame interpolation
-HW that breaks after 2 - 3 years
-One off OS, dead on arrival
-Android OS, that starts lagging after the third update
-8 buttons worth of ads, on your remote
You probably have to make some kind of a compromise. I thought that was buying from some other brand like Hyundai, but that one also felt into some of those categories and just broke, after less than 3 years of use. At this point Iβll probably go back to LG and hope their HW is still reliable and the rest manageableβ¦ It has AI bullshit and knowing LG, probably some spyware you have to try your best to get rid of, can buy a remote with βonlyβ 2 ads on it, some web-based OS shared between all their TVs, that usually gets 4 - 5 years worth of updates and works decently enough afterwards.
At this point, Iβll probably settle for anything that doesnβt literally fall apart, not even 3 years in, like the Hyundai did.
Iβm thinking about adding one more white guy podcaster into the world (me)
Iβm also thinking of adding eye-off icon next to every Twt that, when clicked, hides that feed (tooltip: βHide this feedβ). This would work with the filters as a βtemporary additive filterβ to restrict/control the current view.
Pascalβs Law
β Read more
slowing working away at my latest code project: learning PHP by recreating the 2000s fandom mainstay known as a fanlisting! itβs been super fun i added a dynamic nav bar and other modifications in the latest commit
fanlistings even to this day rely on old PHP scripts dating back to the early 2000s that need whole ass mySQL or postgres DBs and are incredibly insecure. you can look at them here theyβre like super jank lol itβs sad that new fanlistings have to use them because thereβs no other optionsβ¦.
@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.
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
Iβm with @andros@twtxt.andros.dev and @eapl.me@eapl.me on this one. But I have also lost interest in twtxt lately and currently rethinking what digital tools truly add value to my life. So I will not spending my time on adding more complexity to Timeline
. Still a big thanks to you @prologic@twtxt.net for all the great work you have done and all the nice conversations both here and on our video calls.
@xuu@txt.sour.is Hahaha, thatβs cool! You were (and still are) way ahead of me. :-)
We started with a simple traffic light phase and then added pedestrian crossing buttons. But only painting it on the canvas. In our computer room there was an actual traffic light on the wall and at the very end of the school year our IT basics teacher then modified the program to actually control the physical traffic light. That was very impressive and completely out of reach for me at the time. That teacher pulled the first lever for me ending up where I am now.
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
I will be adding the code in for yarnd
very soonβ’ for this change, with a if the date is >= 2025-07-01 then compute_new_hashes else compute_old_hashes
OpenBSD 7.7 released
Another six months have passed, so itβs time for a new OpenBSD release: OpenBSD 7.7 to be exact. Browsing through the long, detailed list of changes, a few important bits jump out. First, OpenBSD 7.7 adds support for Ryzen AI 300 (Strix Point, Strix Halo, Krackan Point), Radeon RX 9070 (Navi 48), and Intelβs Arrow Lake, adding support for the latest x86 processors to OpenBSD. There seems to be quite a few entries in the list related to power management, from work on hibernation and suspend β¦ β Read more
Today I added support for Letβs Encrypt to eris via DNS-01 challenge. Updated the gcore libdns package I wrote for Caddy, Maddy and now Eris. Add support for yarnβs cache to support # type = bot
and optionally # retention = N
so that feeds like @tiktok@feeds.twtxt.net work like they did before, and⦠Updated some internal metrics in yarnd
to be IMO βbetterβ, with queue depth, queue time and last processing time for feeds.
@prologic@twtxt.net @andros@twtxt.andros.dev You can delete these feeds (created by me):
https://feeds.twtxt.net/project26/twtxt.txt
https://lor.sh/@Katze_942.rss <- iβm added him but canβt find file
the only rss i follow is https://feeds.twtxt.net/posts-from-atdarkcat09atdc09-ru/twtxt.txt
@prologic@twtxt.net why donβt you terminate TLS here? It seems as easy as adding tls
under route
.
MaxAgeDays
configuration at the pod level, that now some profiles are rather empty. This is only because well, they're a bit "inactive" so to speak π£οΈ Not sure what to do about this at the moment... Open to ideas? π‘
yes it used be http://
only and to keep hashes from breaking i added # url = http://...
and now we are stock with it due to the curret specs.
Timeline of Evolution of Twtxt/Yarn.social:
- 2016 β Twtxt created by John Downey: plain text + HTTP = minimalist microblogging
- 2017β2019 β Community builds CLI tools, but adoption remains niche
- 2020 β Yarn.social launched by @prologic@twtxt.net with federation, threading, UI
- 2021β2023 β Pods sync, user mentions, blocking, search, and media support added
- 2024+ β Yarn.social becomes the reference Twtxt platform, with active federated pods
Judge declares Googleβs ad network an illegal monopoly + 2 more stories
Plus, climate change may elevate arsenic in rice and new cellular discovery boosts cancer drugs. β Read more
so i had the idea of adding a page to my otherwise single page girl on the moon personal site that featured my more notable projects, but itβs been hours and i CANβT THINK OF ANYTHING TO ADD THAT I HAVENβT ALREADY MENTIONED. i just host other peopleβs stuff!!!
Google is a monopolist in online advertising tech, judge says
Google acted illegally to maintain a monopoly in some online advertising technology, a federal judge ruled on Thursday, adding to legal troubles that could reshape the $1.86 trillion company and alter its power over the internet. Judge Leonie Brinkema of the U.S. District Court for the Eastern District of Virginia said in a 115-page ruling that Google had broken the law to build its dominance over the largely β¦ β Read more
Ha! I stand corrected, didnβt scrolled long enough. Indeed, it should be added (you will need an account on Millsβ Gitea), noted.
Even though I really do like the shell, I always use Dolphin to mount my digicam SD card and copy the photos onto my computer. I finally added a context menu item in Dolphin to create a forest stroll directory with the current date in order to save some typing:
The following goes in ~/.local/share/kservices5/ServiceMenus/galmkdir.desktop:
[Desktop Entry]
Type=Service
X-KDE-ServiceTypes=KonqPopupMenu/Plugin,inode/directory
Actions=Waldspaziergang;
[Desktop Action Waldspaziergang]
Name=Heutigen Waldspaziergang anlegenβ¦
Icon=folder-green
Exec=~/src/gelbariab/galmkdir "%f"
In order to update the KDE desktop cache and make this action menu item available in Dolphin, I ran:
kbuildsycoca5
The referenced galmkdir
script looks like that:
#!/bin/sh
set -e
current_dir="$1"
if [ -z "$current_dir" ]; then
echo "Usage: $0 DIRECTORY" >&2
exit 1
fi
dir="$(kdialog \
--geometry 350x50 \
--title "Heutigen Waldspaziergang anlegen" \
--inputbox "Neues Verzeichnis in β$current_dirβ anlegen:" \
"waldspaziergang-$(date +%Y-%m-%d)")"
mkdir "$current_dir/$dir"
dolphin "$current_dir/$dir"
This solution is far from perfect, though. Ideally, Iβd love to have it in the βCreate Newβ menu instead of the βActionsβ menu. But that doesnβt really work. I cannot define a default directory name, not to mention even a dynamic one with the current date. (I would have to update the .desktop file every day or so.) I also failed to create an empty directory. I somehow managed to create a directory with some other templates in it for some reason I do not really understand.
Letβs see how that works out in the next days. If I like it, I might define a few more default directory names.
@eapl.me@eapl.me You asked me for private keys for testing purposes. I have added it to the bottom of this page: https://dm-echo.andros.dev/
It will soon be running. It wonβt be long now.
guys omg the people behind pico.sh are so nice ;_; one of the people running it emailed me to let me know i had what was likely a malfunctioning (or well, not working as intended) script that was spawning the same SSH tunnel over and over and they wanted to give me a heads up.
and i felt SO BAD because i worried i was straining their service or something so i disabled my 4 tunnels (they were serving little SSH games and services) and got back to them.
but i just woke up to THE NICEST EMAIL EVER reassuring me that i was actually using it as intended, it was just my script that was having problems, and they even said that if it was intended to work that way it was fine and they just wanted to let me know!
so i restarted the tunnels but have since added lockfiles as safeguards so that when the script is run itβll check if itβs already running :D
Adding to this, we already tried. It didnβt go too well. Slightly relatedβbecause it is a third party βintegrationββI might be a βsmaller groupβ member, but I donβt care much about one-way feeds (mostly RSS from blogs, news articles, etc.) either.
@lyse@lyse.isobeef.org Iβm open to other suggestions π€£ But hopefully both adding the additional prompt, not allowing it to enter shell history and removing from my shell history prevents me from doing such silly things in haste by pressing ^R
and using fuzzy search which if you type fast you sometimes get wrong π
it adds users by finding them in feeds mentioning or following. Your URL is already added.
Hmm i am not sure how you got the URL with users at the end..
@lyse@lyse.isobeef.org you must be loved by all the web developers in town! But ok, I have added all the missing semicolons, that should technically be there, but them not being there, does not make a difference.
Font color change inside every summary element, was a very deliberate choice, to color the text, but leave the arrow black (same as website background). But ok, I rewrote the CSS to hide the arrows and make all summaries white - since this also works better, with some dark theme enforcing browser extensions.
HOWEVER βpβ as a child element of βsummaryβ is a thing, that as far as I know, all browsers respect and if a font color is applied only once, I donβt think it matters, if itβs done through HTML or CSS, you smart ass.
thanks andros!
instead of adding the new twt at the end of the feed, do it at the beginning
The PHP client did that originally, although I didnβt see a real benefit if you useβ¦ a client.
It could help if you read the .txt file through a browser or something. Also, not many clients are prepared to cut the request, and you canβt rely on the file being organized that way, so finally we dropped that feature.
@bender@twtxt.net I taught the whole ecosystem π
@prologic@twtxt.net @eapl.me@eapl.me The question I was asked the most was: How do I discover people?
Someone came up with a fantastic idea, instead of adding the new twt at the end of the feed, do it at the beginning. So you can paginate by cutting the request every few lines.
Thinking about adding a little βfocusβ feature to my window manager: It hides all but one window, no wallpaper, no bars.
It would turn this
https://movq.de/v/a75eb68770/a0.jpg
into this
https://movq.de/v/a75eb68770/a1.jpg
or this
https://movq.de/v/a75eb68770/b0.jpg
into this:
https://movq.de/v/a75eb68770/b1.jpg
π€