2009-06-26 11 views
8

Mi interessa la generazione di codici (fino a 6 caratteri) che sono inequivocabili per migliorare la leggibilità umana:Puoi raccomandare qualche informazione su lettere/numeri meno ambigui?

cioè: 2Z8B5S sarebbe un codice molto male perché B assomiglia molto a 8 e 2 assomiglia molto a Z , ecc.

Un buon codice sarebbe qualcosa di simile: AE37HT, per esempio.

Ovviamente, potrei provare a capirlo da solo, ma stavo cercando di vedere se ci fossero studi di persone come la NASA o qualsiasi altra cosa.

Se si dispone anche di riferimenti su come la leggibilità è influenzata dal colore, dal tipo di carattere, dalle dimensioni e dalla distanza dalla visualizzazione (sto guardando qualcosa di potenzialmente alto circa un pollice da una distanza di circa 6 piedi), sarebbe utile pure. Sul monitor o anche in stampa, anche.

Ho trovato questo insieme di linee guida, ma non ha nessun risultati empirici che ho potuto trasformarsi in una tabella per generare i codici:

http://www.usabilitysciences.com/usability-of-codes-passwords-numbers-and-letters/

+0

è re l'adiabilità è importante sullo schermo di un computer quando è probabile che sia disponibile una funzionalità di copia/incolla? – TheTXI

+0

Se stanno per essere letti da 6 piedi di distanza, penso che sia giusto presumere che questo non sarà particolarmente interattivo ... o se lo è, potrebbe essere all'interno di un sistema di giochi che * non * non c'n'p. Certamente non sembra la tua pagina web media ... –

+0

Il buon senso non è abbastanza? Guarda ogni lettera e numero e rimuovi tutti i personaggi eventualmente ambigui dal tuo set. – mbillard

risposta

7

Francamente, penso che il fattore più importante qui sta scegliendo il carattere corretto.

Se il vostro obiettivo è puramente la leggibilità, sarà una questione di scegliere un tipo di carattere che è preferibilmente:

1) Larghezza fissa. Per scegliere numeri/lettere casuali, la larghezza fissa aiuta moltissimo, poiché la crenatura non cambia mentre ci si sposta sul carattere.

2) Usa un font con look 0/O separati - quelli sicuramente fanno casino. Cerca altre combinazioni di lettere/numeri simili. Potenzialmente, lasciare 0/O fuori dal mix solo per questo motivo.

3) Scegliere un carattere con serif sottili e variazioni di peso.

Per alcune linee guida sulla leggibilità, vedere this page.

Con il tipo di carattere corretto, penso che si possa scegliere qualsiasi combinazione di lettere/numeri e che sia comprensibile in modo chiaro (diverso da 0 e O). Credo che 8/B, 5/S e altri campioni siano chiari nel font corretto.

L'altra cosa che potreste considerare sarebbe quella di usare un colore per le lettere e un secondo per i numeri - questo darebbe indizi alle combinazioni di numeri/lettere potenzialmente ambigui. Lo farei comunque in modo sottile, poiché un drastico cambiamento di colore attirerà l'attenzione su lettere o numeri, il che nuocerà alla leggibilità complessiva.


Modifica dopo aver letto il tuo commento e un'altra risposta:

Ho solo bisogno di qualche migliaio di codici, quindi non sono terribilmente preoccupato per la dimensione del dominio

Se questo è il caso, raccomanderei di lasciare l'intero numero impostato, e solo in modo selettivo aggiungere in lettere che non hanno somiglianze visive (o fonetiche, se stai leggendo queste) ai numeri. Con 6 cifre, anche con i numeri, hai più possibilità di codice di cui hai bisogno. Aggiungere in modo selettivo le lettere per aiutare a differenziare sarà più facile che provare a rimuoverne alcune selettivamente.Probabilmente mi limiterei a 1-9, A, Z, R, W e altre lettere che non corrispondono ai numeri.

1

Se si dispone della scelta, è possibile influenzare cambiando i caratteri. Ad esempio, molti font orientati al programmatore tagliano deliberatamente lo zero, usano forme diverse per I, I, 1 e così via. Per quanto mi ricordo, i caratteri serif sono solitamente usati anche per questo scopo. Sto indovinando - non posso confermarlo - che è stato anche il motivo per cui molti libri più vecchi sono composti da "figure di testo", numeri di altezze variabili che fluiscono meglio con la pagina e (presumibilmente) aumentano la leggibilità. (Vedi http://en.wikipedia.org/wiki/Text_figures - sì, sto quasi citandoli alla lettera.)

+0

Avrei il controllo completo del carattere. Sto pensando di colpire molte lettere e numeri. Un'altra possibilità è organizzarla in modo che sia sempre lettera-numero-lettera-numero ecc. Quindi c'è una certa quantità di pattern per aiutare gli utenti. –

3

Sono d'accordo con Reed che la tua migliore soluzione si troverà con il font .

Se si tenta di eliminare i numeri ambigue, si perde 1 (sembra minuscolo l), 8 (capitale B) e 0 (maiuscole o minuscole O), che è il 30% dei caratteri numerici disponibili. Questo è molto. Potresti anche avere problemi con 6 e capitale G.

Quindi, eliminare lettere e numeri dall'aspetto simile limiterà davvero le vostre scelte.

Certo, anche con un font, ci sono alcune somiglianze - zero e maiuscole O ti daranno sempre dei problemi.

Che ne dici di Courier New? O qualcosa di simile. Serif. Mono-distanziati.

Uno dei miei esempi di font preferiti è il nome dello stato Illinois. Prova a digitare in una casella di testo usando Arial. Metti tre L in là: Illlinois. Quindi, prova a vedere che ci sono 3 L's. E, buona fortuna, spostando il punto di inserimento nel punto giusto. Molto più semplice in un font di tipo Courier: Illlinois.

C'è un motivo per cui StackOverflow e altri siti che visualizzano il codice utilizzano un tipo di carattere Courier per visualizzare il codice. E perché SO e altri siti Web e software (Apple) usano font Courier per campi di inserimento dati (caselle di testo, textareas come questo.

+0

Grazie, ho bisogno solo di qualche migliaio di codici, quindi non sono terribilmente preoccupato per le dimensioni del dominio. Sto anche considerando di usare solo i numeri, quindi le lettere aumenterebbero lo spazio. –

2

Che ne dici di un approccio di backtracking alla generazione dei codici, in cui invaliderebbe qualsiasi soluzione che non t adattare un insieme di regole, come non avere personaggi simili l'uno accanto all'altro.Se è possibile identificare tutte le coppie indesiderate di caratteri e contrassegnare come non valide tutte le soluzioni che li contengono, immagino che sia piuttosto semplice

7

Se non volevi preoccupare di font Ecco una lista che ho fatto fino (escludendo le lettere minuscole):.

'0' can look like a 'O' 
'1' can look like a 'l' 
'2' can look like a 'Z' 
'5' can look like a 'S' 
'8' can look like a 'B' 
'B' can look like a '8' 
'I' can look like a '1' 
'J' can look like a '1' 
'L' can look like a '1' 
'O' can look like a '0' 
'S' can look like a '5' 
'T' can look like a '1' 
'Z' can look like a '2' 
Problemi correlati