@lyse@lyse.isobeef.org See @movq@www.uninformativ.de ’s undersanding. Now this had some edge cases that we agreed probably aren’t worth solving for.
@prologic@twtxt.net I’m afraid, I don’t understand how the edit detection works so that it does not break threads. All I see is that some hash in a subject is missing.
twt
probably isn't the best client I'm afraid. It doesn't really cache twts by their key (hash) to display threads properly. Jenny however does 👌
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)
@prologic@twtxt.net Okay. So it goes like this:
My client fetches a feed. It builds a map/hashmap/dictionary of all twts: Timestamps map to twt hashes. It then stores/shows the twts. It also stores the hashmap.
On the next fetch operation, the client re-processes all twts in the feed. It must now compare each timestamp to the previously built hashmap: Aha, timestamp T
has now a twt hash of B
instead of A
, so this is an edited twt.
Did I understand that correctly so far? 🤔
Thank you very much, @prologic@twtxt.net! When leaving the unpleasant towns, one can really enjoy the stunning landscape here. Very refreshing.
Yep, these are some sick mushrooms. No idea what they are, though. Not sure if they’re edible more than once or not, but I have a feeling that one should refrain from trying. The ones I photographed here were in a nature reserve. They were a bit bigger than the others we came across on meadows. Still impressive sizes nevertheless.
@lyse@lyse.isobeef.org Pretty nice views 👌 I enjoyed reading this. It was though I were there in the morning walking with you guys up to the summit man those mushrooms really are quite some aren’t they? 🙃
@movq@www.uninformativ.de Yes! Basically @david@collantes.us points out that if we mandate that authors should retain the original timestamp in their feed when adjusting content, making fixes, etc, that they retain the original timestamp and leave it unaltered. We already do this anyway, we just need to say so.
Now we have a situation where folks participating in a “conversation” (thread) with appropriate clients can automatically detect edits with almost 100% accuracy by mere fact that the next time they fetch a feed that contains an edit, they now see two versions of the Twt with two different hashes, but identical timestamps.
You can use the fetch time to approximate a “version number” and deal with the display (UX) appropriately.
I can’t believe I didn’t think of this before 🤦♂️
@prologic@twtxt.net Any more details on the edit stuff? 🤔
@doesnm@doesnm.p.psf.lt I will have something up soon™ 🤞
@doesnm@doesnm.p.psf.lt twt
probably isn’t the best client I’m afraid. It doesn’t really cache twts by their key (hash) to display threads properly. Jenny however does 👌
Yesterday’s April weather offered nearly everything. Sun, rain, clouds, wind. Luckily, the rain wasn’t too bad, we precautionally brought our rain jackets and took cover under some trees for 5-10 minutes. From then on, it alternated mostly between sunny and cloudy. Perfect conditions for photography.
The 16°C felt pretty cold with all the wind. Especially at the summit for a late lunch. The clouds covered the sun for almost the entire time and the wind blew hard. Being sweaty from the way up didn’t help. The sun returned as soon as we packed up.
On the way home, it drizzled just a little bit, although the clouds were really dark. A nice surprise. All in all, we had a really nice hike. As a bonus, my mate established a new train ride record low to get home, despite all the Octoberfest crap going on right now.
From my 395 photos, I only kept 40: https://lyse.isobeef.org/waldspaziergang-2024-09-28/ In 18’s upper left corner you can see a black beetle similar to what I’ve seen earlier this week. The one that rolled over its side to change directions, this one didn’t, though.
The mushroom in 35 and 36 was enormous, easily 20 centimeters in diameter. We came across a few of them along our journey.
Only with dovecot xD. For mail im use android native mail client and not mutt. And jenny display some errors with found some files and /tmp dir (android dont have /tmp)
twet display twts in raw format with some formatting (sadly no newlines). And for reply messages i just seen (#hash). But which text hidden on hash? currenly im open twtxt.net/twt/hash to see this
Yes, im also do not like Hugo so rewrite theme above to Jekyll (with some changes)
Here’s what I’ve got so far…
@doesnm@doesnm.p.psf.lt Thanks! I’ve almost come up with my own theme already 🤣 I actually don’t really want to use Hugo at all, I find it too complicated. But it is pretty popular so I thought maybe I’d rip-off a nice theme… Hmmm 🧐
Anyway, What I really normally use for a lot of my static sites is zs
I’m looking to develop a static site for twtxt.dev – A domain I own and have wanted to use for developer and specification docs for Twtxt.
Can anyone recommend a few Hugo themes you like?
All of the dev.twtxt.net content would move over as well.
@doesnm@doesnm.p.psf.lt I am not sure I am understanding what you mean. Can you explain?
How to read twts without browser? I dont understand context in reply messages
I shall be there (here?). LOL.
Lol, im just join for several minutes. Wait, Merkle Trees in twtxt?
Cya y’all again next month (2nd Sat in Oct) 🤞
👋 Thanks for joining us on our Sept monthly Yarn.social meetup today y’all 🙇♂️ We had @david@collantes.us @sorenpeter@darch.dk @doesnm@doesnm.p.psf.lt @falsifian@www.falsifian.org and @xuu@txt.sour.is 💪 Nice turn out! (not all at once of course, as we normally run this over 4 hours as we span many time zones!)
Things we talked about:
- Decentralised vs. Distributed
- Use of SHA256 for Twt Hash(es)
- We solved Edits! 🥳
- UUID(s) probably won’t work! (susceptible to sppofing)
- Helped @sorenpeter@darch.dk write some PHP to process/parse
User-Agent
and service his feed via a custom PHP script 😅
- @falsifian@www.falsifian.org introduced himself 👌
- Talked about Merkle Trees 🌳
Did I miss anything? 🤔
yarnd
and WebSub Media
And here’s a dashy of the no. of notify requests (from WebSub)
@aelaraji@aelaraji.com come! @movq@www.uninformativ.de come! @xuu come! @abucci@anthony.buc.ci come!
The lottery is open for everyone, and the pool is small, so chances are you will (might?) be the winner. Come check, and see if you are the winner!
Come join us!
Happening now: https://meet.mills.io/call/Yarn.social
@sorenpeter@darch.dk well edits can be detected with either approach really
Summary of Discussions (as best I can):
- @lyse@lyse.isobeef.org and @sorenpeter@darch.dk express simplicity. Both Lyse and Sorenpeter support location-based addressing.
- @falsifian@www.falsifian.org believes we should continue to develop ideas and extensions progressively over time like we’ve always done.
- @david@collantes.us @quark@ferengi.one and @bender@twtxt.net would like a better user experience, especially when threads break due to edits, deletions or feed location changes.
- @anth@a.9srv.net would like to see utf-8 mandated, and the threading model remain largely the same as it is today, which is primarily based on the convention of a Twt Subject anyway, Twt Hash(es) just make the threading “more precise”. Anth also states that format, client and server specification/recommendations should be kept separate.
- @movq@www.uninformativ.de @xuu@txt.sour.is sorry you two haven’t said too much really, so I’m not too sure?
Overall, the 22 votes we’ve had on the poll from the community (if you can call it a community?) have clearly shown that:
- We continue to support content-based addressing. (65/35)
- We think about formally supporting edits/deletes (60/40)
- We do not increase the use of cryptography (thworing things like authenticity and identity out the window) (70/30)
And overall the NPS (net promoter score) of “Would I recommend Twtxt to a friend” is a whopping 7/10 (which is crazy! 🤯)
Let’s have our monthly catch up soon™ (1hr) and discuss together. My own take on the direction we should take at this point is as follows:
- We continue to use hashing for the threading model.
- We think about changing this to SHA-256 for simplicity.
- We think about changing this to SHA-256 for simplicity.
- We either adopt @anth@a.9srv.net’s UUID approach or @lyse@lyse.isobeef.org Dynamic URL approach.
- We continue to incrementally/progressively improve things over time as @falsifian@www.falsifian.org suggested.
- We think about mandating utf-8 as @anth@a.9srv.net suggests which makes things so much easier for everyone.
- We further discuss the merits/ideas of supporting formal Edit/Delete requests or other ways to better support this in some way.
@lyse@lyse.isobeef.org Got time now before you head off?
@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;)
@prologic@twtxt.net Yeah, we’re out around this period, so the odds of me even joining at the end are pretty much zero.
But that shouldn’t matter too much, as y’all know my point of view. I’m in the not so popular simplicity camp. ;-)
In any case, I wish you all some great fun and good discussions! :-)
@xuu@txt.sour.is Oh geez! Is this anywhere near you?
People stranded on the roof of a hospital in Tennessee after hurricane Helene
Wild flooding in Ashville, NC due to Hurricane Helene
@falsifian@www.falsifian.org Thank you! 🙏
If we want this though (or some of us do) I will probably have to make the hard decision here to just fork from Twtxt entirely and define a completely new spec. If we care about the UX we need a few properties (some of which we have, some of which we don’t have and some of which are “weak”):
- Authenticity
- Integrity
PrecisionVersioning
The last one involves actually supporting the notion of “Edits” and “Deletes” IMO more formally. Without this it would be quite hard to support a strong/good UX. Another way to think about this is “Versioned Twts”.
I think the only legit way of preventing this kind of “spoofing attack” would be:
Digitally Sign Twts: Each Twt could be digitally signed using a private key associated with the UUID. The signature would be calculated over the concatenation of the UUID, timestamp, and content. The public key could be published along with the feed so anyone can verify the authenticity of the Twt by checking the signature. This approach ensures that only the true owner of the UUID (and the corresponding private key) can produce valid hashes.
Which leads us to more Cryptography. Something which y’all voted against.
@bender@twtxt.net This is sadly where you need two things:
- A
/twtxt.txt.sig
(detached signauture)
- Or a way to sign the
# uuid =
with a key that can be verified.
Hmmm and as I write this actually, I think this doesn’t work either, because you can still just copy it regardless. Hmmm @xuu help me out here? How do we prevent “spoofing”? 🤔
Diving into mblaze, I think I’ve nearly* reached peek email geek.
Just a bunch of shell commands I can pipe together to search, list, view and reply to email (after syncing it to a local Maildir).
EXAMPLES at https://git.vuxu.org/mblaze/tree/README
So far I’m using most of the tools directly from the command line, but I might take inspiration from https://sr.ht/~rakoo/omail/ to make my workflow a bit more efficient.
*To get any closer, I think I’d have to hand-craft my own SMTP client or something.
That page says “For the best experience your client should also support some of the Twtxt Extensions…” but it is clear you don’t need to. I would like it to stay that way, and publishing a big long spec and calling it “twtxt v2” feels like a departure from that. (I think the content of the document is valuable; I’m just carping about how it’s being presented.)
It’s for this reason I’d like to try changing the Twt Hash extension to use SHA-256 which is a far more common tool available pretty much everywhere. I think the effort involved in “precise threading” (using content addressing) becomes much easier to “author” (note that participating in an existing thread has always been trivial, just copy the Twt Subject in your Twt).