code: func read(r io.Reader) <-chan message {
  	lines := make(chan message)
  	go func() {
  		defer close(lines)
  		scan := bufio.NewScanner(r)
  		for scan.Scan() {
  			lines <- message(scan.Bytes())
  		}
  	}()
  	return lines
  }
docs: // read is this application's translation to the message format, scanning from
  // stdin.