You know, for dorks.

Swimming with whale sharks

"Follow the Omar," says Umberto, one of our guides.

We have been waiting patiently on the back of the boat for several minutes and now there’s a brief flurry as things spin into motion. Omar, in his tan swim trunks, with tribal tattoos on his upper arms and a stylized fish between his shoulder blades, secures his snorkel and jumps in the water. I follow suit along with three others from our boat, a family in wet suits and comically long flippers that they brought all the way from Denver.

I am closest to the whale shark, which we have sought for hours and is now swimming toward us. After splashing into the water, I put my face in and look around the dark gray-green water through my snorkel mask. As the bubbles clear, my inner monologue goes something like, "Where’s the Omar? Where’s the shark?"

"Oh! There it is!"

I am face to face with a whale shark. It’s swimming right at me, calmly, its graceful body swaying back and forth, propelled by it’s large tail fin. Time pauses for a moment while I watch, the breath through my snorkel the only sound. Then I figure I should get out of the way.

Before jumping in, we were given two rules by our guides. 1) Don’t touch the whale sharks. 2) Follow the Omar. If I don’t move, and fast, the fish and I will collide. (In retrospect, the whale shark is a much better swimmer than me and probably would have made an evasive maneuver. But I just don’t think that quickly.) I paddle my way to the left and watch it glide by, a remora fish hanging out beneath its belly. A woman in our boat (part of the big-flippered family) told me that nearly all whale sharks have remora fish, little familiars that swim along and keep them company in the big wide open sea. Or maybe she said that remora fish like the protection, the free ride, and the leftovers? Something like that.

After only three minutes in the water, I am left with a memory of an intensely beautiful moment: the unexpected darkness of the water, the sunlight filtering through and lighting up suspended pieces of sea weed, dappling the spotted back of the whale shark, the grace with which such a giant fish can move. On the way back to Isla Mujeres, my eyes scan the water for dark shapes, with a newly enhanced sense of wonder at just how amazing those shapes can turn out to be.

Whale shark (Rhincodon typus)
Whale shark (Rhincodon typus) photo by Sylke Rohrlach, CC by-sa 2.0 license

My cough is gone and I'm not sad after all

This is a follow up to a previous post.

While I'm very glad to have experimented with an Android app to track my cough, I don't think it's the right answer after all. Not because it didn't work, but because it became socially awkward. At the peak, I was logging somewhere on the order of 40-50 coughs per day. Because I am a manager, I spend a lot of time in meetings. So what that means is that if I were to fully utilize the app I built, I would interrupt all of those meetings first by coughing and then by playing with my mobile phone. Turns out, that's not very professional.

So I'm back to the drawing board. I've had some ideas for alternatives.

  • I could just update once every hour with an estimated severity for the last hour. But of course, I wouldn't estimate while I was sleeping, but I could have the app wake up and just send a severity of zero because I don't cough at night. In fact, I think I want the app to wake up and record weather and air quality data anyhow so that the graphs make more sense and I'm still collecting data even when I'm not coughing.
  • I could just update once a day right before bed with an estimate for the full day, but then I won't get info about things like my morning commute or differences in coughing around mealtimes.
  • I could write every cough in a notebook and do data entry at the end of the day, but who wants to do that?
  • My favorite idea is to do essentially what I've been doing, but with a totally different user interface. Instead of tapping on my phone, I could build a ring or a bracelet (depending on how small I can make the hardware) that just has a button on it. Then I could tap the button 1-4 times for the severity of a cough, which I could do without attracting attention, and I wouldn't have to focus on my phone and miss out on what other people are saying. Because what's the point of a meeting if I'm not even going to pay attention?

So it's back to the drawing board on this one. I'm hoping to do a little Arduino project to test out a one-button solution, which means I have a lot of learning to do. If I go for it, I'll let you know what happens.

I might actually be sad if my cough goes away

Anybody who has been near me in the fall or winter for the past 8 or so years has probably noticed that I cough. A lot. I often feel like I should have a t-shirt that says, "It's not contagious, I promise!" The short story is that it's most likely allergies and I'm working on it. I found an excellent specialist last year who does neat things like apply science to the problem, rather than just telling me I have asthma. (I do not have asthma.) For the first time in many years, I might be close to a cure for this stupid cough—or at least suppression of symptoms through the magic of corticosteriods. It's already January and my ribs don't hurt from coughing. I can't express how amazing that is. Yay!

Anyhow, that's just the background information. The ridiculous impulse I'm having right now is that I actually want to cough for just a little while longer because I just wrote an Android app to track it. Why didn't I think of this before? It's a very simple app that just asks for a severity level: 1, 2, 3, or 4. When I cough, I pick a severity and click a button. Easy as pie.

After a button is clicked, the app goes out and gets weather from OpenWeatherMap, air quality from AirNow, and then logs everything to New Relic Insights, which is a data analytics platform (disclaimer: I work for New Relic). It has been a lot of fun to build, and I signed up for an Android course through Coursera so I can learn about the things I inevitably did wrong as I slapped it together.

My plan going forward is to clean it up and put it out on Github so other people can fork/contribute/laugh at my source code. I hope it will be useful for others who want to track similar symptoms that have them seeking specialists. In light of that, my next step is probably to find a better way to store the data. Insights was an easy way to get started, but I have a limited retention policy and it's not good for sharing the app with others, should anybody else want to use it. I also want to play around with D3.js to see if I can come up with a good way to visualize the relationships between, say, humidity, temperature, and the severity of my cough. Of course, there are a lot more things I can do with it. For instance, it would probably be good to know when I start or stop medications, start and stop exercising, etc., so I could add some sort of event logging. Jesse also had the idea of doing a little Arduino project that will let me get temperature and humidity data for the room I'm in rather than the current weather in whatever city I'm in.

Here's a look a the super minimal user interface. This could definitely look better, but I was eager to start collecting data before I start mucking around with pretty buttons.

And here's some sample weather data in Insights (air quality didn't fit in a screenshot). I don't have enough data yet to show some good graphs, but this gives you the general idea.

To sum up, this has been good fun, and I'm excited to be writing some code. I'll be even more excited if it helps me gain insight into this cough of mine. I think it will. I mean, even if the steroids stop the cough, cold air will still be a trigger, so maybe I can use it to figure out the minimum conditions needed before I can ride my bike to work again. That would be pretty sweet!

I got a new job

In October of 2002, nearly 12 years ago, I applied for a job with a software company operating out of a dingy office in the Barbazon building over in the Hollywood District. (Incidentally, it was that Barbazon, the modeling school, so there were afternoons when heavily made-up young girls would line the hallways and cry in the bathroom.) I planned to stay for maybe two years, get some development experience, and move on.

Until recently, that was the last time I applied for a job. I never intended to stay for that long, but the people were great, I was always learning new things, and the vacation was excellent. We ate lunch at Sam's Pool Hall and then the food carts after we moved downtown. We spun off from our parent company, bought another company, and were eventually bought by our Swedish competitors. I began as a relatively junior engineer and wound up managing the Portland development team. It was a long ride for many reasons, but I only really needed one: it was the best job I've ever had.

Tomorrow, I start a new job, a new adventure. Most importantly an unknown adventure. It feels a little insane (it is). I keep wondering if I've really thought this through (I have). I worry that it's a big mistake (probably not). That I don't know enough (but I like learning). That I'm not up for this big of a challenge (I am).

So with a deep breath and not a little excitement, but admittedly a bit of trepidation, I will change my morning commute ever-so-slightly and go meet my new co-workers. Onward and (I hope) upward!