Live data from Hacker News

Viewing profile — mweidner

mweidner

HN member
Joined
Mon, Oct 16, 2023, 6:28 PM UTC
HN karma
103
Public activity
43 items

About mweidner

Collaborative software at Common Curriculum / CMU. I write about CRDTs etc.: https://mattweidner.com/

https://bsky.app/profile/mweidner.bsky.social https://twitter.com/MatthewWeidner3

Recent public activity

  1. comment
    Comment #48407052

    Indeed, I do not buy this argument. Would China's progress be close to where it is today without the US labs' examples? Would any of this be happening if OpenAI had not created Cha…

  2. comment
    Comment #48404628

    The folks I met who were talking about AI Safety in 2018 were certainly sincere, and the two people I knew who later joined Anthropic seem like the type to do it for the greater go…

  3. comment
    Comment #48404067

    Is the idea to keep the world in balance via MAD? I could see that, though it's a dangerous gamble. From Richard Rhode's "The Making of the Atomic Bomb", I got the impression that …

  4. comment
    Comment #48403957

    I fail to see how pursuing recursive self-improvement at full speed is compatible with Anthropic's stated goal of AI Safety. If nukes were not invented yet, would it really be a go…

  5. comment
    Comment #48229091

    For values that don't have a natural merge function (or where you don't want to bother writing one), would it make sense to sync update logs instead? That is: - The synced value is…

  6. comment
    Comment #48184472

    A CRDT that operates on code units should work out okay, because each grapheme cluster will always be inserted and deleted in a single edit - hence it should stick together in the …

  7. comment
    Comment #47482776

    I'm surprised to see the emphasis on tracking lines of text, which ties in to the complexity of merge vs merge-the-other-way vs rebase. If we are committed to enhancing the change …

  8. comment
    Comment #47482608

    You can think of the semantics (i.e., specification) of any CRDT as a function that inputs the operation history DAG and outputs the resulting user-facing state. However, algorithm…

  9. comment
    Comment #47482481

    While this is technically correct, folks discussing CRDTs in the context of text editing are typically thinking of a fairly specific family of algorithms, in which each character (…

  10. comment
    Comment #47405338

    Your part 1 post was one of the inspirations for that :) Specifically, it inspired the question: how can one let programmers customize the way edits are processed, to avoid e.g. th…

  11. comment
    Comment #47399661

    The rebasing step is indeed a transformation. Some info in the "rebasing" link here [1]. Unlike traditional Operational Transformation, though, there are no "transformation propert…

  12. comment
    Comment #47399426

    The PowerSync folks and I worked on a different approach to ProseMirror collaboration here: https://www.powersync.com/blog/collaborative-text-editing-ov... It is neither CRDT nor O…

  13. comment
    Comment #47398481

    This was my impression as well. If you ignore the paper and just look at the source code - and carefully study Seph Gentle's Yjs-like RGA implementation [1] - I believe you find th…

  14. comment
    Comment #46920205

    Managing "a flat-ish collection of nodes" that can be moved around (without merely deleting and re-inserting nodes) is tricky because of how paragraphs can be split and merged. Not…

  15. comment
    Comment #45341411

    > More specifically, if you can edit different parts of a same document on different devices, then the document should be split across multiple files that can be synced independent…

  16. comment
    Comment #44958086

    Indeed, Replicache works this way, using server reconciliation (one part of client-side prediction): https://doc.replicache.dev/concepts/how-it-works

  17. comment
    Comment #44069065

    This sounds similar to the idea behind articulated (though with ids UUID-counter instead of time-counter): https://github.com/mweidner037/articulated I will check out Antirez.

  18. comment
    Comment #44057600

    A decentralized, eventually consistent total order on operations is a fully general CRDT, in the sense that you can put whatever (deterministic) operations you want in the total or…

  19. comment
    Comment #44057497

    As the author, same. My best guess is: - Central-server collaborative editing work focuses on Operational Transformation (OT), likely due to inertia (studied since 1989) and the pe…

  20. comment
    Comment #44056088

    Even in the absence of a central server, you can still avoid CRDT/OT complexity if you have a decentralized way to eventually total order operations & apply them in that order: htt…

  21. comment
    Comment #44055419

    Indeed, this is close to what Yjs (popular CRDT library) does: each client instance (~ browser tab) chooses a random 32-bit clientId, and character IDs combine this clientId with l…

  22. comment
    Comment #44055341

    I believe that Automerge internally stores all operations in an eventually consistent total order, which you can use as a substitute for the server in server reconciliation (cf. ht…

  23. comment
    Comment #43437255

    Indeed, the simple approach of "send your operations to the server and it will apply them in the order it receives them" gives you good-enough conflict resolution in many cases. It…

  24. comment
    Comment #42347227

    You could avoid the CRDT rules if you only use the LLM on the server. I.e., user comes online and sends their diff to the server, which LLM-merges it into the latest state and then…

  25. comment
    Comment #42345683

    One challenge is that the algorithms typically used for collaborative text editing (CRDTs and OT) have strict algebraic requirements for what the edit operations do & how they inte…