StackExchange is so nice, I don't even mind spelling its name with CamelCaps. It has specialized niches like Reddit, an expert community like Quora has in its better moments, and a genuinely effective user-moderated reply system. The best part is finding new subforums: I just found one for German language questions and one for sound design. Whenever I find forums like these on Reddit, they're usually ghost towns or full of users with far more questions than answers.
I found some new tools for protein interaction alignment today. My PI forwarded me this paper:

Clark, C. & Kalita, J. A Comparison of Algorithms for the Pairwise Alignment of Biological Networks. Bioinformatics btu307- (2014). doi:10.1093/bioinformatics/btu307

Clark and Kalita seem to really like NATALIE, a tool which ignores parts of the network which don't appear to align well (Lagrangian relaxation!). It's part of the LiSA software collection and looks like it was last updated in 2012. I'll have to see how easy it is to implement - some of these kinds of tools may work really well but are just painful to get working, especially if their documentation is sparse.
Here's a quick Excel trick for averaging duplicate values. It's the kind of simple command that I probably should have learned years ago, but it's only been available since Excel 2007 so at least there's that excuse.

Anyway, it's the AVERAGEIF function, used as follows:
=AVERAGEIF(the column with the duplicate values, a single value to get the corresponding average for, the column with the values to be averaged)
formatted so the first and last columns are static, like this:
=AVERAGEIF($A$1:$A:$1234,A1,$B$1:$B$1234)

I'm certain that something very similar can be done in a shell script based around uniq.

I’ve been taking a personal development class for the past few months (GRAD611 at Virginia Commonwealth University, part of the nascent BEST program). The class had some broad objectives: to “develop leadership and professional development opportunities for professional, graduate and post-doctoral students that will enable them to thrive in today's professional environment and empower them to make meaningful contributions to society as they realize their potential as future leaders” and to “build a network of internal and external partnerships and identify resources to support and guide leadership and professional development initiatives for professional, graduate and post-doctoral students”. Those are the course goals as they’re written on the syllabus. They’re very ambitious. When the course started a few months ago, I was very skeptical as to whether I’d gain anything from it. I tend to take most personal development strategies with a sizable grain of salt. Too often, these concepts are rife with one-size-fits-all solutions and silver-bullet problem solving strategies.
In the end, I was pleasantly surprised! I suspect that it will be difficult to tell if any new opportunities are now available to me until I can apply what I’ve learned. The second goal listed above is even trickier to address. Have I been able to access a new network of “internal and external partnerships”? Will I know when I see such opportunities in the future?
More importantly, what have I learned about myself? Let’s list a few changes:
  •          I’ve noticed lately that I’m much more tolerant of how people portray themselves. I used to find it irritating that any individual would be so myopic as to define themselves in terms of an occupation or an interest. Everyone has a multifaceted personality – no exceptions. The trouble arises from trying to communicate that diverse set of personality traits to others. I can’t just introduce myself to someone and expect them to understand who I am, nor can I try to describe every aspect of my identity to them in a brief meeting. These things require time and solid relationships. It also isn’t fair for me to find others short-sighted when they try to put their identity on display. They’re human, they’re complex, and they have their own sets of strengths. These traits may be immediately obvious or they may require communication.

  •          I’m not sure if I’ve identified my authentic purpose. I’m not sure if “authentic purpose” is an authentic concept. It was frequently addressed on the periphery of the class materials but rarely discussed directly. It sounds questionable to me because I don’t believe in a discrete, guiding force. Everything happens for numerous reasons but these reasons may not conspire to guide me toward a purpose. They are natural forces as much as gravity is. That force doesn’t press me to the ground because it wants me to study geology. It has that effect because I’m conveniently made out of matter. That being said, perhaps “authentic purpose” is less of a force in itself and more of a general description of how I react to forces. I have many options in life but some options do feel more “authentic” than others.

  •         I’ve become more accepting of the strengths of others. It’s easy to dismiss ideas when they don’t fit into your perspective and it’s easy to dismiss others when they don’t approach problems the same way you do. I tend to approach the world in a broad but systematic way. There’s so much interesting material out there for me to absorb, but I also need to make logical sense of it all. That’s less of a priority for some people. They may be more focused on winning people over or placing information in historic context. I like to do those things as well but they’re certainly not my first impulses.

  •          I’ve also become more accepting of my own strengths. It’s quite easy to lose sight of personal strengths when there’s so much to lose from having weaknesses. Spending so much time in science and academia may contribute to that phenomenon: I tend to spend a lot of time each day worrying about what could go wrong with my plans (or, even worse, if anything has already gone wrong but I haven’t noticed). It’s a habit that extends to my own self-conception. Over the last few months, I’ve been increasingly able to see my own shortcomings as lesser strengths and my more obvious strengths as foundations to build upon.

  •          I’ve been attempting to use more filters when it comes to gathering sources of input. It’s quite difficult for me to separate signal from noise when I’m searching for interesting information, whether it’s research or just the daily news. The problem really comes down to how I tend to find everything interesting: even when the metaphorical signal-to-noise ratio isn’t so great, I can still get lost in the noise. Reducing the amount of input I attempt to tackle at any one point has helped with that issue.


There are changes that I’ll continue to work on:

  •          I'll try to meditate more regularly, though I don't think I'll set any numerical goal on the number of times to do so. I just know that I get more done when I'm aware of my own happiness. Being productive adds to the contentedness and completes the cycle. It’s not even a matter of sitting in once place for a while and focusing on one thing. I’m glad just to notice a momentary, beautiful detail in the world around me.

  •          I’ll think more critically about what I consider failure. In a world without failure, I would become very confused and suspicious as to why I wasn’t failing at anything. Failure is a natural part of life and an educational one. Much of what people refer to as failure may just be evidence of authentic challenge.



The GRAD611 course was genuinely one of the more unusual yet useful courses I’ve taken during my graduate career. It’s provided me with a wealth of material to think about. I've listed some fairly abstract observations, but the lessons about time management and conflict resolution have already proved valuable as well. I’ll have to see what kind of lasting effect all this material may have in six months or a year from now.

"...every one of them is slowly going mad."

I found this blog entry about how much programming sucks though Lifehacker today. If you were to ask me what the top problem with programming is, I'd say something to the effect of "programs are written for computers rather than for people" or "code is like a hammer you have to read" and so on. (You didn't ask me about programming but I'm going to tell you anyway.) I'd suspect that most of what makes code "bad" comes down to the inherent differences between computers and human beings. Humans tend to freak out without context while computers don't need reasons to get things done. Humans see value in hard work, so they'll hammer away at the same problem for weeks or years; a computer will do the same but we don't see any value in its long-term labor unless there really isn't a faster way to do it.

So, I think I interpreted the blog post differently than Lifehacker did. Their idea was "The good news, if you're learning to code, is you don't have to worry (too much) if your code is bad." The impression I get is that you just can't write good code unless you're also doing good writing. That means you're simultaneously writing for an audience with perfect comprehension and no consciousness (computers, that is) and for human beings with plenty of consciousness but far from perfect comprehension. That doesn't sound fun at all. The solution most programmers use is to not even bother.

A few choice quotes from the post echo these sentiments:

Not a single living person knows how everything in your five-year-old MacBook actually works. Why do we tell you to turn it off and on again? Because we don't have the slightest clue what's wrong with it, and it's really easy to induce coma in computers and have their built-in team of automatic doctors try to figure it out for us. The only reason coders' computers work better than non-coders' computers is coders know computers are schizophrenic little children with auto-immune diseases and we don't beat them when they're bad.

The human brain isn't particularly good at basic logic and now there's a whole career in doing nothing but really, really complex logic. Vast chains of abstract conditions and requirements have to be picked through to discover things like missing commas. Doing this all day leaves you in a state of mild aphasia as you look at people's faces while they're speaking and you don't know they've finished because there's no semicolon. You immerse yourself in a world of total meaninglessness where all that matters is a little series of numbers went into a giant labyrinth of symbols and a different series of numbers or a picture of a kitten came out the other end.

It's a good post. It's very cathartic.