Self-Perfection

Вот есть ссылка с [использованием tg:// протокола](tg://resolve?domain=Juick_bot) и KDE шная [с baloosearch](baloosearch://?query=tag:health). Обе открываются через xdg-open. С веб страницы с этими ссылками, открытой в Chromium, обе открываются (сначала chromium спрашивает, хочу ли я запустить xdg-open, но это норм).

А вот в Firefox работает только ``tg://``, а на ``baloosearch://`` он ругается:
The address wasn’t understood

Firefox doesn’t know how to open this address, because one of the following protocols (baloosearch) isn’t associated with any program or is not allowed in this context.

You might need to install other software to open this address.


Вот как это вообще дебажить? Где спрашивать помощи?

Self-Perfection

Вот почему мне никто раньше не рассказал про tinc, а? Я б не страдал так с OpenVPN. Как бы теперь попроще реализовать в tinc обращение машин друг к другу по человекочитаемым хостнеймам? avahi? А андроид его подхватит?

Self-Perfection

Как же я задалбываюсь переключать язык проверки орфографии туда-сюда. Почему нельзя выбрать русский и английский для проверки одновременно? Кто-нибудь видел приложения, среды, в которых возможна проверка офографии одного текста сразу для двух языков? Кажется это не так уж сложно.

Вариант оптимизации — выставлять язык проверки офографии исходя из активной раскладки. Бонусом даст возможность понять текущую раскладку не отрывая глаз от текущего поля ввода.

Self-Perfection

Часто утягиваю к себе в записную книжку картинки с вебстраниц таким образом ``<a href="%page_url%"><img src="%image_source_url%"/></a>``. Раньше я использовал для этого аддон Easy Copy в лисе, он позволял получить нужный html код в буфере обмена в 2 клика. Но порт на WebExtensions автор не делал, так что с приходом Firefox 57 он перестал работать, и мне пришлось поставить параллельно Waterfox — форк лисы 56, чтобы продолжить пользоваться аддоном. Открываю во втором браузере страницы, с которых буду утягивать картинки. Но после недавнего обновления ОС Easy Copy почему-то перестал работать в Waterfox, ничего не копируется.

Реквестирую помощь зала, как бы мне в текущих реалиях хотя бы частично автоматизировать нужное мне утягивание картинок?

Self-Perfection

<m.facebook.com> мне сегодня предложил установить приложение Facebook Lite, и я в результате порадовался 2 с лишним раза. Прежде чем вестись на замануху, что что-то там lite, я конечно попробовал найти замеры, сравнивающие с аналогом, в данном случае основным фейсбуковским приложением, и был приятно поражён тем, что такое сравнение с измерениями нашлось! Обычно их просто не существует, вот серьёзно, попробуйте, например, найти сравнение с числами прожорливости Telegram и Whatsapp — их нет. В лучшем случае сравнивают количество трафика, которое расходуется на одну минуту аудиозвонка. В моём воображаемом идеальном мире я легко находил бы замеры производительности различных приложений для одной и той же задачи и опирался бы на эти данные для выбора, каким из них пользоваться.

Ну а во-вторых, Facebook Lite по замерам оказался действительно по всем параметрам легковеснее стандартного. Да ещё содержит в себе мессенджер. Да ещё и есть ссылка на скачивание мимо Google Play. Заинтересовался и всё-таки установил. И, чёрт подери, он работает настолько быстро, что почти не раздражает меня тормозами, а настолько быстрых приложений мало, и я никак не ожидал увидеть приложение от фейсбука среди них. Ведь могут же оптимизировать, когда захотят!

В общем рекомендую очень.

Self-Perfection

Обнаружил странное поведение: если запускать zim из ``yakuake``, то он запускает нестандартной цветовой гамме, то есть цвета отличаются от тех, в которых zim отображается при запуске любым другим способом. Оказалось, что у yakuake несколько отличаются переменные окружения от других программ, запущенных в моём сеансе. Вот эти 2 переменные у других программ отсутствуют:
$ strings proc$(pidof yakuake)/environ | grep RC_FILES | sed "s|$HOME|\$HOME|g"
GTK_RC_FILES=/etc/gtk/gtkrc:$HOME/.gtkrc:$HOME/.config/gtkrc
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:$HOME/.gtkrc-2.0:$HOME/.config/gtkrc-2.0
Ну и собственно ``$HOME/.config/gtkrc-2.0`` и приводит к странным цветам (на диске есть и он, и ``$HOME/.gtkrc-2.0``). Откуда же берутся эти переменные окружения? Эксперименты показали, что они выставляются для программ, запускаемых восстановлением предыдущего сеанса (настройки KDE -> desktop session -> On Login — restore previous session). Уже довольно странное поведение, не так ли? Вот только баг похоже не в том, что при восстановлении сеанса выставляются эти переменные, а в том, что для прочих приложений они не выставляются! В ``$HOME/.config/gtkrc-2.0`` лежат настройки цветовой схемы, которые KDE записывает при включённой опции settings -> colors -> "Apply colors to non-Qt applications". Вообще сурово. Дальше расковыривать этот баг мне расхотелось.

А ещё недавно обнаружил, что KDE корзина игнорирует размер скрытых объектов. Это фигню я перепроверю после обновляшек и расскажу. Вообще смешная.

Что ж всё-так глючит-то, а? :(

Self-Perfection

Во второй раз уже пытаюсь пользоваться NoScript. Приводит меня к этому боль от назойливых предложений вебсайтов на что-нибудь подписаться или лайкнуть и тормоза браузера. Вот только при использовании NoScript боли становится как бы не больше. Вебсайтов, сносно работающих без js исчезающе мало, так что война с всплывающим сменяется занудным вайтлистингом доменов. И этот процесс ещё более трудозатратен, чем закрывание всплывающих окошек: приходится перезагружать страницу. Кто использует — поделитесь опытом. Зачем используете? Какие есть трюки использования NoScript, чтобы он не бесил?

Есть у меня подозрение, что веб всё больше и больше зависим от js, так что использование NoScript теряет смысл. Больше съедает времени, чем экономит. Косвенно гипотеза подтверждается тем, что 7-8 лет назад тег NoScript на жуйке использовало несколько авторов, а с тех пор ни один.

Self-Perfection

Я всё размышляю, что же пошло не так, отчего софт всё тормозит, хотя производительность железа всё растёт. Кажется один из факторов — культурный. В информационном поле почти отсутствует мысль о важности отзывчивости и легковесности. Вот сколько я встречал списков сравнения best N apps for task X — не припомню, чтобы хотя бы в одном из них был замер использованного процессорного времени и памяти на выполнение аналогичных действий, примерно как я делал в #2890539 . Вот в качестве пруфа можно погуглить "image viewers performance comparison" — очень мало ожидаемых результатов, всего ~3 в первой десятке! А для запроса "bittorrent clients performance comparison" в первой десятке только одна релевантная ссылка аж от 2010 год (ну и для справедливости ещё одна работа со сравнением скорости скачивания двух клиентов).

В идеальном мире в сравнительных обзорах были бы сравнения производительности с замерами, что давало бы разработчикам соревновательный стимул к оптимизации. Да, premature optimization — зло, но если ты вообще не прогонял свою программу через профайлер, то ты редиска.

Self-Perfection

Dan Luu жжёт опять. Взял несколько клавиатур и измерил задержку между нажатием на клавишу и отправкой по USB пакета с информацией о нажатии. Получилось от 15 до 60мс, Карл!

И это только в клавиатуре! Мы привыкаем к чудовищной латентности наших компьютеров и не замечаем, как шаг за шагом у нас отнимают скорость. Поразительно, но множеству людей Slack не кажется бесяще тормозным. Как-то надо бы с этим бороться.

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

Self-Perfection

Была у меня уже забавная история как переустановка ОС на ПК привела к значительному ускорению разряда смартфона. А теперь у меня OsmAnd на телефоне заDoSил комп.

Подробности. OsmAnd умеет отправлять HTTP GET запросы с текущими координатами при включённой записи трека, Online Tracking это называется. А у меня давно уже дома крутится принимающий эти запросы наколеночный скрипт, складирующий полученные значения в MariaDB. Обновил на телефоне OsmAnd до 2.7.5 и через некоторое время обнаружил, что он теперь шлёт один и тот же GET запрос тысячи раз. Получив ответ от сервера тут же повторяет запрос до тех пор пока не придёт время отправлять следующие координаты, тогда начинает долбиться запросами с новой точкой. Почему так? Ну мой скрипт корректно отвечал при сохранении координат кодом 201 Created, а OsmAnd считал ответом об успешно завершённой операции только 200. А ответы на дублирующую точку кодом 409 Conflict вообще не похожи на OK, Ну и конечно лучший способ отреагировать на сообщение об ошибке — повторять запрос до победного конца.

Хвала 4G, OsmAnd успевал повторять запросы примерно 25 раз в секунду. Отчего раздел с базой MariaDB переполнялся бинлогами и база вставала.

Ну что, комп vs смартфон — 1:1. Правда в качестве мести не могу это засчитать, смартфон я за это время успел сменить.

Как теперь ещё разработчиков убедить, что им надо пофиксить эту ситуацию до конца.

Self-Perfection

Что за фигня со свзяностью интернета? Из одного дома не открывается сайт сбербанка. Из другого — dreamwidth.org

Как общественно-полезно обрабатывать человеку такие ситуации?

Self-Perfection

Цифровая память — ПостНаука

Мне интересно было наткнуться на это обзорное видео о цифровом наследии человека, здесь есть постановка проблемы (стоит при жизни задуматься, что будет с твоими аккаунтами и данными в случае твоей смерти) и обзор связанных с этим проблем. Я сам задумывался об этой проблеме несколько месяцев назад, но довести до ума/конца идею, естественно, не успел. Подход я планировал примерно такой: фрагменты ключа для дешифрования файла с данными для доступа ко всей нужной информации раздать доверенным людям с наказом вскрыть только в случае моей смерти. + Подготовить инструкцию, что делать и подобрать хотя бы пару айти подкованных людей, кому я доверяю, кого попросить помочь моим родственникам разгрести всё это добро, если что.

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

Внезапно в обзоре упоминаются приложения предназначенные для настройки передачи аккаунтов и личных данных доверенным людям в случае смерти. Мне даже не пришло в голову поискать готовые централизованные решения. Дух современного мира "there is an app for that" мною не усвоен. Чувствую себя старпёром. Отчасти возможно изначальная нацеленность на решение задачи без привлечения сторонних программ основана на том, что я не доверяю сторонним сервисам во временном аспекте, ожидаю, что они довольно скоро прекратят работу и для долговременных задач не подходят.

Ну и об этических аспектах влияния на оставшихся в живых, о которых много говорится в обзоре, я не задумался (не успел?).

Надо всё-таки собраться и цифровое завещание организовать.

Self-Perfection

Надоело мне, что логи journald занимают у меня под гигабайт, а хранят при этом информации за 2 недели. journald туп и не поддерживает сжатие логов. Так что идея была перенести `/var/log` на btrfs со сжатием. Делюсь опытом.

С одной стороны, работает довольно изкоробочно: просто смонтировать btrfs с compress=[lzo|btrfs] достаточно. Хотя journald по-умолчанию помечает `/var/log` как nocow, который не сжимается, но `btrfs filesystem defrag -c` всё же сжимает nocow файлы, и journald проводит дефрагментацию старых (сротированных) логов на btrfs. Ну для надёжности можно ещё сделать `chattr -R +c /var/log/journal`. В целом у меня работает решение, влезает теперь месяц логов на гигабайтный `/var/log`.

Нюанс 1: стоит ограничить размер одного файла логов, чтобы ротация происходила чаще. Я пока живу с `SystemMaxFileSize=16M`.

Нюанс 2: btrfs стоит создавать с ключом `--mixed`, если он будет у вас меньше нескольких гигабайт. И монтировать с опцией `autodefrag` — обновление логов journald ведёт к большой их фрагментации, я видел десятки тысяч фрагментов до включения autodefrag.

Нюанс 3: как посмотреть, работает ли сжатие? Изкоробочных инструментов нет, в интернетах можно нарыть питоновский скрипт btrfs-debugfs. Играясь с ним выяснил, что btrfs сжимает файл блокам по 128 KiB, каждый блок на диске занимает места кратно размеру сектора, так что меньше 4KiB не может занять. Поэтому сжатие получается не такое сильное как при сжатии напрямую lzop или gzip -3.

Ещё на первый взгляд у меня почему-то сжимаются только system файлы, но не user. Пока предполагаю из-за того что пользовательских логов мало, а ротируется system и user лог параллельно, так что system ротируется после двух аллокаций по 8 MiB, а пользовательский — как есть, 8 MiB. Надо бы добраться до исходников journald, посмотреть какая у него внутри логика.