Markov Chain Englishoid Sentences

OK, this is really geeky, so please bear with me.

In the classic DOS game Rogue, magic scrolls have titles with gibberish names, probably generated on the fly with a simple random character generator. The Rogue random scroll name generator seems to assume independence between successive characters — i.e., the probability that a character will be generated is not influenced by the immediately preceding characters. OK, at best, it might have some rule that you can’t have too many consonants in a row. In any case, it generates character strings that don’t follow the conventions of English, and that are often unpronounceable.

To illustrate what I’m talking about, this R command generates ten random small and capital letters:

rawToChar(as.raw(sample(65:122,10)))

An example of output is:

“ZhcOJbfPxW”

(Doesn’t look much like English, and looks impossible to pronounce. Might make a reasonably secure password, though. Actually, it’s secure no longer, now that it’s displayed for all the world to see.)

I have long thought that it might be fun to generate random words with non-independence of successive characters, and based on the frequencies observed in actual English text. I.e., if the letter q were randomly generated, then the next letter is probably going to be a u and not a k, because that’s how English works in general.

Now, Markov chains have been in my mind recently, partly because they were mentioned as a possible technique for some data imputation we had to do at work (we actually ended up not using Markov chains), and partly because of a recent MetaFilter post entitled Markov Bible. And then I thought, after all these years just thinking about it, why don’t I try implementing a Markov chain that generates random Englishoid words strung out in sentences, where the frequency distribution of characters is conditional on the preceding two characters, using real English sentences as data?

So, I went ahead and implemented such an algorithm in R, with two-character memory, i.e., the probability distribution of characters generated is based on the preceding two characters. Sentences were defined as starting with a capital letter, so to initialize sentences I just took the overall frequencies of capital letters as the starting distribution. And sentences were defined as ending with either a period, a question mark, or an exclamation point. If a line of text ended with a hyphen, it was assumed that a word had been split between that line and the following line; otherwise, it was assumed that there was a blank space between the last word of that line and the following line. As a self-imposed challenge, for memory efficiency, I required the code to read the text into a memory buffer line by line, rather than reading the whole text file into memory at once.

To test my code, I took the text of H.P. Lovecraft’s story, The Dunwich Horror, and put it into a plain text file. I then read the text file into R and put the two-character transition information into a matrix, using these two lines of R code:


fileName       <- "DunwichHorror.txt"
twoCharFreqMat <- buildTwoCharacterFreqMatrix(fileName)

(buildTwoCharacterFreqMatrix() is one of the R functions I wrote; complete R code is given below.) I then generated 10 random Englishoid sentences with this loop:


# Generate 10 random sentences.
for ( k in 1:10 ) {
    sentence <- generateSentence(twoCharFreqMat,2000)
    print(sentence)
    flush.console()
}

And these are the 10 sentences that I got:

  1. “Night it thaff fly terye four er dow in’ hill Saw posprigarthe but – the fecand of the Whad of Arackeplated comithe pill.”
  2. “But of whan the few move deves wit.”
  3. “Deen.”
  4. “Earmits The hathe of dismew therethe becuen spook fable foreleatele whe hind to aritfuld boodmight ingicir and ded, of tweres The andeeteved ung thouse.”
  5. “Whal Ric in com tiong thot hing maing.”
  6. “Dr whipped, pooke rhathe fick hing to se proboadmit itaind hude feentomemany siong crome fols, ithe an – wok thad.”
  7. “Sep facle a bight ‘Thembere ninig spaing alkateley semplen tion lary canxingthe ocitelleas righ ders stin’s couraboo derip, ang and ally ons toped frouggled he yetly Pocke daters be – no evele on, fullintingle con theectiouseeps wee lumand outed preeng Mist rid the gi mys her to ch mas down ers aowde pland th re mompow thadvel doultaganereecturs cand ancer to thicoust wougend fas the hey bey valmoor Spre sed med Dr far He skulder pawfuload shand ais anced whisilly to thrumber It and Eng, bodeeled thattenibe knoistionew that’s ham thers thaven halmounry par geopy sibles they dessen knot frine and bould thated a dremomic thindern wass wriblike and matherast whin blear slever pre 751stray What parthe gan’ tred, waysidered hateds hey forge bulthe Harmisideddes ousen hattom anniall rorbione ‘He whortenclousle st ashe cows eve ninithe only we hattes inds he quing ing, anday; the mento huseer the irs bovencenter priershromed ton orniand morroo card aught lown thad compin st he his – the dicitatiour’s drand dreak tat.”
  8. “Whaterumbloseciarseem itich as olls wed thided black which alle pronstramen Curated th on.”
  9. “Bis seelle manew fres tel up opeartill ne par vintimple tame.”
  10. “It steroormead dirs mand It tir thatench, of as bout call dis horstandarty, obbatim Some fronce unds and an’ they tharrome red whirthoute Will explace reemblact strus ad, east wo le of throdunks stalf, fout that theepok andistonsturings Curat row of Spreen diall an sawas Dr expeem of and ouse vered leckly aincamis beark, and the reen th.”

Cool, no? Granted, this is nothing earth-shaking, and I am not the first person to have done something like this. I am doing this just for the sheer fun of it.

Many of the words look like they follow English conventions, sort of, and some of them are in fact real English words. But overall, it looks more like a foreign language. German or Dutch, maybe? Some of the words in sentence #5 sound… Vietnamese? I like how the commas, dashes, and semicolons seem to imply some train of thought, some reasoned argument, but you just can’t understand the words.

Note the sheer length of #7 — a “run-on” sentence. Maybe this suggests that Lovecraft tended to have longer sentences, and thus punctuation marks that end sentences are relatively (compared to other writers) rare in Lovecraft? But note that #3 is only one word. Hmm, if I had instead used Ernest Hemingway for input, would I have had more one-word sentences like #3?

Part of the reason I chose The Dunwich Horror for input was that Lovecraft wrote in a rather stilted, archaic-sounding style of English (some might call it “purple prose”), which I thought might be interesting for this little project. The Dunwich Horror has some sentences in which Lovecraft puts on a faux New England accent; this might have influenced my “transition matrix,” but I think only very slightly.

Suppose you used text from some language other than English as input to this R code? Would you be able to tell that the result was based on non-English input?

Or suppose that instead of basing the character generation probability on the previous two characters, you base it on the previous three characters? I bet that the result will really start looking like English. I must try it sometime.


In the comments of the Markov Bible post on MetaFilter, a link is given to this web page: Mark V. Shaney. This does something very similar to what I have done here, except it operates on words rather than on letters.


Check out the SCIgen web page. You can create a randomly generated computer science paper with yourself and your cat as co-authors. You might even get it accepted in a peer-reviewed (?) journal or conference.

I have mentioned SCIgen in a previous post.


Random SBIR Grant Proposal Generator

and

arXiv vs. snarXiv

both via Division By Zero, in a post entitled 12 scholarly hoaxes, randomly generated articles, and other tricky fun


Here’s my R code for generating Englishoid sentences:


getNextNonemptyLine <- function(filePointer) {
    # Keeps reading lines from FILEPOINTER until it gets a non-empty line.
    # If it hits EOF before getting a non-empty line, returns an empty string.
    nextLine <- readLines(con=filePointer, n=1)

    if ( length(nextLine) == 0 ) {
        return("")
    }

    while ( nextLine == "" ) {
        nextLine <- readLines(con=filePointer, n=1)
        if ( length(nextLine) == 0 ) {
            return("")
        }
    }

    return(nextLine)
}

getNextBatchOfChars <- function(filePointer,n) {
    # Keeps reading non-empty lines from FILEPOINTER until it has gathered
    # AT LEAST n characters.
    # If it is unable to do so, returns an empty string.
    nextLine  = n ) {
        return(nextLine)
    }

    returnVal <- nextLine
    nextLine  <- getNextNonemptyLine(filePointer)
    while ( ( length(returnVal) < n ) & ( nextLine != "" ) ) {
        returnVal <- sprintf("%s%s",returnVal,nextLine)
        nextLine  <- getNextNonemptyLine(filePointer)
    }
    if ( length(returnVal) < n ) {
        return("")
    } else {
        return(returnVal)
    }
}

getNextBatchOfAscii <- function(filePointer,n) {
    # Keeps reading non-empty lines from FILEPOINTER until it has gathered
    # AT LEAST n ASCII values.
    # If it is unable to do so, returns an empty NUMERIC array.
    emptyArray       <- as.integer(rep(0,0))
    returnVal        <- emptyArray
    nextBatchOfChars <- getNextBatchOfChars(filePointer,n)
    if ( nextBatchOfChars == "" ) {
        return(emptyArray)
    }
    nextBatchOfAscii <- as.integer(charToRaw(nextBatchOfChars))
    returnVal        <- nextBatchOfAscii
    while ( length(returnVal) < n ) {
        nextBatchOfChars <- getNextBatchOfChars(filePointer,n)
        if ( nextBatchOfChars == "" ) {
            return(emptyArray)
        }
        nextBatchOfAscii <- as.integer(charToRaw(nextBatchOfChars))
        returnVal        <- c(returnVal,nextBatchOfAscii)
    }

    # If RETURNVAL is still too short, return empty array.
    if ( length(returnVal) < n ) {
        return(emptyArray)
    } else {
        return(returnVal)
    }
}

generateFirstTwoCharacters <- function(twoCharFreqMat,charList) {
    # Generate first character, restricting it to capital letters.
    # To determine the first character, compute the frequencies of
    # capital letters across all columns.
    # Keep in mind that ASCII codes start at 0, not 1.
    oneCharFreqMat <- apply(X=twoCharFreqMat,MARGIN=1,FUN=sum)
    oneCharFreqMat[ c(1:65,91:128) ] <- 0
    numChar        <- length(oneCharFreqMat)
    oneCharCumSum  <- cumsum(oneCharFreqMat)
    oneCharCumSum2 <- c(1,oneCharCumSum[1:(numChar-1)]+1);
    randNum        <- sample(x=oneCharCumSum[numChar],size=1)
    indexSelect1   <- (1:numChar)[ ( oneCharCumSum2 = randNum ) ]

    # To determine the second character, now compute frequencies across
    # columns where indexSelect1 is the second character.
    oneCharFreqMat <- rep(0,numChar)
    for ( i in 1:numChar ) {
        columnIndex    <- ( ( i - 1 ) * numChar ) + indexSelect1
        oneCharFreqMat <- oneCharFreqMat + twoCharFreqMat[ , columnIndex ]
    }
    oneCharCumSum  <- cumsum(oneCharFreqMat)
    oneCharCumSum2 <- c(1,oneCharCumSum[1:(numChar-1)]+1);
    randNum        <- sample(x=oneCharCumSum[numChar],size=1)
    indexSelect2   <- (1:numChar)[ ( oneCharCumSum2 = randNum ) ]

    return(c(indexSelect1,indexSelect2))
}

generateSentence <- function(twoCharFreqMat,nCharLimit) {
    # Generate first two characters.
    charList       <- ( 0:127 )
    charsGenerated <- generateFirstTwoCharacters(twoCharFreqMat,charList)
    char1          <- charsGenerated[1]
    char2          <- charsGenerated[2]

    # Now keep generating characters, Markov Chain-like, until
    # we hit a period, question mark, exclamation point,
    # OR all zero probabilities.
    # ASCII number for period is 46.
    # ASCII number for question mark is 63.
    # ASCII number for exclamation point is 33.
    # But keep in mind that ASCII codes start at 0, not 1.
    #
    numChar <- nrow(twoCharFreqMat)
    while ( ( char2 != 47 )
          & ( char2 != 64 )
          & ( char2 != 34 )
          & ( length(charsGenerated) < nCharLimit ) ) {
        columnIndex    <- ( ( char1 - 1 ) * numChar ) + char2
        oneCharFreqMat <- twoCharFreqMat[ , columnIndex ]
        if ( all(oneCharFreqMat==0) ) {
            break
        }
        oneCharCumSum  <- cumsum(oneCharFreqMat)
        oneCharCumSum2 <- c(1,oneCharCumSum[1:(numChar-1)]+1)
        randNum        <- sample(x=oneCharCumSum[numChar],size=1)
        nextChar       <- (1:numChar)[ ( oneCharCumSum2 = randNum ) ]
        charsGenerated <- c(charsGenerated,nextChar)
        char1          <- char2
        char2          <- nextChar
    }
    sentence <- rawToChar(as.raw(charList[charsGenerated]))
    return(sentence)
}

buildTwoCharacterFreqMatrix <- function(fileName) {
    # There are 128*128 = 16384 bins to track.
    charList <- ( 0:127 )
    numChar  <- length(charList)
    numList  <- ( 1:numChar )

    # Initialize two-character frequency matrix.
    # Rows will be the 128 output characters.
    # Columns will be the 128*128 sequential characters to generate
    # one of the 128 output characters.
    twoCharFreqMat <- matrix(0,nrow=numChar,ncol=numChar*numChar)

    # Open text file for input.
    filePointer <- file(fileName,"r")

    # Initialize ASCIIARRAY, which contain a line of text from the input file.
    asciiArray <- getNextBatchOfAscii(filePointer,3)
    numAscii   <- length(asciiArray)

    # Process lines of text, and keep reading lines of text until EOF.
    lineCount  3 ) {
        print(sprintf("Line count = %d",lineCount))
        flush.console()

        # Fill in frequencies in twoCharFreqMat.
        k        <- 1
        cIn1     <- numList[ asciiArray[k]   == charList ]
        cIn2     <- numList[ asciiArray[k+1] == charList ]
        cOut     <- numList[ asciiArray[k+2] == charList ]
        rowIndex <- cOut
        colIndex <- ( ( cIn1 - 1 ) * numChar ) + cIn2
        twoCharFreqMat[rowIndex,colIndex] = 4 ) {
            for ( k in 2:(numAscii-3) ) {
                cIn1     <- cIn2
                cIn2     <- cOut
                cOut     <- numList[ asciiArray[k+2] == charList ]
                rowIndex <- cOut
                colIndex <- ( ( cIn1 - 1 ) * numChar ) + cIn2
                twoCharFreqMat[rowIndex,colIndex] <-
                    twoCharFreqMat[rowIndex,colIndex] + 1
            }
        }

        # Get next line of text, and prepare for next iteration through
        # WHILE loop.  If the last character was a hyphen, consider it
        # to mean that the word continues to the next line. Otherwise,
        # treat the end of line as if it were simply a space between
        # words.
        # ASCII number for blank space is 32.
        # ASCII number for hyphen is 45.
        if ( asciiArray[numAscii] == 45 ) {
            pre1 <- as.raw(asciiArray[numAscii-2])
            pre2 <- as.raw(asciiArray[numAscii-1])
        } else {
            pre1 <- as.raw(asciiArray[numAscii-1])
            pre2 <- as.raw(32)
        }
        asciiArray <- getNextBatchOfAscii(filePointer,1)
        asciiArray <- c(pre1,pre2,asciiArray)
        numAscii   <- length(asciiArray)

        lineCount   3 )

    # Close the input file.
    close(filePointer)
    print("")

    return(twoCharFreqMat)
}

# Build two-character frequency matrix.
fileName       <- "DunwichHorror.txt"
twoCharFreqMat <- buildTwoCharacterFreqMatrix(fileName)

# Generate 10 random sentences.
for ( k in 1:10 ) {
    sentence <- generateSentence(twoCharFreqMat,2000)
    print(sentence)
    flush.console()
}


Addendum (09/08/11): Here’s a random academic sentence generator. And here’s a Postmodernism Generator (every time you click on that link, you get a new random essay, reminiscent of the Sokal Affair). Here’s an example of output, complete with Lovecraftian references: Lacanist obscurity in the works of Joyce.

Ubbo-Sathla, Gray Goo, and The Devouring Mother

Earlier, I had mentioned the fictional Outer God Ubbo-Sathla, a creation of writer Clark Ashton Smith and set in the same Lovecraftian universe as Cthulhu and Yog-Sothoth. I find Ubbo-Sathla interesting because of a creepy similarity to certain vegetative goddesses of ancient mythology.

Ubbo-Sathla has been described as a great pool of gray protoplasm, seething and bubbling in a subterranean cave. He has very low sentience, if any at all. To touch him is instant death. He continuously sloughs off a flood of amoeba-like “proto-life,” creatures that wriggle away and over millenia perhaps evolve into other creatures such as insects, cats, and humans.

The creepy thing is, Ubbo-Sathla also re-absorbs living creatures. Sometimes he re-absorbs the “proto-life” creatures immediately after they are generated. Sometimes he re-absorbs more highly evolved creatures, like humans, perhaps learning whatever information these creatures might have gained during their lifetime (perhaps this is how he will regain the sentience he once had?). It is said that someday Ubbo-Sathla will re-absorb all life on Earth. The surface of the planet will then be one vast ocean of gray protoplasm.


The idea of an ocean of gray protoplasm taking over the earth brings to mind the hypothetical danger of nanotechnology leading to a Gray Goo scenario.

Maybe Ubbo-Sathla is the result of out-of-control nanotechnology? Eons ago, an alien civilization sent out nanotech spores to seed the universe with life, and Ubbo-Sathla and all earthly life is the result?


Gray Ooze (classic Dungeons and Dragons)


The Gray Ooze That Ate the Indonesian Villages
— Los Angeles Times, September 9, 2006

Ubbo-Sathla already starting to re-absorb all earthly life!


For Ubbo-Sathla is the source and the end. Before the coming of Zhothaqquah or Yok-Zothoth or Kthulhut from the stars, Ubbo-Sathla dwelt in the steaming fens of the newmade Earth: a mass without head or members, spawning the grey, formless efts of the prime and the grisly prototypes of terrene life . . . And all earthly life, it is told, shall go back at last through the great circle of time to Ubbo-Sathla.

— The Book of Eibon (quoted from the beginning of Clark Ashton Smith’s original story)


Ubbo-Sathla reminds me of a 1958 movie called The Blob and its 1988 remake. (Looks like there’s another remake in the works — I must see it.)

But Ubbo-Sathla reminds me especially of a 1985 movie called The Stuff. In this movie, a sinister white goo is found in an underground chamber. It tastes amazingly good, and once you eat it you want to keep eating it — and then it takes over your mind. See the underground scene starting at 4:55 in this YouTube clip. This huge underground pool of white bubbling goo is the spitting image of Ubbo-Sathla!


For an interesting short story involving Ubbo-Sathla, see Omega, by Gary Myers, in his book Dark Wisdom. This book is a collection of Lovecraftian short stories. Other memorable short stories in this collection are What Rough Beast and From Inner Egypt.


I am a big fan of The Teaching Company, which produces college-level courses on CD-ROM and DVD. One of my most favorite Teaching Company courses is Myth in Human History, by Professor Grant L. Voth. The lectures discuss (among other topics) myths about vegetative goddesses who not only create but also consume life; in some of these myths, the goddess is said to actually eat her own children. One example Dr. Voth gives is an Irish goddess named Danu, from whom all life came, and to whom all life must return. Underground temples like the ancient complex Newgrange (which is possibly a temple to Danu, and which is even older than the Egyptian pyramids) are thought to simultaneously represent wombs and tombs (“cradle to grave”). For more on ancient Irish goddesses and Newgrange, see A Womb Not a Tomb, an article by Geraldine Moane.

In his Jung-infused book The Living Labyrinth, Jeremy Taylor mentions the archetype of a mother goddess who gives birth to all life, but in time devours all. As an example, he gives the example of the Aztec goddess Tonantzin, who is described as having snapping mouths in all her joints. You can see a rather creepy drawing depicting Tonantzin, Mother and Devourer of All, the One to Whom All Paths Lead, here. Mr. Taylor references another book entitled The Hungry Woman, by John Bierhorst. (The Devouring Mother is a well-known Jungian archetype.)

Another Aztec goddess, similar to Tonantzin, is Coatlicue. Wikipedia says “She represents the devouring mother, in whom both the womb and the grave exist.” I am wondering whether Tonantzin and Coatlicue are two different names for the same goddess.

Online article exploring the origins of the womb-tomb/cradle-to-grave idea: Mother Earth-Mother Death: The Womb and the Tomb

The temples of vegetative Earth goddesses tend to be underground, like Newgrange. Descending into the underworld is simultaneously symbolic of a return to a womb, and of entering a tomb. The underground location is like Ubbo-Sathla’s subterranean location. Ubbo-Sathla thus has a lot more in common with the vegetative Earth goddesses and chthonic deities than, say, with sky gods like Zeus or Thor.

Here’s a broken link that went to a related story; maybe the website is only temporarily down? (I keep the link here in the hope that it might some day be working again.)


Papers on PubMed regarding filial cannabilism (eating one’s own young).


The idea of the cyclicity of life is reminiscent of the Ash Wednesday incantation: “You are dust, and to dust you shall return”, a quote from Genesis 3:19. Also of the idea of reincarnation.


Huge hidden biomass lives deep beneath the oceans — New Scientist, May 23, 2008.

Ubbo-Sathla lives!


The Tower Of The Mighty God Ubbo-Sathla
— photo on Flickr by Midnight-digital


Mother Nothingness (The Triumph Of Ubbo Sathla)
— heavy metal by The Vision Bleak (2010). Listen to the lyrics. It’s interesting that the non-parenthetical portion of the song’s title is “Mother Nothingness” rather than “Father Nothingness,” suggesting the vegetative goddesses and the devouring mother archetype.


Ubbo-Sathla
— electronic music by Flint Glass (2007)


Ubbo-Sathla
— spooky music by Endura (2008)


Review of Mr. Smith’s original tale, by Dr. Hermes:
Why is Ubbo-Sathla particularly heinous?


I think that Clark Ashton Smith knew about the goddesses who devour their own children, so the similarity between Ubbo-Sathla and these mythological figures may not be accidental. At the very beginning of the original story, the protagonist is browsing in a curio shop and finds a magic crystal that leads to his adventures. Right next to this crystal was a figurine of an Aztec god. Although the figurine doesn’t play any role in the story, maybe, just maybe, it is a very tangential reference to Tonantzin/Coatlicue? (OK, that’s a stretch. More likely, the null hypothesis is true, and it was just chance.)

I think it might have been cooler had Mr. Smith made Ubbo-Sathla female rather than male, to leave open the possibility of equation with the ancient goddesses.

For verisimilitude, it also might have been cooler had he given Ubbo-Sathla a name similar to one of these ancient goddesses, as if it were a corruption of the original name, in the same way that he corrupted the names of Yog-Sothoth and Cthulhu in his quote from The Book of Eibon (see quoted text above). E.g., a name similar to Danu or Coatlicue, like Danugah or Kwat-Lagu. (Yes, the names Danu or Coatlicue may themselves be corruptions of original names.) Well, I’m sure Mr. Smith had a reason for settling on Ubbo-Sathla.


Addendum (11/27/11): Here are a pair of recent MetaFilter posts that seem relevant:
My name is LUCA, I live on the ocean floor
Did Life Begin As A Ocean-Sized Lifeform?

The latter post in particular has two comments that reference Ubbo-Sathla.

Deer Strike, November 21, 2010

A week ago, Sunday, November 21, 2010, around 6:00 PM, I hit a deer! I had spent the weekend at my sister’s new house out in Loudoun County to help her and her husband with moving and unpacking boxes. That Sunday, I excused myself to attend a 2 PM ragtime piano concert, hosted by the Northern Virginia Ragtime Society, with Perfessor Bill Edwards performing. After the concert, the plan was for me to return to my sister’s house.

I had been driving back to my sister’s new house and was just about to get off Route 7 when I hit the deer. At that point, Route 7 is two lanes going east and two going west, and I had been headed west in the right lane. There was another car in the left lane right next to me, and we were about head-to-head. Suddenly, the deer appeared just to my right, appearing to be moving from left to right. There was no time to react. I clipped it with the right front corner of my CRV; I believed I saw a spray of stuff upon impact, but I’m not sure whether the stuff was plastic material from the car or organic material from the deer. I suspect that the car to my left was lucky, and the deer had gotten out of the left lane into my lane.

For about a second I thought of just driving all the way to my sister’s house and inspecting the damage there, but within a second or two I realized that I didn’t have brakes; when I tried mashing on the brakes, there was strong resistance and no response with the brakes. Then I realized I didn’t have acceleration either! I was just coasting. So the only thing left to do was to maneuver the car to the side of the road before it lost momentum (mass times velocity). I brought the car to a stop at the intersection between West Loudoun Road and Route 7, facing west.

Here’s a street-level view of that intersection; it’s from the perspective of the Google Van in the street, but I was off the road, on the shoulder. Looking up through my windshield, I could see a street sign labeled “W LOUDOUN ST”, which is not seen in Google’s street-level view. Perhaps the street sign is a relatively new addition.

I didn’t see the deer after that; maybe it hobbled off into the woods. I myself was uninjured. No other cars or people were involved, so this was thankfully a relatively simple case.

I used my cell phone to telephone my sister to let her know what had happened. I was then fumbling about with my wallet, looking for my AAA card when the blue flashing lights of a police car show up in my rear view mirror. I would estimate that barely five minutes had elapsed between hitting the deer and the police showing up.

The policeman, a deputy sheriff, took my driver’s license and insurance information, and filed an accident report. He then kindly offered to summon a towing truck for me, explaining that if I did it myself (e.g., perhaps through AAA) it might take longer. I guess towing companies are a little more responsive when the request comes from the sheriff! I took him up on the offer. And indeed, the towing truck appeared extremely promptly, probably within ten minutes. To my amusement, the towing truck’s license plate was REPO GOD. The deputy sheriff then gave me a ride to my sister’s new house; with a chuckle, he said that if it helped me feel any better, I had made it almost all of the way to my destination before hitting the deer. And as he dropped me off, he gave another chuckle — he told me that the neighbors are now wondering about this new family that just moved into town, and that are now having a police car show up on their driveway. (There go the property values!)

Monday morning, I telephoned my insurance company, State Farm, and gave them information regarding the accident, including the accident case number. I also had to give the approval to have the towing company bring my car to Craftsman Auto Body in Purcellville. I could have had them tow it to Arlington so that if/when my car was repaired it would be close by, but I thought that towing my car all the way from the Purcellville area to Arlington wasn’t such a good idea.

Most everything went surprisingly smoothly, from the appearance of the deputy sheriff and the towing truck to State Farm’s handling of the matter. I think it’s because deer collisions are very common in Loudoun County, at this time of year. Indeed, this very timely article appeared in the Loudoun-Times-Mirror on November 24. Maybe if my case weren’t so cut-and-dry, e.g., if a second automobile were involved, things wouldn’t have gone so smoothly.

The only glitch in the whole process, and it is a very minor one, really, was with Enterprise Rent-A-Car. I had telephoned them on Monday to reserve a mid-sized car, which I wanted pick up on Tuesday morning. I didn’t want too large a car because the parking spaces at River Place are rather narrow, and because the $900 that my insurance covers towards rental cars might last long with a larger vehicle (which incur a higher daily rate). When I showed up to Enterprise on Tuesday morning, there had been a small error — they thought I had wanted the car on Wednesday morning. The car they assigned to me was a Chevy Impala, which I don’t think is mid-sized; actually, it seems rather full-sized. I suspect that I wasn’t given a true mid-sized car because of the clerical error. Again, this was really a very minor error (in case you’re wondering, I am not being charged the rate of a larger vehicle). In fact, sometimes I enjoy using these minor errors in life to try something different. For example, if the waitress at a restaurant accidentally gives me the wrong dish and it isn’t a totally ridiculous error, I accept the dish anyway use it as an opportunity to try something that I might not otherwise have ordered. Here, I was given the opportunity to try driving a Chevy Impala, and am currently greatly enjoying this car.

Wednesday morning, November 24, I stopped by the auto body shop to get some things out of my CRV, including the parking hang tag for my parking garage, as well as some of my favorite CDs. While there, I took a few photos of the CRV with my cell phone camera.

Poor Fats Waller Has A Black Eye and a Broken Nose


Oblique View of Fats' Black Eye



Green Goop Dribbling Out Of Fat's Broken Nose (Probably Radiator Fluid)


Green Slime! Don’t Touch It! It is Certain Death! Look Out! It’s Dripping!
Green Slime — the movie
Ex-Nickelodeon Stars Relate Horrors Of Green Slime Syndrome

Deer Fur Stuck To Fats' Chin


En Face View of Fats' Broken Nose


Close-Up Of Black Eye


Fats' Profile, from Right


Right Superior Oblique View Of Fats' Forehead


Rental Car, a Chevy Impala

At the time of this writing/typing (Sunday afternoon, November 28, 2010), I haven’t yet heard from State Farm about their assessment of the damages. I think everybody was off on vacation for the Thanksgiving Holiday. So, I think I’ll hear about the damage assessment maybe tomorrow or Tuesday.

A final note on the Chevy Impala. The four previous cars that I have driven, a Mitsubishi Colt, a Nissan Sentra, a Nissan Maxima, and my current Honda CRV, have all been Japanese. All had a techy, perhaps slightly geeky engineerish feel to them. NOT SO with this Impala. In contrast, this car has a very masculine, very American, bold, brash, confident, expansive, romantic, optimistic, adventurous feel to it. It’s the kind of car that a wealthy older retired couple (probably named Marge and Herbie) would take on a cross-country tour, going through the Great Plains and the West and the Grand Canyon. It’s the kind of car that a teen-ager might commandeer without his parents’ approval and go drag racing with, and maybe he’d fool around with his girlfriend in the back seat on prom night. It’s the kind of car that a big fish in a small pond (maybe a small-town judge or a small business owner) might drive. This car is a cowboy! I can imagine a cool twenty-something dude buying such a car second-hand, and souping it up into a muscle car, a la Greased Lightnin’.

(As an aside, ragtime composer Joseph Lamb wrote a piece entitled Greased Lightening [sic].)

While the musical Grease evokes the 1950’s, this Impala evokes nostalgia for the Seventies and the big cars that you’d see on TV shows and movies of that era. Even the fonts on the dashboard (sans serif, italicized) feel 70-ish. It is no accident that the legendary JATO Rocket Car is traditionally said to have been a Chevy Impala. From page 4 of the Rocket Car story:

One aspect of the Rocket Car legend that always tickles me is that no matter how much the story varies, the make, model and year of the car is always specified. Sure this is a nice detail to have on hand, but considering the details left out of the description, it looks… sorta silly. In the Darwin Award version, there’s no mention of which highway the car was on, or even whereabouts in Arizona the story took place. And Arizona is a pretty big place. There’s also no mention of any investigation that took place afterwards. But despite all these oversights, the story did specify that the car was a 1967 Chevy Impala. I think the reason this detail is always supplied is because it’s critical to make the listener think the test pilot at least looked cool when he flew into the cliff. You’ll never hear someone tell a story about a guy in a rocket-powered K-car or a Volkswagen Beetle. It has to be a car that deserves to have a rocket attached to it.


Addendum (11/30/10):
It could have been worse: Road fatalities involving animals (USA Today)


Addendum (12/18/10): Stayed overnight at R. & K.’s. This morning, helped them move boxes from their garage to the basement. Then I drove the rental Impala — which K.C. dubbed “Jerry” — to Craftsman Auto Body, while R. & K. (& S.) followed in their van. I picked up the key for Fats, and then R. and I transfered stuff from Jerry to Fats. Fats looked good as new!

Then I drove Jerry to an Enterprise location very nearby, and again R. & K. followed. I surrendered Jerry’s keys to Enterprise, and discovered that I didn’t have Fats’ key, even though I just had it back at Craftsman. After checking with R., my hunch was that I had accidentally left it in Fats’s trunk along with stuff had transfered there from Jerry. We returned to Fats in Craftsman’s lot and indeed the key was there, in Fats’ trunk!

We then drove to Ford’s Fish Shack in Ashburn and had lunch. I had their root beer float, a cup of New England style clam chowder, and their Ipswich clam dinner. (The New England theme — how about a Dunwich or Innsmouth clam dinner? — and the current Christmas season made me think of this Lovecraft-inspired video.) R. and I also split an order of deviled eggs. From there, R. & K. had to split off to do an errand, while I went home. On my way home, I stopped by a Trader Joe’s in Falls Church and bought their macaroni and cheese (because it was highly rated here), as well as a bottle of cherry juice. Then I stopped by a Dunkin Donuts to pick up a medium coffee, and then stopped at a gas station to refuel Fats.


Addendum (09/03/11): Deer ‘pill’ curbs aggressive mating. “The aggressive mating causes an estimated $1bn (£600m) in damage to property each year and an upsurge in collisions with cars.”

Colors of Magic, Especially Yellow Magic

For K.C.

According to Chinese medicine, when the five elements (water, wood, fire, metal, wind?) are out of balance, as manifested thru organ dysfunctions, disease results.

Hmm, I’ve heard of something called “five agents theory,” I believe with respect to ancient Chinese folklore. I wonder whether it’s related to the five elements. Maybe it’s the same thing.

In the card game Magic The Gathering (MTG), there are five colors. Maybe there’s a mapping between the five colors and the five elements: blue:water, green:wood, red:fire, black:metal, white:wind? (Speaking of which, if you see the movie Sorcerer’s Apprentice, watch the background for Drake Stone’s Magic The Gathering posters. Apparently, Mr. Stone has his own MTG cards. Also, drake = “dragon”.)


Here is a 1978 paper by H. Nickel (And Behold, A White Horse… Observations on the Colors of the Horses of the Four Horsemen of the Apocalypse, Metropolitan Museum Journal 12:179-183) which mentions the five-color system of ancient China. It would’ve been interesting if Magic The Gathering had used the same five colors as the ancient Chinese system, but alas no: instead of white, blue, black, red, and green, the Chinese had white, blue, black, red, and yellow. The following table shows the mapping from cardinal direction to color in the ancient Chinese color system.

Cardinal Direction Associated Color
South Red
North Black
East Blue
West White
Center Yellow

As you know, in MTG each color is associated with a general theme. White is associated with righteousness, law, and protection; blue with the mind (especially wisdom and intellect), time, and deception; black with death, decay, and greed; red with chaos, impulsivity, fire, and lightning; and green with nature and life. It’s fun to wonder what the theme of yellow magic would have been, if there had ever been such a thing in MTG! (Maybe yellow magic would map onto colorless mana, which is associated with artifacts in MTG?)

(As an aside, in the MTG color pentagram, each color is positioned opposite its two natural antagonistic colors. Thus, e.g., white’s natural antagonists are red and black.)

The ancient Chinese (at least, the emperor Wang Mang in the year 9 A.D.) favored certain colors. H. Nickel writes:

Thus, the emperor seated on his throne faced the south, where the sun was brightest and highest in the heaven. Consequently, the South was considered to be the foremost of the cardinal directions, and therefore the vanguard of the “Generals in Charge of the Enforcement of Imperial Power” was clad in the red of the South direction and mounted on red sorrels.

H. Nickel goes on to write:

In 201 B.C., the Han emperor, Kao, personally led a great campaign against the Hung-no… The finishing touch in this cosmological color scheme was that the center was occupied by the hapless Chinese army with their emperor, whose sacred color was yellow.


It’s fun to wonder what the theme of yellow magic would have been, if there had ever been such a thing in MTG!

Yellow Magic, Inc.

Yellow Magic Orchestra

Yellow Magic Cleaner

The King In Yellow (Victorian gothic horror by Robert W. Chambers, which influenced H.P. Lovecraft)

Yellow Lobster (yummy!)

Yellow Submarine

Yellow-Bellied Sapsucker


Addendum (08-01-10): Native Americans also had mappings from the four cardinal directions to colors. I think that the Cherokee color system is particularly interesting (here’s another source):

Cardinal Direction Associated Color
South White
North Blue
East Red
West Black

The reason this is interesting is because it’s very similar to the Chinese color system — only, the colors have been rotated ninety degrees counterclockwise. I.e., the two systems are π/4 out of phase, like sine and cosine, and therefore their cross-correlation is zero. (Wow, that was geeky.)


Addendum (08/02/10):

It’s interesting to compare the MTG color pentagram with this color pentagram of the five elements. Here’s another diagram of the Chinese five-element system, courtesy of Wikipedia:

Five Element System

This time, there doesn’t seem to be a pure phase shift, like we saw when we compared the Cherokee vs. the Chinese color system.

Another interesting thing about the five-element pentagram above is the dual cyclicity: there’s a creative cycle as well as a destructive cycle. This dual cyclicity reminds me of the Outer God Ubbo-Sathla, a creation of Clark Ashton Smith. In his creative cycle, Ubbo-Sathla acts as the source of all life on Earth. And he is destined, in his destructive cycle, to someday resorb all life. (I will write more on this intriguing Outer God later.)

The destructive cycle is also reminiscent of a certain game.


Addendum (08/07/10):

The Five Elements… Which One Are You?
(Myself, I’m primarily Water, with Metal a strong second. Definitely NOT Wood.)

The Five Colors of Magic: Which One Are You?
(I’m most definitely blue.)


Addendum (08/08/10): How about… purple magic?!


Addendum (08/08/10):

Wikipedia’s article on the cardinal directions includes a table showing how various cultures mapped colors to the cardinal directions. Apparently, the Turkic system has the same five colors as in Magic The Gathering: black, blue, red, white, and green. (Note that the Wikipedia article’s reference for the Turkic system does not seem to confirm this!)

Hmm, according to this web page, the Cherokee system also included green for the center. So the Cherokee system also maps to the five colors in MTG.


Addendum (08/08/10): See also the “five-factor model” of personality, sometimes called “Big Five.” My understanding is that the “big five” were determined using a multivariate method called factor analysis (not principal components analysis, or independent components analysis?).

According to this, the Big Five have been labeled as: Openness, Conscientiousness, Extraversion, Agreeableness and Neuroticism. How would you map the five personality types to the five colors of MTG?

Take the Big Five test.


Addendum (08/08/10): Above, I had given a link to the old Rock-Paper-Scissors game. I just discovered that this game has been extended to include two new “weapons”: lizard and Spock. Now with five “weapons,” it forms a nice pentagram.

Here’s a diagram showing a 7-weapon version of RPS (although it’s captioned “Rock Paper Scissors Lizard Spock”).

Here’s a 15-weapon version.

And a 101-weapon version!


Addendum (01-15-11): I saw this news story about the world’s foremost expert at vomiting. I wondered what his name would be if he were to be a super-hero. Then I remembered that black dragons in Dungeons and Dragons spit acid. So, his name could be Black Dragon, or perhaps Ancalagon.

Then I remembered that the evil “chromatic” dragons in Dungeons and Dragons came in the following five colors: black, white, red, green, and blue. Just like the colors of magic in Magic The Gathering. Here’s a list of the five chromatic dragons and their breath weapons, along with some other characteristics.

Color Breath Armor Class Hit Dice Damage / Attack Size Alignment
Black Acid 3 6-8 1-4 / 1-4 / 3-18 30′ Long Chaotic Evil
Blue Lightning 2 8-10 1-6 / 1-6 / 3-24 42′ Long Lawful Evil
Green Chlorine Gas 2 7-9 1-6 / 1-6 / 2-20 36′ Long Lawful Evil
Red Fire -1 9-11 1-8 / 1-8 / 3-30 48′ Long Chaotic Evil
White Cold / Frost 3 5-7 1-4 / 1-4 / 2-16 24′ Long Chaotic Evil

Cthulhu and Shub-Niggurath

For S.J.F.:

From Wikipedia:

“Despite his notoriety, Cthulhu is not the most powerful of the deities, nor is he the theological center of the mythos. Instead, this position is held by the demon-god Azathoth, an Outer God, ruling from his cosmically centered court.”

Another Lovecraftian entity that I mentioned last night was
Shub-Niggurath, a.,.a. “The Black Goat of the Woods with a Thousand Young.” (For some reason, I remember the name being slightly different, Shub-ish-Niggurath, but that seems to be incorrect.)

According to my copy of Deities & Demigods (James M. Ward with Robert J. Kuntz; Lake Geneva, WI:TSR Games, Inc., 1980), Cthulhu has 400 hit points, is armor class 2, has 30 attacks per melee round, doing 1-10 HP damage (times 30!), is 100′ tall, and is chaotic evil. And he also has the powers of a 20th-level magic-user/illusionist.

See also: A Lovecraftian Bestiary.

Here’s a Lovecraftian MTG card: Cosmic Horror.

Published in: on 25 January 2009 at 6:19 pm  Comments (1)  
Tags: , ,

Lovecraft is Missing

Comic strip about H.P. Lovecraft going missing; click on the “Next” button to start. Via MetaFilter.

Lovecraft Bestiary.

Why We’re Here (Lovecraft Cosmology).

Published in: on 14 January 2009 at 9:27 pm  Leave a Comment  
Tags: ,

Polish and Swiss Chocolate… and Lovecraft

For K.C.

Ptasie Mleczko, whipped vanilla-flavored interior, dark chocolate shell (it was a hit in the office).

Ambassador, assorted collection by Cailler Nestlé SA. Purchased at Coop.


While we’re on the topic of chocolate, I can’t resist pointing you to this: Selections from H.P. Lovecraft’s brief tenure as a Whitman’s Sampler copywriter. What, you didn’t know that early in his career Lovecraft temporarily had a second job writing copy for Whitman’s? The Peanut Butter Cup blurb seems to be a reference to Lovecraft’s Shadow Over Innsmouth, while the Caramel Chew‘s “blind caramel God-King” is a reference to Azathoth.

Who knew chocolate could be so sinister?


And while we’re on the topic of Lovecraft, check out Night of the Cephalopods, an innovative computer game with a Lovecraftian theme. The really cool thing is a running commentary done in Lovecraft’s somewhat overwrought style, that varies in real time depending on what’s happening in the game; the commentary sometimes even gives the player hints on what needs to be done (e.g., find ammo when you run out of shotgun shells). Here’s a YouTube video demonstrating the game.

Published in: on 10 January 2009 at 10:24 am  Comments (1)  
Tags: , , ,

Attack of the Jellyfish!

Jellyfish Gone Wild!!

There’s an H.P. Lovecraft story in there, somewhere. (Although Lovecraft seemed to prefer mollusks to coelenterates. Hey, it looks like the term coelenterate is now obsolete — jellyfish are now phylum Cnidaria. Since when?)

Reminds me of AP biology class in high school. Classmate J. Harrison (who attended medical school with me, and apparently is now an internist practicing in Bethesda) asked Mr. Williams how to kill a Portuguese Man-Of-War: since it is a colony of cells, it might simply regroup if you attack it with a physical weapon (e.g., a two-handed sword or a mace). Mr. Williams became very indignant, saying, “Now, what kind of question is that? It has as much right to live as you do. No, I’m not going to answer that question. Next question?”

And that reminds me of some intriguing statements of a certain Princeton philosopher, about the relative worth of animal life versus human life.

Published in: on 13 December 2008 at 10:14 am  Leave a Comment  
Tags: , ,

Welcome to Reanimator. For Real.

Mark Roth: the Reanimator (MetaFilter).

Re-Animator: The Movie (1985).

The original story by H.P. Lovecraft. He did indeed have a sense of humor, however dark, did Lovecraft.

It is an interesting genre, the horror-comedy. Here’s another rather good example. By coincidence, it is also a 1985 release. (Hmm, if you believe in a deterministic universe, can there really be such a thing as “coincidence”? Can there then be a truly random component in a Markov Thought Chain? Does quantum indeterminacy rescue randomness and free will?)

Animate Dead. Although perhaps what Dr. Roth is trying to do is more like putting something into suspended animation, like Tawnos’s Coffin. Or maybe like Stasis Cell or Stasis Cocoon.

Published in: on 11 December 2008 at 8:17 am  Leave a Comment  
Tags: , , , ,