Coding Bits

So I’m here at GHC again.

I heard an amazing keynote from Dr. Fei-Fei Li. She mentioned the Hubel and Wiesel Cat Experiment.

I’d never heard of this experiment before, but was pretty amazed.

Maybe it’s because I took a ML class recently but hearing the neurons fire from the straight line was incredible. It’s totally what the lower level neurons perceive in an artificial multi-layered neural network for image processing!

So exciting!


Go has some interesting quirks.

Recently I learned you can iterate over nil slices.

Here’s an example:

var foo []string // nil slice
var bar = []string{} // empty slice

fmt.Println(foo == nil) // true
fmt.Println(bar == nil) // false

for _, v := range foo { // no errors
	fmt.Println("%v", v)

for _, v := range bar { // no errors
	fmt.Println("%v", v)

Normally, I avoid returning nils in functions, to reduce the need for a nil check before iterating, but looks like Go has it built in.


I was doing some next generation sequencing (NGS) analysis over the weekend, for the the first time. As such, I had to get some of the common software tools like PEAR and bowtie. Their official sites were hosted by SourceForge, but I didn’t want to download the binaries from SourceForge ’cause I’m paranoid about malware. So, I compiled them myself.

The process turned out to be super easy!

They all have git repos:

For example, for bowtie, you can do:

git clone
cd bowtie

For bowtie, you need libtbb, and for bowtie2, you need to compile with NO_TBB=1.

I’m pleasantly surprised because I remember the struggle of building open source projects when I was a young’un.

Just wanted to share!