SlideShare a Scribd company logo
1 of 80
Evan Light
@elight
evan.light@rackspace.com
About me
^
a bit
“Lonely Bunny” by valkeeja
Remote Pairing
from 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
wemux
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
vimux
Mk V
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 with vimux
demo
The Dream:
Shell in the editor
Conque
Mk VI
A/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 VII
A/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 VIII
A/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 IX
A/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
multi-term
Mk X
A/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 OSX
An 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
evan.light@rackspace.com

More Related Content

What's hot

CRaSH the shell for the JVM
CRaSH the shell for the JVMCRaSH the shell for the JVM
CRaSH the shell for the JVMjviet
 
WordPress modern development
WordPress modern developmentWordPress modern development
WordPress modern developmentRoman Veselý
 
CRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual MachineCRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual MachineGR8Conf
 
Laravel Poznań Meetup #12 - "Speed up web API with Laravel and Swoole using ...
 Laravel Poznań Meetup #12 - "Speed up web API with Laravel and Swoole using ... Laravel Poznań Meetup #12 - "Speed up web API with Laravel and Swoole using ...
Laravel Poznań Meetup #12 - "Speed up web API with Laravel and Swoole using ...HighSolutions Sp. z o.o.
 
EmacsConf 2019: Interactive Remote Debugging and Development with TRAMP Mode
EmacsConf 2019: Interactive Remote Debugging and Development with TRAMP ModeEmacsConf 2019: Interactive Remote Debugging and Development with TRAMP Mode
EmacsConf 2019: Interactive Remote Debugging and Development with TRAMP ModeMatt Ray
 
ClusterDesktop how-to use on Mac
ClusterDesktop how-to use on MacClusterDesktop how-to use on Mac
ClusterDesktop how-to use on MacEmil Parashkevov
 
Connect to blumix vm with vnc
Connect to blumix vm with vncConnect to blumix vm with vnc
Connect to blumix vm with vncJoseph Chang
 
Create docker image with bluemix dev ops
Create docker image with bluemix dev opsCreate docker image with bluemix dev ops
Create docker image with bluemix dev opsJoseph Chang
 
[Greach 2016] Down The RabbitMQ Hole
[Greach 2016] Down The RabbitMQ Hole[Greach 2016] Down The RabbitMQ Hole
[Greach 2016] Down The RabbitMQ HoleAlonso Torres
 
Meryliza muabbad how_to_use-jing
Meryliza muabbad how_to_use-jingMeryliza muabbad how_to_use-jing
Meryliza muabbad how_to_use-jingMeryliza Muabbad
 
ClusterDesktop how-to use from Android devices
ClusterDesktop how-to use from Android devicesClusterDesktop how-to use from Android devices
ClusterDesktop how-to use from Android devicesEmil Parashkevov
 
12 Composer #burningkeyboards
12 Composer #burningkeyboards12 Composer #burningkeyboards
12 Composer #burningkeyboardsDenis Ristic
 
Building (localized) Vagrant boxes with Packer
Building (localized) Vagrant boxes with PackerBuilding (localized) Vagrant boxes with Packer
Building (localized) Vagrant boxes with PackerCristovao G. Verstraeten
 
Installing and running Postfix within a docker container from the command line
Installing and running Postfix within a docker container from the command lineInstalling and running Postfix within a docker container from the command line
Installing and running Postfix within a docker container from the command linedotCloud
 
Get the most out of your Mac OS X
Get the most out of your Mac OS XGet the most out of your Mac OS X
Get the most out of your Mac OS XJanne Warén
 
Your own minecraft server on a linode vps
Your own minecraft server on a linode vpsYour own minecraft server on a linode vps
Your own minecraft server on a linode vpsCleo Morisson
 
ClusterDesktop manual how-to use for Linux clients
ClusterDesktop manual how-to use for Linux clientsClusterDesktop manual how-to use for Linux clients
ClusterDesktop manual how-to use for Linux clientsEmil Parashkevov
 
How to use UStream Producer
How to use UStream ProducerHow to use UStream Producer
How to use UStream ProducerVhon vega
 

What's hot (19)

CRaSH the shell for the JVM
CRaSH the shell for the JVMCRaSH the shell for the JVM
CRaSH the shell for the JVM
 
WordPress modern development
WordPress modern developmentWordPress modern development
WordPress modern development
 
CRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual MachineCRaSH the shell for the Java Virtual Machine
CRaSH the shell for the Java Virtual Machine
 
Laravel Poznań Meetup #12 - "Speed up web API with Laravel and Swoole using ...
 Laravel Poznań Meetup #12 - "Speed up web API with Laravel and Swoole using ... Laravel Poznań Meetup #12 - "Speed up web API with Laravel and Swoole using ...
Laravel Poznań Meetup #12 - "Speed up web API with Laravel and Swoole using ...
 
EmacsConf 2019: Interactive Remote Debugging and Development with TRAMP Mode
EmacsConf 2019: Interactive Remote Debugging and Development with TRAMP ModeEmacsConf 2019: Interactive Remote Debugging and Development with TRAMP Mode
EmacsConf 2019: Interactive Remote Debugging and Development with TRAMP Mode
 
ClusterDesktop how-to use on Mac
ClusterDesktop how-to use on MacClusterDesktop how-to use on Mac
ClusterDesktop how-to use on Mac
 
Connect to blumix vm with vnc
Connect to blumix vm with vncConnect to blumix vm with vnc
Connect to blumix vm with vnc
 
Create docker image with bluemix dev ops
Create docker image with bluemix dev opsCreate docker image with bluemix dev ops
Create docker image with bluemix dev ops
 
[Greach 2016] Down The RabbitMQ Hole
[Greach 2016] Down The RabbitMQ Hole[Greach 2016] Down The RabbitMQ Hole
[Greach 2016] Down The RabbitMQ Hole
 
Meryliza muabbad how_to_use-jing
Meryliza muabbad how_to_use-jingMeryliza muabbad how_to_use-jing
Meryliza muabbad how_to_use-jing
 
ClusterDesktop how-to use from Android devices
ClusterDesktop how-to use from Android devicesClusterDesktop how-to use from Android devices
ClusterDesktop how-to use from Android devices
 
12 Composer #burningkeyboards
12 Composer #burningkeyboards12 Composer #burningkeyboards
12 Composer #burningkeyboards
 
Building (localized) Vagrant boxes with Packer
Building (localized) Vagrant boxes with PackerBuilding (localized) Vagrant boxes with Packer
Building (localized) Vagrant boxes with Packer
 
Installing and running Postfix within a docker container from the command line
Installing and running Postfix within a docker container from the command lineInstalling and running Postfix within a docker container from the command line
Installing and running Postfix within a docker container from the command line
 
Get the most out of your Mac OS X
Get the most out of your Mac OS XGet the most out of your Mac OS X
Get the most out of your Mac OS X
 
Your own minecraft server on a linode vps
Your own minecraft server on a linode vpsYour own minecraft server on a linode vps
Your own minecraft server on a linode vps
 
ClusterDesktop manual how-to use for Linux clients
ClusterDesktop manual how-to use for Linux clientsClusterDesktop manual how-to use for Linux clients
ClusterDesktop manual how-to use for Linux clients
 
Pp docker-swarm-doxlon-28th-march-2017
Pp docker-swarm-doxlon-28th-march-2017Pp docker-swarm-doxlon-28th-march-2017
Pp docker-swarm-doxlon-28th-march-2017
 
How to use UStream Producer
How to use UStream ProducerHow to use UStream Producer
How to use UStream Producer
 

Similar to Remote pairing from the comfort of your own shell

VM201 - IdoSphere
VM201 - IdoSphereVM201 - IdoSphere
VM201 - IdoSphereCarl Tyler
 
Bauen und Verteilen von Multi-Arch Docker Images für Linux und Windows
Bauen und Verteilen von Multi-Arch Docker Images für Linux und WindowsBauen und Verteilen von Multi-Arch Docker Images für Linux und Windows
Bauen und Verteilen von Multi-Arch Docker Images für Linux und WindowsStefan Scherer
 
Getting instantly up and running with Docker and Symfony
Getting instantly up and running with Docker and SymfonyGetting instantly up and running with Docker and Symfony
Getting instantly up and running with Docker and SymfonyAndré Rømcke
 
Proxmox 4.2 usage in the Standards Interoperability PLM Project
Proxmox 4.2 usage in the Standards Interoperability PLM Project Proxmox 4.2 usage in the Standards Interoperability PLM Project
Proxmox 4.2 usage in the Standards Interoperability PLM Project Dr Nicolas Figay
 
Apt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageApt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageAlessandro Cinelli (cirpo)
 
Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko3D
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Partner S.A.
 
Aucklug slides - desktop tips and tricks
Aucklug slides - desktop tips and tricksAucklug slides - desktop tips and tricks
Aucklug slides - desktop tips and tricksGlen Ogilvie
 
Hopping in clouds: a tale of migration from one cloud provider to another
Hopping in clouds: a tale of migration from one cloud provider to anotherHopping in clouds: a tale of migration from one cloud provider to another
Hopping in clouds: a tale of migration from one cloud provider to anotherMichele Orselli
 
Introduction To Programming in GNU-LINUX
Introduction To Programming in GNU-LINUXIntroduction To Programming in GNU-LINUX
Introduction To Programming in GNU-LINUXIrfan Ahmed
 
SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0
SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0
SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0Peter Elst
 
Composer Panada Conference 2014 by Mulia Nasution
Composer Panada Conference 2014 by Mulia NasutionComposer Panada Conference 2014 by Mulia Nasution
Composer Panada Conference 2014 by Mulia Nasutionk4ndar
 
V Mwarev Storage Intregration
V Mwarev Storage IntregrationV Mwarev Storage Intregration
V Mwarev Storage Intregrationmikhail.mikheev
 
Docker in 30 minutes
Docker in 30 minutesDocker in 30 minutes
Docker in 30 minutesSteve Poole
 
Learn docker in 90 minutes
Learn docker in 90 minutesLearn docker in 90 minutes
Learn docker in 90 minutesLarry Cai
 
oVirt CI Package Managenent
oVirt CI Package ManagenentoVirt CI Package Managenent
oVirt CI Package ManagenentBarak Korren
 
Academy PRO: Docker. Part 4
Academy PRO: Docker. Part 4Academy PRO: Docker. Part 4
Academy PRO: Docker. Part 4Binary Studio
 
Vm_Commit or How to Easily Handle An Infinite Number of Versions of Running Q...
Vm_Commit or How to Easily Handle An Infinite Number of Versions of Running Q...Vm_Commit or How to Easily Handle An Infinite Number of Versions of Running Q...
Vm_Commit or How to Easily Handle An Infinite Number of Versions of Running Q...Dominique Rodrigues
 

Similar to Remote pairing from the comfort of your own shell (20)

VM201 - IdoSphere
VM201 - IdoSphereVM201 - IdoSphere
VM201 - IdoSphere
 
Bauen und Verteilen von Multi-Arch Docker Images für Linux und Windows
Bauen und Verteilen von Multi-Arch Docker Images für Linux und WindowsBauen und Verteilen von Multi-Arch Docker Images für Linux und Windows
Bauen und Verteilen von Multi-Arch Docker Images für Linux und Windows
 
Getting instantly up and running with Docker and Symfony
Getting instantly up and running with Docker and SymfonyGetting instantly up and running with Docker and Symfony
Getting instantly up and running with Docker and Symfony
 
Proxmox 4.2 usage in the Standards Interoperability PLM Project
Proxmox 4.2 usage in the Standards Interoperability PLM Project Proxmox 4.2 usage in the Standards Interoperability PLM Project
Proxmox 4.2 usage in the Standards Interoperability PLM Project
 
Apt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stageApt get no more let Vagrant, Puppet and Docker take the stage
Apt get no more let Vagrant, Puppet and Docker take the stage
 
Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
Aucklug slides - desktop tips and tricks
Aucklug slides - desktop tips and tricksAucklug slides - desktop tips and tricks
Aucklug slides - desktop tips and tricks
 
Telepathy Skykit
Telepathy SkykitTelepathy Skykit
Telepathy Skykit
 
Hopping in clouds: a tale of migration from one cloud provider to another
Hopping in clouds: a tale of migration from one cloud provider to anotherHopping in clouds: a tale of migration from one cloud provider to another
Hopping in clouds: a tale of migration from one cloud provider to another
 
Introduction To Programming in GNU-LINUX
Introduction To Programming in GNU-LINUXIntroduction To Programming in GNU-LINUX
Introduction To Programming in GNU-LINUX
 
Another Test
Another TestAnother Test
Another Test
 
SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0
SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0
SkillsMatter - In-the-Brain session - What's new in ActionScript 3.0
 
Composer Panada Conference 2014 by Mulia Nasution
Composer Panada Conference 2014 by Mulia NasutionComposer Panada Conference 2014 by Mulia Nasution
Composer Panada Conference 2014 by Mulia Nasution
 
V Mwarev Storage Intregration
V Mwarev Storage IntregrationV Mwarev Storage Intregration
V Mwarev Storage Intregration
 
Docker in 30 minutes
Docker in 30 minutesDocker in 30 minutes
Docker in 30 minutes
 
Learn docker in 90 minutes
Learn docker in 90 minutesLearn docker in 90 minutes
Learn docker in 90 minutes
 
oVirt CI Package Managenent
oVirt CI Package ManagenentoVirt CI Package Managenent
oVirt CI Package Managenent
 
Academy PRO: Docker. Part 4
Academy PRO: Docker. Part 4Academy PRO: Docker. Part 4
Academy PRO: Docker. Part 4
 
Vm_Commit or How to Easily Handle An Infinite Number of Versions of Running Q...
Vm_Commit or How to Easily Handle An Infinite Number of Versions of Running Q...Vm_Commit or How to Easily Handle An Infinite Number of Versions of Running Q...
Vm_Commit or How to Easily Handle An Infinite Number of Versions of Running Q...
 

Recently uploaded

Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 

Recently uploaded (20)

Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 

Remote pairing from the comfort of your own shell

Editor's Notes

  1. Developer ~18 years Ruby Developer ~8 years Remote worker ~7 years
  2. I run Ruby DCamp A 3 day nerd commune in the woods, going on our 7th year Eventually, I’ll even update the website for this year 10/10-12
  3. I work for Rackspace as a Developer Advocate. I’m an ambassador between them and the Ruby community.
  4. And, for those of you who don’t know me, I am easily amused
  5. Time for a little geography lesson Currently, we are here
  6. For the past 6 years, I lived here: Ocean City, MD
  7. As you can see, Ocean City is an exciting place, full of culture and knowledge.
  8. There was even one whole other software developer.
  9. Kim and I moved to Ocean City to be near her mother Kim had Huntington’s Disease HD is neurological, systemic, progressive, and there is no cure
  10. She died October of last year But that’s another talk for another time
  11. I’m still getting better…
  12. But caring for my wife, as her health worsened, and working remotely while living in Ocean City was often lonely.
  13. What if I could work more closely with my remote colleagues and feel less alone and isolated?
  14. Because I couldn’t find a Star Trek transporter effect 😀
  15. A historical accounting Evolved as the pain of each became too annoying not to None of them are perfect
  16. Skype recently added screen sharing as a feature
  17. Advantage: EASY to setup! Disadvantage: Navigator could never drive!
  18. It. Felt. Awesome! A little clunky but awesome I could now discuss code over the internet in real time And don’t all programmers have a bit of Tony Stark in them? We hack. We experiment. We evolve.
  19. Crashy with a tendency to explode at times But a taste of true remote pairing!
  20. “Yeah, I can fly” Interaction! And stable! VNC is a huge bandwidth hog But not crashy!
  21. “terminal multiplexer” Multiple terminals via the same connection But more awesome: sessions can be shared across a socket
  22. Tmux’s CLI is a little obtuse wemux makes it better
  23. Handy for reference later when you’re reading the PDF
  24. Add SSH Create users and add their SSH keys tmux for sharing session and having multiple shells
  25. tmux runs in the terminal editor choices are limited: vim or emacs
  26. This felt powerful! But still not ideal
  27. Remote control the tmux shell from vim
  28. Still felt a bit clumsy I like to scroll and search my shell’s history Added a few commands to vimux for scrolling Sending search commands, through vimux, didn’t appear feasible
  29. This is how I felt after a few days of Conque
  30. … which finally led to…
  31. Not perfect but well on our way
  32. A pure Emacs LISP terminal Thanks, Avdi
  33. An 80% solution Sporadic indentation issues Some issues w/ ZSH and pry
  34. ISP probably doesn’t permit servers per EULA Better have your users, groups, and file permissions well in order as you will have many people crawling around in your box Besides, there’s no easy way to kick a logged in user off of your (likely) OSX box
  35. Frustration due to external dependencies of ISP and DynDNS
  36. Host is only used for remote pairing Less risk
  37. Easy to set up a local server Plugins make it easy to set up remote servers
  38. OMG Ruby code! Vagrantfile for my Rackspace Cloud pairing server Sets up my emacs and (yes, it’s old) Ruby 1.9.1
  39. Link to the repo for later Just an example You’d probably want to roll your own
  40. Create on demand in about 5 minutes or so
  41. This came a year late for me… 😭 80% solution Navigation between tmux and vim Doesn’t facilitate search and scrolling
  42. I scared myself when I was creating this slide After removing the other windows, I was left with Josh staring at me
  43. Disable video Disable A/V chat and use phone instead Just give up already, sheesh