Vinod Kurup

Hospitalist/programmer in search of the meaning of life

May 23, 2011 - 1 minute read - Comments - podcasts android

Doggcatcher

I talked yesterday about how I didn’t like the Google Listen podcast client. I did a little Googling and found a nice solution (somewhat ironic, in an Alanis Morrissette kinda way): Doggcatcher. It costs $6.99 and I spent an extra $3.99 for Presto Sound Library which allows you to speed up the podcasts a little. Sorry Merlin! (He hates when people do this). Doggcatcher seems to do everything I mentioned as requirements in yesterday’s post. I also like that it doesn’t sync between clients, so I can have audio podcasts on my phone and video podcasts on my gtab tablet. It has a million configuration options, so you can set certain podcasts as higher priority than others and you can define how many episodes should be downloaded per podcast. I love having that kind of flexibility. Most importantly, the UI has been understandable and every time I launch it, I’m placed right back at the same place that I left off when I quit.

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.