@lyse@lyse.isobeef.org Hmmm Iām not sure sure I get what youāre getting at here. In order for this to be true, yarnd
would have to be maliciously fabricating a Twt with the Hash D.
i.e: there must be two versions of the Twt in the feed.
@lyse@lyse.isobeef.org This is true. But the client MUST supply the original too! Or this doesnāt work š¢
00:00 local time - Happy #SoftwareFreedomDay!
Hereās a map of all the events that are going to happen worldwide. In which are you going to participate?
Have a nice weekend everyone
The monthly reading tag for #September is #school, and I thought I would be reading fiction for it. But fate decided that the book in the picture would be released this month, so here am I fulfilling the thread by reading a non-fiction book about the high-school I attended to, a book I participate with along others that help form a collective memory spanning five decades - I am the youngest participant, having graduated from this high-school in 1999.
On my blog: Toots 𦣠from 09/16 to 09/20 https://john.colagioia.net/blog/2024/09/20/week.html #linkdump #socialmedia #quotes #week
If OTOH your client doesnāt store individual Twts in a cache/archive or some kind of database, then verification becomes quite hard and tedious. However I think of this as an implementation details. The spec should just call out that clients must validate/verify the edit request and the matching hash actually exists in that feed, not how the client should implement that.
@lyse@lyse.isobeef.org Yes you do. You keep both versions in your cache. They have different hashes. So you have Twt A, a client indicates Twt B is an edit of A, your client has already seen A and cached and archived it, now your client fetches B which is indicated of editing A. You cache/archive B as well, but now indicate in your display that B replaces A (maybe display, link both) or just display B or whatever. But essentially you now have both, but an indicator of one being an edit of the other.
The right thing to do here of course is to keep A in the āthreadā but display B. Why? So the thread/chain doesnāt actually break or fork (forking is a natural consequence of editing, or is it the other way around? š¤).
(edit:ā¦)
and (delete:ā¦)
into feeds. It's not just a simple "add this to your cache" or "replace the cache with this set of messages" anymore. Hmm. We might need to think about the consequences of that, can this be exploited somehow, etc.
@lyse@lyse.isobeef.org Iām all for dropping delete
btw, Or at least not making it mandatory, as-in āclients shouldā rather than āclients mustā. But yes I agree, letās explore all the possible ways this can be exploited (if at all).
@movq@www.uninformativ.de I think not.
What about edits of edits? Do we want to āchainā edits or does the latest edit simply win?
This gets too complicated if we start to support this kind of nonsense š¤£
@movq@www.uninformativ.de Thank you! š
@lyse@lyse.isobeef.org Walk me through this? š¤ I get what youāre saying, but Iām too stupid to be a āhackerā š¤£
But yes, at the end of the day if the edit request is invalid or cannot be verified, it should be ignored as treated as āmaliciousā.
@lyse@lyse.isobeef.org @movq@www.uninformativ.de So a client that has the idea of a cache/archive wouldnāt necessarily have to re-check that the Twt being marked as āeditedā belongs to that feed or not, the client would already know that for sure. At least this is how yarnd
works and Iām sure jenny
can make similar assertions too.
@lyse@lyse.isobeef.org @falsifian@www.falsifian.org Contributions to search.twtxt.net, which runs yarns
(not to be confused with yarnd
) are always welcome š¤ ā I donāt have as much āspare timeā as I used to due to the nature of my job (Staff Engineer); but I try to make improvements every now and again šŖ
@falsifian@www.falsifian.org You make good points though, I made similar arguments about this too back in the day. Twtxt v2 / Yarn.social being at least ~4 years old now š
@falsifian@www.falsifian.org Do you have specifics about the GRPD law about this?
Would the GDPR would apply to a one-person client like jenny? I seriously hope not. If someone asks me to delete an email they sent me, I donāt think I have to honour that request, no matter how European they are.
Iām not sure myself now. So letās find out whether parts of the GDPR actually apply to a truly decentralised system? š¤
LOL š This:
anyone could claim that some feed contained a certain message which was then removed again by just creating the hash over the fake message in said feed and invented timestamp themselves
Iād like to see a step-by-step reproduction of this. I donāt buy it š¤£
Admittedly yarnd
had a few implementation security bugs, but Iām not sure this is actually possible, unless Iām missing something? š¤
@david@collantes.us Very nice! š
And they have arrived (well, they did around 3 hours ago, LOL). Buttery smooth, my 16 Pro (one with dark cover). It took a bit over an hour to transfer all my data.
Ah, and now he is āconvenientlyā sleeping. How, well, convenient! LOL.
@lyse@lyse.isobeef.org yeah, tell us, @prologic@twtxt.net, what isnāt true? š¤ You canāt just go around, āthatās not true, and thatās not true; and that, and that!ā without spelling out exactly what isnāt, and why? For the love of god, why?! š
@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).
@david@collantes.us Thanks, thatās good feedback to have. I wonder to what extent this already exists in registry servers and yarn pods. I havenāt really tried digging into the past in either one.
How interested would you be in changes in metadata and other comments in the feeds? Iām thinking of just permanently saving every version of each twtxt file that gets pulled, not just the twts. It wouldnāt be hard to do (though presenting the information in a sensible way is another matter). Compression should make storage a non-issue unless someone does something weird with their feed like shuffle the comments around every time I fetch it.
.deb
to install Headscale, or some other method?
I ended up installing Headscale on my little VPS. Just in case the collide, I turned off WireGuard. Turning that one off (which ran on a container) also frees some memory. Headscale is running quite well! Indeed, I have struggled getting any web management console to work, but it really isnāt needed. Everything needed to commandeer the server is available through the CLI.
@falsifian@www.falsifian.org āI was actually thinking about making an Internet Archive style twtxt archiver, letting you explore past twtsā ā thatās an awesome idea for a project. Something I would certainly use!
(replyto:ā¦)
over (edit:#)
: (replyto:ā¦)
relies on clients always processing the entire feed ā otherwise they wouldnāt even notice when a twt gets updated. a) This is more expensive, b) you cannot edit twts once they get rotated into an archived feed, because there is nothing signalling clients that they have to re-fetch that archived feed.
@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.
@prologic@twtxt.net Do you have a link to some past discussion?
Would the GDPR would apply to a one-person client like jenny? I seriously hope not. If someone asks me to delete an email they sent me, I donāt think I have to honour that request, no matter how European they are.
I am really bothered by the idea that someone could force me to delete my private, personal record of my interactions with them. Would I have to delete my journal entries about them too if they asked?
Maybe a public-facing client like yarnd needs to consider this, but that also bothers me. I was actually thinking about making an Internet Archive style twtxt archiver, letting you explore past twts, including long-dead feeds, see edit histories, deleted twts, etc.
--fetch-context
, which asks a Yarn pod for a twt, wouldnāt break, but jenny would not be able anymore to verify that it actually got the correct twt. Thatās a concrete example where we would lose functionality.
@movq@www.uninformativ.de Hmmm not sure what I was thinking sorry š¤¦āāļøbeen a long day š
@movq@www.uninformativ.de Am I missing something? š
@movq@www.uninformativ.de Precisely š
@movq@www.uninformativ.de Is t it? You read each Twt and compute its hash. Itās a simple O(1) lookup of the hash in that feed or your cache/archive right?
@prologic@twtxt.net what time in UTC?
@prologic@twtxt.net cool, I will be there! Are you going to post the regular banner notice? It will serve as a reminder, at least for me.
AWESOME COOL Ć¢ĀĀ»
š Reminder that next Saturday 28th September will be out monthly online meetup! Hope to see some/all of you there š
Iāll try to reproduce locally later tonight
i kinda click a yarn then a fork and the back button. i have to do a few goes before it does it.
@lyse@lyse.isobeef.org I donāt think this is true.
@lyse@lyse.isobeef.org No thatās never a problem because we really only want to ānavigateā the web anyway not form threads of xonversation š¤£
--fetch-context
, which asks a Yarn pod for a twt, wouldnāt break, but jenny would not be able anymore to verify that it actually got the correct twt. Thatās a concrete example where we would lose functionality.
@movq@www.uninformativ.de this approach also wouldnāt work and when that Feed gets archived so youāll be forced to crawl archived feeds at that point.
The important bits missing from this summary (devil is in the details) are two requirements:
- Clients should order Twts by their timestamp.
- Clients must validate all
edit
anddelete
requests that the hash being indicated belongs to and came from that feed.
- Client should honour delete requests and delete Twts from their cache/archive.
@lyse@lyse.isobeef.org This is why hashes provide that level of integrity. The hash can be verified in the cache or archive as belonging to said feed.
@movq@www.uninformativ.de I think the order of the lines in a feed donāt matter as long as we can guarantee the order of Twts. Clients should already be ordering by Timestamp anyway.
@movq@www.uninformativ.de Pretry much š
@lyse@lyse.isobeef.org Sorry could you explain this sifferently?
Do you k ow what you clicked on before going back?
yarnd
PR that upgrades the Bitcask dependency for its internal database to v2? š
@eldersnake@we.loveprivacy.club Sweet thank you! šāāļø Iāll merge this PR tonight I think.
yarnd
PR that upgrades the Bitcask dependency for its internal database to v2? š
Seems to be working OK š¤
Pelos vistos antigamente havia uma coisa chamada ābaile tipo Cascaisā. Mas como o mundo subversivo dos anos 50 e 60 em Portugal nĆ£o estĆ” bem documentado, hĆ” zero resultados a uma pesquisa do termo nos motores de busca da Internet⦠resta-me a imaginação para tirar as conclusƵes (provavelmente erradas) de como seria tal baile.
On my blog: Real Life in Star Trek, The First Duty https://john.colagioia.net/blog/2024/09/19/first-duty.html #scifi #startrek #closereading
@david@collantes.us Well, I wouldnāt recommend using my code for your main jenny use anyway. If you want to try it out, set XDG_CONFIG_HOME and XDG_CACHE_HOME to some sandbox directories and only run my code there. If @movq@www.uninformativ.de is interested in any of this getting upstreamed, Iād be happy to try rebasing the changes, but otherwise itās a proof of concept and fun exercise.
@falsifian@www.falsifian.org hiya from the Sunshine State (also known as a never-ending hell, LOL)!
I forgot to git add a new test file. Added to the patch now at https://www.falsifian.org/a/oDtr/patch0.txt
@falsifian@www.falsifian.org this one hits hard, as jenny
was just updated today. :ā-(
its replacing the contents of body for some reason.
@david@collantes.us Hello!
@prologic@twtxt.net Hi. i have noticed sometimes when i hit the back button i lose all the surrounding layout and just have a list of twts.
BTW this code doesnāt incorporate existing twts into jennyās database. Itās best used starting from scratch. Iāve been testing it using a custom XDG_CACHE_HOME and XDG_CONFIG_HOME to avoid messing with my ārealā jenny data.
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.
Hmmā¦
@lyse@lyse.isobeef.org indeed! There is no ācentral authorityā acting as witness, and notary. The more I think of it⦠LOL.
@movq@www.uninformativ.de I recognise him, but yes, he has aged quite a bit. I mean, I look at myself in the mirror and canāt, often, recognise myself. Ageing is a bitch! š
compressed_subject(msg_singlelined)
be configurable, so only a certain number of characters get displayed, ending on ellipses? Right now the entire twtxt is crammed into the Subject:
. This request aims to make twtxts display on mutt
/neomutt
, etc. more like emails do.
I mean, really, it couldnāt get any better. I love it!
compressed_subject(msg_singlelined)
be configurable, so only a certain number of characters get displayed, ending on ellipses? Right now the entire twtxt is crammed into the Subject:
. This request aims to make twtxts display on mutt
/neomutt
, etc. more like emails do.
@movq@www.uninformativ.de perfect in every way. Configurable too! Thank you!
compressed_subject(msg_singlelined)
be configurable, so only a certain number of characters get displayed, ending on ellipses? Right now the entire twtxt is crammed into the Subject:
. This request aims to make twtxts display on mutt
/neomutt
, etc. more like emails do.
@movq@www.uninformativ.de yes, thatās perfect! <3
@eldersnake@we.loveprivacy.club I wanted to ask you, are you running Headscale and WireGuard on the same VPS? I want to test Headscale, but currently run a small container with WireGuard, and I wonder if I need to stop (and eventually get rid of) the container to get Headscale going. Did you use the provided .deb
to install Headscale, or some other method?
@david@collantes.us I think we can!
@prologic@twtxt.net I read it. I understand it. Hopefully a solution can be agreed upon that solves the editing issue, whilst maintaining the cryptographic hash.
yarnd
PR that upgrades the Bitcask dependency for its internal database to v2? š
e.g: Shutdown yarnd
and cp -a yarn.db yarn.db.bak
before testing this PR/branch.
Can I get someone like maybe @xuu@txt.sour.is or @abucci@anthony.buc.ci or even @eldersnake@we.loveprivacy.club ā If you have some spare time ā to test this yarnd
PR that upgrades the Bitcask dependency for its internal database to v2? š
VERY IMPORTANT If you do; Please Please Please backup your yarn.db
database first! š
Heaven knows I donāt want to be responsible for fucking up a production database here or there š¤£
yarnd
that I think have always been there, but only recently uncovered by the Go 1.23 compiler.
nevermind; I think this might be some changes internally in Go 1.23 and a dependency I needed to update š¤
Can someone much smarter than me help me figure out a couple of newly discovered deadlocks in yarnd
that I think have always been there, but only recently uncovered by the Go 1.23 compiler.
Location Addressing is fine in smaller or single systems. But when youāre talking about large decentralised systems with no single point of control (kind of the point) things like independable variable integrity become quite important.
What is being proposed as a counter to content-addressing is called location-addressing. Two very different approaches, both with pros/cons of course. But a local cannot be verified, the content cannot be be guaranteed to be authenticate in any way, you just have to implicitly trust that the location points to the right thing.
For example, without content-addressing, youād never have been able to find let alone pull up that ~3yr old Twt of me (my very first), hell Iād even though I lost my first feed file or it became corrupted or something 𤣠ā If that were the case, it would actually be possible to reconstruct the feed and verify every single Twt against the caches of all of you š¤£
@david@collantes.us I really thinks articles like this explain the benefits far better than I can.
@prologic@twtxt.net I know the role of the current hash is to allow referencing (replies and, thus, threads), and it also represents a āuniqueā way to verify a twtxt hasnāt been tampered with. Is that second so important, if we are trying to allow edits? I know if feels good to be able to verify, but in reality, how often one does it?
@movq@www.uninformativ.de could it be possible to have compressed_subject(msg_singlelined)
be configurable, so only a certain number of characters get displayed, ending on ellipses? Right now the entire twtxt is crammed into the Subject:
. This request aims to make twtxts display on mutt
/neomutt
, etc. more like emails do.
@david@collantes.us Oh ! š¤¦āāļø
@david@collantes.us Witout including the content, itās no longer really ācontent addressingā now is it? Youāre essentially only addressing say nick+timestamp or url+timestamp.
@prologic@twtxt.net I donāt trust Google with anything, sorry, pass. Oh, and you need to sign in on your Google Account (or whatever they call it these days).
@prologic@twtxt.net how about hashing a combination of nick/timestamp, or url/timestamp only, and not the twtxt content? On edit those will not change, so no breaking of threads. I know, I know, just adding noise here. :-P
Speaking of AI tech (sorry!); Just came across this really cool tool built by some engineers at Google⢠(currently completely free to use without any signup) called NotebookLM š Looks really good for summarizing and talking to document š
@eldersnake@we.loveprivacy.club there has to be less reliance on a single point of failure. It is not so much about creating jobs in the US (which come with it, anyway), but about the ability to produce whatās needed at home too. Whatās the trade off? Is it going to be a little bit more expensive to manufacture, perhaps?
@eldersnake@we.loveprivacy.club Yeah Iām looking forward to that myself 𤣠Itāll be great to see where technology grow to a level of maturity and efficiency where you can run the tools on your own PC or Device and use it for what, so far, Iāve found it to be somewhat decent at; Auto-Complete, Search and Q&A.
@prologic@twtxt.net Thatās definitely a little less depressing, when thinking of it that way 𤣠Be interesting when the hype dies down.
Iām not the biggest Apple fan around, but that is pretty awesome.
i found this site by searching āthing-fishā