Vinod Kurup

Hospitalist/programmer in search of the meaning of life

May 22, 2011 - 3 minute read - Comments - podcasts android

Google Listen doesn't rock

In the years I’ve been listening to podcasts, I’ve only found 2 podcast clients that I’ve really liked: iTunes (back around 2005-2007) and a bash script that I wrote which simply copied files downloaded by podget onto my iPod nano. Google Listen on my Droid X (Android 2.2) is tolerable, but only barely. I think my requirements are simple. I want to put in URLs and have the client get all the podcasts in that URL and stick them in a queue. I want the client to refresh every N hours and add new files to the queue. I want the client to automatically download each file in the queue. Once I listen to a file, I want the client to delete it from my device. I’d like a configurable option to be able to save a file, while I’m listening to it, so if I am listening to something that I want to hear again, I hit a save button and it won’t automatically be deleted. If I don’t like an episode, I’d like to hit ‘next’ to have that podcast deleted and the next one started. Finally, I want some statistics about which podcasts I’m listening to, which ones I’m skipping, and then some suggestions about which podcasts I might like. A product from Google should be able to do this. Unfortunately, I can’t reliably tell which podcasts I’m subscribed to. There is a ‘subscribe’ button in each one, and when I click it, it changes to ‘unsubscribe’, but then when I back out and come back, it says ‘subscribe’ again, so I’m not sure if I am subscribed or unsubscribed. When I subscribe, the podcasts show up in Google Reader, and I don’t want them there. I understand the idea of reusing Google Reader since it is a RSS/Atom reader, but I never listen to podcasts on my computer. I don’t know what happens if I mark something as read in Google Reader. Does that mean it won’t show up in Listen? I haven’t figured it out. Each time I start Listen, it seems that a different podcast starts, rather than starting where I left off. Well, it’s inconsistent. Sometimes it works, sometimes it doesn’t. Skipping a podcast doesn’t delete it, although there is a config option for that. Maybe I’m just doing it wrong. Most annoyingly, it doesn’t automatically download all the podcasts, so when one finishes, I have to wait for the next one to start buffering and if I’m driving and I happen to be in a poor 3G service area, that might take a while. Maybe this should be my first Android project?

May 21, 2011 - 1 minute read - Comments - podcasts

5 by 5

My commute to work is 25 minutes each way, so I’m always looking for a podcast to listen to. I’ve been a fan of the 43folders website for years and Merlin Mann recently started a podcast called Back To Work with Dan Benjamin. Dan Benjamin, it turns out, is the founder of a network called 5by5, which he says has been called “NPR for geeks”. The shows I’ve listened to have all been sharp and entertaining so far. I especially like Latest in Paleo (despite the fact that I’m not eating anything near a Paleo diet) and the Pipeline (check out the interview with Philip Elmer-DeWitt). Looking through the list of shows, I can only believe that Dan Benjamin has to be the most productive person on the face of the earth.

I’m currently also listening to All About Android, This American Life and some UC-Berkeley CS lectures. Any other great podcasts I’m missing?

May 20, 2011 - 1 minute read - Comments - programming

gitignore

I found this great github project. It’s just a list of .gitignore files for various languages and platforms, but it’s nice to have them all in one place. The .gitignore file is, like it sounds, a list of files or directories that you don’t want to be included in version control. For Android, for example, the bin/ and gen/ directories are generated each time you compile, so you don’t want to include that. Especially, as I learned, because it will give you errors when you run a project created on one computer, on a different computer. The Android .gitignore from github unfortunately didn’t have bin/ or gen/ (or local.properties) in there, so I put them in and was about to send them a pull request, when I found someone else had made the same changes a few days ago already. Which makes me feel better that I was on the right path. Go Open Source!

May 13, 2011 - 7 minute read - Comments - hospitalist medicine

SHM 2011

Here are some (unorganized) thoughts about my experience at the Society of Hospital Medicine (SHM) 2011 conference in Dallas, TX.

Opening Plenary

The initial presentation dissected the SHM Annual Compensation survey, discussing regional variations in pay and work effort over time. I understand the importance of that stuff, but ever since I got my first $638.36 paycheck as an intern, money hasn’t been an issue for me.

The second talk was by Bob Kocher, an Obama insider during the recent healthcare reformd. Gerry would have loved this one. He briefly described how a bill becomes a law… it apparently doesn’t follow the Schoolhouse Rock model anymore. At one point, reform looked dead, when the Catholic Nuns came out in favor of the legislation allowing multiple congress members to change their vote to “Yes”. As Kocher put it (paraphrasing), “When the Nuns broke with the Bishops, healthcare reform could move forward.” Doesn’t that seem like a statement that should be in a history book about medieval times, rather than a statement about 2010 United States politics? Maybe it’s just me…

Neurologic emergencies

The Neurologic emergencies talk was entertaining, though maybe more useful to an intensivist. David Likosky is hilarious in a geeky kind of way. A few things I learned:

Always maintain a good differential diagnosis and don’t jump to a conclusion too quickly. He described a case of an alcoholic who presented in coma and had dynamic pupils making a brainstem stroke the most likely diagnosis. A lot of time was spent to rule that out, and then his labs came back with a sugar of 13, indicating that the diagnosis of hypoglycemia was missed. He described some of the reasons that happened and I can see them happening to me. Never get fixated on a diagnosis, especially before you’ve made the proper initial evaluaation. A fingerstick glucose should always be done in a coma workup.

A few points on status epilepticus (SE)

  • Convulsive SE is a seizure that lasts more than 5 minutes, and is a medical emergency.
  • Lorazepam is probably better than Diazepam and don’t be afraid to use high doses (Start at 4 IV). We commonly underdose and underdosing hurts.
  • Nonconvulsive SE is considered as a medical urgency. A lot of patients have SE on EEG after convulsions have stopped and many have persistent subclinical seizures after SE is controlled. So, repeat the EEG, and consider transfer to a center that can do continuous EEG monitoring.
  • Absence seizures is really a diagnosis of children. (Not really about SE, but interesting)

Things to make you think that a CVA may be posterior circulation: Loss of consciousness, pupillary abnormalities, superhigh BP. Allow it to stay superhigh and keep the patient flat. Because posterior circulation strokes have such bad outcomes, it’s OK to intervene after the normal time window if there doesn’t seem to be any other hope.

Dermatology images (Paul Aronowitz)

When approaching a rash, ask 3 questions: Did the patient cause this rash? Did we do that to the patient? (Ask this twice). Is this rash a manifestation of some other disease? We often jump to the third question, but should consider the first two.

The snake bite risk factors are pretty interesting:

  • Male
  • Age 17-27
  • Deliberate attempt to handle, harm or kill snake
  • Summer months
  • Alcohol intoxication
  • Tattoos

DRESS (Drug reaction with eosinophilia and systemic symptoms) usually occurs 2-6 weeks after the drug is started, but occurs quicker after rechallenge with the drug.

Reactive arthritis can be seen after Clostridium difficile infections.

20% of cases of Neisseria meningitidis do not have meningitis.

Poster presentations

The poster presentations are always fun to read, though if I see one more poster about the readmission problem, I will vomit.

Research Abstract Awards

The winning research abstracts were very interesting.

  • UCSF described changes that they made to meet new ACGME requirements while decreasing costs and improving certain quality measures.

  • Johns Hopkins hospitalists modified their CPOE system to show the costs of specific lab tests, hoping to change provider behavior. They were able to show that providers ordered less tests when they saw the cost. Duh, you say, but there is so little cost information available to providers, so this is innovative if only for that reason.

  • Hospitalists (in Colorado, I think?) used the Toyota Production System to model problems with current intern work schedules. They then reworked the schedule to minimize waste of resident resources, while improving continuity and resident satisfaction. They were able to basically eliminate moonlighter and jeopardy use. I didn’t understand the schedule because it was presented quickly, but I like the idea of taking a nonmedical thought approach and applying it to medicine. I also like that they optimized for continuity of care, so that after the intervention there was a huge increase in the amount of patients that were seen only by 1 intern during their stay. Very interesting!

SHM promotion

My attention faded during the award presentations and SHM motivational speeches, but Joseph Li, the incoming SHM president, did come clean and acknowledge that he was born outside the U.S., despite his lack of an accent. The birthers were right!

Geographic rounding

Emory Hospitalists then presented a talk which was titled ‘Utilizing Technology to Improve Clinical and Operational Performance of Hospitalists’ but it should really have been titled “Geographic Bedside Rounds: Just Do It!”. They did mention the IT improvements they’ve made to support geographic rounding, but the value of the talk was in describing how they implemented geographic rounding and how it has been received by the involved parties. Moving to geographic rounding helps providers the least. It’s basically an addition to our workload. On the other hand, patients, nurses, and social workers get a lot of benefit and obviously, the patients are the most important factor here. We will have to see the patient more than once and our workflow will have to change, but it seems that the benefits outweigh the extra costs to the individual provider. Paraphrased, “Nurses and social workers would riot if we stopped this system, but even hospitalists wouldn’t want to go back to the old way, if put to a referendum.” Something that only came out in the post-talk questions was how this has improved overall teamwork. They used to have a complicated system about how new admissions were assigned, taking into account census numbers, discharge numbers, and other factors. Now, with the new system, there are days that one hospitalist will have completely unequal numbers or new patients than another hospitalist, but it is understood that things will even out over time. That has encouraged hospitalists to stop focusing on numbers and instead to focus on making things run better, so hospitalists who were previously “anti-teamwork” are now offering to help out when they’re done with their work. Anecdotal, but I like stories like that.

They also mentioned that they created a video dramatization of their bedside rounds. If I can find it, I will link to it.

Updates in Hospital Medicine

  • Oral prednisone 60 mg daily as good as 600 mg IV for COPD exacerbation (Presented at DRH Journal club)
  • OK to extend peripheral IVs rather than change routinely (Emailed to me by DRH Hospitalist)
  • Getting appts for COPD exacerbation pts within 30 days may decrease rehospitalization (duh!)
  • Benefit for tPA in stroke up to 4.5 hours, but earlier is better (DRH Journal club)
  • Gurgling sounds predict pneumonia and ICU transfer (duh)
  • Routine ID consultation in Staph aureus bacteremia significantly improves mortality (HR 0.44) (NEW TO ME)
  • Coagulopathy in liver disease doesn’t protect against VTE (duh)
  • Metformin does not cause lactic acidosis (old news, but nice to be data-supported now)
  • Enteral nutrition better than TPN in pancreatitis (DRH email/conversations)
  • In ICU palliative care situations, only 47% of family members based their survival estimates on MD’s prognosis advice.

I skipped the ICU stuff. Only one of these updates was new to me (listed as NEW in the list above). I attribute that to my colleagues at Durham Regional who have been sharing the knowledge that they’ve been collecting from various meetings and readings this year.

Careers in Academic Medicine

This was a workshop on how to pursue your ideal life in academic medicine. I loved the energy and enthusiasm of the instructors. This probably would’ve benefited from being a longer course with fewer, more involved participants. The basic premise was to document what exactly you are doing now, what you’re getting paid to do, and what you enjoy doing. Reconcile the differences in those 3 lists and try to identify how to make them match.

No wireless

This would have been posted a lot earlier if I could ever get on the SHM wireless network at the Gaylord Convention Center. “Please wait. You will be redirected to the authentication page in 5 seconds.” You lie!

May 8, 2011 - 4 minute read - Comments - android book-review programming

Learning Android Review

I recently finished reading Learning Android. I have a Droid X, Mala has a Droid Eris, and I just bought a Viewsonic g-tablet, so I have plenty of Android devices. While I still have trouble with the idea of typing on a touchscreen, I know that we are moving towards a future where mobile devices are our primary computers. This is not earth shattering. Philip Greenspun mentioned it 5 years ago. Android will be one of the more prominent mobile OS’s along with iOS, so I want to learn how to program it.

I came into this book having browsed some of the example code on the developer.android.com website. It is great for an overview, and there is a lot of in-depth information on APIs, etc., but I still didn’t quite understand how to go about starting an app.

In March, O’Reilly had a sale on e-books, so I bought Learning Android. It is a reasonable introduction to Android programming. It’s beings gently, explaining the history of Android and providing a general overview of how the Android stack works. It’s explains how to use the Eclipse IDE, but as a fervent emacs fan, I was easily able to adjust to using emacs (with android-mode.el) for all of my development. There were typos and minor errors, but fortunately O’Reilly has an errata page where people can post fixes and suggestions. Keep that page open while you’re reading this book. There were a couple areas where the ordering of the discussion could have been improved. If I didn’t have that errata page at hand, I would have been completely frustrated. Especially at the beginning, the instructions were not detailed enough. For example, we are instructed on how to create a program and how to start the emulator, but there is no clear explanation on how to run the program on the emulator. A little more step-by-step hand-holding would have been nice.

In case you ignored my advice to check out that errata page, at least make sure that you have the updated version of the jTwitter library, or else you’ll never get the sample programs to run without errors.

I haven’t used Java in a while, so I forgot how verbose Java is. Writing Tcl, Ruby and Python has spoiled me. It takes so long to do something simple in Java. I know that this is usually offset by code generators and IDEs, but it still just seems so clunky to read and write. There is a scripting language project for Android (SL4A). I haven’t tried it, but it involves bundling the scripting environment with your app if you want to distribute it to others. I’m also not certain that it provides access to all of the functionality provided in the Java SDK. Someday, I hope that a scripting language SDK is provided. It seems like a natural progression.

All in all, I think Learning Android is perfect for someone who wants to get started in Android programming. It gives a nice gentle introduction to all of the basics of how the platform works. Most of this information is available on the web in various places, but it’s nice to have it all in one place, and I still think there’s value to having one book that takes you from step zero to a working app. I think I’ll now be able to use the online docs to get me moving. I was often frustrated by the typos, minor technical errors and inconsistencies, but I suspect the book was under a lot of time pressure, given how hot mobile programming is these days. It just felt like it was written on a rushed deadline. It’s also not the most entertaining book in the world, which is OK for a technical book. I’d always rather have a boring technical book, than an attempt at an entertaining one.

May 7, 2011 - 2 minute read - Comments - running

Philosopher's Way Trail Run

I ran the 15K Philosopher’s Way Trail Run today. It’s on the eastern end of Carolina North Forest. I’ve been running a lot on the western end of these trails so I had never seen any of these trails before. The weather was perfect - sunny and mid 50’s - and the trails were in good shape. I only got a little muddy. The race was very well organized for such a small race. The only minor annoyance was the beginning of the race where a couple hundred runners turned from a 20 foot wide course onto a single track bike course. Everyone came to a halt and we all walked for about a quarter mile. I didn’t really start running smoothly until about a mile in and the next 3 miles were spent passing and waiting, passing and waiting. That in itself is ok … it’s part of trail running. I would’ve just extended the time that we were on the wide track to give time for people to string out a bit more. Like I said … minor annoyance.

Once we got moving, I had a blast. I just love running in the woods. I felt unstoppable until about mile 7 and then I lost my gumption and my thighs started to complain. I held on to the people in front of me as much as I could, but one person did pass me at the end, the only person to pass me in the last 5 miles. I think I saw 1:33 as I finished, but my GPS time was 1:29:09. I think it stops the clock whenever it thinks I have stopped and it got really confused on the trails. It recorded my final distance as 6.0 miles which is 3.3 miles too short. I had suspicions that my earlier trail runs were underestimated, but never thought it was this inaccurate. My B goal was 1:30 so I was close and I definitely hit my C goal.

I’ll definitely be doing this run again next year, if I’m free. I’m currently posting my runs at dailymile (a cool site built by two UW grads), so follow me there!

Mar 14, 2011 - 2 minute read - Comments - photography review

Canon Powershot S95

There’s something about photography that seems to attract programmers. So many of the really good programmers that I know are also into photography. I, on the other hand, am just happy if my latest photo of the kids doesn’t include massive red eye. I’m always happy when a shot looks nice, but I know I’m not interested enough to be an exceptional photographer. I’ve never wanted a fancy SLR camera because I know I’d leave it on the shelf collecting dust. I’d rather have a camera that I will actually carry with me.

On that note, I’m really happy with the Canon Powershot S95 that Mala bought me. It’s even tinier than my previous pocket cameras but it takes really good photos. It’s no SLR, but I’m pretty impressed with the quality so far. I learned from David Pogue’s Digital Photography: The Missing Manual that image sensor size is, by far, the most important criteria by which to compare cameras and the S95’s image sensor is huge. It’s only 10 megapixels, but that is mostly a meaningless statistics. Ignore megapixels and pay attention to the image sensor size. I also love that it has no noticeable shutter lag. I’ve been chasing running kids around the past couple days and have yet to miss a shot.

If you’re not a photography buff, David Pogue’s Missing Manual has a lot of straightforward, simple advice that will make your pics better.

Here’s a few photos from this weekend:

Mar 4, 2011 - 2 minute read - Comments - web

Letter Sweep

Tim Bray posted the links that his browser displays when he types each letter of the alphabet. Here’s mine:

[A]dSense. I spend too much time watching the zero’s pile up.

[B]orkware. Always good for a quickie. Wait… that didn’t sound right.

[C]ite-U-Like. I’ve started to use this site to keep track of journal articles that I read.

[D]ocs (Google). I store my Habits spreadsheet, my weight spreadsheet, our address book spreadsheet (because Google contacts aren’t shareable) and other random documents.

[E]vernote. I’ve been trying to use this more to keep a central repository of notes, but it hasn’t stuck yet.

[F]acebook. I don’t know why this is there. I never use facebook.

[G]queues. I’m surprised that Google lost this one. I’m using Gqueues to keep track of my todos. It’s pretty nice. My main complaint is that it’s a little slow and there’s no Android client.

[H]ttp://facebook.com. Oh, how embarrassing. OK, my name is Vinod Kurup and I’m a facebook addict.

[I]nstapaper. I store longer articles here for later reading. I use the Instafetch client on Android to read them.

[J]ournal Watch. Phew! At least one site relevant to my day job!

[K]urup.org. The most amazing site on the internet.

[L]loogg. tail -f access.log for the web

[M]yfitnesspal. We’re using this to track our diet and exercise. We used to use Fitday, but this is so much easier and there’s a social component that is motivating. It’s amazing how comprehensive their food database is.

[N]ewegg.com. Mostly for printer cartridges, but occasionally for toys.

Duke [O]utlook. My new work webmail. Outlook 2010 == HIT’s idea of modern.

[P]icasaweb. Pictures of the cutest kids in the world.

[Q]. This space for rent.

[R]uby-doc.org. I’m trying to learn ruby (the right way)

[S]ports.yahoo.com. My University of Wisconsin, Green Bay Packer and Milwaukee Bucks/Brewers addiction is slow to die.

[T]witter. Yup, I still use twitter.com.

[U]. bUeller… bUeller…

[V]ictory Village. Kid’s daycare. Lots of snow this winter meant lots of checks to see if daycare was open.

Old Duke [W]ebmail. Lotus Notes, then Outlook 2007, now defunct.

[X]KCD. The best comic strip in the world.

[Y]outube. Videos of the cutest kids in the world. Plus I think there are some other videos there…

[Z]. This space left intentionally blank.

And had to add (because it’s so heavily used):

[1]27.0.0.1:4000. My local Jekyll server.

Mar 3, 2011 - 4 minute read - Comments - parenting life

Parenting Highs and Lows

Written a few weeks ago

I came home late today, so Anika and Kavi had already eaten dinner and taken their baths. As I drove down the driveway, I could see Kavi’s excited little head poking over the upstairs windowsill. I parked the car and opened the door into the house. I was immediately met a voice screaming, “Daddy, Daddy!” with pure joy in his voice. He ran down the stairs and gave me a huge hug. I just love that. There is nothing better than coming home to such a loving family. It makes all the stress and BS at work melt away.

Then I followed him upstairs and Anika ran over and gave me a big hug and then started “Dancing on the diaper pad!” (Will have to upload a video of that someday). I watched for a few moments and then got up to go change my clothes. She started to get upset, so I held her hand and walked her down the hallway with me. That’s another thing I love. Seeing this sweet little girl with her arm extended as high as she can possibly reach to hold my hand, walking with me, like I’m the most important person in the world, just makes my heart melt. I don’t know what I’ve done to deserve such love and admiration. I just hope that I can live up to their expectations.

Kavi had a scary episode on Superbowl Sunday. We were just getting ready to go next door for the Superbowl party. I was upstairs with Anika and she had just been getting upset about how she wanted to go downstairs. Kavi and Mommy were downstairs, but they were coming upstairs, so I wanted Anika to stay up here, rather than go down and then come up again. I picked her up and held her in my arms to keep her happy. I heard Kavi start coming up the stairs, and normally I would have opened the baby-gate for him, but this time I didn’t want Anika to see me opening the gate, because I thought she’d start getting upset again, wanting to go downstairs. Instead, I just stood a few feet away from the gate, telling Anika, “See, Kavi’s coming upstairs.” He’s opened the gate hundreds of times and has never had any trouble doing it. This time, however, he opened the gate, lost his balance and the gate started swinging open over the stairs. He held on to the gate and swung with it. He was hanging on tightly and I could see his feet dangling, trying to find a foothold on a step, but since the gate had swung open over the stairs, he was too high to reach the stairs. I vividly saw the fear in his huge eyes and ran to the gate, but by the time I got there, the gate had given way and he was tumbling down the stairs.

Time stopped.

He screamed with the most terrified scream that I’ve ever heard. He initially landed on his feet in the middle of the staircase, but the momentum made him fly down the stairs and his head banged against the far wall. The gate followed close behind and landed on top of him. Anika started screaming in my arms. She instinctively knew that something bad had happened. I initially bent over to put her down at the top of the stairs and then quickly reconsidered, knowing that she would want to come down with me and might fall in the process. I picked her back up and headed down the stairs as Mala raced up from the kitchen. I gave Anika to Mala as I grabbed Kavi and looked him over. He had a tiny scrape on his head, but no bleeding. He seemed to be complaining most about pain in his left arm and shoulder. It reassured me a bit, because I was worried about his head, but then I got worried that maybe he had broken his arm or something. We held him for a while and put ice on his head and shoulders. Anika was tearful watching all of this but calmed down quickly. Then I went upstairs to fix the gate.

Within a few minutes he was bouncing around without any sign that he had fallen. I was so relieved, but I still have visions of his eyes being full of fear as he was hanging from that swinging gate. I know how lucky I am and how lucky we have been, in general. I also know that there will be other scary moments in the future - it’s a part of life. Weathering this admittedly minor mishap took all the strength and fortitude that I could muster. How do people do it? How do people withstand bad things happening to their kids? I just don’t know how people can take so much potential pain.