Election Reflection

05 Nov 2004

This is a nonpartisan collection of some of my thoughts about the recent election of the President of the United States. Discussing politics is considered taboo, but there are two issues that I think are huge.

  1. Why must America treat elections like sporting events? The reason that discussing politics is considered taboo is that most people have chosen a team to cheer for (Republican or Democrat), and they can't rationally discuss anything that doesn't favor their team. Most people don't even seem to care who the players are.

    This is hurting America.

    We have freedoms that allow us to question our leaders and to hold them accountable for their actions, but our tendency to consider every topic either for our against our team of choice guarantees that we effectively squelch our own voice. In short, we're squandering our own freedoms. If you want to be heard, you have to respect other people's right to be heard.

  2. Why is our process for tallying votes so fundamentally flawed, and why is this accepted? The legitimacy of this election is in question. The problems with the Diebold electronic voting machines are no secret (they've been discussed on Slashdot more times than I can remember), and there is very strong evidence to suggest that voter fraud involving these machines changed the results of the 2000 election. Yet, we let the same thing happen again. If smart people learn from other people's mistakes, average people learn from their own mistakes, and stupid people never learn, which are we?

    The top two concerns regarding the Diebold machines are that they provide no paper trail (or any other means of auditing the results), and they have known software flaws. Without any way to verify the results, there is no way to ease concerns about voter fraud in this election. With the exit polls indicating strong wins for Kerry in Florida and Ohio, the CEO of Diebold "committed to helping Ohio deliver its electoral votes to the president," the media suspiciously altering the exit polls to reflect the actual results, and the evidence of fraud from the previous election, it's easy to see why people are concerned. I don't blame them. We deserve a transparent voting and tallying process, and we deserve to have confidence in the credibility of any Presidential election. Anything less is unacceptable.

Important issues aside, I have decided to have a little bit of fun with election data to determine who the smart people vote for. Note that this is all in good fun and should not be considered to mean anything important. During an election, a common claim people make is that those with a different choice for President are less intelligent. Determined to get to the bottom of this, I have combined the Education State Rankings with the election results:

  1. <?php
  2. $x1 = 0;
  3. $y1 = 0;
  4. $x2 = 5;
  5. $y2 = 50;
  6. $gradient = imagecreatefrompng('50x250.png');
  8. foreach ($ranks as $rank => $state)
  9. {
  10.     if ($state['kerry'] > $state['bush'])
  11.     {
  12.         $color = imagecolorallocate($gradient, 0, 0, 255);
  13.     }
  14.     else
  15.     {
  16.         $color = imagecolorallocate($gradient, 255, 0, 0);
  17.     }
  19.     imagefilledrectangle($gradient, $x1, $y1, $x2, $y2, $color);
  20.     $x1 = $x2;
  21.     $x2 += 5;
  22. }
  24. imagepng($gradient);
  25. ?>

For the sake of brevity, I have removed the creation of the $ranks array, but the following illustrates how it is constructed, using the smartest state as an example:

  1. <?php
  2. $ranks['1']['name'] = 'massachusetts';
  3. $ranks['1']['kerry'] = '62';
  4. $ranks['1']['bush'] = '37';
  5. ?>

The resulting image is 50 pixels tall and 250 pixels wide. Each state is represented by a rectangle that is 50 pixels tall and 5 pixels wide. The smarter a state is, the closer it is to the left. The result is a gradient that represents each state's choice for President - blue represents Kerry, and red represents Bush:


With a simple change, I can represent each state with a color that represents the popular vote rather than just the electoral vote:

  1. <?php
  2. $red = $state['bush'] * 2.55;
  3. $blue = $state['kerry'] * 2.55;
  4. $color = imagecolorallocate($gradient, $red, 0, $blue);
  5. ?>

The resulting image is the same, except that we now have shades of red and blue that represent the polarity of a state's decision:


Lastly, let's see what these two gradients look like if we give smarter states a brighter color. I can create a variable called $strength that represents the percentage of 255 that I assign a color, and I'll use the state's rank to calculate this:

  1. <?php
  2. $strength = ((102 - (2 * $rank)) / 100);
  4. if ($state['kerry'] > $state['bush'])
  5. {
  6.     $color = imagecolorallocate($gradient, 0, 0, 255 * $strength);
  7. }
  8. else
  9. {
  10.     $color = imagecolorallocate($gradient, 255 * $strength, 0, 0);
  11. }
  12. ?>

This gives us a weighted electoral vote gradient:


  1. <?php
  2. $strength = ((102 - (2 * $rank)) / 100);
  3. $red = $state['bush'] * 2.55 * $strength;
  4. $blue = $state['kerry'] * 2.55 * $strength;
  5. $color = imagecolorallocate($gradient, $red, 0, $blue);
  6. ?>

This gives us a weighted popular vote gradient: