Top Banner
Evan Light @elight [email protected]
80

Remote pairing from the comfort of your own shell

Jan 15, 2015

Download

Software

evanlight

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 2: Remote pairing from the comfort of your own shell

About me

Page 3: Remote pairing from the comfort of your own shell
Page 4: Remote pairing from the comfort of your own shell
Page 5: Remote pairing from the comfort of your own shell
Page 6: Remote pairing from the comfort of your own shell
Page 7: Remote pairing from the comfort of your own shell
Page 8: Remote pairing from the comfort of your own shell
Page 9: Remote pairing from the comfort of your own shell
Page 10: Remote pairing from the comfort of your own shell
Page 11: Remote pairing from the comfort of your own shell
Page 12: Remote pairing from the comfort of your own shell

^

a bit

Page 13: Remote pairing from the comfort of your own shell

“Lonely Bunny” by valkeeja

Page 14: Remote pairing from the comfort of your own shell

Remote Pairingfrom the comfort of your own shell

Page 15: Remote pairing from the comfort of your own shell
Page 16: Remote pairing from the comfort of your own shell

“Remote Pairing Stacks I’ve Tried and

Thrown Away”

Page 17: Remote pairing from the comfort of your own shell

Mk I Remote Pairing Stack

(2009 give or take…)

A/V chat via Skype

Skype Screen Sharing

Page 18: Remote pairing from the comfort of your own shell

Shoulder surfing

Page 19: Remote pairing from the comfort of your own shell
Page 20: Remote pairing from the comfort of your own shell

We’re all Tony Stark

We hack

We experiment

We evolve

Page 21: Remote pairing from the comfort of your own shell

Mk II

A/V chat (then) OSX Chat app

OSX Screen Sharing

Page 22: Remote pairing from the comfort of your own shell
Page 23: Remote pairing from the comfort of your own shell

Mk III

A/V chat via Skype

Vine VNC (OSX)

Page 24: Remote pairing from the comfort of your own shell
Page 25: Remote pairing from the comfort of your own shell

tmux

Page 27: Remote pairing from the comfort of your own shell

demo

Page 28: Remote pairing from the comfort of your own shell

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

Page 29: Remote pairing from the comfort of your own shell

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

Page 30: Remote pairing from the comfort of your own shell

terminal-based editor

Page 31: Remote pairing from the comfort of your own shell
Page 32: Remote pairing from the comfort of your own shell

vim + tmux = modality2

Page 33: Remote pairing from the comfort of your own shell

demo

Page 35: Remote pairing from the comfort of your own shell

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

Page 36: Remote pairing from the comfort of your own shell

demo

Page 37: Remote pairing from the comfort of your own shell
Page 38: Remote pairing from the comfort of your own shell

The Dream:

Shell in the editor

Page 40: Remote pairing from the comfort of your own shell

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

Page 41: Remote pairing from the comfort of your own shell

zsh is sad… 😞 😞 😞

Page 42: Remote pairing from the comfort of your own shell

no demo

Page 43: Remote pairing from the comfort of your own shell

just no

Page 44: Remote pairing from the comfort of your own shell

no.

Page 45: Remote pairing from the comfort of your own shell
Page 46: Remote pairing from the comfort of your own shell
Page 47: Remote pairing from the comfort of your own shell

yes, emacs

Page 48: Remote pairing from the comfort of your own shell

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

Page 49: Remote pairing from the comfort of your own shell
Page 50: Remote pairing from the comfort of your own shell

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

Page 51: Remote pairing from the comfort of your own shell

result: Close

Page 52: Remote pairing from the comfort of your own shell

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

Page 53: Remote pairing from the comfort of your own shell

result: Not quite

Page 55: Remote pairing from the comfort of your own shell

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

Page 56: Remote pairing from the comfort of your own shell

zsh is happy here! 😄 😄

Page 57: Remote pairing from the comfort of your own shell
Page 58: Remote pairing from the comfort of your own shell

demo

Page 59: Remote pairing from the comfort of your own shell

Hosting on OSXAn awful idea

Page 60: Remote pairing from the comfort of your own shell

ISP

dynamic IP / DNS

router port forwarding

firewall

file permissions

Page 61: Remote pairing from the comfort of your own shell
Page 62: Remote pairing from the comfort of your own shell

Mk XI

A/V Chat via Skype

Manually configured cloud host

Manually provision pair

tmux for session sharing only

emacs and multi-term

Page 63: Remote pairing from the comfort of your own shell
Page 64: Remote pairing from the comfort of your own shell
Page 65: Remote pairing from the comfort of your own shell

https://github.com/elight/pairing-server

Page 66: Remote pairing from the comfort of your own shell

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)

Page 67: Remote pairing from the comfort of your own shell

demo w/ Sean

Page 68: Remote pairing from the comfort of your own shell

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?

Page 70: Remote pairing from the comfort of your own shell

Tips & Tricks

Page 71: Remote pairing from the comfort of your own shell

Chat window position

Page 72: Remote pairing from the comfort of your own shell
Page 73: Remote pairing from the comfort of your own shell

Translucent terminal

Page 74: Remote pairing from the comfort of your own shell

A/V window near camera

Page 75: Remote pairing from the comfort of your own shell

Step-wise bandwidth reduction

Page 76: Remote pairing from the comfort of your own shell

Useful for:

Public wifi (QOS)

3G

Developing world

Page 77: Remote pairing from the comfort of your own shell

“Let me drive”

Page 78: Remote pairing from the comfort of your own shell
Page 79: Remote pairing from the comfort of your own shell

(Remote) pair

Page 80: Remote pairing from the comfort of your own shell

For further inspiration see:

pairprogramwith.me

tmux: Productive Mouse-Free Development

Evan Light@elight

[email protected]