Remote Pairing For the Win!
Rails Girls Remote Pairing Tutorial
Created by Ed Drain, @SoldierCoder
Why is Remote Pairing so great?
First things first, what is my motivation for sharing this? If you are reading this, you are already aware of the power of Rails Girls. In case you did not know, let me give you a few facts. Rails Girls is an organization that introduces women to web application development using Ruby on Rails. For many women around the world, it is a powerful, emotional experience that shows them that they can create something new for the Web and that they have support of other women who extended their privilege to them.
I said "around the world", didn't I? Indeed, Rails Girls is on every continent and in 130 + cities! I know this is true because, through the generosity of Ryan Bates (@RBates), I have had the honor of distributing coupons good for three months free of RailsCasts.com to so many of those cities. So there is part of the promise of Rails Girls -- that women, around the world, who need some way of lifting themselves up out of possibly dire circumstances and thru study and application of what they have learned, get the pot of gold at the end of the rainbow -- a high paying job where they are respected for their creations.
But seriously, why is Remote Pairing so great?
Remote-pairing is so great because people who can benefit from people who would coach them are not always near to them. I know this because as a coach for Rails Girls Summer of Code who lived in Virginia, while the team I coached lived in London and Pennsylvania. If it weren't for remote pairing, I'd have to get on a plane or drive twelve hours just to show how to write a "hello, world!" example app!
Ok, I'm sold! What do I need to remote pair?
- An Internet connection.
- One or more programming friends that want to remote pair with you
- Madeye -- this is really important! This will let you and your friends work on the same code and SEE what the other person is changing AS they change it!
- Optionally either Google accounts for you and your friends so you can hear each other or Skype accounts or anything that lets you all hear what the other says.
How do I install Madeye?
- Install Node.js
- If you are installing to Linux or Mac, at the terminal type:
curl https://madeye.io/install | sh. Otherwise, if you are installing to a Windows machine, type:
npm install -g madeye.
- Now Madeye is installed!
- Again, at the terminal type
madeyein the directory you want to share.
- Madeye will report in your terminal the URL to share with your teammates and all of you can go there in your browser and edit code.
If you are coaching, you and the person you are coaching can look on the left side of their browsers screen and see your icon in a particular directory. If the coachee clicks on that directory they will see your icon again on either a file or another directory. You can follow those down to whatever file you want to edit and look in the code for their cursor. Its that easy!
Alternatives to Madeye
It is the guide author's belief that Madeye is the best thing going for pair programming. However, this guide is a gift to you, the reader as well as to those you may pair with, and so, not to shirk my duty to the Pair Programming World, I offer this one link that contains so many other options: PairProgramWith.Me. I hope you find the best way for you and your pair-programming buddies.
My last thought
The Ruby community is such a great example of people helping others. One has only to look at the folks nominated every year as Ruby Heros to see this in action. What a great and generous world this would be, if all of us extended some of our privilege to someone who has less. It would be a world that reflects that most common of sayings that you probably hear at meetings of your local Ruby/Rails meet-up: "MINSWAN" -- Matz is nice, so we are nice! Let's get started being nice to each other!