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
> 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
>> 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