Mocking fortunes

Jon

Paw Prints: Writings of the maddog

Sep 28, 2010 GMT
Jon maddog Hall

X windows:

The ultimate bottleneck.

Flawed beyond belief.

The only thing you have to fear.

Somewhere between chaos and insanity.

On autopilot to oblivion.

The joke that kills.

A disgrace you can be proud of.

A mistake carried out to perfection.

Belongs more to the problem set than the solution set.

To err is X windows.

Ignorance is our most important resource.

Complex nonsolutions to simple nonproblems.

Built to fall apart.

Nullifying centuries of progress.

Falling to new depths of inefficiency.

The last thing you need.

The defacto substandard.

Elevating brain damage to an art form.

X windows.

Those of you who know me may be surprised to see such venom against the really great X Windowing System showing up in my blog. Trust me in the fact that I did not say the words listed above....it was output from the venerable program “fortune(1)”.

I have known “fortune(1)” for a long time. Fortune(1) was a favorite program of some of the researchers at Bell Labs when I worked there in 1980 to 1983.

I liked fortune(1) too, and especially because it had my favorite recipe in it, one for making a “Mock Apple Pie” from Ritz crackers. Of course this recipe had been on the back of Ritz cracker boxes since “the dawn of time”, but I thought it was cool that the recipe had also made it into my favorite operating system, Unix.

However, fortune(1) was also a cause of frustration for Digital's Unix products!

We were going to release the second release of Ultrix when we got a call from Ken Olsen (KO), the CEO of Digital Equipment Corporation. It seems that the president of a very large company in Texas had called Ken and complained that Digital was putting out an “un-American operating system”.

Of course the engineers and product management of Ultrix were upset, and even more upset when we found out it was the “fortune(1)” program that seemed to be creating the problem. It seems that the president's systems administrator had set the president up with a terminal on his desk, and set up fortune(1) to execute each time the president logged in.

Now for those of you who have a lot of gray in your beards (or hair for the females of our clan) you may remember that when fortune originally came out it had two databases, the “obscene” data base and the “scene” database. The “scene” database had “normal” jokes, fortunes and (of course) the mock apple pie recipe in it, and the “obscene” database had things that your parents probably would not approve. Your parents might read the “obscene” fortunes and even laugh, just not approve.

In any case, the engineers and product managers agreed that the “obscene” database probably should be removed, and they had made plans to remove it from Version 1.0 of Ultrix. When the message from KO's office came in, we thought that we had made a mistake and shipped the “obscene” database.

We checked, and the “obscene” database was not there! Then we looked closer.

It turns out that a fundamental concept of humor (known by every stand-up comedian in the world) is that a joke is usually a comment about someone else, and often not a very nice comment. And it turns out that some of the students at a very liberal university had made up some “fortunes” about a certain Republican President of the United States whose name rhymes with “Nixon”. This is what the Republican in Texas was complaining about as being “un-American”.

We agreed that some of the “fortunes” in the database were extremely derogatory to the former U.S. President, so we removed them.

Then we started to think about some of the other “fortunes”. There were unkind remarks about Jewish people, Italian people, Russian people, Homosexuals, Teachers, Catholics...and so on. And one by one we removed the “fortunes” until there was only ONE fortune left, the “fortune” for Mock Apple Pie!

Now I begged the powers that be to retain the Mock Apple Pie recipe, but the legal people at Digital said that someone might try to make the recipe, not bake it long enough, choke on a half-baked cracker and die, their estate suing Digital for publishing the recipe. So we removed it.

Then fortune(1) refused to work, since there were no “fortunes” in the database (remember, this was an early version).

This created a problem for Digital, since we had officially supported the fortune(1) program in the V1.0 release, and to “retire” fortune(1) we had to give at least one release of warning to customers that we were going to drop support. So we HAD to support fortune(1) for at least the release we were working on.

Then came the bright idea, to put one “fortune” back into the “scene” database, and that “fortune” told people how to add more “fortunes” or to restore the “scene” database from the previous release. That was the way we solved the problem.

Many years later I had access to a Sun Microsystems Solaris system, and I wanted to see how they solved the problem. Amazingly I saw that they not only shipped the entire “scene” database, but the “obscene” database too. I asked them what they advised customers who complained, and Sun (or at least the person I talked with) said “If fortune(1) offends you, don't use it.”

fortune(1) is also available for Linux, of course, and looking at the latest version I see that the databases are much more sophisticated than they have been in the past, with many more categories of “fortunes” than just “scene” and “obscene”. Curious, I looked into the “food” database and I did find my favorite recipe in all these thirty years:

MOCK APPLE PIE (No Apples Needed)

Pastry to two crust 9-inch pie

36 RITZ Crackers

2 cups water

2 cups sugar

2 teaspoons cream of tartar

2 tablespoons lemon juice

Grated rind of one lemon

Butter or margarine

Cinnamon

Roll out bottom crust of pastry and fit into 9-inch pie plate. Break RITZ Crackers coarsely into pastry-lined plate. Combine water, sugar and cream of tartar in saucepan, boil gently for 15 minutes. Add lemon juice and rind. Cool. Pour this syrup over Crackers, dot generously with butter or margarine and sprinkle with cinnamon. Cover with top crust. Trim and flute edges together. Cut slits in top crust to let steam escape. Bake in a hot oven (425 F) 30 to 35 minutes, until crust is crisp and golden. Serve warm. Cut into 6 to 8 slices.

-- Found lurking on a Ritz Crackers box

Try the recipe out, but please don't choke on the "apples".

Carpe Crackers!

Comments

  • Good post!

    maddog,
    You made me laught very much with your post, thank you!

    daniel//
  • Scene :-D

    You made me chuckle...

    We had the exact same problem in Debian some years ago. The outcome of that was the fortunes-off package (off for "offensive"blunk. IIRC that caused the maintainer to add support for multiple fortune databases.

    I had my own fortunes file made from C++ best practices and another one from the Prachett Quote File.
comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News