Finite time thermodynamics