Story Time, or how I almost died a few months ago, but am probably better now!

I haven’t really spoken about this publicly yet, but I figure few enough people will read this post that I can test the waters a little bit…

For the past few years I’ve been making small changes to improve my life. Eat better, walk around more, things like that. Last march, I decided it was time to add a regular exercise program, so I started Couch-to-5k. C25k is a program where over the course of 8 weeks or so, you work up to running for 30 minutes constantly without a break. The first day felt really good to me, and I was excited. But the good start did not last. I kept pushing hard, but a few weeks into the program, it was clear that I was not getting better. In fact, I was getting worse. I felt like I was hitting a wall where if I put more effort in, the worse I got. The data supported this – I was covering less distance even though I was running for the same amount of time. I decided it was time to see the doctor.

The doctor listened to me and started running tests. Blood workup was first, and the doctor told me to continue exercising, which I did. The lab here in WA is very fast, and I had the results the next day. Everything we normal, except for elevated White Blood cell count. An infection could explain my symptoms, so the next round of tests was ordered. We ran more blood workup looking for proteins related to muscle degeneration, and there was a chest xray and sleep lab appointment scheduled. I was nervous about the xray, because I knew the differentials with a positive result on that test were not pretty at all. The results were negative.

This all took a couple of weeks, and over that time, my symptoms were getting worse. I started getting these episodes where my heart would feel like it was racing. I would just be sitting at my desk, or on the couch, and my heart would feel like it was trying to burst out of my chest. I would feel like I *should* be out of breath, but I wasn’t. It got weirder when I tried to measure my pulse. It would look perfectly normal – 70-80 bpm. A few times, it was even very slow – in the 40-50bpm range. I didn’t know what to make of this, but the feeling would pass after a few minutes.

At my next doctors appointment, the nurse had trouble for a moment taking my pulse. She asked me if I was “afib.” I didn’t know what that meant, but it’s a type of irregular heart beat. I said no, but combined with my new symptoms, focus turned to my heart. An EKG at the doctors office showed normal, but a stress test was scheduled a month out – the earliest available appointment. The doc told me to keep exercising, so I did.

My symptoms continue to get worse. The racing heart episodes started happening every other day, and then every day, and then multiple times in a day. When I was jogging, it felt like I was working against an inverted gear. The harder I pushed, something pushed back even harder. It felt wrong, but in a way that is very hard to explain. It felt like impending doom, as though something very bad was just about to happen, but hadn’t happened yet. I started experiencing sudden fatigue while biking, where I wouldn’t be able to lift my leg to peddle. These things really scared me.

I was getting frustrated with the lack of information about what was happening to me. I started looking at EKG’s online to buy, so that I could get readings at home, when I was actually experiencing an episode. It turns out, they are not complicated devices, so I was able to build a three electrode EKG out of an arduino. After some tuning, I was able to get a good reading at home, and my hear looked normal. I waited for another episode to happen so I could catch my heart in the act.

This turned out to be more difficult than I thought. This was because the episodes only last a few minutes, and it takes that long to get the device all connected up and a good read. Plus, I had to put the electrodes on and calibrate it each time, all while feeling like I had just ran a marathon and was about to die. The first time I got what I felt like was a good reading, I was very puzzled. Heart rhythm looked completely normal. Heart rate was fine, too. I wondered if I was experiencing panic attacks. I started thinking that perhaps my symptoms were just psychosomatic, so that made me feel better.

The last day I exercised was a few weeks before my stress test. I was sure that the problems were all just in my head, so if I just push hard, my body would just fall in line. So I pushed hard, and then I couldn’t push at all. I couldn’t lift my legs, and in fact I couldn’t support my body. I was laying on the ground feeling like my heart was about to explode and completely sure that I was about to die.

But I didn’t. About five minutes later, I had recovered. I was able to stand up, and then I started the long and very slow walk back to my apartment. I had no idea what to do next.

My symptoms progressed rapidly. The episodes occurred more frequently, but I felt like all I could do was wait for the next test to happen.

I was super excited for the stress test. I was finally going to get some more information, and I could push myself in a controlled environment, which helped to counteract my fears of suddenly falling over dead. If you don’t know what a stress test is, they hook you up to an EKG and then stress your heart. This is usually done by running on a treadmill, though can also be done chemically. I was going to go for the treadmill. They record your EKG throughout the test, take blood pressure measurements every minute, and there are pauses where they take a sonogram of your heart. All that data is then sent to the cardiologist for analysis.

They hooked me up to a twelve electrode EKG and get some base readings. I watched my heart pattern very carefully, and I started to notice that there was a blip every once in a while. A heart beat that didn’t quite work right. I tried to correlate it to something I was feeling, but it was difficult, and I couldn’t be sure that what I was feeling was actually due to the blip or to my observation of the blip.

When I got on the treadmill, they told me my goal was to reach 160bpm on the heart. I knew from previous exercises that my symptoms could be triggered by getting my heart rate to 120-130, so this was great. The treadmill started, and things seemed just fine to start. But pretty quickly, the EKG started showing an erratic heart beat. At first, it was just one or two, but that grew and then it was 10 or 12 or more in a row, and the feeling of impending doom returned. But I kept pushing, because I wanted to get the most data possible. But they stopped the test before my heart rate even hit 130.

Regular Hearth Rhythm

Regular Hearth Rhythm

Irregular Heart Rhythm

Irregular Heart Rhythm

I didn’t know what that meant. I was sitting there and very confused. I felt like we hadn’t got the data we needed. One of the nurses asked one of the others if we had reached 160, and was answered with a very quiet shake of the head. I was feeling as though something had gone very wrong. Then they asked me if I had a scheduled appointment with the cardiologist to go over my results, and I said no. The test had been ordered by my GP, and I assumed I would follow up with him at some point yet to be scheduled. They told me to go wait in the lobby.

About ten minutes later, they told me that I had an appointment with the cardiologist later that day. Clearly something was wrong. I let work know that I wouldn’t be back until much later after all, and found a coffee shop to kill a few hours in.

The cardiologist showed me some of the results of the stress test and told me that something was definitely wrong with my heart. He didn’t know what, but we would start with some more tests. Given the tests that had been done, he felt pretty sure that it wasn’t Coronary Artery Disease. My lab results were all green, and I was so young. But Due Diligence says we need to take a look, and if that didn’t work out, we’d take a look at electrical issues. We scheduled a cardiac catheter procedure. Because of scheduling, it was a month away.

My symptoms began having a big impact on my life. Any movement for more than a minute or so would trigger it. I began to walking very slowly. I dreaded moments at work where I need to walk with other people, because I wasn’t able to keep up at all. Something would trigger it even while I was sitting still reading. I visited the Jet Propulsion Lab during this time, and while I was able to see the highlights, I wasn’t able to see everything and had to leave early.

I was really looking forward to going through the procedure at the hospital. I was going to get more information about what was wrong with me, and I figured it would be a nice little adventure. I was feeling pretty depressed and it gave me hope to think that some progress would be made. I arrived and got prepared. The cardiologist stopped by to take a look at my right arm artery where they would be inserting the catheter. Everything looked great and he gave me some encouragement. He told me that he thought it unlikely that we would find anything specific, but it would be a good test and was the next logical test. I was very impressed by the cath lab when I first entered.

It seemed that time stopped while I was in the lab. I don’t know how long I was in there. There was a lot of preparation, and they gave me some pills that would help me relax but not fall asleep. I was aware, but things didn’t really register. Things happened. I could feel the catheter snaking up my arm, but was surprised to find that it didn’t bother me. My mind wandered until I felt a tugging on my arm from the cardiologist. He said that they had found something and that they would try to fix it so that I wouldn’t need open heart surgery. I thought that was a great idea. I heard them doing some planning, but not understanding the details. Then they were done. All in all it took a few hours.

They explained that they found my left anterior descending artery was occluded almost completely. They called it 99% blocked. They placed three stents and opened it back up. Everything looked good again, and I was a 34-year old with a diagnosis of coronary artery disease. I didn’t understand what they were saying exactly. I accepted the facts, but didn’t understand the why. And I was cold – the coldest I think I’ve ever been. I think it was a bit of shock. My teeth were chattering so hard I couldn’t think, but they wrapped me in these amazing warm blankets and it got better. They kept me at the hospital over night, and I decided it was indeed an adventure, and one I never want to experience again.

Heart stents are magic. I was immediately seeing results. Once I got through the 48 hours after the procedure, I was feeling fantastic. The best I’ve felt in years. I could walk without trouble I spent that weekend just walking around. They told me not to do anything but walk, and I followed directions. It would be a few months before I could jog. I entered a cardiac rehab program.

Cardiac rehab is great. It’s data driven exercise. They hook you up to an EKG while you work so they can see if something is wrong. They take you blood pressure at certain points to make sure it’s looking good. They adjust your program as things get easier to make sure you keep pushing yourself. It last 12 weeks. I finished the program during the first week of September.

Yesterday afternoon, I ran for 2 miles straight in 33 minutes.  I am full of gratitude for the people that have helped me out along the way: the doctors and nurses at Virginia Mason here in Seattle. They saved my life and have set me up to have a long life ahead of me.  I look forward to what that future might hold.

I <3 Playbooks

In my previous post, I discussed learning linux.  Now I want to talk about one of the cool things I’ve done with it. One thing that sucks about getting a new computer is going through all the program installations and configuration you need to do to really make it yours.  Things like: installing your favorite browser, setting up your password manager, choosing a desktop background, etc.  This is especially true for developers, who have to manage multiple tool chains of applications in order to do their work.  Not to mention, we tend to be very picky about our text editors and IDEs.  I’ve also been in the abnormal situation over the last year where I have setup my ubuntu desktop environment on five different computers.  That’s a lot of setup.

And when I’m setting up my computer, there is almost always something I forget until I actually need it, and then I have to both set it up and use it.

There is a better way: automation.  I can write scripts that will do that for me, so when I get a new computer I need to setup, I can login, type a few commands, and then be good to go.   This is difficult to do in the Windows world, though project like boxstarter are making it better.  On UNIX’s like Linux, though, this type of thing is richly supported.  So last spring, I started working on automating my desktop setup using a technology called Ansible.  All the code is available on github.

Ansible is a pretty cool technology. It is a way of declaratively describing your computer. For example, normally if you are installing a piece of software, you get the installer and tell the installer to install the software on the computer.  With ansible, you simply declare that the software should be installed on the computer, and ansible makes it happen.  It will test to see if it’s already installed, and if so, does nothing.  If it’s not installed, ansible will install it.

It’s not perfect, because there are certain things that I haven’t automated yet.  These are mainly around security issues, like setting up my ssh key, pgp key, connecting up my password manager, and things like that.  I also haven’t focused on specifying how the computer should be setup outside of my little user (for the most part).  For example, I don’t do anything with partitioning or video card configuration.  I don’t think it would be useful to add those things due to all the boxes tending to have different hardware.

Here’s what it will do:cowsay

  • Installs all the software I use.
  • Copies my well known configuration for applications like my shell (oh-my-zsh), git, and various editors
  • Sets my desktop theme and background
  • Sets up LaTex
  • Sets up my creative workflow for some vector editing when needed
  • And most importantly: sets up cowsay

So when I need to setup my computer, I just need to type four commands to kick off the automation, and I’m pretty sure I can get it down to one command.  Then I just wait for it to complete, usually 10-15 minutes later, and my computer is ready to be productive.

Any time I find a new piece of software that’s very useful, I just update my playbook to include that software, and then re-run the playbook.  It installs the software, and I’m ready to go.  But even better, I have three ubuntu desktops I use almost daily.  I can use my automation to keep those things synchronized, so my tools are available across all of them.  This makes me very happy.

Learning Linux

I’ve had a long and weird relationship with Linux.  When I was in High School, you could buy various distributions of linux at Wal-Mart, mainly Mandrake and possibly a few others.  I would Every once in a while I would buy a distro and try loading it on my computer, but I could never really get it to work.  This was almost certainly due to the fact that I was running very cheap PC hardware and there probably weren’t drivers available.  When I got into college, I stumbled upon a distribution called ‘Lycoris‘ and around 2002 and 2003 I was very active in that community, but I still didn’t have a good understanding of Linux and what it was all about.

I was able to buy my first laptop a in late 2003, and I took the plunge deep, installing Gentoo, 595px-gentoo_linux_logo_matte-svgwhere you compile everything from source.  This was my first real peek at how linux really works.  But I struggled with it for a while, and the X server never really worked right on the laptop hardware, and soon I returned to windows.  In October 2004, apparently I installed Ubuntu, shortly after it’s first release, but I must not have ran it for very long.  In the years since, I have ran linux every once in a while.  I got very frustrated with the lack of hardware support, and so I made the switch to OS X in 2006 (“a unix that ‘just works'”) and then I got frustrated by the absurd prices of Mac hardware and discovered gaming, so I just ran windows.

Then about 9 months ago, I took the plunge again.  This time, I interact with Linux on a daily basis at work, and I figured it was time to really learn it this time.  So I installed the latest ubuntu on my home computers, and have been using it since then as my main operating system.  When I run into trouble, I’m forcing myself to really learn.  This time it’s been much easier, mainly due to resources like the ubuntu stack exchange site, working with very knowledgeable people at work, much improved hardware support, and just being emersed in it all the time.

One book that is really helped me is “How Linux Works: What Every Superuser Should Know.”  I’m still reading this book, but it’s been great for explaining the nitty gritty details of what is going on.  Like what does the sudo command actually do?  Well this book explains that.

The question that gets asked is Why?  Why do this?  Running Linux is definitely more work than running Windows or MacOS.  What do you get out of it?  For me, it’s about knowledge and understanding.  Windows and MacOS try their best to hide the complexity of the underlying components away from you, and if you try to peer underneath to see what’s really going on, it’s not really possible.  But on Linux, I can look.  I can have finer control over how the computer is running, and what it’s running, and why it’s running what it does.  It does come at a cost of more time, especially at the beginning, but that’s okay.  As I’ve grown more familiar with it, I can do what I need to do faster, so it doesn’t take as much time as it used to. Perhaps eventually it will not take that much time for me at all.

And in the mean time I’m having a blast learning more about how all this craziness actually works!

Five Principles and One Law

Taken from http://www.agileopennorthwest.org/.  I really like these as general principles.

The Five Principles

  • Whoever comes is the right people.
  • Whatever happens is the only thing that could have.
  • Whenever it starts is the right time.
  • Whenever it’s over, it’s over.
  • Wherever it happens is the right place.

The Law of Personal Mobility

If you find yourself where you can’t learn or contribute, move yourself to a place where you can.

Be Kind

Being kind isn’t the same as being nice. It isn’t about superficial praise. It doesn’t mean dulling your opinions. And it shouldn’t diminish the passion with which you present them.

Being kind is fundamentally about taking responsibility for your impact on the people around you. It requires you be mindful of their feelings and considerate of the way your presence affects them.

This article hits a little close to home.

“Passion Not Spent” by Caleb Madrigal

What’s my great fear?
I’ll tell you; come near…
To lay down in death
with so much left.

Passion not spent –
Oh cowardly regret!
For fear of others?
The thousand deaths.

I’m afraid to die
With no twinkle in my eye –
To pass meagerly by
Yet hidden inside.

To walk through life
Not truly alive,
And to pass in the night
With an unfelt “goodbye”.

Being Wrong

“A whole lot of us go through life assuming that we are basically right, basically all the time, about basically everything: about our political and intellectual convictions, our religious and moral beliefs, our assessment of other people, our memories, our grasp of facts. As absurd as it sounds when we stop to think about it, our steady state seems to be one of unconsciously assuming that we are very close to omniscient.”

– Kathryn Schulz in “Being Wrong“

Nine-tenths of our brain

It is a popular fact that nine-tenths of the brain is not used and, like most popular facts, it is wrong. Not even the most stupid Creator would go to the trouble of making the human head carry around several pounds of unnecessary gray goo if its only real purpose was, for example, to serve as a delicacy for certain remote tribesmen in unexplored valleys. Is is used. And one of its function is to make the miraculous seem ordinary and turn the unusual into the usual.

Because if this was not the case, then human beings, faced with the daily wondrousness of everything, would go around wearing big stupid grins, similar to those worn by certain remote tribesmen who occasionally get raided by the authorities and have the contents of their plast greenhouses very seriously inspected. They’d say “Wow!” a lot. And no one would do much work.

– Terry Pratchett in “Small Gods”

November Retrospective

November Sunset

I set out in November to write a blog post everyday. I hit that goal, and then I stopped posting anything for two weeks. To be fair, it’s been an incredibly busy couple of weeks, getting ready for the holidays, playing with the Oregon Tuba Ensemble (and participating in Tuba Christmas for the first time), getting my Christmas cards out, and going through a major software deploy at work. I’m hopeful that things will start to calm down a bit now.

The last day of November was a very clear day across the entire state, so I decided to head out to the ocean to catch the sunset. I love catching the sunset in Winter out here, because it’s so early – 4:45-ish. I spent a few hours on the coast, putting my new tripod through it’s paces. Having a tripod really makes a difference when taking photos.

When conducting a retrospective, it’s helpful to ask four questions: What went well, what could be better, what’s puzzling, and what ideas do you have. So let’s do it.

What went well?

I successfully posted every day. Because I posted a few at the end of October, my streak was a little longer than thirty days. This is the first time I’ve ever done that. I had a variety of posts, and some posts I put a lot of effort into, and others not so much.

What could be better?

Post quality was almost universally terrible. I’m almost scared to go back and read some of them, because I know they were horrible. I knew they were horrible at the time I wrote them. But I didn’t really care. I just wanted to get them out there. I wanted to skip my perfectionism by purposely avoiding thinking about it so much.  That was goal number one. Some days I threw up simple photos without any context. The video I posted making a card was extremely poor quality especially.

Sometimes I waited too long into the day before starting.

What’s puzzling?

I don’t know that there is anything really puzzling at the moment.  Perhaps related to technology – why does wordpress sometimes run out of memory on this machine.  But I’m keeping an eye on that.

What ideas do you have?

I think my next goal will be to maybe post less frequently, but ensure that post quality is much higher.  I should pick a topic and work on that post for several days, and then only post it when I feel like it’s ready.  But maybe I should also have a deadline, so my perfectionism doesn’t go too crazy.  I think it’s something I can experiment with a bit.