New website

Hello! This is my last post on this wordpress page. Please read this post on my new website:


Nixon’s photos

On my first trip to Africa I met a young Zambian preacher named Nixon, whom I later kept up with over email. When I planned to return to Africa he asked if I could bring him a camera so that he could take pictures of the Lord’s work. I agreed upon the condition of getting a copy of these photos, and so now I occasionally get wonderful emails from him updating me on the Lord is doing through Nixon in Zambia. For example, here is a message I received recently:

Greetings,1 Thessalonians 1:2-4.
Am doing very fine with the family and families of our Lord and getting very busy each and everyday in our Lords work, 17th to 20th May, 2012 we had a very wonderful meeting at Mazabuka, were I was teaching on learning home (matt 10:16-20) were I was speaking on leaving home Bap 11. rest 25 att 420. I also opened a new congregation two weeks past and am involved in prisons ministry from 2nd March,2012 up now were as three dedicated evangelist on this program. So far we baptized 32 prisoners from choma central police and our plans is to go round in Zambia its only that we have a great challenge on transport, otherwise there is a great need for us to teach in prison and we have hope that God will provide as one day its only that taking pictures in prisons here in Zambia is not aloud otherwise you would have seen what we have been doing. Always in my prayers my regards to your home congregation tell them also to pray for me so that I accomplish my plans in our
Lords work.
Your Lords servant

He always makes sure to mention the baptism, restoration, and attendance numbers in his emails. Numbers are an incomplete metric of God’s work, but it is encouraging to see how Christ is spreading through Nixon and to Africa as a whole. I tallied up the numbers from his previous emails and came up with 4,022 attendees, 456 restorations, and 142 baptisms since I began receiving his emails. His messages always encourage me, and I wanted to share this and some of his photos with all of you.

Riding the bus

I decided to ride the bus while I stay here in Houston. There’s a lot of good reasons why, but I have to admit the most prominent one is probably not having to pay $12/day for parking in the medical center. It also saves on gas, is better for the environment, forces me to walk more, allows me to read on my way to work, and keeps me from having to deal with traffic. However, one of the more unexpected benefits I’ve encountered is a feeling of being integrated into the city. It makes you more aware of where you are and what kind of people live there. There’s a communal sense of society. Not that there’s some mystical bond or unspoken brotherhood on the bus, but I do feel that people who ride the bus relate to other people who ride. I assume that most of the people riding with me have not made the decision I have. That is to say, they aren’t there because they want to be. And I suspect this fosters some sense of relatability that is so poignantly polar from what you experience in rush hour traffic. Instead of seeing people cut each other off or give each other the finger you see people helping an old woman or disabled person get on. It’s redemptive of transportation for me.

I’m not sure why there is such a stark difference between highway traffic and bus riding. It’s not that everyone is giddy or even loving, but there seems to be a certain level of mutual respect for others. You don’t see people hopping in front of each other to get on first or fighting over the best seat, whereas in traffic these are occurences that may happen multiple times in a single trip. I hope that the only difference is not that people are afraid. What I mean is that I don’t want to think the only reason people aren’t taking advantage of each other on the bus is because they fear the person they insulted might pummel them. In traffic, on the other hand, people tend to feel isolated and safe inside of their cars. Traffic can be a little like the internet, where people aren’t afraid to express the darker parts of their personality because they feel insulated by anonymity. I’m sure there’s a factor of wanting to be cordial to people on the bus that you will likely make acquaintance with at the same time and place tomorrow.

Even if it is a matter of fear, on the bus kind voices are magnified and selfish ones are silenced. When you’re in traffic, generally the only person heard is the one who is being extremely inconsiderate. Occasionally someone will be kind and let someone into their lane, but those simple gifts are often muted by the loud voices of people who won’t. There’s also a disconnect in communication where you might misjudge what the person in the car next to you is thinking entirely. On the bus you can see the reactions and expressions of those around you and find someone to relate with if a person is impolite. The person having a grumpy morning is sitting quietly a distance away instead of swerving in front of you. Likewise, the polite sometimes make pleasant conversation.

I don’t feel like I’ve made any real sacrifice. I’m benefitting from this decision; it’s not an attempt to gain self-righteousness. I’m very aware that some people I love dearly in Zambia often walk for tens of miles to get to work or church, sometimes with 4 or 5 gallons of water on their head. Riding the bus on my way to work at a premier hospital getting paid well doesn’t make me any kind of martyr. I only say this because some people find it an incredulous decision. They aren’t sure why else I would choose to ride on a smelly bus in the heat. But in my eyes I’m beginning to think more seriously about how I could make this work in San Antonio.

Updating vim pathogen plugins

I love pathogen for managing my vim plugins. It allows me to put plugins in my ~/.vim/bundle directory and have the confidence of being able to simply uninstall them by deleting the plugin directory. Since nowadays almost every vim plugin has a github repository, it’s very simple to do a git clone <paste> in the ~/.vim/bundle and then later update it with a git pull. Since a git pull will do nothing to a directory that either isn’t a repository or has changes, you can safely execute it on all the directories in your bundle without worrying. I made a simple command to put in my .vimrc that will do just that.

  command! -nargs=0 Update :!find ~/.vim/bundle -type d -d 1 |\
     while read line; do\
        echo `basename "$line"`;\
        cd "$line" && git pull; cd -;\

Pandoc table editing in vim

I’ve been itching for a way to get more efficient at creating pandoc tables ever since I started writing my notes in pandoc. Perhaps the only thing I’ve ever been jealous of emacs about is a video I saw using it’s orgtable mode. I haven’t quite adapted vim to work as emacs shows in this video. I’m convinced that it’s possible but also believe that the spreadsheet functionality shown is overkill. I don’t need my tables to do any math anyway; I just need them to be fast and seamless. To accomplish this, I turned to tabular.

I originally got the idea while watching a vimcast on tabular that seemed to be behaving similarly to the emacs video. It uses a gist written by Tim Pope that executes :Tabularize every time you enter a pipe symbol. The code is provided in the show notes of the video, so you can easily copy that to your .vimrc. You can use this create a basic table structure dynamically, which ends up looking something like this:

  | Fruit  | Amount | Price | Total |
  | Apple  | 2      | $2.00 | $4.00 |
  | Banana | 3      | $1.00 | $3.00 |
  | Kiwi   | 5      | $0.50 | $2.50 |

Well, that’s nice and all, but this is not a pandoc table. I wrote a simple (probably imperfect) function to convert this into a standard pandoc table:

  Fruit   Amount  Price  Total
  ------  ------  -----  -----
  Apple   2       $2.00  $4.00
  Banana  3       $1.00  $3.00
  Kiwi    5       $0.50  $2.50

It works by visually selecting the lines and executing :Tabularize one last time in case there is any remaining misalignment.

  vnoremap <leader>t :call <SID>table()<cr>
  function! s:table() range
     exe "'<,'>Tab /<bar>"
     let hsepline= substitute(getline("."),'[^|]','-','g')
     exe "norm! o" .  hsepline
     exe "'<,'>s/-|/ |/g"
     exe "'<,'>s/|-/| /g"
     exe "'<,'>s/^| \\|\\s*|$\\||//g"

There is another type of pandoc table, called a grid table. You can easily convert the markdown table into a grid table using pandoc itself like this:

  command! -range=% Rst :'<,'>!pandoc -f markdown -t rst

Just select the pandoc table and run :Rst to convert it into a grid table like this:

  | Fruit    | Amount   | Price   | Total   |
  | Apple    | 2        | $2.00   | $4.00   |
  | Banana   | 3        | $1.00   | $3.00   |
  | Kiwi     | 5        | $0.50   | $2.50   |

Year One

On Friday I finished my first year of medical school. Contrary to what I think I’m supposed to feel, I don’t have a great sense of accomplishment or an assurance that I’m one step closer to being a doctor. Instead, when I choose to focus on it, I feel more terrified of how much I don’t know and still have to learn. Three days later I was in Houston sitting in the number one cancer hospital in the country and possibly the world listening to prestigious radiation oncologists talk casually about topics and concepts I hadn’t even begun to fathom. Occasionally they would ask me a question about a particular drug and if there were any newer and better ones, to which I just had to shrug and say I hadn’t taken pharmacology yet. My mentor is currently studying for his board exams this Saturday, which was a large nail in the coffin of me deluding myself into thinking someday exams and studying will cease.

I also received some insight into the real world. Being a paperless geek, I have always felt that institutions could find ways to make red tape much more efficient. As I sat in the orientation office signing my name and address on 15 forms instead of just one, I thought how this could have all been done electronically and remotely. Of course there’s the risk of security and identity, but there are plenty of inventive ways to overcome that hurdle. So, feeling infinitely grateful for the opportunity but mildly peeved at the process I made my way to my final checkpoint. The lady assisting me asked for my driver’s license and social security card or passport, so I handed her my driver’s license and e-mailed a color scanned copy of my passport only to find that that wouldn’t work and a physical copy was needed.

I remember packing my things for Houston, looking at my passport to think if I would need it, and deciding that I wouldn’t. Perhaps equally as frustrating was that I found if you go to the Social Security office to get a replacement card the only identification you need is a driver’s license. It was, of course, my fault for not reading the fine print in one of the many things sent to me prior to my orientation. They stated that if I couldn’t get them my passport or Social Security card by Wednesday then my appointment would unfortunately have to be terminated – meaning I wouldn’t be able to get paid this summer. Luckily I have a gracious dad who was willing to rush overnight it to me. Everything is okay now, but it’s just not the way you want to start your first day.

I acquired a bus pass for the metro here so that I can ride to campus. It’s about an hour ride, but I figure it will allow me some time to read and relax. It will certainly save me a ton on gas and parking. Hopefully I’ll be able to get my passport today, ride the bus to the medical center, and finish all of my orientation requirements. After that my only task for about a week is to work on programming the web app our research project requires. I’m excited to have some time to rest, relax, and read my bible. At the end of this semester I let a lot of self maintenance slip. I stopped blogging, reading, exercising, eating right, and pretty much every necessary human practice. Time to get things back on track.

I’m staying with the parents of Stephanie Watson, one of my friends from ACU. Her dad is an elder at my brother’s church, so it works out very well. They have been extremely generous to me. The arrangements are exactly what I needed, they are not asking for rent, and they are even cooking me the occasional dinner. I could not have asked for a better setup than I have, so I praise God for it. I’m looking forward to spending more time with my family here as well. I could not have planned a summer this well. God is obviously in the works here. I cannot believe I’m doing radiation oncology research at MD Anderson, close to my Houston family, getting to see and spend a week with my girlfriend, staying for free with a very gracious family, and getting paid to play with code. I just can’t do it justice with words. I hope to get more active on the blogosphere now that I have more time. Love you all and hope you’re well.

Syntax highlighted cat output

If you want your cat output to be colorized it’s relatively simple. If you already have python and pip installed then you’re in luck, but if you don’t then you’ll need them. Then just use pip install pygments and you can use pygmentize to get syntax highlighted cat output. I’ve set an alias in my rc file as alias pat = 'pygmentize -g' since I think replacing cat systemically could potentially cause some problems. On my system it looks like this: