Ishmael's Doom was composed with the assistance of a small Macintosh application I wrote called, originally enough, "Ars Magna." Since every single anagram-assistance program ever written was dubbed by its creator "Ars Magna," I will henceforth refer to this marvelous piece of software as "Nmg Sr'aaa."
Nmg Sr'aaa would display a window with two large text fields. Into the bottom field the user would type the constraining text, i.e., the text of which the desired output was to be an anagram. This could be arbitrarily large.
Into the top field the user would type freely; for each letter entered into the top field, the same letter would be removed from the bottom field. Should a letter be entered which did not exist in the lower field, it would be rejected. When the bottom field was completely empty I could be assured that I did indeed have a perfect anagram of the original text.
I rapidly reached the conclusion that, contrary to what one might expect, it is easier to write a perfect anagram of a large piece of text than a short one. At the start, writing may proceed unfettered, as almost all the letters you need will be available. The difficulty of the constraint appears to be inversely proportional to the number of letters still unused, rather than directly proportional to the number of letters consumed.
Regarding the Macintosh version of Nmg Sr'aaa: I wrote it in Object Pascal (one of the deader dead computer languages), couldn't tell you where the source is, and the executable has some embarassing bugs which I would rather not have see the light of day.
A Java version, however, may be found here. Be forewarned: this applet was written in the dark ages, before AWT 1.1. As such its handling of the various keyboard events leaves something to be desired. I've been saying—since 1997—that I would eventually fix this. It is still possible I was not lying.
Each paragraph of Ishmael's Doom is an anagram of a random piece of text I found floating around the house the day before I had to present it to my English 291 class. A paragraph-by-paragraph account follows:
|Anagrams of Some Stuff I Found Lying around the House||A self-descriptive anagram of the title.|
|She looked at him as if seeing him for the first time.||A classic sentence, one I've always wanted to use. Gilbert Sorrentino's canonical example of a literary cliché.|
|CAUTION: May explode or leak, and cause burn injury, if recharged, disposed of in fire, mixed with a different battery type or inserted incorrectly. Replace all batteries at the same time. Do not carry batteries loose in your pocket or purse.||The warning on the back of a package of Duracell batteries|
|Use Comet Disinfectant Cleanser with Chlorinol to clean TOUGH GREASY FOOD STAINS and SOAP SCUM. Use Comet on porcelain, stainless steel and fiberglass. Comet's NO SCRATCH FORMULA is approved for use by ELKAY Stainless steel sinks.||The blurb on the back of a can of Comet Disinfectant Cleanser.|
|Using the idea developed in the previous section we can prove a few closure properties of deterministic context-free languages. Before proceeding, we present one more technical lemma. The lemma asserts that we can define acceptance for a DPDA by a combination of state and the top stack symbol; the language so defined is still a deterministic language.||An excerpt from the CS154 textbook, Introduction to Automata Theory, Languages and Computation.|
|This garment is sewn and scientifically laundered to give the look of being old and worn. Flaws and imperfections are part of the total desired look.||A disclaimer included with one of my housemate's recently purchased pairs of blue jeans.|
||The last stanza of Lewis Carroll's The Hunting of the Snark.|
|"Generative Devices" are consciously selected, preconceived structures, forms, limitations, constraints, developed by the writer before the act of writing. The writing is then made according to the "laws" set in place by the chosen constraint. Paradoxically, these constraints permit the writer a remarkable freedom. They also serve to destroy the much-cherished myth of "inspiration," and its idiot brother, "writer's block."||The first paragraph of the syllabus to English 291.|
|corn flour, sugar, oat flour, brown sugar, partially hydrogenated cottonseed oil, salt, niacinamide, reduced iron, yellow 5, calcium pantothenate, zinc oxide (a source of zinc), yellow 6, pyridoxine hydrochloride, thiamine mononitrate, BHA (a preservative), riboflavin, folic acid, vitamin B12, one of the B vitamins.||The list of ingredients on a box of Cap'n Crunch.|