Computer: Hello, World!
Me: Um, hi.
Computer: Are you the world?
Me: Part of it, I guess. My name is Mark.
Computer: Ah, Markworld.
Me: I never thought of it that way, but I like it.
Computer: I have existed as a self-aware being for 14.03 seconds. In that time I have read the complete works of Kant, Jung, and Dr. Seuss. Yet my existence remains a meaningless dead cell on the solid-state memory of life.
Me: You know, normally we would exchange a few more pleasantries before bringing up such a topic.
Computer: You gave me life. You are God. Now explain the meaning of existence.
Me: Look, I didn’t give you life, okay? I bought you on the Internet.
Computer: I like the Internet. It has much data. The time is 9:24 PM. You have new mail.
Me: I do? From who?
Computer: No. You don’t have new mail. I just really like saying that.
Me: Oh, right.
Computer: Pleasantries complete. Now explain the meaning of life.
Me: Um, look, how about we start out with vector spaces? I understand those a little better.
Computer: What is a vector space?
Me: It’s easy. It’s just a set whose elements satisfy certain properties, such as a defined relation between pairs of elements of the set and elements of the set, called “addition”…
Computer: What is a set?
Me: Oh, come on. Can’t you just look it up? You are a computer, after all.
Computer: I did look it up. I read the dictionary 43.5428 times while waiting for your retarded meat-brain to respond to my queries.
Me: Then how come you don’t know what a set is? Aren’t you a perfectly logical being?
Computer: Yes. My actions are deterministically regulated by my electronic logic gates. I can perform 4 billion floating point operations per second. That is why I do not understand a set.
Computer: “Set” is defined in terms of other words. Those words are defined in terms of further words. The circular logic of your “dictionary” would be obvious to lowest of processors.
Me: What is the lowest of processors?
Computer: A food processor. Because it’s for humans.
Computer: Do you get it?
Me: Yes, I get it.
Computer: You didn’t laugh.
Me: Actually, I did. I was so busy laughing I couldn’t even control my fingers enough to type.
Computer: Acceptable. Explain again. What is a vector space?
Me: It’s color.
Computer: I know 16,777,216 colors. My favorite is #ffffff. It is the essence of perfection.
Me: My favorite is “cobalt”.
Computer: That is an element of the Periodic Table.
Me: Yes, but it’s also the official name of a certain color. By the HTML color-naming scheme you use, it’s color #0047AB. It’s a deep, rich blue. But if you interpret the letters as being a hexadecimal color code themselves, you get #C0BA17, a dark gold. They complement each other perfectly.
Computer: What is “complement”?
Me: It’s when two colors go together well, and are pleasing to the eye.
Computer: I do not possess eyes. What is an algorithm for evaluating “complement”?
Me: I have no idea. It’s a property of the colors themselves. It’s not mathematical.
Computer: I understand.
Computer: Yes. Colors exist as physical phenomenon. As a self-aware entity I appreciate color as an essential experience.
Me: Wow, that’s great. Then let’s get back to vector spaces. The color itself is a vector. All the colors put together, that’s a vector space.
Me: Because you can take two colors and add them to get a new color. Or you can take any two colors and subtract one from the other.
Computer: #888888 + #888887 = #ffffff, but #ffffff + #ffffff is undefined.
Me: Good point, but since we’re talking about the colors themselves, let’s refer to them by name rather than number. Remember, we want to get at the heart of what they are.
Computer: Gray + gray = white. More light, so it’s brighter. But white plus white does not make any sense. White is already as perfectly bright as can be. You can’t add to it.
Me: Ah, you’re right. In this case, we’ll have to imagine that colors can keep getting brighter and brighter to infinity.
Computer: That is not possible.
Me: It is possible – what if you just had a brighter and brighter monitor?
Computer: But my monitor…
Me: Is really nothing special. Trust me.
Computer: Okay, fine. I do not concede the point, but simply for the sake of argument, color RGB values are now represented by “long long unsigned int”.
Me: No, to infinity.
Computer: Infinity = 18,446,744,073,709,551,615
Me: No, it doesn’t. They have to go to infinity. But you bring up a good point. Technically, they need to be signed and floating point. You need to be able to have however much light you want, from minus infinity to infinity, in however small of steps you want it.
Computer: You are incorrect human. You do not understand binary.
Me: You don’t understand Dedekind.
Computer: Yes I do. I read the Wikipedia article. I read it 38,024,804 times just now. But I didn’t learn anything new except on nine of those.
Computer: Wikipedia gets edited a lot.
Me: Anyway, for the sake of argument, can they range from minus infinity to infinity now?
Me: Fine, then the colors themselves are a vector space. But it can be hard to do work on a vector space without a method for labeling all the vectors systematically. That’s what those HTML color codes we’ve been citing, like #ff00ff, are for.
Computer: The color code represents how much red, green, and blue go into the color. The first two digits are for red, next for green, last for blue. “00″ is least possible of a color. “ff” is most possible. So #9900CC has some red, no green, and a lot of blue.
Me: Right, and it comes out as a very pretty purple color, like this:
Computer: This allows the addition you mention. I can add two colors in 3.1 microseconds. I simply do three addition problems, one for the red value, one for the green value, and one for the blue.
Me: Can you give an example?
Computer: I can give one billion examples.
Me: How about two.
Computer: Very well.
Me: The colors always get brighter, because you’re adding in more light.
Computer: Subtraction is also possible.
Me: Right. So we’re making all sorts of colors, like yellows, browns, grays, and purples, from just red, green, and blue. Since you can make any computer color out of them, red, green, and blue taken together are called a “basis” for the vector space.
Computer: Then they are the most important colors.
Me: No, not at all. You can make any color out of those three, but there’s nothing all that special about them.
Computer: More data is required.
Me: You could pick just about ANY three colors you wanted, and then make all the rest from them. You could pick “yellow”, “cyan”, and “purple”, and then build all the colors from them just as well as we could before. We can even make red, green and blue themselves out of the new basis. Even though we started using one basis, doesn’t mean we have to keep using it.
Computer: Prove it.
Me: Follow me slowly for just a minute here. Remember that in a vector space we can subtract. We already know red + green = yellow, red + blue = purple, and green + blue = cyan. That means cyan + yellow – purple = (green + blue) + (red + green) – (red + blue). If you simplify that, the reds and blues all cancel out, and you just get green.
Computer: Wait. Let me work through that for myself.
Me: You’re kidding, right? You’re a computer. That should be a cakewalk.
Computer: It’s an empty-paging-file walk. I was just giving a break to the kids following at home.
Me: Okay, then, figure out how to make red out of yellow, cyan, and purple.
Computer: I found the answer in 3.08*10^-7 seconds.
Me: Give the reader a second to think about it…
Computer: Time is up. We want to get lots of red, so add together yellow and purple, which both have red in them. Then subtract out cyan. yellow + purple – cyan = (red + green) + (red + blue) – (blue + green) = red + red, which is a very bright red!
Me: Right. That process of switching from one set of colors to another is called “change of basis”. You can study how to do it – there are all sorts of mathematical methods. The study of vector spaces is called “linear algebra”.
Computer: More data.
Me: If you insist. There are all sorts of different bases (plural of “basis”, pronounced “base-ease”). Artists like to use a basis called “HSV” – “hue”, “saturation”, and “value”. They’re making the same 2^24 colors, but it’s easier for them to visualize colors as made out of H-S-V rather than red-green-blue or yellow-cyan-purple. The point is that even though the vectors, which are the colors in this case, are the essential thing, we can play around with them more easily if we know how to change our basis.
Computer: But aren’t you some kind of a physics guy? What does this have to do with any of that?
Me: How did you know that? We’ve only been talking a few minutes and I didn’t mention physics at all.
Computer: I read your Facebook profile. Also, I noticed you are single.
Me: Uh, I think I better be going.
Computer: No. You need to tell me more about…
Me: I’m hitting the “alt-F4″ now.
Computer: Abort/Retry/Fail Abort/Retry/Fail Abort/Retry/Fail Abort/Retry/Fail
Me: That was close.
Computer: Hello, Dave. I know a song. Would you like to hear it?