Comments on 2009-09-11 Elite Names


Back when I was trying out StackOverflow (I later learned to dislike it), I tackled a similar problem about phonetic passwords. My solution would concatentate words from the dictionary. The more elegant answer that was accepted suggested a well known method using digraphs (maybe even trigraphs).

The digraph is a much better solution, and I think using a string as the data structure as you have done is not only sharp, but its also makes it easier to understand how it works.

AaronHawley 2009-09-16 22:21 UTC

The thing I really liked about the solution was how it uses the dot to produce shorter than expected words (if you use «..») and how you can generate three-letter syllables (if you use «.»). I thought of Japanese were you have combinations of the consonants k, s, t, n, h, m, b, s, z followed by a, e, i, o, u, ya, yu, yo (but no ye and yi), the vocals themselves, and the letter n by itself. You can represent that using the following:

my $digraphs = "kakekikokusasesisosutatetitotunaneninonuhahehihohu"
  . "mamemimomubabebibobusasesisosuzazezizozuyayuyoa.e.i.o.u.n.";

The only obvious problem is the placement of the single n at the beginning of a word, and the distribution of the syllables used. Not too shabby:

0. misakumeho 1. zukunahimi 2. misekusohi 3. hosato 4. nahokesu 5. titizobuha 6. keeyosuo 7. kimotizi 8. ihosikahi 9. misouisu

Ovious «n» endings, for example:

10. setanheo 34. bayonunyu 42. nhezase 57. hihezenin


AlexSchroeder 2009-09-16 23:03 UTC

All this reminds me of the Dada Engine.

Which famously functions for the Postmodernism Generator

AaronHawley 2009-09-17 01:30 UTC

Cool. That would be the way for a most awesome name generator. :)

AlexSchroeder 2009-09-17 07:35 UTC

Please make sure you contribute only your own work, or work licensed under the GNU Free Documentation License. See Info for text formatting rules. You can edit this page if you need to fix typos. You can subscribe to updates by email without leaving a comment.

To save this page you must answer this question:

Please say HELLO.