Wednesday, February 6, 2008
Object Oriented
As noted in the write-up, I undertook the color cycling project because of a long standing love for that particular effect in computer graphic art. It’s a simple trick; it can look spectacular; what’s not to like? Well, there is the part about how web browsers won’t do it without some sort of add-on, hence my Java applets.
What I don’t go into much is the Java part. Having the color cycling applets to point to allows me to claim some familiarity with Java, which is a useful thing for a technical writer these days. So there’s that. Moreover, Java is an Object-Oriented programming language. OOPLs used to be the flavor of the month; now they’re more like boilerplate. You have to claim familiarity in order to even interview for many jobs.
So let’s pause for a heavy sigh. (Sigh). I’ve complained many times about how the use of an ordinary word in a technical context can cause problems when the technical meaning differs significantly from ordinary usage. Jeez, does that apply to “object-oriented.”
Programming “objects” have nigh onto nothing to do with ordinary objects. They are programs! They do not have mass, weight, substance, color, physical dimensions, or persistence. Nor, for that matter, do they have anything to do with object code, the venerable term for a program that has been compiled into machine readable form.
What program “objects” have is “properties” and “methods.” For any old computer geezers such as myself, those translate to “data structures,” and “procedures.” But calling things by previously used names is so old-fashioned.
If that was all there was to it, then one might very well ask why bother, since there were already these perfectly reasonable programming structures called “sub-routines” and “modules.” Well sure, but there were a few new(ish) notions added to the mix: “inheritance” and “instantiation.” The former lets you create new “objects” based on old ones, with some modifications to the “encapsulated” data or the procedures that act on that data. The latter lets you fire off a bunch of similar program parts, each doing its own thing in the “multi-threaded environment” of the modern operating system.
See, this is just like taking your white hat and putting it into your matter duplicator, setting the dials to “blue” and “wings” so you have a new blue hat with wings. Then the blue hat can fly around and make fun of the poor wingless white hat.
That’s why they’re called “objects.” Because objects can do that sort of thing (snark).
Anyway, the idea was to use the object-oriented model to create re-usable program components that can be bolted together with minimal effort to create larger programs. This would have worked if it hadn’t been for those meddling kids and their stupid dog, I mean, if they had managed to get a variable typing system that was both consistent and comprehensible.
Unfortunately, the two major object-oriented languages, C++ and Java, based their variable typing conventions (as well as their syntax) on the C language, and that’s pretty much where the blue hat died and fluttered to the ground. C had so many exceptions and so much arcane weirdness in its variable typing that the whole thing was pretty much doomed from the start. It’s a simple fact that communication among “objects” can cause terrible headaches, because the variables they pass to each other get slippery.
Joke from the 1970s: C is Assembly Language in a clown suit.
Update to the 1990s: And C++ carries an Uzi.
Now realize, very little of this has anything to do with what someone is asking about when they ask you if you are “familiar with object-oriented programming principles.” What that translates to is, “Are you experienced with C++ and Java?”
I will say that the Object-Oriented project/marketing campaign succeeded brilliantly at making a lot more work for programmers. It also set the barriers to entry much higher and it resulted in the situation that programming now absolutely requires computerized programming tools. I wrote my Java applets more-or-less by hand, but I was hacking, just modifying previously written programs and sort of jamming them together. To do a similar project from scratch would have absolutely required a full bore Java programming tool set.
And it all would have been a lot easier to do in Pascal or even Fortran. But web browsers don’t support those, more’s the pity.
Sunday, April 8, 2007
Images
In November 1973, Leon Harmon, a researcher at Bell Labs wrote an article for Scientific American titled, "The Recognition of Faces." It included pixilated images, most notably this one of Abraham Lincoln:The Lincoln image in the Scientific American article had already seen wide distribution through the college engineering magazine circuit; it seemed like half of us put it on the cover. It had been part of a press release from Bell Labs, and well, the first time you see it, it’s a revelation. Or at least it was. Everyone is used to pixelation now, and few people think about it as such; they’re usually more interested in what it’s obscuring, i.e. the “naughty bits” on basic cable channels like E! when the show is about porn stars or Howard Stern re-runs are letting the strippers get professional.
A few years after the Scientific American article, Salvador Dali entered the arena with one of his last truly striking works "Gala contemplating the Mediterranean Sea, which at 30 meters becomes the portrait of Abraham Lincoln (Homage to Rothko).":
Several years ago, I spent several days looking at the face of Mika Tan. You may now think whatever thoughts you wish to think about the psychological meaning of my focusing on the face of a porn star:
What I was doing was experimenting with various image processing filters. I’ve been fascinated by voice and image processing since college, and periodically I reacquaint myself with the tools available. Things that once took days of mainframe time now take seconds on a mid-level PC, and there are also a lot more tricks and methods available to the professional or the hobbyist, because people are clever, and there are a lot of people interested in images. Do tell.
I’ve done a lot of experimenting with computer generated abstract art, often starting with more conventional photographic images. One of the things I’ve confirmed along the way is that faces are special; we see them easily, even when they are not there, and modified images of faces carry emotional weight far more easily than other images. We’re built to recognize faces (that’s part of the point of the Scientific American article), and the images go deep.
So anyway, if you’re going to be nerding about in Photoshop, Irfanview, Corel Photopaint, and Pro Motion for days on end, it’s not a bad idea to begin with an image or images that are both evocative and easy to look at. So that pretty much answers the question of “Why Mika Tan?” At least to me it does.
Finally, in an earlier essay, I noted the ability to creating hidden codes and subliminal sexual images via image processing. So here you go:
Good luck and never let it be said that I’m a prude, just way too subtle.
Voyeurism goes deep. A Chicago friend once told me, “You’re not really into voyeurism until you’ve done things like put a photograph of a naked girl in a glass cabinet, lit by candlelight, and then spied on it from behind a chair across the room with a telescope.” – Fritz Lieber

