Showing posts with label passing it along. Show all posts
Showing posts with label passing it along. Show all posts

Friday, March 13, 2015

Becoming acquainted

I forgot my bike on the bus today. It felt good.

Not because I had left a (mostly just) sentimental transportation device on a public vehicle that would have been a hassle to recover, but because, as I was walking away empty-handed, the bus driver honked the horn and patiently waited for me to realize my error. This was the same bus driver I had chatted with my entire ride about South-By, traffic, the 30 route, and how more people should take public transportation... This was also the same driver who, when I got on the bus, greeted me with a welcoming smile and a reference to the conversation we'd had yesterday.

I love taking the bus. I feel proud to say that I haven't driven once to school this entire semester, and even though the experience isn't always the most pleasant (sometimes it might smell like an armpit and sometimes your bus might be 20 minutes late...and sometimes both of those things happen in the same day), I feel like I'm contributing to a better environment.

But what I really liked about my experience today was that it had become routine enough that the driver recognized me. I haven't had a lot of experiences like that, and I don't really know why. (It might be that growing up not drinking hot or alcoholic beverages prevented my establishing a favorite coffeshop or bar, or it might be that being a poor college student who didn't want to take out student loans precluded my frequenting of restaurants, but it just as likely could be something else.) Lately, though, I've been looking for some sort of consistency. I've been looking for a diner where I can walk in, say "the usual" and they'll know exactly what I mean. I've been looking for a barbershop where I can say, "same as last time," and they won't bat an eye.

So it was nice today when the bus driver remembered my face, remembered my stop, and even nicer that he noticed I had forgotten my bike.


A time-lapse video taken from the car (loser) in the official Austin Rush-Hour Race–another reason to take public transportation.

Tuesday, March 10, 2015

It builds character

I was talking with some friends the other night about absolutely terrible experiences that were incredibly profound, but were also terribly painful to go through. I've thought about it some more, and have come up with:

The 9 life experiences I believe everyone should have*,**
  1. overcoming an addiction (and I don't mean something mamby-pamby like a mild fascination with sugar or caffeine or an "addiction to cracking knuckles"; I'm talking a serious, chemically-induced, behaviorally-modifying, possibly-health-or-even-life-threatening one you fight with for several years)
  2. coming out of the closet (and this doesn't just include gender or sexual orientation (and could, perhaps, be even more) but any experience that requires you to drastically change the expectations of many–if not all–of your closest associates)
  3. a ritualistic burning of the boats
  4. a seriously traumatic experience
  5. mental therapy and/or counseling in any of its varieties 
  6. being heartbroken
  7. wanting something so badly it hurts, and then realizing–all in a short period of time–that you'll never actually have it
  8. being picked last in gym class
  9. realizing you're so strapped for cash at the end of the month that you can either fill up your gas tank or eat dinner, but not both

* but couldn't really consider myself a decent human being if I wished them on my friends
** somewhat in order of significance

Saturday, November 15, 2014

Bad Feminism

I am a bad feminist.

The other day, a friend asked me if I was a feminist and I hemmed and hawed and qualified and... I finally had to admit that, even if I had some pro-female qualities, I really couldn't label myself as a feminist.

And then within only a few short days, I was called out on several occasions for saying or thinking things that really were counter to the feminist movement. I like to think of myself as more of an egalitarian, somewhat progressive and forward-thinking, typically politically correct, culturally aware, etc, etc, etc. I also am fairly aware that I have a ton of middle-class-white-educated-male-I'msurethere'salotmore privilege, and I do a fairly decent job of recognizing when someone says something fundamentally ignorant or racist. But twice? In two days? Being corrected for very male-centered thinking?

This morning while I was playing basketball, I found myself wondering how certain darker-skinned guys (how do I say this without being racist?) had a very similar cadence/accent to their speech. Is it just because they were raised that way? Because they've been around it from a young age? Is it a conscious choice or something that just happens? And then on the way home, the Ted Radio Hour addressed just this issue. An African woman talked about how she had control of three "languages": her native African dialect, the African-American dialect she was raised on, and her "articulate" American dialect she's developed so people think she's "qualified." The program further went on to describe how even Prime Minister Tony Blair (definitely not American) was considered "more American" than Barak Obama.

And then Paul Bloom went on to say something that really stuck with me:
You can't change implicit biases by just sitting in your room and concentrating, saying, "I'm not going to be racist, I'm not going to be racist." But what you can do is, you can actively expose yourself to real-world instances which give you maybe a more accurate and more fair representation of these groups.

Maybe I am a bad feminist. And I probably have a lot of hidden biases that will come up with terrible timing. And I certainly hope I'll be corrected in the future for my self-centered thinking. But instead of being sorry for this reproof, I should welcome it as real-world instances that give me a glimpse into another group.


So I'm going to stick with Roxanne Gay on this one, and proudly proclaim that I, too, am a bad feminist—and that's not a bad thing.

Friday, March 21, 2014

A Grief Observed

I've recently gone through one of the hardest experiences of my life.

During the month of December, I made a new friend (a girl who worked at the University) and enjoyed the brief time I was able to spend with her. The getting-to-know-you phase was cut somewhat short by the holidays (I went home for a few weeks), but we still kept in contact. On December 30th, I flew back into town to plan a New Year's Eve party, and picked her up to help buy decorations. About 5 minutes after I had picked her up, I made the turn into my apartment—the same left-handed turn I'd made hundreds of times in a year and a half of living there—and was broadsided by an oncoming car. I was knocked unconscious so there's a good chunk of my memory that's rather blurry (and I remember none of the incident or the supposed other car), but after a few CAT scans and other procedures, I was released, completely fine.

She never made it out of her coma.


The ten days between when the accident happened and when she finally passed were some of the hardest days of my life: wrestling with God, with my emotions, trying to accept what happened. And the days and weeks that have followed have not been any easier. Since that time, I've gone through a complete gamut of emotions: intense guilt followed by sweet peace; sadness and fear that things will never be the same, followed by an optimistic hope and a knowledge that they would...followed by the confused, gradual, heavy settling that she was permanently gone and I was powerless to do anything about it; concern that I had forgotten her and moved on too quickly followed by intense, violent sobbing...

I've also learned a lot about comfort in grief. I've learned that the worst (and yet most common) thing one can ask is "How are you doing?" (Are they using the phrase in its trite, meaningless greeting sense, or do they know what happened—and are they prepared for the floodgates that might be opened in response?)

But most of all, I struggle with the "What can I do for you?" question—which is traditionally followed by "No really, what can I do for you?" and almost always wrapped up with "Well remember that if you need anything, I'm just a phone call away." As if repetition and emphasis makes up for the burden they've just (knowingly or otherwise) placed on my already-weary shoulders, the burden of making them—the non-grieving, nonetheless—feel better by offering them control in a situation that for me has been spinning violently out of control for days and weeks and now months... I've since quit telling them, "Well for starters, you can never ask me that ever again," and have instead opted to just smile and thank them for their concern. Sometimes, the simple repeated song is all that humans or birds know how to sing.


In stark contrast, the most meaningful expressions since that day have been in the form of gifts. Gifts I neither asked for nor expected, but sent me to tears nonetheless—tears of appreciation and gratitude and friendship and love. One such gift was the remote to our apartment complex gate, so I could take the back entrance instead of revisiting that same left-hand turn day after day, driving over the fluorescent-green painted lines in the street that shouted to all passers-by "something terrible happened here."

The other gift that meant the world to me was a pair of pants. Someone should have told me when I got on the plane that cold December morning to put on a pair of ragged jeans and a sweatshirt I didn't care about. When they pull you from your totalled vehicle, they don't ask you nicely to lift up your arms as they gently take off your jacket. They don't even spend the time to unbutton your shirt or unzip your pants. Instead, they take scissors (or a knife or bolt cutters or a blow torch or whatever they have handy, I guess) to the lot of it, giving it back to you in a hospital carryout bag like a prize from Dave & Busters. No, they really should have told me not to wear my favorite outfit, to keep my faux leather jacket I still haven't replaced safely hung in the closet, to keep my brand new pair of Bonobos safely unpacked, and to save my favorite flannel shirt for a different chilly Texas day. So when the pants came in the mail (from one of my very best of friends who, despite her attempts at remaining anonymous, left her billing address on the packing slip), I was once again reduced to tears. But this time, they were welcome tears, appreciative tears, and--most important--tears I could experience on my own, in the comfort and privacy of my own car, and at the rate I wanted or did not want.


Maybe this is the way all grief is: the disgust with trivial "checkins," the appreciation of gifts. Or maybe I'm different. In conclusion? Save your favorite outfit for a day when you'll decidedly maintain a comfortable distance from ambulances and paramedics with blow torches. And buy a friend a pair of blue jeans.


Tuesday, September 24, 2013

Back it up

My hard drive just crashed, completely unexpectedly. I have a high-end MacBook Pro that I only bought in 2011, so it was well under the typical 5-year life of most spinning drives. I learned two lessons from this experience:
  1. Get the Apple Care. If you're buying Apple, it's one of the best add-on purchases you'll make. It gives you three years of protection (most companies only give you two), and it's only a fraction of the cost of your entire machine. The amount you spend will definitely be justified by your peace of mind. Apple replaced everything for free--and did it all over the weekend (I went in on Saturday and was out by Monday. The lag was because I had customized hardware). Very fast and efficient.
  2. Back up your devices. While waiting in line to pick up my laptop, I stood behind an older gentleman who was obviously distraught after losing data on his phone--probably in the form of non-replaceable pictures of his grandkids. Unfortunately, there isn't much you can do after the fact, so prevention is the only way to go. Get a large external drive, something like the 3 TB Seagate drive I have (on sale, it's just over $100--definitely worth the hours of time you'd spend rewriting all your papers). If it's this big, you can also use it to store any pictures and music and movies that don't fit on your machine. Make sure you set it up to remind you to back it up every 10 days or so, or you'll forget and will have wasted the $100.
Do it. You won't regret it.

And to help you remember, I've included this wonderful song: 

Friday, May 11, 2012

We Real Cool

I love this poem by Gwendyln Brooks.  In fact, it is one of the few things I still remember from the 8th grade. Enjoy.
The Pool Players. Seven at the Golden Shovel. 
We real cool. We
Left school. We
 
Lurk late. We
Strike straight. We
 
Sing sin. We
Thin gin. We
 
Jazz June. We
Die soon.
Oh.  And check it out.  Gwendyln herself telling the story!

Wednesday, February 29, 2012

IEEE Journal Publication

If you're like me, it's relatively late at night and you're trying to submit a camera-ready paper for a conference.  You've used LaTeX so it fits the formatting requirements exactly.  Or so you thought.  Upon trying to jump through the PDFExpress hoops, you get the dreaded:

✘ Error   Font ZapfDingbats is not embedded (40x) 
Exasperated, you search the Internet and find a "brilliant" solution.  It's a couple of steps long, and it seems like it does the trick.  You plug along, resubmit the file, and sure enough, there are no embedded font issues.  But this time, it says some mumbo-jumbo about the file being too large.  Right about now, you start pulling your hair out (it took 90 minutes just to conform to IEEE standards, another 2 hours to find the "brilliant" solution, and it's now 15 minutes past the due date for the conference submission).  Another hour of searching, another step closer to the solution:  Look in Adobe under the "File Properties" menu, under "Fonts" to see if all the fonts are embedded.  Nope.  They aren't there.  There's an interesting article here about changing some of TeXShop's internal commands to try and rectify the situation.  But that doesn't do the trick in your case.

So here's the answer, and you can put your hair back in.

Sometimes, when including external figures/tables/whatever, the figure-producing program doesn't embed the fonts, which are then not embedded in the final PDF.  In my case, I use R to create figures, and the captions or something must be causing some severe issues.  Sure enough, looking at these PDF files individually with Adobe confirms my suspicion.  After a little more digging (thanks A Blog for your genius), I found that you can imbed the fonts using a dirty hack involving changing the file to an eps file and then back to pdf.  This doesn't change the picture quality, but does embeds the fonts.  Here's the code from the website, changed a little bit for Mac commands (I just changed pdftops to pdf2ps):
#!/bin/bash
export GS_OPTIONS='-dEmbedAllFonts=true -dPDFSETTINGS=/printer' cp $1 $1.old pdf2ps $1 tmp.ps ps2eps tmp.ps
epstopdf tmp.eps
mv tmp.pdf $1 rm tmp.ps tmp.eps
Run this program on all your external PDF files (it won't increase the file size significantly—in fact, in my case it decreased the file size), and then re-typeset with your favorite pdflatex editor.  And voila, you run the file through the PDFExpress PDF checker and you get:
Status*: PDF Passed PDF Check; PDF is IEEE Xplore-compatible
That's music to my ears.

Wednesday, November 3, 2010

...passing it along...

Every once in a while, you'll run across a serious problem (like downloading several thousand bacterial genomes from NCBI) and think to yourself, "There has got to be an easier way than doing this all by hand."  As you try and figure out a snippet of code to piece it together, you think to yourself, "This can't be that obscure of a problem.  I'm positive someone else has done this before."  And then, with a few clicks of the mouse, you find it.  Such was the case today.  Much thanks to Peter Cock (?) at http://www2.warwick.ac.uk/fac/sci/moac/students/peter_cock/python/ftp/ for publishing the code.

So, if any of you are trying to figure out how to download all 10k+ Bacterial genomes (or anything in batch) and are working on a remote UNIX system, here's how to do it:

Step 1:
Download ftputil from http://ftputil.sschwarzer.net/trac
If you're unfamiliar with Python (as I am), here's how to install it:
tar -xzf ftputil-*.tar.gz
cd ftputil-*
./setup.py install --root ~ # This will install it in ~/usr/lib if you don't have install permissions for /usr/lib)

Step 2:
Create a file called get_gens.py (or whatever you want), and put this in it (I've changed the original code to download all the .fna files. It's easy to change to download something different.)

#! /usr/bin/python

# append the library where ftputil is located
import sys
sys.path.append("~/usr/lib/python2.4/site-packages/")

import ftputil
import string
import os

#Where to put the genomes (script will create sub directories
#using the same names as the NCBI use).  This directory must
#exist already:
base_path="~/genomes/Bacteria/"

host = ftputil.FTPHost('ftp.ncbi.nlm.nih.gov', 'anonymous', 'password')
host.chdir('/genomes/Bacteria/')

dir_list = host.listdir(host.curdir)
for dir_name in dir_list :
    host.chdir('/genomes/Bacteria/')
    if host.path.isdir(dir_name):
        print dir_name
        host.chdir('/genomes/Bacteria/' + dir_name + '/')
        file_list = host.listdir(host.curdir)
        for file_name in file_list :
            #if file_name[-4:]==".gbk" :
            if file_name[-4:]==".fna" :
                print "File " + file_name
                if not os.path.isdir(os.path.join(base_path,dir_name)) :
                    print "Making directory " + os.path.join(base_path,dir_name)
                    os.chdir(base_path)
                    os.mkdir(os.path.join(base_path,dir_name))
                if os.path.isfile(os.path.join(base_path,dir_name,file_name)) :
                    print "Skiping file " \
                          + os.path.join(base_path,dir_name,file_name)
                elif host.path.isfile(file_name) :
                    print "Downloading file " \
                          + os.path.join(base_path,dir_name,file_name)
                    host.download(file_name, \
                          os.path.join(base_path,dir_name,file_name), 't')
                    #Download arguments: remote filename, local filename, mode
                else :
                    print "ERROR - Not a file " + dir_name + "/" + file_name