Recent submissions

Comment · 5 years ago
Comment · 6 years ago
Nobody is demanding you do. But if you go around claimng people "got phished", then you should be sure.

I've also entered fake credentials into a clearly faked login form to see what'd happen. Would it redirect me to the right site? Just claim the information was wrong? Send me to a mock up of the intranet I was trying to access? You can call it bad policy if you want (although you don't know about my precautions), but it doesn't mean I was phished.

Comment · 7 years ago
I think you jumbled up the two paragraphs. Nowhere did I suggest that poor audio quality was because Android has to support more hardware.
Comment · 7 years ago
With fear of starting a fire here, are you using an Android phone?

I'm asking, because whenever I hear people complain about phone software that just breaks, it's almost always Android, and with good reason: They have to support a lot more phones than iOS, and Android is a lot more open.

So I just wanted to air the idea that you could try with an iPhone. iOS may lack some of the feature Android users are used to, but in my experience, it's just more stable, and I don't at all share the sentiment that "phones are unusable" or that the audio quality is bad or anything of the kind. If there's one device I can always count on working, it's my phone.

Comment · 7 years ago
That's an interesting project and good writeup!

Peer-to-peer OT has indeed been proven wrong many times (I've debunked a few papers myself as well), but client-server-based OT is very solid.

For the last 3 years, I've been the primary developer on Webstrates[1], an open source[2] research project that "makes the DOM collaborative", that is to say, as Google Docs (and your project) makes text editing collaborative (a subset of the DOM), Webstrate aims to make the entire DOM collaborative, allowing developers to easily built collaborative tools (such as text editors).

In fact, I just made a basic editor here (https://demo.webstrates.net/dom-editor/) in about 5 seconds. I just created a new webstrate (a "page" on the server) and added the `contenteditable` attribute to the body element. Of course, it dosen't have any of the rich text editing capabilities of your editor, but that's just a matter of adding more stuff directly in the DOM, e.g. https://demo.webstrates.net/shaggy-elephant-60/?copy.

Through those 3 years, there haven't been any DOM consistency errors caused by issues with the OT algorithm used.

Absolutely nothing wrong with CRDT – it's even on our own agenda to eventually develop a peer-to-peer-basd Webstrates using CRDT. I just wanted to point out that OT is a very viable alternative for client-server applications.

[1] https://webstrates.net/, [2] https://github.com/Webstrates/Webstrates

Comment · 7 years ago
Comment · 8 years ago
Any fake-Facebook website can copy Facebook's favicon, so that wouldn't add any security at all.

An identicon is a hash value represented as an icon. "facebook.com", for instance, may hash to a red image with a yellow line through it. While you wouldn't remember the icon initially, over time you would – or at least your subconsious would. If you ever visisted a fake-Facebook, you'd immediately notice that something was wrong if the icon suddenly was green with a blue dot in it, for instance.

Comment · 8 years ago
You're absolutely right, but I'd also never suggest a collaborative system for anything critical. As I've said earlier in this thread: If you're in a Google Docs document with a buddy and you write "A" and he writes "B" at the same time, you also don't know whether that'll show up as "AB" or "BA". In practice, this isn't an issue.
Comment · 8 years ago
I'm not one to dictate how technologies like these are to be used, but all I can say is that in the almost two years I've been working on Webstrates – a collaborative system using a very similar technology – this has not been an issue.

But surely, if you allow malicious actors to modify your document, then that's your problem right there.

Comment · 8 years ago
We've been wanting to try a CRDT-based implementation with Webstrates for some time, but haven't found a suitable implementation, so this looks very promising!

Any particular reason why you choose CRDT over OT?

Comment · 8 years ago
Why is that a restriction? You can make any changes to the JSON you wish, you just have to use their API.
Comment · 8 years ago
There is a change history. No changes are lost.
Comment · 8 years ago
This isn't for a banking system, this is for building collaborative apps. If you press "A" and your friend press "B" into a Google Docs document at the same time, you also don't know if the document is going to read "AB" or "BA". In practice, this is not an issue.
Comment · 8 years ago
Comment · 8 years ago
Then there'd be a negative amount of apples. It's not impossible if you disregard context.

There is nothing new about doing things like this, OT and CRDT have existed for ages. Check out ShareDB (https://github.com/share/sharedb) or Webstrates (https://webstrates.net/) (based on ShareDB). In Webstrates, we don't have merge conflicts that need to be resolved and there are never any practical synchronization issues. The server orders the operation and if you try to delete something that's already been deleted, then we just ignore your operation.

Also quite courageous to say something is impossible when you have the code that does it right in front of you. ;-)

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton