Web-app version of Markov-Chain domain generator (be gentle on the server)
suggestly.com
suggestly.com
I'd also suggest looking into Natural Language Processing, (Great Python toolkit - http://nltk.sourceforge.net/index.php/Main_Page). Between NLTK, Markov and affixes you have enough reading to keep you busy for quite a while.
Also, consider looking into using Yahoo BOSS search results for synonyms through word association. Things like table, desk, wood, etc... are extremely useful for generating domain names--this is pretty simple doing some basic natural language processing on search results and yields awesome results.
Finally, there's a fantastic business model behind this. Other than the obvious domain registration affiliates--keeping a database of all available domain names and then selling it to people who do this for a living (ie. domain squatters). This type of information is very valuable to them.
Unfortunately I had to give up on this idea because life gets in the way (and will for at least the next 2 years) but it looks like you've got a great start.
I'd be more than happy to go over in more detail some of the stuff I just mentioned. Getting into natural language processing gets difficult extremely fast, so I'm not sure how well I can explain that stuff.
http://codeismightier.com/2008/10/web-app-version-of-domain-...
You should also queue AJAX request and only allow one or two at a time from the browser. That way, if you are really attached to this request after every keystroke feature the server can handle the load slightly better.
Why do you need to make an AJAX call for a 1 character string? I typed in 't' and an AJAX request was fired off. That was 20 seconds ago and I am still waiting.
It also appears that when the browser receives a result it runs several more AJAX calls recursively on all of the returned items. All of that should be done on the server. The overhead of all those HTTP requests is just too much,
I would do the following to make this better:
1) Have a minimum query length for search
2) Don't do a request for every keystroke
3) Make an AJAX request queue
4) Do all of the recursion on the server, don't open a new HTTP requests for each recursive call
I think this will be a lot better for server load and usability. Right now it is horribly inefficient.
I have no use for it but would be pretty cool if I were looking for a domain name.
The reason that the script issues a recursive call is that I want the user to see the suggestions right away and check the status later since the DNS requests can take a while.
For example, save the availability of picklenickel.com for 24 hours (or maybe more I don't know). Then you can do some recursive calls using cached data. Making all those concurrent HTTP requests seems impractical and has to be affecting your server's responsiveness.
It returned a bunch of results as well and then did recursive calls for each of those, including "kwamile". The time it took for each of these calls was under 300 ms.
I typed "kwamile" in the search field and pressed enter. Took a long time but should have been immediate because this search was already conducted.
You should just implement the caching yourself. That will improve things A LOT.
I tried 'guitars' and it instantly reported that 'gitarious' was available. I would however consider starting to search automatically after the user has typed to or more characters.
Not anymore, it's not :)
Not very instant is it?
Other than that great idea and good job :)
For example, if I enter "integration" the suggestions include "integoration", "integormation", etc. That's not very useful. I think you need to have some kind of dictionary to generate better suggestions.
I'm not saying that only dictionary words should be used, but variations of letters have very different value depending on where inside a dictionary word they occur.