Tumblin' Dice The Million Monkeys Internet Search Engine

This page generates random website names and allows you to visit them (if they exist). My complete rationale for this (and much more) is explained below. If you just want to get started right away, enter your desired number of letters in the site name and the number to generate, then click on the "Search" button.

Search Parameters
Random Site IP Address Who Is?
No results to display.

What is The Million Monkeys Search Engine

I hate to write "someone once said," but I cannot find a definitive attribution of the following quote:

"A million monkeys typing on a million typewriters would eventually produce the entire works of Shakespeare."

My (admittedly non-exhaustive) research indicates that this was said by either Thomas Huxley or Arthur Eddington in the 19th century. Huxley gets more mention than Eddington, but I have found no definitive source. (If you have such a source, please contact me.)

What does this have to do with searching the Internet? Well, this "search engine" generates site names randomly. If you do it often enough, you are bound to find the answer to your question. Or, at least, something mildly interesting. :-)

Why Does it Exist?

It all started when I found a couple of unusual referring sites in my Web log statistics. Sites like www.wr18.com, www.malixya.com,and www.saulem.com (perhaps interestingly, all nothing more than parked link pages now). I thought to myself, "were these site names randomly generated?" (OK, that's a tiny bit of a stretch, but it fits the story very well. :-)

Well, I checked 'em out, of course. Most turned out to be obscure blogs, but a few of the sites were not entirely uninteresting. So, I thought again to myself, "I wonder what other not-entirely-uninteresting sites I can find by randomly generating site names."

I put together a prototype page and found it oddly captivating. And now, I invite you to be oddly captivated. You might find yourself, as I did, repeatedly saying, "I'll try once more."

How Does it Work?

Generating random site names is not particularly difficult. My initial implementation was quite crude and just randomly selected letters of the alphabet. In order to improve the "hit rate," I improved the generator to select letters using the same frequency as they are used in the English language.

In order to determine if a random site name might actually exist, I perform a simple DNS lookup. These are generally fast for sites that exist but slow for sites that don't. Since most of the random site names don't exist, it was taking too long to produce a page full of ... well, mostly nothing.

Since most of the time looking up nonexistent names is spent waiting for the TCP/IP call to complete, it would be much more efficient to look up all the names at once. So, I wrote a little command-line application that does essentially that. It spawns a thread for each name and looks them up in parallel. Now, looking up twenty sites is almost as fast as just one. This made it much easier to "try once more."

How Could it be Improved?

There are a number of improvements I'd like to make. In no particular order:

  • Support domain types other than ".com."
  • Integrate numbers into the generated name.
  • Allow user-specified prefix and suffix.
  • Allow user control of the letter probability distribution.

If you have any additional ideas, feel free to pass them along.