code: func (c *Corpus) mergeEXIFGPSRow(k, v []byte) error {
  	wholeRef, ok := blob.ParseBytes(k[len("exifgps|"):])
  	pipe := bytes.IndexByte(v, '|')
  	if pipe < 0 || !ok {
  		return fmt.Errorf("bogus row %q = %q", k, v)
  	}
  	lat, err := strconv.ParseFloat(string(v[:pipe]), 64)
  	long, err1 := strconv.ParseFloat(string(v[pipe+1:]), 64)
  	if err != nil || err1 != nil {
  		if err != nil {
  			log.Printf("index: bogus latitude in value of row %q = %q", k, v)
  		} else {
  			log.Printf("index: bogus longitude in value of row %q = %q", k, v)
  		}
  		return nil
  	}
  	c.gps[wholeRef] = latLong{lat, long}
  	return nil
  }
docs: // "exifgps|sha1-17b53c7c3e664d3613dfdce50ef1f2a09e8f04b5" -> "-122.39897155555556|37.61952208333334"