I was trying to optimize the SQL query used for the Compact FrontPage (anonymous view for Discovery when the Admin/Operator chooses āone twt per feedā).
@thecanine@twtxt.net Did you see my revelation earlier today? š¤
Hmm, Yarnd is duplicating the rendering of /twt/5jlfuua. Thatās quite odd.
Anyway. this was a good use for search btw. I couldnāt find my Twt, so I just quickly searched for it, snap, bingo I found it in a snap! š«°
@prologic@twtxt.net Iām not sure if thatās an intended behaviour but twtxt.netās home page doesnāt load more than 13 twts, no more pagination/infinite scrollingā¦
Page 1/1 of 13 Twts
Doesnāt look like it Hmmm
sqlite> select * from twts where content LIKE '%Linux installation%';
hash = znf6csa
feed_url = https://www.uninformativ.de/twtxt.txt
content = I wonder if my current Linux installation will actually make it to 20 years:
$ head -n 1 /var/log/pacman.log
[2011-07-07 11:19] installed filesystem (2011.04-1)
Itās not toooo far into the future.
It would be crazy ⦠20 years without reinstalling once ⦠phew. š„“
created = 2025-04-07T19:59:51Z
subject = (#znf6csa)
mentions = []
tags = []
links = []
@movq@www.uninformativ.de Apparently you wrote it :D The hash doesnāt lie? 𤣠https://twtxt.net/twt/znf6csa
@prologic@twtxt.net What happened here ā did I edit my twt or is this hash wrong? š„“
Is it just me or is there a display bug for āYarnā(s) that are duplicating the root twt? š¤
I need to get Peering working again on this branch! That will drag in many Twts Twts I now no longer have š
i can see your twts here: https://watcher.sour.is/?uri=https://eapl.me/tw.txt
@david@collantes.us.. i see this one but it says its dead. https://watcher.sour.is/?uri=https://ferengi.one/twtxt.txt
@eapl.me@eapl.me I am currently working on Implementing a registry that is also a crawler. It finds any feeds that are mentioned or in the follows header.
https://watcher.sour.is/api/plain/twt
https://watcher.sour.is/api/plain/users
I think @prologic@twtxt.net is also working on one.
neat! my watcher is currently sitting at about 75 MB following over 1500 feeds. only about 200 are currently somewhat active.
-rw-r--r--. 1 xuu xuu 69M Mar 25 20:46 twt.db
-rw-r--r--. 1 xuu xuu 32K Mar 25 21:34 twt.db-shm
-rw-r--r--. 1 xuu xuu 5.6M Mar 25 21:34 twt.db-wal
sqlite> select state, count(*) n from feeds group by 1;
hot|7
warm|8
cold|183
frozen|743
permanantly-dead|857
it seems to be confused with the subject right next to it.. it works better at the end of the twt string.
Yarn wonāt display anything. but the parser does add it to the AST in a way that you can parse it out using twt.Attrs().Get("lang")
https://git.mills.io/yarnsocial/go-lextwt/src/branch/main/ast.go#L1270-L1272
https://git.mills.io/yarnsocial/go-types/src/branch/main/twt.go#L473-L478
True. Though if the idea turns out to be better.. then community will adopt it.
if you look at the subject for that twt you will see that it uses the extended hash format to include a URL address.
@andros@twtxt.andros.dev I believe you have just reproduced the bug⦠it looks like youāve replayed to a twt but the hash is wrong. I can see the hash here from Jenny, but it doesnāt look like it corresponds to any{twt,thing}. if you check it out on any yarn instance it wonāt look like a replay.
My hypothesis about that thing breaking my twts is that it might have something to do with the parenthesis surrounding the root twt hash in the replay twt-A when I replay to it with fork-twt-B; I imagine elisp interpreting those as a s-expression thus breaking the generation precess of hash (#twt-A) before prepending it to for-twt-B ⦠but then Iām too ignorant to figure out how to test my theory (heck I couldnāt even recalculate the hashes myself correctly in bash xD). Iāll keep trying tho.
@andros@twtxt.andros.dev yes, that usually happens when twts get edited and we just made a gentlemen agreement to avoid edits as much as possible (at least for the time being). But the thing is, That is not whatās happening with my broken twtsā hashes. Since Iāve bee mostly replaying to my own twts as a test and I know for sure that I havenāt edited any. (I usually fork-replay instead of edit a twt when needed)
@prologic@twtxt.net Agreed! But clients can hallucinate and generate wrong hashes aka Lies 𤣠Also, If you chheck your own twt on twtxt.net, it looks like a root twt instead of a replay.
@andros@twtxt.andros.dev Hereās that twtxt-el test replay to my last twt! letās see how it goes.
@andros@twtxt.andros.dev hmmm⦠pretty strange, isnāt it? replaying to threads worked perfectly, Iāve only had that problem trying to replay to a twt that was part of a thread.
As an example, this one is a Fork-Replay from Jenny. My next twt will be a replay to this exact twt but from twtxt-el as a test.
Then Iāwill file an issue if it doesnāt behave the way itās supposed to. Cheers!
@prologic@twtxt.net Are you sure? xD ⦠it was supposed to be a replay to another twt, but the twt hash is wrong (I think).
@andros@twtxt.andros.dev is it me or twtxt-el generates a wrong twt hash when I use the [ ā³ Reply to twt ] button?
@prologic@twtxt.net the code block is the cause of https://txt.sour.is/twt/zn2kg7q
and the second? i get POST errors when i try to submit the webform.
alert the twt police!!
I have a paper deadline coming up, so will everyone please stop writing twts for the next 48 hours, thanks.
@andros@twtxt.andros.dev Sweeeeet! Just gave it a try, youāve done a wonderful work š«” I wanted to replay from there but couldnāt go past the first page of the feed. It kept freezing on me and complaining about some bad Url (as mentioned on the test twt), so Iāll have to dig through my follow list and see where I effed up this time. š
Hereās a twt from @andros@twtxt.andros.dev ās new version of Twtxt-el š„³ It feels WAaaaaY better! although it freezes on me as soon as I navigate to the next page complaining about some bad url, but the chronological sorting of the feed as well as the navigation buttons (links?) are a great addition. Looking forward to the next update already! š š„³š„³š„³
@lyse@lyse.isobeef.org @prologic@twtxt.net š There was something weird going on with my #Timeline instance, the text input box was visible even though I was logged out and I was able to twt from it ⦠It has to do with cache because it wouldnāt disappear unless I whip my websiteās cache from the browser.
Poke @sorenpeter@darch.dk and @eapl.me@eapl.me I have no Idea how to reproduce this.
It seems related to us poor single user pods not getting the trust to share twts.. which it seems to still untrust on restart for me.
@movq, @prologic@twtxt.net when navigating to a Yarn. If the head twt is missing then the whole thread is not accessible. It only returns an error. so i have no way to view any of the replies within the thread other than the end twt.
@bmallred@staystrong.run did you rotate your twtxt file or something happened to your twts? š¤ asking just in caseā¦
"twtxtfeevalidator/0.0.1" UA about? I thought I could ask before throwing a 1000GB file at it šŖ¤ could it be the same 'xt' thing @lyse was talking about the other day?
hmm⦠apparently the invalid twts are the latest ones Iād posted from Timeline but highly probably because Iād tried to restore them manually, after unintentionally overriding my twtxt file with one that was out of date š¤¦
Shi⦠I forgot to pull my twtxt file before twtinā ⦠let me see if I can recover them lost timeline twts.
I wish I could view source twts like this to know if the root was not found and this was actually in reply to something i cant see.

@bender@twtxt.net So turns out something is setting my HashingURI to the value {{ .Profile.URI }} and that is making my hashes wrong so it cannot delete or edit twts.
Can I edit this twt?
@eapl.me@eapl.me Neat.
So for twt metadata the lextwt parser currently supports values in the form [key=value]
https://git.mills.io/yarnsocial/go-lextwt/src/branch/main/parser_test.go#L692-L698
@eapl.me@eapl.me here are my replies (somewhat similar to Lyseās and Jamesā)
Metadata in twts: Key=value is too complicated for non-hackers and hard to write by hand. So if there is a need then we should just use #NSFS or the alt-text file in markdown image syntax
if something is NSFWIDs besides datetime. When you edit a twt then you should preserve the datetime if location-based addressing should have any advantages over content-based addressing. If you change the timestamp the its a new post. Just like any other blog cms.
Caching, Yes all good ideas, but that is more a task for the clients not the serving of the twtxt.txt files.
Discovery: User-agent for discovery can become better. Iām working on a wrapper script in PHP, so you donāt need to go to Apaches log-files to see who fetches your feed. But for other Gemini and gopher you need to relay on something else. That could be using my webmentions for twtxt suggestion, or simply defining an email metadata field for letting a person know you follow their feed. Interesting read about why WebMetions might be a bad idea. Twtxt being much simple that a full featured IndieWeb sites, then a lot of the concerns does not apply here. But thatās the issue with any open inbox. This is hard to solve without some form of (centralized or community) spam moderation.
Support more protocols besides http/s. Yes why not, if we can make clients that merge or diffident between the same feed server by multiples URLs
Languages: If the need is big then make a separate feed. I donāt mind seeing stuff in other langues as it is low. You got translating tool if you need to know whats going on. And again when there is a need for easier switching between posting to several feeds, then itās about building clients with a UI that makes it easy. No something that should takes up space in the format/protocol.
Emojis: Iām not sure what this is about. Do you want to use emojis as avatar in CLI clients or it just about rendering emojis?
@Codebuzz@www.codebuzz.nl I use Jenny to add to a local copy of my twtxt.txt file, and then manually push it to my web servers. I prefer timestamps to end with āZā rather than ā+00:00ā so I modified Jenny to use that format. I mostly follow conversations using Jenny, but sometimes I check twtxt.net, which could catch twts I missed.
1/4 to mean "first out of four".
@bender@twtxt.net I try to avoid editing. I guess I would write 5/4, 6/4, etc, and hopefully my audience would be sympathetic to my failing.
Anyway, I donāt think my eccentric decision to number my twts in the style of other social media platforms is the only context where someone might write ¼ not meaning a quarter. E.g. January 4, to Americans.
Iām happy to keep overthinking this for as long as you are :-P
@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.
@prologic@twtxt.net I wrote ¼ (one slash four) by which I meant āthe first out of fourā. twtxt.net is showing it as ¼, a single character that IMO doesnāt have that same meaning (it means 0.25). Similarly, ¾ got replaced with ¾ in another twt. Itās not a big deal. It just looks a little wrong, especially beside the 2/4 and 4/4 in my other two twts.
@movq@www.uninformativ.de, having an issue fetching a twtxt context. I am getting:
Trying to fetch "#mowsvgq" from Yarn pod https://txt.sour.is ...
Trying to fetch "#mowsvgq" from Yarn pod https://twtxt.net ...
Twt could not be found
Yet, the twtxt is there: https://twtxt.net/twt/mowsvgq. Bug, or something else?
@Codebuzz@www.codebuzz.nl Welcome to the twtāverse š
@2024-10-09T08:11:00Z@twtxt.net It an easy way of twt-adressing by using the timestamp instead of a nick, which is arbitrary anyhow. Just my suggestion for a new reply-model ;)
I share I did write up an algorithm for it at some point I think it is lost in a git comment someplace. Iāll put together a pseudo/go code this week.
Super simple:
Making a reply:
- If yarn has one use that. (Maybe do collision check?)
- Make hash of twt raw no truncation.
- Check local cache for shortest without collision
- in SQL:
select len(subject) where head_full_hash like subject || '%'
- in SQL:
Threading:
- Get full hash of head twt
- Search for twts
- in SQL:
head_full_hash like subject || '%' and created_on > head_timestamp
- in SQL:
The assumption being replies will be for the most recent head. If replying to an older one it will use a longer hash.
