Remote pairing from the comfort of your own shell

Post on 15-Jan-2015

298 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

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 vim

Transcript

Evan Light@elight

evan.light@rackspace.com

About me

^

a bit

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?

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

evan.light@rackspace.com

top related