func hashFNV(s string) uint64 {
	h := fnv.New64()
	h.Write([]byte(s))
	return h.Sum64()
}
Returns a 64 bit int from fnv hash of the string
package util
import (
	"hash/fnv"
	"math/rand"
	"strconv"
	"time"
	"github.com/coreos/ksched/pkg/types"
)
func HashBytesToEquivClass(b []byte) types.EquivClass {
	h := fnv.New64()
	h.Write(b)
	return types.EquivClass(h.Sum64())
}
func ResourceIDFromString(s string) (types.ResourceID, error) {
	i, err := strconv.ParseUint(s, 10, 64)
	return types.ResourceID(i), err
}
func MustJobIDFromString(s string) types.JobID {
	i, err := strconv.ParseUint(s, 10, 64)
	if err != nil {
		panic(err)
	}
	return types.JobID(i)
}
func MustResourceIDFromString(s string) types.ResourceID {
	id, err := ResourceIDFromString(s)
	if err != nil {
		panic(err)
	}
	return id
}
var randGen *rand.Rand
func init() {
	t := time.Now().UnixNano()
	randGen = rand.New(rand.NewSource(t))
}
func SeedRNGWithInt(seed int64) {
	randGen = rand.New(rand.NewSource(seed))
}
func SeedRNGWithString(seed string) {
	SeedRNGWithInt(int64(hashFNV(seed)))
}