I’ve started a draft over at: https://git.mills.io/yarnsocial/twtxt.dev/src/branch/main/exts/webfinger.md
@prologic@twtxt.net maybe you meant to specify twtxt as a type similar to ActivityPub’s application/activity+json
in https://webfinger.net/lookup/?resource=sorenpeter@norrebro.space
{
"rel": "self",
"type": "application/activity+json",
"href": "https://norrebro.space/users/sorenpeter"
},
Then it would also make sense to define a Link Relations but should that then link to something like https://twtxt.dev/webfinger.html
where we can describe the spec?
@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.
@movq@www.uninformativ.de Where in firefox can I set custom CSS?
@prologic@twtxt.net What IRC client is that?
@aelaraji@aelaraji.com https://github.com/sorenpeter/timeline/commit/555baefcd0e75e6a281472994e8eb7ae9b5d2a1c
Wow, it seem my #Webmentions implementation works from Mastodon via brid.gy
twtxt.txt
files should be named tw.txt
instead.
good luck with the doughnut on a stick in a URL
twtxt.txt
files should be named tw.txt
instead.
or timeline.txt ;)
test post EDIT
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.
My twtAgent.php
was turned off, so try again now. I have uploaded the code to: https://github.com/sorenpeter/twtAgent
What was it suppose to look like? a <detail><summary>
-tag maybe?
@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.
“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
Because I don’t have capacity on my server to host and stream video and I want others to be able to find the video.
I’m gonna upload my part of the video to youtube and the slides to my website within a day or two. Then you can add it to yarn.social etc.
Live from Piksel Festival in about an hour via: https://www.twitch.tv/pikselfest - Also other presentations stating momentary
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.
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
@movq@www.uninformativ.de I knew you would like it;)
@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
![NSFW](url.to/image.jpg)
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?
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
What are peoples #IRC setup? Do you have your own bouncer server or just have a you computer always on? And do you IRC on mobile?
I’m planning to be there tomorrow (message from yesterday, since we can not all live in the future;)
@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.
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/
Video of my latest #livecoding show using #punctual for #visuals
https://www.youtube.com/watch?v=CsM39SpRik8
I know no client support it (yet) - but it could be the future 😅
@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 ;)
@2024-10-08T19:36:38-07:00@a.9srv.net Thanks for the followup. I agrees with most of it - especially:
Please nobody suggest sticking the content type in more metadata. 🙄
Yes, URL can be considered ugly, but they work and are understandable by both humans and machines. And its trivial for any client to hide the URLs used as reference in replies/treading.
Webfinger can be an add-on to help lookup people, and it can be made independent of the nick by just serving the same json regardless of the nick as people do with static sites and a as I implemented it on darch.dk (wf endpoint). Try RANDOMSTRING@darch.dk
on http://darch.dk/wf-lookup.php (wf lookup) or RANDOMSTRING@garrido.io
on https://webfinger.net
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:)
@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
@prologic@twtxt.net YES James, it should be up to the client to deal with changes like edits and deletions. And putting this load on the clients, location-addressing with make this a lot easier since what is says it: Look in this file at this timestamp, did anything change or went missing? (And then threading will not break;)
why can we both have a format that you can write by hand and better clients?