LINUX.ORG.RU

Избранные сообщения shTigrits

ngram-keylogger: написал велосипед для анализа эффективности моего кнопкодавства

Форум — Desktop

Пришли мне Dumang DK6 Mini — две чумовые полу-клавиатуры, на которых можно размещать клавиши произвольным образом. Kinesis мой не заменит, ясное дело, но в жанре прототипирования плоских клав равных ей нет. А мне бы что-нибудь для планшетов-ноутов было бы интересно собрать.

Решил попробовать сделать какую-нибудь раскладку с аккордами на популярные буквокомбинации и слова и понял, что понятия не имею, что я вообще жму и в комбинации с чем. Одно ясно — статистика, набранная по худлиту, мне точно не подойдет, я ж не наборщик, я в шелле команды правлю да в виме бултыхаюсь. Кажется.

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

Наиболее удививший меня пример (в README есть еще):

Хотя бы буквы у меня соответствуют английской частотности (ETAOIN…)?

# ngram-keylogger query --limit=5 keypresses '[a-z]'
4.095611% | t
4.042651% | e
3.964975% | i
3.424778% | o
3.216467% | n

OK, сойдет. А заглавные?

# ngram-keylogger query --limit=5 keypresses '[A-Z]'
1.062741% | S
0.430745% | L
0.353070% | C
0.338947% | A
0.314232% | T

Че? Как так вышло, что каждое сотое совершаемое мной действие — набор заглавной S?

Так, после чего я ее печатаю?

# ngram-keylogger query --limit=5 bigrams '*' 'S' --renormalize
40.199336% | S     | S
18.272425% | L     | S
 7.641196% | space | S
 6.976744% | o     | S
 5.980066% | ...   | S

Зашибись, спамлю еще S, или печатаю LS или oS. Супер-естественно… S после паузы и пробел + S еще куда ни шло.

Итак, где я долблю по S?

# ngram-keylogger query --limit 3 --by-context bigrams 'S' 'S' --renormalize
90.082645% | term:vi:magit:nrm | S | S
 4.958678% | term:vi:magit:ins | S | S
 3.305785% | browser           | S | S

Ффух, и правда. S это stage hunk в vimagit, и я реально много его жму, когда просматриваю, что собрался коммитить. Дело закрыто.

Другие находки: самая популярная с большим отрывом триграмма nnn, неприлично малое отношение точек с запятой к двоеточиям, популярность git, непопулярность h и нижнего подчеркивания. И это только начало, а сколько еще открытий чудных…

Как вы составляете/оптимизируете раскладки? Есть советы, истории успеха? Xah Lee уже читал. Особенно интересно послушать пользователей chording-раскладок и прочих стенографистов-программистов; за пользователей QWERTY не переживаю — что им будет, они же в танке.

 , , ,

t184256
()

где вы берете эти ваши торренты?

Форум — Talks

Я вылез из криокамеры и понял что хочется че то посмотреть, есть умный телевизор ми какой то там и проживание в РФ.

Всяких подписок на иви и пр. у меня нет, да и то чего хочется посмотреть на них тоже нет (скажем хочется глянуть «день когда сотановилась» 1951 года или «через вселенную» по битлам).

Поставил себе ktorrent по старой памяти, пытаюсь закачать - большая часть торрентов нерабочая (нет никого на раздаче). Как это сейчас делается и делается ли вообще?

ЗЫ воткнул в телевизор флешку с .avi файлом - он сказал что такое показывать не умеет. Совсем опечалился, придется его как то цеплять к ноуту что ли…

 ,

AntonI
()

Удаление непечатаемых символов из переменной в bash

Форум — Admin

Задача: создать переменную из кириллицы рандомной длины. Далее эта переменная будет использована в качестве поля CN в subject.

Не придумал ничего лучше:

subj_gen=$( cat /dev/urandom | grep -aoe [абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ] | tr -d '\n' | head -c $( shuf -i 1-10 -n1 ) ); subj_value="CN=$subj_gen"; echo $subj_value

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

На выходе получаю:

root@root:~# subj_gen=$( cat /dev/urandom | grep -aoe [абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ] | tr -d '\n' | head -c $( shuf -i 1-10 -n1 ) ); subj_value="CN=$subj_gen"; echo $subj_value

CN=фвЯПШ

root@root:~#

root@root:~# subj_gen=$( cat /dev/urandom | grep -aoe [абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ] | tr -d '\n' | head -c $( shuf -i 1-10 -n1 ) ); subj_value="CN=$subj_gen"; echo $subj_value

CN=Обэ▒

root@root:~#
root@root:~# cat $subj_value

cat: 'CN=Обэ'$'\320': No such file or directory

root@root:~#

Как видим, в первом случае мы получаем корректную переменную, во втором же в конец этой переменной добавляется непечатаемый символ. Если верить cat – это символ $.

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

Перемещено hobbit из general

 ,

Heart
()

Получить deb-пакет из исходников, чтобы все было по-взрослому

Форум — General

Исходно проблема такая. Нужно в Ubuntu 22.04 поставить Slurm версии не менее 22.05. Предлагаемая в Ubuntu 22.04 версия Slurm меня не устраивает по причине отсутствия поддержки Cgroups v2, переключаться на v1 мне не хотелось бы. Смешивать пакеты из разных дистрибутивов, как я понимаю, не благословляется из-за конфликта зависимостей.

Возникла идея сделать свою сборку из исходников, но чтобы было все по-взрослому, прям как пакет из дистрибутива. Чтобы пакет учитывал особенности Ubuntu, были разные дополнительные вещи типа поддержки logrotate и другие тонкости о которых я даже не знаю. Для этого, видимо, нужны дополнительные файлы, которые делают Сопровождающие.

В Ubuntu 23.04 есть подходящая версия Slurm — 22.05.8. На сайте Ubuntu можно найти файлы: slurm-wlm_22.05.8-3.dsc, slurm-wlm_22.05.8.orig.tar.gz и slurm-wlm_22.05.8-3.debian.tar.xz. Это, я так понимаю, исходник и необходимые вспомогательные файлы. Теперь это надо как-то легким движение превратить в полноценный deb-пакет, но только для Ubuntu 22.04.

Это вообще реально? Как сделать? Какие могут быть проблемы?

 , ,

zb2
()

Чем паролить флешку?

Форум — Security

Умные учатся на чужих ошибках, дураки на своих, скупой дважды, такие как я…

В общем, как лучше «закрыть флешку» от потери?

 

shTigrits
()

VIM. Окончательное решение вопроса о мапе контрола на капс.

Форум — Desktop

Сабж.

Все нагугленные решения какие-то половинчатые. Кто как делает? Есть решение чтоб и под иксами и под ssh?

$ nvim --version
NVIM 0.1.7
Build type: None
Compilation: /usr/bin/cc -g -O2 -fdebug-prefix-map=/build/neovim-wew7PE/neovim-0.1.7=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -DDISABLE_LOG -Wconversion -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1  -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -DHAVE_CONFIG_H -D_GNU_SOURCE -I/build/neovim-wew7PE/neovim-0.1.7/build/config -I/build/neovim-wew7PE/neovim-0.1.7/src -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/usr/include -I/build/neovim-wew7PE/neovim-0.1.7/build/src/nvim/auto -I/build/neovim-wew7PE/neovim-0.1.7/build/include
Скомпилирован  pkg-vim-maintainers@lists.alioth.debian.org

Optional features included (+) or not (-): +acl   +iconv    +jemalloc +tui      
For differences from Vim, see :help vim-differences

            общесистемный файл vimrc: "$VIM/sysinit.vim"
          значение $VIM по умолчанию: "/usr/share/nvim"

// мой мизинец скажет вам спасибо :)

 , , ,

pihter
()