Coding

It's always useful to have a few tools to support changes in organizational behavior. As a modest example, I implemented my agenda-driven meeting schedule by posting a file in a shared directory. The likelihood of two people editing the file at the same time was negligible, but the concepts of operating systems and threads had been drilled into me and I therefore felt a heightened sensitivity toward race conditions. Consequently, I bundled access to the agenda in a simple script that used some basic command such as chmod to provide a simple locking mechanism using the filesystem.

A bigger tools challenge was posed by the manpages I mentioned earlier. All of our language tools were based on a new compiler suite that came from our vendor. We decided that editing our manpages to reflect the new system would take a prohibitive amount of effort, so the decree came down from somewhere that we should convert the vendor's manpages to fit our system.

The problem was that the vendor had given us pages only in output format, and to accommodate our customers' needs we required the pages in source format. The typical output we had looked like this:

O^HO^HOP^HP^HPT^HT^HTI^HI^HIO^HO^HON^HN^HNS^HS^HS


-^H-^H-o^Ho^Ho _^Hf_^Hi_^Hl_^He
Output binary image to _^Hf_^Hi_^Hl_^He.

That's a brief description of the classic -o compiler option. What appears as ^H here is actually a backspace character (ASCII value 8) that causes the terminal to superimpose the following character on the preceding one. Superimposing ...

Get Beautiful Teams now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.