Mob Programming

As an XP guy, I’m a big fan of pair programming.

(Somewhere I have slides of coworkers pairing: I should find them and post them.)

I’ve also had great success with coding dojos that focus on pairing.

(Interesting: locally there are dojos for kids that need mentors. I might apply…)

However, I’ve never really had more than two people coding on the same screen.

Apparently mob programming is now a thing.

Here is a book, and here are some slides from Rachel Davies.

I can’t wait to try this, and to see if I can coach others to try this technique.

Exploring the Internet of Things

I’ve been intrigued by IoT, jealous of friends’ experiences, but personally haven’t yet taken the plunge.

Maybe I was worried I would get too frustrated, or perhaps I lacked the focus, and would you believe that I just can’t stand the sight of my own hackish soldering?

However, I fondly remember a science fair project with my father: we made a device that detected the number of people walking through a doorway, breaking a light beam, with an optical sensor that incremented a two-digit LED display counter. That was cool.

So when Arah mentioned that our friend Al was having some issue getting the temperature sensor on his Grove system to communicate with Amazon’s IoT cloud service, I was nervous, but offered to help, if only to be another pair of (inexperienced) eyes.

Al’s vision is to create a semi-autonomous garden: one that detects its own temperature, humidity, and eventually waters itself. As I entered his back yard, at least four rabbits scattered away. I wondered if he would automate anti-rabbit defenses as well? This is the sort of thinking that eventually leads to Skynet.

Initially everything looked reasonable, if a bit crude, messy and bewildering: the configuration in Amazon’s cloud, the software assembly tools and configuration on the laptop, the source files and libraries downloaded, and the files deployed to the device. But still the temperature data was not flowing through the Internet from the little device in Saint Paul, Minnesota to the massive data center in Bend, Oregon. This was the Internet of Difficult Things (IoDT).

My first mistake was assuming that we were trying to pipe the temperature sensor data through Al’s laptop. No, the laptop was there to build and deploy the software, but this is Arduino we’re talking about: it may be tiny, but it is the server itself, with its own operating system and wireless connection, and not some peripheral of the laptop!

I stopped being concerned about the state of the folders and files on Al’s laptop, and spent more time inspecting the device itself via secure shell. It became clear that the files on the device had not updated in several days, despite our attempts to build and deploy. WTF?

Increasing the debug settings, we discovered that the COM port was unavailable because of interference from the very same secure shell we were using to debug. Al suggested we drop our SSH session to the device and voilà: suddenly temperatures were updating every second.

When I grabbed the thermistor on Al’s kitchen table and watched the heat of my hand immediately update the cloud, I was elated. I think I might have to get my own IoT kit soon and start sharing notes with the rest of y’all.



Changing Gears

Yesterday and today I did something that I’ve not done for years: yoga, specifically Vinyasa style.

It’s ironic: my awesome partner in crime is a yoga instructor. But me, a yoga practitioner? Not so much.

I selected a DVD from near the turn of the century and tried to remember how to relax. Short story: I tried too hard on Day One. I received some helpful pointers from my better half, and today’s Day Two practice was more about relaxation and less about strained achievement.

Additionally, in the realm of “when was the last time you did that,” today I made bread.

My sister’s gluten-free cookbook and bread machine led me toward a loaf of rice flour, garbanzo flour, and unusual ingredients like xanthan gum. It wasn’t great, but it was bread after all. Yum.