Algorithm applied before v0.3.2

I am reviewing again the OT algorithm and I want to know where can I find more about how HedgeDoc used to work before its implementation and all the problems with the old algorithm. Cheers!

That sounds like some code archeology you are about to do. I don’t know about the rest of the community, but when I joined the project OT was already used, so there isn’t that much I can tell you. But who know, maybe we have someone beardier than me around who can tell stories about the war.

Don’t forget your pickaxe when you go code digging.

(btw: HedgeDoc 2 will use CRDT provided by https://github.com/yjs/yjs)

I read about that here :smiley:

I also have this useful links if someone else wants to know more about CRDT:

  1. Wikipedia article
  2. Yjs site
  3. Yjs docs
  4. Yjs example
  5. CRDTs: Consistency without concurrency control (2009/06)
  6. A commutative replicated data type for cooperative editing (2009/06)
  7. Conflict-free Replicated Data Types (2011)
  8. Yjs: A Framework for Near Real-Time P2PShared Editing on Arbitrary Data Types (2015/06)
  9. Near-Real-Time Social Computing (2015/09)
  10. Towards a text editor construction kit (2019/05)
  11. Collaborative Editing in CodeMirror (2020/05)
  12. CRDTs: The Hard Parts (2020/07/06)
  13. text-crdt-rust (2020/07/23)
  14. Are CRDTs suitable for shared editing? (2020/08)
  15. I was wrong. CRDTs are the future (2020/09)

As far as I understand, CRDT allow to be P2P instead of relying on a server. If it is like that, how it will fit in HedgeDoc backend?

I have a lack of context, can you rephrase this?

Something like that, yep. I am part of a net of online communities in Latinamerica where we have being building common infrastructure and collaborative work outside gafam services is a priority —our tech infrastructure comes from political organization, something that it could require a particular taste inside tech world—. So we have being trying different tools, for pads we had tested Etherpad, Cryptpad and, of course, HedgeDoc. Because of our geography, economy and policies, having a server is something that sometimes we can’t even afford or we can only afford low cost hosting, plus state surveillance is a common place, so any alternative that is more distributed or decentralized it is always welcome.

In this particular case, I am trying to find out the decision making in which different tech (algorithms, libraries, protocols) have being replaced because maybe in the old algorithms we can find something that is useful for our needs. Or at least a deeper acknowledge of a form of writing that we see it has a lot of (political) potential.

Anyway, I guess I will have to go back in the commits to find and answer to the question of this post. Thanks!

You don’t have to use the p2p communication. You can also use a server.

Just a joke. It’s very old code.

:smile: Well, it would be interesting to see the CRDT implementation!