Thursday, February 7, 2008

Steam-powered computing

I generally try to stay a bit behind the curve, but here's a case where I'm just now hearing about something cool that's been around for twenty to forty years, depending on how you count. I don't feel too bad, though. The whole point of steampunk is that it draws on technology that fell out of favor around the same time as the bustle and the ascot tie.

As one might expect of a genre that's been around for a few decades, steampunk comprises a fairly extensive and varied body of work, including literature, film, comics and art objects. Steampunkopedia has a fairly impressive pile o' links, if you want to browse further. I've personally only scratched the surface, and will probably not have time to do much more, though I would like to read The Difference Engine at some point.

What drew me into all this bounty in the first place was a radio mention of the Steampunk Workshop which, along with other enterprises of its kind, actually produces modern gadgets in Victorian dress, such as this retrofitted keyboard (step lightly around the AdSense solicitations). I particularly like the Roman-numeral function keys. And why stop there? Datamancer, an affiliated site, will do you a whole steampunk laptop.

Also of interest, in the same spirit if not quite the same aesthetic, is a water-cooled computer constructed with parts from the local Home Depot.

Neat hacks, all.


earl said...

For what it's worth, the US Navy was using, as late as the 1960's, mechanical analog computers to direct ships' guns, compensating for the motion of the target and the ship. Multipications were performed by little differentials (in the mechanical, not mathematcal sense of that term; like a precision made miniature of the rear-end of a rear-wheel drive car), more complicated calculations involved specially shaped cams. They apparently worked pretty well, and the Navy at that time thought analog was the way to go, mostly because it gave real-time results.

David Hull said...

I recall reading about a young Richard Feynman using fractional calculus to find a function f such that f(f(x)) was the function they actually wanted to calculate. This was useful because the original function put too much strain on the gears of the analog computer.

I also recall hearing a story about another of that bunch (Fermi, I think) being given the classic puzzle about the fly:

Two trains start 50 miles apart and steam toward each other at 20 miles per hour. At the same time, a fly begins to fly at 30 miles per hour from the front of one train toward the other. When it reaches the other, it instantly reverses course and heads for the first train, and so forth, until it all ends in a bloody mess. The question is, how far does the fly travel?

The textbook solution is this: If the first leg of the fly's trip takes time t, then 20t + 30t = 50 and so t is one hour and the fly travels 30 miles on that leg. At that point the trains are 10 miles apart instead of the original 50, but everything else is the same, so on the second leg the fly will fly 6 miles, and on each leg it will fly one-fifth as far as the last one. The total distance is 30 times the sum of the infinite series 1 + 1/5 + 1/25 + ... 1/5^n, or 30 times 5/4, or 37 1/2 miles.

Or ... you can just note that the trains are coming together at 40 miles an hour, they have 50 miles to cover before they hit and whole ordeal thus takes 5/4 of an hour. The fly is going 30 miles per hour the whole time, and so it will travel 37 1/2 miles in all.

When Fermi was asked the puzzle, legend has it, he immediately replied "37 1/2 miles". "Ah," said the puzzler, "you must have found the easy solution to have answered so quickly"

"Easy solution?" Fermi replied, "What do you mean? All I did was sum the series."

Analog computers are the simple and elegant solution to modeling the real world. You're using the same basic equations, just scaled down or in a different domain. Kind of like noticing that the fly will fly for exactly how long it takes the trains to collide.

Digital modeling means grinding out numbers until the problem, the computer or both give up from exhaustion. Kind of like setting up an infinite series and summing it.

The natural assumption is that the only way to get the answer quickly is to find the shortcut in the particular problem. But if your computer is fast enough, the brute force solution will work just as well. Better, in fact, since it doesn't depend on any clever insight.

earl said...

But ain't elegant insights nice? If they weren't, would anyone ever become a mathematician?