vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Когда-то давно я тестировал почтовый клиент iris для vim. Оно меня тогда совершенно не впечатлило. Впрочем, прошло два с половиной года. Если столько времени назад чего-то в мире opensource не было, стоит поискать еще раз.

Поискал и нашел himalaya-vim. Это как-то имеет по-моему более вменяемый дизайн - базируется на командно-строчном почтовом клиенте, который запускает в фоне. Это по-моему гораздо логичнее, чем писать всю обработку протоколов и форматов на встроенном скриптовом языке, даже если у него в стандартной библиотеке есть соответствующие модули (а это уже требует недефолтного языка. iris был на питоне).

Сам по себе почтовый клиент, на который это опирается himalaya, тоже штука довольно интересная. Написан на Rust, поддержиивает спеециальный микроязычок разметки для описания мультипарт-MIME сообщений. Но как-то он мне не глянулся.

Я подумал, а может поискать командно-строчный почтовый клиент поприличние и самому вокруг него вимовский плагин накрутить?

Правда, от современной почты требуется как минимум поддердка smtp и imap, а также аттачментов (у himalaya все это есть).

Первый попавшийся в дистрибутиве клиент оказался s-nail. Вроде он все что надо умеет. И даже такая замечательная фишка как поддержка .netrc там есть, чтобы пароли не хранить по куче конфигурационных файлов. Единственное что мне в нем не понравилось, так это то, что он не умеет сообщать о приходе новой почты, ежели запущен и ждет команды от пользователя. Традиционный mailx, который без аттачментов сетевых протоколов и юникода, по-моему это умел. Но тут вообще у автора отношение к imap какое-то странное. Он, судя по документации даже выпилить его хотел, но пользователи очень попросили так не делать.

Зато автор в курсе что такое line-buffered stdio. И это оченьу упростит управление его программой из другой программы. например vim. В общем, возможно, правильный подход - написатьт плагин вокрут s-nail, потом для этого плагина написать свой mailx, с поддержкой IDLE и прочих imap-вкусностей (например на базе c-client от alpine).

Кстати, на сайте у автора есть еще его собственные реализации грейлистинга и dkim для postfix. Посмотреть на них что ли. Все равно собирался dkim у себя поднимать.

vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

До недавнего времени я думал, что четыре. Оказывается, их семь

  • Normal - это когда, нажимая клавиши с буквами ты перемещаешься по тексту или меняешь его.
  • Visual - это когда ты выделяешь фрагмент для последующей операции (там есть три подрежима)
  • Insert - это когда набираемые буковки непосредственно попадают в текст (есть подрежим Replace)
  • Сommand - это когда то что ты набираешь, оказывается в командной строке внизу экрана и потом может быть выполнено в качестве команды.

Оказывается, еще выделяются

  • Select mode - это когда перемещание выделяет текст, а набор текста - заменяет текущее выделение.
  • Operator-pending mode - это когда ты набрал какую-то комнаду, меняющую текст, и vim теперь ждет команды перемещннения как указания что именно менять.
  • Terminal mode - в терминальном буфере все не так, как в нормальных.

Каждому из этих режимов соответствует своя верссяи команды map для назначения клавиатурных комбинаций. Правда для vmap работает не только в режиме Visual, но и в режиме Select, если мы хотим назначить команду, которая бы работала только в первом, нужно использовать xmap. Еще есть команда lmap, которая работает во всех местах где вводимые буквы являются текстом - в режиме вставки, в командной строке и в строке поиска.

Маленькие открытия

Sep. 23rd, 2025 10:42 am
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Изучаю как в vim-е работать c Language Server Protocol с помощью плагина ale

Попутно выяснил, что, оказыватеся, кроме общего для всего редактора quickfix list, по которому перемещеются с помощью команд :cn, :cp, :cc, :cfirst, :cbefore и :cafter есть аналогичный location list, локальный для окна. И у него те же команды, но с префиксом не c, а l. А заполняют его командами lgrep, lmake и lfile.

А еще есть команда :cq N вызывающая выход из редактора без сохранения с кодом завершения N. Говорят, очень полезна для прерывания гитовых коммитов. Кто git commit из командной строки зовет. Хотя лучшие вимоводы в моем лице рекомендут fugitive.

А еще оказывается, если в командной строке vim набрать vim это будет почти то же самое. что grep, только с другим синтаксисом и с учетом некоторых переменных заданных с помощью :set. То есть полное имя команды - vimgrep.

А еще оказывается, что quickfix листы образуют стэк. Можно сделать новый посиск, новую компиляцию, а потом вернуться к результатом предыдущего с помощью команды :colder (кстати :lolder сокращается почему-то до :lol)

Сектоведческое

Sep. 23rd, 2025 09:34 am
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Солипсизм - это такая маргинальная секта, религия. священной книгой которой является рассказ Федора Кнорре "Соленый пёс".

Кошка Машка

Sep. 22nd, 2025 11:38 am
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Тут моя мама завела себе котенка. Зовут Машка или Муська или Манька.

мяу

Кошечка из выводка. родившегося в соседней деревне.

История почти детективная. Взять эту кошечку мама хотела еще в августе. Но в день отъезда кошка-мама взяла и спрятала своих котят, почуяла что-то. Через три недели мы приехали проводить в саду всякие осенние работы и кошечку таки отловили.

Но, говорят после этого остальных котят кошка куда-то увела и спрятала.

Доменное

Sep. 22nd, 2025 07:24 am
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Продлил домен spacians.net до 2030 года. Благо у сестры, которая постоянно разъезжает по работе по всяким иным странам есть и американская карточка (с американским биллинг-адресом), и американская симкарта. Понадобилось и то и другое.

Про файрволлы

Sep. 19th, 2025 08:46 am
vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Вот задумался над тем что применить на новой vds-ке для управления файрволлом.

Раньше у меня был iptables-persistent, но сколько можно, iptables уже лет пять как deprecated.

В Debian умолчательным способом считается юнит nftables, который просто загружает вручную напсанный конфиг. Есть еще nftables-persistent, который работает так же как iptables-persistent т.е. сохраняет конфигурацию, а потом ее загружает, но средствами nftables.

Есть ufw, который использует bsd-шный синтаксис, а есть firewalld, который имеет крайне развесистую схему конфигурации. Насколько я понял firewalld, это попытка сделать из linux андроид, т.е. передать контроль над ситуацией от пользователя/сисадмина авторам приложений. Впрочем как я почитал ченджлоги systemd 258, идея сделать из линукса андроид потихоньку овладевает массами.

Мне, естественно, концепция firewalld не понравилась. Тем более что в имеющемся наборе конфигов как-то путаница между приложениями и протоколами. Например для imap, imaps, и managesieve - разные конфиги. Хотя сервис один и тот же.

Вот теперь думаю, nftables или nftables-persistent. Первый заставит выучить новый синтаксис (вообще-то давно пора), со вторым можно по-моему договориться, используя синатксис iptables (через iptables-nft).

X-Post to LJ

vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner

Начал понемногу переносить содержимое wagner.pp.ru на новый сервер. Процесс идет медленно, поскольку за время существования сервера у меня там столько барахла скопилось, что прям разгребательство авгиенвых конюшен получается.

Тем более, что я сначала себе заказал виртуалку с Debian 13, а потом стал понемногу туда переносить конфиги и данные с бэкапа виртуалки, работавшей под debian 12, причепм многие из конфигов и скриптов там не редактировались со времен Debian 10, если не 9.

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

В спамассасине auto_whitelist заменили на auto_welcomelist.

Обнаружил, что у меня скрипт для менеджмента почтовых юзеров и паролей в базе sqlite до сих пор написан на втором питоне. Быстренько поправил и довел до 10 баллов в pylint. В принципе там 2to3 бы справился, но мне было проще руками поправить, чем разбираться с использвоанием 2to3 - скрипт там близок к тривиальному.

Вот вебовский вариант смены паролей надо будет переделать. Я все защищенные области в http пересадил на ту же sqlite-вскую базу, которую использует dovecot.

Матрицу решил выкинуть. Равно как и openid-провайдера. Черт те сколько лет никуда по openid не логинился. А матрица оказалась абсолютно бессмысленной в качестве канала посылки сообщений от роботов на смартфон - пока клиент не откроешь, он не видит что что-то приходило. Чтобы видел, нужно к мобильному клиенту какой-то сервис нотификации прикрутить - либо Google Play, либо ntfy, либо jabber. Так уж проще jabber и использовать без нахлобучек в виде матрицы. Благо веб-клиентов к нему теперь море - он через вебсокеты работать научился, и вебклиенты есть даже в дистрибутиве. И dovecot sasl prosody умеет из коробки. В отличие от матрицы с ее стремлением перелезть на oauth. Но, увы, старых конфигов prosody у меня в бэкапах не сохранилось. Отротировались уже. Придется тоже с нуля делать. Посмотрим, научились ли за последние 5 лет jabber-клиенты аудио-видео звонкам. В начале ковида оно работало как-то плохо.

Page generated Sep. 25th, 2025 12:13 am
Powered by Dreamwidth Studios