remote pairing from the comfort of your own shell
DESCRIPTION
As ever more developers work from home, the past couple of years have seen an explosion of remote pairing tools. But most of these tools aren't free, open source, and are bandwidth hogs. There is a better way! I'm going to show you how I remote pair easily from your shell. Tools we'll cover will include: vagrant fog tmux emacs and vimTRANSCRIPT
About me
^
a bit
“Lonely Bunny” by valkeeja
Remote Pairingfrom the comfort of your own shell
“Remote Pairing Stacks I’ve Tried and
Thrown Away”
Mk I Remote Pairing Stack
(2009 give or take…)
A/V chat via Skype
Skype Screen Sharing
Shoulder surfing
We’re all Tony Stark
We hack
We experiment
We evolve
Mk II
A/V chat (then) OSX Chat app
OSX Screen Sharing
Mk III
A/V chat via Skype
Vine VNC (OSX)
tmux
demo
tmux cheat sheet
Command Action
C-b c New shell
C-b n Next shell
C-b p Prev shell
C-b ' Split horizontal
C-b % Split vertical
C-b <arrow> Move to window
Mk IVBlank slate
A/V chat via Skype
Host pair on my Mac
Wrote provisioning scripts
create user
add SSH public key
tmux for shells and session sharing
vim
terminal-based editor
vim + tmux = modality2
demo
Mk VA/V chat via Skype
Host pair on my Mac
Wrote provisioning scripts
create user
add SSH public key
tmux for shells and session sharing
vim with vimux
demo
The Dream:
Shell in the editor
Mk VIA/V chat via Skype
Host pair on my Mac
Wrote provisioning scripts
create user
add SSH public key
tmux for session sharing only
vim with Conque
zsh is sad… 😞 😞 😞
no demo
just no
no.
yes, emacs
Mk VIIA/V chat via Skype
Host pair on my Mac
Wrote provisioning scripts
create user
add SSH public key
tmux for session sharing only
emacs and eshell
Mk VIIIA/V chat via Skype
Host pair on my Mac
Wrote provisioning scripts
create user
add SSH public key
tmux for session sharing only
emacs and term
result: Close
Mk IXA/V chat via Skype
Host pair on my Mac
Wrote provisioning scripts
create user
add SSH public key
tmux for session sharing only
emacs and shell
result: Not quite
Mk XA/V chat via Skype
Host pair on my Mac
Wrote provisioning scripts
create user
add SSH public key
tmux for session sharing only
emacs and multi-term
zsh is happy here! 😄 😄
demo
Hosting on OSXAn awful idea
ISP
dynamic IP / DNS
router port forwarding
firewall
file permissions
Mk XI
A/V Chat via Skype
Manually configured cloud host
Manually provision pair
tmux for session sharing only
emacs and multi-term
https://github.com/elight/pairing-server
A/V Chat via Skype
Vagrant-provisioned cloud server
Manually provision pair
tmux for session sharing only
emacs and multi-term
Mk XII(Spring 2014)
demo w/ Sean
What’s left?Automate provisioning pair at server create
Maybe using something like keybase?
Container-ize non-pair provisioning
Update pair to automatically wemux attach at login time
Better term than multi-term?
vim-tmux-navigator
Tips & Tricks
Chat window position
Translucent terminal
A/V window near camera
Step-wise bandwidth reduction
Useful for:
Public wifi (QOS)
3G
Developing world
“Let me drive”
(Remote) pair
For further inspiration see:
pairprogramwith.me
tmux: Productive Mouse-Free Development
Evan Light@elight