@prologic@twtxt.net Where do I stand on “Chat Control”? How long of a response/rant do you want? 😅 It’s a disaster. As I understand it, they want to spy on me directly on my devices before encryption even happens – jfc, no, fuck off. And since there are so many devices, they want to automate the scanning, which is the worst idea you could possibly have.
@movq@www.uninformativ.de Where do you stand on this nonsense? 🧐😆🤣
@bender@twtxt.net I guess most clocks don’t support that. 😅 My wrist watch can do it, you can select it in the menu:
https://movq.de/v/ccb4ffcbc5/s.png
In general, different transmitter means different frequency and different encoding, for example these two:
@klaxzy@klaxzy.net Why, because Germany is now listed as “opposed” on fightchatcontrol.eu? I’m not so sure. This is just one guy (Jens Spahn) saying “no we don’t want it”. That’s not an “official” stance, it’s very fragile and could change any minute. https://netzpolitik.org/2025/eu-ueberwachungsplaene-unionsfraktion-jetzt-gegen-chatkontrolle-innenministerium-will-sich-nicht-aeussern/
@klaxzy@klaxzy.net Fuxk yeah 🙌
@movq@www.uninformativ.de how do you set your clock to use a specific time signal radio station? I have one wall clock in my office, it works great, but no way to set that.
@lyse@lyse.isobeef.org As the kids on imgur say: I always updoot birbs 👍
So green, so many mushrooms. 🤯
@prologic@twtxt.net Oh, I will certainly check this out! Thanks for the tip, mate! <3
@lyse@lyse.isobeef.org Cool! 😎 You might be interested in my own learnings and toying around with building my own container engine / tooling (whatever you wanna call it) box. I had to learn a bunch of this stuff too 😅 Control Groups, Namespaces, Process Isolation, etc.
@prologic@twtxt.net Oh, that’s cool! :-) Feeding magpies seems to be an Aussie thing, the Cutting Edge Engineering Australia videos usually also include a cute magpie feeding clip.
@bender@twtxt.net Off you go to the magpie hunt! We wanna see Florida pies!
@bender@twtxt.net See the problem is you don’t live in the “busy” enough 😂 There are roaches everywhere here! 🤣 LOL snakes too! Plovers, Magpies, Crows, Spiders, even Deer for fucks sake 😂
@prologic@twtxt.net I wouldn’t know where to look for little cockroaches, or roaches, in general! LOL. We buy seeds to feed them. But not around the neighborhood, otherwise we would have a problem. 😅
@bender@twtxt.net We have quite a few that are basically part of our friendly neighborhood. They knew we won’t chase them aware, scare them, etc. In fact some of us find little cockroaches to feed them, tose ‘em up in the air and watch them sweep in and grab the little suckers 🤣
@prologic@twtxt.net something happened on this one’s neck, right? Or was it a blow of wind that ruffled the feathers?
@lyse@lyse.isobeef.org @prologic@twtxt.net They’re both great 😃
@lyse@lyse.isobeef.org Here’s my magpie 🤣 
@alexonit@twtxt.alessandrocutolo.it Thanks mate! Ah cool, now I’m curious, what did you make? :-)
You used the rubber hammer to fold the metal, not to set the rivets, right? :-? I glued cork on my wooden mallet some time ago. This worked quite good for bending. But rubber might be even better as it is a tad softer. I will try this next time, I think I have one deep down in a drawer somewhere.
@zvava@twtxt.net No HEAD requests, but regular GETs with If-Modified-Since request headers if possible: https://git.mills.io/yarnsocial/yarn/src/branch/main/internal/fetcher.go#L270
@prologic@twtxt.net i’m guessing then a HEAD request is sent every 5m, and then the feed is fetched if the headers are different?
also what would be the cases where a feed would be fetched more than every five minutes? :o
@lyse@lyse.isobeef.org Great job!
I suggested it because I did it in the past, but never used it on bigger works.
In my case I did it exclusively on really small projects and used a thin rubber head hammer to prevent deforming the metal.
@movq@www.uninformativ.de Too bad. :-/
@movq@www.uninformativ.de Yep, there’s python3-tk and a bunch more packages with extensions.
I was always under the wrong impression that Tkinter is bundled with Python.
It should be. Maybe your distro splits it off. 🤔
@lyse@lyse.isobeef.org Nope. I think they stayed only one year. 😢
@movq@www.uninformativ.de Nice! Are there still chicken on this field?
@movq@www.uninformativ.de I never programmed with Tkinter myself and it’s been ages that I ran a program which used it. I always thought that it looks awful. But maybe there are nicer themes these days. I just wanted to give the demo python3 -m tkinter a try, but this module doesn’t exist. I was always under the wrong impression that Tkinter is bundled with Python.
@movq@www.uninformativ.de damn! those are some fine looking chickens 😆
@prologic@twtxt.net Whoop whoop 🥳
@lyse@lyse.isobeef.org Xfce is nice, but it’s also mostly GTK. I don’t really know the answer yet. For now, I’ll just avoid anything that uses GTK4.
For my own programs, I might have a closer look at Tkinter. I was complaining recently that I couldn’t find a good file manager, so it might be an interesting excercise to write one in Python+Tkinter. 🤔 (Or maybe that’s too much work, I don’t know yet.)
@movq@www.uninformativ.de I was never a fan of GTK, because coming from KDE, it didn’t offer remotely as much of customizability. What are you switching to, Xfce?

@zvava@twtxt.net feeds are fetched at least every 5m (if they’ve changed)
@zvava@twtxt.net yarnd fetches the feeds roughly every ten minutes:
grep twtxt.net www/logs/twtxt.log | cut -d ' ' -f1 | tail -n 20
2025-10-04T07:00:45+02:00
2025-10-04T07:10:26+02:00
2025-10-04T07:22:43+02:00
2025-10-04T07:30:45+02:00
2025-10-04T07:40:48+02:00
2025-10-04T07:52:59+02:00
2025-10-04T08:00:07+02:00
2025-10-04T08:13:33+02:00
2025-10-04T08:23:13+02:00
2025-10-04T08:31:22+02:00
2025-10-04T08:41:29+02:00
2025-10-04T08:53:25+02:00
2025-10-04T09:03:31+02:00
2025-10-04T09:11:42+02:00
2025-10-04T09:23:11+02:00
2025-10-04T09:29:49+02:00
2025-10-04T09:36:17+02:00
2025-10-04T09:46:33+02:00
2025-10-04T09:58:40+02:00
2025-10-04T10:06:54+02:00
I suspect that the timing was just right. Or wrong, depending on how you’re looking at it. ;-)
@itsericwoodward@itsericwoodward.com @bender@twtxt.net this is vaguely concerning…does yarn refresh feeds every minute or two? or is there some special “notify twtxt.net to refresh my feed” that i don’t know about
@prologic@twtxt.net woohoo! Take that, micro.crap! :-D
@movq@www.uninformativ.de exactly! 🤣
@bender@twtxt.net Who?
@bender@twtxt.net I don’t think so, but I might give it a shot when the “official” drivers no longer work at all.
@itsericwoodward@itsericwoodward.com hmmm, what was this, an edit, a deletion?

@movq@www.uninformativ.de can’t you use generic drivers? I did that for an enterprise copier/printer/scanner we used to have at work, and it worked just fine!
@zvava@twtxt.net agreed. I think display_name will be redundant, and add to the “busy” factor. That is, the opposite of simplicity.
@lyse@lyse.isobeef.org lol 😅
@lyse@lyse.isobeef.org Bahahahaha 🤣😆
Sieht ganz so aus, als hätte die gute @kat@yarn.girlonthemoon.xyz ihre Büchse mit in den Kurort Bad Gateway genommen.
Sorry, this pun only works in German, where “Bad” means spa and is used as prefix for spa towns.
@movq@www.uninformativ.de It completely escapes me, too. I will never understand it, but people are just wired very differently.
Relevant film: https://www.youtube.com/watch?v=YYNbSuMLZZg
@movq@www.uninformativ.de Yeah, the lighting needs to be right in order to make them really pop like this. I got lucky today. :-)
@lyse@lyse.isobeef.org Awwww! I’ve never noticed their tail feathers being so green. 🤯
@lyse@lyse.isobeef.org Yeah, it’s probably not black and white. (I have no idea why you would connect a bloody light bulb to your WiFi …) But I do get the impression that there are way more “neo-luddites” that 20 years ago. 😅
Waste paper, like an opened envelope, suits a shopping list perfectly fine.
Indeed, I’m drowning in this stuff and I throw it away anyway, so I might just use it.
You’ve got a nice handwriting, I like it.
Thanks. 😅 (It used to be horrible. Gosh, the teachers scolding me in school … Bah. 😂)
@movq@www.uninformativ.de Not sure, if this observation is correct. I know so many techies who also use every latest shit and automate their homes which is scary as hell to me.
@alexonit@twtxt.alessandrocutolo.it I just checked my local hardware store next town and 4mm brass rod is the closest I find.
@lyse@lyse.isobeef.org I think you should be able to find some even in general stores in the hardware section.
@movq@www.uninformativ.de No doubt, some things are just so much better the low-tech way. Waste paper, like an opened envelope, suits a shopping list perfectly fine. You’ve got a nice handwriting, I like it.
@thecanine@twtxt.net Oh no, the poor crocodile is struck by lightning!
Hello again everyone! A little update on my twtxt client.
I think it’s finally shaping a bit better now, but… ☝️
As I’m trying to put all the parts together, I decided to build multiple parallel UIs, to ensure I don’t accidentally create a structure that is more rigid than planned.
I already decided on a UI that I would want to use for myself, it would be inspired by moshidon, misskey and some other “social feeds” mock-ups I found on dribbble.
I also plan on building a raw HTML version (for anyone wanting to do a full DIY client).
I would love to get any suggestions of what you would like to see (and possibly use) as a client, by sharing a link, app/website name or even a sketch made by you on paper.
I think I’ll pick a third and maybe a fourth design to build together with the two already mentioned.
For reference, the screens I think of providing are (some might be optional or conditionally/manually hidable):
- Global / personal timeline screen
- Profile screen (with timeline)
- Thread screen
- Notifications screen or popup (both valid)
- DM list & chat screens (still planning, might come later)
- Settings screen (it’ll probably be a hard coded form, but better mention it)
- Publish / edit post screen or popup (still analysing some use cases, as some “engines” might not have direct publishing support)
I also plan on adding two optional metadata fields:
display_name: To show a human readable alternative for a nick, it fallback tonickif not defined
banner: Using the same format asavatarbut the image expected is wider, inspired by other socials around
I also plan on supporting any metadata provided, including a dynamically parsable regex rule format for those extra fields, this should allow anyone to build new clients that don’t limit themselves to just the social aspect of twtxt, hoping to see unique ways of using twtxt! 🤞
@lyse@lyse.isobeef.org Finally! The end is near! Rejoice! \o/
@zvava@twtxt.net Hm, I tried with https://www.uninformativ.de/twtxt.txt#:~:text=2025-09- and my Firefox 143 didn’t like it. https://www.uninformativ.de/twtxt.txt#:~:text=2025%2D09%2D worked. 🤔
@thecanine@twtxt.net content warning please! I had to go home and change, if you catch my drift. LOL. Well done!
Spooky season is upon us, so I can take a month break, from being a paper clip.

@movq@www.uninformativ.de I wish I could truly say that. :-D
url metadata field unequivocally treated as the canon feed url when calculating hashes, or are they ignored if they're not at least proper urls? do you just tolerate it if they're impersonating someone else's feed, or pointing to something that isn't even a feed at all?
(#abcdefghijkl https://example.com/tw.txt#:~:text=2025-10-01T10:28:00Z), because it can be simply hacked in to clients currently on hashv1 and provides an off-ramp to location-based addressing
I like that property (an off-ramp to location-based addressing), so I think I could live with that approach. ✅
(I’m not sure why we’re using text fragments, though. Wouldn’t that link to the first occurence of 2025-10-01T10:28:00Z? That’s not necessarily correct. And, to be proper URLs that Firefox and Chromium understand, it would also need to be written as 2025%2D10%2D01T10:28:00Z. The dash carries meaning, sadly. I think all this just creates needless complication. How about we just go with https://example.com/tw.txt#2025-10-01T10:28:00Z?)
@aelaraji@aelaraji.com, I mean to follow up here on the brief exchange we had on irc.mills.io, but I forgot. Never too late, so here it goes:
18:16 <aelaraji> quark 🙏 much appreciated but it won't be necessary, since there isn't much to miss out on in most of where I hang out, so I could just disconnect and spare everyone else the noise
18:17 *** aelaraji (aelaraji@776014f5a3edd32f1ed19658b7b85c8c655945b0feacaedd92fe60e61a3c0ae2) has quit (/ME goes "yeeeeet..!")
18:18 <quark> No noise for me.
18:18 <quark> It’s all good.
18:18 <quark> What would IRC be without on/offs?
18:19 <quark> Preeeety boring!
18:19 <quark> Ah, he was gone.
18:19 <quark> Well, I will twtxt this to him. LOL.
Thanks, @alexonit@twtxt.alessandrocutolo.it! Yeah, this classic rivet is a good, yet laborous alternative. I don’t mind the work, I just don’t have any copper at hand. I might give this some more thought, though.
url metadata field unequivocally treated as the canon feed url when calculating hashes, or are they ignored if they're not at least proper urls? do you just tolerate it if they're impersonating someone else's feed, or pointing to something that isn't even a feed at all?
@zvava@twtxt.net My clients trusts the first url field it finds. If there is none, it uses the URL that I’m using for fetching the feed.
No validation, no logging.
In practice, I’ve not seen issues with people messing with this field. (What I do see, of course, is broken threads when people do legitimate edits that change the hash.)
I don’t see a way how anyone can impersonate anybody else this way. 🤔 Sure, you could use my URL in your url field, but then what? You will still show up as zvava in my client or, if you also change your nick field, as movq (zvava).
@alexonit@twtxt.alessandrocutolo.it Hahaha, that made me laugh real good. :-D I find it always surprising what collects in a short amount of time.
(#abcdefghijkl https://example.com/tw.txt#:~:text=2025-10-01T10:28:00Z), because it can be simply hacked in to clients currently on hashv1 and provides an off-ramp to location-based addressing (though i still think the format should be changed to smth like #<abc... http://example.com/...> so it's cleaner once we finally drop hashes)
@zvava@twtxt.net Mixing both addressing schemes combines the worst of both worlds in my opinion. Please don’t do that.
url metadata field unequivocally treated as the canon feed url when calculating hashes, or are they ignored if they're not at least proper urls? do you just tolerate it if they're impersonating someone else's feed, or pointing to something that isn't even a feed at all?
@zvava@twtxt.net Yes, the specification defines the first url to be used for hashing. No matter if it points to a different feed or whatever. Just unsubscribe from malicious feeds and you’re done.
Since the first url is used for hashing, it must never change. Otherwise, it will break threading, as you already noticed. If your feed moves and you wanna keep the old messages in the same new feed, you still have to point to the old url location and keep that forever. But you can add more urls. As I said several times in the past, in hindsight, using the first url was a big mistake. It would have been much better, if the last encountered url were used for hashing onwards. This way, feed moves would be relatively straightforward. However, that ship has sailed. Luckily, feeds typically don’t relocate.
(#abcdefghijkl https://example.com/tw.txt#:~:text=2025-10-01T10:28:00Z), because it can be simply hacked in to clients currently on hashv1 and provides an off-ramp to location-based addressing (though i still think the format should be changed to smth like #<abc... http://example.com/...> so it's cleaner once we finally drop hashes)
@zvava@twtxt.net the second format (the one you think should be changed to), is it backwards compatible to what’s currently in place? I believe the first one would be.
url metadata field unequivocally treated as the canon feed url when calculating hashes, or are they ignored if they're not at least proper urls? do you just tolerate it if they're impersonating someone else's feed, or pointing to something that isn't even a feed at all?
@alexonit@twtxt.alessandrocutolo.it prologic has me sold on the idea of hashv2 being served alongside a text fragment, eg. (#abcdefghijkl https://example.com/tw.txt#:~:text=2025-10-01T10:28:00Z), because it can be simply hacked in to clients currently on hashv1 and provides an off-ramp to location-based addressing (though i still think the format should be changed to smth like #<abc... http://example.com/...> so it’s cleaner once we finally drop hashes)
@lyse@lyse.isobeef.org I can suggest you a trick to do a “cold” welding.
Using a copper wire or a similarly malleable material, pass it through a drilled hole, hammer it on one end until flat, then do the same on the other side.
It does the same job of a rivet but it’s flatter and look nicer on both sides, it’s of course weaker but still strong enough for small objects.
It’s sometimes used to reduce risk of deformities due to heat in hand-crafted jewelry and to reduce costs of small tools.
@movq@www.uninformativ.de Same 👌
@lyse@lyse.isobeef.org Just as planned! 😅
@itsericwoodward@itsericwoodward.com (I confess, my brain pronounced it as “TwitStorm”. 😂)
Thank you, @alexonit@twtxt.alessandrocutolo.it! It’s not sealed at all. If you were pouring in a liquid, it would run out on all four corners. It’s just folded over and carefully hammered shut as best as possible. 03 is a bit blurred, but you can see the tab from the right (the short side) tucking in on the left (the long side). The hem on top clamps it in place fairly decently.
I decided against blind rivets, because they leave ugly looking and sharp backsides, which can also interfer with the contents of the box. However, they would be an easy solution to make the corners more rigid and prevent any movement from the short sides.
Unfortunately, I can’t weld or solder, so that’s not an option. It would be the by far best solution. I wanna learn it one day, though.
Yes, Ken is a really great dude. He’s the reason I gave this a shot in the first place. :-)
@itsericwoodward@itsericwoodward.com No worries, all good, mate! We all have to start somewhere. Other software requests my feed several orders of magnitude more often.
I can confirm, the User-Agent header appears to be fixed. \o/
Two other things I noticed, though:
There’s now an
OPTIONSrequest for my feed coming from something that claims to be Firefox, pointing to your feed URL in the query. No clue what this is about. In any case, it’s rejected with a405 Method Not Allowed.Not that these few requests bother me at all, but you might wanna implement caching next with either the
If-Modified-SinceorIf-None-Matchrequest headers. This way, if the feed hasn’t changed, the web server can reply with a304 Not Modifiedand no body at all, saving unnecessary traffic. But again, this is really not an issue for me at all. I just wanted to make sure you’re aware of it, that’s all. It might be even already on your agenda. Or you might decide to never do anything about it, which is also fine for me. :-)
@bender@twtxt.net Yes! What you’re seeing in the demo is just demoing the routes file and redirects, etc/. Pathing more.
@alexonit@twtxt.alessandrocutolo.it so, a PWA, right?
@prologic@twtxt.net ready, set, goooooooo!
Hi everyone, here’s a little introduction of my twtxt client (still WIP).
The client I’m developing is a single tenant project that runs entirely in the browser (it might use an optional backend).
It’s entirely based on native web-components and vanilla JS, it is designed to act closer to a toolkit than a full-fledged client, allowing users to “DIY” their own interface with pure html or plain javascript functions.
Users can also build their own engines by including a global javascript object that implement the defined internal API (TBD).
I’m planning to build a system that is easy enough to build and use with any skill level, using only pure html (with a homebrew minimal template engine) or via plain JS (I’ll be also providing some pre-made templates too).
Everything can be self-hosted on any static hosting provider, this allows to spread twtxt within communities like Neocities and similarly hosted websites (basically any Indieweb/Smallweb/Digital garden website and any of the common GitHub/Lab/Berg/lify Pages).
It will be probably named something like TxtCraft or craf.txt but I’m not really sure yet… 🤔 (Maybe some suggestions could help)
I’m still in the experimental phase, so there’s no decent source-code to share yet, but it will soon enough!
@lyse@lyse.isobeef.org Beautiful handwork, how did you seal the corners? I don’t see and hole or anything.
BTW, That Sheet Metal Dude is something else himself, skilled enough to teach others, can work properly with self-imposed contraints, care about safety and is humble enough to be wiling to learn from others, a true craftman worthy of respect.
@movq@www.uninformativ.de Yeah I was gonna say 😅 The problem isn’t that bad 🤣 But still we should fix this soon™ 🔜
@prologic@twtxt.net I checked a while a ago and there were, like, 3-5 collisions or something like that. Not that many. 🤷 I have to specifically look for them – I don’t notice it in normal operation.
@movq@www.uninformativ.de You were seeing that mayn hash collisions for you to notice this? 😱
@bender@twtxt.net I’ve made several improvements today, tightened up the line height and density of the text plus a few other nice things too! I think I’m ready to start migrating my blog over to this 😅

@bender@twtxt.net I agree ! I reckon the line height could be a bit smaller 👌
@prologic@twtxt.net it is looking good! On mobile, I find that the line height is too large for my liking, and that text takes too much space. I would like it a bit more dense. But that’s just my taste.
I haven’t checked in desktop; I try not to touch desktop on weekends. 😂
groff --version)?
@movq@www.uninformativ.de It’s an ancient 1.22.4. :-)
@lyse@lyse.isobeef.org That looks like an older bug report. Which groff version is that (groff --version)?
@lyse@lyse.isobeef.org Very cool! 😎
@movq@www.uninformativ.de I got an empty line through the table, similarly to one of the linked bug reports, just at a different location:
https://lyse.isobeef.org/tmp/screenshot-2025-09-27-13-56-13.png
@bender@twtxt.net @movq@www.uninformativ.de Thank you! Not sure what I end up putting in there, but I’m sure I will find some tools to go in. :-)
Yes, this was a flat piece of sheet metal. It went together like a cardboard box, just much slower and with timbers clamped down to get a straight folding line. I don’t have a sheet metal brake, so I just carefully hammered the piece bit by bit. Like in this video by the Sheet Metal Dude: https://www.youtube.com/watch?v=WYgEfWEMXk0
@prologic@twtxt.net No, this is a Linux manpage from the man-pages project: https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/man/man7/ascii.7
I do have an idea what’s going on. Could be an unfortunate interaction between the table preprocessor tbl and the man macro package. 🤔
@movq@www.uninformativ.de Is this for your own OS? 🤔
@lyse@lyse.isobeef.org Not bad. 🤔 So this started out as a flat sheet and then you cut and folded it, like paper (more or less)?