Optimization: Old Dogs and New Tasks