[Ненормальное программирование, Интерфейсы, Гаджеты] Клавиатура из пяти кнопок
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Графические интерфейсы — штука удобная, но иногда их не хватает. Сделать удобный интерфейс это искусство и большая трата ресурсов. Поэтому в большинство программ можно попасть только через командную оболочку.
Интерфейс командной строки легко и удобно создавать, расширять функционал, не заботясь о пользователе.
Если надо что-то настроить, а нужного пункта в меню нет, то можно руками залезть в конфиг. Если нет доступа к конфигу, то приходится страдать.
Это я подвожу к тому, что даже имея графический интерфейс, текстовый может быть очень полезен, особенно если при разработке что-то не предусмотрели.
Размышления про клавиатуру в Flipper Zero вызвали вялотекущее обсуждение про оптимизацию способов ввода. Мне тоже нравятся велосипеды, поэтому вот пара диких идей.
Прокрутка с умной сортировкой
Будем отталкиваться от простого скролла символов.
Есть набираемый текст, навигация по тексту — стрелки влево/вправо. Чтобы выбрать символ, листаем стрелками вверх/вниз линейный список из всех символов.
Это довольно неудобно, сделаем пару улучшений.
На основе введенного пользователем текста, будем собирать статистику по n-граммам символов. В самом простом случае, берем предыдущие 4 символа, сортируем таблицу символов по частоте использования с этой тетраграммой. Пользователь начинает листать вниз и быстрее находит нужный символ. При прокрутке вверх находится фиксированный набор служебных команд, вроде пробела, удаления предыдущего символа, переключения регистра и раскладки.
Для узкого спектра задач, такой способ сгодился бы, но для человека это все-таки слишком сложно. Приходится концентрировать внимание, чтобы не пропустить нужный знак, а это утомляет.
Троичная система
А что если просто запомнить расположение нужных диапазонов символов в юникоде?
Набираем код символа, подтверждаем, набираем следующий.
Имеем 5 кнопок. Если одну будем использовать для подтверждения ввода, вторую для стирания последнего разряда, остается 3 кнопки на цифры. Допустим, вверх — 0, вправо — 1, вниз — 2.
Достаточно привыкнуть к троичной системе и выучить диапазоны нужных кодов. Удобство сомнительное, но привыкнуть к такому способу ввода, намного легче, чем зубрить морзянку. Есть некоторая избыточность, имеется возможность вводить все, от управляющих символов до эмодзи, но вряд-ли у кого-то будет нужда использовать более сотни букв и знаков пунктуации.
Двухмерный скролл
Расширим скролл в несколько рядов символов, отсортируем по частоте использования, таким образом, чтобы манхэттенское расстояние от стартовой точки до символа, было тем больше, чем он реже используется.
Получается намного удобней, никакой подготовки не требуется. Небогатый, интуитивно понятный интерфейс, вполне годится для маленького дисплея. В кнопочных телефонах подобным способом можно набирать всякие спецсимволы. Но сократив размер до одной строки, можно реализовать это и на совсем крохотных экранах.
Ввод должен быть визуально контролируемым, тогда не требуется долгое обучение (привет морзянка) и расстановка символов должна быть статичной, иначе быстрого набора не получится. Хотя, может это дело привычки, если бы у нас часто используемые кнопки сами прыгали под пальцы, мозг смог бы адаптироваться, но имеем то, что имеем.
Еще можно придумать всякие коды Хаффмана, но это лишние усложнения, плюс невозможность расширения, азбука Морзе тому пример.
Вот ссылка на код демки, используемой в посте
Подключается как питоновская библиотека, функция ternary опционально принимает строку для редактирования. Чтобы перейти из режима навигации, надо нажать стрелку вверх. В режиме редактирования набирается троичный код символа (вверх — 0, вправо — 1, вниз — 2, влево — стереть последний разряд, Enter — подтвердить). Для выхода надо нажать Enter, функция вернет отредактированную строку.
В функции roll все намного проще — стрелками выбираем символ, подтверждаем кнопкой Enter. В первой верхней строке: вставка табуляции, Shift, Backspace, пробел, перевод строки, Delete и Caps Lock.
===========
Источник:
habr.com
===========
Похожие новости:
- [Гаджеты] Светодиодные лампы Toshiba
- [Ненормальное программирование, Программирование] Пять самых сложных языков программирования на свете (перевод)
- [Гаджеты, Компьютерное железо, Настольные компьютеры] Chuwi выпустила крохотный ПК с 6 ГБ ОЗУ и четырехъядерным процессором
- [Гаджеты, Носимая электроника, Звук] Bloomberg: Apple готовится выпустить новые наушники по типу AirPods Pro в 2021 году
- [Гаджеты] Реально честные светильники армстронг, тестирование 2 образцов
- [Информационная безопасность, Habr, Accessibility, Гаджеты, DIY или Сделай сам] Xакерский мерч | Мантия невидимка
- [Анализ и проектирование систем, Гаджеты, Data Engineering] Ремонт слухового аппарата. (Почти детективная история)
- [Гаджеты, Смартфоны] iPhone 12 и iPhone 12 Pro получили 6 баллов из 10 по шкале ремонтопригодности iFixit
- [Гаджеты, Периферия, Носимая электроника, Звук] AirPods Studio: собираем образ устройства из отрывочных сведений
- [Гаджеты, Носимая электроника, Медгаджеты, Здоровье] Справочная // Apple Watch Series 6 с пульсоксиметром: что это и для чего нужно
Теги для поиска: #_nenormalnoe_programmirovanie (Ненормальное программирование), #_interfejsy (Интерфейсы), #_gadzhety (Гаджеты), #_flipper_zero, #_flipper, #_qwerty, #_klaviatura (клавиатура), #_vvod_teksta (ввод текста), #_nenormalnoe_programmirovanie (
Ненормальное программирование
), #_interfejsy (
Интерфейсы
), #_gadzhety (
Гаджеты
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 17:26
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Графические интерфейсы — штука удобная, но иногда их не хватает. Сделать удобный интерфейс это искусство и большая трата ресурсов. Поэтому в большинство программ можно попасть только через командную оболочку. Интерфейс командной строки легко и удобно создавать, расширять функционал, не заботясь о пользователе. Если надо что-то настроить, а нужного пункта в меню нет, то можно руками залезть в конфиг. Если нет доступа к конфигу, то приходится страдать. Это я подвожу к тому, что даже имея графический интерфейс, текстовый может быть очень полезен, особенно если при разработке что-то не предусмотрели. Размышления про клавиатуру в Flipper Zero вызвали вялотекущее обсуждение про оптимизацию способов ввода. Мне тоже нравятся велосипеды, поэтому вот пара диких идей. Прокрутка с умной сортировкой Будем отталкиваться от простого скролла символов. Есть набираемый текст, навигация по тексту — стрелки влево/вправо. Чтобы выбрать символ, листаем стрелками вверх/вниз линейный список из всех символов. Это довольно неудобно, сделаем пару улучшений. На основе введенного пользователем текста, будем собирать статистику по n-граммам символов. В самом простом случае, берем предыдущие 4 символа, сортируем таблицу символов по частоте использования с этой тетраграммой. Пользователь начинает листать вниз и быстрее находит нужный символ. При прокрутке вверх находится фиксированный набор служебных команд, вроде пробела, удаления предыдущего символа, переключения регистра и раскладки. Для узкого спектра задач, такой способ сгодился бы, но для человека это все-таки слишком сложно. Приходится концентрировать внимание, чтобы не пропустить нужный знак, а это утомляет. Троичная система А что если просто запомнить расположение нужных диапазонов символов в юникоде? Набираем код символа, подтверждаем, набираем следующий. Имеем 5 кнопок. Если одну будем использовать для подтверждения ввода, вторую для стирания последнего разряда, остается 3 кнопки на цифры. Допустим, вверх — 0, вправо — 1, вниз — 2. Достаточно привыкнуть к троичной системе и выучить диапазоны нужных кодов. Удобство сомнительное, но привыкнуть к такому способу ввода, намного легче, чем зубрить морзянку. Есть некоторая избыточность, имеется возможность вводить все, от управляющих символов до эмодзи, но вряд-ли у кого-то будет нужда использовать более сотни букв и знаков пунктуации. Двухмерный скролл Расширим скролл в несколько рядов символов, отсортируем по частоте использования, таким образом, чтобы манхэттенское расстояние от стартовой точки до символа, было тем больше, чем он реже используется. Получается намного удобней, никакой подготовки не требуется. Небогатый, интуитивно понятный интерфейс, вполне годится для маленького дисплея. В кнопочных телефонах подобным способом можно набирать всякие спецсимволы. Но сократив размер до одной строки, можно реализовать это и на совсем крохотных экранах. Ввод должен быть визуально контролируемым, тогда не требуется долгое обучение (привет морзянка) и расстановка символов должна быть статичной, иначе быстрого набора не получится. Хотя, может это дело привычки, если бы у нас часто используемые кнопки сами прыгали под пальцы, мозг смог бы адаптироваться, но имеем то, что имеем. Еще можно придумать всякие коды Хаффмана, но это лишние усложнения, плюс невозможность расширения, азбука Морзе тому пример. Вот ссылка на код демки, используемой в посте Подключается как питоновская библиотека, функция ternary опционально принимает строку для редактирования. Чтобы перейти из режима навигации, надо нажать стрелку вверх. В режиме редактирования набирается троичный код символа (вверх — 0, вправо — 1, вниз — 2, влево — стереть последний разряд, Enter — подтвердить). Для выхода надо нажать Enter, функция вернет отредактированную строку. В функции roll все намного проще — стрелками выбираем символ, подтверждаем кнопкой Enter. В первой верхней строке: вставка табуляции, Shift, Backspace, пробел, перевод строки, Delete и Caps Lock. =========== Источник: habr.com =========== Похожие новости:
Ненормальное программирование ), #_interfejsy ( Интерфейсы ), #_gadzhety ( Гаджеты ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 17:26
Часовой пояс: UTC + 5