I was up early one morning, and was watching the SciFi Channel, in particular the old show Wonder Woman. If you haven't seen the show in a while, then you should watch it again just to remind you of just how cheesy it was... I'm not talking about the stories, or the characters, that's pretty subjective; what I'm talking about is the special effects and production. Let me give you an example: Wonder Woman was chasing some guy on a motorcycle, and the parts that were a closeup were clearly just her sitting on some prop motorcycle with a film running on a screen behind her (or something equally unsophisticated). Anyway, this got me thinking about the production values of shows today, and how much we've benefitted from technology in the realms of entertainment. Take a show like Sliders, which is another relatively low-budget show, and while the effects aren't stellar, it certainly is leaps and bounds beyond Wonder Woman. Don't get me wrong, I know it's easier to do things these days, but scenes like the motorcycle one are more like they just say "Yeah, people are generally pretty dumb, let's just prop you up on a 10speed and shake a slide projector to make it appear you're moving...".
But then it suddenly hit me - What about shows like NightMan? If you haven't seen it, the premise is that some sax playing Fabio guy who has psychic powers gets some high tech body armor that let's him fly around and turn invisible, etc. If you do have the privilege of seeing this (stay up until around 3 or 4am on Friday or Saturday and it's bound to be on some channel), when he flies it is so amazingly bad, it's almost humorous; but since you know they're really trying, it's kinda sad. To it's credit, the show has gotten WAY better than it previously was; I remember the first couple episodes, it was almost akin to something you'd do with a bunch of your friends and a camcorder - you think I'm kidding, but I'm not! Almost EVERY scene was shot in front of a bluescreen, and then they key'd them into some scene, which always had these really bad fog (since they are in San Francisco, and everyone knows there's fog there, right?). It was one of those shows that was so bad it was actually fun to watch, but since their budget has increased a tad, it's lost it's appeal for me.
So what's similar about Wonder Woman and NightMan? Why, they're both Super Heros! I think that if you want to be ensured of getting a very low budget, and you are really shooting for low production value (on a whole), then you're best bet is to make a Super Hero show. Let's take a walk down memory lane, and see if this is true... Remember the Spider Man live-action show? Pretty much in the same caliber as Wonder Woman (remember the totally lame scenes when he would walk up the side of a building, obviously being winched up from the roof? Uhg)... What about Batman? They only got away with it because it's like they realized that they had no chance on making a serious show, and just went for campy (which worked)... About the only one that this doesn't apply to was the Incredible Hulk, but what kind of special effects did they need on that? Green body paint, maybe strobe lights to help mask the transition from normal human to hulk. So, next time you hear about a TV show based around a Super Hero, and you sit down to watch it, ultimately to be disappointed; remember that I warned you!
The Evolution of an Algorithm
I occasionally get emails from people who want to know how it is that I make all of these programs, and I simply say 'Algorithm'. Now, of course this is pretty brief, and doesn't mean much of anything, but if it did I'm sure it would be very insightful. So what stops this answer from being enough? Perhaps people need to understand just what an algorithm is in order to understand the answer... So I wrote this, and we will explore making an algorithm together! Sounds like fun, eh? No, I mean it! But let's forget about all the technical nonsense, let's try to come up with an algorithm we can use in our every day lives, sound good? hmmm... I've got it! Ever wonder if there was an algorithm for male/female like Terry/Teri or Gerry/Geri? Well, let's make one!
First, let's look at a couple of these names; Terry/Teri, Gerry/Geri, Ronny/Roni, etc... Let's look at the translation that makes a male name into a female name (please keep in mind that we could do the reverse, and call it the inverse-gender name translation, but we'll deal with male->female translation in the article)... There really aren't female names for male names like Mitch or Jeff, so we need a filter first... How about the name must end in a 'Y'? That seems to meet the above criteria... So if the name ends in 'Y', you change it to an 'I', now we have Ronny to Ronni, so we'll add one more stipulation that we drop any repeating characters, to Ronny now becomes Roni! Woohoo! We have ourselves an algorithm!
Wait a minute, what about a name like Roy? This doesn't work in out algo... hmmm... Ok, the name needs to end in 'Y', and be at least two syllables long - Fixed that bug! Ok, how about this one; Chris/Chris? Youch, that's a tough one... Well, I guess with the girl name, that's really short for Christine, so if the boys name is one syllable, and matches the first syllable of a girls name, it is legal to shorten it. Let's see if we have another test for this; Joe/Jo... Sure, Jo is short for JoAnn, we're good to go! Wait a minute though, we lost a character in the translation from Joe to Jo, so we need to allow for the removal or modification of one non-repeating character; this will also help deal with situations like Jerry/Geri - BAM! Another bug bites the dust!
So there you have it! Now, you can dazzle and amaze your friends by applying this simple algorithm to their names, and testing it's fitness for the opposite gender - what a hoot! But seriously it does give you a little bit of a better understanding of how programs evolve on some level... You start out with a relatively simple concept, and then in the course of development the simple concept becomes more complex to handle more situations. For each bug, or each name pair that doesn't fit the current algorithm, you need to either re-evaluate how you process them, or put in another case for handling that specific situation. Easy, isn't it :)