[xwiki-devs] [ANN] Realtime Collaborative Plain WikiText Editor and WEBSOCKET!
Hi all, I'm very pleased to announce two new extensions to come out of XWikiSAS Research and the RESILIENCE Research project. Number One: WebSockets in XWiki! If you're an extension developer like me, you want events, you want stuff in the browser to be talking to stuff in the wiki and you don't want to be messing around with Jetty and Tomcat and all different kinds of libraries and configuration every time you need to write an application. You just want stuff that works. Here it is: http://extensions.xwiki.org/xwiki/bin/view/Extension/WebSocket Include this as a dependency for your extension and the Extension Manager will automatically include it when users install your extension. In just a few lines of code, your users can be chatting and collaborating through the websocket and it's based on Netty (Special thanks to the Atmosphere project for developing Nettosphere) so it works in all versions of Tomcat and Jetty and does not need any changes to the front-end server, just open a port on the JVM machine and you're done. Number Two: A new Realtime Collaborative WikiText Editor. Indeed this is not the first attempt at Realtime Collaborative editing but perhaps it is the most academically amusing. Really this is a prototype to get a handle on the technology before we make the leap into Realtime WYSIWYG. Whereas the previous Realtime Collaborative WikiText editor had performance issues and was unable to handle large pasted, the new editor uses a completely novel design which is intended to not only port well to WYSIWYG editing but is implemented entirely on the client with the server only relaying messages, making it portable to different web frameworks. Check out the Realtime Collaborative WikiText Editor here: http://extensions.xwiki.org/xwiki/bin/view/Extension/RealTime+Wiki+Editor or install it with the Extension Manager to give it a try for yourself. Disclamer: This is still new and might not work properly on all browsers, it certainly will not work without websocket support. Thanks, Caleb
Hi Caleb, this is ubercool. It just works! Let's now work to make that leap to WYSIWYG and to release a nice product. Thanks, Fabio On Thu, Feb 6, 2014 at 6:41 AM, Caleb James DeLisle <[email protected]> wrote:
Hi all,
I'm very pleased to announce two new extensions to come out of XWikiSAS Research and the RESILIENCE Research project.
Number One: WebSockets in XWiki! If you're an extension developer like me, you want events, you want stuff in the browser to be talking to stuff in the wiki and you don't want to be messing around with Jetty and Tomcat and all different kinds of libraries and configuration every time you need to write an application. You just want stuff that works. Here it is: http://extensions.xwiki.org/xwiki/bin/view/Extension/WebSocket Include this as a dependency for your extension and the Extension Manager will automatically include it when users install your extension. In just a few lines of code, your users can be chatting and collaborating through the websocket and it's based on Netty (Special thanks to the Atmosphere project for developing Nettosphere) so it works in all versions of Tomcat and Jetty and does not need any changes to the front-end server, just open a port on the JVM machine and you're done.
Number Two: A new Realtime Collaborative WikiText Editor. Indeed this is not the first attempt at Realtime Collaborative editing but perhaps it is the most academically amusing. Really this is a prototype to get a handle on the technology before we make the leap into Realtime WYSIWYG. Whereas the previous Realtime Collaborative WikiText editor had performance issues and was unable to handle large pasted, the new editor uses a completely novel design which is intended to not only port well to WYSIWYG editing but is implemented entirely on the client with the server only relaying messages, making it portable to different web frameworks.
Check out the Realtime Collaborative WikiText Editor here: http://extensions.xwiki.org/xwiki/bin/view/Extension/RealTime+Wiki+Editor
or install it with the Extension Manager to give it a try for yourself.
Disclamer: This is still new and might not work properly on all browsers, it certainly will not work without websocket support.
Thanks, Caleb _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Also tested. Wonderful ! It works well, even with big loads of text pasted. However, be careful for those who use Highlight extension which is not compatible. I hope other devs test it and say what they think about. -- Jean On ven., 2014-02-07 at 14:40 +0100, Fabio Mancinelli wrote:
Hi Caleb,
this is ubercool. It just works!
Let's now work to make that leap to WYSIWYG and to release a nice product.
Thanks, Fabio
On Thu, Feb 6, 2014 at 6:41 AM, Caleb James DeLisle <[email protected]> wrote:
Hi all,
I'm very pleased to announce two new extensions to come out of XWikiSAS Research and the RESILIENCE Research project.
Number One: WebSockets in XWiki! If you're an extension developer like me, you want events, you want stuff in the browser to be talking to stuff in the wiki and you don't want to be messing around with Jetty and Tomcat and all different kinds of libraries and configuration every time you need to write an application. You just want stuff that works. Here it is: http://extensions.xwiki.org/xwiki/bin/view/Extension/WebSocket Include this as a dependency for your extension and the Extension Manager will automatically include it when users install your extension. In just a few lines of code, your users can be chatting and collaborating through the websocket and it's based on Netty (Special thanks to the Atmosphere project for developing Nettosphere) so it works in all versions of Tomcat and Jetty and does not need any changes to the front-end server, just open a port on the JVM machine and you're done.
Number Two: A new Realtime Collaborative WikiText Editor. Indeed this is not the first attempt at Realtime Collaborative editing but perhaps it is the most academically amusing. Really this is a prototype to get a handle on the technology before we make the leap into Realtime WYSIWYG. Whereas the previous Realtime Collaborative WikiText editor had performance issues and was unable to handle large pasted, the new editor uses a completely novel design which is intended to not only port well to WYSIWYG editing but is implemented entirely on the client with the server only relaying messages, making it portable to different web frameworks.
Check out the Realtime Collaborative WikiText Editor here: http://extensions.xwiki.org/xwiki/bin/view/Extension/RealTime+Wiki+Editor
or install it with the Extension Manager to give it a try for yourself.
Disclamer: This is still new and might not work properly on all browsers, it certainly will not work without websocket support.
Thanks, Caleb _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Hi Caleb, I’ve just tried and it works well! Well done this is very cool :) Now if we want to make this production-ready we would need (IMO) at least one additional feature which is the ability to view the list of other users editing the page and color markers per user to show who’s adding what. Note that I haven’t checked the code yet. Is it some prototype-quality code or is it following the xwiki core rules and ready for being maintained? I guess you’ve also used some hacks for lack of UI extension points (as in the lock screen and on the edit screen where you added some extra text which I assumed you implemented in Javascript?) which would need to be added. Thanks -Vincent On 6 Feb 2014 at 06:42:03, Caleb James DeLisle ([email protected](mailto:[email protected])) wrote:
Hi all,
I'm very pleased to announce two new extensions to come out of XWikiSAS Research and the RESILIENCE Research project.
Number One: WebSockets in XWiki! If you're an extension developer like me, you want events, you want stuff in the browser to be talking to stuff in the wiki and you don't want to be messing around with Jetty and Tomcat and all different kinds of libraries and configuration every time you need to write an application. You just want stuff that works. Here it is: http://extensions.xwiki.org/xwiki/bin/view/Extension/WebSocket Include this as a dependency for your extension and the Extension Manager will automatically include it when users install your extension. In just a few lines of code, your users can be chatting and collaborating through the websocket and it's based on Netty (Special thanks to the Atmosphere project for developing Nettosphere) so it works in all versions of Tomcat and Jetty and does not need any changes to the front-end server, just open a port on the JVM machine and you're done.
Number Two: A new Realtime Collaborative WikiText Editor. Indeed this is not the first attempt at Realtime Collaborative editing but perhaps it is the most academically amusing. Really this is a prototype to get a handle on the technology before we make the leap into Realtime WYSIWYG. Whereas the previous Realtime Collaborative WikiText editor had performance issues and was unable to handle large pasted, the new editor uses a completely novel design which is intended to not only port well to WYSIWYG editing but is implemented entirely on the client with the server only relaying messages, making it portable to different web frameworks.
Check out the Realtime Collaborative WikiText Editor here: http://extensions.xwiki.org/xwiki/bin/view/Extension/RealTime+Wiki+Editor
or install it with the Extension Manager to give it a try for yourself.
Disclamer: This is still new and might not work properly on all browsers, it certainly will not work without websocket support.
Thanks, Caleb _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Caleb, another wish to make it production ready: include a good "debug dump" function so that users can produce reports when testing it. We've been trying the earlier version of the real-time-editor (it's still there actually) and had quite an amount of surprising effects; some of them may be related to paste, but not only. I had the impression of regularly meeting a garbage state at the server, where different clients had different views (we were speaking in Skype). The only way I could fix the inconsistency was to restart the server. Hence the suggestion of a stronger reporting facility so that such critical situations can be reported about and tackled in a maturation cycle out in the wild. paul Le 8 févr. 2014 à 10:39, "[email protected]" <[email protected]> a écrit :
Hi Caleb,
I’ve just tried and it works well! Well done this is very cool :)
Now if we want to make this production-ready we would need (IMO) at least one additional feature which is the ability to view the list of other users editing the page and color markers per user to show who’s adding what.
Note that I haven’t checked the code yet. Is it some prototype-quality code or is it following the xwiki core rules and ready for being maintained?
I guess you’ve also used some hacks for lack of UI extension points (as in the lock screen and on the edit screen where you added some extra text which I assumed you implemented in Javascript?) which would need to be added.
Thanks -Vincent
On 6 Feb 2014 at 06:42:03, Caleb James DeLisle ([email protected](mailto:[email protected])) wrote:
Hi all,
I'm very pleased to announce two new extensions to come out of XWikiSAS Research and the RESILIENCE Research project.
Number One: WebSockets in XWiki! If you're an extension developer like me, you want events, you want stuff in the browser to be talking to stuff in the wiki and you don't want to be messing around with Jetty and Tomcat and all different kinds of libraries and configuration every time you need to write an application. You just want stuff that works. Here it is: http://extensions.xwiki.org/xwiki/bin/view/Extension/WebSocket Include this as a dependency for your extension and the Extension Manager will automatically include it when users install your extension. In just a few lines of code, your users can be chatting and collaborating through the websocket and it's based on Netty (Special thanks to the Atmosphere project for developing Nettosphere) so it works in all versions of Tomcat and Jetty and does not need any changes to the front-end server, just open a port on the JVM machine and you're done.
Number Two: A new Realtime Collaborative WikiText Editor. Indeed this is not the first attempt at Realtime Collaborative editing but perhaps it is the most academically amusing. Really this is a prototype to get a handle on the technology before we make the leap into Realtime WYSIWYG. Whereas the previous Realtime Collaborative WikiText editor had performance issues and was unable to handle large pasted, the new editor uses a completely novel design which is intended to not only port well to WYSIWYG editing but is implemented entirely on the client with the server only relaying messages, making it portable to different web frameworks.
Check out the Realtime Collaborative WikiText Editor here: http://extensions.xwiki.org/xwiki/bin/view/Extension/RealTime+Wiki+Editor
or install it with the Extension Manager to give it a try for yourself.
Disclamer: This is still new and might not work properly on all browsers, it certainly will not work without websocket support.
Thanks, Caleb _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Hi Paul, This is an interesting idea, being able to dump the core state of the engine. I did not know that the old Jupiter based engine was able to become desynchronized, thanks for the information. The cjdrt engine is based on a unique design which is more similar to Bitcoin than it is to any previous realtime engine. This design forces the clients to eventually come to consensus on something (even if it's wrong). If you open the console, you will see the engine is still configured to log debug messages explaining what it's doing but unfortunately if there is a real bug which causes desync, the historical information of where the node went wrong is not going to be available at this time but I'll take this under consideration and if any bugs do turn out to crop up, I will be fast-tracking this idea. Thanks, Caleb On 02/08/2014 05:37 AM, Paul Libbrecht wrote:
Caleb,
another wish to make it production ready: include a good "debug dump" function so that users can produce reports when testing it.
We've been trying the earlier version of the real-time-editor (it's still there actually) and had quite an amount of surprising effects; some of them may be related to paste, but not only. I had the impression of regularly meeting a garbage state at the server, where different clients had different views (we were speaking in Skype). The only way I could fix the inconsistency was to restart the server. Hence the suggestion of a stronger reporting facility so that such critical situations can be reported about and tackled in a maturation cycle out in the wild.
paul
Le 8 févr. 2014 à 10:39, "[email protected]" <[email protected]> a écrit :
Hi Caleb,
I’ve just tried and it works well! Well done this is very cool :)
Now if we want to make this production-ready we would need (IMO) at least one additional feature which is the ability to view the list of other users editing the page and color markers per user to show who’s adding what.
Note that I haven’t checked the code yet. Is it some prototype-quality code or is it following the xwiki core rules and ready for being maintained?
I guess you’ve also used some hacks for lack of UI extension points (as in the lock screen and on the edit screen where you added some extra text which I assumed you implemented in Javascript?) which would need to be added.
Thanks -Vincent
On 6 Feb 2014 at 06:42:03, Caleb James DeLisle ([email protected](mailto:[email protected])) wrote:
Hi all,
I'm very pleased to announce two new extensions to come out of XWikiSAS Research and the RESILIENCE Research project.
Number One: WebSockets in XWiki! If you're an extension developer like me, you want events, you want stuff in the browser to be talking to stuff in the wiki and you don't want to be messing around with Jetty and Tomcat and all different kinds of libraries and configuration every time you need to write an application. You just want stuff that works. Here it is: http://extensions.xwiki.org/xwiki/bin/view/Extension/WebSocket Include this as a dependency for your extension and the Extension Manager will automatically include it when users install your extension. In just a few lines of code, your users can be chatting and collaborating through the websocket and it's based on Netty (Special thanks to the Atmosphere project for developing Nettosphere) so it works in all versions of Tomcat and Jetty and does not need any changes to the front-end server, just open a port on the JVM machine and you're done.
Number Two: A new Realtime Collaborative WikiText Editor. Indeed this is not the first attempt at Realtime Collaborative editing but perhaps it is the most academically amusing. Really this is a prototype to get a handle on the technology before we make the leap into Realtime WYSIWYG. Whereas the previous Realtime Collaborative WikiText editor had performance issues and was unable to handle large pasted, the new editor uses a completely novel design which is intended to not only port well to WYSIWYG editing but is implemented entirely on the client with the server only relaying messages, making it portable to different web frameworks.
Check out the Realtime Collaborative WikiText Editor here: http://extensions.xwiki.org/xwiki/bin/view/Extension/RealTime+Wiki+Editor
or install it with the Extension Manager to give it a try for yourself.
Disclamer: This is still new and might not work properly on all browsers, it certainly will not work without websocket support.
Thanks, Caleb _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Hi Caleb I gave it a try and the first impression is quite nice. We got rid of the issues we had with the non text area used in the previous one. Le lundi 10 février 2014, Caleb James DeLisle <[email protected]> a écrit :
Hi Paul,
This is an interesting idea, being able to dump the core state of the engine. I did not know that the old Jupiter based engine was able to become desynchronized, thanks for the information.
The cjdrt engine is based on a unique design which is more similar to Bitcoin than it is to any previous realtime engine. This design forces the clients to eventually come to consensus on something (even if it's wrong). If you open the console, you
On this does it mean there is no OT at all ? And we are not using Jupiter anymore ? Ludovic
will see the engine is still configured to log debug messages explaining what it's doing but unfortunately if there is a real bug which causes desync, the historical information of where the node went wrong is not going to be available at this time but I'll take this under consideration and if any bugs do turn out to crop up, I will be fast-tracking this idea.
Thanks, Caleb
On 02/08/2014 05:37 AM, Paul Libbrecht wrote:
Caleb,
another wish to make it production ready: include a good "debug dump" function so that users can produce reports when testing it.
We've been trying the earlier version of the real-time-editor (it's still there actually) and had quite an amount of surprising effects; some of them may be related to paste, but not only. I had the impression of regularly meeting a garbage state at the server, where different clients had different views (we were speaking in Skype). The only way I could fix the inconsistency was to restart the server. Hence the suggestion of a stronger reporting facility so that such critical situations can be reported about and tackled in a maturation cycle out in the wild.
paul
Le 8 févr. 2014 à 10:39, "[email protected]" <[email protected]> a écrit :
Hi Caleb,
I've just tried and it works well! Well done this is very cool :)
Now if we want to make this production-ready we would need (IMO) at least one additional feature which is the ability to view the list of other users editing the page and color markers per user to show who's adding what.
Note that I haven't checked the code yet. Is it some prototype-quality code or is it following the xwiki core rules and ready for being maintained?
I guess you've also used some hacks for lack of UI extension points (as in the lock screen and on the edit screen where you added some extra text which I assumed you implemented in Javascript?) which would need to be added.
Thanks -Vincent
On 6 Feb 2014 at 06:42:03, Caleb James DeLisle ([email protected] (mailto:[email protected])) wrote:
Hi all,
I'm very pleased to announce two new extensions to come out of XWikiSAS Research and the RESILIENCE Research project.
Number One: WebSockets in XWiki! If you're an extension developer like me, you want events, you want stuff in the browser to be talking to stuff in the wiki and you don't want to be messing around with Jetty and Tomcat and all different kinds of libraries and configuration every time you need to write an application. You just want stuff that works. Here it is: http://extensions.xwiki.org/xwiki/bin/view/Extension/WebSocket Include this as a dependency for your extension and the Extension Manager will automatically include it when users install your extension. In just a few lines of code, your users can be chatting and collaborating through the websocket and it's based on Netty (Special thanks to the Atmosphere project for developing Nettosphere) so it works in all versions of Tomcat and Jetty and does not need any changes to the front-end server, just open a port on the JVM machine and you're done.
Number Two: A new Realtime Collaborative WikiText Editor. Indeed this is not the first attempt at Realtime Collaborative editing but perhaps it is the most academically amusing. Really this is a prototype to get a handle on the technology before we make the leap into Realtime WYSIWYG. Whereas the previous Realtime Collaborative WikiText editor had performance issues and was unable to handle large pasted, the new editor uses a completely novel design which is intended to not only port well to WYSIWYG editing but is implemented entirely on the client with the server only relaying messages, making it portable to different web frameworks.
Check out the Realtime Collaborative WikiText Editor here:
http://extensions.xwiki.org/xwiki/bin/view/Extension/RealTime+Wiki+Editor
or install it with the Extension Manager to give it a try for yourself.
Disclamer: This is still new and might not work pro
-- Sent from Mobile
On 02/10/2014 05:47 PM, Ludovic Dubost wrote:
Hi Caleb
I gave it a try and the first impression is quite nice. We got rid of the issues we had with the non text area used in the previous one.
Le lundi 10 février 2014, Caleb James DeLisle <[email protected]> a écrit :
Hi Paul,
This is an interesting idea, being able to dump the core state of the engine. I did not know that the old Jupiter based engine was able to become desynchronized, thanks for the information.
The cjdrt engine is based on a unique design which is more similar to Bitcoin than it is to any previous realtime engine. This design forces the clients to eventually come to consensus on something (even if it's wrong). If you open the console, you
On this does it mean there is no OT at all ? And we are not using Jupiter anymore ?
Technically it falls in the category of OT but whereas the previous project used a Jupiter implementation which was spread between the server and the client, this is a (the first ever) pure client-side implementation written entirely by me and which should solve the problems that made WYSIWYG and portability so difficult. Thanks, Caleb
Ludovic
will see the engine is still configured to log debug messages explaining what it's doing but unfortunately if there is a real bug which causes desync, the historical information of where the node went wrong is not going to be available at this time but I'll take this under consideration and if any bugs do turn out to crop up, I will be fast-tracking this idea.
Thanks, Caleb
On 02/08/2014 05:37 AM, Paul Libbrecht wrote:
Caleb,
another wish to make it production ready: include a good "debug dump" function so that users can produce reports when testing it.
We've been trying the earlier version of the real-time-editor (it's still there actually) and had quite an amount of surprising effects; some of them may be related to paste, but not only. I had the impression of regularly meeting a garbage state at the server, where different clients had different views (we were speaking in Skype). The only way I could fix the inconsistency was to restart the server. Hence the suggestion of a stronger reporting facility so that such critical situations can be reported about and tackled in a maturation cycle out in the wild.
paul
Le 8 févr. 2014 à 10:39, "[email protected]" <[email protected]> a écrit :
Hi Caleb,
I've just tried and it works well! Well done this is very cool :)
Now if we want to make this production-ready we would need (IMO) at least one additional feature which is the ability to view the list of other users editing the page and color markers per user to show who's adding what.
Note that I haven't checked the code yet. Is it some prototype-quality code or is it following the xwiki core rules and ready for being maintained?
I guess you've also used some hacks for lack of UI extension points (as in the lock screen and on the edit screen where you added some extra text which I assumed you implemented in Javascript?) which would need to be added.
Thanks -Vincent
On 6 Feb 2014 at 06:42:03, Caleb James DeLisle ([email protected] (mailto:[email protected])) wrote:
Hi all,
I'm very pleased to announce two new extensions to come out of XWikiSAS Research and the RESILIENCE Research project.
Number One: WebSockets in XWiki! If you're an extension developer like me, you want events, you want stuff in the browser to be talking to stuff in the wiki and you don't want to be messing around with Jetty and Tomcat and all different kinds of libraries and configuration every time you need to write an application. You just want stuff that works. Here it is: http://extensions.xwiki.org/xwiki/bin/view/Extension/WebSocket Include this as a dependency for your extension and the Extension Manager will automatically include it when users install your extension. In just a few lines of code, your users can be chatting and collaborating through the websocket and it's based on Netty (Special thanks to the Atmosphere project for developing Nettosphere) so it works in all versions of Tomcat and Jetty and does not need any changes to the front-end server, just open a port on the JVM machine and you're done.
Number Two: A new Realtime Collaborative WikiText Editor. Indeed this is not the first attempt at Realtime Collaborative editing but perhaps it is the most academically amusing. Really this is a prototype to get a handle on the technology before we make the leap into Realtime WYSIWYG. Whereas the previous Realtime Collaborative WikiText editor had performance issues and was unable to handle large pasted, the new editor uses a completely novel design which is intended to not only port well to WYSIWYG editing but is implemented entirely on the client with the server only relaying messages, making it portable to different web frameworks.
Check out the Realtime Collaborative WikiText Editor here:
http://extensions.xwiki.org/xwiki/bin/view/Extension/RealTime+Wiki+Editor
or install it with the Extension Manager to give it a try for yourself.
Disclamer: This is still new and might not work pro
Hi Caleb, Is the OT implementation the same as the Jupiter OT implementation or is it a complete rewrite ? It would be great to have some documentation about this. Ludovic 2014-02-11 5:04 GMT+01:00 Caleb James DeLisle <[email protected]>:
On 02/10/2014 05:47 PM, Ludovic Dubost wrote:
Hi Caleb
I gave it a try and the first impression is quite nice. We got rid of the issues we had with the non text area used in the previous one.
Le lundi 10 février 2014, Caleb James DeLisle <[email protected]> a écrit :
Hi Paul,
This is an interesting idea, being able to dump the core state of the engine. I did not know that the old Jupiter based engine was able to become desynchronized, thanks for the information.
The cjdrt engine is based on a unique design which is more similar to Bitcoin than it is to any previous realtime engine. This design forces the clients to eventually come to consensus on something (even if it's wrong). If you open the console, you
On this does it mean there is no OT at all ? And we are not using Jupiter anymore ?
Technically it falls in the category of OT but whereas the previous project used a Jupiter implementation which was spread between the server and the client, this is a (the first ever) pure client-side implementation written entirely by me and which should solve the problems that made WYSIWYG and portability so difficult.
Thanks, Caleb
Ludovic
will see the engine is still configured to log debug messages explaining what it's doing but unfortunately if there is a real bug which causes desync, the historical information of where the node went wrong is not going to be available at this time but I'll take this under consideration and if any bugs do turn out to
crop
up, I will be fast-tracking this idea.
Thanks, Caleb
On 02/08/2014 05:37 AM, Paul Libbrecht wrote:
Caleb,
another wish to make it production ready: include a good "debug dump" function so that users can produce reports when testing it.
We've been trying the earlier version of the real-time-editor (it's still there actually) and had quite an amount of surprising effects; some of them may be related to paste, but not only. I had the impression of regularly meeting a garbage state at the server, where different clients had different views (we were speaking in Skype). The only way I could fix the inconsistency was to restart the server. Hence the suggestion of a stronger reporting facility so that such critical situations can be reported about and tackled in a maturation cycle out in the wild.
paul
Le 8 févr. 2014 à 10:39, "[email protected]" <[email protected]> a écrit :
Hi Caleb,
I've just tried and it works well! Well done this is very cool :)
Now if we want to make this production-ready we would need (IMO) at least one additional feature which is the ability to view the list of other users editing the page and color markers per user to show who's adding what.
Note that I haven't checked the code yet. Is it some prototype-quality code or is it following the xwiki core rules and ready for being maintained?
I guess you've also used some hacks for lack of UI extension points (as in the lock screen and on the edit screen where you added some extra text which I assumed you implemented in Javascript?) which would need to be added.
Thanks -Vincent
On 6 Feb 2014 at 06:42:03, Caleb James DeLisle ([email protected] (mailto:[email protected])) wrote:
Hi all,
I'm very pleased to announce two new extensions to come out of XWikiSAS Research and the RESILIENCE Research project.
Number One: WebSockets in XWiki! If you're an extension developer like me, you want events, you want stuff in the browser to be talking to stuff in the wiki and you don't want to be messing around with Jetty and Tomcat and all different kinds of libraries and configuration every time you need to write an application. You just want stuff that works. Here it is: http://extensions.xwiki.org/xwiki/bin/view/Extension/WebSocket Include this as a dependency for your extension and the Extension Manager will automatically include it when users install your extension. In just a few lines of code, your users can be chatting and collaborating through the websocket and it's based on Netty (Special thanks to the Atmosphere project for developing Nettosphere) so it works in all versions of Tomcat and Jetty and does not need any changes to the front-end server, just open a port on the JVM machine and you're done.
Number Two: A new Realtime Collaborative WikiText Editor. Indeed this is not the first attempt at Realtime Collaborative editing but perhaps it is the most academically amusing. Really this is a prototype to get a handle on the technology before we make the leap into Realtime WYSIWYG. Whereas the previous Realtime Collaborative WikiText editor had performance issues and was unable to handle large pasted, the new editor uses a completely novel design which is intended to not only port well to WYSIWYG editing but is implemented entirely on the client with the server only relaying messages, making it portable to different web frameworks.
Check out the Realtime Collaborative WikiText Editor here:
http://extensions.xwiki.org/xwiki/bin/view/Extension/RealTime+Wiki+Editor
or install it with the Extension Manager to give it a try for
yourself.
Disclamer: This is still new and might not work pro
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Ludovic Dubost Founder and CEO Blog: http://blog.ludovic.org/ XWiki: http://www.xwiki.com Skype: ldubost GTalk: ldubost
Juipter uses a combination of client-side and server-side components to represent the document and runs the same code on both the client and the server, hence the dependency on GWT. Cjdrt uses only client side logic, the server is a dumb chat server and could easily be replaced by a peer-to-peer network if one so desired. The actual algorithm entirely unique to the field but is similar to a combination of the OT algorithm used for Google Docs and the Bitcoin Blockchain. The Bitcoin heritage provides cryptographic guarantees against some of the pathologies in Jupiter which can cause bugs such as that which Paul was describing. Documentation of this algorithm is the second thing on my short-term todo list. Thanks, Caleb On 02/11/2014 09:07 AM, Ludovic Dubost wrote:
Hi Caleb,
Is the OT implementation the same as the Jupiter OT implementation or is it a complete rewrite ? It would be great to have some documentation about this.
Ludovic
2014-02-11 5:04 GMT+01:00 Caleb James DeLisle <[email protected]>:
On 02/10/2014 05:47 PM, Ludovic Dubost wrote:
Hi Caleb
I gave it a try and the first impression is quite nice. We got rid of the issues we had with the non text area used in the previous one.
Le lundi 10 février 2014, Caleb James DeLisle <[email protected]> a écrit :
Hi Paul,
This is an interesting idea, being able to dump the core state of the engine. I did not know that the old Jupiter based engine was able to become desynchronized, thanks for the information.
The cjdrt engine is based on a unique design which is more similar to Bitcoin than it is to any previous realtime engine. This design forces the clients to eventually come to consensus on something (even if it's wrong). If you open the console, you
On this does it mean there is no OT at all ? And we are not using Jupiter anymore ?
Technically it falls in the category of OT but whereas the previous project used a Jupiter implementation which was spread between the server and the client, this is a (the first ever) pure client-side implementation written entirely by me and which should solve the problems that made WYSIWYG and portability so difficult.
Thanks, Caleb
Ludovic
will see the engine is still configured to log debug messages explaining what it's doing but unfortunately if there is a real bug which causes desync, the historical information of where the node went wrong is not going to be available at this time but I'll take this under consideration and if any bugs do turn out to
crop
up, I will be fast-tracking this idea.
Thanks, Caleb
On 02/08/2014 05:37 AM, Paul Libbrecht wrote:
Caleb,
another wish to make it production ready: include a good "debug dump" function so that users can produce reports when testing it.
We've been trying the earlier version of the real-time-editor (it's still there actually) and had quite an amount of surprising effects; some of them may be related to paste, but not only. I had the impression of regularly meeting a garbage state at the server, where different clients had different views (we were speaking in Skype). The only way I could fix the inconsistency was to restart the server. Hence the suggestion of a stronger reporting facility so that such critical situations can be reported about and tackled in a maturation cycle out in the wild.
paul
Le 8 févr. 2014 à 10:39, "[email protected]" <[email protected]> a écrit :
Hi Caleb,
I've just tried and it works well! Well done this is very cool :)
Now if we want to make this production-ready we would need (IMO) at least one additional feature which is the ability to view the list of other users editing the page and color markers per user to show who's adding what.
Note that I haven't checked the code yet. Is it some prototype-quality code or is it following the xwiki core rules and ready for being maintained?
I guess you've also used some hacks for lack of UI extension points (as in the lock screen and on the edit screen where you added some extra text which I assumed you implemented in Javascript?) which would need to be added.
Thanks -Vincent
On 6 Feb 2014 at 06:42:03, Caleb James DeLisle ([email protected] (mailto:[email protected])) wrote:
> Hi all, > > I'm very pleased to announce two new extensions to come out of XWikiSAS Research > and the RESILIENCE Research project. > > Number One: WebSockets in XWiki! > If you're an extension developer like me, you want events, you want stuff in the > browser to be talking to stuff in the wiki and you don't want to be messing around > with Jetty and Tomcat and all different kinds of libraries and configuration every > time you need to write an application. You just want stuff that works. > Here it is: > http://extensions.xwiki.org/xwiki/bin/view/Extension/WebSocket > Include this as a dependency for your extension and the Extension Manager will > automatically include it when users install your extension. In just a few lines of > code, your users can be chatting and collaborating through the websocket and it's > based on Netty (Special thanks to the Atmosphere project for developing Nettosphere) > so it works in all versions of Tomcat and Jetty and does not need any changes to the > front-end server, just open a port on the JVM machine and you're done. > > Number Two: A new Realtime Collaborative WikiText Editor. > Indeed this is not the first attempt at Realtime Collaborative editing but perhaps > it is the most academically amusing. Really this is a prototype to get a handle on > the technology before we make the leap into Realtime WYSIWYG. Whereas the previous > Realtime Collaborative WikiText editor had performance issues and was unable to > handle large pasted, the new editor uses a completely novel design which is intended > to not only port well to WYSIWYG editing but is implemented entirely on the client > with the server only relaying messages, making it portable to different web frameworks. > > Check out the Realtime Collaborative WikiText Editor here: >
http://extensions.xwiki.org/xwiki/bin/view/Extension/RealTime+Wiki+Editor
> > or install it with the Extension Manager to give it a try for yourself. > > Disclamer: This is still new and might not work pro
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Hi Vincent, Thanks for the early support! :) The list of users is something I'm interested in. Highlighting the text is a bit harder because it forces us out of the textarea based editor and we have to do stuff with a canvas which introduces a whole new set of complexity, for wiki editor I would advise against going with this because one advantage of the wiki editor is it uses the proven and simplistic textarea and even if the realtime infrastructure blows up completely, it's still just a textarea which can still be edited as normal. This is however definitely on my todo list for the WYSIWYG version. As far as the code is concerned, the amount of actual java is small and there are no tests at the moment but writing a test will mainly require adding a test harness for websocket backends. As far as code style, it's not much code and getting it to pass checkstyle should not take much time at all. On the js side, the UI is injected through js and indeed one of the CSS selectors for injection is fairly nasty because the UI DOM element lacks any ID so adding some ID attributes in the templates would be nice but I disagree with labeling of all js UI injection as "hacks" and would advise against using the UIExtension infrastructure for this because it creates a complex and fragile mixture of server-side and client-side code and would create a broken UI if (for example) the browser doesn't support websocket, javascript is disabled or some error is thrown during setup. Thanks, Caleb On 02/08/2014 04:39 AM, [email protected] wrote:
Hi Caleb,
I’ve just tried and it works well! Well done this is very cool :)
Now if we want to make this production-ready we would need (IMO) at least one additional feature which is the ability to view the list of other users editing the page and color markers per user to show who’s adding what.
Note that I haven’t checked the code yet. Is it some prototype-quality code or is it following the xwiki core rules and ready for being maintained?
I guess you’ve also used some hacks for lack of UI extension points (as in the lock screen and on the edit screen where you added some extra text which I assumed you implemented in Javascript?) which would need to be added.
Thanks -Vincent
On 6 Feb 2014 at 06:42:03, Caleb James DeLisle ([email protected](mailto:[email protected])) wrote:
Hi all,
I'm very pleased to announce two new extensions to come out of XWikiSAS Research and the RESILIENCE Research project.
Number One: WebSockets in XWiki! If you're an extension developer like me, you want events, you want stuff in the browser to be talking to stuff in the wiki and you don't want to be messing around with Jetty and Tomcat and all different kinds of libraries and configuration every time you need to write an application. You just want stuff that works. Here it is: http://extensions.xwiki.org/xwiki/bin/view/Extension/WebSocket Include this as a dependency for your extension and the Extension Manager will automatically include it when users install your extension. In just a few lines of code, your users can be chatting and collaborating through the websocket and it's based on Netty (Special thanks to the Atmosphere project for developing Nettosphere) so it works in all versions of Tomcat and Jetty and does not need any changes to the front-end server, just open a port on the JVM machine and you're done.
Number Two: A new Realtime Collaborative WikiText Editor. Indeed this is not the first attempt at Realtime Collaborative editing but perhaps it is the most academically amusing. Really this is a prototype to get a handle on the technology before we make the leap into Realtime WYSIWYG. Whereas the previous Realtime Collaborative WikiText editor had performance issues and was unable to handle large pasted, the new editor uses a completely novel design which is intended to not only port well to WYSIWYG editing but is implemented entirely on the client with the server only relaying messages, making it portable to different web frameworks.
Check out the Realtime Collaborative WikiText Editor here: http://extensions.xwiki.org/xwiki/bin/view/Extension/RealTime+Wiki+Editor
or install it with the Extension Manager to give it a try for yourself.
Disclamer: This is still new and might not work properly on all browsers, it certainly will not work without websocket support.
Thanks, Caleb _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
I have a correction, see below: On 02/06/2014 12:41 AM, Caleb James DeLisle wrote:
Hi all,
I'm very pleased to announce two new extensions to come out of XWikiSAS Research and the RESILIENCE Research project.
Number One: WebSockets in XWiki! If you're an extension developer like me, you want events, you want stuff in the browser to be talking to stuff in the wiki and you don't want to be messing around with Jetty and Tomcat and all different kinds of libraries and configuration every time you need to write an application. You just want stuff that works. Here it is: http://extensions.xwiki.org/xwiki/bin/view/Extension/WebSocket Include this as a dependency for your extension and the Extension Manager will automatically include it when users install your extension. In just a few lines of code, your users can be chatting and collaborating through the websocket and it's based on Netty (Special thanks to the Atmosphere project for developing Nettosphere) so it works in all versions of Tomcat and Jetty and does not need any changes to the front-end server, just open a port on the JVM machine and you're done.
Number Two: A new Realtime Collaborative WikiText Editor. Indeed this is not the first attempt at Realtime Collaborative editing but perhaps it is the most academically amusing. Really this is a prototype to get a handle on the technology before we make the leap into Realtime WYSIWYG. Whereas the previous Realtime Collaborative WikiText editor had performance issues and was unable to handle large pasted, the new editor uses a completely novel design which is intended to not only port well to WYSIWYG editing but is implemented entirely on the client with the server only relaying messages, making it portable to different web frameworks.
Check out the Realtime Collaborative WikiText Editor here: http://extensions.xwiki.org/xwiki/bin/view/Extension/RealTime+Wiki+Editor
Oops: sorry about this - wrong link - I linked to the *old* wiki editor! Here's the one: http://extensions.xwiki.org/xwiki/bin/view/Extension/RtWiki Thanks, Caleb
or install it with the Extension Manager to give it a try for yourself.
Disclamer: This is still new and might not work properly on all browsers, it certainly will not work without websocket support.
Thanks, Caleb _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users
participants (6)
-
Caleb James DeLisle -
Fabio Mancinelli -
Jean SIMARD -
Ludovic Dubost -
Paul Libbrecht -
vincent@massol.net