@lyse@lyse.isobeef.org Omg, that is great. 😃
@zvava@twtxt.net There would be only one hash for a message. Some to be defined magic date selects which hash to use. If the message creation timestamp is before this epoch, hash it with v1, otherwise hammer it through v2. Eventually, support for v1 could be dropped as nobody interacts with the old stuff anymore. But I’d keep it around in my client, because why not.
If users choose a client which supports the extensions, they don’t have to mess around with v1 and v2 hashing, just like today.
As for the school of thought, personally, I’d prefer something else, too. I’m in camp location-based addressing, or whatever it is called. There more I think about it, a complete redesign of twtxt and its extensions would be necessary in my opinion. Retrofitting has its limits. Of course, this is much more work, though.
@thecanine@twtxt.net Id like that too, it just can’t come from me, because native mobile dev just isn’t my thing 😢
@zvava@twtxt.net And yes yarnd
does have a well documented API and two clients (CLI and unmaintained Flutter App)
@zvava@twtxt.net We can do that 👌
I’m happy to report, after the successful remix of System Of A Down with the Nooran Sisters from India in https://www.youtube.com/watch?v=mi106DZJhuQ I stumbled across something almost equally great from Pakistan, Nusrat Fateh Ali Khan: https://www.youtube.com/watch?v=aZYG-9usGPI It’s a banger! The girls are unmatched, though.
@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
@bender@twtxt.net @thecanine@twtxt.net well now this has me thinking abt the feasibility of making an android twtxt app for pods, the actual apis of pods would have to be standardized (or the fucked up way that activitypub does it, where the “mastodon api” is the defacto client api (does yarn even have an api reference?)) or the client is just simply..a client..but editing feeds via PUT, PATCH, DELETE etc. is standardized!…? (not to mention i dont even know where to begin making an android app lmao)
Wanting to add, this isn’t a twtxt client. It is Yarnd on steroids! 😂
@thecanine@twtxt.net it should work everywhere. It is a web application.
@zvava@twtxt.net love the direction this is heading, hope this soon evolves into a basic Android app, usable with any instance.
What a crazy color temperature this yellow orange was in person! Sick lighting this evening: https://lyse.isobeef.org/abendhimmel-2025-09-15/
@lyse@lyse.isobeef.org I didn’t know they had a name, to be honest. When I/we last had a dot matrix printer, I just sat alone in the basement and made these. 😂
@bender@twtxt.net Sigh. So it’s just me. Again. 😂
[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?
[2025/09/11 12:56:01.816] ⇒ please set config.host
when trying to run "bbycll". How to bypass that tiny hurdle?
Hmm, twtxt Yarn is misbehaving. Can’t even edit, nor delete. Oh well.
[2025/09/11 12:56:01.816] ⇒ please set config.host
when trying to run "bbycll". How to bypass that tiny hurdle?
On the configuration topic, the example at the repo reads like this:
“
Hmm, not experiencing that. Using Zen (Firefox), under Linux, with uBlock Origin.
@movq@www.uninformativ.de Luckily, I had a grep -v git
at the end, so my repo is still in working order. Phew. I wish find
had grep
-like --exclude-dir
and --exclude
options (or the include variants) instead of its own weird options that I never can remember and combine properly.
@movq@www.uninformativ.de Nice Jacob’s ladder. ;-) I had to look up this term, I also found Zig Zag. What do you folks call this in your languages? In German, it’s Hexentreppe (lit. Witch’s Staircase).
@zvava@twtxt.net It is just completely impossible to make v2 backwards-compatible with v1.
Well, breaking threads on edits is considered a feature by some people. I reckon the only approach to reasonably deal with that property is to carefully review messages before publishing them, thus delaying feed updates. Any typos etc., that have been discovered afterwards, are just left alone. That’s what I and some others do. I only risk editing if the feed has been published very few seconds earlier. More than 20 seconds and I just ignore it. Works alright for the most part.
Next level poop: Can’t log in to reddit anymore with adblock enabled. It says invalid usename or password.
mobile navigation bar :3
sed -i s/… $(find …)
. Clearly, I found too many files. That's the signal to go to bed.
@lyse@lyse.isobeef.org Yeah, I’ve corrupted a Git repo or two doing that … 🥴
@zvava@twtxt.net I was about to suggest that you post some examples. By now, we’re pretty good at debugging hashing issues, because that happens so often. 😂 But it looks like you figured it out on your own. ✌️
wait why are so many of my post hashes not generating correctly ;w;
edit: i read the spec wrong :3 only +/-00:00 is stripped, not the entire timezone offset >.<
@prologic@twtxt.net im unsure how i feel about the hash v2 proposal, given it is completely backward incompatible with hash v1 it doesn’t really solve any of the problems with it. it only delays collisions, and still fragments threads on post edits
i skimmed through discussions under other the proposals — i agree humans are very bad at keeping the integrity of the web in tact, but hashes in done in this way make it impossible even for systems to rebuild threads if any post edits have occurred prior to their deployment
@zvava@twtxt.net that makes it even more so exciting! 😂
I corrupted my SQLite test database with sed -i s/… $(find …)
. Clearly, I found too many files. That’s the signal to go to bed.
Can’t resist.
@prologic@twtxt.net I completely forgot about that topic … 😂🥴
@zvava@twtxt.net oh?! I shall play more “seriously” with it soon then. Yay!
@zvava@twtxt.net The first version of what is now yarnd
was built over a weekend 😀
@zvava@twtxt.net Herw you go: https://git.mills.io/yarnsocial/twtxt.dev/pulls/28
@zvava@twtxt.net For the time being, just show both.
wait….so i’m like nearly done? it just works? and it’s fast? this feels like the end of the first all-nighter i pulled where i just got post creation done, unaware of the three weeks that would follow — like looking at the roadmap i’m definitely not done but bbycll is like actually kind of usable now o.o
PR is up for review though 🤞
@zvava@twtxt.net we have to amend the spec and increase the hash length. We just haven’t done so yet 😆
ok so i have found a genuine twt hash collision. what do i do.
internally, bbycll relies on a post lookup table with post hashes as keys, this is really fast but i knew i’d inevitably run into this issue (just not so soon) so now i have to either:
1) pick the newer post over the other
2) break from specification and not lowercase hashes
3) secretly associate canonical urls or additional entropy with post hashes in the backend without a sizeable performance impact somehow
@prologic@twtxt.net excellent, mate, that’s what we like to read! Enjoy the weekend!
Great. Yet another messed up plain text e-mail part. The URL was actually HTML-escaped. Took me five attempts to figure this out, because of course it had to be several kilometers long. In fact, the e-mail stated: “Please do not be surprised that the link is particularly long. It contains your personal configuration.”
A normal person is completely lost (that’s why I got involved). Visting the broken URL opens a popup dialog suggesting to deactivate script blockers. Which I had already done upfront as a matter of prudence.
Fun bonus on top: The JWT in the link has identical iat
(issued at) and exp
(expiry) claims. The expiry is definitely not checked, it’s well in the past.
Medical software just has to be horrible. It’s a law.
Thanks, @thecanine@twtxt.net. It’s completely horizontal, I don’t see any diagonals. Anyway, it’s great art, happy drawing!
Today is a good day! Took my daughter to art class, got a beard trim, wife is awesome and we’re all doing great 🤞🍀
@kat@yarn.girlonthemoon.xyz @kat@yarn.girlonthemoon.xyz Pretty sure I have many more mentions in the database than the one and only one I see hmmm 🤔 – I’ll have a look at the code when I can and the SQL query it’s using
@bender@twtxt.net interesting 🤔🤔
@bender@twtxt.net yayyyy!!!
@lyse@lyse.isobeef.org no, as mentioned this “diagonal arrow” eye shape, is usually used for a smug expression. The optional white part, is in this case, where the dogs sclera would be visible, while they have their eyes, like this.
Here is a comparison between a real dog, making the face it is based on, and the exaggerated drawn version.
Hahaha, @bender@twtxt.net, you’re just the best with the words! :-D I love it.
@thecanine@twtxt.net Yeah, what @bender@twtxt.net said. That tail is sick. Is this dog crying, though? The vertically elongated eye looks a bit like a tear running down.