In practice, bit errors usually occur in bursts. Tanenbaum [3] describes a method that can be used to recover from burst errors. The method is as follows: The data to be transmitted is stored horizontally (like we would read it), but the data is transmitted vertically (bit 1 in each row would be transmitted first, then bit 2 in each row, and so on).
The receiver then reconstructs the original lines upon reception of the data. If a burst error occurs, there will be only 1 bit wrong per line, and we have shown that 1 error bit per line can be corrected.