Wow, it seem my #Webmentions implementation works from Mastodon via brid.gy
Added TwtHash hashes to every message on my personal Twtxt HTML renderer. Code is not yet ready for prime-time. Need to work out some kinks still.
I have been on Twtxt for five years straight now. Hurray me.
@aelaraji@aelaraji.com as you can see, not much. Things continue to work fine (my fake one is cached on Neomutt). :-)
Yes it work: 2024-12-01T19:38:35Z twtxt/1.2.3 (+https://eapl.mx/twtxt.txt; @eapl)
:D
The .log is just a simple append each request. The idea with the .cvs is to have it tally up how many request there have been from each client as a way to avoid having the log file grow too big. And that you can open the .cvs as a spreadsheet and have an easy overview and filtering options.
Access to those files are closed to the public.
@eapl.mx@eapl.mx Yes, the idea is to add User Agent support to #Timeline.
Right now it just adds every request to a growing log file, but I have also been working on a way to analyse it, so it only saves the time of the latest request.
I’m not sure how to make it part of timeline itself, since it requeses that you redirect/rewrite from twtAgent.php
to the acctual twtxt.txt
Help with making Timeline send proper User Agents to others would be much appreciated:)
@lyse@lyse.isobeef.org One person had came access it before, but no tried it
@prologic@twtxt.net Just that people thought twtxt sounded cool and maybe want to set it up themself
@eapl.mx@eapl.mx Super to see you got webmentions working too :)
EDIT: A webmention was send to: https://eapl.mx/timeline/webmention (Status: 202)
@johanbove@johanbove.info Thanks, I’m glad you like it.
@movq@www.uninformativ.de There was no time for discussion just after the presentation, but I had a chat with some folks later.
@sorenpeter@darch.dk Really cool that you did the presentation about Twtxt! Thanks for doing this.
“A minimalist social network powered by plain text files” - my talk about #twtxt from #Piksel24 Festival is now on YouTube and slides can be found at http://darch.dk/twtxtalk-piksel
@<@chyrp.doesnm.cc https://chyrp.doesnm.cc/twtxt.txt> this is broken in jenny too, I figure. No nick breaks things.
@prologic@twtxt.net glad to have joined to the call, twice! :-) I think it was the last call of 2024. Hoping to see more for the one towards the end of January!
@prologic@twtxt.net yeah it’s a light post. I was commenting more on how it’s comments are integed with bsky.
@prologic@twtxt.net i think we talked about it before blogs were removed
@shreyan@twtxt.net I see you got a shout out too 😆
This is so neat.
https://emilyliu.me/blog/open-network
When yarn used to have blogs I thought something like this would be a great feature. Having the blog comments tied to a twtxt subject for the blog post.
I’m giving a shot talk about twtxt/yarn/timeline tommow around noon CET at Piksel Festival in Norway. More info and link for live stream at: https://24.piksel.no
(So I will most likely not be joining the call)
@bender@twtxt.net The tagline of Timeline is “a single user twtxt/yarn pod” not just a yarn pod. Similar to GNU/Linux. When we came up with the concept of Yarn Social it was a way to rebrand twtxt with the extensions that makes conversations like this possible.
@doesnm@doesnm.p.psf.lt never!
@bender@twtxt.net hmm.. indeed.
@bender@twtxt.net the EF this feed is muted. Why is yarn busted? 😁 @lyse@lyse.isobeef.org @prologic@twtxt.net
Great to see another user @aelaraji@aelaraji.com - And I can confirm that my #webmentions works from your server
(I know, the formatting is messed up;)Hey @aelaraji@aelaraji.com I’m running PHP 8.2 on my server
@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.
@bender@twtxt.net trying to figure out a bug in yarn.
@doesnm@doesnm.p.psf.lt up to you. I have mine to rotate at 1,000 twtxts. I have vomited over 400, so far. I have some way to go till rotation. :-D
@movq@www.uninformativ.de I knew you would like it;)
You need quant computer to host these key services. Nobody will do that. ActivityPub/Twtxt instance can be hosted on calculator
@prologic@twtxt.net just rebuild my image.. though git says i am already at latest
@prologic@twtxt.net I never got the root for this
@wbknl@twtxt.net I have thought of getting one. I wish there were easier tools for it than direwolf
@bender@twtxt.net Linux and Android. I would never iOS my friend.
@lyse@lyse.isobeef.org agree on the HTTP stuff. I mean we could mention that for optimization see RFC yadda yadda should be followed for caching. but not have it part of the spec proper.
@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
@sorenpeter@darch.dk on 4 for gemini if your TLS client certificate contains your nick@host could that work for discovery?
@wbknl@twtxt.net are you still in Russia? It could be hard mailing anything to there these days. I read your “russia is eternally cold”, and became curious. Patagonia is the only place I know on South America that it has rounded mountains, though they can be anywhere. Originally from Chile, or Argentina? My curiosity doesn’t need feeding, by the way. It’s all good if it doesn’t. :-)
This morning (and a little bit of the afternoon) the idea of having a full referenced archive of twtxts on the web has consumed me a bit. I am talking about something similar to the email archives one see online, but for twtxts, and a more personal level. Such archive would be available, even if the involved feeds are long gone, because feeds will be treated as received emails.
@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?
Thanks @lyse@lyse.isobeef.org! I’m replying here https://text.eapl.mx/reply-to-lyse-about-twtxt
@bender@twtxt.net they revel in their blindness. Roll within their stink.
I’ve been thinking of a few improvements for the next generation of twtxt spec, let me know if these are useful or interesting :) https://text.eapl.mx/a-few-ideas-for-a-next-twtxt-version
@wbknl@twtxt.net Welcome to the twtxt-iverse!
@lyse@lyse.isobeef.org Beautiful pictures, and beautiful HTML for a photo album!
@Codebuzz@www.codebuzz.nl I have separate mail boxes for private and work, but flattened both to have a simpler structure. For work, where we use Outlook, I am using categories for organising the mails and privately I am using Vivaldi’s labels system. The main idea is to use search and grouping through dynamic saved searches instead of static folders.
Would it make sense for twtxt v.2 to do something similar to bluesky, where you use a domain as you handle by creating a specific DNS record as explained by: https://matthiasott.com/notes/how-to-set-your-domain-as-your-bluesky-handle
@quark@ferengi.one Yeah i’m in deep red here. the governor race is getting split between a red and a maga that is running a write in.. but even if they split the vote 50-50% they will still be greater than what the blue will get.
@aelaraji@aelaraji.com just make sure to howl, two or three times! 😂
@aelaraji@aelaraji.com I thought I had replied to this, but don’t see it, so my apologies. I like macOS, and Apple machines are the only ones who can run it. Granted, there are Hackintoshes, but those are on the way out, sadly, because of Apple’s move to their own CPU chips. So, no, a ZimaBoard won’t do the trick. 😅
Wives are something else, my friend. “Handle with care” applies all the time. 🤭
@prologic@twtxt.net hahahaha! If only was that easy. Wife is pretty stressed out at work with new duties. At the same time people are getting laid off. So, it truly is a dilemma, and something that must be done carefully. I can wait. I waited this long, I can wait a bit more. Maybe and end-of-year gift for both of us?
description
header. Or rather, how often it re-fetches it.
@prologic@twtxt.net woot, awesome! I am using ux2028
twice in my description
. May lower it to once, but need some reference first. 😅
description
header. Or rather, how often it re-fetches it.
So, @prologic@twtxt.net, Yarn isn’t rendering the metadata
as described on the format documentation. That is, ux2028
is ignored when Yarn renders the description
metadata.
@xuu@txt.sour.is done, and done, and done. The three of us dropped our mail-in ballots, and received confirmation they are counted. Living in a red state (well, kid said it is more like purple now) makes me sad, and mad, but I have done what I can—and that includes explaining things to others, and encouraging them to vote.
Seems Hallway link in https://indieweb.org/twtxt is broken and redirects to main page. Is it abandoned?
@prologic@twtxt.net I’m grateful for this accident. I find browsing twtxt.net useful even though I don’t have an account there. I do it when I can’t use Jenny because I only have my phone, or if I want to see messages I might have missed. I know it’s not guaranteed to catch everything, but it’s pretty good, even if it’s not intentional.
@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.
How about storing the contents of the twtxt.txt file in TXT
DNS records? :-P Like so:
dig +short txt poem.netbros.com | sed 's/[\" ]//g' | base64 -d
@prologic@twtxt.net shut that down, man! I’ll give you a nickel for it! 🤭
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.
Spent some time cleaning up my AoC code to get ready for December 1st. Anyone else doing it this year? @prologic@twtxt.net we have to setup a new team each year?
@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 yeah short Nick is going to be unique enough. There is always olong Nick that adds the domain for differentiation.
@sorenpeter@darch.dk I run Weechat headless on a VM and mostly connect via mobile or dwsktop. I use the android client or gliwing bear. Work blocks all comms on their always on MitM VPN so I cant in office anymore. So I just use mobile.
@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.
@prologic@twtxt.net One could argue twtxt.net’s display formatting is a little over-eager here.
@prologic@twtxt.net that should be right
That’s very sad… Btw twtxt is more hardly to spam because of bad discovery. So you can only spam to your followers. Did you really want abandon best method of microblogging?
@movq@www.uninformativ.de How hard would it be to implement something like (#<2024-10-25T17:15:50Z https://www.uninformativ.de/twtxt.txt>)
in jenny as a replacement for (#twthash)
and have it not care about if is http(s) or a g-protocol?
@Codebuzz@www.codebuzz.nl Speed is an issue for the client software, not the format itself, but yes I agree that it makes the most sense to append post to the end of the file. I’m referring to the definition that it’s the first url =
in the file that is the one that has to be used for the twthash computation, which is a too arbitrary way of defining something that breaks treading time and time again. And this is the case for not using url+date+message = twthash.
@movq@www.uninformativ.de LOL, you are late! :-P Stores around started selling Christmas’s decorations early September. Like, wow! Usually the earliest is after Halloween, more often after Thanksgiving.
@movq@www.uninformativ.de interesting! So, what would the fix be, in this case, do you know? Aware of this, @prologic@twtxt.net?
@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?
What if i want to delete avatar? Im deleted avatar meta field but still see avatar on twtxt.net
Simplified twtxt - I want to suggest some dogmas or commandments for twtxt, from where we can work our way back to how to implement different feature like replies/treads:
It’s a text file, so you must be able to write it by hand (ie. no app logic) and read by eye. If you edit a post you change the content not the timestamp. Otherwise it will be considered a new post.
The order of lines in a twtxt.txt must not hold any significant. The file is a container and each line an atomic piece of information. You should be able to run
sort
on a twtxt.txt and it should still work.Transport protocol should not matter, as long as the file served is the same. Http and https are preferred, so it is suggested that feed served via Gopher or Gemini also provide http(s).
Do we need more commandments?
@prologic@twtxt.net Why does twtxt.net still show my old avatar?
@Codebuzz@www.codebuzz.nl Welcome to the twt’verse 👋
@doesnm@doesnm.p.psf.lt finally someone read my blogpost ;)
@aelaraji@aelaraji.com Thank you, and yes I got more on my websites https://darch.dk/vj/ and https://algorave.dk/videos/
@prologic huh? looks like someone flooding twtxt
@sorenpeter ’s webmentions uses this trick: http://darch.dk/mentions-twtxt
@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 ;)
@prologic@twtxt.net currently? it wouldnt :D.
we would need to come up with a way of registering with multiple brokers that can i guess forward to a reader broker. something that will retry if needed. need to read into how simplex handles multi brokers
@doesnm@doesnm.p.psf.lt Agree. salty.im should allow the user to post multiple brokers on their webfinger so the client can find a working path.
@movq@www.uninformativ.de i’m sorry if I sound too contrarian. I’m not a fan of using an obscure hash as well. The problem is that of future and backward compatibility. If we change to sha256 or another we don’t just need to support sha256. But need to now support both sha256 AND blake2b. Or we devide the community. Users of some clients will still use the old algorithm and get left behind.
Really we should all think hard about how changes will break things and if those breakages are acceptable.
@prologic@twtxt.net yeah, sad, convoluted, dangerous state of affairs for just about everyone. :-(
@prologic@twtxt.net I think printf is a more portable option than echo -e for interpreting \t as tab. E.g. printf ‘%s\t%s\t%s’ “$url” “$time” “$text”. In general I always prefer printf over echo for anything non-trivial in unix shell scripts. See last paragraph of https://en.wikipedia.org/wiki/Echo_(command)#History
@sorenpeter@darch.dk oh, I thought we were settled on TABs for a while now, weren’t we? 🤔 The new website mentions TABs too. The command echo -e
(on any shell?) will use \t
for them.
@lyse@lyse.isobeef.org what are you building now? The things you are mentioning I couldn’t even start wrapping my head around them! 😅 They sure sound expensive, tough.
Thanks @david@collantes.us, good to know, but we need to agree on what character we use, otherwise the hashes will not be the same:)
@sorenpeter@darch.dk a TAB is simply \t
. Just add it to that echo
line, and that’s it.
@aelaraji@aelaraji.com You could just remove the {getuser()} part because you added ~.
Ok, i know how to command working (not sure), but seems it only grab from cache. Maybe make fetch from twtxt.net if hash not found?
@prologic@twtxt.net Regarding the new way of generating twt-hashes, to me it makes more sense to use tabs as separator instead of spaces, since the you can just copy/past a line directly from a twtxt-file that already go a tab between timestamp and message. But tabs might be hard to “type” when you are in a terminal, since it will activate autocomplete…🤔
Another thing, it seems that you sugget we only use the domain in the hash-creation and not the full path to the twtxt.txt
$ echo -e "https://example.com 2024-09-29T13:30:00Z Hello World!" | sha256sum - | awk '{ print $1 }' | base64 | head -c 12
should i delete gemini support from twet? iirc in twtxt v2 it starts prohibited. And all of my fields are https
It has twts cache which used if timeline is set to jew. Maybe i.should fork twet to make wishes like newlines (i see two squares), showing conversations, showing twts if not found in cache and parsing medata to configure url, nick and followers (currenly it duplicated in config and twtxt file)