Friday, December 26, 2014

They Weren’t Just Zombies

The first zombie, Patient Zero, was admitted to a hospital in Topeka, Kansas suffering from severe respiratory failure. He died three days later. Thirteen minutes after his death, when he reanimated, there were ninety-seven additional cases throughout North America. Seventeen hours, twenty-one zombies, and seven hundred eighty-nine cases later, the US president declared martial law and restricted travel to and from every major US city. It was already too late. In truth, there was nothing that could have been done to stop the world-wide plague.

By the time it was determined the pathogen was spread by pollen, 1.3 billion people had died. Binding the bodies of the recently deceased and burning them en masse delayed the zombie apocalypse for a short period, however, once the living fell below a critical mass, free roaming zombies were inevitable.

A small percentage of humans, the few remaining survivors, were effectively immune; only the bite of a zombie could infect them. At first, survival was all about foraging. Population collapse was slow enough that looting and hoarding were widespread. It was quick enough that there were vast stockpiles available for the taking; you just had to find them.

Lack of modern medical care was the biggest threat to the living. Zombies were just too slow and fragile to pose much of a danger. A slow-moving SUV with four wheel drive was sufficient to take out a herd of zombies. You just needed to knock one down and crush a few bones to render it harmless. Wild animals, carrion eaters, and slow decay would eventually clean up what was left.

Within a year, outdoor zombie sightings became a rarity. Any remains that had not been burned were washed into the sewers of the cities or absorbed back into the earth. The survivors, however, would soon learn a horrifying truth about the undead.

They weren’t just zombies, they were seedpods.

Sunday, November 30, 2014

Textbooks are Crazy Expensive

Doug Kari, writing for Ars Technica, on How an eBay bookseller defeated a publishing giant at the Supreme Court:
Supap’s saga started with an idea for a dorm room sort of business. Since 1978, textbook prices in the US had soared by 700 percent, but the pricing wasn’t uniform worldwide. Publishers charged more in the affluent North American market and less in other regions. They called this practice “market segmentation,” but to many it seemed like price-gouging. Supap discovered this himself: a textbook priced at $50 overseas might cost $100 in the US.
What interested me about this article is that I have some experience from the other side: I’m a textbook author. In 1989, I coauthored the first edition of Expert Systems: Principles and Programming. It was successful enough that we did three additional editions—the fourth was released in 2004—and it’s been translated to Spanish, Russian, and Chinese.

Using my royalty statement from the first half of 2011, I calculated that each domestic sale of Expert Systems generated twenty-four times more income than each international sale. That’s a huge disparity. Domestic royalty rates are twice international rates and the books are twelve times more expensive. It’s not surprising that international sales frequently exceed domestic sales by a factor of five or more.

I used figures from 2011 because that’s the last year I received any royalty income. My publisher filed in 2013 for chapter 11 relief under the bankruptcy code. They’ve since reorganized, but I have to wonder if their pricing strategies are the root of their problems.

Saturday, November 8, 2014

The Fifth Orientation

The newly discovered fifth orientation of toilet paper on the holder. Previously thought to be ridiculously improbable when there are six rolls of toilet paper in the cabinet within arm’s reach.


WTF?! Seriously?

Thursday, November 6, 2014

I, Juror

If you're going to serve on a jury, you’re lucky if it turns out to be an interesting case. This is a story about a jury I served on circa 1996.

I had the wonderful opportunity this past week to serve on a jury for the first time in my life. Yes, even though I was called out for jury duty twice shortly after I came to work for NASA ten years ago, I never actually served on a jury from the opening statements to the deliberation and verdict. Then I was given a second sign that voting for Perot had been a mistake. [The first sign was when I realized from his babbling that he was a lunatic. The second was when I remembered that there’s a correlation between voting and selection for jury duty.] So off I went to perform my civic responsibilities and in the process learned more about the current state of our judicial system than any one person should know. If nothing else, the experience was amusing. Everything that I’m about to tell you actually happened during the trial with the exception of the parts that I made up to make the story more interesting.

THE CASE

The jury on which I served was for a civil trial. The plaintiff alleged that she had back injuries stemming from a fall she took down a stairwell at her place of employment: The Magnolia Bar & Grill, a Houston Restaurant located on Richmond Avenue. She was suing the owners for negligence and wrongful termination.

THE LAWYERS

The plaintiff’s lawyer, hereafter referred to as the slimy one, looked a lot like Martin Mull with darker hair and no chin. In the following days I would come to know him as a perfect specimen of his species: Ambulari Chasorus—The Ambulance Chaser. Sure, you’ve seen him on TV, in commercials and on the news, but there’s nothing that can quite prepare you for observing him in his natural habitat. Kind of like seeing the lions at the zoo… loose, that is.

The defense team consisted of a pair of lawyers who in a previous life were either attack dogs or cock fighters. Apparently lawyers can smell ineptitude because they were chomping at the bit to tear into the plaintiff’s case. I actually enjoyed watching them tear the plaintiff’s story apart, ravaging it like starving, satanically possessed, PCP crazed, rabid pit bull dogs. That is until they got around to tearing the pieces into pieces and then the pieces of pieces into more pieces. It started getting pretty dull and repetitive at that point. Some people just never know the right moment to douse the carcass with gasoline and burn what’s left. But I get ahead of myself. Let’s move on to the actual testimony of the trial.

THE TESTIMONY

Prior to her fall, the plaintiff had preexisting back problems, so part of the job that fell to her attorney was to build a credible argument that her fall contributed to further damage of her back. The plaintiff’s first witness was her chiropractor. He testified that indeed her tumble down the stairwell significantly exacerbated her existing back problems and made them much worse. Upon cross-examination, it was learned that the chiropractor’s records indicated that the plaintiff had made no mention of her fall to him until six months after the incident occurred. She didn’t think that it was significant enough to mention, although over that six month period she mentioned at least four things to her chiropractor that aggravated her back including moving a couch, carrying her niece, falling off her commode (I don’t remember if we ever found out if she was sitting on it or standing on it), and driving for a prolonged period of time. All of these incidents were duly noted in the chiropractor’s records. The chiropractor noted that back injuries caused by accidents could often take months to manifest so it was believable that her injuries from the fall weren’t immediately apparent.

Next on the witness stand came the plaintiff herself. Here’s where the inconsistencies started flying and they never stopped. You see, if her injuries from the fall took six months to manifest, you really don’t know that they were caused by the fall and not something else (like falling off her commode). So now she says that her back problems got immediately worse after she fell at work. “But wait,” you say, “if they got immediately worse, wouldn’t she have connected the fall with her back getting worse and mentioned this to her chiropractor? I mean doing a flip down a stairwell and landing so hard that your butt gets bruised isn’t exactly falling off a toilet, but it certainly falls into the category of things that you’d probably mention to your chiropractor.” Well, if that’s what you’d say, you’d be wrong. If we believe her chiropractor’s records, falling down a stairwell actually improved her back because several weeks after her tumble, she told her chiropractor that her back treatments seemed to be working because her back was feeling much better.

Well, for the sake of argument, let’s just say that the fall did further injure her back, because in all honesty it’s not that hard to believe, even though her own testimony seems to indicate that it really didn’t make it much worse. Let me back up a minute and say that no one involved in the case ever disputed the fact that she did actually fall down the steps in a fairly spectacular manner. One of the two big questions to be decided in the case was whether the owner of the restaurant was negligent in making sure that the stairs were safe. Negligence in this case meaning that the owner failed to take reasonable precautions that a reasonable person in a similar situation would take.

According to the plaintiff, as she was coming down the stairs with another employee behind her, she noticed that the stairs were covered with water and grease as if someone had mopped the stairs down and then wiped them with a greasy rag leaving slippery black globs of goo on the steps. As she turned to warn the woman behind her, she slipped and took her tumble down the stairs. Did I say slip? What I meant to say was that she stumbled on the slippery slick filmy black gobs of smooth frictionless oily greasy goo covering the steps. Did I say stumble on slippery slick filmy black gobs of smooth frictionless oily greasy goo? What I meant to say was that she really wasn’t sure what happened, but either her foot caught on something on the stairs or she stumbled. In any event, her recollection of the mystery substance didn’t occur until after she’d filled out reports and given depositions that made no mention of water, grease, or any other substance coating the stairs.

“Well,” you say, “maybe the stairs were poorly constructed.” Nope. Even the plaintiff admitted that the stairs were well constructed. The stairs themselves were made of wood with metal along the edges and friction producing surfaces covering them. A hand rail ran along side the steps. “Ah, but the owner of the restaurant should have someone whose job it was to make sure that the restaurant was safe for both employees and patrons,” you say. Oh, I’m sorry, did I forget to mention that the plaintiff was the front manager for the restaurant? In addition to managing the waitstaff her general responsibilities included the day to day operation of the restaurant along with the kitchen manager. In spite of her rather lame reply that she’d brought up the conditions of the stairs at some management meetings and that the kitchen manager normally assigned someone to clean the stairs, she was one of the two people at the restaurant that common sense would indicate would make the decision to assign someone to clean the stairs. [Well, I really think we should get this goo off these stairs, but let me call the owner of the restaurant and make sure it’s OK with him.]

I’m sure at this point you still have a lot of questions about where this mystery goo that was coating the stairs came from (other than being some strange alchemical combination of water and grease). The plaintiff made a big point of noting that the goo on the steps was pretty obvious. [Actually, I should probably stop saying goo (but I won’t) because you might think that black goo would blend in with the steps.] Since it was pretty obvious, we can conclude that it wasn’t on the steps at 8 or 9 in the morning when she came in and went up the stairs to her office to do some accounting. Since the time clock was located up the stairs, most of the employees coming in over the next hour or so had to go up the stairs to punch in. Apparently, either no one thought it important to report black goo all over the stairs to the plaintiff (remember she’s the front manager) or someone quickly got it on the stairs between the times people were going up and down the stairs and our plaintiff decided that she needed to go down the stairs herself.

Now common sense would tell you that the absolute best time to clean the stairs by first putting goo all over them and leaving it there for a while would be early in the morning when you have the most traffic going up and down the stairs. Can you believe that the general manager of the restaurant actually tried to get us to believe that they cleaned the stairs at night on Monday (their slowest day) after most of the employees had left? But I digress. Let’s get back to the goo. Here’s a question for you: you’re one of the managers of a restaurant and one of your employees has just tried to kill you by coating the stairs with goo. Do you (a) find out who it was and demonstrate what happens when their hand is put in a deep fryer or (b) just forget about it. Yes indeed, the correct answer is b.

“OK,” you say, “surely one of the other employees saw all of the goo on the stairs.” Uhhhhmmmmm, no. The plaintiff was not able to present a single witness to corroborate her story that there was water and grease on the stairs. [Actually this isn’t true, but we’ll get to that later.] The defense produced at least three witnesses to substantiate that there wasn’t water, grease, or any kind of goo on the steps. In brilliant cross examination, the plaintiff’s lawyer was quick to note that each of the witnesses had his or her salary paid by the restaurant and thus had a vested interest in committing perjury. [This is as close as the plaintiff’s lawyer got to impeaching any of the defense’s witnesses. Pretty pathetic.]

“OK,” you say, “maybe the other employees didn’t have the same eagle eye for goo that our plaintiff had.” Well, when the plaintiff slipped/stumbled/fell on/through the stairs she was carrying a cash register tray. Needless to say, coins went everywhere. The only other eyewitness to the fall was right behind the plaintiff and once she made sure that the plaintiff was OK she began picking up all of the coins. I don’t remember her mentioning anything about having to wash the goo off all the coins that fell on the stairs.

“OK,” you say, “now that you’ve beaten this stairwell thing to death, where does the wrongful termination fit in.” Actually at this point in her testimony the plaintiff had buried herself so deep that even if she produced a notarized letter from the defendant saying “we’re firing you in direct violation of the Texas Workers’ Compensation Act for hiring a lawyer to represent you against us” it wouldn’t have made any difference. To make a long story shorter (and since I’ve already covered all the best testimony), the plaintiff claims that the defendant made it clear in a phone conversation that she was terminated. The defendant claimed that she was not terminated at that time, but at a later time when she would not make any commitment to coming back to work and would not consult with them on medical decisions related to on-the-job accidents as previously agreed upon in a document signed by the plaintiff. The members of the jury weren’t quite able to understand why the plaintiff thought she was terminated when the defendant continued to pay her insurance premiums for a considerable period of time after the so-called termination phone call.

THE SURPRISE WITNESS

Once your client has incoherently babbled herself into a corner of conflicting statements, you’re in real trouble. Apparently, when the plaintiff’s lawyer was getting his degree by correspondence (from that school that has Sally Struthers as their spokeswoman), the lesson A Plaintiff’s Guide to Winning a Personal Injury Lawsuit was inadvertently replaced with A Director’s Guide to Making a Blockbuster Movie. The first rule in the Director’s Guide is “If you’ve got incredible special effects, your story can be completely incoherent.” The first rule in the Plaintiff’s Guide is “If you’re going to commit perjury, make sure your story is consistent.” At least this explains why the plaintiff was holding sparklers during her testimony.

It’s really not that difficult to understand. Really. Here’s the deal. Perjury is perjury. Winging your lies doesn’t get you in any less trouble than getting a building full of lawyers to concoct an airtight story for you, hiring Hollywood scriptwriters to spice it up for you, and then having it placed on cue cards so you won’t have problems forgetting your lines when you’re actually giving testimony.

It’s all based on such a simple concept that even now I’m having problems understanding why the plaintiff and her lawyer didn’t get it and spend some time trying to make their lies consistent. When you tell the truth, your story is automatically consistent. People may not believe you. Your story may conflict with falsehoods that others believe to be true. But, at least, your story will be consistent with your representation of what happened and other accepted truths. On the other hand, when you lie, keeping your story consistent can be extremely difficult, particularly if it involves a number of people and events that occur over a period of time. There are all those annoying details of “what actually happened” getting in the way of convincing other people you’re telling the truth.

Anyway, at this point in time things were looking pretty bad for the plaintiff, so it seemed like the perfect time to distract the jury with a surprise witness. The night before, the plaintiff had called a friend of hers that used to work at the restaurant to rebut defense claims that no one saw water or grease on the stairs. Yea verily, this new witness testified that grease was always being tracked from the kitchen onto the stair steps. In fact, the stairs had grease on them everyday. You could always see it glistening. In fact, he was at the bottom of the stairs the day the defendant fell.

“Oh,” you say, “Here’s where that lying consistently thing comes in.” Bingo! To begin with, the surprise witness made no mention of water or goo. He also claimed that the stairs were always greasy which was something that the plaintiff claimed happened less frequently. Worse still, not a single report filled out by the plaintiff ever mentioned that the surprise witness was either an eyewitness to the fall or helped the plaintiff get up once she’d fallen. This guy was at the bottom of the stairs and never mentioned in any of the reports, however, three other people who came to see what had happened when she fell were mentioned in the reports. But wait, it gets better. Upon questioning from the defendant’s lawyer it turns out that this guy is a convicted felon.

THE VERDICT

I’m happy to say that all of the plaintiff’s claims were unanimously rejected. After yelling at the defendant that he was going to BURN IN HELL, the plaintiff took the verdict well. It’s sad to think that this kind of case actually gets tried in the first place. The judge apologized to us afterwards and said that he hoped we didn’t form our opinions on the judicial system based on this case. [He came to talk to us in the jury room.] He said that in cases such as these the loser is directed to pay the costs of the winner so the defendant in this case isn’t hosed for the cost of his lawyers although actually getting the money is another story. Based on what the judge said it may be a good sign that more of these types of cases are being tried since it indicates an unwillingness on the part of defendants to cave in to quick settlement extortion lawsuits.

Saturday, November 1, 2014

iPhone 6 Impressions

The larger screen is nice, but not without its disadvantages. When compared to the iPhone 5, I find it much more difficult to use the phone one handed, particularly when typing. For me it’s an acceptable tradeoff but I’d guess there are many who’d prefer a smaller phone instead. It seems odd that Apple would eliminate one of Android’s competitive advantages (larger screens) and replace it with another (smaller screens). If you want a smaller iPhone, your only option now is to buy last year’s models: the 5s or the 5c. Perhaps next year Apple will also offer an iPhone 6s mini so that you can have both a smaller phone and the newest technology.

This is the first iOS device I've had with Touch ID and it’s sweet. It doesn’t seem like it would be that big of a deal, but being able to unlock your phone with your fingerprint is really convenient. You can register multiple fingerprints: adding both thumbs and my right index finger worked well for me. You can also use it to silence alarms and approve app store purchases.

I haven’t had a chance yet to use Apple Pay, Apple’s mobile payment technology that uses Touch ID, but I’ll be giving it a try in the next couple of weeks when my credit card issuer begins support for it. There’s been a bit of a kerfuffle in the last week as many retailers have disabled all NFC mobile payments (which includes both Apple Pay and Google Wallet) in response to consumers trying to pay using their iPhones.

It turns out these retailers (including CVS and Rite-Aid) want to push their own mobile payment technology called CurrentC—which has yet to be fully released—but it’s already dead on arrival. Apparently there’s one thing that iOS and Android users agree on: only an idiot would use CurrentC.

The CurrentC apps on iTunes and Google Play are invite-only, but they already have thousands of one star reviews (and pretty much only one star reviews). It turns out that people are not very interested in giving up their social security, driver’s license, and bank account numbers just so the merchants can track their spending habits and save on credit card transaction fees. Go figure.

Tuesday, October 28, 2014

Keystone Kriminals

The TV show Sons of Anarchy is a cross between Breaking Bad, Jerry Springer, Gilligan’s Island, and Hogan’s Heroes. It’s unintentionally funny in many ways. Apparently the Anarchy in the show’s title doesn’t refer to chaos sowed by the Sons of Anarchy motorcycle gang through their gun running and other illegal activities, but rather the problems caused by their crime-related ineptitude and sociopathic interpersonal relationships. If cookies were illegal, these guys would have problems competing with the Girl Scouts without destroying everyone and everything around them.

Here’s a drinking game you can play while watching Sons. Take a shot when:
  • A Son’s plan goes wrong.
  • A Son says you have my guarantee.
  • A Son says no one’s going to get hurt.
  • A Son says none of this will blow back on you.
  • A Son says this will benefit everyone.
  • A Son says family is everything.
  • A Son says you’re like family to me.
  • A Son says I love you.
  • A Son swears off family or friends.
  • A Son plots against family or friends.
  • A Son murders family or friends.
  • And who smuggles guns into the United States? That’s like smuggling cocaine into Columbia.

    Worst. Criminals. Ever.

    But still entertaining.

    Saturday, October 18, 2014

    Godzilla vs. Godzilla

    Based on tomatometer ratings I'm clearly in the minority, but I thought the much maligned 1998 Godzilla movie was better than the 2014 version. Movies involving giant monsters or robots are easier to swallow if they don’t take themselves too seriously. Unfortunately Godzilla 2014, unlike the 1998 version, takes itself way too seriously. It’s a completely humorless film.

    It’s certainly much closer than Godzilla 1998 to the movies I watched as a kid. I still remember those badly dubbed Japanese films nostalgically, but come on, men dressed in rubber monster suits fighting each other while destroying a miniature set of a city isn’t exactly the basis for high drama.

    And how do you make a Godzilla movie without any Godzilla? Seriously, there’s like a minute of screen time when you can clearly see him. Here’s a scene of Godzilla on a moonless night. Here’s a scene of Godzilla in the debris cloud from a collapsed building. Here’s a scene of Godzilla’s back as he’s swimming.

    On the other hand, no atomic breath? You’ve got to be kidding me Godzilla 1998.

    Sunday, October 5, 2014

    Lavalantula

    You only have to watch one of the SyFy channel’s “combo” movies to discover that their awesome titles are ruined by actually watching the movie. Seriously, how could you go wrong with gems like these:
    Dinosaur + Crocodile = Dinocroc
    Man + Mosquito = Mansquito
    Shark + Octopus = Sharktopus
    Dinosaur + Shark = Dinoshark
    Piranha + Anaconda = Piranhaconda
    Shark + Tornado = Sharknado
    And now with their latest movie, Lavalantula, they’ve managed to botch the title as well.



    How do you combine “lava” and “tarantula”, words containing a total of two ‘l’ letters, and get “Lavalantula”, a word containing three ‘l’ letters? It’s baffling.

    And the title needs to evocatively roll off your tongue. Lavalantula sounds too much like Lollapalooza. There’s nothing scary about a movie festival.

    So if you’re reading my blog SyFy channel, here’s a million dollar movie title for you:
    Tarantula + Avalanche = Tarantulanche
    Now that’s scary.

    Wednesday, September 10, 2014

    Revolutionary? The Day After

    Apple kicked off their new hardware event yesterday with a bizarre live streaming snafu of epic proportions. It was so embarrassing that they’ve perpetually lost their rights to mock the Blue Screen of Death in any way, shape, or form.

    After hyping the living daylights out of this event—including a countdown on their web site’s home page and an ABC teaser for a post-event exclusive interview on what was billed as an historic announcement—it was virtually impossible to actually live stream the live stream for the first half hour or so of the event.

    And it wasn't just that you got that spinning circle of waiting while the content loaded. There was a bizarre collection of colored bars, error messages, and previously streamed video. And for the brief periods where you could get the live stream, it included a Chinese audio translation.

    For a company that likes to meticulously orchestrate its media events, it was a fiasco.

    Fortunately, there were no major surprises in what was announced: iPhones with larger screens, a payment system to replace credit and debit cards, and a smart watch. Many of the details had already been leaked, revealed, or rumored in the months and weeks leading up to the event.

    Whether you view Apple Pay or Apple Watch as revolutionary depends upon whether you viewed the iPod, iPhone, or iPad as revolutionary. Apple was not first to market with any of these product categories, but arguably their entry into these markets redefined customer expectations. I happen to believe that creating a usable device—the innovation of how the parts are integrated and work together—trumps being first to market with a new technology embedded in a poorly designed piece of crap.

    Predictably, there was the standard refrain for new Apple hardware. It's too expensive. It’s too big. Its battery life is too short. It’s already been done.

    To be fair, a price starting at $350 is a lot of money to pay for what is essentially an iPhone accessory, and the battery life—never mentioned in the presentation—appears to be about a day. I think I’ll wait for the second or third generation before I consider buying one of these.

    But that doesn’t mean we didn’t see the beginning of something big yesterday. If the design of the Apple Watch is significantly better than its competitors, then there will be no shortage of early adopters. Don’t forget that the cost of the first generation iPod started at $400 and the first generation iPhone at $499. If the first generation Apple Watch is successful we’ll see subsequent generations that are cheaper, smaller, more efficient, and more powerful.

    I’ve never seen anyone making a purchase in a store by waving their phone or watch at a checkout device. Whether or not this becomes a common occurrence with Apple devices in the next few years will be the best indicator of whether we witnessed something groundbreaking yesterday.

    Sunday, September 7, 2014

    Revolutionary?

    Tuesday Apple will announce new iPhones and presumably their next big thing: the iWatch, iBracelet, or iWhatever.

    I wore a watch for decades until the ubiquity of devices displaying the time and date made me realize I was wearing it more out of habit than need. At first it felt a bit weird not wearing it, like I wasn’t completely dressed, and I do occasionally miss being able to glance at my wrist to see the time, but I've now grown used to having both wrists bare.

    So what would Apple need to announce in order for me to slap something on my wrist again?

    In the immediate future, probably not much. My first iPod was a 2nd generation iPod Touch in 2008, seven years after the first iPod was available; my first iPhone was an iPhone 4 in 2010, three years after the original; and I got an iPad 2 in 2011, a year after the first model came out. I like and primarily use Apple products, but I’m not an early adopter (although my activities as an iOS developer give me an excuse to update my hardware more frequently than the typical user).

    I can’t see spending a few hundred dollars on a smart watch/bracelet that displays text/email notifications from my phone, counts my steps, and/or monitors my blood pressure. No doubt there are some who would find these features useful, but we’ve already seen these type of features in smart watches from Apple’s competitors.

    And I certainly don’t need another device that needs to be charged on a daily basis. I already have to carry a bag full of cables with me whenever I travel, so if I'm putting something on my wrist it had better stay charged for at least a couple of days.

    Typically Apple doesn’t enter a hardware category unless it believes it’s created a superior or unique product that consumers will want. Perhaps what they’ll be announcing Tuesday is something that’s different or much better designed than anything we’ve seen before. Something revolutionary. A product that nobody knew they wanted until they saw it.

    In any event, since Apple is perpetually doomed, it won’t matter whether what’s announced Tuesday is revolutionary or not.

    Friday, August 29, 2014

    That’s Not What He Said

    You’d think people who wrote for a living would have a love of words, carefully picking and choosing them to convey precise meaning.

    Here’s the headline from a Toronto Sun article on an interview with Robert Downey Jr. about Guardians of the Galaxy:
    Robert Downey Jr.: ‘Guardians of the Galaxy’ the best Marvel movie yet
    And here’s eight more headlines from other sources picking up the story:
    Robert Downey Jr. Says ‘Guardians Of The Galaxy’ Is The Best Marvel Movie
    Robert Downey Jr. Calls ‘Guardians Of The Galaxy’ Marvel’s Best Movie
    Robert Downey Jr. describes Guardians Of The Galaxy as best Marvel movie yet
    Robert Downey Jr. Declares Guardians Of The Galaxy The Best Marvel Movie Ever
    Robert Downey Jr. admits 'Guardians of the Galaxy' is the best Marvel movie
    Robert Downey Jr. Thinks ‘Guardians of the Galaxy’ Might Be the ‘Best Marvel Movie Ever’
    Robert Downey Jr. Puts His Ego Aside, Admits Guardians Of The Galaxy Is The Best Marvel Movie
    Robert Downey Jr. Praises ‘Guardians of the Galaxy’
    Guess which headline is most accurate?

    Congratulations if you chose “Robert Downey Jr. Praises ‘Guardians of the Galaxy’.”

    Here’s the section from the Toronto Sun article quoting Downey:
    “Galaxy in some ways is the best Marvel movie ever,” Downey says with admiration. “And it’s odd for someone with — on occasion — an ego the size of mine to actually say that!”
    Call me a nitpicker, but “in some ways” is not the phrase you choose when making an absolute declaration, so maybe that wasn’t what Downey was doing.

    In some ways, a lazy misquote is worse than an intentional one.

    See what I did there?

    Saturday, August 23, 2014

    Caption Challenge



  • Curiosity did what?
  • Actually, I prefer to lick myself dry.
  • Stupid cat? You’re the one who left the door open.
  • I think it will save everyone time if I just pretreat your clothes with my hair.
  • When does the ride start?
  • I claim this unexplored territory for all catkind.
  • What do you mean you’re going to teach me a lesson?
  • What’s solitary confinement?
  • I can never figure out how these Japanese litter boxes work.
  • You talkin’ to me?
  • Calling it your job don’t make it right, Boss.
  • Wednesday, August 20, 2014

    Man Reading Book



    Something about the combination of the hair, the glasses, the Grinch, the book, and the sketch just clicks.

    Tuesday, August 12, 2014

    It’s Just A Dream

    When I’m Earth Overlord, all dream sequences in movies and TV shows must be approved by my Ministry for the Eradication of Overused Tropes.

    AUTUER: Oh no! Little Johnny fell down a well and can’t get out!

    MINISTRY: What?!

    AUTUER: Ha ha. I’m kidding. It’s just a dream having little to no importance to the plot, but it made a great clip to put in this week’s preview. Can I interest you in a cat jumping out from an unexpected place?

    MINISTRY: Oh no! It’s the dungeons for you!

    AUTUER: What?!

    MINISTRY: Ha ha. We’re kidding. Your show is cancelled.

    Wednesday, August 6, 2014

    Dungeons & Dragons

    If you ever played Dungeons & Dragons, this blog has some information on its history you might find interesting.

    I remember first playing D&D with the original set of rules at a friend’s house around 1976, but I eventually grew tired of the dungeon crawls and Monty Haul style of play that the game mechanics seemed to encourage (intentionally or otherwise). If I wanted to simulate a Vietnam search and destroy mission, I’d play a war game, not a role playing game.

    It stands to reason that if you have a rule book full of magical items that players can acquire, they’re going to want to acquire as many of them as they can. One of the (unintentionally) funniest lines I’ve heard a dungeon master utter was “You’re limited to one magical artifact per day.”

    Many of the D&D magic items have somewhat comical names, such as “Boots of Dancing.” On the infrequent occasions that I was playing with a Monty Haul group, I’d often claim my character possessed mock magical items. My favorites were the “Dagger of Healing” (1d6 of healing and 1d6 of damage) and the “Sword of Surgery” (2d6 of healing and 2d6 of damage).

    Here’s how it works, I explained, I just keep stabbing myself until I start to feel better!

    No one ever batted an eye.`

    Thursday, July 31, 2014

    Join Activity

    I've been an expert system tool developer for the last twenty-nine years, but it's only been the last nine years that I've had a significant amount of ongoing year-to-year experience developing and maintaining programs from the other side as a user of expert system tools.

    One of the pain points I encountered was trying to determine which rules were causing performance issues. A typical scenario would be that the rules would pass validation testing by the business users, but then weeks or months later an atypically large data file would be processed uncovering a performance issue (requiring hours for the data to be processed rather than seconds). Isolating the problem was accomplished by strategically deleting rules until the performance issue went away. The offending rule(s) were then inspected and analyzed with respect to the data to determine the cause of the problem. This was hardly an ideal approach and only worked best if there were a few rules causing the issue.

    From a user perspective, It would be nice if you could profile rule performance much as you can profile the amount of time spent in functions/methods in languages such as C and Java. In fact, CLIPS does have profiling functions which allow you to track the amount of time spent in the actions of a rule. Unfortunately, the performance issues in rules are usually caused by the way the conditions have been written. Because rule conditions can be shared, it's difficult to assign time spent while pattern matching to a specific rule.

    When I was developing performance improvements for CLIPS 6.3, I added code to track the number of operations performed on partial matches in the join network to gauge the benefit of using hash tables rather than linked lists for the join memories. It occurred to me that this could be a useful metric for identifying performance issues, and from this idea came the join-activity command in CLIPS 6.3.

    This new command easily identifies the offending rule in the manners benchmark program:
    CLIPS> (clear)
    CLIPS> (unwatch all)
    CLIPS> (load manners.clp)
    :%%%%%%%********
    TRUE
    CLIPS> (reset)
    CLIPS> (load-facts manners128.fct)
    TRUE
    CLIPS> (run)
    CLIPS> 
    (progn$ 
       (?r (get-defrule-list)) 
       (printout t ?r ": " (join-activity ?r terse) crlf))
    assign_first_seat: (1314 1315 1315)
    find_seating: (5847660 7067211 7067211)
    make_path: (49549 16510 16510)
    path_done: (127 254 254)
    are_we_done: (128 255 255)
    continue: (0 127 127)
    print_results: (257 258 128)
    all_done: (0 1 0)
    CLIPS> 
    
    When used in terse mode, the join-activity command returns a multifield value containing the number of comparisons made between the left and right memories, the number of partial matches added to the join memories, and the number of partial matches removed from the join memories. For this program, the find_seating rule has much more join activity than all the other rules combined.

    Using the verbose mode allows you to examine the information for each join in the rule.
    CLIPS> (join-activity find_seating verbose)
    Activity for CE 1
       Compares:          0
       Adds:            127
       Deletes:         127
    Activity for CE 2
       Compares:       8128
       Adds:           8128
       Deletes:        8128
    Activity for CE 3
       Compares:      28255
       Adds:          28255
       Deletes:       28255
    Activity for CE 4
       Compares:    2487321
       Adds:        1241614
       Deletes:     1241614
    Activity for CE 5
       Compares:    2483228
       Adds:        2483228
       Deletes:     2483228
    Activity for CE 6
       Compares:     823428
       Adds:        1660994
       Deletes:     1660994
    Activity for CE 7
       Compares:      17300
       Adds:        1644865
       Deletes:     1644865
    (5847660 7067211 7067211)
    CLIPS> 
    
    In conjunction with the sort function, you can create a ranked listing of all the rules. Here's an example using the waltz benchmark.
    CLIPS> (clear)
    CLIPS> (unwatch all)
    CLIPS> (load waltz.clp)
    %%%%:!!!!!!********************************
    TRUE
    CLIPS> (reset)
    CLIPS> (load-facts waltz50.fct)
    TRUE
    CLIPS> (run)
    CLIPS> 
    (deffunction ja-lt (?r1 ?r2)
       (< (+ (expand$ (join-activity ?r1 terse))) 
          (+ (expand$ (join-activity ?r2 terse)))))
    CLIPS>
    (progn$ (?r (sort ja-lt (get-defrule-list)))
       (format t "%-35s %10d%n" 
                 (str-cat ?r ":")
                 (+ (expand$ (join-activity ?r terse)))))
    initial_boundary_junction_L:           1165683
    initial_boundary_junction_arrow:        511101
    make_L:                                 163364
    make-3_junction:                        128960
    label_arrow-1B:                          59799
    label_tee_B:                             55991
    label_arrow-2B:                          39455
    label_arrow-1A:                          35692
    match_edge:                              32072
    second_boundary_junction_L:              26984
    label_tee_A:                             17095
    label_arrow-2A:                          16217
    label_L:                                 14926
    label_arrow-4A:                          13811
    label_arrow-4B:                          13811
    label_fork-1:                            12727
    reverse_edges:                           11618
    plot_boundaries:                          9830
    second_boundary_junction_arrow:           9641
    done_reversing:                           3878
    label_fork-2:                             2213
    label_fork-3:                             2213
    label_arrow-3A:                           1838
    label_arrow-3B:                           1838
    label_arrow-5A:                           1838
    label_arrow-5B:                           1838
    plot_remaining:                           1808
    label_fork-4:                              614
    done_detecting:                              7
    done_plotting:                               5
    done_labeling:                               2
    begin:                                       0
    ""
    CLIPS>
    
    In this case I've added the compares, adds, and deletes together to create a single join activity value for each rule displayed in the output. Hopefully this new command will provide CLIPS developers with more options for analyzing the performance of their rules.

    Tuesday, July 15, 2014

    This Feedback is Worthless

    Over the last couple of years I've received hundreds of emails from users of my List! and List! Lite apps. Most are for assistance or requests for additional features, the vast majority are courteous, and occasionally I get really nice emails such as this one:
    Thank you! I just reviewed this app and it is better than 5 stars.
    I love this List app and i cant tell you how many other apps i have tried and deleted and waisted money on.
    Your app does everything i wanted and more.
    As a firefighter-medic and working in a hospital to home life.. This app has a list for everything I need.
    Thank you again
    I also receive criticism, mostly through the reviews in the App Store. Sometimes it’s constructive.



    Sometimes it's not.



    And sometimes it's a little wacky.



    But my favorite criticism is this email I received the other week.
    This app is worthless....glad I did not pay anything for it.  It well be deleted....
    What a maroon.

    Clearly the free version of the app allowed you to determine that you didn't want to purchase the paid version, so it was of some worth to you as exhibited by your gladness. In return, I would prefer that you thank me for my consideration.

    And what’s the point of sending me an email, but not leaving a bad review in the App Store to warn other people? If it was to convince me that you're a bit of a jerk, then mission accomplished, but I suppose the irony of your email is lost on you.

    Tuesday, July 1, 2014

    Sugar Flavored Toothpaste

    This is one of the last things I would have expected to see on my toothpaste tube:



    No ADA-Accepted toothpaste contains ingredients that would promote tooth decay, so it would have been a little more honest to say “artificial sweetener” rather than sugar, but nonetheless after reading about the ingredients it’s no wonder they don’t want you swallowing this stuff.

    Friday, June 20, 2014

    Settlers of Catan

    If I could only recommend one game for a family to own, it would be Settlers of Catan, created by Klaus Teuber. It's the closest thing to a perfect game I've ever played. There are a number of reasons why I highly recommend it.

    1. It’s a race, not a brawl

    Games like Monopoly and Risk are brawls—you win by essentially beating your opponents into the ground and taking away everything they possess.

    Races, however, are won by being the first to achieve an objective. In Settlers, you win by being the first to earn 10 victory points. Building settlements and cities gain you victory points that are never lost.

    And as you build, the average number of resources you receive each turn will increase. This allows you to do more each turn and mitigates the effects of other players ganging up on you.

    In my experience, races have much broader appeal than brawls, particularly among casual gamers. That’s not to say that Settlers is completely lacking in direct conflict between players—there’s competition for open spots on the game board and some accomplishments yield victory points that can be taken away—but these brawl elements are well balanced with the race elements of the game.

    2. Clean, simple rules

    The rules are simple enough that they can be taught verbally. The recommended age is 10 or older, so once the kids are old enough the entire family can play. And if you’ve ever played a game where the rules are ambiguous about what to do for a certain situation, you won't have to worry about that playing Settlers.

    3. Minimal waiting

    In many games, players are only allowed to perform actions on their turn. In Settlers, a player can only build on their turn, but players are eligible to receive and trade resources during any player’s turn, so there's incentive to barter so you’ll have what you need for building when your turn comes around.

    4. Reasonable playing time

    Most games can be played in 30 to 90 minutes—depending upon the number of players and their experience—so you can play at least several games in an evening. If your strategy isn’t paying off or you have a run of bad luck, you won’t have to suffer the entire evening.

    5. Replayable

    The game board is constructed by forming a large hexagon out of smaller hexagons representing different terrain types. This allows for a large number of board combinations affecting both resource availability and desirability of open spots. There are many different strategies for winning that can be learned through repeated play.

    6. Experience counts

    There's a good mix between luck and experience. Resource production each turn is determined by a die roll, so while it’s possible for a complete novice to win with beginner’s luck, experience definitely gives you an edge in selecting the best placement for your settlements and cities, determining which trades are in your favor, and devising the best strategy for a given situation.

    7. Lots of expansions

    If you like Settlers, there are a number of expansions for it (including one that allows up to six players rather than just the two to four that can play with the basic game). There’s also a family of similar games using the same tile-based resource generation mechanics.

    8. Intelligent tutoring agent

    OK, so this one’s only of interest to artificial intelligence nerds, but there’s an intelligent tutoring agent for Settlers built using CLIPS.

    Monday, June 2, 2014

    The Long Slow Decline of App Store Income

    I didn’t expect to get rich creating an iOS app. If that were my goal I certainly wouldn’t have create a ‘to do’ list app to compete with the gazillion other ‘to do’ lists apps in the App Store.

    But for a very long time I'd been making lists on scraps of paper, so when I first got my iPod Touch in September 2008 and couldn’t find a list app that I liked, I decided to make my own. If I could make a bit of extra money in the process, so much the better.

    I released List! Lite in February 2010 and List!, a paid version of the app, in July 2010. Since that time, I’ve released 25 updates including new features and bug fixes. List! has 210 ratings with an average of 4.5 out of 5 stars.

    There are many excellent articles worth reading on the challenges of making money on paid apps, but I can nicely summarize them with a single graph showing the monthly income I’ve made on List! between October 2010 and April 2014:



    I got a large bump in income shortly after adding support for the larger screen of the iPad in June 2011, but nothing I've done since that time—new features, sales, promotions, and localization—has had any lasting effect on generating sustainable income. At best, all I've done is just slow the decline.

    As a hobbyist, I have no regrets on the time I spent developing the app. I learned a number of new things, made enough money to buy some toys, and have an app that I use on a daily basis.

    As a developer, I’m glad the only investment I lost was my spare time. There’s all kinds of speculations I could make, but at the end of the day I wrote an app I loved creating that just wasn’t commercially successful. I haven't written my last app, but I now have a more enlightened view of the economic realities of app development.

    So if you approach a developer about an app idea that’s sure to make money and they look at you skeptically, now you know why.

    Monday, May 19, 2014

    Candy Crush

    Candy Crush is the kind of game R.J. Reynolds would make if they were peddling entertainment rather than cancer. The game itself is visually appealing, fun to play, and very addictive. It’s that last element that really adds the sleaze to the coercive monetization King Digital Entertainment uses to generate income.

    I’m one of the 70% that’s never spent money on the game and never intend to, but was I tempted to pry open my wallet the other day when I saw this while playing:


    Live forever! You mean I can pay something reasonable like $10 or $15 and just play the game continuously? I don’t have to wait or spend money to continue playing each and every time I run out of lives? That’s something I’d be willing to buy!

    Oh, wait. By forever you mean the next two hours, not for all time. So if I lose lives at a rate of one each minute, how many “unlimited” lives can I get?

    Let’s see… 117. 118. 119. Infinity. That adds up.

    No thanks, I’ll spend my money elsewhere.

    Just say no to coercive monetization. Play but don’t pay. Develop patience or spend your money on games that charge you upfront and allow you to play continuously.

    Sunday, May 11, 2014

    Remembering Mom 2014

    Driving mom to the airport:
    MOM: I read that you shouldn’t put your address on your luggage tags. Thieves will know that you’re not at home and can rob your house while you’re gone.

    ME: So who’s address did you use?

    MOM: Yours.
    Happy Mother’s Day Mom.

    Thursday, May 8, 2014

    River Benchmark

    I came across another river crossing problem that’s similar to the farmer’s dilemma example problem for CLIPS. It’s a little bit more complex by virtue of the number of things that have to be moved, but it’s essentially the same type of problem.

    One of the issues with existing benchmarks such as waltz and manners is validation. The manners benchmark only runs in CLIPS with the depth conflict resolution strategy and the waltz benchmark executes different numbers of rules depending upon the conflict resolution strategy chosen.



    Clearly this is an issue. I'm a proponent of having lots of benchmarks, rather than one or two, but in order to have lots of benchmarks, they need to be dead simple to translate and verify. In the case of the existing benchmarks, they're not.

    What this means is that you have to design the benchmarks with this is mind. I thought it would be an interesting exercise to demonstrate how this can be done. So I wrote a CLIPS program to solve a variation of the river crossing problem and once I had it working, set the conflict resolution strategy to random to see if the same number of rules were executed with each run. There weren’t.

    It took several iterations before I had a version that produced the same number of rule executions regardless of the order in which rules of the same priority/salience were placed on the agenda. The primary mechanism used to get an exact number of rules executed was to assign weights to each of the possible moves that could be made so that the search was always made in the same order. In total, there were 19 rules and 5 salience values for the different groups of rules. If I’d used modules (which would have made translation to other languages more difficult), there wouldn’t have been any need for salience values at all.

    Like the manners and waltz programs, the river program runs considerably faster in version 6.3 of CLIPS than in version 6.24. On a 2.66 GHz Intel Core 2 Duo it completes in 0.7 seconds in the newer version as opposed to 29 seconds in the older version.

    The river program is available here.

    Wednesday, April 30, 2014

    Affordable Health Care

    When I left my job working for a company to become a software consultant working for myself, one of the first things I did was get an individual health insurance policy. Since my premiums aren’t subsidized, I’m fully aware of the true cost I’m paying and in the last eight years that cost has risen 333%:


    With most of the rate increases I’ve gotten in the past, I’ve also received this bit of ominous advice from my insurance carrier:
    You may qualify for other plans at different rates. Before you make a decision, you may want to discuss these alternate plans with us or your broker. If you choose a new plan, we might review your health information again. This might mean a higher rate. And you may not be able to return to your original plan.
    So if I understand what they’re telling me, if I try to switch to another health plan to save money, I may end up paying more money for less coverage than what I have now. Thanks, let me think a bit and decide if I want to bend over now or bend over later.

    Obtaining health insurance as an individual sucks; you lack the power that a large group has to negotiate reasonable rates for all of its members. I don’t see how any free market advocate can claim that this kind of lock-in—either to a company subsidizing/negotiating your costs or to a plan that can’t be changed without significant risk—is a sign of a competitive environment that will work things out if we just give it a chance. In fact, the opposite is true. In an unregulated free market, insurance companies will naturally exclude those most in need of health insurance in order to maximize their profits.

    Long term, I honestly don’t know whether Obamacare is going to ruin the American way of life as we know it; I’ll leave those pronouncements to the politicians and pundits who claim to know everything, but can’t offer a better solution to the current broken system.

    Short term, however, it’s going to cut my insurance premiums almost in half. Because I can’t be charged more or denied coverage for preexisting conditions (such as taking statin medication to help keep my cholesterol in check), and the information on the healthcare exchanges makes it much easier to compare plans from different carriers, I was able to find a better deal with a different carrier (keeping the same doctors I was using in my old network).

    Only time will tell if there are any gotchas with my new health care plan and perhaps the government’s health care mandates are unsustainable, but from my perspective the Affordable Care Act really has made my health care more affordable.

    Full disclosure: I did not vote for Obama in the 2008 and 2012 presidential elections, but I, for one, welcome our new socialist overlords.

    Tuesday, April 22, 2014

    Easter Egg?

    Nothing captures the spirit of Easter—a celebration of the resurrection of Jesus Christ—like a child-murdering Sith Lord.

    Tuesday, April 15, 2014

    Kentucky Fried Chickeny Meat

    This is how it starts. You ask for honey and get honey sauce.

    You ask for butter and get buttery spread.

    At least the honey sauce contains contains 7% real honey, although my guess would be that’s disclosed on the packet for legal reasons. The buttery spread apparently contains no actual butter.

    What’s next, chickeny meat?

    Saturday, April 5, 2014

    Found Footage Needs to Get Lost

    When I'm Earth Overlord, I'm going to ban found footage films for the greater artistic good.

    It is not beneath my notice that many of the unwashed masses enjoy these films. In fact, that’s the problem. When a movie costing $15,000 grosses $193,355,800, that guarantees an endless supply of copycat films attempting to exploit the public’s lack of taste.

    Seriously, once you’ve seen herky-jerky nausea-inducing footage from a video cam held by someone running full flight through a forest at night, you can check that off your bucket list and live a complete life without ever having that experience again.

    If there’s anything that M. Night Shyamalan has taught us, it’s that one gimmick movies quickly lose their luster (if they had any in the first place). When’s the last time anyone saw a movie in Smell-O-Vision?

    And don’t get me started on the 3D movie craze.

    Tuesday, March 25, 2014

    Crossing the Time Stream

    Crossing the time stream occurs in episodic storytelling when a plot device is introduced that should have far-reaching implications, but is not routinely used after its introduction, even in situations where it would be an ideal solution for the problems faced by the heroes or villains. The most common example is time travel that allows the past to be changed and there is no more egregious crosser of the time stream than Star Trek.

    The time stream was first crossed in the original series, but it wasn't until the subsequent movie and TV series that its frequent use snowballed into huge continuity issues. Star Trek II, III, and IV illustrate the problems caused by crossing the time stream. In The Wrath of Khan, Spock and numerous other crew members of the Enterprise and Reliant are killed. In The Search for Spock, Kirk steals the enterprise and in the ensuing adventure Spock is resurrected, but Kirk’s son is murdered and the Enterprise destroyed. In The Voyage Home, Kirk and crew travel back in time using their captured Klingon warbird in order to retrieve whales to save Earth’s future.

    Wait, what? You can travel back in time to solve problems?

    Uhmm, OK. Hey Kirk, how about this plan? After you’ve kill Khan in the present, why not just travel back in time and kill him in the past instead. Show up the day after you marooned him on Ceti Alpha V and launch a photon torpedo at him from orbit. Khan’s wrath will be incinerated with thermonuclear fury and since no one from Star Fleet has bothered to check on him for the last fifteen years, there's minimal impact to the timeline.

    Spock doesn't have to die; your son doesn't have to die; your crew members don't have to die; the Enterprise doesn't have to be destroyed; and you can avoid a court martial for stealing a starship.

    Let’s assume, however, that there’s a Federation Temporal Prime Directive and Kirk is only willing to violate it if the Earth is about to be destroyed by an alien space probe that communicates using catastrophic power-draining planetary weather changes and/or whalesong.

    That would fill one plot hole, but there’s an adage that says “when time travel is outlawed, only outlaws will use time travel.” In other words, if the Federation has qualms about changing the timeline, most of its enemies would not.

    Take the Borg for example. In First Contact they traveled back in time to assimilate Earth and almost succeeded, but that pesky Picard followed them through their temporal vortex and thwarted their plans. If only they could learn to adapt, they’d try it again and travel back in time somewhere the Federation fleet couldn’t observe them before heading toward Earth.

    And surely after discovering the secret to time travel, at least one clever Klingon, Romulan, or Cardassian would come to the realization that if you travel back far enough in time, you can easily defeat your enemies with a starship. If there’s one thing that I learned from the Star Trek reboot, it’s that a U.S deep sea drilling platform sent back in time could have defeated the entire British navy in the War of 1812.

    There are numerous other examples in the long history of Star Trek where crossing the time stream involves something other than time travel. How It Should Have Ended lampooned the use of transwarp beaming and magic blood in the most recent movie, Star Trek Into Darkness:



    I thoroughly enjoyed the movie, but after 35 years of watching Star Trek I suppose I’ve been conditioned to accept that its depiction of technology in the science fiction genre follows fewer coherent and consistent rules than the depiction of magic in a typical series from the fantasy genre.

    It really is a lost opportunity. When the franchise was rebooted, the creative team could have cast aside decades of continuity baggage. Instead they crossed the time stream right from the start to live on the side where nothing makes sense if you think about it.

    Monday, March 17, 2014

    Manners and Waltz Benchmarks

    The two most widely used benchmarks for rule-based systems are Manners and Waltz. Daniel Selman nicely summarizes the major issues with these benchmarks in The Good, The Bad, and the Ugly - Rule Engine Benchmarks.

    CLIPS didn’t implement the optimizations needed to run these benchmarks efficiently until version 6.30, so it compared unfavorably to other engines when these were the only metrics used for comparing performance.

    As the following graphs show, the performance of CLIPS 6.30 is orders of magnitude faster than CLIPS 6.24 for the larger data sets used by these benchmarks.

    In particular, hashing the memory nodes and optimizations for handling large numbers of activations caused the dramatic improvement in the benchmark results.

    How did these optimizations improve the performance of a real world application? I benchmarked some of the larger sample data sets for a production system I developed that’s run hundreds of thousands of time a month. The system consists of hundreds of rules and the amount of data processed can range up to ten thousand or more facts.

    Each of the samples showed improvement, but not nearly as dramatic as Manners or Waltz:

    A process is created and the rules loaded each time the system is run, so a more accurate picture of the total processing time would include the time to load the rules:

    There’s nothing wrong with modest improvements, but if your expectations of performance were based on Manners and Waltz, you’d surely be disappointed.

    That’s not to say there weren’t performance benefits of the 6.30 optimizations in real world situations. Occasionally, I’d write one or more rules that were efficient for a small data set, but acceptance testing did not include a large data set. The system would run fine until a sufficiently large data set with the appropriate types of facts was submitted, at which point the process would display non-optimized Manners/Waltz behavior (i.e. it would appear to hang).

    When using CLIPS 6.24, I rewrote the offending rules to be more efficient for large data sets. With 6.30, since the system is more tolerant of inefficient rules, these situations occur less frequently and are easier to correct.

    CLIPS versions of the Manners and Waltz benchmarks are available here and here.

    Tuesday, March 4, 2014

    Playing the Nazi Card

    There was a political group handing out literature by the post office when I picked up my mail the other week. They used these signs to attract attention:



    I was reminded of Lewis Black’s thoughtful rant on Nazi Tourette’s:


    When I’m Earth Overlord, my subjects will be free to criticize my enlightened rule without fear of reprisal.

    The only exception will be for those who compare me or my governance to Hitler and the Nazis. Those people and anyone even remotely related to them will just disappear.

    Now that’s something the Nazis would do, but the Volk will have to be content referring to such acts as evil.

    At least there won’t be idiots loitering outside the post office.

    Thursday, February 27, 2014

    Security Theater

    There’s this website I have to access occasionally for work, but the account password expires after a fixed period of time (a few months).

    Fair enough. For security reasons, passwords should be changed periodically. Having them expire is a straightforward method to force users to comply with this policy. You log in, receive a notification that your password has expired, enter your old password once, your new password twice, and voila, your password is changed. All that's left to do is write it down on a sticky note and affix it to the front of your monitor.

    The problem I’ve had with the way passwords expire for this particular account is that there’s no indication that the password has expired. If my password doesn’t work, I have no idea whether I just mistyped my password or it’s actually expired. As a result, if I enter the previously valid password too many times, I’m locked out of the account. Again there's no indication that this has happened. Wrong password. Expired password. Too many attempts. Bzzzzt! Try again. Fail.

    What a great idea: a password policy that’s completely opaque to the people forced to use it. To change your password, you actually have to visit a separate website and, of course, none of the websites where you use your password link to it.

    If you haven’t figured out yet where I’m heading with this story, it’s that I’ve been locked out of this account more than once. When that happens, I have to call the help desk to have my password reset.

    Given the hostile design of the login process, I half expected my reset password to be a long string of Ms and Ns, all recited to me over a bad phone connection. Sorry, for security reasons, we can’t email it to you.

    Fortunately it was surprisingly user friendly, but I immediately recognized the new password as one I was given previously: the six character company name plus three sequential digits.

    The new password worked on the first try, but I wasn't forced to immediately change it, so it was obviously not temporary. That seems like a big pile of security stupid, but it’s their policy, so whatever. To my credit, I immediately headed over to the site I bookmarked to change it, but that option was nowhere to be found.

    So now I have a password that’s easy to remember.

    Security theater, adopting an ineffective or poorly implemented policy just to have a policy is worse than no policy at all; it consumes resources that could be more effectively allocated and gives a false belief that risk has been reduced.

    Put more succinctly, the only security worse than no security is false security.

    Friday, February 14, 2014

    Valentine’s Day Candy

    The month of February brings two seasonal candies of note. One is Conversation Hearts, the crack cocaine of the candy world. The box is labeled as a single serving, but you can buy them in packages of eight and that’s typically the amount you’ll eat in a single sitting. Just make sure they’re Brach’s Classic Flavors—The Necco brand isn’t as tasty and the tart varieties of the hearts are just plain wrong.



    SweeTARTS Hearts also become available this time of year and like traditional conversation hearts have messages on them. However if you think all SweeTARTS are the same, think again. These aren’t just SweeTARTS pressed into a different shape—Bite into these and they crumble apart into a powder that melts away in your mouth. Mmmmm. It’s a welcome change from the SweeTARTs that come in rolls; those require some serious mastication to get at their sugary treasures.



    And while we’re on the subject of SweeTARTS, when I’m Earth Overlord the production of blue raspberry and green apple SweeTARTS will be prohibited. The usurpers will be replaced with the original rightful flavors of lemon and lime.

    Sunday, February 9, 2014

    Friday, February 7, 2014

    People Who Live in Glass Houses

    Watching the Star Trek reboot last night, a question came up: who’s won more well-known awards for acting, William Shatner or Leonard Nimoy? Turns out it’s Shatner; he’s won two Emmys out of seven nominations. Nimoy has been nominated for four Emmys (three for Star Trek), but never won.

    On the flip side, Shatner’s penchant for overacting has won him two Razzies out of five nominations. One of the nominations he didn’t win was for Worst Actor of the Century. Intrigued, I headed over to The Razzies website:



    As soon as my eyes stopped bleeding, I began to wonder: Is this a joke? If I wait long enough will a popup appear saying “Ha! Ha! Just Kidding! Click here to go to our real website.”? Did they actually pay someone for building this website? Was the intent to make the content and ads indistinguishable? Was the person who approved the design both color- and clutter-blind?

    For comparison, here’s the stylish website for the The Oscars:



    The delicious irony here is the complete lack of taste shown by The Razzies, an organization whose purpose is to point out other people’s complete lack of taste.

    This isn’t surprising. A key aspect of incompetence is a lack of awareness of one’s own ability (something known as the Dunning-Kruger effect). The truly worst movies are made by people who think they’ve created a masterpiece.

    So here’s to you Razzies, for being the butt of your own joke.

    And if you want to add more total awesomeness to your website, head over to The World’s Worst Web Site Ever for some ideas.

    Saturday, February 1, 2014

    Targeted Advertising



    The ads on the left were served to one Facebook user; the ads on the right to another. Guess which one is a man and which one is a woman.