Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
marijn
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
16 ms
·
121.
▲
by
marijn
11y ago
If you have ACE on there, you also need http://codemirror.net
122.
▲
by
marijn
11y ago
My ProseMirror [1] project is in the same space (including using persistent data model detached from the DOM). It has a richer, tree-shaped document model and collaboration [2], but not quite as much programmerpower behind it since I'm
123.
▲
by
marijn
11y ago
I am aware of those, but consciously chose not to use them. A hierarchical document model, as opposed to their linear one, has a lot of advantages, and OT is a pain to extend. See also http://marijnhaverbeke.nl/blog/col
124.
▲
by
marijn
11y ago
It was an IPv6 thing -- I had configured DNS properly but nginx wasn't listening on that interface. All my sites should now be IPv6-reachable.
125.
▲
by
marijn
11y ago
I agree with most of their analysis - I linked that URL from the indygogo blurb, in fact. They are doing something similar but less general.
126.
▲
by
marijn
11y ago
Yes. And most of that magic happens client-side, so server implementations can be thin (there's currently no general-purpose server, but I'll definitely open-source the demo).
127.
▲
by
marijn
11y ago
Works for me, and it's just a static page served up by nginx. Could it be your browser is trying to use IPv6? The only scenario I can think of is that I messed up the IPv6 DNS settings (which I couldn't test from home).
128.
▲
by
marijn
11y ago
The collab demo's backend is node.js. You could get collaboration to work by just relaying JSON between clients, but if you want to do intelligent things with the data (keep a snapshot of the current document, for example), you'll
129.
▲
by
marijn
11y ago
Which one was that? (Thing seem to be working for me.)
130.
▲
by
marijn
11y ago
Hi, I'm the author of the project. I'll be checking for comments here for the next hour or so. Ask me anything. [Well, time to sleep. I'll check back tomorrow.] If you check out one demo, look at this one: http://p
131.
▲
by
marijn
11y ago
Nope, does not exist yet. This is something I'll be working on once funding succeeds [1]. [1]: http://indiegogo.com/projects/prosemirror/
132.
▲
by
marijn
11y ago
> don't the coordinates of the cursor position depend on the rendering of the text which is under the browser's control? Yes, but you can ask the browser (using `getBoundingClientRect` and `getClientRects`, which also exist for
133.
▲
by
marijn
11y ago
Well, since there seems to be a JS rich text editing item on here every day now, let me just link to my up and coming project in this space again: http://prosemirror.net
134.
▲
by
marijn
11y ago
And this is why JavaScript's `lastIndexOf` method gets it wrong, wrong, wrong. (`"foo".lastIndexOf("o", 2)` yields 2, whereas I, and probably a lot of other people, would expect it to be 1, with the search starting
135.
▲
by
marijn
11y ago
> how difficult would it be to add multiple cursors and selections to Prosemirror? I notice that currently the Prosemirror collaboration demo does not show cursors or selections, which is pretty key to a great user experience. If you mea
136.
▲
by
marijn
11y ago
I am the author a recently-launched similar product [1], which also tries to contain the impact of contentEditable by capturing user actions and applying them to the document model in its own code. The main difference is that my system does
137.
▲
by
marijn
11y ago
Here's a direct link to ProseMirror's collaborative editing demo http://prosemirror.net/demo_collab.html#edit-Example (which is up, and fast)
138.
▲
by
marijn
11y ago
Thanks for summarizing the point of my project better than I've managed! Unfortunately, it seems that a HN frontpage spot isn't happening for this project. If you know of communities that might be more interested in it, let me kno
139.
▲
by
marijn
11y ago
Content-Kit looks extremely interesting, by the way. Funny that the announcement came just a few days before mine.
140.
▲
by
marijn
11y ago
Basically, yes, the document object is designed to be extended by user code, so you could add your own kinds of nodes (even allowing them to contain existing node types, as in a table), but for some nodes (like tables) the impact will proba
141.
▲
by
marijn
11y ago
ProseMirror is also definitely intended to keep out any considerations of the layout/look of the document. I hadn't seen substance.io yet.
142.
▲
by
marijn
11y ago
Yes, I coincidentally saw Shapiro's talk at the Curry On conference last month, and was quite inspired by that way of looking at the problem.
143.
▲
by
marijn
11y ago
This is a library providing the client-side editor component, with a bunch of modules (UI, collaboration), and a well-documented API through which to connect it to surrounding code. It is written in ES6. The persistent data structures are n
144.
▲
by
marijn
11y ago
I did consider such cases. My current theory is that it is unlikely that clients will keep up a torrent of updates so constant that there'll be a lag of more than, say, a second before any given change gets through. But if this would t
145.
▲
by
marijn
11y ago
Collaboration is a separate module, yes (though some of the design of the core was of course guided by its requirements)
146.
▲
by
marijn
11y ago
Yes, but that implementation deals only with plain text. The complexity seems to ramp up pretty quickly as you support more types of operations, and since extendability is an important concern for my project, I decided to avoid OT.
147.
▲
by
marijn
11y ago
> From my understanding, a correct transform function should allow exactly this A correct OT transform, yes. But I'm not using OT's invariants, so this is not something my transforms do. For example, in my system, if you have &
148.
▲
by
marijn
11y ago
A minimal backend can be extremely simple, just relaying changes, but if you want it to keep a running snapshot of the current document, you'll need the capacity to apply those changes to document, so you'd need to use the module
149.
▲
by
marijn
11y ago
Any non-commercial license will have to have implications similar to the GPL, and thus scare off most users, prevent projects from wanting to incur this as a dependency, and so on. It is one way to go, but will seriously limit reach. Also,
150.
▲
by
marijn
11y ago
I've been doing this for years with CodeMirror, but it has been A) a lot of bureaucracy to start and renew such contracts, and B) still not really a big enough source of income to cover the maintenance work.
More ›