Scintilla pair programming over the net

BLS nanali at wanadoo.fr
Wed Oct 4 09:24:35 PDT 2006


Cross posting, slightly modified because of Lars Ivar's feedback on D 
learn. Hope you are gentle enough to offer me your opinions ;-)

Pair programming over the net is an important, if not the most impotant 
  feature, my Groupware D IDE should have. (In other words, in my eyes 
the IDE is nothing worth without it)

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 TCP 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 
"WhatYouEditIsWhatISee"

How :
Actually I am thinking about using scintilla idle events to send 
(captured) mouse and keyboard events via tcp socket to person *B* using 
a channeled protocol. Channeled protocol because dev2dev comunication 
and "WhatYouEditIsWhatISee" should share one port.
If you think I am comletely wrong, or you have some other ideas...
any feedback, hint, tip, link  is welcome!
Björn



More information about the Digitalmars-d mailing list