progress logging, using socket.io