In #Magic last night, I debuted my new #Dune deck with an underwhelming performance - perhaps unsurprisingly for a desert-focused deck, I faced a real drought, starting the game with only 1 land in hand (even after a mulligan) and not pulling another land until turn 4(!). Because of our house starting mana, I wasnāt totally sunk, but everything I got out was just luck. I did die last thanks to my big wurms (so I guess I was 2nd place?), but still⦠underwhelming.
For game 2, I wanted to bring the thunder (especially after my pitiful performance last week), so I dusted off my Night of 1000 Squirrels deck (headed by the infamous Chatterfang, Squirrel General). By turn 3, the #squirrel army was forming, and thanks to well-timed casts of Fog and Make a Stand, the squirrels managed to overrun everyone just a few turns later.
Another fun night overall. I wonāt be able to play for the next few weeks, so Iām glad this one ended with a win. š #mtg
@GabesArcade@gabesarcade.com Not sure if @mariam@twtpub.com will ever see or respond to our welcomes tbh š¢ I caught the new user trying out the Twtxt App 4 days too left š¤¦āāļø ā I think I need to make some improvements to the app, some nudges, something to encourage users to stick around? Maybe some periodic push notifications? š¤
I finally managed to get back out disc golfing today at Vietnam Veterans Park and had a good time despite losing a brand new disc on hole 3 (on its 3rd throw ever, my glow-in-the-dark Lynx disappeared into an overgrown creek-bed and was swallowed by the underbrush). After my buddy lost a disc on hole 4, we were kinda demoralized and both threw for crap the rest of the course, but it was still a nice day to be slinginā in the sunā¦

I am sooooooooooooooooooooooooooooooooooooooooooooooooOOOOOOOOOOOOOOoooooooooooooooo tired of āfast-movingā software. ruff changed a ton of stuff and now all my code bases āneed fixingā. Blah.
And SemVer is worth nothing if your 4 year old program with over 16ā000 commits is still at āversion 0.xā. Blah!
Everything is horrible.
i think there should be at least 4 we know of right?
So just because I enjoy this kind of thing (looking into laws and trying to understand themā¦):
GDPR is about roles, not ownership
Thereās no property right in personal data under GDPR. The whole regime hangs on three roles:
- Data subject ā the person the data is about.
- Controller (Art. 4(7)) ā āthe natural or legal person ⦠which, alone or jointly with others, determines the purposes and means of the processing of personal data.ā
- The rights in Arts. 16 and 17 are exercised by a data subject against a controller. They compel a third party to rectify or erase. They are not self-executing duties that a piece of software must expose.
Thatās the key. In your architecture, for a userās own posts about themselves sitting in their own feed on their own device:
- the user is the data subject, and
- the user is also the only person ādetermining the purposes and meansā of that data.
There is no third party controller to compel. The āright to erasureā is a right to make someone else delete ā and there is no someone else. It is satisfied the instant the user can change the file. A UI button is a convenience, not a legal requirement. Omitting it removes zero rights, because the data is a plain-text file the user can edit or delete by any means ā editor, sed, git, their file manager. Full practical control is retained; nobody is being denied anything by anyone.
Yeah, lol, fuck off. Tried to reproduce that hashing issue, thus playing around with Go a little bit. And what did I find?
$ tree ~/.config/go
/home/user/.config/go
āāā telemetry
āāā local
āĀ Ā āāā asm@devel-devel-linux-amd64-2026-07-14.v1.count
āĀ Ā āāā compile@devel-devel-linux-amd64-2026-07-14.v1.count
āĀ Ā āāā go@devel-devel-linux-amd64-2026-07-14.v1.count
āĀ Ā āāā link@devel-devel-linux-amd64-2026-07-14.v1.count
āĀ Ā āāā upload.token
āĀ Ā āāā weekends
āāā upload
4 directories, 6 files
It collects and uploads ātelemetryā now.
No.
(Donāt tell me how I can turn that off. Not interested. This is a compiler and it wants to track me, without asking for consent. Thatās a no-go.)
š„³ Finally! After nearly 4 years, yarnd v0.16.0 āSilver Sojournerā is out! š Twt Hash v2, SQLite FTS5 search, HTMX-powered UI, first-time setup wizard and literally hundreds of bug fixes š
Release notes: https://git.mills.io/yarnsocial/yarn/releases/tag/0.16.0
Upgrading is fully automatic ā the Twt Hash v2 migration re-fetches all feeds on first start, so expect the first cycle to be a bit heavier. Images on Docker Hub as prologic/yarnd:0.16.0 š
cc @kat@yarn.girlonthemoon.xyz @abucci@anthony.buc.ci @shinyoukai@yume.laidback.moe @eldersnake@we.loveprivacy.club š
Windows NT 4 didnāt have a Device Manager. You know, this thing right here that got introduced with Windows 95:

And thatās super awkward in NT4.
You know what doesnāt have a Device Manager, either? Linux. Why? š¤ Isnāt this one of the most useful system tools? It gives you an overview of the devices in your system and tells you which driver is used for them. Linux could really use such a tool, I think? š¤
(There are programs like āhardinfoā and I remember ancient KDE providing such a tool, but theyāre all an afterthought. Hardly integrated into the overall system.)
@GabesArcade@gabesarcade.com The no-JS part is one thing, but you also have to disable the (nowadays common) forced-HTTP-to-HTTPS-redirect, because those old browsers canāt do modern crypto. And make sure that your webserver serves the correct page even if no Host header is sent by the client. And donāt even think about serving UTF-8 or even just putting utf-8 in the content type. š
And for the JPEG thumbnails I pass a special flag to ImageMagick so that IBM Web Explorer from OS/2 wonāt trip. 𤣠And always use link rel="stylesheet" for CSS, because some browsers render inlined CSS as literal text. And ⦠probably more that I forgot by now. š
@david@daiwei.me Not sure, actually. Letās see. Those are the ones where I still have the original disks (or have bought them on eBay again):
- SuSE Linux 6.4 (itās a massive 7 CD distro with a huge manual, best thing ever)
- OS/2 2.1
- OS/2 Warp 3 (red and blue spine because
$reasons)
- OS/2 Warp 4
- PC DOS 7
- MS-DOS 6.22
- Windows 3.1
- Windows for Workgroups 3.11
- Windows 95 C
- Windows 98
- Windows NT 4 Workstation (still in the mail, though š
)
- Windows 2000
- Windows XP Professional (last Windows I ever used on my private PCs)
(Plus a few āclassicā office products as can be seen here: https://movq.de/blog/postings/2024-05-23/0/POSTING-en.html )
Okay, wow. Windows NT 4 wasnāt part of my timeline back then, so this is the first time Iām seeing it in action. And this thing came with IE 2, which Iāve also never seen before. (Thatās interesting, because I remember using IE even on Win 3.x, but apparently that was already IE 3?)
It also makes me really happy to see my website work in these old browsers. Fullscreen images are ābrokenā because those are PNG or WebP, but the rest works just fine. š„³
Interesting, HTTPS is almost twice as slow as plain HTTP on my server (~72 ms vs. ~135 ms):
$ hyperfine -r 50 "curl -so /dev/null 'http://movq.de/blog/postings/2024-05-23/0/t/word11a.jpg.jpg'"
Benchmark 1: curl -so /dev/null 'http://movq.de/blog/postings/2024-05-23/0/t/word11a.jpg.jpg'
Time (mean ± Ļ): 72.7 ms ± 17.2 ms [User: 6.2 ms, System: 4.8 ms]
Range (min ⦠max): 49.5 ms ⦠99.7 ms 50 runs
$ hyperfine -r 50 "curl -so /dev/null 'https://movq.de/blog/postings/2024-05-23/0/t/word11a.jpg.jpg'"
Benchmark 1: curl -so /dev/null 'https://movq.de/blog/postings/2024-05-23/0/t/word11a.jpg.jpg'
Time (mean ± Ļ): 135.5 ms ± 28.9 ms [User: 17.8 ms, System: 5.6 ms]
Range (min ⦠max): 93.2 ms ⦠198.5 ms 50 runs
Ran 4.5 km (2.8 miles) at the lake, middle of the day, 31 degrees! Iām a glutton for punishment.
The newsletter feature coming with Mastodon 4.6 also looks very interesting. Could be a good starting point for users who donāt want to create an account but follow users. Maybe then the next step is to eventually create an account.#mastodon
Version 4.6 of Mastodon Collections introduces lists of users to make it easier to find accounts on specific topics.https://maurice-renck.de/en/blog/2026/mastodon-collections
In Magic today, the Phyrexian Invasion failed in the first game, but the second game was EPIC!
I played my (unlisted) Dragons 2: Draconic Boogaloo deck, andā¦
Turn 1: Nothing special
Turn 2: Miirym (when a dragon enters, copy it)
Turn 3: Tiamat (choose 5 dragons from deck, put in hand)
Turn 4: Klauth (when dragons attack, create mana equal to their total power)
I attacked with all 5 dragons, which made 28 mana x2 = 56(!) mana.
Then (still turn 4) I played Scourge of Valkas (when a dragon enters, deal damage to target equal to number of dragons) + 5 other dragons, dealing 6 + 2 x (7+8+9+10+11+12+13+14+15+16+17) = 270(!) direct damage (more than double enough to kill the other 3 players).
Damn fine win, if I do say so myself.
Every now and then, I think that I have carefully proof-read my message enough times and hit the āAdd messageā button in tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up ttās cache. This is rather tidious:
- Recall the
sqlitebrowser ~/.local/share/twtxt/tt2.sqlitefrom my shell history.
- Switch to the āBrowse dataā tab.
- Go to the
messagestable and wait a second or two until itās loaded.
- Sort by the
created_atcolumn twice, so that I get descending order.
- Select the first message, which is typically the one in question.
- Find the āRemove currently selected rowā button in the tool bar.
- Commit the changes.
- Close sqlitebrowser.
So, I finally implemented the removal of messages from the cache in tt. I can now hit d and confirm the removal. Bam! Should have done that ages ago!

Next up is the search, I think.
@movq@www.uninformativ.de Exactly! :-D
I just came across these two covers which stood out to me:
- https://www.youtube.com/watch?v=tVvhHydubR0
played a bit faster, and faster is almost always better
- https://www.youtube.com/watch?v=rpwGUx0Sz_4
a choireās polyphony usually makes things automatically better
Installing OS/2Warp 4 in 86Box as we speak⦠Why? Because I can!
@klaxzy@klaxzy.net twtstrm/0.4.0 is from Eric. The getwtxt-ng/dev seems to be this.
what is the user-agent name of the crawler that pulls the tweets here on twtxt.net? i am seeing getwtxt-ng/dev and twtstrm/0.4.0 in the logs
@lyse@lyse.isobeef.org 4 is a keeper! Wish it was landscape, perfect for a wall then. :-P
I won our only game of Magic for this week with my (yet-to-be published) āBolas Triumphantā deck: 5 players over 3 hours, including 4 board wipes (one of which came from my Nicol Bolas, God-Pharaoh), and I even got to cast Omniscience via a Fae of Wishes. I canāt speak for everyone, but I know I had a good time. š
What do the Gopher Troopers think of the following? The Gopher protocol is a nearly-forgotten network protocol from the early 1990s, designed to serve and navigate text-based menus and documents over the Internet. While itĀs far less common than HTTP/HTTPS today, there are still some security risks associated with Gopher and Gopher space. LetĀs break them down carefully: 1. Lack of Encryption Problem: Gopher was designed long before widespread use of SSL/TLS. All dataĀincluding credentials, file transfers, and menu selectionsĀis transmitted in plaintext. Impact: Anyone intercepting traffic (e.g., via a network sniffer, public Wi-Fi, or a compromised router) can read sensitive information, including usernames and passwords. 2. No Authentication or Access Control Problem: Gopher servers rarely implement robust authentication; access control is usually limited or non-existent. Impact: Unauthorized users might browse sensitive directories or download private files, particularly if servers are misconfigured. 3. Server Software Vulnerabilities Problem: Modern OSes can still run legacy Gopher servers, but the software is often unmaintained. Impact: Old software may contain buffer overflows, directory traversal bugs, or command injection vulnerabilities that attackers could exploit. 4. Malicious Gopher Links Problem: Gopher menus can contain links that point to scripts or other servers, similar to hyperlinks in HTTP. A client following a malicious link could inadvertently: Download malware Access sensitive internal network resources (server-side request forgery) Impact: Could serve as a vector for attacks if a user opens content from untrusted sources. 5. Legacy Protocol Weaknesses Problem: Gopher lacks modern web security mechanisms like: Content security policies Same-origin policies Cross-site request forgery protection Impact: If Gopher is bridged to other services (like modern browsers via gateways), old vulnerabilities may be exposed. 6. Information Leakage Problem: Gopher servers often provide directory listings without restriction. Impact: Sensitive files, backup directories, and internal documents may be exposed unintentionally. 7. Bridging Risks Problem: Some modern browsers access Gopher via gateways (HTTP-to-Gopher proxies). These bridges may: Expose sensitive internal resources to the gateway Introduce logging or tracking that wouldnĀt exist on pure Gopher Impact: Attacks could occur indirectly through insecure intermediaries. Key Takeaways Gopher is inherently insecure due to its design in a pre-HTTPS era. Main threats: eavesdropping, unauthorized access, malware delivery, and exploitation of unpatched server software. Safe practice: Use Gopher only in isolated, trusted environments, or through secure HTTP(S) gateways with proper sanitization.
Ezekiel 4:12 ā¦words to live by
Iāve got sore muscles. The sticky snow couldnāt be pushed, it had to be laborously cleared shovel by shovel. :-D
In my lunch break, I went on a short stroll. Oh boy, walking through deep damp snow is exhausting! There were sections with easily 30 centimeters and more. Some big wind drifts had piled up. Despite melting off quickly in the 4°C, especially turning the trees brown again, the white landscape still looks so nice. Iām glad these road marking sticks finally came in handy for the snow plow guys. :-) The black and orange stripes are 30 cm high.
https://lyse.isobeef.org/waldspaziergang-2026-01-26/
Thatās probably it. Thereās no significant snowfall announced for the rest of the week and temperatures are supposed to stay in the 2-4°C range by day.
My mate and I went on a hike earlier. Yesterday, we had lovely 12°C. But today, it was down to at most 4°C. Oh well. At least the sun was out and and there was just a tiny bit of wind. We knew upfont that scarf, beanie and gloves were mandatory. Especially at the more windy sections like up top the hills. The view was absolutely terrible, but we made the best of it.
With the sun shining on us during our lunch break at a forest edge bench, we still enjoyed the lookout in 01. I brought some old carpet scraps to sit on and was happily surprised that they isolated even better than I had hoped for. Some hot tea helped us staying warm.
After five hours we returned just after sunset. Iām quite tired now, completely out of shape.
Wow, as I anticipated, this is waaay out of my capabilities to really understand it. But Iām quite happy to just have spotted a mistake in an explanatory comment in section 4.5.2 āThe icode Arrayā. Of course, it should be /e + tc + /i + ni + t\0. Letās hope that my e-mail with the patch actually makes it into Briamās inbox. I fear GMail just hides it in the spam folder.
@eldersnake@we.loveprivacy.club
Steps to world domination:
- āInventā āAIā (by using other peopleās data).
- Get people hyped about it and ideally hooked on it.
- Only provide it as a cloud service. But hey, if you want to, you can run it locally!
- Buy all hardware available on the market, so that nobody but you can build more systems.
- All PCs of consumers and competitors are too weak now and canāt be upgraded anymore.
- Everybody depends on your cloud service! Win!
All of that is possible because corporations donāt have a āconscienceā in capitalism. Nobody forces the RAM manufacturers to sell all their stuff to just one or two buyers, but since the only goal of that manufacturer is to make money, they do it.
The tt URLs View now automatically selects the first URL that I probably are going to open. In decreasing order, the URL types are:
- markdown media URLs (images, videos, etc.)
- markdown or plaintext URLs
- subjects
- mentions
I might differentiate between mentions of subscribed and unsubscribed feeds in the future. The odds of opening a new feed over an already existing one are higher.
Wishing everybody a good morning of the last sunday before Xmas. As we say here in Germany: einen schƶnen 4. Advent!
I just completed āPrinting Departmentā - Day 4 - Advent of Code 2025 #AdventOfCode https://adventofcode.com/2025/day/4 ā Again, Iām doing this in mu, a Go(ish) / Python(ish) dynamic langugage that I had to design and build first which has very few builtins and only a handful of types (ints, no flots). š¤£
Alright, Advent of Code is over:
https://www.uninformativ.de/blog/postings/2025-12-12/0/POSTING-en.html
Itās been quite the time sink, especially with the DOS games on top, but it was fun. š„³
In case youāre wondering: All puzzles (except for part 2 of day 10) were doable in Python 1 on SuSE Linux 6.4 and ran in a finite time on the Pentium 133. Puzzle 10/2 might have been doable as well if I had better education. š¤£
FWIW, day 03 and day 04 where solved on SuSE Linux 6.4:


Performance really is an issue. Anything is fast on a modern machine with modern Python. But that old stuff, oof, it takes a while ⦠š
Should have used C or Java. 𤪠Well, maybe I do have to fall back on that for later puzzles. Weāll see.
Advent of Code 2025 starts tomorrow. š„³š
This year, Iām going to use Python 1 on SuSE Linux 6.4, writing the code on my trusty old Pentium 133 with its 64 MB of RAM. No idea if that old version of Python will be fast enough for later puzzles. Weāll see.

Arsenal 4-1 Tottenham
Better Technology, Worse Motivation: GenAIās Mediocrity Trap
While generative AI (GenAI) promises productive efficiency, it can paradoxically lead to lower-quality work. We conducted an experiment with professional illustrators and found that AI assistance flattens the quality curveāit accelerates initial gains but sharply diminishes the returns on sustained effort. Faced with this, a significant number of professionals made a strategic choice: they sacrificed the final quality to save time.
From http://www.jin-li.org/uploads/1/1/4/5/114595093/ai_and_motivation.pdf
I havenāt read this and canāt vouch for it; seems vaguely AI-boostery. Still, the conclusions are interesting. This seems to be the picture that is emerging about generative AI generally: most people donāt like it and find that degrades the quality of work. Coders seem to like it and think that it helps them, but in fact it makes the slower, less productive, and more bug prone.
By all measures itās a bad technology. We should just be honest about it. There is no need to make excuses for multi-trillion-dollar corporations.
@prologic@twtxt.net I will share later my GoToSocial 10 lines (or less) config.yaml, and 4 lines Caddyfile, and you will see how easy it is.
@lyse@lyse.isobeef.org Probably wouldnāt help, since almost every request comes from a different IP address. These are the hits on those weird /projects URLs since Sunday:
1 IP has 5 hits
1 IP has 4 hits
13 IPs have 3 hits
280 IPs have 2 hits
25543 IPs have 1 hit
The total number of hits has decreased now. Maybe the botnet has moved on ā¦
@movq@www.uninformativ.de Donāt you worry, this was meant as a joke. :-D
There was a time when I thought that Swing was actually really good. But having done some Qt/KDE later, I realized how much better that was. That were the late KDE 3 and early KDE 4 days, though. Not sure how it is today. But back then it felt Trolltech and the KDE folks put a hell lot more thought into their stuff. I was pleasantly surprised how natural it appeared and all the bits played together. Sure, there were the odd ends, but the overall design was a lot better in my opinion.
To be fair, I never used it from C++, always the Python bindings, which were considerably more comfortable (just alone the possibility to specify most attributes right away as kwargs in the constructor instead of calling tons of setters). And QtJambi, the Java binding, was also relatively nice. I never did a real project though, just played around with the latter.
@bender@twtxt.net Hm, are we talking about different dates or are there different timezone offsets for this timezone abbreviation? With EDT being UTC-4, 2025-11-02T12:00:00Z is Sunday at 8:00 in the morning local time for you. Or were did I mess up here? :-?
@prologic@twtxt.net You want me to submit a reply with āI probably wonāt show upā?
- Negativity bias increases clicks. 2) Extreme opinions increase sharing. 3) Out-group animosity increases engagement. 4) Moral-emotional language goes viral. All the sad young terminally online men | Hacker News
groff --version)?
@movq@www.uninformativ.de Itās an ancient 1.22.4. :-)
Hey @itsericwoodward@itsericwoodward.com, I just wanna let you know that twtstrm/0.4.0 sends a broken User-Agent header. Instead of the URL, the nick is repeated.
@bender@twtxt.net Thanks for asking!
So, Iāve been working on 2 main twtxt-related projects.
The first is small Node / express application that serves up a twtxt file while allowing its owner to add twts to it (or edit it outright), and Iāve been testing it on my site since the night I made that post. Itās still very much an MVP, and Iāve been intermittently adding features, improving security, and streamlining the code, with an eye to release it after I get an MVP done of project #2 (the reader).
But thatās where Iāve been struggling. The idea seems simple enough - another Node / express app (this one with a Vite-powered front-end) that reads a public twtxt file, parses the āfollowā list, grabs (and parses) those twtxt files, and then creates a river of twts out of the result. The pieces work fine in seclusion (and with dummy data), but I keep running into weird issues when reading real-live twtxt files, so some twts come through, while others get lost in the ether. Iāll figure it out eventually, but for now, Iāve been spending far more time than I anticipated just trying to get it to work end-to-end.
On top of it, the 2 projects wound up turning into 4 (so far), as Iāve been spinning out little libraries to use across both apps (like https://jsr.io/@itsericwoodward/fluent-dom-esm, and a forthcoming twtxt helper library).
In the end, Iām hoping to have project 1 (the editor) into beta by the end of October, and project 2 (the reader) into beta sometime after that, but weāll see.
I hope this has satisfied your curiosity, but if youād like to know more, please reach out!
@bender@twtxt.net Thanks for asking!
So, Iāve been working on 2 main twtxt-related projects.
The first is small Node / express application that serves up a twtxt file while allowing its owner to add twts to it (or edit it outright), and Iāve been testing it on my site since the night I made that post. Itās still very much an MVP, and Iāve been intermittently adding features, improving security, and streamlining the code, with an eye to release it after I get an MVP done of project #2 (the reader).
But thatās where Iāve been struggling. The idea seems simple enough - another Node / express app (this one with a Vite-powered front-end) that reads a public twtxt file, parses the āfollowā list, grabs (and parses) those twtxt files, and then creates a river of twts out of the result. The pieces work fine in seclusion (and with dummy data), but I keep running into weird issues when reading real-live twtxt files, so some twts come through, while others get lost in the ether. Iāll figure it out eventually, but for now, Iāve been spending far more time than I anticipated just trying to get it to work end-to-end.
On top of it, the 2 projects wound up turning into 4 (so far), as Iāve been spinning out little libraries to use across both apps (like https://jsr.io/@itsericwoodward/fluent-dom-esm, and a forthcoming twtxt helper library).
In the end, Iām hoping to have project 1 (the editor) into beta by the end of October, and project 2 (the reader) into beta sometime after that, but weāll see.
I hope this has satisfied your curiosity, but if youād like to know more, please reach out!
@prologic@twtxt.net I know we wonāt ever convince each other of the otherās favorite addressing scheme. :-D But I wanna address (haha) your concerns:
I donāt see any difference between the two schemes regarding link rot and migration. If the URL changes, both approaches are equally terrible as the feed URL is part of the hashed value and reference of some sort in the location-based scheme. It doesnāt matter.
The same is true for duplication and forks. Even today, the ācannonical URLā has to be chosen to build the hash. Thatās exactly the same with location-based addressing. Why would a mirror only duplicate stuff with location- but not content-based addressing? I really fail to see that. Also, who is using mirrors or relays anyway? I donāt know of any such software to be honest.
If there is a spam feed, I just unfollow it. Done. Not a concern for me at all. Not the slightest bit. And the byte verification is THE source of all broken threads when the conversation start is edited. Yes, this can be viewed as a feature, but how many times was it actually a feature and not more behaving as an anti-feature in terms of user experience?
I donāt get your argument. If the feed in question is offline, one can simply look in local caches and see if there is a message at that particular time, just like looking up a hash. Whereās the difference? Except that the lookup key is longer or compound or whatever depending on the cache format.
Even a new hashing algorithm requires work on clients etc. Itās not that you get some backwards-compatibility for free. It just cannot be backwards-compatible in my opinion, no matter which approach we take. Thatās why I believe some magic time for the switch causes the least amount of trouble. You leave the old world untouched and working.
If these are general concerns, Iām completely with you. But I donāt think that they only apply to location-based addressing. Thatās how I interpreted your message. I could be wrong. Happy to read your explanations. :-)
@prologic@twtxt.net I can see the issues mentioned, but I think some can be fixed.
The current hash relies on a
urlfield too, by specification, it will use the first# url = <URL>in the feedās metadata if present, that too can be different from the fetching source, if that field changes it would break the existing hashes too, a better solution would be to use a non-URL key like# feed_id = <UNIQUE_RANDOM_STRING>with theurlas fallback.We can prevent duplications if the reference uses that same url field too or the client ācollapseā any reference of all the urls defined in the metadata.
I agree that hashing based on content is good, but we still use the URL as part of the hashing, which is just a field in the feed, easily replicable by a bot, also noting that edits can also break the hash, for this issue an alternative solution (E.g. a private key not included in the feed) should be considered.
For offline reading the source would be downloaded already, the fetching of non followed feeds would fill the gap in the same way mentions does, maybe Iām missing some context on this one.
To prevent collisions there was a discussion on extending the hash (forgot if that was already fixed or not), but without a fallback that would break existing clients too, we should think of a parallel format that maintains current implementations unchanged, we are already backward compatible with the original that donāt use threads at all, a mention style format for that could be even more user-friendly for those clients.
We should also keep in mind that the current mention format is already location based (@<example https://example.com/twtxt.txt>) so Iām not that worried about threads working the same way.
Hope to see some other thought about this matter. š¤
For some time Iāve been trying to spend a fair amount of my running or jumping time in Zone 5, the hardest. After a little research Iām learning that maybe I should be concentrating more on Zone 4 instead.
Iāve got a prototype of my hardcopy simulator going. Iām typing on the keyboard and the ādisplayā goes to the printer:

https://movq.de/v/235c1eabac/MVI_8810.MOV.mp4
The biiiiiiiiiig problem is that the print head and plastic cover make it impossible to see whatās currently being printed, because this is not a typewriter. This means: In order to see what I just entered, I have to feed the paper back and forth and back and forth ⦠itās not ideal.
I got that idea of moving back/forth from Drew DeVault, who ā as it turned out ā did something similar a few years back. (I tried hard to read as little as possible of his blog post, because figuring things out myself is more fun. But that could mean I missed a great idea here or there.)
But hey, at least this is running on my Pentium 133 on SuSE Linux 6.4, printer connected with a parallel cable. š
(Also, yes, you can see the printouts of earlier tests and, yes, I used ed(1) wrong at one point. 𤪠And ls insisted on using colors ā¦)