24 April 2009

Getting machines to talk with each other

Among my first jobs was getting a PC-XT that ran Logo to control a Commodore-64 over a serial cable. The C-64 was programmed (by hand in hand-assembled machine code, by me) to act like a synthesizer, taking commands from the XT and driving its excellent for the time music synthesizer chip. This was before MIDI made such a hack obsolete.
And that was before sound cards were standard.

Later I became a system and network admin out of necessity. Network admins get machines to talk. ISDN, Ethernet. Later some WiFi diagnostics. Ethereal, a network protocol analyzer that lets you examine the contents of packets you can sniff.

Later I worked on protocols to get Linux & Windows to talk, securely.

And boards in medical devices to talk, with RS232, two-wire RS485, SPI, and I2C.

And networked, distributed disk systems to behave.

Machines are so much more useful if connected. Its kinda like steam engines: a steam engine on a rail (ie, train) is so much more useful than a fixed steam engine. A computer on a network is much more useful than an isolated one.

And instead of one steam engine driving a shaft with takeoff pulleys for each worker, the mainframe model, we then had an engine (desktop) at everyone's workstation, and now we are getting little tiny engines embedded everywhere, lawn mowers, toys, etc. (Actually because combustion engines are nasty, we have little electric motors everywhere, but the point is the same: what used to be centralized and scarce and clumsy becomes ubiquitous and invisible.)