Можно ли рекомендовать информацию о наименее неоднозначных буквах/числах?

Я думаю, что Java должен был поддерживать специфичные для системы функции с помощью тонких встроенных библиотечных оболочек.

Другими словами, я думаю, что решение Sun требовать, чтобы Java поддерживала только переносимые функции, было большой ошибкой почти с точки зрения каждого.

Спустя миллион лет SWT пришел и решил основную проблему написания переносимого пользовательского интерфейса с нативными виджетами, но к тому времени Microsoft была вынуждена разложить Java на C #, и было написано много C ++, что в противном случае могло бы быть сделано в цивилизованная ява. Теперь мир работает на смеси C #, VB, Java, C ++, Ruby, Python и Perl. Все Java-программы по-прежнему выглядят и ведут себя странно, кроме SWT.

Если бы у Java были тонкие обертки вокруг нативных библиотек, люди могли бы написать SWT-эквивалент полностью на Java , и мы могли бы, по мере развития, сделать переносимые, по-видимому, нативные приложения на Java , Я полностью за портативные приложения, но было бы лучше, если бы эта мобильность была достигнута в открытом рынке библиотек пользовательского интерфейса (и других функций) промежуточного программного обеспечения, а не путем простого сокращения меню пользователя до ненужных или фальсификации пользовательского интерфейса с помощью Swing.

Я полагаю, что Sun думала, что независимые разработчики ПО пострадают от ограничений Java, и тогда все новые приложения для ПК будут волшебным образом работать на Suns. Хорошая попытка. В итоге они не получили приложения и не взяли язык, пока мы не сможем использовать его для серверного кода только для логики.

Если бы все было сделано иначе, возможно, локальное приложение не было бы мертвым.

8
задан Cody Gray 19 September 2017 в 17:40
поделиться

4 ответа

I agree with Reed that your best solution will lie with font.

If you try to eliminate ambiguous numbers, you lose 1 (looks like lowercase l), 8 (capital B) and 0 (upper or lowercase O), which is 30% of the available numeric characters. That's a lot. You might even have issues with 6 and capital G.

So, eliminating similar-looking letters and numbers is really going to limit your choices.

Sure, even with a font, there are some similarities -- zero and capital O are always gonna give you problems.

How about Courier New? Or something similar. Serif. Mono-spaced.

One of my favorite font examples is the name of the state Illinois. Just try to type that in a textbox using Arial. Put three L's in there: Illlinois. Then, try to see that there are 3 L's. And, good luck moving the insertion point to the right spot. SO much easier in a Courier-type font: Illlinois.

There's a reason StackOverflow and other sites displaying code use a Courier-like font to display code. And why SO and other websites and software (Apple) use Courier-like fonts for data entry fields (textboxes, textareas like this.

3
ответ дан 5 December 2019 в 08:25
поделиться

Честно говоря, я думаю, что наиболее важным фактором здесь является выбор правильного шрифта.

Если ваша цель - чистая разборчивость, это будет вопрос выбора шрифта, который предпочтительно:

1) Фиксированная ширина. Для выбора случайных чисел / букв очень помогает фиксированная ширина, поскольку кернинг не меняется при перемещении по шрифту.

2) Используйте шрифт с отдельными 0 / O взглядами - это определенно портит людей. Поищите другие похожие комбинации букв и цифр. Возможно, по этой причине не включайте 0 / O.

3) Выберите шрифт с небольшими засечками и изменениями веса.

Некоторые рекомендации по разборчивости см. на этой странице .

С правильным шрифтом, я думаю, вы могли бы выбрать любую комбинацию букв / цифр и сделать ее понятной (кроме потенциально 0 и O). Я считаю, что 8 / B, 5 / S и другие образцы будут четкими с использованием правильного шрифта.

Еще одна вещь, которую вы могли бы рассмотреть, - это использовать один цвет для букв и второй для чисел - это даст ключ к разгадке потенциально неоднозначные комбинации цифр / букв. Я бы сделал это тонкой репликой, поскольку резкое изменение цвета привлечет внимание к буквам или цифрам, что ухудшит читаемость в целом.


Отредактируйте после прочтения вашего комментария к другому ответу:

Мне нужно всего несколько тысяч кодов, так что я не особо беспокоился о размере домена

. Если это так, я бы рекомендовал оставить весь набор чисел и просто выборочно добавлять буквы, которые не имеют визуального (или звукового, если вы читаете их) сходства с числами. С 6 цифрами, даже с числами, у вас больше возможностей кода, чем вам нужно. Выборочно добавлять буквы, чтобы помочь различить, будет проще, чем пытаться выборочно удалить некоторые. Я бы, вероятно, придерживался 1–9, A, Z, R, W и других букв, которые не совпадают с числами.

что повредит общей читаемости.


Отредактируйте после прочтения вашего комментария к другому ответу:

Мне нужно всего несколько тысяч кодов, поэтому я не сильно беспокоюсь о размере домена

Если это В этом случае я бы рекомендовал оставить весь набор чисел и просто выборочно добавлять буквы, которые не имеют визуального (или звукового, если вы читаете их) сходства с числами. С 6 цифрами, даже с числами, у вас больше возможностей кода, чем вам нужно. Выборочно добавлять буквы, чтобы помочь различить, будет проще, чем пытаться выборочно удалить некоторые. Я бы, вероятно, придерживался 1–9, A, Z, R, W и других букв, которые не совпадают с числами.

что повредит общей читаемости.


Отредактируйте после прочтения вашего комментария к другому ответу:

Мне нужно всего несколько тысяч кодов, поэтому я не сильно беспокоюсь о размере домена

Если это В этом случае я бы рекомендовал оставить весь набор чисел и просто выборочно добавлять буквы, которые не имеют визуального (или звукового, если вы читаете их) сходства с числами. С 6 цифрами, даже с числами, у вас больше возможностей кода, чем вам нужно. Выборочно добавлять буквы, чтобы помочь различить, будет проще, чем пытаться выборочно удалить некоторые. Я бы, вероятно, придерживался 1–9, A, Z, R, W и других букв, которые не совпадают с числами.

m не особо беспокоился о размере домена

. Если это так, я бы рекомендовал оставить весь набор чисел и просто выборочно добавлять буквы, которые не имеют визуального (или звукового, если вы читаете их) сходства к числам. С 6 цифрами, даже с числами, у вас больше возможностей кода, чем вам нужно. Выборочно добавлять буквы, чтобы помочь различить, будет проще, чем пытаться выборочно удалить некоторые. Я бы, вероятно, придерживался 1–9, A, Z, R, W и других букв, которые не совпадают с числами.

m не особо беспокоился о размере домена

. Если это так, я бы рекомендовал оставить весь набор чисел и просто выборочно добавлять буквы, которые не имеют визуального (или звукового, если вы читаете их) сходства к числам. С 6 цифрами, даже с числами, у вас больше возможностей кода, чем вам нужно. Выборочно добавлять буквы, чтобы помочь различить, будет проще, чем пытаться выборочно удалить некоторые. Я бы, вероятно, придерживался 1–9, A, Z, R, W и других букв, которые не совпадают с числами.

Выборочно добавлять буквы, чтобы помочь различить, будет проще, чем пытаться выборочно удалить некоторые. Я бы, вероятно, придерживался 1–9, A, Z, R, W и других букв, которые не совпадают с числами.

Выборочно добавлять буквы, чтобы помочь различить, будет проще, чем пытаться выборочно удалить некоторые. Я бы, вероятно, придерживался 1–9, A, Z, R, W и других букв, которые не совпадают с числами.

7
ответ дан 5 December 2019 в 08:25
поделиться

Если у вас есть выбор, вы можете повлиять на него, изменив шрифты. Например, многие шрифты, ориентированные на программистов, намеренно отсекают ноль, используют разные формы для I, l, 1 и так далее. Насколько я помню, для этой цели обычно также используются шрифты с засечками. Я предполагаю - я не могу это подтвердить, - что это также было причиной того, что многие старые книги набраны «текстовыми цифрами», цифрами разной высоты, которые лучше сочетаются со страницей и (предположительно) улучшают читаемость. (См. http://en.wikipedia.org/wiki/Text_figures - да, я почти цитирую их дословно.)

1
ответ дан 5 December 2019 в 08:25
поделиться

Как насчет подхода с возвратом при генерации кодов, при котором вы аннулируете любое решение, которое не соответствует набору правил, например, отсутствие одинаково выглядящих символов рядом друг с другом. Если вы можете идентифицировать все нежелательные пары символов и отмечать как недопустимые любые решения, которые их содержат, я думаю, это довольно просто.

2
ответ дан 5 December 2019 в 08:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: