I am not prone to melodramatic statements, but seeing this I had the same feeling I had the first time I started using GMail.
It's not necessarily the DOM sharing, which is cool enough. I just think that the emergence of sockets in new browsers is going to bring in the "next level", whatever that ends up being.
Seriously incredible, especially considering the development timeframe.
It's fun, yes, but at the same time, it's nostalgic.
We've had such technology for decades. There have been desktop sharing apps for years, in Java applets etc.
So whilst it's cool that the browser wars are generating a ton of improvements, none of them so far are really things that will blow users minds. HTML5 is just catching up to where other platforms were 10 years ago.
Websockets, local storage, canvas, css3, fast and standards-compliant Javascript engines, and any other delicious candy that gets piled on top. It's like Christmas for web-devs, this is a good time to be building web apps, we're going to see some amazing stuff.
This is a cool demo; props to the guys who made it.
I have done a few demos like this, and it turns out to be surprisingly hard to turn it into a product. For instance, just because you can send over changes to the DOM, you can't necessarily reproduce the javascript side-effects, exactly. You can't just poll the state of the DOM because it doesn't reflect all of the state that lives in javascript closures that you can't even see.
One easier method, and probably what they did in this demo, is simply catch any user-generated event in browser A and re-emit it in browser B, thus letting the existing javascript code / browser logic do any actual DOM/state modification.
But what happens when each user triggers an DOM event at the same time? They end up getting applied in reverse order on the two browsers. In many cases this can cause the two browsers to fall out of sync.
Anyway, I love seeing WebSocket demos, and this is pretty fun. Just be sure you realize what a rabbit hole this is if you want to make a product.
I'd love to be able to just add a script tag to my website, and then log into some web based service which shows me a list of the current sessions on my website allowing me to click on one of those sessions and monitor their progress through the site using this dom mirroring technique.
There must be money to be made in this sort of service?
Thanks for all the great feedback, everyone! This was our Node Knockout submission, so if you get a chance, please give us a vote. Give us some big points for innovation!
There's nothing here that a simple XSS attack couldn't do in terms of security risk which at least doesn't declare to the world "The owners of this URL are hax0rs!" As a company, all we have to do is throw a loud red banner across the top of the page, etc...
I was thinking through something like this just last night, after reading up on Smalltalk and system images. Are you loading each domain in an iframe? How did you manage to overcome Twitter's clickjacking protection? Using the new sandboxed iframe attribute? High five!
[+] [-] peteforde|15 years ago|reply
It's not necessarily the DOM sharing, which is cool enough. I just think that the emergence of sockets in new browsers is going to bring in the "next level", whatever that ends up being.
Seriously incredible, especially considering the development timeframe.
[+] [-] points|15 years ago|reply
We've had such technology for decades. There have been desktop sharing apps for years, in Java applets etc.
So whilst it's cool that the browser wars are generating a ton of improvements, none of them so far are really things that will blow users minds. HTML5 is just catching up to where other platforms were 10 years ago.
[+] [-] InclinedPlane|15 years ago|reply
[+] [-] mcmc|15 years ago|reply
I have done a few demos like this, and it turns out to be surprisingly hard to turn it into a product. For instance, just because you can send over changes to the DOM, you can't necessarily reproduce the javascript side-effects, exactly. You can't just poll the state of the DOM because it doesn't reflect all of the state that lives in javascript closures that you can't even see.
One easier method, and probably what they did in this demo, is simply catch any user-generated event in browser A and re-emit it in browser B, thus letting the existing javascript code / browser logic do any actual DOM/state modification.
But what happens when each user triggers an DOM event at the same time? They end up getting applied in reverse order on the two browsers. In many cases this can cause the two browsers to fall out of sync.
Anyway, I love seeing WebSocket demos, and this is pretty fun. Just be sure you realize what a rabbit hole this is if you want to make a product.
[+] [-] unknown|15 years ago|reply
[deleted]
[+] [-] mike-cardwell|15 years ago|reply
There must be money to be made in this sort of service?
[+] [-] spyder|15 years ago|reply
[+] [-] symmet|15 years ago|reply
[+] [-] MisterWebz|15 years ago|reply
[+] [-] symmet|15 years ago|reply
http://nodeknockout.com/teams/starcraft-2-destroyed-my-marri...
[+] [-] Groxx|15 years ago|reply
[+] [-] js4all|15 years ago|reply
[+] [-] CrabDude|15 years ago|reply
[deleted]
[+] [-] lyime|15 years ago|reply
[+] [-] statenjason|15 years ago|reply
[+] [-] Kliment|15 years ago|reply
[+] [-] tlrobinson|15 years ago|reply
[+] [-] unknown|15 years ago|reply
[deleted]
[+] [-] CrabDude|15 years ago|reply
[+] [-] _urga|15 years ago|reply
[+] [-] CrabDude|15 years ago|reply
[+] [-] phoenix24|15 years ago|reply
I made a similar nodejs application too sometime back, but mine is still with some bugs.
[+] [-] unknown|15 years ago|reply
[deleted]
[+] [-] CrabDude|15 years ago|reply
[deleted]
[+] [-] lucypinder|15 years ago|reply
[deleted]