Remote/Pair-Programming in-the-cloud

Terry Reedy tjreedy at udel.edu
Sat Aug 3 00:02:32 EDT 2019


On 8/2/2019 4:52 PM, DL Neil wrote:
> On 3/08/19 8:32 AM, Terry Reedy wrote:
>> On 8/2/2019 5:10 AM, DL Neil wrote:
>>> Please recommend a Python-friendly, bandwidth-respectful, (but 
>>> effective) system for pair-programming; where the 'pair' are 
>>> geographically separate.
>> 'geographically separate' could range from in the same room to a 
>> continent away, as long as two people have separate keyboards and 
>> screens.
> 
> True! As long as the tech works...
> 
> My experience has always been two sharing one PC, ie taking-it-in-turns 
> to think or to type. Do you do it differently?

I currently work on my home machine, so my recent 'pair programming' has 
been limited to comments and now diff suggestions on Github PRs.  So I 
need the comments on real use cases from you and Chris to even think 
about something for IDLE.

>> IDLE is Python-friendly, free, and FOSS.  I wonder how hard it would 
>> be to pair programming connectivity as an extension.

This was an initially pie-in-the-sky idea that cannot solve your 
immediate problem.  But I think now that something useful could be 
feasible sometime.

>> 1. Do the systems you have considered operate as an editor + satellite 
>> terminal or as synchronized peer editors.
> 
> Always the former, the local devices are merely 'repeaters' (through a 
> web browser) of what is happening on the server. This at both edit and 

Good.  Master-satellite would be much easier.  We added line numbers to 
IDLE's editor last week, so verbal feedback from satellite to master 
should be sufficient for many purposes.

IDLE already intercepts keypresses to do syntax coloring and smart 
indentation (after \n).  It should not be too hard to also send through 
a socket anything sent to a tkinter/tk text widget.  Making a text 
read-only is trivial.

With a real editor as satellite, the locally configured font face, font 
size, and syntax highlight colors can be used.  Transmitting 
highlighting as text would require the invention of a protocol to 
differentiate text from such meta information.

> run/test stages.

Running code locally would

1. Save bandwidth.

2. Allow two users to do different things occasionally.

3. Reveal OS dependencies if on different systems.  When patching IDLE, 
I would love to have my Macbook set as a satellite to check that code 
works on Mac as well as Windows.

4. Require encryption of some sort if over the public internet.  Just 
because people download code from strangers over http is not a reason to 
encourage carelessness.  I am pretty ignorant on what this would mean.

>> 2. Do two systems connect directly peer-to-peer or through a server?
> 
> Exclusively the latter (thus far in the investigation).

The former would be the only option until someone (else) set up and 
supported a server.


-- 
Terry Jan Reedy





More information about the Python-list mailing list