@movq@www.uninformativ.de Not that easy to test when pods honor if-modified-since ;-)
I’ve almost only timestamps -5364619200.0…
Diff looks good to me!
**
🧮 USERS:3 FEEDS:6 TWTS:224 BLOGS:0 ARCHIVED:54447 CACHE:2059 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:224 BLOGS:0 ARCHIVED:54447 CACHE:2059 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
@movq@www.uninformativ.de
I’ll test it tomorrow. Thank’s for starting this feature!
F in their name.
() I believe
glob ()is anO(n)algorithm
Yes, I see. But don’t underestimate OS caching for files and directories!
If you look up files in the same directory many times then OS may use cached results from earlier lookups.
I’m not totally sure but I believe this is how things work for both, Windows and Linux at least.
@movq@www.uninformativ.de
When I look in my twtxt maildir for duplicated messages they all have F in their name.
I see that in mail_file_exists jenny does not consider flagged messages when testing if a message already exists.
I understand that looking up only 12 combinations is faster than reading huge directories. I’m astonished that globbing would be slower. Learning something new every day…
@movq@www.uninformativ.de
I just pulled it, works like a charm (as expected) ;-)
@movq@www.uninformativ.de
Updated. Will it be possible for the subject be moved at the begining instead (like Yarn and tt do)?
@movq@www.uninformativ.de
I’m not a Python programmer, so please bear with me.
The doc about encodings does also mention:
If you require a different encoding, you can manually set the Response.encoding property
Wouldn’t that be a one liner like (Ruby example)?
'some text'.force_encoding('utf-8')
I understand that you do not want to interfere with requests. On the other hand we know that received data must be utf-8 (by twtxt spec) and it does burden “publishers” to somehow add charset property to content-type header. But again I’m not sure what “the right thing to do” ™ is.
**
🧮 USERS:3 FEEDS:6 TWTS:223 BLOGS:0 ARCHIVED:54236 CACHE:2108 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:223 BLOGS:0 ARCHIVED:54236 CACHE:2108 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
@prologic@twtxt.net @movq@www.uninformativ.de
Exactly, you see correct UTF-8 encoded version (even with content-type: text/plain leaving out charset declaration).
After following utf8test twtxt myself I now see that jenny does not handle it as UTF-8 when charset is missing from HTTP header, just like @quark@ferengi.one has observed.
So should jenny treat twtxt files always as UTF-8 encoded? I’m not sure about this.
@lyse@lyse.isobeef.org
Sorry, I should have mentioned your twt #vjjdara where you already described the same idea.
@movq@www.uninformativ.de
Applause!
I believe Yarn assumes utf-8 anyway which is why we don’t see encoding issues
Are you sure? I think in #kj2c5oa @quark@ferengi.one mentioned exactly that problem. My logs say “jenny/latest” was fetching my twtxt for quark.
All I did to fix this was to adding AddCharset utf-8 .txt to .htaccess. Especially I did not change encoding of stackeffect.txt.
Don’t miss step 0 (I should have made this a separate point): having a meta header promising appending twts with strictly monotonically increasing timestamps.
(Also, I’d first like to see the pagination thingy implemented.)
In jenny I would like to see “don’t process previously fetched twts” AKA “Allow the user to archive/delete old twts” feature implemented ;-)
**
🧮 USERS:3 FEEDS:6 TWTS:222 BLOGS:0 ARCHIVED:54048 CACHE:2122 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:222 BLOGS:0 ARCHIVED:54048 CACHE:2122 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
@prologic@twtxt.net
Awesome! Hope he will reply as fast as he did with me. And yes about the noise and length. Not an issue on jenny, or my own pod (I have it set to 2048, I think), but yes, ephemeral is right.
@prologic@twtxt.net
BEGIN SALTPACK ENCRYPTED MESSAGE. kiNJamlTJ29ZvW4 RHAOg9hm6h0OwKt iMGN9pY3oc5peJE UcRA8ysyQ7e8co9 shMfScCFgmQgU5Q 6w6XD2FT6szO1i1 N8qWqFRwJcHliqp hlaSvsTNhuwe1Fs KESywjL8ZvxNeyb ro0RVcRIip4Itpv NKvFZ822RoDR6pb hVvSqgubr3IanFT 6VAGQe2mYvErE7i G0O284HNvj0tcbC qzY0uB3ZFePu2fp l8nHOeEm9QLkH4Y PNKY2bXjqtblDGq 7pNiNHXtNJDjrpG nUoEXK9CaB6DGe7 oaF1P9sTz7fFrUo qwIgzw4Z1yqULQW 6dcFgsGwQEMc6bV mXuJHkrDWbfw35o 2Lpevp4PAVw884t 5Jf4cDLAe3QfRjG 4y6uwJg8BwIr2Lb 2pCX23ffwJ0yjGs Ptyzuaq2Alfl3QX AcMNGFzTNHjHfqY cvsoTrSMbyE3ssS A0k0zeRJQLoGOK4 DGkdltMXaQyXq9d zzbueCXCsIM1vYG vcy85vKuqM0ikoG caUNUuIVCc6FMs5 2JtadCtbVKyG8Wx Z4R672Fd71eDjCc lEtCdJlEAmEJePw ThkxVJutJt2R2Ce lKp9tEKmrx1jMWW V8hJNTaQGAfFDEB Unh8YasaV24NqAi GKSnstFWk3DYCxC lvws9js2jJ9OKeq 2mMgFmzEmCr99RW 2CrxZStPpB1iEDU d0Un7W7bnyo2KpV xqe8rCeHA6CUwVs 0XMmxPvU1Q0wp9A 0Jwxo5CY9QF5EJl yVwaXiVP2CKw2aH tqEE5yTp9OmpNF0 jFqgr8vHOjosPyL c3nke0S9QFjAxjt Dr6xwYpnASDr1l1 N96G3FB5iVYLFaz FkXGm7oQNTaDY8e OtHXQiXRhQY3PCi VIYYVhc9RExVnfX fvzgfgc5uSxUynD sPp4eq2rJXkX5. END SALTPACK ENCRYPTED MESSAGE.
Let’s see how resilient this is, or if it breaks.
@prologic@twtxt.net
Woot! 😋
My thoughts about range requests
Additionally to pagination also range request should be used to reduce traffic.
I understand that there are corner cases making this a complicated matter.
I would like to see a meta header saying that the given twtxt is append only with increasing timestamps so that a simple strategy can detect valid content fetched per range request.
- read meta part per range request
- read last fetched twt at expected range (as known from last fetch)
- if fetched content starts with expected twt then process rest of data
- if fetched content doesn’t start with expected twt discard all and fall back to fetching whole twtxt
Pagination (e.g. archiving old content in a different file) will lead to point 4.
Of course especially pods should support range requests, correct @prologic@twtxt.net?
My thoughts about pagination (paging)
Following the discussion about pagination (paging) I think that’s the right thing to do.
Fetching the same content again and again with only a marginal portion of actually new twts is unbearable and does not scale in any way. It’s not only a waste of bandwidth but with increasing number of fetchers it will also become a problem for pods to serve all requests.
Because it’s so easy to implement and simple to understand, splitting twtxt file in parts with next and prev pointers seems a really amazing solution.
As in RFC5005 there should also be a meta header pointing to the main URL, e.g. current or baseurl or something like that. This way hashes can calculated correctly even for archived twts.
**
🧮 USERS:3 FEEDS:6 TWTS:221 BLOGS:0 ARCHIVED:53815 CACHE:2111 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:221 BLOGS:0 ARCHIVED:53815 CACHE:2111 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
@jlj@twt.nfld.uk
Yup, jenny. She is so cool! 😋
**
🧮 USERS:3 FEEDS:6 TWTS:220 BLOGS:0 ARCHIVED:53495 CACHE:2116 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:220 BLOGS:0 ARCHIVED:53495 CACHE:2116 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
@movq@www.uninformativ.de
I would recommend a longer rotation, perhaps? The way I see it, you are proposing a monthly one. That can make metadata huge too. Maybe yearly, or every 6 months?
@lyse@lyse.isobeef.org awesome! i love failing test cases. Do you have them pushed up on a branch to check out?
**
🧮 USERS:3 FEEDS:6 TWTS:219 BLOGS:0 ARCHIVED:53234 CACHE:2064 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:219 BLOGS:0 ARCHIVED:53234 CACHE:2064 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
@fastidious@arrakis.netbros.com
Boot media created. All set an ready for this weekend. Woot!
sudo /Applications/Install\ macOS\ Monterey.app/Contents/Resources/createinstallmedia --volume /Volumes/USBDrive
@prologic@twtxt.net I’ve been working away on side projects: http://git.jb55.com. Trying more these days to not tweet about stuff I’m working on until I’m finished.
**
🧮 USERS:3 FEEDS:6 TWTS:218 BLOGS:0 ARCHIVED:52943 CACHE:2028 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:218 BLOGS:0 ARCHIVED:52943 CACHE:2028 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
@thecanine@twtxt.net
LOL. Now I need to convince my boss. 😩
D~d>1m and then fetched by !jenny -f. This brings back all deleted twts. Isn't lastmods used to skip older twts?
@movq@www.uninformativ.de
Yes, I did ask whether or not it was possible to move twts to an “archive” folder, but it will be the same at @stackeffect@twtxt.stackeffect.de experienced (which I have, too), that is, twts will “come back”.
There is no clear solution, I am afraid, right? It is the nature of the beast.
D~d>1m and then fetched by !jenny -f. This brings back all deleted twts. Isn't lastmods used to skip older twts?
I’m curious, what is your use case for deleting twts?
Not just deleting, also sorting into other folders is impossible.
It also doesn’t scale in the long term. When I cannot delete twts then I have a full copy of every twtxt I follow - forever. That’s a waste of bandwidth and disk space.
@movq@www.uninformativ.de How is deletion supposed to work? In mutt I deleted by D~d>1m and then fetched by !jenny -f. This brings back all deleted twts. Isn’t lastmods used to skip older twts?
**
🧮 USERS:3 FEEDS:6 TWTS:217 BLOGS:0 ARCHIVED:52648 CACHE:2015 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:217 BLOGS:0 ARCHIVED:52648 CACHE:2015 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
@fastidious@arrakis.netbros.com
Some signs from here: $ (one), $$ (two), $$$ (three).
@fastidious@arrakis.netbros.com
The signs show fine on jenny. So, it is a display thing. Probably related to Markdown.
**
🧮 USERS:3 FEEDS:6 TWTS:216 BLOGS:0 ARCHIVED:52412 CACHE:2110 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:216 BLOGS:0 ARCHIVED:52412 CACHE:2110 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
@prologic@twtxt.net
Temme about it! 🤪
No, it would be sufficient to skip avatar discovery when metadata does contain an avatar.
**
🧮 USERS:3 FEEDS:6 TWTS:215 BLOGS:0 ARCHIVED:52195 CACHE:2122 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:215 BLOGS:0 ARCHIVED:52195 CACHE:2122 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
@prologic@twtxt.net
Thank you, that’s the correct one.
Still I have this in my logs (first access of “eleven” by yarnd):
ip.ip.ip.ip - - [21/Oct/2021:20:05:36 +0000] “GET /eleven.txt HTTP/2.0” 200 344 “-” “yarnd/0.2.0@46bea3f (Pod: twtxt.net Support: https://twtxt.net/support)”
ip.ip.ip.ip - - [21/Oct/2021:20:05:36 +0000] “HEAD /avatar.png HTTP/2.0” 200 0 “-” “yarnd/0.2.0@46bea3f (Pod: twtxt.net Support: https://twtxt.net/support)”
And I guess without avatar.png sitting there I would have seen even more requests like /eleven.txt/avatar.png.
I’ve copied stackeffect.png to avatar.png to make yarnd happy when accessing stackeffect.txt.
So in this setup yarnd fetched eleven.txt along with avatar.png which belongs to another twtxt. This feels buggy.
**
🧮 USERS:3 FEEDS:6 TWTS:214 BLOGS:0 ARCHIVED:51989 CACHE:2112 FOLLOWERS:7 FOLLOWING:23
**
🧮 USERS:3 FEEDS:6 TWTS:214 BLOGS:0 ARCHIVED:51989 CACHE:2112 FOLLOWERS:7 FOLLOWING:23 ⌘ Read more
@prologic@twtxt.net
Keep in mind that there are plenty of icons already there, it is a quite busy “neighborhood”.
@prologic@twtxt.net
Validating the mention will be consuming, no? I mean, right now it takes a bit when clicking on the nick of an external user. Also, discovery occurs mostly by mentioning, yes? It seems a hard problem to solve.
@darch@twtxt.net
It will only use the nick of the person to whom you are replying, no the occasional never ending chain link of nicks. 😄
@prologic@twtxt.net
Kind of a pickle. I would say, if the user isn’t following the feed, then @something and @something@example.com doesn’t get linked.
We should be able to remove those subject hashtags, they’re just noise.
Yes! I would say they are not even needed on the web UI. You click conversations, and that’s done by Yarn. No need for humans to see it.
@prologic@twtxt.net
Yeah, it is kind of rubbish. 😬
@movq@www.uninformativ.de
Aha! Cool! Not just deleting, but proceeding as if the twt is going to be send. If I :q! on vi it will add an empty line. If, instead, I go :x like I normally do, it works as you said—and as I wanted it. Thanks!