I admit I have a problem.
A grown man should not be so devoted to a Usenet character like James S. Harris. But I can't help it. James is a renaissance man, a learned fellow, a rebel, a loyal patriot and a gifted poet all wrapped up in one neat (but not so tidy) package. What's not to love?
His quiet periods, that's what. Sometimes, his blogs go silent for hours. Days even. I can't stand it. Yeah, I have all of his old postings saved on my machine, but I've read them. I need new material.
So... why not make it up myself? Well, not really myself. I put together a little program that runs a Dissociated Press algorithm on my collection of James's blog and Usenet postings. New JSH postings on demand!
It doesn't get any better than this.
Okay. So I already said I have a problem.
JSH: In His Own Words(?) |
Clearly, the dissociated JSH doesn't compare with the real thing. I recommend that you check out his blogs:
Now, if that's not enough (and it really isn't), then you can
also check out his Usenet
decade , a topsy-turvy adventure that started with one
prodigy's simple dream: a proof of Fermat's last theorem he
could call his own. Three things to note: first, the above
link only searches for James's most recent address
(jstevh@msn.com ), missing posts from the early
years. Worse, James occasionally deletes his old posts from
Google as a mean-spirited jab at future historians who would
kill for this record. Many of JSH's greatest hits are gone
forever, which is why I first started keeping a local archive
on my home computer. Lastly, Google Groups sucks. I wish I
could point you to a better archive, one that didn't pretend
that Google == Usenet, but there ain't none. Sorry.
How much would you pay for all this JSH goodness? Don't answer! There's more! James has a self-published book of short stories, available FREE! Check out The Way Not Seen for a look at JSH's artistic side.
But it won't be enough. You'll be back. And whenever you need
another hit of James S. Harris dissociated, just hit your
browser's reload button.
How this page works:
I slightly modified and simplified the Perl
module Games::Dissociate
for use as a CGI script. Mostly, I wanted it to keep the spacing similar to James's writing, and I didn't need the by_char options. I like to dissociate on words only.
The script begins by picking between 60 and 120 posts by JSH and editing to get rid of headers, quotes of other folks, etc. Probably my regular expressions aren't perfect, and it's possible that the words of other folks contaminate this page, but I try my best to give JSH and nothing but JSH.
We pick two contiguous words from one of those posts, trying to choose them at the beginning of a sentence. Then, we find all the four word snippets beginning with those two words and choose one of them to continue the text. The last two words of that snippet will be the first two words of the next. Often, there is only one matching snippet for a while, which explains the clarity of certain passages.
Of course, we choose James's words, but we mangle them fairly badly. Often, the text on this page is exactly the opposite of what James meant to say. Even more often, the text is just utterly meaningless. But, nonetheless, this page will do if you're really jonesing for your JSH fix. Meaning is overrated anyway.
I am a crappy Perl hacker. Look at my source code at your own peril. I am not responsible for any spontaneous degradation of your programming skills.
If you want to see good code, then check out the original Games::Dissociate module.
But here's the code for this site: first, I use a server-side include to contact the script. For this, I insert the code
<!--#include virtual="/cgi-bin/dissoc.cgi" -->
in my HTML page. I have dissoc.cgi in my cgi-bin and
two perl modules, JFH::Dissociate.pm
and CGI::Dissociate.pm in
my site-perl directory. The latter includes a variable that
specifies which files get dissociated.
That's it.
James S. Harris dissociated makes James look a little silly and that's not quite fair. So, in the interest of fairness, I've dissociated my own Usenet postings and, frankly, the result isn't pretty.