Saturday, April 21, 2012


One of the things I'd never figured out about JanusNode was how "RepriseTextDNA" worked. I think I've got it and it's simultaneously more and less powerful than I thought, in the JanusNode way. Due to combinations of unexpected behaviours, slight but meaningful changes to the code on the author's part and bad coding by yours truly, I think I finally get it.

So, here's my little set of testing files. If you have a named folder inside the TextDNA folder and you start up your JanusNode that folder will appear in the main drop down folder, and when you click Janus to write text it'll process the text file named after the folder first. The only line in that file is this one (and note that every line that starts with "Subject" is a single line.):

Subject(Tester) < loadTextDNAfile("0Tester") > < chooseTextDNA(title1) >

This loads the second file in the folder, 0Tester, and chooses a line (title1) to start with. Multiple files are a necessity if you have a starting place in mind: JanusNode is built to be capricious and will choose any goddamned line it pleases unless you force it to do things differently. One line, one instruction will make it do one thing. On to 0Tester, then, and this batch of nonsense:

Subject(title1) < assign(Chooser,"100,200") > < chooseTextDNA(test1) >
Subject(test1) < RepriseTextDNA(Chooser) > < chooseTextDNA(test2) >
Subject(test2) < RepriseTextDNA(Chooser) > < chooseTextDNA(DKW1) >
Subject(DKW1) "Your mother is still a whore." < chooseTextDNA(test1) >
Subject(100) "fuck"
Subject(100) "that"
Subject(100) "shit" < chooseTextDNA(test2) >
Subject(100) "asshole" < chooseTextDNA(test2) >
Subject(200) "fluffy" < chooseTextDNA(test2) >
Subject(200) "bunnies" < chooseTextDNA(test2) >
Subject(200) "love" < chooseTextDNA(test2) >
Subject(200) "smiles" < chooseTextDNA(test2) >

We'll get to the inherent wrongness some may spot in a sec. "Subject(title1)" loads up a variable called "Chooser" with either "100" or "200" and then moves on to "Subject(test1)". There's where we took a stab at < RepriseTextDNA(Chooser) >. Initially, because it was called "reprise" I thought it was going to be a way to store a line of already-used TextDNA and the documentation is somewhat baffling, referring to incomplete examples that don't exist. C'est la vie. So I banged away at it, wondering why I wasn't getting repetition out of the thing, examined the Robot Johnson files, and discovered that it wasn't doing that either; repeated lines (with variations) were coded in. SO, back to the manual to Actually Read The Sentences Properly and we find out that < RepriseTextDNA(Chooser) > is not really different from < chooseTextDNA(title1) >, it's just that the subject line chosen can be assigned from a variable, and "reprise" is an eccentric name for the function. Hooray! That can still lead to some ferociously complicated stuff, but let's check the output of this one:
shit fuck Your mother is still a whore. Asshole shit fuck Your mother is still a whore. That that Your mother is still a whore. That shit shit asshole asshole that Your mother is still a whore. That shit fuck Your mother is still a whore. That that Your mother is still a whore. Shit fuck Your mother is still a whore.
bunnies smiles smiles smiles bunnies love smiles fluffy smiles fluffy fluffy bunnies love smiles smiles smiles bunnies fluffy love love fluffy fluffy love
So, when "assign" grabs "100" you get JanusPottyMouth, when it grabs "200" you get JanusFluffyBunny. Which is cheatable in other ways, but they're longer (multiplying instances of lines and files). So now I have these ideas around villanelles.

Note that due to various problems getting my shit together I was getting no output and tried everything and ended up DOING IT RONG: the "< chooseTextDNA(test2) >" in most of the 100 and 200 subject lines is there because of that, and therefore the 200 subject lines keep doubling back before the execution of DKW1, thus keeping fluffy bunnies loving and smiling. Or so you would think.
smiles bunnies bunnies love love love bunnies Your mother is still a whore. Smiles bunnies smiles fluffy love love fluffy smiles love love bunnies love fluffy bunnies fluffy fluffy
It just does its own thing sometimes.


ifthethunderdontgetya™³²®© said...

For all we know, bunnies cuss relentlessly.

Big Bad Bald Bastard said...

You're giving away trade secrets, old chum! Be careful, lest someone design a McGravitastron.

Substance McGravitas said...

I WANT to give away trade secrets! In the future, all comments should be JanusNode.

mikey said...

You mean they aren't now?

mikey said...

Y'know, it occurs to me that this should be the official McGravitas song.

Substance McGravitas said...

Should I be hurt that you didn't choose this one?