Chronofold: A data structure for versioned text (2020)
arxiv.org
arxiv.org
You can find a few implementations (1, 2) to play with now if you’re interested…
I found the video series [3] in the latter particularly interesting in trying to understand it, if you’re game to sit through a few hours of live stream.
[1] - (rust) https://github.com/dkellner/chronofold
[2] - (js) https://github.com/jmatsushita/purescript-chronofold
and for [2] it is still an "open question", as per their Readme.
Edit: I’m apparently wrong on the “abandoned” part. The author of this repo wants to maintain it and accepts bugs and issues on github, https://news.ycombinator.com/item?id=28025692
GP's not really complaining, they're just warning people. And the reality is that submitting an issue can take a lot of time. I don't even bother submitting bug reports to Microsoft anymore because their burden for reproducibility is so high that they're basically asking me to reverse-engineer their software to find their bug for them.
When you write a reply, P would be the one you're replying to. GP is the reply the person you reply to was replying to
I found it interesting, and something I will have to read a few more times before all the details make sense.
The idea of collapsing the structure when individual changes are no longer needed is appealing in terms of space saving.
I look forward to seeing this implemented.
In a sense these are quite closely related, the challenge with caches is when they go out of sync with their source data, as then reads/writes against the cache/source could appear to violate causality.
I think the first page or so of the paper is very approachable, explaining well the history of these kinds of ideas and the advantages of Chronofold, did you try reading it?
I took from it that this was a novel "locality" approach that was different than CRDT'S.
This is far from my area of expertise, so I guess 'approachable' is relative? Was hoping that (in the fine tradition of HN) someone who knows a lot more about this stuff could chime in.
I'd really like to learn some of this for a number of projects I'm working on, and I'm not sure where the best place to direct my focus is. ShareJS is OT based, iirc, and but quill js has some basic support for it too. CRDTs are a bit voodoo to me. This is something else?
Sorry if it's a remedial question, would appreciate any advice or insight.
If I could answer your question I would but I don’t know this domain well enough (^_^)
Don't let the curse of knowledge be an excuse to be rude to people.
Don’t let the curse of not reading be an excuse to be rude to people.
Maybe not light reading?, but accessible still.