Wow, there are a lot of ideas in this thread already. 😃
@prologic@twtxt.net @lyse@lyse.isobeef.org Yeah, same. They say:
If you post quality content and you’ve developed a loyal audience, you should be able to ask your most passionate followers to support you with a premium subscription.
You already can ask your most passionate followers to support you: You can ask for donations.
I regularly donate to people if their content is great and if they actually ask for donations (many just don’t). The platforms for that already exist, I think. 🤔
I’m not interested in the slightest in stuff that has a paywall. “Subscribe for more content!” No, why, go away. Pages that do this immediately feel shady and not trust-worthy. 🤔
(Let’s not rush things, obviously. Such a change would have to be well thought through and actually be worth it. It’s not like the current state of Yarn/twtxt is completely unusable.)
@lyse@lyse.isobeef.org @prologic@twtxt.net Sorry, I have hardly slept last night. 😅 I probably didn’t chose the best words to describe this. 🥴
Yes, I’m all for dedicated message IDs. That would be a whole new format then. But I would be fine with it.
Honestly, me too. When Yarn originally showed up, I was concerned that it would extend twtxt in dramatically incompatible ways or, worse, change it in a way so that you needed server software. 😅 The latter would have ruined it for me. A major reason why I still use twtxt/Yarn is that it’s still just a file you put somewhere. If there was the need to run a daemon, I’d give up and just use some ActivityPub thingy instead.
What I did not expect, however, was that the original twtxt itself would just … die. There has been no development in the original software anymore and virtually all the original feeds are dead. Some feeds are left, but they’re just used as an alternative to Atom/RSS for some blogs. I don’t know what happened behind the scenes that killed off twtxt (I have a few guesses, though), but the sad truth is that it’s gone.
So, yeah, maybe this gives us the freedom now to break with the original twtxt spec (if needed) and come up with a format that fixes the issues we’re seeing.
(Oh god. Are we re-inventing Usenet then? Again? 😂)
All this hash breakage made me wonder if we should try to introduce “message IDs” after all. 😅
But the great thing about the current system is that nobody can spoof message IDs. 🤔 When you think about it, message IDs in e-mails only work because (almost) everybody plays fair. Nothing stops me from using the same Message-ID
header in each and every mail, that would break e-mail threading all the time.
In Yarn, twt hashes are derived from twt content and feed metadata. That is pretty elegant and I’d hate see us lose that property.
If we wanted to allow editing twts, we could do something like this:
2024-09-05T13:37:40+00:00 (~mp6ox4a) Hello world!
Here, mp6ox4a
would be a “partial hash”: To get the actual hash of this twt, you’d concatenate the feed’s URL and mp6ox4a
and get, say, hlnw5ha
. (Pretty similar to the current system.) When people reply to this twt, they would have to do this:
2024-09-05T14:57:14+00:00 (~bpt74ka) (<a href="https://txt.sour.is/search?q=tags:hlnw5ha">#hlnw5ha</a>) Yes, hello!
That second twt has a partial hash of bpt74ka
and is a reply to the full hash hlnw5ha
. The author of the “Hello world!” twt could then edit their twt and change it to 2024-09-05T13:37:40+00:00 (~mp6ox4a) Hello friends!
or whatever. Threading wouldn’t break.
Would this be worth it? It’s certainly not backwards-compatible. 😂
@bender@twtxt.net The size … it depends. 🥴
$ du -sh ~/Mail/twt
244M /home/user/Mail/twt
But:
$ du -sh --apparent-size ~/Mail/twt
33M /home/user/Mail/twt
There are about 60k twts in there.
Regarding one-way junk: True. Looks like I mostly unfollowed those, I don’t really have that in my inbox. 🤔
These are the Top 10, btw:
$ awk '/^From: / { user[$2]++ } END { for (u in user) { print user[u], u } }' * | sort -k1rn | head -n 10
24020 "prologic"
5269 "lyse"
3928 "movq"
2285 "adi"
1985 "abucci"
1713 "mckinley"
1415 "off_grid_living"
1352 "darch"
1280 "eaplmx"
956 "bender"
@bender@twtxt.net On twtxt, I follow all feeds that I can find (there are some exceptions, of course). There’s so little going on in general, it hardly matters. 😅
And I just realized: Mutt’s layout helps a lot. Skimming over new twts is really easy and it’s not a big loss if there are a couple of shitposts™ in my “timeline”. This is very different from Mastodon (both the default web UI and all clients I’ve tried), where the timeline is always huge. Posts take up a lot of space on screen. Makes me think twice if I want to follow someone or not. 😅
(I mostly only follow Hashtags on Mastodon anyway. It’s more interesting that way.)
@falsifian@www.falsifian.org @prologic@twtxt.net @bender@twtxt.net The twt was edited. In my cache, it also has hash st3wsda
and it started like this:
(<a href="https://twtxt.net/twt/yqke7sq">#yqke7sq</a>) I've been sketching out some …
When fetching the feed now, the twt starts like this and the current twt gets the hash 6mdqxrq
:
(<a href="https://txt.sour.is/search?q=tags:yqke7sq">#yqke7sq</a>) I've been sketching out some …
This can’t be avoided, really. Publishing twts and then editing them is like doing a git push --force
after rewriting the commit history. Chaos will ensue. 😅
@cuaxolotl@sunshinegardens.org Ah, thanks for reporting back! Okay, so you’re basically manually “crawling” feeds right now. 🤔 What do you think about the idea of adding something like # follow_notify = gemini://foo/bar
to your feed’s metadata, so that clients who follow you can ping that URL every now and then? How would you even notice that, do you regularly read your gemini logs? 🤔
And the bonus read is also interesting:
https://devblogs.microsoft.com/oldnewthing/20211129-00/?p=105979
Confession: I completely forgot that Alt+Tab existed in text mode. 🤦 It’s not even a hidden feature, it’s advertised right when you start a fullscreen dos box. Well, Alt+Tab wasn’t a thing I did regularly anyway – it was usually Ctrl+Esc to open the window list (which also worked in OS/2). 🤔 I think I only started using Alt+Tab when Windows 95 removed Ctrl+Esc (because it had no use anymore, it essentially got replaced by the tasklist).
Interesting read about the Windows 95 bluescreen by Raymond Chen:
https://devblogs.microsoft.com/oldnewthing/20240903-00/?p=110205
All this Virtual Machine Manager stuff went completely over my head back then … 🤯
@lyse@lyse.isobeef.org Quick! Play the lottery! HURRY!
But maybe with the climate getting hotter and hotter, they migrate north to me, too.
And a lot of other nasty stuff with it, bugs, spiders, you name it. Didn’t we migrate all this way up north to be free from such Ungeziefer? 😅
There was a time when WebKit (I think it was WebKit) stored metadata of downloads in extended attributes. Like the URL you were downloading it from.
https://movq.de/v/f79b94485a/s.png
This was really useful. 🤔 Chromium also did it for a while and then they removed it due to privacy concerns. Now none of the popular browsers do it anymore. 🫤
@aelaraji@aelaraji.com He … slapped you? 😂 Typical for a cat! 😂
@lyse@lyse.isobeef.org Well, I guess that goes to show how completely irrelevant it was to Computer History. 😅
@prologic@twtxt.net There’s another thing to consider: I have a feeling that (some/most/many?) Gopher/Gemini users wouldn’t even want that. I’ve heard them say a couple of times: “If you follow me, just drop me an e-mail.” 🤔 I don’t know if this is a widespread opinion or not, but I do feel the need to first gather some feedback from them, before we start drafting a spec. 😅
@prologic@twtxt.net Ahh, found it, there were some ideas in this thread from January 2022: https://twtxt.net/twt/ansuy4a I haven’t read all of it yet.
@prologic@twtxt.net So a new metadata field like this?
# follow_notify = gopher://foo/bar
And we ping that every now and then? 🤔
@prologic@twtxt.net You mean a way of letting them know that someone is following them? 🤔 I guess that’s gonna be hard (I think we discussed stuff like that a few years ago), but I’m open for suggestions. 😅
This would have been a lovely morning, wind softly rustling in the trees. If it wasn’t for the constant droning of the air planes. 🫤
I also saw a string of starlink satellites passing by. What a strange sight that was.
@prologic@twtxt.net I don’t think so, no. Judging by their web site, they appear to be primarily a Gemini user (no concept of a “user agent” there). This also works:
gemini://sunshinegardens.org/users/xj9/twtxt/tw.txt
But there are nick
, url
, and description
metadata headers in the feed, even an avatar
. 🤔
@lyse@lyse.isobeef.org That is one flat snake. 🫤 Looks quite pretty, what’s left of it anyway.
What’s going on with the frogs? I guess they can’t properly see in the dark? 🤔
That large “individual” towards the would have freaked me out. Was it at least furry? Or was it a huge spider? 🤪
@lyse@lyse.isobeef.org I’m not surprised, it’s pretty archaic. It’s the only browser readily available on OS/2 Warp 3 and 4, though. 😅
@prologic@twtxt.net In a collection of (old) wallpapers that I downloaded a while ago. The source appears to be this:
http://www.avernus.com/desktop-textures/copyright.html
But the following addendum does not exist yet in the COPYRIGHT
file on my disk. 😅
This restriction does not apply to use in World-Wide Web pages served from or viewed on Windows machines.
Lest we forget Mosaic: https://movq.de/v/f85fd317b3/mosaic.jpg
In the process of tweaking my little static HTML index/thumbnail creator so that it a) properly supports dark/ligh mode and, more importantly, b) gracefully degrades on ancient browsers.
Why? Because I often exchange data via HTTP with old systems and my tooling automatically invokes that indexer/thumbnailer script. 🥴 It’s really annoying when I just see garbage in Netscape 2 or IE5.
Screenshots and videos: https://movq.de/v/348819c482
Found this in an old copyright notice from 1993:
These images are not for use with the Microsoft Windows environment. Using these patterns in a Windows environment consitutes a copyright violation.
Someone clearly didn’t like Windows.
jenny --fetch-context
😁
I think you are worrying about a non-issue.
That’s what I do best. 😏
jenny --fetch-context
😁
@aelaraji@aelaraji.com @quark@ferengi.one Yep, I like it as well. 😅
There’s another situation that I’m not quite happy with.
Suppose there’s a twt like this:
2024-08-28T19:57:58Z <a href="https://txt.sour.is/external?uri=https://foo.example.com/tw.txt&nick=person_a">@person_a<em>@foo.example.com</em></a> <a href="https://txt.sour.is/external?uri=gemini://a.b.c/tw.txt&nick=person_b">@person_b<em>@a.b.c</em></a> Hey! 👋
There’s no hash, so --fetch-context
won’t do anything at the moment.
Option A: jenny asks interactively to fetch those feeds once.
No thread hash found
Do you want to fetch the entire feed https://foo.example.com/tw.txt? [Y/n] y
Do you want to fetch the entire feed gemini://a.b.c/tw.txt? [Y/n] n
(Bonus points for skipping feeds that you already follow.)
Option B: There could be an external/third-party tool that scans a twt for all mentions and asks the user if they want to follow them (permanently). Why an external tool? The thing is, the follow
file has been completely user-managed so far and I kind of want to keep it that way. And if this is an external tool, then users can do all kinds of fancy stuff, like using fzf
or whatever. Or it could allow the user to preview the feed before following it. I don’t want to have stuff like that in the core program, it depends too much on users’ preferences.
To “implement” option B, I’d only add some hints to the docs, maybe an example.
I think I’m leaning towards option B at the moment. 🤔
@prologic@twtxt.net The equator is your enemy. Stay away from it, as far as you can! 😱
(I just looked it up, your “winter” is barely cooler than our “summer”, according to those fancy climate diagrams and my rough understanding of them. 😅)
@lyse@lyse.isobeef.org Oh my goodness…! 🤣
@quark@ferengi.one Oh dear, 87% humidity probably don’t feel great, either. 🥴 That’s what I have in the bathroom after leaving the shower. 😂
I am ready for our winter too, you know, that whole week
lol 😅
35°C and rising … can haz winter?
@quark@ferengi.one @falsifian@www.falsifian.org FWIW, this has landed in main
. 👌
mutt
/neomutt
users out here, what's the trick to highlight threads with new messages? No user interaction, just upon opening, or while opened, have threads with new, unread messages in it highlighted. Thanks!
@quark@ferengi.one Hmmmm, threads with unread messages are always un-collapsed here. 🤔 I can’t even collapse them on purpose, mutt doesn’t let me.
Maybe that’s a mutt vs. neomutt thing?
vim
cursor at the end of the first line on replies, and forks. I have tried adding to this to jenny
's configuration:
@quark@ferengi.one I think just putting it there as a second line should work. 😅
vim
cursor at the end of the first line on replies, and forks. I have tried adding to this to jenny
's configuration:
@quark@ferengi.one Ah, startinsert
, didn’t even know that existed, tbh. 😅
It doesn’t work because the editor command is currently not run through sh -c ...
, i.e. it is supposed to be just a path like /usr/bin/vim
. I was just stumped by this myself and I think I’ll soon push a patch to allow setting something like vim -c foo
.
In the meantime, your best option is probably putting this in your .vimrc
:
au BufRead,BufNewFile jenny-posting.eml normal $
(I use something similar to disable hard text wrapping after 72 chars for twtxt postings.)
(The Yarn police feed, that is.)
@yarn_police@twtxt.net I was just about to remove this feed from my config because it was stale … 😂
vim
cursor at the end of the first line on replies, and forks. I have tried adding to this to jenny
's configuration:
@quark@ferengi.one Uhm, yeah, that can’t be set in the config file (only by overriding the VISUAL
environment variable). It probably should. I’ll fix it.
What’s the goal, though? I usually hit Shift-A
in Vim to append text to the end of the line. Is that what you want? 😅
The next jenny release will (probably) stop supporting the old “Hash Tag Extension”, which was deprecated at the end of 2022. It was once used for threading and looked like this:
<a href="https://twtxt.net/search?tag=tsvhqdq">#tsvhqdq</a>
I don’t see them being used in the wild anymore. But if you happen to fetch really old feeds (or some archived feeds), things might break a little.
@aelaraji@aelaraji.com lol 😅🙈
fetch-context
branch. This integrates the whole thing into mutt/jenny.
I think I’m not going to query Yarn pods for the moment. Let’s first see how often I’d actually need that. 🤔
@quark@ferengi.one Yay 🥳
@lyse@lyse.isobeef.org That is one crazy looking mushroom. 😳 How about tasting it? 🤪
I’m so glad the temperatures were down a bit. Went on a long walk as well, first time in weeks. And there were so few cars yesterday! It was surprisingly quiet.
There was a garbage bag incident last night and I had to clean up the kitchen for two hours. 😂 Now I’m sore as fuck. Good thing I have a day off today, huh? 🤪
@falsifian@www.falsifian.org @bender@twtxt.net I pushed an alternative implementation to the fetch-context
branch. This integrates the whole thing into mutt/jenny.
You will want to configure a new mutt hotkey, similar to the “reply” hotkey:
macro index,pager <esc>C "\
<enter-command> set my_pipe_decode=\$pipe_decode nopipe_decode<Enter>\
<pipe-message> jenny -c<Enter>\
<enter-command> set pipe_decode=\$my_pipe_decode; unset my_pipe_decode<Enter>" \
"Try to fetch context of current twt, like a missing root twt"
This pipes the mail to jenny -c
. jenny will try to find the thread hash and the URL and then fetch it. (If there’s no URL or if the specific twt cannot be found in that particular feed, it could query a Yarn pod. That is not yet implemented, though.)
The whole thing looks like this:
https://movq.de/v/0d0e76a180/jenny.mp4
In other words, when there’s a missing root twt, you press a hotkey to fetch it, done.
I think I like this version better. 🤔
(This needs a lot of testing. 😆)
@<falsifian https://www.falsifian.org/twtxt.txt>
, then it will look in https://www.falsifian.org/twtxt.txt for a twt with hash tkjafka
. Maybe even do this recursively until there are no new references anymore. This process could include explicitly querying some user-configurable Yarn pods as well. 🤔
@prologic@twtxt.net Yeah, I need to clean this up in jenny. It still supports a ton of old formats that aren’t used anymore at all. 🧟
@bender@twtxt.net Yeah, I switched to OpenBSD a couple of years ago when sysupgrade(8) became available. I like it a lot, requires very little maintenance. 👌