@sorenpeter@darch.dk you wrote:
“This might even be backward compatible with older (pre-yarn) clients.”
Yarnd is as backwards compatible with older clients as this. I dare to say, even more so. 😅
Going to try and few up a few more UX bugs today with yarnd
.
@prologic@twtxt.net Lol I totally forgot about this. I will put it on my todo list
I wonder if this twtxt will kick Yarnd into working again. There is only one way to find out, right?
git checkout main && git pull && make build
. Few bug fixes 😄
@prologic@twtxt.net done! hey i got a question, you got any clue why my feeds aren’t updating? maybe it has to do with the new cache flag but i messed with that a bit and didn’t notice a difference. basically it’s like i have to manually restart yarnd
to see new posts it’s really weird lol
After yarnd
v0.16 is released and the next round of specification updates are done and dusted, who wants me to have another crack at building Twtxt and activity pub integration support?
i don’t think it’s normal to have to restart my yarnd instance every time i wanna see new posts right
tt2
from @lyse and Twtxtory from @javivf?
@prologic@twtxt.net I have:
- jenny
- buckket’s original (patched, or not)
- tt/tt2
- Timeline
- Twtxtory
- Yarnd
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
@bender@twtxt.net Hehe good sleuthing 🤣 I swear it was an edit ✍️ Haha 😂 yarnd
now “sees” both every single time, where-as before it would just obliterate the old Twt, but remain in archive. Now you get to see both 😅 Not sure if that’s a good thing or not, but it certainly makes it much clearer how to write “code logic” for detecting edits and doing something more UX(y) about ‘em 🤔
Interesting edit observed by the new yarnd
powering this pod twtxt.net 🧐
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 well, this fork will work. I an fork this one with jenny, not so with Yarnd.
$ bat https://twtxt.net/twt/edgwjcq | jq '.subject'
"(#yarnd)"
hahahahaha 🤣 Does your client allow you to do this or what? 🤔
Bahahahaha 🤣
@bmallred@staystrong.run Hehe, @bender@twtxt.net is gonna be upset with you for “making up a thread/subject” 🤣
@prologic@twtxt.net Nice! Everyone should be excited 😀
Interesting factoid… By inspecting my “followers” list every now and again, I can tell who uses a client like jenny
, tt
or any other client where fetches are driven by user interactions of invoking the app. What do we call this type of client? Hmmm 🤔 Then I can tell who uses yarnd
because they are “seen” more frequently 🤣
First draft of yarnd 0.16 release notes. 📝 – Probably needs some tweaking and fixing, but it’s sounding alright so far 👌 #yarnd
I’m thinking of building a hardened peering protocol for Yarn.social’s yarnd
: pods establish cryptographic identities, exchange signed /info
and /twt
payloads with signature verification, ensuring authenticity, integrity, and spoof-proof identity validation across the distributed network.
@eapl.me@eapl.me I wouldn’t call it natural, it is the way Bluesky decided to handle handles (not meaning to make a pun, or anything). There is no other way, but that.
The bottomline is, there are agreed upon “standards”, right? From example, on Yarnd you show as “eapl.me”, from “eapl.me”. A kind of weird redundancy because on twtxt, ever since I started using it, one will expect to see a “nick” (equivalent to a person’s first name), from “a domain” (like a surname).
There is nothing holding back someone from giving themselves the nick:
thisismyawesomenickforwhichiwillbeknownforeverandeveritsgreatisntit
But, do we really want that? 😅
@kat@yarn.girlonthemoon.xyz OMG! You used the video capabilities of yarnd
🤣 Nice! 😊
@abucci@anthony.buc.ci two things. Conduwuit, a Matrix server written in Rust, is no longer going to be developed. The other is, I didn’t mean to tag you, but because Yarnd was broken it happened. Apologies.
@prologic@twtxt.net why not blanket closing everything older than, say, 3 months? Yarnd is quite a different beast today, right? Let’s start over!
@bender@twtxt.net You said:
as long as those working on clients can reach an agreement on how to move forward. That has proven, though, to be a pickle in the past.
I think this is because we probably need to start thinking about three different aspects to the ecosystem and document them out:
- Specifications (as they are now)
- Server recommendations (e.g: Timeline, yarnd, etc)
- Client recommendations (e.g: jenny, tt, tt2, twet, etc)
@lyse@lyse.isobeef.org oh, and thanks for the bigger photo! I like how it lovely fill the twtxt in Yarnd. Woot!
yarnd
UI/UX experience (for those that use it) and as "client" features (not spec changes). The two ideas are quite simple:
All these remind me of the “blog” ability once existed in Yarnd. I hate to be the party pooper, but little to non interest from me. LOL. I am up to increase the length of a twtxt, though. It is rather limiting right now.
yarnd
UI/UX experience (for those that use it) and as "client" features (not spec changes). The two ideas are quite simple:
The nice thing here is that any Ui/UX rendering for a “good user experience” is similar to what yarnd
does for Youtube/Spotify/whatever embedding. Plus anyone can participate, even if they don’t really have a client that understand it, it’s just text with some “syntax” afterall.
💡 I had this crazy idea (or is it?) last night while thinking about Twtxt and Yarn.social 😅 There are two things I think that could be really useful additions to the yarnd
UI/UX experience (for those that use it) and as “client” features (not spec changes). The two ideas are quite simple:
- Voting – a way to cast, collect a vote on a decision, topic or opinion.
- RSVP – a way to “rsvp” to a virtual (pr physical) event.
Both would use “plain text” on top of the way we already use Twtxt today and clients would render an appropriate UI/UX.
@movq@www.uninformativ.de wouldn’t editing your own twtxts cause the same issue Yarnd (or any other client) has, which is breaking any replies to it? Under which conditions would this work the best? When copying the twtxt.txt file asynchronously? In my case I copy the twtxt.txt file to its web root right away, but I figure I could not do that, which would give me a set period of time to edit without worries.
@andros@twtxt.andros.dev I don’t see any “fighting” here. This is just good experimentation. Unfortunately there hasn’t really been enough time or effort by other “client authors” yet, me especially as I’ve been super busy with ya’ know my “day job” that pays the bills and refactoring yarnd
to use a new and shiny and much better SqliteCache
🤣 – I certainly don’t think your efforts are wasted at all. I would however like @doesnm.p.psf.lt@doesnm.p.psf.lt encourage you to look at the work we’ve done as a community (which was also driven out of the Yarn.social / Twtxt community years back).
@bender@twtxt.net You will be pleased to know that yarnd
now only consumes ~60-80MB of memory depending on load 🤣 And bugger all CPU 😅
Hmm, Yarnd is duplicating the rendering of /twt/5jlfuua
. That’s quite odd.
@movq@www.uninformativ.de completely off-topic, this conversation is so broken at twtxt.net! With this one, it’s like the third one that has issues on Yarnd, but it is all fine for me on jenny.
./yarnc debug <your feed url>
:
I’m so confused. None of this code has changed in yarnd
at all. Hmmm 🤔
I’m thinking you may have edited. Lemme check actually… yarnd
(on this branch) will now restore every version, and maybe I might have introduced a bit of a weird behavior there. One moment…
@prologic@twtxt.net Spring cleanup! That’s one way to encourage people to self-host their feeds. :-D
Since I’m only interested in the url
metadata field for hashing, I do not keep any comments or metadata for that matter, just the messages themselves. The last time I fetched was probably some time yesterday evening (UTC+2). I cannot tell exactly, because the recorded last fetch timestamp has been overridden with today’s by now.
I dumped my new SQLite cache into: https://lyse.isobeef.org/tmp/backup.tar.gz This time maybe even correctly, if you’re lucky. I’m not entirely sure. It took me a few attempts (date and time were separated by space instead of T
at first, I normalized offsets +00:00
to Z
as yarnd does and converted newlines back to U+2028
). At least now the simple cross check with the Twtxt Feed Validator does not yield any problems.
Just saw this user agent popping up:
yarnd/ERSION@OMMIT go1.23.4 (+https://.../twtxt.txt; @username)
ERSION? OMMIT? 😅
@doesnm@doesnm.p.psf.lt haha its not coming back. he talked of a stand alone thing like feeds. but not in yarnd
@eapl.me@eapl.me Interesting! Two points stood right out to me:
Why the hell are e-mail newsletters considered a valid option in the first place? Just offer an Atom feed and be done with it! Especially for a blog of this very type. This doesn’t even involve a third party service. Although, in addition he also links to Feedburner, what the fuck!? No e-mail address or the like is needed and subject to being disclosed.
When these spam mailers want to prevent resubscribing, then for fuck’s sake, why don’t they use a hash of the e-mail address (I saw that in yarnd) for that purpose? Storing the e-mail address in clear text after unsubscribing is illegal in my book.
@movq@www.uninformativ.de let’s host yarnd! Or maybe wait until @prologic@twtxt.net return activitypub support which deleted in this commit
@kat@yarn.girlonthemoon.xyz It’s there, but yarnd’s markdown library probably thinks that it’s some broken HTML and swallows it, not sure.
@eapl.me@eapl.me@eapl.me@eapl.me I replied in the fork, but essentially there’s no reason we can’t support two different models here. We already do this anyway with numerous single-user, single hosted and managed feeds + a bunch of multi-user yarnd
pods that form a “distributed network”.
i rebuilt the yarnd binary several times and yet the version print is still omitting the first letter lol? wtf
@prologic@twtxt.net We can’t agree on this idea because that makes things even more complicated than it already is today. The beauty of twtxt is, you put one file on your server, done. One. Not five million. Granted, there might be archive feeds, so it might be already a bit more, but still faaaaaaar less than one file per message.
Also, you would need to host not your own hash files, but everybody else’s as well you follow. Otherwise, what is that supposed to achieve? If people are already following my feed, they know what hashes I have, so this is to no use of them (unless they want to look up a message from an archive feed and don’t process them). But the far more common scenario is that an unknown hash originates from a feed that they have not subscribed to.
Additionally, yarnd’s URL schema would then also break, because https://twtxt.net/twt/<hash>
now becomes https://twtxt.net/user/prologic/<hash>
, https://twtxt.net/user/bender/<hash>
and so on. To me, that looks like you would only get hashes if they belonged to this particular user. Of course, you could define rules that if there is a /user/
part in the path, then use a different URL, but this complicates things even more.
Sorry, I don’t like that idea.
One of the biggest gripes of the community with the way the threading model currently works with Twtxt v1.2 (https://twtxt.dev) is this notion of:
What is this hash?
What does it refer to?
Idea: Why can’t we all agree to implement a simple URI scheme where we host our Twtxt feeds?
That is, if you host your feed at https://example.com/twtxt.txt
– Why can’t or could you not also host various JSON files (let’s agree on the spec of course) at https://example.com/twt/<hash>
? 🤔
That way we solve this problem in a truly decentralised way, rather than every relying on yarnd
pods alone.
For point 1 and others using the metadata tags. we have implemented them in yarnd as [lang=en][meta=data]
@prologic@twtxt.net All the URL are missing the protocol part (https://
) and my markdown parser does not know how to handle but I see yarnd does it just fine.
@prologic@twtxt.net Of course you don’t notice it when yarnd only shows at most the last n messages of a feed. As an example, check out mckinley’s message from 2023-01-09T22:42:37Z. It has “[Scheduled][Scheduled][Scheduled]“… in it. This text in square brackets is repeated numerous times. If you search his feed for closing square bracket followed by an opening square bracket (][
) you will find a bunch more of these. It goes without question he never typed that in his feed. My client saves each twt hash I’ve explicitly marked read. A few days ago, I got plenty of apparently years old, yet suddenly unread messages. Each and every single one of them containing this repeated bracketed text thing. The only conclusion is that something messed up the feed again.