YOU ARE MY WISTFUL TENDERNESS. YOU ARE MY EAGER CHARM. YOU ARE MY IMPATIENT ARDOUR. MY WINNING HUNGER IMPATIENTLY PANTS FOR YOUR EAGERNESS. YOU ARE MY CURIOUS FEELING.
My panty assiduously yearns your purified snake. My race pilfers your well-intentioned feel. You are my placid spring. My youth says your chaste glitter. You are my fluffy cavern.
July 11, unsupervised generation from human-authored rules, implementing the Strachey Love Letter algorithm. Generator: JanusNode.
I wish I knew German so I knew wtf David Link was talking about:
I mean, he’s the kind of guy who hunts down an obscure text generator developed by a computer scientist for fun back in 1952. He’s the kind of guy who implements an emulation of the generator, complete with weird blinking interface. Did that text generator really exist back then? Does he really exist? It’s gotta be a hoax, or some kind of performance art maybe.
If it is some kind of hoax, (UPDATE: it’s not) it’s a pretty entertaining one. Elshtain brought it to our attention a couple days ago. The generator from the 50s is basically a template:
Generate Salutation 1 and 2, Do this 5 times: Randomly generate one of the following templates: 1. "You are my" Adjective Noun 2. "My" Adjective(optional) Noun Adverb(optional) Verb, Your Adjective(optional) Noun Generate "Your" Adverb, "MUC"
Christopher Strachey, who developed the algorithm back in ’52, was the kind of guy who could hit up his old pal Alan Turing for computer documentation. (Interestingly, both Strachey and Turing were gay.) This was before they had operating systems, btw, let alone graphic user interfaces. Back then, if you wanted express your love, you couldn’t do it through Twitter or email. You had to print it out and stick it to the wall.
Anyways, the algorithm is nothing amazing apart from its historical nature, but I implemented it in JanusNode coz, you know, I wanted to work with JanusNode and this looked straightforward enough. The first Love Letter above (in caps) uses words taken from David Link’s implementation and its output looks a lot like the 50s implementation. The second Love Letters (not in caps) uses words taken from various JanusNode files, which is why it sounds more surreal. Obv. if the words are picked for the occasion, the resulting poems will sound more appropriate.
anyways, the code looks like this:
100 e_strachey_salutations1 100 e_strachey_salutations2 100 "," 100 return 100 " " 100 TextDemonStratcheySegmentClassic 100 TextDemonStratcheySegmentClassic 100 TextDemonStratcheySegmentClassic 100 TextDemonStratcheySegmentClassic 100 TextDemonStratcheySegmentClassic 100 return 100 " " 100 "YOURS" 100 e_strachey_adverbs 100 "," 100 return 100 " " 100 "M.U.C." 100 return 100 return 100
this is what the first couple of lines mean:
|100||the first ‘100’ means this: when JanusNode generates from a file of rules, JanusNode randomly picks a line, then looks at the very first number to see the percentage chance that the line will fire. So this line will file 100% of the time. Since it’s the only line in the file, this isn’t a big deal.|
|e_strachey_salutations1 100||the next two characters mean: pick and print a word from the file called e_strachey_salutations1. do this with 100% certainty. the e_strachey_salutations1 file is in the ‘BrainFood’ directory, btw|
|e_strachey_salutations2 100||pick and print a word from the file called e_strachey_salutations2. do this with 100% certainty|
|“,” 100 return 100 ” ” 100||print these characters with 100% certainty|
|TextDemonStratcheySegmentClassic 100||run the TextDemonStratcheySegmentClassic rule with 100% certainty. The TextDemonStratcheySegmentClassic rule is in the ‘TextDemons’ file, btw. that means that it’s like a function or a method that you can call from anywhere|
That should give you a sense for writing JanusNode rules. The documentation has a pretty good ‘Hello World’ and other simple rules to try out. If you can handle Gnoetry on Linux, you can handle writing JanusNode rules.
Anyways, if for some reason you want to try this out in JanusNode, you can get the rules I used here; maybe once I clean them up a bit I’ll send them to the JanusNode developer. JanusNode is here, of course. OK, later!