Tuesday, March 20, 2007

Burying Us With Our Own Confusion


This video is an interesting mashup (combination) of the notorious 1984 Macintosh ad by Apple Computer and the race for the Democratic Party nomination for the 2008 U.S. Presidential election. It's clever (especially the closing logo that reshape's Apple's older logo).

It's also an interesting stretch of copyright and fair use guidelines. "Fair Use" is a legal term that outlines conditions allowing people to copy someone else's work legally. In the United States, Section 107 of the U.S. Copyright Act sets allows for the use of copyrighted material "for certain purposes, such as criticism, comment, news reporting, teaching, scholarship, and research" (Source: Yale University).

Of these six areas, the only one that I see as possibly relevant is "criticism" or possibly "comment." Yet, the video is advertises a viewpoint and, while exceptionally clever in execution (right down to the addition of the iPod to the runner), it's still "advertisement."

Now, I'm not a lawyer (though I could play one on T.V...honest) , but if I were one of the flies on the wall at Republican strategy sessions, I'd find a way to bring suit against whoever first uploaded the file and create a distraction about it, one that creates headlines obscuring the real problems with the current Administration. (You know the ones I mean: lies, private armies, wasted monies, cronyism, incompetence, videotape.) I'm sure Fox News would be all over the story, ready to paint both Hillary Clinton and Barack Obama as fools and incompetents.

I'm sure this ad was created by an Obama supporter and I applaud their creativity and execution. However, it's a little unnerving to see so much early focus on toppling rivals for the nomination, rather than a focus on toppling the current Administration. Speaking solely for myself, I would have preferred this particular mashup to use the current President's words rather than the former First Lady's.

But that's my preference. What's your's?

Tuesday, March 13, 2007

Learning from "The Man of the Year" (Part II)

In my last post, I described how much JP and I enjoyed the film Man of the Year and I gave writer and director Barry Levinson well-deserved kudos for his ability to create effective stories and movies. I also took issue with his computer programming skills and promised to explain further today.

You'll recall that the voting machines in Man of the Year contain a "glitch" that causes them to return the wrong results when th names of all candidates on the ballot contain double letters, e.g. BB, GG, LL, and so on.

As a plot device, it's nearly perfect. It's a subtle test case, rarely seen...one that could easily be missed by your average software tester. However, there's a major problem with the premise.

No competent programmer, no matter how inexperienced, would design a voting machine to sort names in order to determine the winner of the election. I could, perhaps, see this kind of design by a young programmer working out of a garage, but not from a successful software company with a thousand employees.

To understand why I say this, take a moment to think about the what a voting machine does and how it might perform that task as flexibly and easily as possible. As demonstrated in the movie, Delacroy's voting machines present a list of the candidates for a given election and records the number of times people press the button next to each name. Simple enough, right? Count the number of times people pressed button A, how many times people pressed button B, and so on.

When you're finished, you figure out which button got the most votes and return the name associated with that button. In the movie, the Delacroy machines present the candidates in order of social standing. President Kellogg appears first, Senator Mills is next, and Dobbs appears at the bottom of the list. That makes sense and mirrors the way many ballots are designed. So far, no problem.

Now, take a moment and think about the number of voting districts and precincts in the United States. On the national level, we have 435 seats in the House of Representatives, 100 seats in the Senate, one seat in the Oval Office, and innumerable local elections, propositions, initiatives, and so on. This means that Delacroy's voting machines need to be able to handle more than 700 separate names and election descriptions...and that's if we limit the positions to those on the national stage and each position to a potential of three candidates. By the time you allow for state level races, municipal elections, initiatives, propositions, and other things that regularly appear on a ballot, you realize to need well over a thousand slots for names.

Mapping votes to names (and the number of letters, spaces, and punctuation needed to support the range of possible names) would be woefully inefficient and wasteful.

Instead, the average voting machine has a certain set of buttons that can appear on each page. Each race is presented as a single page. When the voter is given a choice, only the set of names for a given race appears at a given time. Thus, votes are tallied by position.

When the election's over, the program reviews the total votes by position, determines which position got the highest number of votes, and then return the name associated with that position. The number of letters in the name doesn't even enter into the equation.

In other words, the voting machine doesn't scan names; it scans votes. To illustrate, consider the following:
  1. Democrat - 7 votes
  2. Republican - 5 votes
  3. Independent - 3 votes
In the revised design, that list is treated exactly the same as this one:
  1. Bullwinkle - 7 votes
  2. Rocky - 5 votes
  3. Natasha - 3 votes
As you might expect, the next list is handled exactly the same way:
  1. Kellog - 7 votes
  2. Mills - 5 votes
  3. Dobbs - 3 votes
In each case, the voting machine returns position one and then looks for the name to show. It does this not because it sorts the names alphabetically, but because it sorts the results by number of votes. Once the winning position is known, then the name associated with that position is returned.

Now, I know I've already said that the film is worth watching. It has some important things to say about the way we elect leaders in this country, the risks associated with paperless electronic voting machines, and the type of person who should be President. So, why am I talking so much about the technical "glitch" in the script?

I know I occasionally get visits from writers and those who would become writers. If you are writing about something beyond your experience, please take the time to have your ideas carefully reviewed by someone who is experienced with the subject matter. Otherwise, you place your credibility and the success of your work at risk.

While watching the movie, I got sidetracked by the improbabilty of the "glitch" that it pulled me out of the story. The illusion, if you will, was broken. As a result, that negatively impacted the effect of the file for me and brought the credibility of the writer into question. If I can't trust him to get a technical detail right, then how I can trust the ideas or conclusions that he offers through his story?

Now, Levinson is a good enough storyteller and filmmaker to transcend the technical stumble. Not everyone is so gifted. Again, if you're not clear on the material your writing about, then make sure you find someone who is. That person will help you avoid embarassing mistakes.

Photo credit: Universal Studios

Labels: , , ,

Monday, March 12, 2007

Learning from "The Man of the Year" (Part I)

...[S]uit the action to the word, the word to the action; with this special observance, that you o'erstep not the modesty of nature. For anything so overdone is from the purpose of playing, whose end, both at the first and now, was and is, to hold, as 'twere, the mirror up to nature...Now this overdone or come tardy off, though it make the unskilful laugh, cannot but make the judicious grieve; the censure of the which one must in your allowance o'erweigh a whole theatre of others.
-- William Shakespeare,
Hamlet, Act III, Scene II.

A few days ago, JP and I rented Man of the Year; we really enjoyed the movie and found it a much stronger film than the trailer had led us to expect. We'd expected a light comedy and found a light comedy with some heavy-weight observations about the electoral process and personal ethics.

Written and directed by Barry Levinson, the film chronicles the presidential aspirations of Tom Dobbs (played by Robin Williams) Dobbs hosts a political satire comedy show clearly modeled on John Stewart's The Daily Show. Based on the idle remark of an audience member, Dobbs launches an improbable bid for the (U.S.) Presidency.

To set himself apart from the party candidates, Democratic President Kellogg and Republican Senator Mills, Dobbs runs as an Independent and refuses to accept donations from special interests, so he can be a President whose only constituents are the American voters.

To the surprise of everyone, Dobbs wins the election. Later, he learns he owes his victory to a software "glitch," rather than by voter mandate.

Before I continue, let me again say that I think this is a really good film, one well worth watching. If you've not seen it yet (and have a stake or interest in the forthcoming election), please set aside an evening to enjoy Robin Williams as he lays out all the common sense reasons why our current process is fractured, if not outright broken. (The debate scene is particularly enjoyable.)

However, the film contains a major problem...namely, the "glitch" that supposedly allows Dobbs to win the election.

During the course of the story, we learn that this particular is the first to be conducted using electronic voting machines. Delacroy, the company that makes the voting machines, is awarded a contract to supply machines to every district, polling place, and venue. As a result of this coup, Delacroy stands to close a major international deal...provided the Presidential election runs smoothly.

Eleanor Green, played by Laura Linney, is a quality assurance tester for Delacroy and she detects a problem with voting machines software prior to the election. She dutifully reports her findings to management...and management promptly suppresses her findings to avoid impacting the value of the company's stock on the eve of the election.

The election proceeds and Dobbs wins every state where he's been able to get on the ballot. States running just the two party candidates go to the incumbent, President Kellogg. Eleanor tries to get management to own up to the fact that the wrong man got elected. Instead, she's set up and fired.

She decides she needs to tell Dobbs about the problem. While trying to do so, she continues to study the voting machines to better understand the nature of the problem. Eventually, she realizes that the "glitch" (which is never called a "bug," by the way) is a sorting problem. When all of the names on the ballot contain double letters, such as Dobbs, Kellogg, and Mills, the voting machine returns the name that appears first alphabetically., rather than the name of the candidate that received the most votes. Thus, Dobbs wins his states due to the double-B's in his name and Kellogg wins his states because of the double-G's.

It's a rather clever little plot device. It's subtle and hard to detect, just as a bug of this magnitude should be. Levinson a good writer and he's clearly spent some time thinking up what seems to be a plausible reason why the machines mistakenly elect Dobbs.

And no one (least of all me) is going to say that Levinson isn't a good filmmaker or writer. He's been nominated for multiple Oscars, Emmy's, and so on. He's written and/or directed some of the most enjoyable movies of the last twenty five years, including Bugsy, Rain Man, Diner, Wag the Dog, and so on. Levinson clearly knows how to create a good movie and Man of the Year is no exception.

However, it doesn't seem that Levinson is much of a computer programmer. I'll explain why in tomorrow's post.

Labels: , , ,