<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Pairing on Bridge</title><link>https://quarternotecoda.com/tags/pairing/</link><description>Recent content in Pairing on Bridge</description><generator>Hugo -- 0.160.1</generator><language>en-us</language><lastBuildDate>Thu, 19 Dec 2013 00:00:00 +0000</lastBuildDate><atom:link href="https://quarternotecoda.com/tags/pairing/index.xml" rel="self" type="application/rss+xml"/><item><title>Code Retreat</title><link>https://quarternotecoda.com/posts/2013-12-19-code-retreat/</link><pubDate>Thu, 19 Dec 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-12-19-code-retreat/</guid><description>&lt;p&gt;Last weekend I participated in the &lt;a href="http://globalday.coderetreat.org/"&gt;Global Day of Code Retreat&lt;/a&gt; here in Austin. I was impressed at the diveristy of participants, the overall good nature of those there, and what I was able to learn even while pairing with relative beginners.&lt;/p&gt;
&lt;p&gt;When I got there, there were 3 women and 3 men in the room. By the end of the day there were about 6 women and 10 men. At least 6 of the participants grew up in foreign countries. It was, for a computer meetup on a Saturday, a fairly diverse crowd. I was impressed.&lt;/p&gt;</description></item><item><title>Different Pairing Styles</title><link>https://quarternotecoda.com/posts/2013-11-16-different-pairing-styles/</link><pubDate>Sat, 16 Nov 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-11-16-different-pairing-styles/</guid><description>&lt;p&gt;Pairing is hard, but to me, the hardest part about remote pairing is not technology or even logistics, it&amp;rsquo;s collaboration and problem solving together. To that end, there are multiple pairing styles that are worth looking at when you&amp;rsquo;re trying to pair with someone knew. Each style facilitates collaboration differently and knowing how they work helps.&lt;/p&gt;
&lt;h1 id="driver--navigator"&gt;Driver / Navigator&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Fundamental Idea&lt;/strong&gt;
One partner &amp;ldquo;drives&amp;rdquo; at the keyboard, focusing on implementing. The other partner &amp;ldquo;navigates&amp;rdquo; verbally, focusing on big ideas, questions, typos, and conventions.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @piisalie - Emacs and Exercism.io</title><link>https://quarternotecoda.com/posts/2013-08-09-pairing-post-mortem-at-piisalie-emacs-and-exercism-dot-io/</link><pubDate>Fri, 09 Aug 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-08-09-pairing-post-mortem-at-piisalie-emacs-and-exercism-dot-io/</guid><description>&lt;p&gt;The other night, I got to pair with &lt;a href="http://twitter.com/piisalie"&gt;@piisalie&lt;/a&gt; to
learn some Emacs and work through a little &lt;a href="http://exercism.io"&gt;exercism.io&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Paul is a relatively new developer, but he&amp;rsquo;s been studying under the tutelage
of &lt;a href="http://twitter.com/jeg2"&gt;@jeg2&lt;/a&gt; and getting ramped up very quickly as a
result. It&amp;rsquo;s neat to see people who are able to absorb so much so quickly.&lt;/p&gt;
&lt;h3 id="setup"&gt;Setup&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Google+ Hangouts&lt;/li&gt;
&lt;li&gt;TMUX + Emacs (Ahhhhhhhhhhh!!)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Paul was pretty familiar with Emacs and did a good job showing me around. We
worked on a small exercise and I tried to do as much of the editing as possible
as he guided me when I said &amp;ldquo;how do I move up and down again?&amp;rdquo;&lt;/p&gt;</description></item><item><title>The #pairwithme Progression</title><link>https://quarternotecoda.com/posts/2013-07-20-the-number-pairwithme-progression/</link><pubDate>Sat, 20 Jul 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-07-20-the-number-pairwithme-progression/</guid><description>&lt;p&gt;I gave a quick lightning talk on how to have a good &lt;a href="https://twitter.com/search?q=%23pairwithme"&gt;#pairiwthme&lt;/a&gt; session at &lt;a href="http://lonestarruby.org"&gt;LSRC&lt;/a&gt; this year.&lt;/p&gt;
&lt;p&gt;I still had a question on how to get started in pairing afterward. I came up with a basic set of steps, which can be combined as needed.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Get a pairing session scheduled and established. Share a screen. Type together. Sometimes this takes longer&amp;hellip; sometimes it&amp;rsquo;s just a few minutes.&lt;/li&gt;
&lt;li&gt;Work on the simplest possible setup you&amp;rsquo;re comfortable with. Usually this is &lt;a href="http://plus.google.com"&gt;Google+&lt;/a&gt; and &lt;a href="http://screenhero.com"&gt;ScreenHero&lt;/a&gt;, but YMMV.&lt;/li&gt;
&lt;li&gt;Work toward an optimal setup you&amp;rsquo;re comfortable with that maximizes responsiveness and communication. Typically this is low bandwidth (i.e. Audio Only (Skype?) and terminal sharing (tmux))&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You may be able to get all the way to step 3 in your first session, or you may take 3 separate sessions to get all the way there. Either way, you&amp;rsquo;ll get there, and then you&amp;rsquo;ll be comfortable enough to take someone else through it.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @jnanney - OAuth</title><link>https://quarternotecoda.com/posts/2013-07-18-pairing-post-mortem-at-jnanney-oauth/</link><pubDate>Thu, 18 Jul 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-07-18-pairing-post-mortem-at-jnanney-oauth/</guid><description>&lt;p&gt;I finally got a chance to pair with &lt;a href="http://twitter.com/jnanney"&gt;@jnanney&lt;/a&gt; tonight. He had a project dealing with the OnStar API that needed OAuth Authentication, so we took a stab at implementing it.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Skype - TIL Skype 6.x turns off your video if you connect to a Skype 2.0 client&amp;ndash;but the audio still works!&lt;/li&gt;
&lt;li&gt;TMUX+VIM on a slice (not local)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="experience"&gt;Experience&lt;/h2&gt;
&lt;p&gt;We started by making some large, rough ideas about what we wanted to accomplish and then began looking up some things on OAuth2 to help us accomplish them. Pretty quickly we stopped driving everything via tests and started exploring via &lt;code&gt;IRB&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @willpragnell - Mute Pairing with VIM</title><link>https://quarternotecoda.com/posts/2013-07-09-pairing-post-mortem-at-willpragnell-mute-pairing-with-vim/</link><pubDate>Tue, 09 Jul 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-07-09-pairing-post-mortem-at-willpragnell-mute-pairing-with-vim/</guid><description>&lt;p&gt;Last week I had the opportunity to pair again with &lt;a href="http://twitter.com/willpragnell"&gt;@willpragnell&lt;/a&gt;. He had just moved and didn&amp;rsquo;t have internet access, so I suggested that we try a &amp;ldquo;mute&amp;rdquo; pairing session from a coffee shop, where all our communication happened through VIM.&lt;/p&gt;
&lt;p&gt;He was game, so we started off with a quick chat session on Google+ to get set up, and then switched to a VIM+TMUX setup for the rest of the time.&lt;/p&gt;</description></item><item><title>TDD And Pairing Will Save You</title><link>https://quarternotecoda.com/posts/2013-07-09-tdd-and-pairing-will-save-you/</link><pubDate>Tue, 09 Jul 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-07-09-tdd-and-pairing-will-save-you/</guid><description>&lt;p&gt;&lt;a href="http://pauloortins.com/lessons-unit-tests/"&gt;12 Lessons I learned from Unit Tests/TDD&lt;/a&gt; is a great article for practically adding TDD to your teams rhythm. I can&amp;rsquo;t stress enough how much point 8 makes a difference:&lt;/p&gt;
&lt;p&gt;Pair programming helps the team to adopt TDD. When we are trying TDD for the first time or when our deadline is tight, we will have the will to forget the tests and write only production code. Pair programming will prevent the team to cut corners and will keep it writing tests.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @peter_v - Improving a Semantic Store</title><link>https://quarternotecoda.com/posts/2013-07-03-pairing-post-mortem-at-peter-v-improving-a-fact-engine/</link><pubDate>Wed, 03 Jul 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-07-03-pairing-post-mortem-at-peter-v-improving-a-fact-engine/</guid><description>&lt;p&gt;Today I got to pair with &lt;a href="http://twitter.com/peter_v"&gt;Peter Vanderabeele&lt;/a&gt;, who is a programmer from Belgium with a highly methodical bent. He has clearly had a lot of experience and it was neat to get to work on his project since it isn&amp;rsquo;t every day you get to work on a high performance fact storage system.&lt;/p&gt;
&lt;p&gt;Peter is creating a data store meant to store semantic facts that have relationships to each other. It&amp;rsquo;s a very different project with a goal, he stated, to have data in this format and extractable for the next 50 years. To try to view code with that lens is very different from how most other Rubyists think. We tend to see our code dying in the next 5 years&amp;hellip; max. So we make decisions with that timeline in mind. Thinking of a timeline longer than my own life has very different implications.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @stuartrexking - Cane Extension</title><link>https://quarternotecoda.com/posts/2013-06-29-pairing-post-mortem-at-stuartrexking-cane-extension/</link><pubDate>Mon, 24 Jun 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-06-29-pairing-post-mortem-at-stuartrexking-cane-extension/</guid><description>&lt;p&gt;Last night&amp;rsquo;s pair session was with &lt;a href="http://twitter.com/stuartrexking"&gt;@stuartrexking&lt;/a&gt; - a very experienced developer and technologist currently working at a really neat company called &lt;a href="http://antipodeanlabs.com/"&gt;Antipodean Labs&lt;/a&gt;. It seems like he&amp;rsquo;s got a great handle on solving problems and staying maintainable.&lt;/p&gt;
&lt;p&gt;We started off by trying to decide what to do. I&amp;rsquo;m increasingly convinced this is the possibly the hardest part of remote pairing with people who aren&amp;rsquo;t part of your company. You don&amp;rsquo;t have a predefined complex project you both find interest in, so the most likely shared interests are either meta problems or highly common ones. Highly common ones are very visible and difficult to find low hanging fruit for. The meta problems are good to solve, but somehow feel like they are less valuable than the &amp;ldquo;real&amp;rdquo; problems. Maybe this is just a feeling I have.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @_zph - Meta Pull Requests</title><link>https://quarternotecoda.com/posts/2013-06-19-pairing-post-mortem-at-zph-meta-pull-requests/</link><pubDate>Wed, 19 Jun 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-06-19-pairing-post-mortem-at-zph-meta-pull-requests/</guid><description>&lt;p&gt;I had a great &lt;a href="http://pairprogramwith.me"&gt;#pairwithme&lt;/a&gt; session with &lt;a href="http://twitter.com/_zph"&gt;@_zph&lt;/a&gt;. Always a pleasure to talk to him and solve a problem together.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;TMUX + VIM on a slice&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/chrishunt/github-auth"&gt;github-auth&lt;/a&gt; gem&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="experience"&gt;Experience&lt;/h2&gt;
&lt;p&gt;We wanted to add the feature to &lt;code&gt;gh-auth&lt;/code&gt; so you could pass a &lt;code&gt;&amp;ndash;path&lt;/code&gt; or &lt;code&gt;&amp;ndash;user&lt;/code&gt; argument to it. Because we&amp;rsquo;re good developers, we started off by coding the acceptance test. We discussed the merits of how to write good tests and whether to follow convetions within a gem authored by someone else or do things &amp;rsquo;the right way&amp;rsquo; &amp;ndash; according to whatever coding religion you follow. Eventually we decided on sticking to the conventions of the gem while trying to improve&amp;ndash;but not radically change&amp;ndash;the tests/testing that we touched. From there, we dove down into the implementation and unit tests and drove through until we had the &lt;code&gt;&amp;ndash;path&lt;/code&gt; argument working. Along the way we did a little refactoring to use the &lt;a href="http://ruby-doc.org/stdlib-1.9.3/libdoc/optparse/rdoc/OptionParser.html"&gt;OptionParser&lt;/a&gt; instead of requiring a specific ordering of options.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @Shicholas - String Calculator</title><link>https://quarternotecoda.com/posts/2013-06-18-pairing-post-mortem-at-shicholas-string-calculator/</link><pubDate>Tue, 18 Jun 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-06-18-pairing-post-mortem-at-shicholas-string-calculator/</guid><description>&lt;p&gt;Last night I had a great pairing with &lt;a href="http://twitter.com/Schicholas"&gt;@Shicholas&lt;/a&gt; working on the &lt;a href="http://osherove.com/tdd-kata-1/"&gt;String Calculator kata&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;p&gt;We again used TMUX + VIM, even though Nick wasn&amp;rsquo;t very familiar with VIM. Based on his experience, I think this might be the &lt;strong&gt;best way to learn VIM&lt;/strong&gt; since you have someone guiding you through. You won&amp;rsquo;t pick up on everything, but you&amp;rsquo;ll learn a handful of new things each time.&lt;/p&gt;
&lt;h2 id="exercise"&gt;Exercise&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/marksim/5802445"&gt;We went through each of the different rules and ping ponged back and forth&lt;/a&gt;. It was a struggle to do the &lt;em&gt;simplest&lt;/em&gt; possible thing every time, and really let the tests DRIVE your development. Your developer brain wants to generalize the solution to a problem, but the strength of TDD is keeping your &lt;em&gt;actual&lt;/em&gt; solution as simple as possible. Developers are notorious for over complicating things and over desigining.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @hinbody - Attacking Open Source is Hard</title><link>https://quarternotecoda.com/posts/2013-06-14-pairing-post-mortem-at-hinbody-how-to-attack-open-source-projects/</link><pubDate>Fri, 14 Jun 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-06-14-pairing-post-mortem-at-hinbody-how-to-attack-open-source-projects/</guid><description>&lt;p&gt;The easiest things to pair on are little tasks that you both understand and can be easily &amp;ldquo;completed&amp;rdquo; within a 1-2 hour pairing session. Unfortunately, Tic Tac Toe, Conway&amp;rsquo;s Game of Life and Bowling become stale quickly. It&amp;rsquo;s not that they don&amp;rsquo;t have valuable things to teach you, but you can&amp;rsquo;t pair with the same people over and over again just doing those problems. Eventually you need to dive into a real project.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @willpragnell - Overseas TDD</title><link>https://quarternotecoda.com/posts/2013-06-14-pairing-post-mortem-at-willpragnell-overseas-tdd/</link><pubDate>Fri, 14 Jun 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-06-14-pairing-post-mortem-at-willpragnell-overseas-tdd/</guid><description>&lt;p&gt;I had my first pairing session with &lt;a href="http://twitter.com/willpragnell"&gt;@willpragnell&lt;/a&gt; today. He&amp;rsquo;s a smart guy and my first European pair partner. It was a pleasure to talk to him about his iOS and Ruby experience and I picked up on a lot of little things from our pairing session together.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;TMUX and VIM - (I got to use my &lt;a href="https://gist.github.com/marksim/5785406"&gt;newly revised pairing script&lt;/a&gt; to set up everything in seconds)&lt;/li&gt;
&lt;li&gt;TicTacToe - RSpec&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="the-session"&gt;The Session&lt;/h2&gt;
&lt;p&gt;We set a couple of goals out for the beginning. We both wanted to learn more of RSpec&amp;rsquo;s new syntax and we wanted to really adhear to the TDD principle of doing the most simple thing next.&lt;/p&gt;</description></item><item><title>Watch and Learn</title><link>https://quarternotecoda.com/posts/2013-06-07-watch-and-learn/</link><pubDate>Fri, 07 Jun 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-06-07-watch-and-learn/</guid><description>&lt;p&gt;I&amp;rsquo;ve now been pairing with several people a week for the last few weeks. Even over that short period of time, I&amp;rsquo;ve seen a pattern emerge:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;If you watch someone else (of any skill level) and pay attention, you will learn.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When I&amp;rsquo;m watching others, I tend to be thinking of what I&amp;rsquo;d do in their situation, but sometimes just observing very simple things a user does &amp;ndash; a VIM action, a command line script, an obscure API call, a rare tool &amp;ndash; these are the details that change you in the small over time. This same principle is why counselors tell you to &lt;a href="http://www.chabad.org/blogs/blog_cdo/aid/1113950/jewish/How-to-Actively-Listen-to-Your-Spouse.htm"&gt;actively listen to your spouse&lt;/a&gt; &amp;ndash; hear what they&amp;rsquo;re saying instead of just thinking of what you&amp;rsquo;re about to say. Sometimes you pick up on things they might not be able to vocalize themselves. Sometimes you pick up on emotions you would be too busy to notice otherwise. Actively listening in any relationship involves shutting up and noticing the details&amp;ndash;it just happens to be true when you&amp;rsquo;re pair programming as well.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @mattr_ - Pending Specs and Assertions First</title><link>https://quarternotecoda.com/posts/2013-06-06-pairing-post-mortem-at-mattr-pending-specs-and-assertions-first/</link><pubDate>Thu, 06 Jun 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-06-06-pairing-post-mortem-at-mattr-pending-specs-and-assertions-first/</guid><description>&lt;p&gt;Today I paired with &lt;a href="http://twitter.com/@mattr_"&gt;@mattr_&lt;/a&gt; and got quite a bit of good input regarding how to attack a problem and write tests. Matt is a super smart guy who has really absorbed some of the fundamentals of TDD and it shows through his ability to break down a problem.&lt;/p&gt;
&lt;h2 id="setup"&gt;Setup&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;TMUX &amp;amp; VIM on my box&lt;/li&gt;
&lt;li&gt;Conway&amp;rsquo;s Game of Life as an exercise&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="process"&gt;Process&lt;/h2&gt;
&lt;p&gt;When &lt;a href="https://gist.github.com/marksim/5723610"&gt;implementing the game of life&lt;/a&gt;, we started off looking at the problem on Wikipedia and found the 4 rules. I immediately started writing the first test when Matt noted that he liked to write all the specs he knows of as pending specs right at the beginning. Then he can really plow forward and know what&amp;rsquo;s next. He also noted that he likes to be able to write the assertion first, based on the test, and then build the test up from there. I felt the lightbulb go off when he pointed these two things out. When I&amp;rsquo;ve struggled to find the test or figure out how to test something, usually it&amp;rsquo;s because I can&amp;rsquo;t figure out how to get to the assertion, and that really comes down to not testing the right thing.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - The Mistake</title><link>https://quarternotecoda.com/posts/2013-06-06-pairing-post-mortem-the-mistake/</link><pubDate>Thu, 06 Jun 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-06-06-pairing-post-mortem-the-mistake/</guid><description>&lt;p&gt;{% blockquote Chris Knight and Lazlo Holyfeld &lt;a href="http://www.imdb.com/title/tt0089886/trivia?item=qt0435761"&gt;http://www.imdb.com/title/tt0089886/trivia?item=qt0435761&lt;/a&gt; Real Genius %}
&amp;ldquo;How&amp;rsquo;d I do? I passed! But I failed! Yeah!&amp;rdquo;
&amp;ldquo;Well, then I&amp;rsquo;m happy and sad for you.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Last night I made a mistake. In an effort to continue pairing with people I really enjoyed pairing with, I scheduled 2 pairing sessions for the same evening. I left 30 minutes between them, I prepared as I should&amp;hellip; but I was stressed and it made both sessions worse.&lt;/p&gt;</description></item><item><title>Quick Script for TMUX pair sessions</title><link>https://quarternotecoda.com/posts/2013-06-06-quick-script-for-tmux-pair-sessions/</link><pubDate>Thu, 06 Jun 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-06-06-quick-script-for-tmux-pair-sessions/</guid><description>&lt;p&gt;&lt;strong&gt;Update 2013-06-14:&lt;/strong&gt; &lt;em&gt;&lt;a href="https://gist.github.com/marksim/5785406"&gt;Improved the script&lt;/a&gt;, removing the github-auth dependency, some of the OS X dependencies, and added firewall punch-through (user specific) and ssh-command with external IP auto-copy to clipboard&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I wanted a quick and easy way to set up a new TMUX session with a brand new pair, so I came up with this:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#007020"&gt;#!/bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh-auth add &lt;span style="color:#bb60d5"&gt;$1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo cp ~/.ssh/authorized_keys /Users/pair/.ssh/authorized_keys
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo chown pair:staff /Users/pair/.ssh/authorized_keys
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;gh-auth remove &lt;span style="color:#bb60d5"&gt;$1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;tmux -S /tmp/pairing new -ds pairing &lt;span style="color:#666"&gt;&amp;amp;&amp;amp;&lt;/span&gt; chgrp staff /tmp/pairing &lt;span style="color:#666"&gt;&amp;amp;&amp;amp;&lt;/span&gt; tmux -S /tmp/pairing attach -t pairing
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo rm -f /Users/pair/.ssh/authorized_keys
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That will download ssh keys, create a tmux session, and attach to it. When you&amp;rsquo;re done it will cleanup so the other person has no access to your box.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @_zph - VIM and a Gem</title><link>https://quarternotecoda.com/posts/2013-06-05-pairing-post-mortem-at-zph-vim-and-a-gem/</link><pubDate>Wed, 05 Jun 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-06-05-pairing-post-mortem-at-zph-vim-and-a-gem/</guid><description>&lt;p&gt;Last night I had a great &lt;a href="http://pairprogramwith.me"&gt;#pairwithme&lt;/a&gt; session with &lt;a href="http://twitter.com/_zph"&gt;@_zph&lt;/a&gt;. He&amp;rsquo;s been doing Ruby on nights and weekends for the last few years and he&amp;rsquo;s been using &lt;a href="http://www.vim.org"&gt;VIM&lt;/a&gt; much longer than I have. I learned a lot of little tricks about VIM that I just hadn&amp;rsquo;t quite worked out before. We also refactored some of his &lt;a href="http://github.com/zph/buff"&gt;Buff&lt;/a&gt; Gem.&lt;/p&gt;
&lt;p&gt;Setup:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Zander had a VPS already provisioned with my ssh keys installed. Super Easy setup.&lt;/li&gt;
&lt;li&gt;TMUX + VIM for our editors&lt;/li&gt;
&lt;li&gt;RSpec for testing the Gem&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We started off trying to think of what to pair on within Zander&amp;rsquo;s gem. He was concerned about the tests, so we actually spent a fair amount of time just looking at the WebMocked tests and discussing the pros and cons. Eventually we decided that WebMock might be a good way to start off your TDD of an API wrapper since you have complete control of the response, but VCR gives you the best long term support since you can both get fast tests and confirm that you&amp;rsquo;re still working with the API correctly and that you didn&amp;rsquo;t just magically stub out the wrong thing&amp;ndash;just delete your cassette and you&amp;rsquo;ve got &amp;ldquo;free&amp;rdquo; real API tests, followed by nice fast tests.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @Shicholas - Real World Lessons and Bowling</title><link>https://quarternotecoda.com/posts/2013-06-04-pairing-post-mortem-at-shicholas-angular-dot-js-and-bowling/</link><pubDate>Tue, 04 Jun 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-06-04-pairing-post-mortem-at-shicholas-angular-dot-js-and-bowling/</guid><description>&lt;p&gt;Last night I had my first pairing session with &lt;a href="http://twitter.com/shicholas"&gt;@shicholas&lt;/a&gt;. Nick recently graduated from law school and is looking to pass the bar, but somehow programming calls to him. It&amp;rsquo;s a good thing too, since he&amp;rsquo;s clearly gifted and a fast learner.&lt;/p&gt;
&lt;p&gt;Setup:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ScreenHero&lt;/li&gt;
&lt;li&gt;Sublime Text 2&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/jarhart/shuhari"&gt;shuhari&lt;/a&gt; by &lt;a href="http://twitter.com/jarhart"&gt;@jarhart&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;While we were kicking things off with the &amp;ldquo;get to know you&amp;rdquo; talk, I found that Nick had a Rails + &lt;a href="http://angularjs.org/"&gt;Angular.js&lt;/a&gt; app he was working on. I&amp;rsquo;ve not done any work with Angular and asked him to show me what was going on. He pointed out the general structure as well as the custom &lt;em&gt;directives&lt;/em&gt; that Angular.js allows you to create. I&amp;rsquo;ve watched the &lt;a href="https://peepcode.com/products/emberjs"&gt;Ember.js Peepcode Intro&lt;/a&gt;, and found it difficult to get excited about it. Being introduced to Angular.js in this particular manner gave me real world applications and it seemed much more intriguing. No verdict yet on either, just initial impressions on both frameworks.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @kmeister2000 - Refactoring and MiniTest</title><link>https://quarternotecoda.com/posts/2013-05-29-pairing-post-mortem-at-kmeister-refactoring-and-minitest/</link><pubDate>Wed, 29 May 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-05-29-pairing-post-mortem-at-kmeister-refactoring-and-minitest/</guid><description>&lt;p&gt;Had a great 4th pairing with &lt;a href="http://twitter.com/kmeister2000"&gt;@kmeister2000&lt;/a&gt;. Always a pleasure to work with him.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interesting Parts of our session setup:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Worked on a real world app Karl was developing&lt;/li&gt;
&lt;li&gt;Used MiniTest instead of RSpec&lt;/li&gt;
&lt;li&gt;Refactored existing code&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;MiniTest Takeaways:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MiniTest expectations about method calls are not as clear as in Rspec and the documentation/examples aren&amp;rsquo;t as readily available.&lt;/li&gt;
&lt;li&gt;MiniTest is a lot like RSpec in nearly every other way.&lt;/li&gt;
&lt;li&gt;I&amp;rsquo;m not a fan of Mocha. I think it promotes antipatterns for how to really test.&lt;/li&gt;
&lt;li&gt;I actually like the explicit &lt;code&gt;mock.verify&lt;/code&gt; in MiniTest::Spec&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;General Takeaways:&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Pairing Post Mortem : @hinbody - TicTacToe and TMUX</title><link>https://quarternotecoda.com/posts/2013-05-29-pairing-post-mortem-at-hinbody-tictactoe-and-tmux/</link><pubDate>Wed, 29 May 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-05-29-pairing-post-mortem-at-hinbody-tictactoe-and-tmux/</guid><description>&lt;p&gt;I just finished my first &lt;a href="https://twitter.com/search?q=%23pairwithme"&gt;#pairwithme&lt;/a&gt; session with &lt;a href="http://twitter.com/hinbody"&gt;@hinbody&lt;/a&gt;. It was my first remote session to use TMUX+VIM instead of ScreenHero &amp;ndash; I have to say, it was quite easy to use and given the fact that it&amp;rsquo;s &lt;em&gt;free&lt;/em&gt;, &lt;em&gt;fast&lt;/em&gt;, and &lt;em&gt;cross-platform&lt;/em&gt;, I&amp;rsquo;ll be using it with any vim users I pair with who are willing. I&amp;rsquo;d &lt;em&gt;love&lt;/em&gt; to get &lt;a href="https://github.com/FredKSchott/CoVim"&gt;CoVim&lt;/a&gt; working since it allows you to use your own vim setup. I drool a little bit at all that. But I digress.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem : @thecommongeek - Ruby Koans</title><link>https://quarternotecoda.com/posts/2013-05-28-pairing-post-mortem-at-thecommongeek-ruby-koans/</link><pubDate>Tue, 28 May 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-05-28-pairing-post-mortem-at-thecommongeek-ruby-koans/</guid><description>&lt;p&gt;I paired with &lt;a href="http://twitter.com/thecommongeek"&gt;@thecommongeek&lt;/a&gt; last night again. This time we were more prepared and I think the session went much better.&lt;/p&gt;
&lt;p&gt;In our &lt;a href="https://quarternotecoda.com/blog/2013/05/13/pairing-as-mentoring-first-impressions/"&gt;first session&lt;/a&gt; I misjudged where Dennis was as a coder and struggled a bit with how to pair with him effectively. This time we had him drive through &lt;a href="http://screenhero.com"&gt;ScreenHero&lt;/a&gt; and decided to start from the &amp;ldquo;basics&amp;rdquo; by doing the &lt;a href="http://rubykoans.com"&gt;RubyKoans&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The RubyKoans are meant for Ruby 1.8.7, but 1.9.3 is commonplace now, so we struggled a bit at the beginning. For anyone going through the RubyKoans on 1.9.3 getting a &lt;code&gt;value19&lt;/code&gt; in nearly all your errors, I&amp;rsquo;d suggest making the following changes on neo.rb (starting on line 34):&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @javichitone - Improving a Gem</title><link>https://quarternotecoda.com/posts/2013-05-22-pairing-post-mortem-at-javichitone-improving-a-gem/</link><pubDate>Wed, 22 May 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-05-22-pairing-post-mortem-at-javichitone-improving-a-gem/</guid><description>&lt;p&gt;I had my first international pairing session with &lt;a href="http://twitter.com/javichitone"&gt;@javichitone&lt;/a&gt; tonight. He&amp;rsquo;s from Peru and will soon be graduating. He should have no trouble finding a job based on the code I got to read of his :)&lt;/p&gt;
&lt;p&gt;We talked for a bit and settled into looking at a gem he recently published. Since it was his gem, I elected to drive. I&amp;rsquo;m familiar enough with gems that I&amp;rsquo;m comfortable in &lt;em&gt;general&lt;/em&gt;, but he knew the &lt;em&gt;specifics&lt;/em&gt; of his gem, so to get the most out of it, he needed to be commenting on the specifics he knew and I needed to be diving into figuring out those specifics.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @jdar - Chrome Extensions</title><link>https://quarternotecoda.com/posts/2013-05-21-pairing-post-mortem-at-jdar-on-chrome-extensions/</link><pubDate>Tue, 21 May 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-05-21-pairing-post-mortem-at-jdar-on-chrome-extensions/</guid><description>&lt;p&gt;Another great pairing session tonight with &lt;a href="http://twitter.com/jdar"&gt;@jdar&lt;/a&gt;! I continue to be amazed at how pleasant and personable the developers I meet are. The internet is a wonderful place.&lt;/p&gt;
&lt;p&gt;First up, I&amp;rsquo;d never coded a Chrome Extension, so Darius took the reigns and started walking through what we were using. The biggest takeaway I got was to put your pride away when you&amp;rsquo;re pairing. Everyone&amp;rsquo;s exploring, we&amp;rsquo;re all trying to get to the next answer, so it doesn&amp;rsquo;t matter if we&amp;rsquo;re really well prepared or never coded before&amp;hellip; just take the next step.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @kmeister2000 - TDD and Domain Knowledge</title><link>https://quarternotecoda.com/posts/2013-05-16-pairing-post-mortem-at-kmeister2000/</link><pubDate>Thu, 16 May 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-05-16-pairing-post-mortem-at-kmeister2000/</guid><description>&lt;p&gt;Last night I did a &lt;a href="http://pairprogramwith.me"&gt;#pairwithme&lt;/a&gt; session with Karl Meisterheim. He&amp;rsquo;s an experienced developer who currently work part time and was looking to improve his skills. Besides having a good deal in common and really enjoying our conversation, I also learned a bit more about remote pairing and came away with a couple of observations.&lt;/p&gt;
&lt;p&gt;First off, we paired 2 nights in a row for about an hour each night. Both sessions we tried to solve the same problem: TicTacToe. We started off on the second night with the code from the first night, but quickly threw it away and decided to &amp;ldquo;start over&amp;rdquo; as an excercise. Doing this taught me the most significant lessons from our session.&lt;/p&gt;</description></item><item><title>Tricks and Tips I've Learned for Coordinating Pairing Sessions</title><link>https://quarternotecoda.com/posts/2013-05-16-tricks-and-tips-ive-learned-for-coordinating-pairing-sessions/</link><pubDate>Thu, 16 May 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-05-16-tricks-and-tips-ive-learned-for-coordinating-pairing-sessions/</guid><description>&lt;p&gt;When I heard about the &lt;a href="http://pairprogramwith.me"&gt;#pairwithme&lt;/a&gt; idea, I thought it was something I really wanted to do. I set aside 3 nights a week from 9-10pm and started pinging people on Twitter during that time, asking if they wanted to pair. I tried for no less than 3 weeks before actually getting a real pairing session going. I had several cancellations and a bunch of fits and starts trying to figure out how to really communicate with people. Here&amp;rsquo;s my takeaways from the experience of coordinating sessions remotely.&lt;/p&gt;</description></item><item><title>Pairing Post Mortem - @thecommongeek - Learning and Mentoring</title><link>https://quarternotecoda.com/posts/2013-05-13-pairing-as-mentoring-first-impressions/</link><pubDate>Mon, 13 May 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-05-13-pairing-as-mentoring-first-impressions/</guid><description>&lt;p&gt;I had a great pairing session with &lt;a href="http://twitter.com/thecommongeek"&gt;@thecommongeek&lt;/a&gt; tonight. It was my first live-remote pair programming and I wanted to to a little &amp;ldquo;post mortem&amp;rdquo; on it to record my thoughts.&lt;/p&gt;
&lt;p&gt;We spent some time on introductions and then jumped into a problem. Since my box was all set up, I typed. I&amp;rsquo;m more experienced than Dennis as a coder, so I viewed it as the potential to mentor him a bit. I also learned from him both in the &amp;ldquo;how to be a better mentor&amp;rdquo; department and the &amp;ldquo;how to pair better&amp;rdquo; department.&lt;/p&gt;</description></item><item><title>Ping Pong Pairing without Screen Sharing</title><link>https://quarternotecoda.com/posts/2013-05-09-ping-pong-pairing-without-screen-sharing/</link><pubDate>Thu, 09 May 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-05-09-ping-pong-pairing-without-screen-sharing/</guid><description>&lt;p&gt;I often have a bit of time that I could spend on other tasks, but couldn&amp;rsquo;t set up a true share-and-pair session due to logistics and communication issues. A friend of mine suggested that we &amp;ldquo;pair&amp;rdquo; over github. I took the idea to the next level by creating a true ping-pong pairing project where each commit is a ping or a pong.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the basic setup:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a README with the full description of the &amp;ldquo;task&amp;rdquo; at hand&lt;/li&gt;
&lt;li&gt;Create a github repo and &lt;a href="https://help.github.com/articles/how-do-i-add-a-collaborator"&gt;add your &amp;lsquo;pair&amp;rsquo; as a collaborator&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Write a failing spec&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git commit&lt;/code&gt; and &lt;code&gt;git push&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then, each individual takes turns doing the following:&lt;/p&gt;</description></item><item><title>Pairing as a Life Habit</title><link>https://quarternotecoda.com/posts/2013-04-24-creating-a-culture-of-pairing/</link><pubDate>Wed, 24 Apr 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-04-24-creating-a-culture-of-pairing/</guid><description>&lt;p&gt;I&amp;rsquo;m interested in creating a culture of pairing&amp;hellip; not just in my workplace, but in my life. I want to be able to pair with people in order to improve on the skills I alread have. This is seen clearly in the relatively new &lt;a href="http://www.pairprogramwith.me/"&gt;#pairwithme&lt;/a&gt; &amp;lsquo;micro-movement&amp;rsquo; that is happening on &lt;a href="https://twitter.com/search?q=%23pairwithme&amp;amp;src=typd"&gt;twitter&lt;/a&gt;. It shows that people want to learn from each other and improve their craft.&lt;/p&gt;
&lt;p&gt;But it doesn&amp;rsquo;t have to apply solely to programming. Last weekend I &amp;ldquo;paired&amp;rdquo; with a neighbor to fix my lawnmower. He is a bit more mechanically inclined than I was, but it took both of our efforts and problem solving to diagnose and fix the problem. All in all, a worthwhile time where I improved both my relationship with Ben and my ability to cut my grass. He got something out of it too, he felt great and is excited to tackle more mechanical projects. This is exactly the same reasons we talk about the benefits pairing in the first place.&lt;/p&gt;</description></item><item><title>TDD and Pairing Ideas</title><link>https://quarternotecoda.com/posts/2013-04-24-tdd-and-pairing-ideas/</link><pubDate>Wed, 24 Apr 2013 00:00:00 +0000</pubDate><guid>https://quarternotecoda.com/posts/2013-04-24-tdd-and-pairing-ideas/</guid><description>&lt;p&gt;When pairing, especially remotely with someone you don&amp;rsquo;t work professionally with, it is sometimes helpful to have some ideas about how to go about getting the session going or what to do. This is just a set of ideas that might get the ball rolling.&lt;/p&gt;
&lt;h1 id="problems-to-work-on"&gt;Problems to work on&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://puzzlenode.com"&gt;PuzzleNode&lt;/a&gt; - 15 shortish (30 minutes to 4 hour) problems. Great for pairing.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coderetreat.org/gol"&gt;Conway&amp;rsquo;s Game of Life&lt;/a&gt; - Can implement a basic version quickly. Lots of ideas for restrictions on this site.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://osherove.com/tdd-kata-1/"&gt;TDD Katas&lt;/a&gt; - Can be done in 30 minutes alone.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://riograndegames.com/uploads/Game/Game_278_gameRules.pdf"&gt;Dominion&lt;/a&gt; - A larger problem, but it will tease out larger design issues that you don&amp;rsquo;t get with smaller systems.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twitter.com"&gt;Build a Twitter&lt;/a&gt; - Simple system that can be extended. Adding a UI and continuing strict TDD is very interesting since you might be able to TDD the core system, but have more difficulty with the surrounding. Are there ways to mitigate the risks of using a framework as a shell? Are there ways to make the shell &amp;ldquo;swappable&amp;rdquo; &amp;ndash; not so you&amp;rsquo;d actually swap, but so you have loose coupling?&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="ideas-to-practice"&gt;Ideas to practice&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://coderetreat.org/facilitating/activities/ping-pong"&gt;Ping Pong&lt;/a&gt; - Pair back and forth, one writes a failing test, one makes it pass, then writes the next failing test, and so on.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://coderetreat.org/facilitating/activity-catalog"&gt;Various Limitations&lt;/a&gt; - No loops, no conditionals, limit lines per method, no voice communication (or typing out in chat&amp;hellip; only communication is through code)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://cumulative-hypotheses.org/2011/08/30/tdd-as-if-you-meant-it/"&gt;TDD As If You Mean It&lt;/a&gt; - Strict TDD that involves real tests before code and strict refactoring rules. This can be combined with any other limitation or idea, but it&amp;rsquo;s so difficult (And rewarding) that it&amp;rsquo;s okay to Just Do This.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="tools"&gt;Tools&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Vim + tmux - &lt;a href="http://pivotallabs.com/how-we-use-tmux-for-remote-pair-programming/"&gt;how to tmux&lt;/a&gt; · &lt;a href="http://www.youtube.com/watch?v=wKEGA8oEWXw"&gt;tmux basics screencast&lt;/a&gt; · &lt;a href="https://syme.herokuapp.com/"&gt;Syme&lt;/a&gt; · &lt;a href="https://github.com/chrishunt/github-auth"&gt;easy ssh/public key auth&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Screen Sharing - &lt;a href="http://screenhero.com"&gt;ScreenHero&lt;/a&gt; · &lt;a href="http://plus.google.com"&gt;Google+&lt;/a&gt; (read only)&lt;/li&gt;
&lt;li&gt;Audio - &lt;a href="http://skype.com"&gt;Skype&lt;/a&gt; · &lt;a href="http://plus.google.com"&gt;Google+&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Find Pairs - &lt;a href="http://rubypair.com/"&gt;RubyPairs&lt;/a&gt; · &lt;a href="https://kiwiirc.com/client/irc.freenode.net/pairwithme"&gt;IRC #pairwithme&lt;/a&gt; · &lt;a href="http://pair-with-me.herokuapp.com/"&gt;Twitter #pairwithme&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>