Кто хочет поучаствовать в разработке виртуальной клавиатуры с подсказками?

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

Это сейчас тренд. Редакторы с подстановкой.
Примерный алгоритм:
Выбираем опцию — javascript — затем получаем справа графический список из кейвордс и часто употребимых пользователем конструкций языка и еще вот так предложим: [a-z][A-Z][0-9] для набора переменных.
Аналоги в сети есть, например Dasher, но наш будет лучше. Потому что украинский, потому что ДОУ. Потому что на кликах набираться будет и в режиме шаг за шагом, а не рил тайм как у Дашера. Проще сделаем. Не для гиков.

Слово function(){} будет набираться в три клика мышкой (тычка пальцем).
Хочется сделать чисто мышиный вариант (для удобной работы с планшетом, и даже смартфоном)
Забыл как пишется new Promise ? Набрал — кликнул «Варианты» и выбрал свой.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Придумалось кое-что о юзабилити ввода логинов и паролей. Эта автоподстановка — самая раздражающая и неудобная вещь на свете и вот почему: из-за отсутствия пользовательского контроля. Мой идеал автоподстановки таков: не подставляй, пока тебя не попросят.
Это значит, что должна быть рядом с инпутом для логина кнопка — «подстановка»
Набрал три-четыре буквы и нажал кнопку. И только после этого предоставлять на выбор возможные соответствия. Это предоставление контроля — очень важная шутка. В том числе и потому что позволяет точно выбирать момент времени, когда нужно инициировать процесс подстановки.

Коментар порушує правила спільноти і видалений модераторами.

В зависимости от того, где вы находитесь в тексте программы, какие-то keywords and instructions and consructions будут куда более вероятными для подстановки чем другие
Кроме того, если заранее обусловить цель или цели набора это даст дополнительное отсечение смыслов, оставив только самое оно
Надо просто предложить максимально удобный интерфейс подстановщика. Все остальное уже сделано. В том числе и мета подстановки — развертка заранее заученных макросов — мега крутая штука.

А что, если уйти от древовидной структуры?
Иерархичность представления данных стала мешать.

Далее буду рассматривать такую схему:
контент айди, контент тело
таг айди, таг наименование
таг айди контент айди
контент айди А, контент айди Б
Последняя (четвертая строчка необходима для реализации структур данных вида:
 { name: Zorro, weapon: Sabre, target: World Evil } 
Контенты тут: Zorro, Sabre, World Evil
Таги: name, weapon, target
Совокупности тут:
name: Zorro, weapon: Sabre,
И
weapon: Sabre, target: World Evil
И
name: Zorro, target: World Evil
И
...
name: Zorro, weapon: Sabre, target: World Evil
...
ну вы поняли — речь идет о всех возможных перестановках связывающих контенты (со временем проявляющихся в четвертой таблице)

И еще нужны другие таблицы, но пока не очевидна их структура. Надо для начала первые четыре стабилизировать, материализовать, закодить и потестить.

Очень интересная четвертая таблица. У нее не стабильное число колонок.

Давай напишем клавиатуру, которая будет дописывать код клавиатуры?

Тема устарела. Я уже написал то что хотел.

Вот это я мотиватор!

Есть только один крайне эффективный мотиватор и это не ты.

Ого! Я еще и сверхознательный мотиватор.

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

Теперь тебе осталось сделать форум для самого себя и набрать перспективную аудиторию.

Не получится. Я тиран. А реклама денег стоит.

Так заработай их. В чем проблема?

Я шизофреник. Ты наверное забыл этот немаловажный факт?

По этому тебе будет очень легко их заработать — ты способен мыслить нестандартно.

На самом деле, я способен предсказывать будущее. Вот увижу я в будущем интересную реализацию клавиатуры с подстановкой и уже сейчас у меня возникнет идея этой клавиатуры да еще и с агрессивной такой мотивацией немедленно воплотить в жизнь это видение. Я так, например, разглядел айфон. Еще хрен знает когда. Так и написал: можно сделать клавиатуру из куска стекла со светящимися внутри и сменяющими друг друга наборами buttons
Чем не айфон положенный горизонтально перед ноутбуком и передающий нажатия в ноутбук по вайфай / блутус ? Дело только в application. Угадал? Может быть. Вот сейчас угадываю собственную GPT-3 + AlphaZero
И где инвесторы?
Ты прав, я действительно мыслю оригинально, нестандартно, уникально. Просто со стрелой времени работаю не так, как обычные люди. Мне легче полагать, что я вспоминаю будущее, чем прошлое.
Вот тебе пример: если ученик будет и в будущем пилить код, то в настоящем он будет усваивать материал легче и быстрее чем тот, кто поматросит и бросит/забъет.
Просто как факт — никому пророки не нужны. Всем по барабану, что навигатор в команде мог бы сильно пригодится. Хотя бы для указания методичного и настойчивого, что идеи приходят к нам из будущего в крайне неупорядоченном виде. И поэтому иногда самая сложная часть привлекает внимание первой, в то время как необходимая для ее реализации простая и маленькая незаметная деталь обнаруживается лишь после наступления дедлайна. Потому что будущее квантовое. А квантовое неотсортировано. И даже может быть невозможно его упорядочить, пока не придет время определения квантового как одного из элементов этого квантового набора.
Целая статья получилась. Про новую профессию — пророк в АйТи.
Законы Мерфи? Квантовые штучки.
Как я проглядел это баг? Потому что это был квантовый баг — он ускользал из поля зрения.
Я не шутил, когда намекал на то, что исследования института времени — например, всех этих заморочек со временными парадоксами — станут очень необходимы людям. Ибо если люди предсказывают будущее — а мозги у них именно так устроены — временных парадоксов и связанных с этим конфликтов не избежать.
Есть и косвенные доказательства: кошка ловит мышь, потому что неподвижно сидит возле норки. Но вот мое предположение: мышка предсказывает будущее перед выходом из норки и если кошка неподвижна в будущем, то мышка пытается.
У меня есть даже видео на эту тему — начальное. Мышь в сарае. Mouse in the barn.
P.S.
Предсказывать можно не только собственный код или поведение виртуальной клавиатуры. Есть еще видео о соединении спичек колечками из коктейльных трубочек. Там чисто трансформеры, если продолжать. Включил магнитное поле и из чего-то простого путем самосоединения где-то внутри чего-то труднодоступного собирается инструмент — эффектор воздействия. (вот, снова видение)

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

Производство четких шлемов со сменными фильтрами. Еще можно вставить две мобилы слева и справа и показывать улицы в мобилах этих. В смысле внешний мир. И встроить идентификационный чип в шлем. Но всем такую фишку не обеспечивать, чтобы все захотели.

Это хорошо, но требует больших начальных инвестиций. Лучше посмотреть в сторону программного продукта, и не писать сюда а мне напрямую.

В моем мироустройстве существует неприятное правило: я вижу то, что станет для меня доступно. Чем уже предметная область тем точнее выдаваемая идея. Иными словами — если хочешь усовершенствований в области производства искусственных бриллиантов познакомь с текущим технологическим процессом. Зачастую такая фигня спрятана за соглашениями о неразглашении.
Ну или по другому — золотые двери открываются золотыми ключами.
Так о каком прогностическом исследовании в области софта может идти речь, если у меня нет — мощного ноутбука, планшета, смартфона?
Я не голословно веду речь о необходимости инвестиций в мои исследования. Иначе нет возможности перейти на ступеньку повыше и самое главное увидеть ту ступеньку и все что на ней, которая еще выше.
Нельзя увидеть недоступное — там надо побывать.
И да, если подумать как следует, так можно очень неплохо возвысится, некоторые так с кредитами поступают...
Я написал не тебе лично в этот раз, для того чтобы публично прояснить вот эти моменты.
Чтобы предсказать состав смузи — вкуснейшего для богатых — надо хотя бы некоторое время в будущем самому им понаслаждаться.
Это закон. Пока я предсказываю устройство печей для полиэтиленового мусора, размышляя о возможностях сортировки электростатикой в мусорных контейнерах. Нечасто, но меня удивляет сам факт появления в мозгу подобных идей. Хотя за рекуперацией будущее 100%

Тогда присмотрись к тому, что даст тебе денег

...Но нет людей в четвертом измерении.
Одни лишь тени — утверждаю я без всякого сомнения...
Это отрывок из моей поэмы об невозможности угадать, кто инвестор, а кто нет.
Я ведь написал что будущее квантовое?
...Там множества слиты в единое пересечение...
Возьми одну трехмерность, сложи с другой (из другого момента времени) затем с третьей, пятой, десятой, сотой. Получишь информационный пакет, в котором есть все, но где что? Хрен различишь. Чем больше будешь играть в рулетку, тем меньше шансов увидеть следующее красное. Вместо одного угаданного числа видишь все угаданные, но какое из них первое? А какое второе? Порядок в 4-ом отсутствует. Упорядочивает настоящее.
Видны формы, но не содержания. Очертания. Абстракции.
При условии хорошей тренировки перед самим гаданием.
4-ое это пакет третьих по оси времени.

Постарайся, я верю в тебя

Та это все теория. А что касается накопленной практики — у меня она есть, а у тебя ее нет. Вот и весь тебе мой привет.

А у меня есть теория о том, что твои двойники в других мульти-вселенных добились разных успехов. Выйди к ним на связь.

Это 5-ое измерение. Веер Миров. Но это неприятно, знаешь ли, открывать туда двери. Как раз после таких экспериментов со внутренней реальностью прогнозисты-дилетанты слетают с катушек. А я просто поседел немного. Отчего-то мозг боится таких совмещений. Это как кошмар наяву увидеть. Да, сначала надо войти в ИС, потом маяки выбрать, ворота найти. И сразу не получится, надо наездить путь, то есть кучу попыток сделать.
Так что нет, спасибо. Мне вообще-то и трех измерений более чем достаточно.

Я в курсе. С первого раза неприятно, потом так и останется, но привыкаешь.

Это все не важно. На самом деле знать про фатаморганы (иллюзии) 4-го и 5-го нужно для того, чтобы очень ясно различать артефакты 3-го то есть настоящего. И использовать только их.
Понимаешь? Людям мешает и даже очень сильно мешает их способность запутываться в 4х измерениях.
Например, где появляется сложность? Там где несколько третьих совмещаются в голове. Это нарушение принципа KISS
Поэтому пророчить это весьма ответственное занятие. Это целая наука о скрытой подоплеке вещей и явлений, которых мы не понимаем.

Я все понимаю. Любой путь начинается с первого шага. Если ты его не делаешь — вообще зачем ты тогда существуешь?

Не просто «с первого шага». С элементарной частицы пути! С одной стороны — тысячемильный путь. С другой стороны — всего лишь один шаг. Поэтому если у тебя взаимодействие объектов начинать имплементацию нужно с геттера самого простого свойства.
Т.е. разработка идеи сначала сверху вниз, но потом снизу вверх и вот так примерно:
есть объект, пытаемся предположить его состав, получаем некий список элементов, смотрим на них, выбираем самый простой, затем пытаемся предположить его состав, получаем некий список составляющих и т.д.
И вот так идем к самому простому элементу.
Идея это Титаник. Первый шаг это заклепка. Или отверстие для нее.
---
Если я его не делаю, возможно я существую для наблюдения за тем, как я его не делаю.

Забыл как пишется new Promise ?

Взял метлу и пошел мести улицы.

Не пойму твой питчь, как-то больно восторженно и сумбурно. Вообще складывается впечатление что ты выдумал очередной Emmet. Если я не правильно понял — попробуй Use Case диграму накидать что ты хочешь в своей «виртуальной клавиатуре».

Я не просто выдумал, я предсказал. Сейчас попробую твой Эммет.
Но ведь там нет js, java, php ?

Use Case для нескольких сот строк не делаю. Вместо этого просто набиваю работающую модель.

Да, свертка — развертка — тоже удобно. Вот сейчас набираю dct а думаю о document.getElementById("").
Это у меня самое часто употребимое сочетание. Так можно сделать так:
1. Печатаем свернутое — заранее определенное — например — dct
2. Завершаем ввод вызовом разверточной функции — Alt + Shift + R
3. Начинается вычисление необходимого (фактически предсказание — выбор наиболее вероятной подстановки — по таблице статистики сочетаний keywords поиск)
... document.getElementById("").
7. PROFIT!

+ магия запомнить этот пользовательский выбор как наиболее вероятный (т.е. занести в таблицу статистики с наивысшим рейтингом)
И хотя здесь еще нет работы с наборами (которые у меня в уме и пока не оформились, а всего лишь призрачные грезы) это уже выглядит более мощно чем то, с чем я знаком.
P.S.
А потом нас купят ФААНГИ

В Notepad++ только что записал макрос. Но активация вот такая Alt+Shift+C
Однако прижимание шифтов или альтов или контролов это ж самое тяжкое в процессе набивания.
cnv — это как iddqd стоит только отследить пользовательский ввод чтобы мгновенно совершить подстановку шаблона.
Примерно вот так:
1. Я набираю iddcnv
2. Notepad++ печатает <canvas width="" height="" id="" ></canvas>
Неужели нельзя вот так сделать? Элементарно просто ведь.
Забудьте слова — пишите предложениями ;)
Правда на немного марсианском, но гораздо эффективнее (шаблонами ведь)

Почему табнайн не делает так? Я набираю cnv и в качестве подстановки/подсказки вижу:
<canvas width="" height="" id=""></canvas>
или, я набираю brd в файле css и вижу:
border: 1px solid black;
то есть сразу шаблон целиком.
Вместо этого я вижу «варианты» но даже они не все подходят! Не подходящие варианты показывать нет смысла.

В общем, мы точно обойдем табнайн на повороте.

Линейная последовательность действий куда проще для мозга. Ты ж не придумываешь новый символ для нового слова? Китайцы вот придумали, еbuttso теперь.

Лучшее, что на сегодня возможно — НЕВМЕШАТЕЛЬСТВО в набор. Даже подсветка синтаксиса должна срабатывать с опозданием, а проверка синтаксиса — с пятикратным опозданием. Переведу на русский: система не должна тяфкать под руку.

Однако скажу по секрету: невмешательство в автоматический процесс набора это на самом деле очень плохо. Нисколько не хорошо поощрять автоматизм выдачи «телепатических» «астральных» или «квантовых» пересечений. Это тебе только кажется, что если ты написал длинный всеобъемлющий пост весьма автоматически то это мега-круто. На самом деле рулит одно, максимум два предложения. Написанные не в автоматическом режиме а через-антиспам-клик-набор здесь очень даже уместен ибо автоматизм легко и просто совершает самые неприятные и трудно находимые ошибки.

С Рождеством!

На планшет, возможно, уже есть что-то похожее, см. Programmers keyboard.

Но, если нужно сделать для себя, под свои требования — делайте проект на github/gitlab/etc. и приглашайте. Позднее можете открыть пару задач для желающих в списке issues/features.

Желательно нарисовать несколько картинок, а то не очень понятна идея со слов.

У кого есть время и желание — посмотрит... IMHO: обычно, небольшие проекты удобно делать самостоятельно — так просто быстрее.

Могу на скорую руку работающий макет сделать, в принципе...

Еще такой вариант был, но этого приложения больше нет на Google Play, почему-то: www.apkfollow.com — com.SkySoftware.android.programmerkeyboard

Моя печаль в том, что нет у меня хорошего кодера, задающего мало вопросов и пишущего много хорошего кода. А алгоритмов можно много понапридумывать. Вот например простенький:
1. Набираем слово canvas
Заметь здесь что слова (любые слова) являются многомерными идентификаторами для следующих слов.
2.1. Кликаем по кнопке «Развернуть»
3. Ищутся в базе данных подписанные этим идентификатором контенты. Из найденных формируем список. Выводим его на выбор пользователя. Когда он сделает выбор, выводим
<canvas width="" height="" id="" ></canvas>
4. Сохраняем слово canvas как перемещаемую кнопку

P.S.
Если коротко, суть находки — выводить сразу весь шаблон (вместо того, чтобы набирать тонну кода для него) а затем править предложенный шаблон.
Promise? Шаблон!
for? Шаблон!
do while Шаблон!
recursion callback Шаблон!
MVC? Шаблон!
canvas line Шаблон!

Время правки не сравнимо с временем набора. Новички набирают, опытные правят.

Почему мы обставим Eclipse ? Потому что в эклипс подстановка вроде System.out.println не визуализирует иерархию сбоку и мышкой выбрать нельзя сразу кейворд, который оканчивается на -ln
А мы сможем. И даже потом портируем на плагин для эклипс. Если получится.

Предлагаю вариант «нуегонахфиг». Ты не поверишь, как быстро ты перестанешь пользоваться функцией println, а будешь писать что-то вроде Logger.log, Logger.warn...

Язык? Шарп, жава или с++ ? Десктопное приложение. Висящее поверх всего окно. Набирает в обычное окно для редактирования, как у Блокнота. Дальше копи-паста. Справа отображаем дерево выбора, которое динамически изменяется по мере кликов. Опции (через запятую): [Язык], [Ключевые слова],[скобки] Пока хватит.

Я хочу набирать скорее не буквы, а слова. Наиболее частоупотребимые будут вверху списка. Я попробовал Дашер, а он меня разочаровал. Аналоговый подход не мое. Мне больше дискретный нравится.

Сейчас проинсталирую, поюзаю, скажу.

eclipse в списке поддерживаемых нет. нотепад++ в списке поддерживаемых нет. за быстродействие плати. также deep-learning-model — очень жутко звучит. Объема на винте свободного почти нет.
Я хочу сделать очень просто, на харкодженных ифах. Вот есть у тебя куча своего кода? Берешь его и добавляешь в базу данных нашего будущего подстановщика. И никаких тебе дипленинг
Хотя — если откорректировал часто встречающуюся комбинацию в стиле еще более элегантном то можно перезаписать будет в бд.
Но никаких сложностей. Всего пара строчек кода, имхо. Несколько десятков часов когда время есть свободное. Но сначала обсудим все.

Вот, смотри: я скачал IDEA, установил Tabnine. Работает космически медленно, словно реклама за покупку дополнительных мощностей. Но, есть, имхо, гораздо более тяжкие грехи. Вот я набираю:
Buf — табнайн советует BufferedImage (а я хочу BufferedReader)
Нету в списке. И вот что страшно. Табнайн не шарит. Я не выбираю ничего довольно долго. Видя это, табнайн должна отскочить по дереву на левел вверх. Поискать среди прочих Buffered
...
Табнайн не шарит.
...
Теперь посмотрим на подстановщик IDEA. Я вбиваю еще букву ’f’
Buff
На 11 позиции долгожданный reader впереди все тот же BufferedImage и это при том, что я уже отказался от ввода его (т.е. хотя бы в конец переместить было бы неплохо)
А!!
И самое главное: я ведь не хочу использовать клавиатуру вообще! Только мышь.
Не, то, что я вижу, можно сделать гораздо удобнее. И быстрее. И умнее.

Я, может быть, немножко огорчу Вас, но в Eclipse (версия 4.12.0, думаю и более ранние версии тоже), Android Studio (и IDEA) можно использовать сокращения
BuR Ctrl+Space => BufferedReader один из первых в списке.

А еще есть Live Templates (см. File :: Settings :: Editor :: Live Templates), можно их редактировать и добавлять свои.
sout => System.out.println(); (см. группу output)

Ctrl+Q показывает JavaDoc (View :: Quick Documentation), но нужно чтобы были загружены локально sources, иначе плохо работает.

В Eclipse тоже есть sysout (он, вместе с другими сокращениями, появляется где-то в конце списка когда нажимаешь Ctrl+Space в пустой строке).
См. настройки в Window :: Preferences :: Java :: Editor :: Templates — тоже можно редактировать и добавлять свои.

P.S. Самое интересное что я этими сокращениями не пользуюсь; когда-то кто-то мне показывал, и вот сейчас вспомнилось :-)

Спасибо, посмотрю, проверю, однако мне не нужна клавиатура. Я мышкой хочу или изобрести удобный тычко-пальцевый интерфейс удобный для планшетов, смартфонов. Так и вижу как подсоединю его к вассаби дереву... Мой проект огромен. Это просто часть его. Такая же как крестики-нолики (распознающие комбинации)
Так, например, набранная комбинация распознается алгоритмом крестиков ноликов и соберет из букв единую строчку.
BuR <— очень похоже.

А прокачать скорость набора не пробовал? А ты попробуй. Что называется, решение всех проблем в 200 кликов

Больше всего мне нравится, когда вот предлагаешь что-нибудь, а в ответ не «Нет времени, занят своими проектами» а обсуждение, зачем мне это не надо. Я могу и сам написать. Но это ведь не так интересно как вместе. Опыт командной работы ценнее для всех, Даже если его и нет. Вот у меня тоже нет, отчего я и предлагаю.

Возьми сейчас простую экранную клавиатуру и изобрети простое усовершенствование (чтобы можно было легко и просто мышкой набирать), зная то, что ты мне сказал вот здесь: dou.ua/...​ign=reply-comment#2029485

Не можешь? Тогда найми меня — я тебе буду изобретать все то, что ты захочешь. В R and D department. За нормальные деньги.

Я ведь почему хвастаюсь? Потому что хочу чтобы меня кто-то нанял. Другого смысла нет хвастаться своим необычным талантом все на свете перебирать (в режиме декартова произведения данных с отбором согласно поставленных условий )

Но я точно не корпоративный работник. Я яркая звезда. Работаю удаленно на результат. Чем больше информации по предметной области получаю тем точнее изобретаю.

P.S.
А я пока на js рабочую демонстрационную модель запилю... Сравним.

Підписатись на коментарі