Vinod Kurup

Hospitalist/programmer in search of the meaning of life

Aug 16, 2003 - 2 minute read - Comments - blackout life new-york-city

Let there be light!

The power finally came back on at around 7:20 PM tonight. I was sitting on my futon trying as hard as I could not to sweat, when I heard a loud cheer from the courtyard and saw that the lights had gone on in the apartments outside my window.

It’s been a weird couple of days. The power went out around 4:15 PM yesterday while I was looking up some labs in the preceptor’s room. The A/C had been on full-blast, so we all thought that it was just an overloaded circuit, but soon we got word that nearby buildings were affected and everyone went smoothly into disaster-mode. Take care of any urgent patient needs and encourage everyone else to go home. No staff leaves until we know what’s going on. Around 6:30, we got the word that whoever was within walking distance could go home, provided that they be back first thing in the morning. I figured 4 miles is walking-distance, so I left. From the 80’s to around 63rd St, 2nd Avenue was packed with cars trying in vain to get to the Queensboro bridge. Traffic lights were off, but it didn’t seem to matter since the cars weren’t moving anyway. Civilians were trying to direct traffic with varying success. The cars obeyed, but pedestrians were on their own schedule. From the Queensboro down to the 40’s, pedestrians replaced the cars and swarmed over the street.

I got to my neighborhood around 8ish. Most of the local shops were out of flashlights and running low on water. I swear the people at the counter were just making up prices as they went along, but no one really seemed to care. After getting settled at home, I went for a short walk outside around 10PM. I was shocked at how dark New York was without any lights. You could clearly see the stars in the sky. It was dangerous to walk around without a flashlight because there would be people just sitting on the sidewalk waiting to be tripped over.

But everything is back to normal now and the only casualty is my uptime

Update:

Aug 13, 2003 - 2 minute read - Comments - family friends

6 degrees?

An article in the NY Times claims that ‘6 degrees of separation’ is an exaggeration. They tested it by asking people to forward emails to people that they knew in hopes that the chain would eventually lead to 1 of the researchers' destinations. I know that I delete any chain mail that I get, so I’m not sure that the study’s results are valid.

Let me provide an anecdotal rebuttal. I went to Subha and Archana’s wedding in Chicago last weekend and I’m guessing there were 400 people there. I met about 20 people whom I hadn’t met before. Of those, 2 had links to me through people who had nothing to do with the wedding. One was a cousin of Sushil, my good buddy from Boston. The other one is a little more convoluted. My cousin Deepu was the inspiration for the name of a musical group when he was at Wash U in St. Louis. Deepu has since moved on to San Fran, so the group has changed its name. A person I met at the wedding is currently a member of that group and has always wanted to meet the infamous Deepu, whose name is plastered over the other members' instruments.

Now, does being connected through a band’s name count as a degree of separation?

Aug 13, 2003 - 2 minute read - Comments - medicine

annual waste of time?

Another interesting article in the Times today. Lo and behold, the annual physical exam is useless. Shocking, huh? Well, no - not really. The first questions about the annual physical cropped up 20 years ago and recent studies have only confirmed these initial doubts.

So, do I perform annual physicals? Yup. Why? A few reasons…. As a relatively young doc, I think it’s important to examine LOTS and LOTS of normal patients in order to get a firm sense of what’s normal and what’s abnormal. And even if I were 100% confident in my physical exam, I would still want to keep those exam skills sharp.

The annual physical is also a great time, if not the only time, to discuss preventive care with patients. Acute care visits are already rushed and sick patients aren’t the most receptive listeners.

Patients in my community are underserved as it stands - getting rid of annual physicals would only contribute to patients getting lost in the system.

Finally, and most importantly, performing annual physicals makes me look like a doctor. Patients expect annual physicals and I’d look like a quack if I didn’t perform them, regardless of how much science is backing me up. This is one of those classic “Art of Medicine/Science of Medicine” intersections. In order to be able to practice the Science of Medicine effectively, we need to compromise on the scientific purity a bit, for the sake of the Art of Medicine.

“I still listen to everyone’s heart,” said Dr. Stewart Rogers, an internist at Moses Cone Hospital in Greensboro, N.C. “Why pick that fight? Why try to explain 10 years of evidence-based medicine so the patient will understand why I didn’t do that test? The reason to listen to hearts is that it establishes our priestly majesty when you tell them about smoke alarms.”

That being said, I do try to explain to patients that not all tests are necessary and can in fact be harmful, but I’m not dogmatic about it.

Aug 2, 2003 - 3 minute read - Comments - running

Running in the Rain

It was pouring, monsoon-style here in NYC today, but I went running anyway. When it’s raining, no one else is out, so I get the path to myself. And jumping over (or through) the puddles makes me feel like a tough guy. I swear I can hear the Rocky theme song when I run in the rain. The only bad thing about running in the rain is that the always-stunning midtown skyline gets obscured by the clouds.

I haven’t run outside since July 13th when my knee started hurting. I’ve run on the treadmill a couple times this week and my knee felt fine, so I decided to hit the pavement today. I ran to the East River and all the way down to the South Street Seaport. About 8 miles in 90 minutes. My knee was a little sore at the end but it feels fine now.

Comments from old site

Pains of Running

I think my body is trying to send me a message. Since the beginning of this year I really began to elevate my mileage. I started with a 5k race in the beginning of April then a 5 mile race by the end of April and then a mini-marathon in the beginning of May. During this whole time period I could feel my heels and body begin to have more aches and pains. I took about 2 weeks off of running after all of this and have been back into my running for the past 2 months. Lately, I have noticed myself skipping some runs. I find it very frustrating. I tell myself....are you just being a wimp! Today I skipped a long run. A 12 miler. I woke up this morning feeling very achey(back and heels). I am telling myself to maybe take a couple of days off or running and instead doing some stationary bike, which really sucks! I have come to realize that I need to focus more and just finishing the Marathon I am training for than trying to kill myself for a great time. Vinu, I feel your pain cuz!

Harish Nair 2003-08-03 19:13:38

1 step at a time

Hey Harish! I think you have the right attitude. Just set your goal on the finish line and I guarantee you'll be happy with your performance. And I think I can say with some conviction that "You, sir, are NOT a wimp!" It's good to back down on your training every once in a while - let your energy regenerate again. Don't worry - there's still plenty of time left!

Vinod Kurup 2003-08-06 00:16:42

Don't stop a rockin'

Keep up the strong work, Rocky...er, Vinu. I'm in the middle of 2 continuous weeks of 'nightfloat' (8p-8a shifts) which is sapping my will to live, not to mention my ability to run. I went for a long run (maybe 11 miles) this past weekend, but I'm not sure I'm going to have the heart for more than a few miles these next 1.5 weeks. Gotta keep trying.. Really looking forward to seeing everyone again in a couple of weeks! Harish, hang in there. It's no crime to take a couple of days to rest before getting back to the training...

Deepu Nair 2003-08-06 03:21:32

Be sure to use the correct Rocky

Just make sure it's the proper Rocky Theme, and not the Weird Al version. "Ain't gonna fly now he's just takin' up space") Mmmm, but it does sound good to have a sandwich, on "Rye or the Kaiser" I really should get out more.

Mark Dalrymple 2003-08-06 14:16:37

Aug 1, 2003 - 2 minute read - Comments - medicine asd

ASD

A young guy came in as a walk-in with some mild shortness of breath on exertion and associated chest pain. He was the last patient that I saw during a long, busy day and his symptoms were very mild. I was thinking that maybe he had mild asthma or a respiratory infection, but he didn’t look sick at all. Then I listened to his heart. A loud holosystolic murmur throughout with a fixed split S2. Wait, wait. I know this one…. (sounds of my mind clunking along) ASD - Atrial Septal Defect (Patient Information).

He had his echocardiogram today which confirmed that he had a large ASD (We don’t need no stinking echo!). He’ll be going to Bellevue for repair and most likely will do very well. I explained everything to him (in Spanish “un agujero in su corazón”). It’s times like these that make me glad that I get to do what I do.

Comments from old site

ASD Repair

Nice pick up! Are they going to close it percutaneously (i.e. in the cath lab?)

Girish Nair 2003-08-08 14:58:30

Good question

Unfortunately, we don't have a cath lab here at Metropolitan, so all of our cards stuff goes to Bellevue, which is kinda like a black box. Hopefully he'll follow-up soon and with a lot of luck, he may even come with a procedure report :-)

Vinod Kurup 2003-08-08 19:17:04

Jul 31, 2003 - 2 minute read - Comments - cousins-trip family

4th Annual Cousins Reunion

We went whitewater rafting in Pennsylvania in 2000, sea-kayaking in North Carolina in 2001, and death-marching (er… hiking) in the Grand Canyon in 2002. This year, we chose kayaking and hiking in Seattle.

We went kayaking near the San Juan Islands on Thursday. It was a great upper body workout and our guide Martine was a fountain of information. We saw some harbor seals close up and a bald eagle from afar. We (well some of us) were really hoping to see whales, but unfortunately, they didn’t cooperate.

On Friday, we drove south to Mt. Rainier. The skies were overcast in Seattle but they conveniently cleared up just as we neared the park. The views were breath-taking (or was that the hiking?). We trekked around Paradise (yup that’s what it’s called) along a path that Manu picked out. It was challenging, but we wouldn’t have it any other way. One of the climbs took us to the top of the cliff where Manu warned Noel, “If you fall, Anita won’t let you join us next year!” After a quick well-deserved soak in the hotel’s outdoor jacuzzi, we finished the night with some amazing sushi at Shiro. Everything was great but I could’ve done without the Uni (sea urchin) - those who didn’t eat it seemed to enjoy it the most.

On Saturday morning, we played our annual basketball game. Because of some logistical details, I had the fortune of playing on the young-guys team in game 1 and the old-guys team in game 2. My team lost both games, thus graciously providing both the oldies and the kiddies with bragging rights. I took a few movies - Harish making a shot, Girish with a tough shot, and Dilu with some fancy dribbling.

After basketball, we ate brunch at the Space Needle and took in the great views of Seattle and Mt. Rainier in the background. Saturday was a day to relax and take in the city without exercising too many muscles.

I’m skipping over a lot of details, but the bottom line is that I had an amazing time. It’s always more fun than I imagine it could ever be. I can’t wait til next year.

See Manu’s site for some more pictures.

Jul 30, 2003 - 2 minute read - Comments - music eff free

Don't get sued

The topic of music sharing and its legality came up during our annual cousins trip in Seattle. Here’s an important article on How Not to Get Sued by the RIAA. The most important thing is the last line in the article:

Join EFF and support our efforts to protect file-sharing.

I don’t use P2P music-sharing apps anymore. While I love the idea of being able to access an unending library of music, I don’t like the idea of getting it for free. What? Sure, call me strange, but I like the idea of an artist getting a benefit for entertaining me - something that will encourage them to make even more great music. I tend to buy music at the Apple Music Store or directly from the artists if possible (e.g. Phish). In both cases, the artists get much more of the proceeds than they do through other channels.

Now, I also copy new stuff from friends and family (Thanks Dave and Deepu!), but I don’t feel too guilty about it because they always introduce me to things I would never have heard otherwise and if I hear something I like, I’d usually go buy more of it. RIAA’s current actions (link broken), if they’re doing anything, are making me more reluctant to buy music through normal channels. Why should I support an industry that seems to care neither about the artists nor the customers. Music sharing will help artists and it certainly provides us with more variety than the RIAA and its cohorts are providing. We just need to work on ways to improve the flow of money and music between listeners and artists. The EFF is working on this.

Jul 20, 2003 - 1 minute read - Comments - aolserver web programming

AOLserver CGI errors

Scenario: You’re trying to run a CGI program under AOLserver and you see this in your error log:

19/Jul/2003:00:00:23     Error: exec /home/vinod/cgi-bin/mt: execve() failed: Permission denied
19/Jul/2003:00:00:23     Error: waitpid(-3) failed: No child processes
19/Jul/2003:00:00:23     Error: nscgi: wait for /home/vinod/cgi-bin/mt failed: No child processes

I’m trying to run /home/vinod/cgi-bin/mt/mt.cgi. Why isn’t this working? Because I need to tell AOLserver about each and every directory which might contain CGI programs.

So I need to change my nsd.tcl from:

ns_section "ns/server/${server}/module/nscgi"
ns_param   map "GET  /cgi-bin /home/${user_account}/cgi-bin/" 
ns_param   map "POST /cgi-bin /home/${user_account}/cgi-bin/" 
ns_param   Interps CGIinterps

to

ns_section "ns/server/${server}/module/nscgi"
ns_param   map "GET  /cgi-bin /home/${user_account}/cgi-bin/"
ns_param   map "POST /cgi-bin /home/${user_account}/cgi-bin/"
ns_param   map "GET  /cgi-bin/mt /home/${user_account}/cgi-bin/mt" 
ns_param   map "POST /cgi-bin/mt /home/${user_account}/cgi-bin/mt" 
ns_param   Interps CGIinterps

Problem solved. Further reading: http://jongriffin.com/static/consultant/nscgi - sure wish I had read that before I started messing with ns_cgi.

Jul 20, 2003 - 3 minute read - Comments - openacs version-control programming

Updating from CVS

Here’s the steps I take in order to update my site from the latest OpenACS CVS. All of this info comes from Andrew Piskorski’s great CVS page or from pages listed in his document.

  1. Make sure that I’ve committed all the local changes that I’ve made.

    vinod:~$ cd web/kurup vinod:~/web/kurup$ cvs commit -m “Fixed foo, bar and blah”

  2. Go into the directory containing my OpenACS CVS checkout and grab the latest sources. I’m using the oacs-4-6 branch.

    vinod:~/web/kurup$ cd ~/web/openacs-4 vinod:~/web/openacs-4$ cvs update -r oacs-4-6

  3. Import the code into a vendor branch. My repository name is kurup. OpenACS is the vendor tag.

    vinod:~/web/openacs-4$ cvs -d /var/lib/cvs \ import -m “importing latest OpenACS 4.6 branch”
    kurup OpenACS openacs-4-6-3-20030719

  4. This produces the usual CVS scroll and then a message like this:

    7 conflicts created by this import. Use the following command to help the merge: cvs -d /var/lib/cvs checkout -j<prev_rel_tag> \ jopenacs-4-6-3-20030719 kurup

  5. Follow the instructions just given above. This will checkout a full set of code into the kurup directory, while simultaneously merging the new imported code in.

    vinod@vkurup:~/web/openacs-4$ cd vinod@vkurup:~$ mkdir tmp vinod@vkurup:~$ cd tmp vinod@vkurup:~/tmp$ cvs -d /var/lib/cvs checkout \ -jOpenACS:yesterday
    jopenacs-4-6-3-20030719 kurup

  6. Go through and fix all the conflicts. This is the part that I sometimes find confusing. How to find the files that have conflicts? The command in instruction #3 above will list conflict files with a C in front of the filename. Check each file that has a C in front of it. This is why I like to do this process inside an emacs shell, so that I can look over the output as needed. For example, one piece of my listing looked like this:

    U kurup/packages/lars-blogger/www/blog-oracle.xql U kurup/packages/lars-blogger/www/blog.adp C kurup/packages/lars-blogger/www/blog.tcl U kurup/packages/lars-blogger/www/calendar-oracle.xql

So, I need to check ~/tmp/kurup/packages/lars-blogger/www/blog.tcl, look for conflict markers and resolve any conflicts. Do this for every file marked ‘C’ in your listing.

  1. Commit my work.

    vinod:~/tmp$ cd kurup vinod:~/tmp/kurup$ cvs commit
    -m “merged with openacs-4-6-3-20030719, conflicts resolved”

  2. Blow away that tmp checkout

    vinod:~/tmp/kurup$ cd vinod:~$ rm -r tmp

  3. Update my local checkout

    vinod:~$ cd web/kurup vinod:~/web/kurup$ cvs update

  4. Restart my server.

    vinod:~$ svc -t /service/master

  5. Once the server is back up, I visit http://kurup.org/acs-admin/apm with my broswer and click on ‘Install Packages’. I look for any packages that are listed as ‘Upgrade’. Click on these packages and follow the instructions to perform any needed upgrades. This is always a touchy process because if the upgrade script errors out, your server may be left in an in-between state. Hope and pray liberally.

  6. Repeat as needed, maybe monthly, or whenever there’s a new feature/bugfix available that you need.