2,010 karma · joined May 4, 2009
It looks like it tries to be backend-agnostic, and do the sync work on the client side.
ShareJS and "Operational-Transformation" (used by Firepad) are decent, but in my opinion aren't general enough and may even have some algorithmic flaws.
And yes, it's time this was solved, and it wasn't necessary to re-implement the basics for every collaborative project.
OT works naturally with linear data structures, but is tougher to use correctly with more complex data, which Mozilla seems to have here with Towtruck.
I'm excited to see what approach they choose!
Given Mozilla's profile and resources, maybe they'll come up with a novel solution!
I always find myself returning to the "boring, old-fashioned" way of doing things (like server-side processing or relational databases) and these do indeed seem like the best choices for many applications.
But I don't see how this calls client-side MVC into question, except that perhaps it's considered as a default choice too often.
Very interesting use of statistics by these guys.
There seems to be a mirror here http://interestingreads.posterous.com/why-you-should-never-p...
Or maybe not - routing in Ember has changed a lot, even over the last week.
I agree that the Ember docs are pretty weak and missing some key pieces that one might miss when starting out.
Check out http://emberjs.com/ or http://emberjs.tumblr.com/ for more info.
As I mentioned, I hope to contribute tests to show that everything's peachy. Not trying to talk trash about this great library.
http://incubator.apache.org/wave/
The architecture for Wave is really difficult to get a handle on, though.
Relative ease of use is a major benefit of ShareJS, though I can't fully vouch for its algorithmic correctness. I've been meaning to contribute some additional tests to the project.
http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/q...
I'm comparing details on deferred updates and ease of integrating an OT-type collaboration layer. Derby's already starting to head this way and appears very promising, but I think there are subtle issues both in ShareJS and Derby's implementation. I'm curious how collaboration would work on some of these other libraries, and Angular seems to be thoughtfully architected, if somewhat large.
Also, the concurrency models of all the JS frameworks of this nature appear to be pretty immature at first glance. Derby is starting to attach parts of ShareJS, but I don't see much else that looks particularly promising in other frameworks. I'm not sure that you can "partially" implement OT (or mix-and-match parts of different solutions), which perplexes me about some of the code I've seen in the area, even in ShareJS.
Anyway, this looks like a valuable contribution, and it's always good to see more well-supported tools in the Node ecosystem.
If I edit a URL, stashmarks doesn't reflect the change in the UI, at least when the original is still pending download. Looks like it's actually changed internally.
Also, I can't delete (or edit) a bookmark in stashmarks that I no longer have saved in my browser. Recreating it and deleting that does nothing, even when logged out and then in.
Hope these critiques are helpful.
Clearly, these are all edge cases, and overall your service is impressive.
(I also agree with the comment below that it's an edge case for most users, especially Chrome sync users.)