[shpy-commit] r2935 - shpy/trunk/doc

arigo@codespeak.net arigo@codespeak.net
Thu, 5 Feb 2004 18:19:24 +0100 (MET)


Author: arigo
Date: Thu Feb  5 18:19:23 2004
New Revision: 2935

Added:
   shpy/trunk/doc/
   shpy/trunk/doc/shpy-editor.txt
Log:
The next thing I would like to be able to use shpy for.



Added: shpy/trunk/doc/shpy-editor.txt
==============================================================================
--- (empty file)
+++ shpy/trunk/doc/shpy-editor.txt	Thu Feb  5 18:19:23 2004
@@ -0,0 +1,62 @@
+This is a tentative description of what I'd like to have next in shpy.
+What would be most useful for me is a general editing tool.  So I'll 
+just describe what I'm looking for, irrespective of the objections I can 
+already hear :-)
+
+
+Goal:
+----
+
+Let's put aside matters of multiple cells and execution servers for the
+moment.
+
+$ shpy filename.txt
+
+Opens filename.txt for editing.  The file is local to where the command
+is issued, but it should just work transparently across ssh, and several
+users opening the same file on the same host see each other's cursor and
+changes.  The pygame window works like a regular single-file editor.
+
+$ shpy
+
+Opens a scratch window.  Uses IRC mode cells, visible to everyone 
+issuing a bare 'shpy' on the same machine.
+
+In this model we edit several files and chat at the same time by having 
+several windows on our screens.  Looks like an easier goal than a single 
+all-encompassing window and the latter can always be added later.
+
+
+Setup:
+-----
+
+'shpy' is a small Python script that I put somewhere in my path so that
+I can just run it.  The PyGame-based client holds all the complexities
+and must be installed along with PyGame on the local machine.
+
+There should be no need to run a shared server on the remote machine,
+but we need a way for 'shpy' to connect to the local client.  Some
+random solutions:
+
+0) shpy connects to $REMOTEHOST:8888.  Doesn't work in a lot of
+situations.
+
+1) start a shpy-client daemon process locally, listening to port 8888; 
+setup ~/.ssh/config so that ssh connexions automatically route the 
+remote port 8888 to the local port 8888; configure shpy to use this port 
+to connect back to shpy-client.  This way no separate process is needed 
+on the remote machine.
+
+2) start a more spidery shpy-client daemon that will issue ssh 
+connexions to the remote host(s) to listen for connexions from shpy.  We 
+can use named pipes instead of sockets in this situation.
+
+3) hack: assume 'ssh -X' and contact the remote X server, not to
+actually display the PyGame window, but to send information to the
+shpy-client daemon.  This could actually generalize to a seriously
+different framework in which you compile X with a Python extension that
+allows X clients to send Python scripts to the X server... Would be
+great too!
+
+
+Armin