Programming is like

14 May 2009

Programming is like Buddhism. No one can tell you how to do it. You must do it for yourself. You are the only one who can get in touch with your own reality.

Programming is like the Matrix. There is a difference between knowing the path and walking it. I can only show you the door. You have to go through it.

Programming is like mathematics. There is a crucial relationship between syntax and semantics that fills the soul with ecstasy.

Programming is like the brain. The line is blurred between what is static and what is dynamic.

Programming is like the mind. It is everything and it is nothing. It is you and me, and everything in between.

Programming is like music. The answers are out there, it just requires the right kind of person to capture it and tell it to the world.

The answer to life, the universe, and everything is out there, it just takes some time for the global consciousness to understand everything there is to understand. Communication is critical.


Pay no attention to these hypocrites

16 February 2009
"To deny our own impulses is to deny the very thing that makes us human."

"To deny our own impulses is to deny the very thing that makes us human."


You are an artist

1 February 2009

An important message from Zen Habits about what it means to be in this world.


Why have I not seen this before?

1 February 2009

Why have I not known about the Mind & Life Institute until now? I literally just found that page.


What computers can’t do

12 November 2008

Hubert Dreyfus wrote a book in the 1970s, called What Computers Can’t Do, which is a really interesting counterpoint to the early optimism of researchers in artificial intelligence in that time period. In brief, Dreyfus takes a poop on the hopes and dreams of all computer scientists and states in an extremely final way that a computer program will never simulate the human mind. He makes many good points that are worth exploring, however, he doesn’t want to leave the discussion open at all. I found his discussion on the nature of abstractions, on what it means to be “real”, and on the categorization of “information” (whatever that is) to be very interesting. I don’t want to be pushy, but Buddhist ideas show up all over the place in these very (super-)cerebral discussions of reality, and many of the points made mirror the world that Buddhism describes; the interdependence of all things is probably the most important tenet of Buddhism, and the most ubiquitous in such non-Buddhist, scientific literature. Not that I’ve read that much.

Without any more ranting, there are a couple cool things I wanted to…paraphrase from the book. First, the author describes how our perceptions shape the “reality” of the physical world. Consider a glass of water and a glass of milk. Imagine drinking the glass of water with the intention of doing just that. You’ll taste water. Now imagine putting down the water, accidentally picking up the glass of milk, and drinking the glass of milk with the intention of drinking the glass of water. If you’re not paying attention (or intention), and get a mouthful of milk expecting water, the perceived taste is something not quite water and not quite milk, something in between but not quite either. Perhaps it’s the “raw input”, I don’t really know.  But it would seem that your preconceptions of the taste of water have affected your perceptions of the taste of water.

Second, Dreyfus provides at the end of his book analogous problems and activities that help us categorize the kinds of problems that humans and computer programs face and how difficult they are. The table looks like this:

Table reproduced from What Computers Can’t Do, Revised Edition by Hubert Dreyfus, Harper Colophon Books edition, page 292.
Classification of Intelligent Activities
I. Associationistic II. Simple-Formal III. Complex-Formal IV. Nonformal
Characteristics of Activity
Irrelevance of meaning and situation. Meanings completely explicit and situation independent. In principle, same as II; in practice, internally situation-dependent, independent of external situation. Dependent on meaning and situation which are not explicit.
Innate or learned by repetition. Learned by rule. Learned by rule and practice. Learned by perspicuous examples.
Field of Activity (and Appropriate Procedure)
Memory games, e.g., “Geography” (association). Computable or quasi-computable games, e.g. nim or tic-tac-toe (seek algorithm or count out). Uncomputable games, e.g., chess or go (global intuition and detailed counting out). Ill-defined games, e.g. riddles (perceptive guess).
Maze problems (trial and error). Combinatorial problems (nonheuristic means/ends analysis). Complex combinatorial problems (planning and maze calculation). Open-structured problems (insight).
Word-by-word translation (mechanical dictionary). Proof of theorems using mechanical proof procedures (seek algorithm). Proof of theorems where no mechanical proof procedure exists (intuition and calculation). Translating a natural language (understanding in context of use).
Response to rigid patterns (innate releasers and classical conditioning). Recognition of simple rigid patterns, e.g., reading typed page (search for traits whose conjunction defines class membership). Recognition of complex patterns in noise (search for regularities). Recognition of varied and distorted patterns (recognition of generic or use of paradigm case).
Kinds of Programs
Decision tree, list search, template. Algorithm. Search-pruning heuristics. None.

Of course, to make full sense of this table, reading the book may be necessary. Also, a degree in philosophy, cognitive science and/or computer science would also be helpful. I can cut out the tough stuff and summarize, though.

In terms of philosophy, this table shows the apparent difficulty in getting the global, semantic interpretation of a situation without actually having previously been in the situation (i.e. being a human in the universe). This seems to be a paradox, the seemingly insurmountable problem of providing a program with enough rules to build up new rules for itself in an infinite hierarchy (consider creating a fundamental set of rules for solving problems, then creating rules for when and how to use those rules, then creating rules for when and how to use those rules, and so on ad infinitum).

In terms of cognitive science, this table shows the problem of providing a computer program with what we would call “insight”, “intuition”, “understanding”, or “perception” of an arbitrary input (from the domain of the physical world). The methodical, algorithmic ways of solving problems take so long, and we humans don’t seem to do that when we, for example, see a “strong” position as opposed to a “weak” position on a chess board. Checking each possible combination of moves becomes outrageously computationally expensive very quickly; someone smart once said that we live in a world full of probabilistic decisions, and I bet that’s closer to how we actually do it.

In terms of computer science, this table shows from left to right the increasing complexity of each type of problem, from sub-polynomial time algorithms to polynomial time algorithms to more complex heuristics (a heuristic can be considered an algorithm for learning how to learn), and beyond that, we don’t really know how to solve the problem in the way that a human seems to solve it (with intuition). That’s what the “None” is for in the table (my emphasis).

The author points out that we actually start out as human beings in area IV on the table, then we learn how to do things in areas I, II, and III in sequence, “just as natural language is prior to mathematics” (Dreyfus 294). Curiouser and curiouser.

That’s all I have to say about that. I like it. I hope I’ve inspired everyone to take up a career in theoretical computer science.

Also, just want to repeat that a lot of this is paraphrased from Dreyfus’s book, so props to him.


On The Matrix

7 October 2008

While reading about the connection between my favorite discipline, Buddhism, and my favorite film, The Matrix, a topic on which I must expound later, I came across this old (1999) interview with the Wachowski brothers, responding to questions from users online about the movie. The following are what I find to be the most interesting questions (in italics) and subsequent responses by the Wachowski brothers.

Are all the religious symbolism and doctrine throughout this movie intentional, or not?
Most of it is intentional. One of the things we tried to do with the Neb for when we were shooting “in the real world” was use long lenses to separate the humans from the backgrounds, as opposed to when we shot the Matrix we used short lenses to place the humans in specific deep spaces. We also tinted all of the lights blue in the “real world” and green in the Matrix.

[Concerning the a]gent training where woman in red dress appears
People don’t realize how important this scene is. Because we are all staring at the woman in the red dress! There’s actually twins and triplets that we hired in that scene. And all of the clothes are based on black and white costumes, like nuns, chefs, brides, sailors. We had the idea that Mouse just doubled people instead of making originals. But we couldn’t afford to do it digitally, so we ended up hiring as many doubles, or as many twins, as we could find in Sydney. It was kind of like a bad dream on the set.

Could you say a little about the sound design which was terrific such as the slo-mo bullet ripple effects, Foley effects.
Dane Davis is a genius. He built all of these sound effects from all kinds of original sounds. He’d put bullets on strings and whirled them around his studio, he digitized raindrops against windowpanes to create the sound of the Matrix code.

This one is awesome and explains why I loved this movie before (and after) knowing anything about Buddhism, mathematics, or quantum physics:

Did ideas from Buddhism influence you in making the film?
Yes. There’s something uniquely interesting about Buddhism and mathematics, particularly about quantum physics, and where they meet. That has fascinated us for a long time.

The television in the oracle’s apartment is playing an old horror movie, with giant white rabbits hopping around in the streets. I know you noticed it the first time you saw the movie.

Do you think The Matrix will develop a cult following in the decades to come?
We hope it’s as big as the Night of the Lepus.

What is the significance of Neo eating the Oracle’s cookie?
There was a piece cut out of the movie that explained the significance more. It’s hard to explain.

Why were they only able to jack in through hard lines, but still able to communicate over cell?
Good question! Mostly we felt that the amount of information that was being sent into the Matrix required a significant portal. Those portals, we felt, were better described with the hard lines rather than cell lines. We also felt that the rebels tried to be invisible when they hacked, that’s why all the entrances and exits were sort of through decrepit and low traffic areas of the Matrix.

The rest of the questions and answers are pretty lame. Come to think of it, these are probably also pretty lame, unless you are me and you’ve seen this film a couple dozen times.