Orthogonal Politics

I don’t like writing about politics. In fact, I don’t even like to read about politics. This is one of the few moments where I poke my head out of the sand…

We just had an election in the US. And for the first time in a long time, I actually felt good about my decision– I didn’t feel like I was choosing the lesser of two evils. I felt like I was casting my vote for something bigger– a real change the likes of which we haven’t seen in this country in decades.

As I watched the election results, I surged with a mix of emotions, from relief to optimism. In my home state of California, I also watched the gay marriage ban pass. Add confusion to my mixed emotions. Locally, my city passed a ban on alcohol at the beach. “What the fuck?!”
...and why are we listening to Mormons about marriage?
Doing a little research, I found that most of the arguments for a ban on gay marriage were religious or moral.

The arguments on all sides tended to resort to nonsensical assertions, contriving concepts of civil liberties, morality, bigotry, tradition, etc. At no point, on either side, was there a clear argument.

The presidential race was no different. The candidates rarely made a clear argument proposing or opposing one way of government for another. Worse yet, there seemed to be an ugly trend of blending orthogonal political ideologies that seemed counter-intuitive. Let me explain

Individual vs State Property

This is easy. Do you want a government that protects private ownership or collective ownership? This is the essential capitalist vs socialist argument– and despite conventional wisdom, the United States is a blend of capitalism and socialism. Our two party system tends to follow this argument, where traditional fiscally conservative Republicans favor more privatization and less state control (despite the current administrations ostensible failure in this area).

Legislative Morality vs Rights

This is also easy. Do you want a government that legislates from a moral perspective (e.g., theft is illegal because it’s immoral) or from a civil rights perspective (e.g., theft is illegal because the victims rights were infringed)? A gay marriage ban only exists by legislating morality, as does a ban on abortion, and even a ban on alcohol at the beach. Any “ban” on behavior that doesn’t directly affect you, is typically legislative morality.

None of these concepts are difficult. And in different contexts each ideology has its purpose. An interesting problem right now is that we tend to lump these orthogonal concepts together, and then ignore the logical alternatives, and worse, we make decisions based on these combined ideologies– thus resulting in irrational decisions.

For example, we currently have a two party system where we lump “conservatism” with legislative morality and capitalism; likewise, we lump “liberalism” with civil liberties and socialism. We tend to ignore all other possibilities, and hence our political discourse is a mix of ambiguous ideologies.

I know I’ve had my head in the sand, but can we please have an intelligent discourse on legislative morality and civil liberties without having to force socialism, capitalism, liberalism, and conservatism into the picture?

And why do I even have a vote on gay marriage? I’m not gay. While I have my opinions (as a secular liberal), I don’t think my opinions should be taken seriously on issues that I know nothing about and in no way affect my life. Same is true for abortion. My liberal ideologies mean nothing in these situations. The only argument is whether we, as a society, want to legislate morality or not (and if so, whose moral code do we follow?).

I do like to drink (responsibly) at the beach, so I have a personal stake on that one; and it’s a bit upsetting knowing that people who know nothing about the issue are passing moral judgments and worse they’re defending their judgments by ideological arguments that are orthogonal to whether or not I can drink at the beach.

It’s infuriating, and that’s just me drinking at the beach! Now imagine that the state prohibits you from marriage.

We have empowered our government to determine who can and cannot marry.

On one hand, I want to say to the people who support these bans (or any bans on individual liberty): “fuck off”; but on the other hand, we have no one to blame but ourselves.

We didn’t debate if we want to legislate morality. We’ve so badly mixed these orthogonal ideologies that we can rationalize ANY ideology or personal conviction as being a political topic.

If you don’t like gays or alcohol, that’s fine, don’t have gay sex while drinking– it’s not a complicated dilemma.

But in the current ideological mix, a fiscally conservative votes to ban gay marriage, and likewise a socialist-leaning liberal votes to ban gay marriage. Neither one realizes the implications of legislative morality, even though both may oppose legislative morality.

How does a FOR loop work?

During a recent round of interviews we asked candidates to point out the problem with the following code snippet

for($i = 0; $i < 10; ++$i)
  if ($i = 0)
    print "yes";

This was intended as a simple, spot-the-typo, exercise. The problem is if ($i = 0), should read if ($i == 0)! As is, it's an infinite loop, and the follow up question is to ask if it's infinitely printing "yes" or not.

Relatively easy and straightforward. What happened in the actual interviews was anything but straightforward. Without fail, candidates kept pointing out the pre-increment ++$i. My first thought was to put them back on track, because "no, that has nothing to do with it." Instead I decided to explore.

"Wait, tell me why the pre-increment would be a problem?" I asked curiously.

Every candidate seemed to have a different explanation for why a pre-increment wouldn't work. I would then ask them to walk through the execution of the loop. And this was the mistake that each candidate shared, they didn't know how a standard three-expression for loop worked.

Stubbornly, many would insist that the pre-increment would be run first, before the assignment statement. I would ask, "so the execution order of the three expressions is dependent on the third expression?", hoping they would see the absurdity in such a claim. "Yes," was the confident reply. sigh

"No," I would explain (feeling a little defeated), "the first expression is always executed first and only once, the third expression is only executed after a loop iteration."

I would go on to explain that the pre-increment works perfectly fine. In fact, there is some argument that it is more efficient since it is not creating temporary variables (a post-increment will create a temporary variable to hold the original value that is returned from the statement). Either way, in the context of a three-expression for loop it makes no difference; whichever method lends itself to better readability in your code should be used.

None of the candidates who missed this question were considered for a position.

And what did I learn? That we should use foreach with Iterator objects, and I'm switching to Python!


I was reading about Dual-coding Theory, which states that visual and verbal information is processed on distinct and different cognitive channels. The verbal cues refer to symbolic codes; in other words, arbitrary representations of something (such as reading or listening to a speech). The visual cues are perceptual, that is, a direct representation of what you are seeing.

Dual-coding refers to utilizing both visual and verbal, that is, symbolic as well as perceptual codes. Memory seems to favor the visual channel, and this is known as the picture superiority effect.

Think of watching the presidential debates. The information is symbolic (through words) as well as visual. What we remember tends to favor the visual, which can then act as a voluntary trigger to retrieve the words.

This is an interesting concept, and taken further leads to synesthesia– a rare phenomenon where one cognitive pathway triggers another involuntarily. For example, someone with synesthesia may see numbers in different colors; or see musical notes. And not a voluntary association, but a completely involuntary reaction. The advantages should be obvious, such as encoding symbolic information into long-term memory as easily as a visual information.

I wonder, if with the right training, we could develop in ourselves something like synesthesia; associating visual/perceptual codes to symbolic codes — allowing perceptual representations of abstract concepts.

We tend to do this naturally with metaphoric associations, such as an emotional reaction to an image or sound. I suspect we can take this much further, where we directly leverage perceptual codes to involuntarily trigger any number of symbolic/abstract information (whether emotional, or intellectual, or artistic)