Crazy Skype dubstep loop
Skype does this about once per month. Restarting Skype on both the caller and receiver machines does not fix the crazy audio. Rebooting both machines seems to fix it.
Skype does this about once per month. Restarting Skype on both the caller and receiver machines does not fix the crazy audio. Rebooting both machines seems to fix it.
pair.io gives you a one-button, collaboration-friendly dev environment for your GitHub repo.
I'm submitting my Remote Pair Programming talk to Agile2012. While collecting all of the links and references for this talk I decided to check the SurveyMonkey survey I use to collect feedback. I'm happily surprise to find people are still filling out the survey as recently as five days ago, most likely because it's referenced in my Pivotal Labs Tech Talk video.
I think it's safe to say the results are in: the presentation doesn't suck! Of the 31 responses I've received only one has given it the lowest grade -- 1 out of 4, and only two have given it a 2 of 4.
What's not listed here is the free-text feedback question that's a part of this survey (because I won't pay SurveyMonkey $200/year to download the results.) Without a doubt the talk has been getting more valuable and polished over the last 6 months thanks to that feedback.
How valuable is this feedback? For me, extremely valuable in ways I didn't imagine. Check out this gem:
Hmm, blog about remote pair programming? What a great idea! I have this bit of feedback to thank for pushing me to start this blog.
Do yourself a favor if you are giving presentations: sign up for a super simple, anonymous survey service. Use bit.ly to create a customized and easy-to-remember URL; mine is http://svy.mk/pairprogram. Put a link to the survey at the beginning and end of your slide deck, tweet a link to it before and after your presentation, and email a link to the survey to the group to which you are presenting -- I often present at Meetups and other user groups that have a mailing list. With luck you will receive feedback. Remember that both positive and negative feedback are extremely valuable, as is neutral feedback -- nobody wants to give a "meh" presentation.
[Just for fun, here's a PDF of the SurveyMonkey results.]
I've touted Mac's Screen Sharing.app and tmux as my preferred screen sharing technologies, but twice now iChat has saved our bacon while remote pair programming. The first time I was prevented from accessing a client's network without a VPN and the second time a client's internal firewall prevented most screen sharing technologies from connecting out of their network. iChat was our solution in both instances because, for whatever reason, iChat's screen sharing technology stealthily slices through many firewalls and network filtering software.
@dhh wrote a blog post titled Stop whining and start hiring remote workers. He states:
Every day I read a new article about some company whining about how hard it is to hire technical staff. Invariably it turns out that they’re only looking for people within a commuters distance of their office. I refuse to feel sorry for such companies.
and
There’s so much untapped tech talent that does not live near your office, but would work for you if you allowed them to.
I agree that companies should not pass up talented employees simply because they cannot commute to the office, but not addressed in DHH's post are qualities that make up a great developer beyond technical skill. Developers are not code factories, they are people who need to fit with the team regardless of whether they are 5 feet or 5000 miles away.
DHH doesn't say otherwise, but it's important that remote developers undergo a rigorous team and cultural fit screening as if they were going to be local. Don't fall into the trap of saying "we can let negative aspect X pass because John will be remote." Bad traits are bad traits. If your goal is to make your team so efficient that the physical distance between members virtually disappears then your remote developers need to be people that you would want to sit next to all day, every day.
Building a great remote team isn't a challenge solved with Skype and Basecamp. You can't fix a team with tools if you've hired tools.
Skype sucks, okay? Especially version 5 for Mac. But, it's free and everyone uses it.
Something that Skype can do well is automatically switch between audio inputs and outputs as they are plugged in and unplugged, but it takes a bit of training.
Let's take the following common scenario:
This is exactly how my A/V setup works at home now and it's perfect. But, it took some time to set up another laptop to work in exactly this way, so I have documented the routine. The trick is to tell your Mac what to do in certain situations, and Skype will follow along.
Here's a video, but feel free to follow the instructions at the bottom of this post.
1. Launch and in log in to Skype, then open Preferences => Audio/Video.
2. Open the Mac's System Preferences => Sound => Input
3. Plug in your external Mic -- mine is a Blue SnowBall. Likely either (or both) the Mac or Skype did now switch to the SnowBall.
4. Switch both your Mac and Skype microphone inputs to the external mic.
5. With your external mic still plugged in an selected, plug in your USB headset.
6. Switch both your Mac and Skype microphone inputs to the USB headset.
Skype should now be trained! No more futzing around with Skype's annoyingly bugging prefference window (did you open the A/V prefs? Say goodbye to your call's video preview...) Now, unplug the USB headset. With luck, Skype should switch back to the external mic as the mic input. Plug in the USB headset again. Your Mac and Skype inputs should once again automatically select the headset, as desired.
Follow the same routine for the audio output if needed.
I'm doing a bit of research about Anybot QB, advertised as "your personal avatar." The Anybot QB is a somewhat (too?) anthropomorphic remote presence robot that can be yours for the low low price of $15,000.
Based on the following videos the overall experience is this: it's a neat idea and is a pretty effective remote presense device when it works. Unfortunately it's reliance on a solid, fast WiFi means it's crippled when it loses the signal, the tiny video screen rarely works, and it's $15K.
Once in a blue moon Twitter employee @rael tweets on behalf of his Anybot via @raelbot.
Real World Report: PCWorld
Real World Report: IIIE Spectrum
Anybot's Own Promo Video
Awesome remote presence setup! I need one of these.
Blog: VM Farms BlogCheck out the video!
I’ve talked quite a bit about my home remote pairing setup (here and here), but not much about my remote presence in our office — my audio and video setup the team uses to communicate with me. I have several goals when it comes to having as seamless and “high fidelity” presence in our team, most of whom work in our large, open, and active (read: loud) NYC office.

First and foremost my in-office pair needs to have as high quality but simple setup as possible; we switch pairs almost every day and we can’t spend 30 minutes setting up audio and video. Second, the rest of the team needs to be able to easily have conversations with me, and me with them. Finally, I need to serve myself: I need to be able to clearly see and hear my pair in a lively, crowded office.
Here’s what we’ve come up with so far.

This is a no-brainer. Yes, they are expensive, but it has a built in camera and recognizes just about every mic and headset made — they usually Just Work. A baseline MacBook Air will work, or simply repurpose an older MacBook.
I’ve sung their praises before: Snowball microphones from Blue Microphones are wonderful. They work instantly with MacBooks without any software downloads or configuration, and are pretty affordable, especially if you hunt around on Amazon. A word of warning, though: we tried a Blue Snowflake mic, which was promising, but picked up too much background sound for it to work for me in our noisy office.

By the way: Set the switch to 1 (directional) when pairing, and 3 for groups (omnidirectional). “1 is good for one, 3 is good for three.”
This is the key: analog speakers (i.e.: with a normal speaker cable connector) with a front-facing headphone jack. We use a set of Logitech Z130 speakers. There are two reasons why using analog speakers with a front-facing headphone jack is the the awesome.

First, with these speakers the in-office pairs can use their personal music headphones instead of a USB microphone headset. There is nothing wrong with USB headsets — in fact, they are awesome — but USB headsets are one-more-thing: one more thing to find, one more thing to lose, one more thing to figure out, one more thing to break, one more thing to share with everyone else. But in our young, hip office everyone has music headphones at work (update: except for the Australians. Seriously, Australians, what do you do in the subway?). Be they iPod earbuds, or Beats, or whatever, our team has headphones and they know how they work: you plug them in to a headphone jack. That’s it. And guess what? There’s a headphone jack right there in the speakers. Done and done.

Second, having my office pair use their personal music headphones is great for me, too! This enables me to speak to groups of people through the speakers much more easily. How? All my pair has to do is unplug their headphones from that front-facing jack and the speakers are live. Adjust the volume with that big ol' analog volume knob. When the group conversation is over just pop the headphones in and we’re pairing again. Importantly my pair, the computer, and Skype don’t have do perform any speaker-output detection and switching. This means fewer Skype crashes and restarts, and no software preferences to learn and continually tweak.
Everyone knows how to use Skype, everyone has a Skype account, and thus we use Skype. That said, I wanted to avoid the additional overhead of having the 26+ members of our team all add me me as a Skype contact, and me them. Inevitably time would be spent every day exchanging contact information, missing connections, etc.

For this reason I created a dedicated Skype account for my remote presence laptop in the office. It’s called “remote-joe”, the password is our project’s default password. Please don’t add this account as a Skype contact because it has one and only one contact: me. Launching Skype on the in-office laptop automatically logs in as remote-joe, and I’ve configured it to automatically accepts all calls and turn on the video camera when called. That’s no big deal since I’m the only one calling.
Now there’s no fussing with accounts and contacts. remote-joe calls me, and I call remote-joe. Yet fewer things to worry about.
I’m conflicted about this one, but I feel that it makes sense in practice: once we have arranged the remote presence setup described here around a development workstation we usually don’t move it. There are cables everywhere. Luckily all of our development workstations are clones of each other, and people switch stations every day, so this is no big deal. It also means that people know where to find me. I wish we had a more portable and less cable-ridden configuration, but that’s not the case right now.
We handle meeting differently because we have a large team with multiple distributed team members. For this we don’t use the remote presence setup described here. Instead the in-office team calls the remote team members from a “Skype-enabled” meeting room — basically a mac-mini and camera hooked up to a large flat-screen TV. I once had visions of team members carrying our remote presence laptops around to meetings but just calling us from meeting rooms works better in practice.
Just for fun I’ll describe the ideal remote presence setup, one that does not exist as far as I know. The device would be small and portable, but with a large screen. The device would be wireless in all ways possible. It would have high quality cameras (front and back).
So far I’m describing an iPad 2, but here’s where I’m not: the device would need to have a mic that worked both as a directional, sound-isolating mic for pairing and an omnidirectional mic for groups, and have clear, loud speakers for groups. The mic is and speakers are where the iPad falls frustratingly short, as I’ve describe in “iPad 2 As A Remote Presence Device?” In a nutshell, the iPad 2 + FaceTime has great promise as a remote presence device, but the mic is a bust. It’s too sensitive to background noise and always thinks the in-office person is talking, and thus mutes the remote person (me); FaceTime also refuses to detect external USB mics when using the iPad Camera Connection Kit. The speakers are not loud enough for people to hear me and FaceTime and Skype refuse to route sound through a speaker-dock, such as the iHome iD9. For that matter, if you have a big mic and external speakers connected you basically have a laptop anyway. So close, but so far away.
I know our remote presence setup can be improved. What do you use? What are your suggestions? I’m always trying new things. Let’s all share our suggestions and make our remote presence better and better!
