Coding For Optical Channels by William Ryan, Ivan Djordjevic & Bane Vasic