From the Canyon Edge -- :-Dustin

Thursday, January 26, 2012

UDW: Pair Programming and Code Reviews in the Cloud

Next week is yet another installment of the Ubuntu Developer Week education series.  If you been wanting to get involved in Ubuntu or Free Software development, or perhaps just hone your existing skill set, please join us in #ubuntu-classroom on Tuesday/Wednesday/Thursday next week.  Check the schedule, and hopefully you'll find something that piques your interest.

I'm pleased to note that each member of Gazzang's engineering team will be attending at least two sessions per day!  With today's shrinking education budgets, perhaps you can convince your employer to let you attend some excellent, continuing technical education at no additional expense to them.  Should be an easy sell ;-)

I will be leading an hour long session on Thursday, February 2nd from 18:30-19:30 UTC -- that's 12:30pm-1:30pm in my local Central Standard Time.  My session is on Pair Programming and Code Review in the Cloud.

I've used Pair Programming for years -- ever since I was introduced to the Extreme Programming methodologies in the Tivoli Bootcamp as an intern in 2000.  Pair Programming is a relatively simple concept -- two people, one keyboard and screen.  It's a great way to teach, learn, and review code.  Back then, we were a couple of developers, sitting side by side in the Arboretum in Austin, Texas.

But times have changed!  It's highly unlikely that I'm sitting next to the person I need to pair program with.  Rather, they're sitting somewhere far across the world.

Welcome to 2012!  I'll spend an hour, sharing a screen with a few dozen of you, showing you how some Ubuntu developers work with colleagues across the world, through the Cloud!

I'm going to fire up Amazon's largest instance splurging $2.10 an hour for 60GB of RAM and 16 CPUs.  You hardly need this, but I thought it would be fun.  If nothing else, drop in and have a look at what this kind of hardware looks like :-)  We'll import SSH public keys and users will SSH into a shared Byobu/Tmux session, where I'll demonstrate how to make the most use of our screen resources.  We'll split the window horizontally and vertically, look at code side by side, while still tailing log files and conducting builds.


  • A terminal and an SSH client with Internet access
And to maximize your experience:

As a teaser, here's what my terminal currently looks like, and a taste of where we'll get to, in this session.    This session can be detached and reattached later, or even by multiple users at the same time.

I have 8 panes open in a single Byobu session.  The first two windows have some eCryptfs source code (mount.ecryptfs_private.c and pam_ecryptfs.c).  Next, I have a little test window where I'm checking my changes, with a foobar@x220 user logged in, and it's just above a small window where I'm reading some manpage documentation.  To the far right, I'm re-compiling the new ecryptfs sources.  Across the bottom, I'm tailing 4 log files (kern.log, dmesg, auth.log, syslog).  Note that I'm using tail -f and ccze for colorized log files -- which really helps separate warnings and errors (in warm reds and yellows) from the rest (in cool blues and greens).

Hope to Pair Program with you on Thursday!