curlysemi / nume

number name scheme
MIT License
1 stars 0 forks source link

Finalize Character Sets #2

Open curlysemi opened 5 years ago

curlysemi commented 5 years ago

Obviously, the character sets are not finalized. This issue can be for general character set discussion.


~I noticed an issue with the current consonants:~ ~R-CLEAN is currently after R-CEDILLA and R-CARON.~ ~Fixing this issue will be a breaking change.~ FIXED IN 98c6679530907d468bb7b211eda5a0735c57674b.

Also, I guess I'm mis-remembering, but I thought I took out all BREVEs since they are can be too hard to distinguish from CARONs. That may have been in an earlier version, though.

curlysemi commented 5 years ago

Two ideas I've had to salvage this scheme to support 'searchability':

Also, another, simpler scheme is a 105-set of consonant-vowel pairings. It'd be 24 elements for an address, but that's really 48 characters.


Looks like I only removed BREVEs from thee consonants.

curlysemi commented 5 years ago

Here's a quick sketch to find the number of elements required to meet our target (the size of an Ethereum address):

TARGET=2**160
def find_length(set_size):
    length = 1
    while True:
        if set_size**(length - 1) < TARGET and set_size**length >= TARGET:
            return length
        else:
            length = length + 1
curlysemi commented 5 years ago
>>> find_length(41)
30

If we remove a few more characters from the sets, we only add 1 more character to the overall length, which isn't too bad. Instead of presenting accents for final disambiguation, we could use ANSI background colors for each character:

black
red
green
yellow
blue
magenta
cyan
white

For colorblind folk that don't want to deal with the accents, we could present shapes under/above each character.

curlysemi commented 5 years ago

I had to go down to 40 characters, as I decided to designate black as the "clean" color (unaccented characters) since I didn't want to rely on whatever the user might've set as their background color.

Full numes are currently 31-characters long in v0.10.2-beta (dev branch).