@kat@yarn.girlonthemoon.xyz, see this one, regarding βAnubisβ (which I believe you use, right?): https://github.com/eternal-flame-AD/pow-buster
@lyse@lyse.isobeef.org i dont mind if the hash is not backward compatible but im not sure if this is the right way to proceed because the added complexity dealing with two hash versions isnt justified
regular end users wont care to understand how twt hashes are formed, they just want to use twtxt! so i guess i could work in protecting users from themselves by disallowing post edits on old posts or posts with replies, but iβm not fond of this either really. if they want to break a thread, they can just delete the post (though iβve noticed yarn handling post deletes dubiouslyβ¦)
on activitypub i do genuinely find myself looking through several month or even year old posts sometimes and deciding to edit/reword them a little to be slightly less confusing, this should be trivial to handle on twtxt which is an infinitely simpler specification
@quark@ferengi.one ooh, thanks for catching that! i forgot abt the caddy example when adding the config example
nick is nick bc it is parsed as a nickname just for the instance, though calling it instance_nick would probably be less confusing
[2025/09/11 12:56:01.816] β please set config.host when trying to run "bbycll". How to bypass that tiny hurdle?
Adding too this. The configuration example at the repository reads:
{
"nick": "Example",
"description": "alice's twtxt instance!",
"host": "twtxt.example.com",
"admin": "alice"
}
Would it make more sense changing nick to instance_name or similar? Usually nick is reserved for users, like here, quark. Right? Also, is host the same FQDN to be used while proxying traffic to the application? That is, using the above configuration, itβs Caddy configuration would be:
twtxt.example.com {
encode
reverse_proxy :31212
}
Is that correct?
@prologic@twtxt.net i just added timeline refresh to bbycll and it is so convincing i almost replied to you from there hehe, can i get a link pretty please :o
good afternoon yarnverse i have done nothing productive so far. except edit my fandom site a little bit (i added tag pages!). does that count lol
[2025/09/11 12:56:01.816] β please set config.host when trying to run "bbycll". How to bypass that tiny hurdle?
@bender@twtxt.net as the host (eg twtxt.net) determines the canonical url of the instance in generated feed url metadata as well as every hash of every post made on the instance internally, i added this error message to make sure people donβt accidentally set up their instance on localhost :p for testing i set it to localhost:31212 and protocols to ["http"], itβs a recent addition that could definitely do with documenting in the getting started section
Since Google announced their intentions to heavily limit sideloading on Android, starting end of 2026, Iβve been looking for potential solutions, for this policy change, that threatens the majority of projects I maintain, in some way. Google already killed my browser project years ago, but I have no other choice, than to fight this, any way I can.
The best choice to deal with this, will probably be the Android Debug Bridge, which can be used not only to install apps unrestricted, but also to uninstall, or remove, almost any unnecessary part of the OS. Shizuku, combined with Canta Debloater, is the winning combination for now.
Iβve already removed most Google apps from my device: the annoying AI assistant, the stupid Google app adding the annoying articles, left of your homes screen, Google One, Gboard, Safety appβ¦ itβs amazing, no distracting Google slopware, like in the good old Android 2 days! And I absolutely intend to keep it this way, from now on, no new Google apps or services on my devices, unless Google can give me a good enough reason, to allow them there and whenever the app that verifies signatures, to block installing apps not approved by Google, Iβll just remove it from my device and advocate others do so too.
added opengraph to my blog :D https://bubblegum.girlonthemoon.xyz/articles/underground-soundcloud-remixes
replies and following implemented! next step is further parsing of post contents, rendering threads, and then maybe i can finally start adding remote feedsβ¦! though i kinda wanna redo the whole ui ^^β
Ni Hao; bΔ«ng qΓlΓn!
Iβm just dropping in, to emphasize my love for ice cream and the Chinese crawler bots, allocating their time and resources, towards scraping my humble website.

To show my gratitude, Iβve even added a random little dog generator to https://thecanine.ueuo.com/sparkle.html so that everyone can pick up their own custom dogFT, on their journey through my site.
We use all the Microsoft programs at work - Teams and Outlook especially.
After all kinds of technical problems with Teams, that sometimes go unresolved for over a year, Microsoft shifted their priorities away from fixing things and towards adding an annoying AI Copilot button, that just takes up space and all it does, is loads the website in Teams, so I disabled it. Soon they just add it back, but in a different row of icons, therefore itβs now a different button, you have to disable (I think they added yet another one, to the Teams, on my work phone and I had to disabled that too). Not too long after, the desktop one just enabled itself, because of βan errorβ and I can disable it, but doing so activates a popup, that begs you to turn it back on, every once in a while. You canβt disable the popup and can only click βYesβ or βNot nowβ on it. I still keep it disabled, out of principle, but yesterday I noticed yet another Copilot button, this time in the top right corner of my Outlook and this one cannot be disabled, on the business version of Outlook and even on the personal one, itβs only possible to do it through hidden privacy settings, by prohibiting the program from connecting to Microsoft servers, for extra βfeaturesβ.
Thereβs people complaining about it online, so itβs clear nobody really wants it, but at this point Microsofts position is that you will have at least one useless AI button on your screen, at any given time, and you will be happy. And yes, their AI sucks and if I absolutely have to use AI for something, thereβs already 2 better options, we have access to, at work.
aced pour AD https://github.com/garrettfoster13/aced
@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
ADS time in this TV SHOW: http://i.shibboleths.org Frree static one-page HTML in Netscape Gold Style! Thanks.
@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.
also im thinking about adding a local databse with json to save the entries prev to upload it to the mongodb cluster
i though about adding a regexpr to URL field of the upload command to make strict the url and valid it
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.