Monday, March 3 2008
Mike, the guy I work for remotely in Los Angeles, periodically sends me care packages containing his retired electronic gadgets. Today I took delivery of a PlayStation 2 along with a number of games, particularly Grand Theft Auto: San Andreas. It took me right back to my old life in Los Angeles, but with a lot more consequence-free crazy thrown in. The game even gets the atmospherics right: the fog rolling in off the ocean, the palm fronds waving in the yellowish air, and constant bilingual background banter (my old West Los Angeles neighborhood was silent except for the sounds of cars, but I've been to many other Los Angeles neighborhoods richer in human warmth).
The PS2 box actually had a slight problem with its DVD drive, so I took it apart to see if I could fix it. Being familiar with the modular design paradigm of desktop and laptop computers, I expected to find recognizable modules in there, perhaps a DVD drive I could simply replace with one from the stack of working computer DVD drives I have in the laboratory. But no, this was impossible. The controller for the PS2's DVD drive was built into the motherboard, with a set of short ribbon cables connecting it to its electromechanical hardware. You see, though it behaves like a computer, the PS2 is a completely proprietary piece of consumer electronics. The only standard connectors it has are some USB ports and a Firewire plug. Everything else might as well be ports on the side of a 1970s Soviet satellite (they actually look like 1970s-era connectors). I was reminded of why I would never actually buy a computer gaming console. I would never willingly populate my life with a device so purposefully inflexible.
My life has always been partly about broadening the use-spectrum for the material objects in my possession. I like the fact that an air compressor can be interfaced to copper household plumbing or that a power supply for a Netgear router can also power the Arduino-based controller that determines whether or not it is sunny enough to run the solar hydronic pump. It was delightful to figure out how to make an old telephone ringer into a electrical hammer mechanism for an Indonesian cow bell. In tours of the basement, I'm always quick to point out how an old expansion tank now serves as a pressure tank for my pressurized antifreeze supply. And few things satisfy me more than knowing that the heat exchanger in the basement was made from a three foot long piece of copper sewer pipe.
My preference for tools and products that can be used in a wide-variety of applications extends even to my programming style. I've never felt any interest in developing object-based (that is, object oriented) frameworks for my web applications, and today I realized why. My preference is to develop within frameworks consisting of large libraries of disembodied (disobjected?) functions because I tend to use many (if not most) of my functions in a wide range of situations having little to do with the data they interact with. For example, the function that swaps colors between rows in a formatted HTML table of presented data is the same one that swaps "ASC" with "DESC" in the SQL code generated for the sorting and re-sorting of data. That's one function dealing with things happening at two different non-contiguous layers in the application stack. I could be wrong, but I have a feeling that that sort of thing is unusual in modern applications.
For linking purposes this article's URL is:feedback
previous | next