Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
kevinjahns
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
6 ms
·
1.
▲
by
kevinjahns
4mo ago
Yjs has a bunch of ports to other languages (including rust, python, and go). They are maintained in the Y-CRDT org.
2.
▲
by
kevinjahns
6mo ago
docs.yjs.dev I'm currently working on a major rewrite and it would be great to start off with great documentation! It might be interesting to explain new concepts in the field of collaborative editing (e.g. how to attribute content). F
3.
▲
by
kevinjahns
7mo ago
Yjs is about making things easy. It is a good abstraction to make anything collaborative (not everyone can implement something like prosemirror-collab). I'd take the slight performance overhead any day if I get guaranteed syncs. Networ
4.
▲
by
kevinjahns
7mo ago
This is not a fundamental issue. Node splitting can be represented in CRDTs. It's just really hard to map correctly to ProseMirror as the merge logic is complex and bound to a schema. I don't blame you for ProseMirror for being ho
5.
▲
by
kevinjahns
7mo ago
I believe that node-splitting in y-prosemirror can be solved. But I hope that you also can appreciate that mapping prosemirror to a CRDT structure is a very complex thing to do. Your schema implementation and node-splitting behaviors are ex
6.
▲
by
kevinjahns
7mo ago
You misunderstand how the "document replacement" in y-prosemirror works. It's like arguing that React is bad because it performs a complete document replacement on every change. The diffing part makes it fast. That said, it&#
7.
▲
by
kevinjahns
7mo ago
Hi, the author of Yjs here. Thanks, Nick, for chiming in! As this article is blowing up now, I want to address a few points. I, too, feel the need for simplicity over overly complex solutions - and I found it in CRDTs. They beautifully allo
8.
▲
by
kevinjahns
3y ago
Author of Yjs here. I'm all for faster data structures. But only benchmarking one dimension looks quite fishy to me. A CRDT needs to be adequate at multiple dimensions. At least you should describe the tradeoffs in your article. The ti
9.
▲
Evernote enables real-time collaborative editing (using CRDTs)
(evernote.com)
1 points
by
kevinjahns
3y ago
|
0 comments
10.
▲
by
kevinjahns
4y ago
Work with us! The y-collective [1] is building the foundational technologies for local-first, collaborative applications based on CRDTs. [1]: https://opencollective.com/y-collective
11.
▲
by
kevinjahns
4y ago
It's interesting to me that people still doubt that CRDTs can be used in practice. The fact is that they are already being used in practice by many companies with millions of users for applications like rich-text editing and state mana
12.
▲
by
kevinjahns
5y ago
Instead of building another shared-editing solution specialized for Matrix, there could be an API that can be used to store and distribute real-time updates efficiently (probably in the Matrix DAG). The matrix-crdt works really well. To red
13.
▲
by
kevinjahns
5y ago
What I dislike about these attempts is that you will just end up with yet another CRDT implementation that is incompatible with the existing ecosystem (editors, drawing apps, state management, ...). Instead, I want to encourage you to build
14.
▲
by
kevinjahns
5y ago
I can only answer to the last question. Yjs uses several performance optimizations to produce small documents (both in memory and in the encoded state). Since humans type relatively slow (<60 actions per minute), it is impossible for hum
15.
▲
by
kevinjahns
5y ago
This looks similar to SyncedStore which was posted just yesterday: https://news.ycombinator.com/item?id=29483913
16.
▲
by
kevinjahns
5y ago
Yjs author here. On network failure, the client will automatically reconnect and synchronize with the backend. And yes, you can get an event that notifies you about the current connection status. When syncing with the server, you will only
17.
▲
by
kevinjahns
5y ago
Yjs author here. Yjs ships a flexible selective undo-redo manager. You can define one (or several) undo managers that listen to changes that you want to be able to undo&redo. https://docs.yjs.dev/api/undo-manager
18.
▲
by
kevinjahns
5y ago
I know that it is hard to comprehend why modern CRDT implementations are fast. But the data confirms that they work great. OT seems to be much simpler, but there are real advantages in using CRDTs. The performance problems have been solved
19.
▲
How we made Jupyter Notebooks collaborative with Yjs
(blog.jupyter.org)
8 points
by
kevinjahns
5y ago
|
0 comments
20.
▲
by
kevinjahns
5y ago
Yjs is exactly that. It is a simple abstraction for building any kind of collaborative application. It has ready to use solutions for most problems related to this problem space. The selective UndoManager, for example, is generic&config
21.
▲
by
kevinjahns
6y ago
Neither of them says that. The xi CRDT was not about shared editing. The second paper just says that CRDTs are not superior per se. But CRDTs are being used in production for text editing and they are performant if implemented correctly (ev
22.
▲
by
kevinjahns
6y ago
My projects get a very discouraging rate of ~60%. That is probably because I reject a lot of PRs created by bots (dependabot, security fixes if they are only to dev dependencies). Maybe because I merge commits manually. I remember rejecting
23.
▲
by
kevinjahns
6y ago
- The gorgeous automerge API frontend ported across I want all of that too. Although I would add Automerge's API on-top of Yjs as an additional layer. It really does play nicely with Web Frameworks like react. Although for building edi
24.
▲
by
kevinjahns
6y ago
What are you missing from Yjs? I'm sharing the vision with you that things should just work. It literally takes you two lines of code to make any of the supported editors collaborative. The Yjs types are a minimal abstraction over the
25.
▲
by
kevinjahns
6y ago
> I have a strong sense of despair seeing how much time I’ve wasted investing in approaches which won’t feature strongly in the future. Your comment makes me sad on several levels.. Firstly, ShareJS and OT types was the first open framew
26.
▲
by
kevinjahns
6y ago
Based on the [B4] benchmark, we can predict the size Yjs document representing the complete editing history of the Linux kernel (probably the largest Git repo ever created): 864 MB. The size of the Git repository is currently 1.1 GB. So Yjs
27.
▲
by
kevinjahns
6y ago
I think we can agree on that. CRDT vs OT is a complex topic with lots of pros and cons for either side.
28.
▲
by
kevinjahns
6y ago
Great! :)
29.
▲
by
kevinjahns
6y ago
Since there is no concurrency in contact tracing (only you will manipulate your own data), a CRDT might be an unnecessary overhead. The German Corona-Warn-App is a decentralized approach for contact tracing. It's awesome, you should c
30.
▲
by
kevinjahns
6y ago
OT comes with very different problems when it comes to representing tables. Structured content (tables, tables containing tables, tables containing quotes containing tables, ..) is much better represented using CRDTs. And another note, Yjs
More ›