Archive for March, 2004

Tuesday, March 30th, 2004
» Embrace Change
Extreme Programming Explained: Embrace Change

“Extreme” programming (XP) is a relatively new software development methodology which aims to allow small teams to produce higher quality software in less time, with less stress. The only thing that possibly exceeds the fervor of its adherents is the scorn heaped upon it by skeptics. _Extreme Programming Explained: Embrace Change_ is “the XP manifesto”, which lays out the basic tenets of the XP idea, discusses the philosophy behind the principles, and delves into actually implementing XP in a programming team. I found the book to be a quick read, and I’m sure if you’re about to start working with an XP team (in either a developer or a customer role), it would be a good place to start familiarizing yourself with the theory and practice of Extreme Programming.

The first third of the book lays out the principles and the theory behind Extreme Programming, and reflects on how the realities of current software development don’t match up with classic development methodology that well anymore (if they ever did). By the end of this section, if you’ve been involved with any sort of structured software development, you’ll be nodding your head in agreement and/or cringing from the painful memories of past failed projects.

The middle third of the book starts out with a high-level overview of the mechanics of the XP process, and then quickly gets into the nitty-gritty of carrying out the distinct steps: The Planning Game, small releases, pair programming, collective ownership, refactoring, testing, and all the rest. Even if you don’t go for full-bore XP practices, there should be something in this section that will make you re-think some of your practices.

The final third of the book deals with practical considerations of implementing the XP methodology for software development, including when you shouldn’t try to use XP. This section, with recountings of commonly encountered problems, and descriptions of the different roles often filled by XP programmers, will be the most valuable for someone trying to actually turn theory into practice.

Overall, I found the book to be a quick, interesting read, and it was fun to consider how some things at my workplace would happen differently if some XP practices were to be adopted.

Wednesday, March 24th, 2004
» this thought…

…is brought to you by sleep deprivation and the Ataris doing “Boys of Summer”: I’d pay some damn good money for a compilation of emo bands covering 10 from 6.

Yeah, it scares me too.

Monday, March 22nd, 2004
» pornzilla 2.0

A couple of months ago, I pointed at Pornzilla, a project to turn Mozilla into the ultimate porn browser. One of the authors dropped me a line a while back and pointed out Pornzilla 2.0, which ports the project to the Firefox engine, among many other changes.

Tuesday, March 16th, 2004
» vanity

I just noticed that this site is the ninth Google hit for “John Anderson” — not bad when you consider the commonness of the name and the (at least) two famous people that share it.

/me looks up from his navel and gets back to work.

» grand theft florida

Nice Flash animation about vote theft in the state of ConfusionFlorida. (Warning: makes noise. Potentially cube environment unfriendly.)

» for the locals

Laurence Lessig is going to be signing books in DC next week. Not sure if I’m going to be able to make it; if anybody is going, drop a line and maybe we can meet up.

» book review
oreilly book page

“Bioinformatics” is the new sexy term for what used to be called simply “computational biology”. Simply put, it involves pretty much any application of computation techniques to biological problems. The reason for the new nomenclature and the greatly increased interest in the topic is, like much in modern biology, a more-or-less direct consequence of the many genome sequencing projects of the last decade.

The consensus in the field seems to be that it’s more productive (and certainly easier) to teach biologists how to program, rather than try to get programmers up to speed on the intracities of molecular biology. For similar reasons, Perl is a popular language to learn: it’s easy to get off the ground and be productive with it, without requiring a heavy computer science background. (This, of course, has downsides as well…)

Never one to miss out on a trend, I’m going to be teaching a course on Bioperl and advanced Perl programming, starting next fall, which means I’m doing a lot of reading in this topic area, trying to develop lectures and find good background reading material. One of the first books I grabbed was _Beginning Perl for Bioinformatics_, which has been sitting on my “to read” shelf since O’Reilly sent me a review copy in December of 2001. It’s a typical O’Reilly “animal” book (the cover bears three tadpoles), which does a decent job of introducing the basic features of the Perl language, and it should enable a dedicated student to get to the point where she can produce small useful programs. However, I’m not completely happy about the book’s organization, and I think the occasional “if you’re not a biologist, here’s some background” interjections could have been cut without hurting anything.

The initial chapters in the book cover “meta” information, such as theoretical limits to computation, installing (or finding) the Perl interpreter on your computer, picking a text editor, and locating on-line documentation. Some general programming theory stuff is covered as well — the code-run-debug cycle, top-down versus bottom-up design, the use of pseudocode. There’s also some biology background, but it’s very introductory level stuff — DNA has four bases, proteins are made of 20 amino acids, and so on.

In chapter four, the book begins to get into actual Perl, with some coverage of string manipulation. Examples deal with simulating the transcription of DNA into RNA. Chapters five and six continue to flesh out the language, covering loops, basic file I/O, and subroutines. Chapter seven introduces the rand() function, in the context of simulating mutations in DNA. Subsequent chapters introduce the hash data type (using a RNA->protein translation simulation), regular expressions (as a way to store the recognition patterns of restriction endonucleases), and parsing database flat files and BLAST program output.

I’m clearly out of the target audience of the book, as I already have a strong working knowledge of Perl. Perhaps that’s why I found the order that concepts were presented in to be a bit strange — for example, hashes, which are a fundamental data type, aren’t introduced until halfway through the book, and regular expressions (one of the key features of Perl) first appear even later. As I said above, I also found the biological background sections to be more distracting than anything, but I’ve also got a strong biology background, so perhaps I’m off base here too. That said, I think a person with a CS background would be better served with a copy of _Learning Perl_ and an introductory molecular biology text than with this particular book.

One of the things I did enjoy about the book were the frequent coding examples, all of which presented realistic computational biology sorts of problems and then demonstrated how to solve them. I’m sure that when I get around to writing lectures, I’ll be leafing through this book looking for problems I can use in class.

Overall, recommended for biologists without programming experience who would like to get started using Perl for simple programming. Not recommended for people with computer science backgrounds looking to get into bioinformatics.

Sunday, March 14th, 2004
» from the "uh, i’m a *biologist*, man" dep’t.

The Selective Service is drawing up a special plan to draft IT professionals. My initial thought on hearing this was “boy howdy, good show that I’m over 25 and not eligible for the draft anymore”, but then I read the article and saw this bit:

The agency already has a special system to register and draft health care personnel ages 20 to 44 in more than 60 specialties if necessary in a crisis. According to Flahavan [spokesman for the Selective Service System], the agency will expand this system to be able to rapidly register and draft computer specialists and linguists, should the need ever arise.

Yet another thing to consider as November approaches: which presidential candidate would be mostly likely to reinstate the draft and/or activate this special provision?

» yet more class stuff

Prompted by Dan’s post about planner.el, I’ve started playing around with some local wiki stuff, which is (hopefully) going to morph into a data store for the Bioperl class. Until then, I’ll keep sticking stuff up here…

  • Mike Gunderloy’s new book Coder To Developer looks like it could be of interest, but has a pretty heavy Windows focus, judging from the ToC
  • Intro to GNU screen. screen is one of those “how did I live without this?” programs that everybody that works in a Unix-like environment should know about. (Yes, you too, Mac heads.)
  • What do you get when you stick the various Perl IO modules in a blender with the “DWIM” dial turned up to 11? IO::All, one of those “damn, if this was installed by default and I remembered it, it would make my life so much easier” sorts of things.
Monday, March 8th, 2004
» free music

Ever since eMusic decided to change their terms of service to terms of suck, I’ve been without a good source of free and legal MP3s. Consequently, I’m pretty excited to come across Fingertips, a site featuring links to various downloadable MP3 files. They even have a “new this week” page, which is going right into the Dose database.

(Meta: That “new this week” page is the closest thing to an actual as-the-word-was-originally-meant weblog that I’ve seen in many a day…)