These days, networking is easy. Lay down some CAT-5, wire in a few switches, install a router, configure a the clients, and that’s that. Everything plugs in and just works. But back in the day, things worked a bit differently. Namely, there were choices. Lots and lots of choices.

You had to pick your cable (10BASE-T? Type-1? DIN?), your topology (Token Ring? Ethernet?), your protocol (AppleTalk? TCP/IP? IPX/SPX?), and just about everything else. If you were lucky, everything else on the network worked the same way. But usually though, you’d have to figure out how to make the incompatible networks and computers talk to each other. That’s what G.R.G. used to do many years back.

At a place G.R.G. worked long ago, his boss was responsible for installing LocalTalk-to-Ethernet bridges or, as everyone had come to call them, big Purple Boxes. The company built their network in a piecemeal fashion and maintained it as such. Whenever a department would request a Purple Box, the boss would order one, instruct one of his minions to trudge over and plug it in to the networks, and then he’d add an entry to the configuration file telling the Purple Box what to do.

These Purple Boxes were known for four things. First and foremost, they looked pretty. They were Purple after all! Secondly, they cost Big Bucks. Everything did back then, but these ones, for whatever reason, cost a lot more. Thirdly, they would die every three months or so, or within a few weeks of the warranty period expiring. And Finally, the Purple Boxes demanded nothing but the world’s wildest configuration file entries.

Each Purple Box, so far as G.R.G. can recall, needed a paragraph of gibberish added to the master Purple.Box.conf file. It was something not too dissimilar from this:

$BRIDGE$ 00:05:FD:34:12:99 $reboot$ $Idle$ $LW3_4$ {$UNSIGGER::CPU$,$UNSIGGER::ETHER$,$UNSIGGER::AT$} $GW$ ==> 124.84.150.001 <== $GW$ $NS$ ^124.84.155.001*3:: @@124.84.150.001@@ $IDENT$ $YOUDENT$ $ETHER$ 124.84.150.126 $MTU_AT$ 557 $TTL_AT$ 100 $AT$ 73.000 $FLOW$ $BUF$:::3 $TCP$::-ON- $ATP$::-COMP- $EXIT$ $EXIT$ $EXIT$ $BOOT$

Also, it was extremely important to keep the paragraphs consistent. No two paragraphs could define the same IP address for each AppleTalk subnet, and each entry required a distinct AppleTalk net number. Also important was the ability to enter everything perfectly, since finding the source of a problem was difficult. There were no diagnostic messages whatsoever, and if you misplaced a single comma, decimal, dollar sign, or @ symbol, it wouldn't work.

The boss wasn't too happy; the high failure rate, a configuration process that could take days, and a grueling troubleshooting process were beginning to catch up with him. The boss was able to eyeball the file and resolve conflicts when there were less purple boxes, but as more hardware was added, the configuration file grew and became harder and harder to maintain. Plus it was embarassing for him when a department got a big purple box installed, only to have the department wait for several days while he fiddled with the configuration.

G.R.G. couldn't help but pity the poor guy. And it was out of pity that he wrote a 15-line awk script that would add a new paragraph (that would actually get it right the first time), and pick new unique addresses for the boxes. In fact, while debugging G.R.G. spotted a few duplicate addresses in the existing config file.

Hoping for a pat on the back or maybe even a raise, G.R.G. showed the script to his boss. Instead, his boss's face changed almost to the color of the big purple boxes and G.R.G. was chased out of his office.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!