Sunday, December 20, 2015

Old Proverb Update

Give a man a fish and you feed him for a day.
Teach a man to fish and you feed him for a lifetime.
Unfortunately, there's some who'd rather starve than learn.

Wednesday, December 2, 2015

Zombie Sneak Attacks

Every zombie sneak attack in The Walking Dead reminds me of this scene from Monty Python and the Holy Grail.


Affordable Health Care 2015 Road Bump

For individual health plans, there are no longer any providers in Texas that offer PPOs. I'll have to switch over to an HMO in 2016.

Wednesday, November 11, 2015

Terminator Genisys

Somebody needs to go back in time and terminate this franchise after Terminator 2: Judgment Day.

Saturday, October 31, 2015

Halloween Candy Roundup

There's two approaches for buying Halloween candy. You can buy candy you don't like—I'm thinking of you Bit-O-Honey—in which case you can buy it far in advance of Halloween, or you can buy candy you like, preferably on the day of Halloween so that you don't have to buy more candy once you've eaten it all.

In addition to a variety of chocolate candies for everyone in the house, I bought a bag of Sweetarts, Nerds, and Laffy Taffy:



This year's Skulls & Bones Sweetarts consisted only of lemon, grape, and cherry flavors, my favorites. Blue punch and green apple, which I don't particularly care for, were missing.

I love Nerds of any flavor, but after breaking a crown on one I limit myself to a couple of small boxes on Halloween.

I also haven't met a flavor of Laffy Taffy that I wouldn't eat, but this year's Halloween themed caramel apple is not one of my favorites. For some reason (maybe too much heat) the wrappers and taffy were fused in the few I tried making it very difficult to eat the candy. I'll definitely be passing these on to the trick-or-treaters.

As always, the Halloween Laffy Taffy has themed jokes:
Q: What type of witch makes the best lunch?
A: A sand-witch.

Q: What kind of car does a ghost driver?
A: A Boo-ick (Buick).

Q: Why do witches fly on brooms?
A: Because vacuum cleaners are too heavy!

Q: What did the trick or treat bucket say to the candy?
A: Hello sweet thing!

Q: Why did they carve a big mouth into the pumpkin?
A: So he could scream and howl!

Q: Why didn't the skeleton cross the road?
A: Because he had no guts.

Q: Who mans a ghost ship?
A: There's a skeleton crew.

Q: What do ghosts add to their morning cereal?
A: Boo-berries!

Q: What kind of music do mummies listen to?
A: Wrap!

Q: How do you fix a Jack O'Lantern?
A: With a pumpkin patch.

Q: How does a girl vampire flirt?
A: She bats her eyes.

Q: Who did Frankenstein take to the prom?
A: His ghoul friend.

Q: What is a ghoul's favorite flavor?
A: Lemon-slime.

Q: What do you call a skeleton who won't work?
A: Lazy bones.

Q: What do you get when you cross a vampire and a snowman?
A: Frostbite.

Friday, October 16, 2015

Esoteric Language Resources

The internet is an amazing resource for programmers. This is particularly true for programming languages in widespread use. The following graph shows the number of questions on Stack Overflow with a tag for some well-known languages.



There's a huge disparity between mainstream programming languages such as Java and C# and languages associated with artificial intelligence such as LISP and Prolog.

An even greater disparity exists between mainstream languages and expert system languages (that aren't even perceptible on the prior graph unless one zooms in on the far right):



I think this is one of the tallest hurdles to jump for users of esoteric languages. The presence of resources on the internet (discussion forums, documentation, tutorials, examples, etc.) have not reached the critical mass needed for widespread use.

Monday, October 5, 2015

{} vs. ()

People who like C dislike CLIPS because it looks like LISP.

People who like LISP dislike CLIPS because it's not LISP.

Thursday, October 1, 2015

Fear the Walking Dumb

One of the things I like about Aliens is that the protagonists are cocky going into their first encounter with the xenomorphs ("Is this going to be a standup fight, sir, or another bughunt?"), get schooled ("Maybe you haven't been keeping up on current events; but we just got our asses kicked, pal!"), and then quickly start making intelligent decisions ("I say we take off and nuke the entire site from orbit. It's the only way to be sure."). It's a series of events that plausibly place the characters in jeopardy.

So is it too much to ask that the main characters in zombie stories aren't all Darwin Award winner wannabes? I'm not saying that the stories need to directly acknowledge and address the large body of zombie apocalypse tropes from movies, TV, comics, and books (รก la Scream or The Cabin in the Woods).

But when a character is repeatedly attacked by mute, slow moving family, friends, and acquaintances, maybe it's time for that character to show some caution and foresight around people who, you know, look dead.

Just saying'.

Thursday, September 10, 2015

Tuesday, August 18, 2015

Two Sentence Horror Story

What is the best horror story you can come up with in two sentences?

I held a pistol in one hand and a Molotov cocktail in the other. If I couldn't kill it with bullets, I needed to prevent it from wearing my skin as a disguise.

Monday, July 6, 2015

Affordable Health Care Followup 2015

It’s been more than a year since I blogged about the Obamacare reforms that allowed me to easily compare health care plans and switch to a better deal. This year my monthly premium rose from $543 to $640 (I'm not eligible for subsidies). That's still considerably less than the $1022 my old plan was going to charge me. My current plan is just as good if not better than my old plan. I've been able to use the same doctors and my prescription costs have been reduced. As of 2015, the Affordable Care Act has still made my health care more affordable.

Wednesday, June 3, 2015

Wailing and Gnashing of Teeth

There’s a reason you should take information found on the internet with a grain of salt. While researching citations for the CLIPS wikipedia article, I came across this post on the comp.lang.lisp group:
Look around on the net for CLIPS. I think it ports to Common Lisp fairly easily, but I could be wrong about that.

CLIPS is basically a free version of ART*Inference, which was the Automated Reasoning Tool developed by Inference Corporation. Inference, however, did some things that seem, in hindsight, to indicate terminal stupidity. They had NASA as a client, and NASA developed mission-critical software using ART (IIRC it had something to do with the shuttle’s landing gear deployment system). But Inference formed a partnership with Sun and quit providing DOS/Windows versions of their software. Meanwhile NASA had a budget office to satisfy and had to buy all their computers from the same low-bid source, which meant they could only get Intel-compatible machines.

This resulted in NASA having mission-critical software written in a language that was only available on the computers they weren't allowed to buy. After a certain amount of wailing and gnashing of teeth, what it boiled down to was that they were legally able to hire programmers to implement the language on “standard” hardware, but they weren't legally able to buy the “nonstandard” hardware. Within a few months they had enough of the language running to handle their mission-critical software, and as a taxpayer-sponsored effort, it was released to the public.

This put Inference between a rock and a hard place, since a free version of their main product, which ran on much cheaper hardware than their partner would allow theirs to, was now available.
I love this post. It’s more fiction than fact, yet the manner in which it’s stated and specific details give it an air of credibility. The part about the shuttle landing gear deployment system is implausible for a number of reasons, but certainly makes the origin story so much more dramatic. Oh my, if we can’t deploy our landing gear expert system, the shuttle pilot will never know when to flip the landing gear switch. Wailing and gnashing of teeth, indeed!

A subsequent post in the thread corrects many of the inaccuracies relating to ART, but echoes a similar explanation for the origin of CLIPS:
In the mid-80's, NASA decided to fly expert systems, particularly on the space shuttle, and required a system that would run on PC's or some other kind of tiny embedded machines, which had memory limitations at the point that were fairly tough for a lisp-based system (remember 640K limits?). 
The actual origin of CLIPS is disappointingly mundane. There was no directive from the highest echelons of NASA management to create a tool for deploying mission critical shuttle software. CLIPS started as a small internal project at the Johnson Space Center in just one of several groups working with artificial intelligence. It was originally conceived as an intermediate step between the existing commercial tools and a low cost replacement tool that could promote widespread use of expert system technology. As events transpired, in addition to being an intermediate step, CLIPS ended up being the replacement tool as well.

ART was a powerful tool, but it was also expensive, costing tens of thousands of dollars. You could buy a copy of CLIPS for $250 and install it on every computer in your organization. Placing expert system technology on as many computers as possible was the real motivation behind the development of CLIPS.

Thursday, May 28, 2015

Little Kitty No-Legs



The cat kept clawing up the furniture, so we had her delegged.

She was not happy about that.

Wednesday, May 27, 2015

“Official” Production System

Charles Forgy on the origin of Official in Official Production System (OPS):
People often ask me if the name “OPS” really stands for “Official Production System.” In fact it does, but the name doesn’t mean what most people think.

In 1975, Carnegie-Mellon University professor Allen Newell started the Instructable Production System Project, or IPS as it immediately came to be called. Project members included John McDermott, Michael Rychener, and myself. While we all had implemented and used our own production systems prior to joining IPS, the goals of the IPS project required that we work in the same language.

Accordingly, in a series of meetings in the fall of 1975 we jointly designed a language with which we all felt comfortable. This language was to be the official production system of the IPS project. The intent behind the name was no more sinister than that. We certainly weren’t trying to tell people outside the IPS group that they should consider OPS an official anything!
Forgy, C. L. “The OPS Languages An Historical Overview,” PC AI, Sep/Oct 1995, pp. 16-21.

Tuesday, May 26, 2015

Texas Rising


History Channel’s ‘Texas Rising’ goes beyond Alamo siege:
The landscape in “Texas Rising” mostly looks and feels like Texas, but without all the skyscrapers and air conditioning. It’s hot, dusty and scrubby. At one point, though, Sam Houston, elegantly played by Bill Paxton with some killer sideburns, sets up camp on a mountain with a stunning view — even though there would not have been breathtaking vistas where Houston and the Texas Rangers were plotting to defeat the Mexican army.

“Those early episodes were all shot in Durango, Mexico,” said David Marion Wilkinson, a writer and co-producer on the project. “The settings don’t match. San Jacinto was all piney woods and bayous. Gonzales is flat land and farm land. ... But this is entertainment. I don’t think the geography is going to bother too many people.”
It bothered me.

Friday, April 24, 2015

CLIPS 30th Anniversary

This year is the 30th anniversary of the creation of CLIPS. Its wikipedia entry contains enough factoids to have earned it this banner:
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Since I’ve been involved with the software longer than anyone else, I’ll add my recollections on the veracity of each of the sentences in the wikipedia summary starting with the first:
CLIPS is a public domain software tool for building expert systems.
True. The versions of CLIPS developed while I was at NASA were distributed through COSMIC, but the versions I’ve developed after leaving NASA have been released as public domain software.
The name is an acronym for “C Language Integrated Production System.”
True. The I in CLIPS was sometimes erroneously stated to stand for Inference or Intelligent.
The syntax and name was inspired by Charles Forgy’s OPS (“Official Production System,” although there was nothing really official about it).
With regards to syntax, this is completely false. The only inspiration involved in the early syntax of CLIPS was to avoid reinventing the wheel. At the time, we were using ART for developing expert systems, so CLIPS replicated the ART syntax supporting the primary set of features we used. So credit for the core syntax used by CLIPS goes to ART, not OPS.

As for the name, there’s a definite truthiness to CLIPS being inspired by OPS (since both contain Production System in their acronym), but I think this misses the mark on the significance of CLIPS. The real impetus behind CLIPS was having a tool written in a conventional programming language that could be more easily integrated into operational environments. So the “C Language Integrated” portion of the acronym is more important than the “Production System” portion. Naming it CLIRL (C Language Integrated Rule Language) would have been as appropriately descriptive as CLIPS, but just wouldn’t roll off the tongue as easily. I don’t recall being involved in any discussions about the name, however, so the only person who can definitively answer questions about its inspiration is Robert Savely, my boss at NASA who conceived the project. Next time I see him, I’ll have to ask how he decided on the name.

Oddly, the most important legacy handed down to CLIPS from the OPS languages developed by Dr. Forgy, the Rete algorithm, is not even mentioned in the article.
The first versions of CLIPS were developed starting in 1985 at NASA-Johnson Space Center (as an alternative for existing system ART*Inference) until the mid-1990s when the development group's responsibilities ceased to focus on expert system technology.
Mostly true. The first version of CLIPS was developed in Spring of 1985 by Frank Lopez, but it wasn’t originally developed as an alternative to ART. Initially, it was developed to gain insight into the development of rule-based languages. After additional development it became apparent that CLIPS could be used as a training tool, and then later as an alternative to languages such as ART. Development on CLIPS at NASA did end in the mid-1990s, which is one of the reasons I ended up leaving NASA in 1996.
The original name of the project was NASA’s AI Language (NAIL).
Possibly or somewhat true, but also an example of why specific words need to be chosen to convey precise meaning. The source for this statement may be Frank’s website that uses the words “first proposed name” rather than “original name.” I have no doubt that NAIL was proposed as a name for the project as Frank states, but to be the original name of the project as the wikipedia article claims implies that at some point NAIL was selected, but then subsequently changed to CLIPS. Yes, this is splitting hairs, but I’m not the one who flagged the article for lack of citation.

On a different note, this is an odd bit of information to include as part of a brief description of a programming language.
CLIPS is probably the most widely used expert system tool.
Fifteen to twenty-five years ago I think you could make a reasonable argument for this claim, but today I think you could only claim that CLIPS is widely used.

On SourceForge CLIPS had around 30,000 downloads in 2014 (which could roughly be split to around half for executables and half for source code, documentation, and example programs). That places it in the top ten downloads on SourceForge for artificial intelligence software.

On the Stack Overflow question forum, there are 165 questions with the clips tags, 101 with the jess tag, and 80 with the jrules tag. On the other hand, the drools tag is associated with 1,546 questions. That makes a pretty strong argument that Drools is now more widely used than CLIPS.
CLIPS incorporates a complete object-oriented language (hence the acronym COOL) for writing expert systems.
True, although this sentence might lead one to believe that the acronym COOL stands for Complete Object-Oriented Language rather than CLIPS Object-Oriented Language.
CLIPS itself is written in C, extensions can be written in C, and CLIPS can be called from C.
True. CLIPS has also been integrated with many other languages including C++, .NET, Java, Perl, and Python.
Its user interface closely resembles that of the programming language Lisp.
True, but it could be more precisely stated that the CLIPS user interface is a read-eval-print loop.
COOL combines the programming paradigms of procedural, object oriented and logical (theorem proving) languages.
False. This sentence ignores the terminology used in the CLIPS Reference Manuals. I suppose this would be OK if you were comparing two or more languages that used different terminology for similar features, but that’s not the case here. CLIPS supports three programming paradigms: rule-based, object-oriented, and procedural. The documentation never refers to the procedural paradigm as being part of COOL and there’s no mention at all of a logical (theorem proving) paradigm.
A language with a similar approach is Planner, which also combines traits of logical languages like Prolog with the capabilities of procedural and OO-languages like C++.
Huh? How is Planner a good example of a language that takes a similar approach? Jess, JRules, and Drools are far better examples since they combine a forward chaining rule engine (much more similar to CLIPS than Prolog) with an object-oriented language.

And that’s it. No more sentences left for a thumbs up or thumbs down.

Thursday, March 26, 2015

Stick a Fork in It

Longest... Beta release... Ever.

After seven long years of limbo, I finally managed to work my way through the bazillion small things that needed to be completed before officially releasing version 6.30 of CLIPS.

Whew!

The major new feature in 6.30 is performance improvements, but this marks the first release where the distribution CLIPS executables—both Windows and Mac OS X—are code signed. The warnings you get when attempting to download and run unsigned executables from the Internet are pretty intimidating, so while the signing may go unnoticed by many, I’m glad I took the time and effort to get it done.

The CLIPS documentation has gotten a facelift as well. The box headers that for some reason we thought looked good twenty years ago are gone; spacing has been adjusted to improved readability; and the diagrams and tables have been updated with a modern look.

Now to decide what’s next for CLIPS…

Friday, March 13, 2015

Sir Terry Pratchett 1948-2015

One of my favorite authors; a master wordsmith of humor and satire.

I can’t think of anyone who did what he did as well as he did. Douglas Adams comes to mind, but he was neither as prolific nor consistently entertaining as Pratchett who, at the time of his death, had forty published novels in the Discworld series.

You know someone’s good at what they do when the only people who could fill their shoes are dead.

Friday, March 6, 2015

Culinary Help Desk

If questions about common activities were as inane as some programming questions I’ve seen:
I tried to make a peanut butter sandwich and couldn't figure out how to do it. Can someone tell me what I'm doing wrong? I need an answer ASAP. I'm hungry.

Tuesday, February 10, 2015

The Prodigal Son Returns



Sony Pictures Entertainment Brings Marvel Studios into the Amazing World of Spider-Man:
Under the deal, the new Spider-Man will first appear in a Marvel film from Marvel's Cinematic Universe (MCU). Sony Pictures will thereafter release the next installment of its $4 billion Spider-Man franchise, on July 28, 2017, in a film that will be co-produced by Kevin Feige and his expert team at Marvel and Amy Pascal, who oversaw the franchise launch for the studio 13 years ago. Together, they will collaborate on a new creative direction for the web slinger. Sony Pictures will continue to finance, distribute, own and have final creative control of the Spider-Man films.
It’s hard to think of a $4 billion dollar franchise as a failure, but nonetheless the last three Spider-Man movies have been creatively disappointing. I'm hopeful that the second reboot will breathe new life into the ailing franchise.

Most filmgoers are likely unaware that in the 1990s Marvel sold the movie rights to many of its most popular characters including Spider-Man, the Fantastic Four, and the X-Men. As this infographic from the Geek Twins illustrates, at the end of 2014 Spider-Man lived in a world of his own. Without a deal, he was unable to appear in the wider world of character rights still owned by Marvel.



So the studio that was able to turn a group of second tier characters into a cinematic blockbuster generating universe, now has a big gun in its arsenal. I’m all atingle.

Monday, January 19, 2015

Wednesday, January 7, 2015

Moving On

2014 marked the end of ten years of consulting with IBM. In that time, I learned invaluable lessons developing and maintaining three expert systems (one with CLIPS and two with JRules). Suffice it to say, there’s a huge difference between using a feature as a tool developer for a few weeks and using it as a tool user on a daily basis for years to develop and maintain a production system.

Moving forward, I want to see if there’s a market for inexpensively priced eBooks (see my prior Textbooks are Crazy Expensive post). I think the available CLIPS documentation compares quite favorably with other expert system tools, but compared to widely used languages such as Java or operating systems such as iOS, there’s a dearth of documentation and high quality examples.

To have a better understanding of the eBook creation process, my first project was to create an ePub version of the CLIPS User’s Guide (written by Dr. Joseph Giarratano many years ago). I used Apple’s Pages word processing app for a variety of reasons: I didn’t want to write the eBook in XHTML because I wanted to use a WYSIWYG editor that supported functionality for generating PDF files that’s not supported when generating eBooks (such as the ability to keep image captions on the same page as the image); I wanted to see if Pages was a suitable alternative to Word for my needs; since Pages can directly export to ePub, I wanted to see how well that process works; and I wanted to see if the ePubs generated by Pages could be easily converted for use with other eBook readers such as Kindle and Nook.

As I discovered, eBook creation is far more difficult than just formatting your content and pressing a button. The most annoying hurdle is that all eBook readers live in a reality where books on programming languages don’t exist. I understand why you shouldn’t expect a reader to support a specific font, but it should be dead simple to specify that one of three generic font types should be used: serif, sans-serif, or monospace. For a programming book, at the very least you need to be able to specify a serif or sans-serif font for the main body of your text and a monospace font for your code.

Pages should have been a slam dunk for Apple. They didn’t need to implement all the functionality of Word, they just needed to implement the most basic functionality and make it intuitive and easy to use. Sadly, in broad strokes, Pages doesn’t seem any better than Word, just different, and like Word, frequently annoying. That’s not to say there’s no reason to use it. It’s relatively inexpensive when compared to Word and you can store your documents in iCloud and access them from your Mac, iOS devices, or web browser. The ePub generation works pretty well, so if you only plan on offering your eBooks in the iBooks Store, using Pages to generate the ePubs appears to be a pretty good solution.

The jury is still out on whether using the ePub generated by Pages to create versions for Kindle and Nook is a viable option. I’m almost satisfied with the Kindle files I was able to generate from the Pages ePub. Hopefully, there’s just a few tweaks I need to figure out to be completely satisfied. Nook is another story. The Nook app for iOS appears to be optimized to display ePub files in the ugliest possible format.

Information on the free iBooks version of the CLIPS 6.3 User’s Guide is available at this link. At some point I’ll probably make a version available for the Kindle, but it won’t be through the Kindle store. There are some restrictions with offering public domain content on the Kindle store that the User’s Guide would violate. In addition, free eBooks can not be distributed through the Kindle store.