Archive for the ‘TV’ Category

Dear NBC: Please Don’t Ruin Next Week’s “The Office”

Monday, October 5th, 2009

The Office premiered a few weeks ago, and it’s been a pretty good run so far this season. But there’s a ‘special event’ coming up this week *mdash; Jim and Pam’s wedding — and I’ve got a certain feeling of dread thinking about it. Let’s face it: TV networks love to let us down. So I’m asking you, NBC, from the bottom of my fanboy heart, not to ruin what should otherwise be an enjoyable and eventful episode of your fine show. I realize that the show is already in the bag, but I want to complain anyway, so I will. Got that?

Please, no drama. The Office is a comedy, after all. Drama can be good every once in a while, but you don’t need to inject it into every damn episode. This week’s show is a big one, and it would be nice if, just for once, everything could go off without a hitch. Can you imagine that? A fun episode through and through, with no cold feet or misunderstandings about such-and-such or reappearances of sketchy former boyfriends to install a feeling of doubt or any of those other tired, old wedding clichés… it would be refreshing.

The trend over the last decade or so has been to inject drama into sitcoms, and it’s worked pretty well in general. But… there’s always to danger of too much of a good thing. Just because it can make a certain series interesting and engaging (Scrubs comes immediately to mind, ditto Pushing Daisies) doesn’t mean that every episode ever needs it. Sometimes, I just want to laugh. There once was a time when adding a bit of emotion into an otherwise funny show was a rare thing and something to be admired. But then it became a fad, and everyone started doing it. I blame Friends, and Ross and Rachel. But as it has become the norm instead of the exception, it’s become a bit old. And now we’ve come half a circle, NBC, and you can do the new and different thing by not injecting some sort of crisis or epiphany or disaster into this week’s episode.

I’ve been pulling for Jim and Pam for a long time, NBC. After all, Jim is a guy I can relate to, and Pam is smokin’ hot. I just want them to be happy. The best moments on the show are the ones where we see them as a pair, happy and glad of each others’ company and relating like human beings. Yes, their drama worked early on and even drew me into the show, but now is the time for smiles and celebration. I want to see Michael be an idiot, and Dwight show some of that weird, off-putting ‘expert’ charm, and Andy fail with the ladies. I want to see all those things. But I also want to see Jim and Pam smiling and happy at the end of the episode, without some formulaic romantic comedy grade BS to foul up the hour. Is that too much to ask?

The biggest surprise of all, NBC, would be if you were to surprise me with no surprises. Just let things happen the way they should. I want a sense of finality when I turn the show off, not some lingering cloud of doom over the characters’ (and my own) heads.

How to Win (Or Maybe Not) on Wheel of Fortune

Wednesday, August 19th, 2009

Wheel! Of! Fortune!One nice thing about being a programmer is that you can automate certain calculations that you’d have to be crazy to attempt any other way. While some would see a non-programmer attempting to figure out some of this stuff as borderline insane, we coders just come across as eccentric with a lot of time on our hands. If people ask a question fairly frequently, and said question involves lots of number-crunching, you can bet some coder somewhere has taken a crack at trying to crunch those numbers.

Case in point: Wheel of Fortune. Now, I’ve never really been a huge fan of the show, but I see it a lot anyway. It’s on after Jeopardy!, which I really do enjoy and try to watch fairly frequently, so I’ve seen my fair share of episodes of Wheel. One thing that always got me was the final puzzle. For those of you who don’t know, this is how it works: the winning contestant from all the previous rounds must solve a shorter, harder puzzle by himself in a small span of time. He is given a (usually unhelpful) hint in the form a category, and some of the most common letters in the English language (R, S, T, L, N, and E) are already shown. Then the contestant must choose three more consonants and one more vowel. If any of these letters occur in the puzzle Vanna White shows them, and the players has ten seconds to guess what the word or phrase is.

There are other factors at play here, but they don’t relate to what I’m interested in most, namely: What are the best letters to pick? Can we do an analysis of the letter frequency of a whole bunch of these puzzles? Can we determine whether or not the producers of the show pay attention to these frequencies? Thanks to the Internet and some spare time in the hands of a programmer, the answer is a (qualified) yes, we can. Please note that while I do enjoy math, I am most certainly not a mathematician, so this is just an armchair analysis, and not a scholar’s take.

First, I needed a set of data. As interested as I was in determining the letter frequencies, I wasn’t about to spend six months collecting data by actually watching the end of each show. I have the Internet to do that sort of stuff for me! In this case, I found this forum, whose residents had already done the hard work. I was able to grab the final puzzles from a couple of threads on this site, and store them in some text files, one puzzle to a line. Then, I wrote a short Python script to parse through the results and generate links to a Google Charts representation of the data. If you’re going to screw around on the Internet, why waste time inputting data into Excel?

The Code

Below is the code. Please note that while I have commented it, it’s task-oriented code. I did not sit down and think things through for hours on end; I was more interested in the results produced by the code than the process of making it. To that end it may be a bit rough around the edges. If you’re a Python programmer you might even think it un-Pythonic.

Show/Hide Source Code

from operator import itemgetter # for sorting
import sys # for command-line arguments
# makes sorting dictionaries prettier
def sortDictionary (s):
    return sorted(s.items(), key = itemgetter(1), reverse = True)
hexColors = ["F05DCF", "F4B213", "7BB5FE", "19B915",
       "C913E4", "E38080", "4891EB", "DCF725", "E02EB0",
       "EE7D18", "16D949", "73E0C9", "22F1DB", "1460A1",
       "CF8040", "FFFFFF", "CF8054", "204E00", "2B1160",
       "87513C", "DECEE9", "C913E4", "83B892", "597D4C",
       "DACA5D", "2F486B", "D79E17", "826889", "359DA1",
       "DE7A43", "568C51", "FBF786"]
if __name__ == "__main__":
    # set up command line arguments
    # thumb:   creates a smaller file, with shorter (or no, depending on letter count) labels
    # verbose: prints out each list of letters and frequencies, too
    if (len(sys.argv) < 2 or len(sys.argv) > 4):
        print "Usage: [filename] [t|f] [v]"
    thumb = False
    verbose = False
    fileName = sys.argv[1]
    if len(sys.argv) > 2 and sys.argv[2].lower() == "t":
        thumb = True
    if len(sys.argv) > 3 and sys.argv[3].lower() == "v":
        verbose = True
    # set up lists of letters
    letters = ["a", "b", "c", "d", "e", "f", "g", "h",
               "i", "j", "k", "l", "m", "n", "o", "p",
               "q", "r", "s", "t", "u", "v", "w", "x",
               "y", "z"]
    consonants = ["b", "c", "d", "f", "g", "h",
                "j", "k", "l", "m", "n", "p",
               "q", "r", "s", "t", "v", "w", "x",
               "y", "z"]
    vowels = ["a", "e", "i", "o", "u"]
    # letters to exclude (already given to you on game show)
    already = ["r", "s", "t", "l", "n", "e"]
    # set up frequency dictionaries {leter : number of occurences}
    allFrequencies = dict((letter, 0) for letter in letters)
    vowelFrequencies = dict((letter, 0) for letter in vowels)
    consonantFrequencies = dict((letter, 0) for letter in consonants);
    # Read the data file. Should consist of one final puzzle
    # solution per line, optionally lines can start with "#" for a comment
    file = open(fileName)
    while True:
        line = file.readline()
        if not line: break #end of loop
        if line[0] == "#": continue # skip comments
        for letter in line:
            lower = letter.lower()
            if lower in allFrequencies:
                allFrequencies[lower] = allFrequencies[lower] + 1
            if lower in already: # exclude RSTLNE from vowels and consonants
            if lower in vowelFrequencies:
                vowelFrequencies[lower] = vowelFrequencies[lower] + 1
            if lower in consonantFrequencies:
                consonantFrequencies[lower] = consonantFrequencies[lower] + 1
    #sort dictionaries
    allFrequencies = sortDictionary(allFrequencies);
    vowelFrequencies = sortDictionary(vowelFrequencies);
    consonantFrequencies = sortDictionary(consonantFrequencies);
    if verbose:
        #display the lists
        print "ALL:\n", allFrequencies
        print "\nVOWELS:\n", vowelFrequencies
        print "\nCONSONANTS:\n", consonantFrequencies
    charts = {"All+Letters" : allFrequencies, "Vowels" : vowelFrequencies,
             "Consonants" : consonantFrequencies}
    for chart in charts:
        # make the image URLs, using Google Charts
        if thumb:
            url = ""
            url = ""
        # build lists for data series and its labels
        labels = []
        data = []
        for entry in charts[chart]:
            if int(entry[1]) > 0: # exclude any letters not used
                # make sure a thumbnail doesn't have too many labels to clutter it
                if thumb and len(charts[chart]) <= 6:
                    labels.append(entry[0].upper() + "+(" + str(entry[1]) + ")")
        # set them to the query string parts for data and labels
        dataRange = "&chd=t:" + ",".join(data);
        if (thumb and len(charts[chart]) >= 6):
            labelRange = ""
            labelRange = "&chl=" + "|".join(labels);
        # build the array of chart colors
        chartColors = "&chco=" + ",".join(hexColors[0:len(charts[chart])-2])
        # build final URL
        url = url + dataRange + labelRange + "&" + chartColors + "&chtt=" + chart;
        print "\n", chart, "\n", url

The Results

Might as well show off the pretty, pretty pictures, huh? Click any graph below to enlarge it.

At first look, the data is not too promising. I can give you two letters that will increase your chances of getting a ‘hit’, and one of them might come in handy. In our six months’ worth of data, O is the favorite… but not by much. Looking at both periods, it seems pretty clear that somebody at Merv Griffin Productions is responsible for distributing the vowels O, I, and A across the spectrum so none of them shows up too frequently. Notice how I and O are tied on the most recent set of data, but A is the second-most frequent vowel on the older figures. Combining all the numbers, we see that these three vowels are essentially tied in frequency, with U in a slightly lower class. But at least it’s something to work with, right? From the last six months of Wheel, it looks like ‘O’ is the best vowel to go with.

Now what about consonants? I was most excited when I pulled up the 2009 consonants graph (the first one I did), because you can clearly see that the top two letters are definitely a bit more common than the rest, and even the top three look pretty solid. H, G, and D… could those be the winning ones? My excitement faded, however, as I ran the earlier set of data through the script. Looking at the combined chart, H still has a statistically significant lead. But you’ll have no luck trying to discover the three letters to choose. But we can limit our options a little. F, G, and B are all clearly separated from the next letter (D) in the combined graph, with a decent-sized gap between them. It’s harder to say for certain, but it looks like the producers may be balancing these top four letters throughout their puzzles.

So, what to go with? You should definitely choose O for your vowel. H is the consonants which statistically is most likely to occur. Then any of F, G, and B would probably do you some good.

And how about those shifty producers? Are they gaming the final answers, so they don’t have to give out as much prize money? Are they maybe picking and choosing their phrases to deflect somebody who did a little research before heading down to the studio to play? Well, let’s try to find a pattern in the frequency of letters in the English language (please note that I’ve removed RSTLNE from these graphs):

Right away you should notice some major discrepancies between the Wheel of Fortune data set and written English. While H shows up at the top where we’d expect, D is clearly in a much higher class than B, F, and G that we picked above. In fact, F and G aren’t even in the top five, and other letters that show up often in English aren’t placed very high in the combined final puzzle data. This is probably the result of producers fine-tuning their answers over the years, either to avoid the letters contestants chose most often or to more evenly distribute the winning ones.

This is such a small data set, however, that we shouldn’t rely on it too heavily. After all, Wheel of Fortune has been on the air for twenty-six years, and we only have half a year’s worth of data, or around 2% of all that is available. But a small attempt at analyzing this data is probably better than going in blind and picking letters that you ‘think’ show up frequently.

There are other ways that this quick-and-dirty analysis can be improved. Mine is a pretty naive approach. Going over some basic rules of English might help to improve the method. For example, breaking the final puzzles down into phonemes could yield more information, as might looking at letter pairs instead of single letters. For instance, Q never occurs without U, and some letters are more common after others. This is especially useful in our task, as we need to choose three consonants but only one vowel. Consonants are most often followed by vowels, so consonant pairs increase the uniqueness of a phrase. P is often followed by R, L, or H, for example. Looking for patterns in the words themselves might also yield better predictions about what letters would be better to guess.

Another thing to realize is that these numbers are averages from a discrete set. Some puzzles might include the high-frequency letters and be solvable with only those (and RSTLNE), while some might not include a single one of the high-frequency picks. Picking from one of the high scorers might improve your odds of getting more letters, but it doesn’t guarantee that you’ll get some, or even any. You might wind up with something like ‘Blind Luck’, which doesn’t contain an O or an H. These estimates can help you, but only so much.

So, after all these calculations, I now know what I would do if I ever found myself in Wheel’s final round. I’d go for H, G, and B (G and B having been arbitrarily picked over F), and then O as my vowel. And maybe I’d win big. Of course, the biggest factor in all this is your ability to manipulate letters and words in your mind. That’s one subject in which I lack skill, as evinced by the Boggle-solving program I wrote (a story for another time). So I might tank, even if my statistically-chosen letters filled out quite a bit of the puzzle. A lot of it does come down to luck, which was probably the producers’ intention all along.

R.I.P., Pushing Daisies (Prehumously)

Saturday, October 13th, 2007

Hmmm… a show that is funny, yet dramatic, creatively visual, and has a quirky premise. How many episodes is Pushing Daisies going to last? Four? Seven? Probably, the network execs (ooooh… those vilifiable executives!) will decide that the show’s budget is too high for the ratings it gets, and will push it to… I dunno… Thursdays at 3 a.m.? Or they could kill it outright by moving it to the Friday night death slot.

And then, of course, the inevitable articles lamenting its death, and possibly pointing to the fan outcry as a possibly means of resurrection. Fifty bonus points to each journalist who ‘creatively’ suggests that maybe the should could make a comeback if only it could use the main character’s power on itself!

Or, they could let a show thrive. I’m not brilliant network executive, with private jets and 3-martini lunches, so I can’t interpret the show’s ratings. Maybe it’s doing spectacularly? It would be a sin to kill a show that started so strong, and has so much room to grow.

It really makes you question the nature of death. Can there be a God when a vile, wretched show like Desperate Hosewives will live, probably forever, sucking the blood of the innocent and sinless shows in its wake, while something as cute as Pushing Daisies is almost certain to kick the bucket.

A note to TV show producers

Friday, April 6th, 2007

You may post new episodes of shows like Battlestar Galactica and The Office on the iTunes store, but you have to do it faster. I can usually find a new episode of such a show from the BitTorrent network an hour after it airs, and can have it downloaded before the night is over. If I miss my show, I want to see it ASAP, not 24 hours after it airs. Get your shows up faster, because I’d much rather pay for and download a new episode right away with the iTunes store instead of waiting for my P2P download to finish. As long as I can get it faster via P2P, I will.


Sunday, October 22nd, 2006

In case you were wondering, like Doctor Girlfriend, whether Klaus Nomi was from the future or what, here he is in his plastic tuxedo (“All but ze bow-tie!”).

Battlestar Galactica – “Exodus, Part 2”

Friday, October 20th, 2006

Holy cow. Part of me expected the Vichy France-like state of affairs of BSG to continue the entire third season. I had a sneaking suspicion that it would end with this episode — after all, it is called “Exodus.” And it’s not really over, either: there are collaborators to deal with, flashbacks to see, and Cylon acts of retribution to withstand.

I wish I had put it up last week (so you’d know I’m not lying), but I totally called the destruction of the Pegasus. There’s no such thing as a free lunch, they say, so I figured that the ship would go. It was either that or the Galactica, but that would require renaming the series, wouldn’t it? The destruction of the two Cylon Basestars was another added bonus, and made me almost as happy as the destruction of the Ori and Wraith ships in the Stargate SG-1 episode “The Pegasus Project.” Adama’s tactic of jumping into the atmosphere, launching vipers, and jumping away was neat, but it was fairly reckless. The best ‘sci fi’ shot of the episode was definately the Basestars pounding the holy hell out of Galactica. I expected a commercial before we got to see Pegasus give the Cylons what for. And Lee totally went all Worf on ’em when he gave the order for ramming speed.

Speaking of changes, Ellen Tigh’s death (at the hands of Saul, no less) opens up a world of dramatic possibilities. I think her poisoning/death scene with Saul was one of the best moments of the show. But what happens now? Will he shave the beard in remorse (I hope not; I like Pirate Tigh)? Will Colonel Tigh descend deeper into his alcoholism? Will we see Ellen again, confirming the wide rumor that she is a Cylon? I personally doubt she is, because why would theBrother Cavill model have traded sex with another Cylon for Saul’s freedom? The drive of the skinjobs on the show is to frak humans, not each other. This is also why I believe that Baltar is not a Cylon — that theory’s just crazy.

I (as I’m sure almost everyone else did) also called it that Kacey wasn’t really a Cylon-human hybrid. Why the hell would Hera have been so important to them if Kacey was allowed to fall down the stairs (or more likely was pushed down the stairs by Leoben)? But wouldn’t it have been more interesting if we hadn’t found out that Kacey was someone else’s daughter? Imagine the overwhelming tension Starbuck would feel on each Viper run, with her daughter waiting for her to retrn? That would have been good storytelling.

Tom Zarek is apparently a Laura Roslin fanboi now. Will she become President again? Will there be a few episodes about some sort of Interstellar Constitutional Convention? Will Zarek become the new Vice President? If RDM and company can get the politics into the show without being preachy and boring, I think they should go for it. It’s dangerous ground, however — remember the Next Generation episodes about the Klingon High Council? I found those shows to be awful.

Finally, I wish more had happened with Baltar. I read in Entertainment Weekly that a regular on the show stabs him in the neck with a pencil. I’m so disappointed that didn’t happen! Clearly, he’s stuck with the Cylons. That element of the story, the cowardly traitor dreading being discovered, is gone. Unless Baltar becomes a super-scientist double agent! It looked like the preview for next week’s episode showed Gaeta as one of the colonials on trial for collaboration. I bet he is cleared of charges when it is revealed that he was the informant for the Resistence.

Predictions for next week:

  1. Jammer is put to death.
  2. Gaeta is put on trial, sentenced to death, and awaiting execution when he receives a repreive because it can be proved that he gave the Resistence their intelligence.
  3. We’ll learn something ominous about Hera.
  4. Baltar is taken captive by the Cylons, who bring him to their homeworld (this might be a few episodes in the future).


Tuesday, August 26th, 2003

I just finished watching Blue’s Clues on Nickelodian.It was… different. For those readers unaware with the general concept, a besweatered (is that a word? Kind of like ‘bespectacled’) man runs around an animated house, following his blue dog as he lays down clues. Obvious jokes about this man’s drug habits aside, the show was fun. I remember watching Sesame Street as a kid, a show filled with giant yellow anthropomorphic birds and furry creatures of an indeterminate origin. That show gave me a nightmare when I was five that I still remember. My dad and I were walking around outside of Walla Walla when a muppet dog came up to us, demanding to know where the bank was. For whatever reason, my dad wouldn’t tell us, so the dog shot him! I woke up crying.

I mean, seriously, whatis this thing?

Anyway, Blue’s Clues is much less terrifying. First of all the main character, whose name is probably ‘Steve’ or ‘John’ or maybe if the producers are adventurous, ‘Bill’ is about as threatening as a lukewarm bowl of soup. All he does is prance around, occasionally singing and ‘Ski-Dooing’, a strange process in which his body spins around while he shrinks to the size of a golf ball so he can explore books and paintings. There is no way in hell he is devious, either, because he can’t accomplish a task (‘Which shape is a triangle?’) without having the disembodied voices of small children shout out the answer, which is usually non-specific (“That one!”). A smart toddler could get through this show shouting only, “That one!” and emerge a winner every time.

Second, none of the animated characters with which Steve-or-Ted-or-Bill interacts have those huge, googly, Muppetâ„¢ eyes. Those alone gave me — still gives me — nightmares.

Current Listening:
Lagwagon: “I Must Be Hateful”
I can’t make the damn phone ring

It’s simply pathetic if I call you anymore

I can’t figure it now

We tallied our scores

I got knocked out

Finally, there were no vampires with obsessive-compulsive disorder on this show. That I’m aware of. Fun Side Note: In folklore, vampires are often believed to be obsessive-compulsive. One way to deal with them, in fact, is to lay a mess of sesame seeds (sesame seeds…. dramatic music……) in their coffins. They will try to count them and spend eternity doing so.

So I watched the show, but could feel my brain atrophy with each note sung. That’s the weird thing about children’s TV — it really does help kids learn, but adults will slowly go mad watching it. There’s no question in my mind that Blue’s Clues is better for kids than Sesame Street was. It’s interactive (as interactive as television can get), and it builds a kid’s confidence. Sesame Street was that way too, but in smaller doses. And what the hell was up with Oscar the Grouch? When I was younger it was my job to take out the trash, and I was terrified that a furry hand would reach out and clench around my throat.

I went up to Aaron’s house last night. We watched Tremors and Mallrats. Both of them I had seen multiple times, but it was still fun. Tremors, desite its B-Movie cheesiness, is a just plain fun flick. Mallrats, though not as funny as it is upon first viewing, is like an old friend now — I’ve probably seen it half a dozen times.

Shawn, Kyle and Reid came up. When i suggested that Aaron make some soup, they attacked me. But it was worth it! That soup is deeeee-licious! I ate it with Triscuits — yummy! After the movies Shawn suggested we pop in the porno (Truth or Dare Fantasies or some crap) he had purchased in Missoula. I took the time to leave.

I came home about 12:30 and recorded a few basslines for some Suckers songs. The album’s almost done — all it needs is two more basslines and vocals on a few tracks.