www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Scintilla pair programming over the net

reply BLS <nanali wanadoo.fr> writes:
Hi, I need some ideas....
Pair programming over the net is an important, if not the most impotant 
  feature, my Groupware D IDE should have.
Preleminaries :
1) Due to the fact that I choose wxD as GUI I have to use scintilla 
resprectice STC.

2) Pair programming means that person *A* is active/editing a source 
while person *B* (somewhere in the world) is passive/observing the same 
source. (Communication between A and B (to exchange ideas) through 
developer2developer chat, or dev2dev video-conferencing,...)

3) The IDE uses a database to manage sources/projects instead of 
SVN/CVS... hosted on an dedicated server, accessable through the IP address.

Okay, now the idea I would like to discuss...
Ide login ask for pw and id, automaticly connects to the db 
server/internet, get your *current IP address* and saves these 
information into a simple db-table. "WhoIsOnline" (transmission and 
database are strongly encrypted)

These informations are needed to communicate over the net. The IDE acts 
as threaded socket-server *and* socket-client.

Person *A* opens a project/source and invites a project member who is 
online just by querying the project-member and WhoIsOnline tables.

Person *A* opens a D sourcefile and starts editing.
(The adequate record is locked and write protected.)

Person *B* is passive and watches the modification in realtime or 
"WhatYouEditIsWhatISee"
How :
Actually I am a bit helpless. The only idea I actually have is to use 
scintilla idle events to send (captured) mouse and keyboard events via 
socket to person *B*.  ????????

Probabely the Observer Pattern  has some value ??????


Any feedback, hint, tip, link  is welcome!
Bjrn
Oct 04 2006
parent reply Lars Ivar Igesund <larsivar igesund.net> writes:
BLS wrote:

 Hi, I need some ideas....
 Pair programming over the net is an important, if not the most impotant
   feature, my Groupware D IDE should have.
 Preleminaries :
 1) Due to the fact that I choose wxD as GUI I have to use scintilla
 resprectice STC.
 
 2) Pair programming means that person *A* is active/editing a source
 while person *B* (somewhere in the world) is passive/observing the same
 source. (Communication between A and B (to exchange ideas) through
 developer2developer chat, or dev2dev video-conferencing,...)
 
 3) The IDE uses a database to manage sources/projects instead of
 SVN/CVS... hosted on an dedicated server, accessable through the IP
 address.
 
 Okay, now the idea I would like to discuss...
 Ide login ask for pw and id, automaticly connects to the db
 server/internet, get your *current IP address* and saves these
 information into a simple db-table. "WhoIsOnline" (transmission and
 database are strongly encrypted)
 
 These informations are needed to communicate over the net. The IDE acts
 as threaded socket-server *and* socket-client.
 
 Person *A* opens a project/source and invites a project member who is
 online just by querying the project-member and WhoIsOnline tables.
 
 Person *A* opens a D sourcefile and starts editing.
 (The adequate record is locked and write protected.)
 
 Person *B* is passive and watches the modification in realtime or
 "WhatYouEditIsWhatISee"
 How :
 Actually I am a bit helpless. The only idea I actually have is to use
 scintilla idle events to send (captured) mouse and keyboard events via
 socket to person *B*.  ????????
 
 Probabely the Observer Pattern  has some value ??????
 
 
 Any feedback, hint, tip, link  is welcome!
 Björn

No idea how you should do it, but maybe Gobby can give some hints? http://darcs.0x539.de/trac/obby/cgi-bin/trac.cgi It's a collaborative editor, with chat, etc -- Lars Ivar Igesund blog at http://larsivi.net DSource & #D: larsivi
Oct 04 2006
parent BLS <nanali wanadoo.fr> writes:
Thanks Lars,
just reading the "How Gobby works ..." was an inspiration and also shows 
me that my idea was not that bad. At least a beginning....
Björn
Oct 04 2006