Nonsmooth convex optimization