@nghialele@nghia.im itâs great to see another Yarnd pod in the wild. Welcome!
Z
for UTC +00:00
- is that allowed in your specs?
Regarding url =
I would suggest to only allow one and the maybe add url_old =
or url_alt =
!?
I'm still not a fan of a DM feature, even thou it helps that i have now been split out into a separate feed file. Instead if would suggest a contact =
field for where people can put an email or other id/link for an established chat protocol like signal or matrix.
@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
.
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â đ¤Ł
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.
./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.
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.
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.
@<url>
. Submitting this writes @<domain url>
instead of @<nick url>
in the feed.
While I now have a somewhat working fix for it in yarnd (https://git.mills.io/yarnsocial/yarn/pulls/1232), I also have the feeling that I should fix literal formatting in lextwt as well. This also uncovered more bugs I believe: https://git.mills.io/yarnsocial/go-lextwt/pulls/28
But then there is also the question why the textarea is populated with @<url>
in the first place rather than @<nick url>
or yarndâs own @nick@domain
/@nick
syntax. It indeed has to do something with whether I follow the mentioned feed or not.
Anyway, something to investigate for future Lyse or maybe @prologic@twtxt.net and/or @xuu@txt.sour.is. Gânight!
Yarnd can store password-protected keys without risk because pod owner donât have password, but looks like i/someone should enter password for every message sent or receive? Upd: oh, itâs about ssh? i have key without password lol
Are we talking about profile view heading, heading of posts or inline mentions?
In yarnd I recall there is a setting for changing the heading of posts, but not for the two others as of yet.
I like the hover option for inline mentions. For the other places some like how yarnd does it in two line or â nick (domain.tld) â could also work.
@prologic@twtxt.net Well I just mirrored yarndâs JSON in my webfinger endpoint and lookup, so not much else to do for standardization.
And for people who donât like PHP you can always just go with Added WebFinger support to my email address using one rewrite rule and one static file. or simply putting a static JSON in place for .well-know/webfinger
I like the cleaness and indiewebness of using just domains for handles/shorthands similar to blusky, but the situations with more users on the same domain and that people in the fediverse (threads too?) are already familiar with the syntax speaks for webfinger. And since we already got support for webfinger in both yarnd and timeline it makes sense to stick with it.
@bender@twtxt.net @prologic@twtxt.net Iâm not exactly asking yarnd to change. If you are okay with the way it displayed my twts, then by all means, leave it as is. I hope you wonât mind if I continue to write things like 1/4
to mean âfirst out of fourâ.
What has text/markdown
got to do with this? I donât think Markdown says anything about replacing 1/4
with Âź, or other similar transformations. Itâs not needed, because Âź is already a unicode character that can simply be directly inserted into the text file.
Whatâs wrong with my original suggestion of doing the transformation before the text hits the twtxt.txt file? @prologic@twtxt.net, I think it would achieve what you are trying to achieve with this content-type thing: if someone writes 1/4
on a yarnd instance or any other client that wants to do this, it would get transformed, and other clients simply wouldnât do the transformation. Every client that supports displaying unicode characters, including Jenny, would then display Âź as Âź.
Alternatively, if you prefer yarnd to pretty-print all twts nicely, even ones from simpler clients, thatâs fine too and you donât need to change anything. My 1/4
-> Âź thing is nothing more than a minor irritation which probably isnât worth overthinking.
@prologic@twtxt.net Iâm not a yarnd user, so it doesnât matter a whole lot to me, but FWIW Iâm not especially keen on changing how I format my twts to work around yarndâs quirks.
I wonder if this kind of postprocessing would fit better between composing (via yarndâs UI) and publishing. So, if a yarnd user types Âź, it could get changed to Âź in the twtxt.txt file for everyone to see, not just people reading through yarnd. But when I type Âź, meaning first out of four, as a non-yarnd user, the meaning wouldnât get corrupted. I can always type Âź directly if thatâs what I really intend.
(This twt might be easier to understand if you read it without any transformations :-P)
Anyway, again, Iâm not a yarnd user, so do what you will, just know you might not be seeing exactly what I meant.
(#2024-09-24T12:34:31Z) WebMentions does would work if we agreed to implement it correctly. I never figured out how yarndâs WebMentions work, so I decide to make my own, which Iâm the only one usingâŚ
I had a look at WebSub, witch looks way more complex than WebMentions, and seem to need a lot more overhead. We donât need near realtime. We just need a way to notify someone that someone they donât know about mentioned or replied to their post.
@prologic@twtxt.net Do you have a link to some past discussion?
Would the GDPR would apply to a one-person client like jenny? I seriously hope not. If someone asks me to delete an email they sent me, I donât think I have to honour that request, no matter how European they are.
I am really bothered by the idea that someone could force me to delete my private, personal record of my interactions with them. Would I have to delete my journal entries about them too if they asked?
Maybe a public-facing client like yarnd needs to consider this, but that also bothers me. I was actually thinking about making an Internet Archive style twtxt archiver, letting you explore past twts, including long-dead feeds, see edit histories, deleted twts, etc.
@prologic@twtxt.net sorry but nope. Neither jenny
, nor yarnd
supports it at all. This was treated as a thread because I picked one of @falsifian@www.falsifian.orgâs twtxts (with the âold subjectâ), and replied to it (hence starting the thread).
@prologic@twtxt.net based on @falsifian@www.falsifian.orgâs findings, I donât believe this is quite accurate.
âyarnd
(_at least_) doesn't support creating such a custom TwtSubject, but it will reply and respect and thread one if one was constructed."
Hmm, but yarnd also isnât showing these twts as being part of a thread. @prologic@twtxt.net you said yarnd respects customs subjects. Shouldnât these twts count as having a custom subject, and get threaded together?
yarnd just doesnât render the subject. Fair enough. Itâs (replyto http://darch.dk/twtxt.txt 2024-09-15T12:50:17Z), and if you donât want to go on a hunt, the twt hash is weadxga: https://twtxt.net/twt/weadxga
@prologic@twtxt.net Specifically, I could view yarndâs copy here, but only as rendered for a human to view: https://twtxt.net/twt/st3wsda
@movq@www.uninformativ.de thanks for getting to the bottom of it. @prologic@twtxt.net is there a way to view yarndâs copy of the raw twt? The edit didnât result in a visible change; being able to see what yarnd originally downloaded would have helped me debug.
@prologic@twtxt.net One of your twts begins with (#st3wsda): https://twtxt.net/twt/bot5z4q
Based on the twtxt.net web UI, it seems to be in reply to a twt by @cuaxolotl@sunshinegardens.org which begins âIâve been sketching outâŚâ.
But jenny thinks the hash of that twt is 6mdqxrq. At least, thereâs a very twt in their feed with that hash that has the same text as appears on yarn.social (except with â instead of â).
Based on this, it appears jenny and yarnd disagree about the hash of the twt, or perhaps the twt was edited (though I canât see any difference, assuming â vs â is just a rendering choice).
@prologic@twtxt.net I believe you when you say registries as designed today do not crawl. But when I first read the spec, it conjured in my mind a search engine. Now I donât know how things work out in practice, but just based on reading, I donât see why it canât be an API for a crawling search engine. (In fact I donât see anything in the spec indicating registry servers shouldnât crawl.)
(I also noticed that https://twtxt.readthedocs.io/en/latest/user/registry.html recommends âThe registries should sync each others user list by using the users endpointâ. If I understood that right, registering with one should be enough to appear on others, even if they donât crawl.)
Does yarnd provide an API for finding twts? Is it similar?
@prologic@twtxt.net Yes, fetching the twt by hash from some service could be a good alternative, in case the twt I have does not @-mention the source. (Besides yarnd, maybe this should be part of the registry API? I donât see fetch-by-hash in the registry API docs.)
@bender@twtxt.net Iâm not a yarnd user, but automatically unfollowing on 404 doesnât seem right. Besides @lyse@lyse.isobeef.orgâs example, I could imagine just accidentally renaming my own twtxt file, or forgetting to push it when I point my DNS to a new web server. Iâd rather not lose all my yarnd followers in a situation like that (and hopefully they feel the same).
@prologic@twtxt.net hey testing a rebuild of yarnd
I just âpublishedâ a #draft on my blog about âHow Iâve implemented #webmentions for twtxtâ (http://darch.dk/mentions-twtxt), so I wanted to know from you guys if you see yourself doing a similar thing with yarnd
@prologic@twtxt.net or others with custom setups?
It not that easy @xuu@txt.sour.is since I implemented webmentions in a different way that how it have been done in yarnd to work with txt-files. You can find the code in webmention_endpoint.php and new_twt.php at main ¡ sorenpeter/timeline
Also made a webfinger lookup resolver that works with my own webfinger endpoint as well as yarnd servers:
http://darch.dk/wf-lookup.php
yarnd does not do auto discovery via webfinger though.. i cant put @username and have it fetch the feed url from webfinger. to fully make feeds portable. would also need to be able to use that for hashing.
>
?
Iâm also more in favor of #reposts being human readable and writable. A client might implement a bottom that posts something simple like: #repost Look at this cool stuff, because bla bla [alt](url)
This will then make it possible to also ârepostâ stuff from other platforms/protocols.
The reader part of a client, can then render a preview of the link, which we talked about would be a nice (optional) feature to have in yarnd.
FOLLOW: @watcher@txt.sour.is from @prologic@twtxt.net using yarnd/0.10.0@4618bd0
FOLLOW: @watcher@txt.sour.is from @fastidious@arrakis.netbros.com using yarnd/0.9.0@1a05858
FOLLOW: @xuu@txt.sour.is from @lukas@mentano.org using yarnd/0.9.0@3a96914
FOLLOW: @xuu@txt.sour.is from @watcher@txt.sour.is using yarnd/0.8.0@b2ce19a
FOLLOW: @watcher@txt.sour.is from @watcher@txt.sour.is using yarnd/0.8.0@cfe785d
FOLLOW: @default@txt.sour.is from @xuu@txt.sour.is using yarnd/0.8.0@cfe785d
FOLLOW: @xuu@txt.sour.is from @ullarah@txt.quisquiliae.com using yarnd/0.8.0@80999ab
FOLLOW: @xuu@txt.sour.is from @meff@yarn.meff.me using yarnd/0.7.2@a4ee171
FOLLOW: @xuu@txt.sour.is from @darch2@yarn.algorave.dk using yarnd/0.6.2@86938ca
FOLLOW: @xuu@txt.sour.is from @fastidious@arrakis.netbros.com using yarnd/0.1.0@b88b11b
@prologic@twtxt.net finally updated yarnd.. FORK!? Awesome!
FOLLOW: @xuu@txt.sour.is from @adi@f.adi.onl using yarnd/0.1.0@c6fd1c8
FOLLOW: @xuu@txt.sour.is from @laz@tt.vltra.plus using yarnd/master@1dcc5aed
FOLLOW: @xuu@txt.sour.is from @eldersnake@yarn.andrewjvpowell.com using yarnd/0.1.0@e335324
FOLLOW: @xuu@txt.sour.is from @lohn@tw.lohn.in using yarnd/0.0.0@HEAD