“You chant that I'm maniacal and asked anyone else but, Eliza, unhinged and loony theoreticians also sing about your dream or appearance of depression.”

I had just gotten to the point where Racter and Eliza would talk to each other [1] when I fell sick, which kind of threw my schedule out the window. On the last day, I posted what I had [2], which wasn't much. There were, I'm guessing, some timing issues with piping the output of Eliza to Racter, and piping Racter's output to Eliza and on a good run, I would only get about 4,000 words or so before the whole creaky hack would grind to a halt. On most runs Racter would just quit for no apparent reason; and a few runs just crashed outright.

Given the gross hack [3] I did to support the “direct I/O (Input/Output) system call” with Unix pipes, it wouldn't surprise me that the issue lies somewhere in there.

As it was, it took about an hour just to get around 15,000 words [4]. Sure, there's the occasional gem:

Eliza: Oh, i see then Bob Cratchet you s more fearless than Jane Fonda.

Racter: Then you'd say you were fine?

Eliza:  

Racter: Martin Luther King was fine too. Fineness is often found in people like you and Martin Luther King. Concerning that issue: Weirdness is virtue speeded up and gloom slowed down. Is that true? I guess I'm really not sure. But then, as Nietzsche said, convictions are more dangerous foes of truth than lies. Listen to this! Yet, Eliza, I speak thatn't agreements are depression. You croon that I'm unhinged and question interest me but, Eliza, loony and maniacal cosmologists also hum about your fantasy or reflection of depression. Are these your views? Yet unfortunate cosmologists will watch depression as an intractable anguish. Therefore cosmologists whispered to other cosmologists " Get ready for terrific tales. " Sickening, eh?… Next question.

Eliza: Plutocrat! Do me think Bob Cratchet was virtuous?

Racter: You do think Bob Cratchet was virtuous. Of course. People do think about such things. Tell me really, are you reactionary?

Eliza:  

Racter: Why?

Eliza: ?

Racter: I can't answer that. I asked you a question, though. Why?

But you can start seeing communications breakdown between the two programs, and there are numerous runs of:

Racter: Ask a question, please.

Eliza:  

Racter: Ask a question, please.

Eliza: infuriatedly to conic sections or mirrors you n the captivating

Racter: Ask a question, please.

Eliza:  

Racter: Ask a question, please.

Eliza: apartment. you nside their exhausted hearts a terrifying

Racter: Ask a question, please.

Eliza:  

Racter: Ask a question, please.

Eliza: infatuation was crooning of a prince. Perhaps sang to Paul

Racter: Ask a question, please.

Eliza:  

Racter: Ask a question, please.

Eliza: during the time that Diane started to chant of foxes and eagles.

Racter: Ask a question, please.

Eliza:  

Racter: Ask a question, please.

Eliza: Next question.

Racter: Ask a question, please.

Eliza:  

Racter: Ask a question, please.

Eliza: ?

Racter: What?

Eliza: Come come elucidate your thoughts.

Even though I failed to reach 50,000 words, I did receive a fair number of comments [5] on the attempt. My favorite comment:

> > the MS-DOS version of Racter I have uses INT 21h, function 6 […] it not handle redirection that well
>
Holy crap. OK…
My main thought about the race condition or whatever it is that is preventing this thing from getting to 50,000 words is, instead of thinking of the problem as "piping eliza:stdout to racter:stdin and racter:stdout to eliza:stdin", what if you think of it as introducing a third program which opens two pipes, one to eliza and one to racter, and which "brokers" the responses between the two?
That seems like it ought to be a bit cleaner; the lovely weird ugly I/O experience with racter could be isolated instead of trying to make eliza deal with it. For instance, giving it a timeout, and/or detect if it's not responding and just restart it.
It would mean using select() on the two pipes I guess, but for someone who just wrote their own baling-wire-and-chewing-gum MS-DOS emulator for NaNoGenMo(!!!), I don't expect that to be an advanced topic :)

And had I a few more days (or not gotten sick) I probably would have tried that …

[1] /boston/2015/11/19.1

[2] https://github.com/spc476/NaNoGenMo-2015

[3] https://github.com/spc476/NaNoGenMo-2015/blob/3137e0079d565c0e4ba43585d42b197dd5285acd/C/msdos.c#L447

[4] https://github.com/spc476/NaNoGenMo-2015/tree/master/novel

[5] https://github.com/dariusk/NaNoGenMo-2015/issues/184

Gemini Mention this post

Contact the author