Wednesday, August 31, 2005

The times, they are a-changin' ...

... when The Onion writes an article like this about Google instead of MS.

Friday, August 19, 2005

You might be socially inept if ...

... you see a flier that offers to help you "debug your other social interactions with other people" and think that that's a good way of characterizing the difficulty you have relating to other people ie that it's a "bug" in your "program". [This is from a flier I just saw on MIT campus]

Whoever put up the flier knows their audience, though --
judging from the number of "contact info" strips ripped off the flier, there seem to be quite a few people interested in this service. Not that you have to be a marketing genius to figure out that a campus populated by technical types is likely to have a fair number of people who need "debugging".

Monday, August 15, 2005

The attractions of wing-nuttery

*Sigh* This little episode of Amazonian insanity when dealing with book reviews [found via Biocurious] reveals my favorite book-buying site to have feet of clay. Or, at the very least, some mentally-challenged review reviewers -- "We ask that you not use [your review] as a place for discourse on the subject matter" ?? I feel like I've just been told that Santa Claus isn't real.

What is it about "Everything you know about scientific theory X is wrong !" books [like the one in question above] that exerts such a fascination on people and leads them to gush about how "thought-provoking" and "ambitious" they are ? One [admittedly uncharitable] explanation that comes to mind is that it's grounded in a sort of "Hah, that'll show those hoity-toity science types who think they have all the answers !" Schadenfreude by people who just couldn't quite get their head around science in school, are still carrying around a chip on their shoulder about it and think that reading and agreeing with a book like this proves that they're smarter than those damn nerds after all. Part of the blurb for the book seems to support that theory: "
The Final Theory shows how one simple principle in nature finally explains all of these mysteries and more. Enjoy reading simple explanations for the most perplexing problems in physics today – without having to be a science scholar." In other words, "read this book so you too can have a strong opinion about something you really know nothing about".

I think it'd be great to be able to take these "debunkers" of science, lock them up somewhere with whatever raw materials they want and tell them "Ok, if you're so #$%$ smart and know how nature operates, why don't you use your superior theories to build a working telephone. Here's our number -- when you call us on your phone, we'll let you out."

Sunday, August 14, 2005

The joy of software architecture diagrams

About halfway through skimming this "Open Letter to Bill Gates and Microsoft"*, right when I hit the "architecture stack" picture, I had a moment of total "Wow, there's an example of something else I don't miss about my old job".

Why ? Because diagrams like that are the kinds of things that make engineering-types like me who just want to write some code run away screaming, with good reason: they make for great marketecture during presentations to upper management, but are really so vague that, in order to turn them into working code, you first have to argue for about a year or two about fun stuff like what the various pieces really "are"/"represent", in some Platonic sense, which group "owns" the "charter" for each piece, how each piece relates to the overall company strategy [Hint: "It doesn't" or "Beats me" is not a good answer] etc. And by the time the arguing parties have reached a state of, if not agreement, at least detente, it's generally moot anyway because the company strategy has changed, or the feature set you were arguing about has been cut from the release [due, partially, due to the fact that nobody could agree on what the feature set was really supposed to be ...].

The process will also be lengthened if you have anybody with an "architect" title involved**, since they will usually attempt to "generalize" the feature set so that any possible functionality the software might need in the future, up to and including self-awareness, can be achieved by simply changing one parameter in an [of course] XML file. Attempts to counter this [usually unnecessary] generalization will be met by long responses that invoke one or more of the sacred cows of computer science [like "abstraction", "loose coupling" etc] but, in the end, win mainly because their proponents just won't stop arguing and everybody else just gives in.

The really sad part ? It's not clear to me that there's a better way of developing large software systems that involve multiple groups, at least not in an environment that doesn't have a "dictator" at the top whose word is law, who knows enough about all the low-level details to be able to make good technical decisions and who makes those decisions quickly. Anything else and you run into the fact that building software is a social process and getting lots of people to move in the same direction is just plain difficult. Like Fred Brooks said, there's no silver bullet.

*This little rant isn't aimed at all at the "Open Letter" piece, which, for all I know [since I didn't really read it], is great. It was just triggered by seeing the architecture stack picture.

**Of course, there are also some great architects that add a huge amount of value to technical discussions and help to get software built more quickly, and with higher quality, but it's not clear to me that they're in the majority.

Thursday, August 11, 2005

Lab switch

I never thought of myself as indecisive, but the last couple of years haven't exactly been stellar for me in terms of consistency -- I seem to have flip-flopped on several important decisions, making one choice, living with it for a while and then changing my choice. Maybe the lesson embedded therein is that very few decisions are really final.

In any case, my latest flip is with respect to labs -- I'm switching out of the Bartel lab and joining Drew Endy's lab to work on some of that crazy, far-out, synthetic biology stuff. That decision is not due to there being anything wrong with the Bartel lab -- I really like Dave Bartel and all the people in the lab. Rather, the switch is
motivated purely by the fact that the Endy lab is a better fit for me in terms of the kind of stuff I most want to work on. So, hey-ho, hey-ho, it's off to design and build synthetic biological systems I go.

Wednesday, August 10, 2005

Expensive biology papers

The NYT has an article on Craig Venter's purchase of a collection of scientific papers dealing with the early history of molecular biology for a few million dollars. The collection apparently includes a bunch of seminal papers from the first few years after the discovery of the famous "double helix", papers that laid the foundation for a lot of what was to come afterwards. The money quote from the article, in my opinion, though is:

"The only change [Venter] plans for the collection is to add his own papers and those of his colleague Hamilton O. Smith."

Hamilton Smith won the Nobel in '78, for work he did in the late 60's and early 70's, so I can see making the argument that his [early] work falls into the period covered by the collection, and that he's in the same class as the other folks in the collection. With Venter, I'd say the jury is still out a bit. He's certainly achieved a lot, but it's not clear to me how much of it is due to his personal prowess as a scientist versus having interesting ideas, the confidence to try them and the ability to assemble a set of people around him who are able to pull it off -- it's kind of like the difference between being a great frontline fighting man and being a great general [not that these two options are mutually exclusive].

In any case, one more instance of Venter being Venter.

Monday, August 08, 2005

Challenges of bio software

A set of conversations I've had recently with the people doing computational work in my lab have set me thinking about the fact that, with the increasing use and creation of software by biologists, they're increasingly going to have to face [at least] two issues that accompany software: maintainability and correctness.

The "maintainability" issue takes many forms -- can anybody other than the person who wrote the code understand it without spending weeks trying to puzzle it out [before giving up in frustration and writing his/her own version] ? Should there be minimal standards with respect to things like amount of comments, variable names, function descriptions etc ? As the grizzled veteran of many "coding standards" religious wars [eg Hungarian notation or not ? K&R style ? Tabs or spaces ? ... the list goes on], I'm well aware of how difficult it is to get people to agree on, and stick to, such standards even in a company whose main output is software. Given that, I expect the task of trying to get [non-CS] grad students, those wild, rebellious and free spirits ;-), to follow a strict coding standard to be roughly akin in difficulty to trying to get 10 cats into a filled bathtub -- somebody's gonna get hurt.

Correctness is an even tougher nut to crack. Beyond the obvious "software is hard", a couple of other field-specific reasons come to mind:

- When examining conclusions drawn from experimental work, biologists are trained to ask "What's the control experiment ?" ie what's the experiment that shows that the data that's being shown is a result of the effect being tested, and not due to a different cause than the one being claimed. From what I've seen, though, results based on computational work tend not to be as thoroughly dissected -- half the audience tunes out during the section of a paper where the authors start talking about p-values, cross-validation via data shuffling, the differential equations behind the model etc. Maybe that will change as the next generation of biologists gets more computational training.

- In many labs, the grad student or post-doc is, the person entrusted with both the responsibility of writing the code and making sure it's correct. However, very few people have the discipline to really test their own code thoroughly, an issue the software industry has long grappled with, and will continue to grapple with, recent methodologies like Test-Driven Development notwithstanding; some [many ?] software companies even have teams that are dedicated to doing nothing except trying to break code written by other people. And yet commercial software isn't exactly bug-free; so, even assuming that most bio grad students aren't writing horribly complex programs, chances are pretty good that there are lots of bugs lurking in their code that will never be found.

The obvious responses are "Ok, so what if the software isn't totally right and has a few bugs in it ? It's not like we're trying to write production-quality software" and "Biologists have enough subject-specific knowledge that they can spot anomalous results produced by the software". That's true when you're talking about egregious errors, like, say, a simulation that predicts that your little bacterial cell will grow to the size of an elephant and be able to digest a car, in which case you may want to check your boundary conditions.

Where the argument falls down is when you're dealing with trying to extract information [that you don't know in advance] from a big pile of noisy data -- beyond isolated spot checks, how do you know that your code is actually doing the right thing all the time without doing some fairly elaborate testing ? If your code is indeed doing something wrong, but only some of the time, you might end up missing something significant, so it's not a problem you can just ignore. Or, rather, it's not a problem you should ignore, yet I suspect that's what happens most of the time [in academia, at least].

I don't have any solutions to the problem of correctness [other than encouraging people to test their code thoroughly =)], but I suspect that computational biologists could probably learn something from how the high-energy physics and astronomy communities, both of whom also generate lots of data that they then have to filter, deal with this.

Wednesday, August 03, 2005

The sounds of city living

Living in the city, especially in an apartment building mostly populated by people barely out of college, means your auditory environment isn't entirely under your control, and sometimes rather annoying -- loud music, loud people in the stairway at 3 am etc. That's just part-and-parcel of life, though, and generally we just roll with it without getting too upset. Last night, however, set a new record.

It started off with loud music coming from the first floor of our apartment building at 11:30 pm last night, of the BET "Midnight Love" genre -- lots of crooning, vows to forever be faithful, give up the rims, bling, money and life of a playa for the love of a good woman etc. After a few minutes of hoping this was just a temporary spike, we yelled "turn it down" out the window a couple of times, to no avail. Since we were already in bed, I didn't really feel like getting dressed again and I resigned myself to cultivating my Zen mastery by trying to ignore the music and fall asleep.

That plan, however, was quickly discarded when some retards started letting off fireworks on the roof of our building. After lying in bed building up a head of indignant steam for a couple of minutes, I got dressed and charged up to the roof, with visions of finally being able to utter the words "Are you out of your $#@#$^%& mind ?" without remorse. Unfortunately, 'twas not to be -- there was a bit of a party going on up there and I figured storming into that kind of a gathering bellowing abuse was probably not the wisest choice. So, instead I walked up to the people, glared at them and had a brief and to the point exchange with one of them [possibly the hostess ?]:

Me [
in my best frosty-and-pissed-off tone]: "Are you done with the fireworks ?"
Her: "Do you want us to be ?"
Me: "Yes" [other replies like "No, actually I think fireworks at midnight when I'm trying to sleep are great ... of course I want you to be done, you Nimrod" also occurred to me]
Her: "Oh, ok ..."

... and that was the end of the fireworks. Since I was up and dressed already anyway, my momentum carried me downstairs to the apartment from which the loud music was coming. After banging on the door for a while, one of the tenants finally opened the door, was quite apologetic about the music and told her roomate [whose door was closed] to turn it down.

Back upstairs, we got back into bed and heaved a sigh of relief at finally having a reasonably quiet environment. Our celebration was short-lived, however: it turned out that the reason there was loud "Midnight Love"-style music playing was to cover up the actual midnight lovin' that was going on [quite enthusiastically]. I briefly considered going back downstairs and asking for the volume to be turned back up again, but thought that might be a bit much ;-)

Thankfully, this particular bit of noise ... subsided, shall we say, reasonably quickly so we were able to get to sleep. However, I'll have to think hard about asking for quieter music from that particular apartment again ...

mad phat science rhymes, dawg

Well, GW went and did it again and made teachers and geophysicists [among others] pretty upset. Maybe he should listen to what Steven MC Hawking, the gangsta rap astrophysicist, has to say: What We Need More Of Is Science. [MC Hawking also has some comments on the creationist debate in his songs "Entropy" and "F*ck the Creationists" (scroll down to find the link to the lyrics)].

And, while we're on the subject of combining rap and science, any computer science types reading this may want to check out "So Much Drama in the PhD" [listen to the MP3 file to get the full effect].