Прикуриватель для роутера или Готовь сани летом

2023-08-29

Как показала прошлая зима, основным “узким местом” или “бутылочным горлышком” при блэкауте является наличие интернета.

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

Интернет по оптике (с GPON-терминалом) позволяет решить вопрос, но нужен источник питания для терминала и роутера. Мой роутер “кушает” 12 Вольт и от стандартного пятивольтового пауэрбанка его не запитаешь. Вместе с оптикой, мы купили родной тенетовский mini-UPS (заявлено 29.6w), которого хватает примерно на пять часов работы — и дальше нужна сеть, чтобы его зарядить. Это приводит к тому, что когда нужно работать онлайн, поневоле превращаешься в скупого рыцаря, экономящего энергию, чтобы хватило для работы. Обычного ИБП в таких условиях хватило на полтора часа.

Зимой я подобрал еще один 12-вольтовый UPS. На самом деле — корпус-футляр на шесть аккумуляторов-“бочек” 18650 и схема внутри, которая выдает 12В на выходе. Это дало еще пять часов работы и возможность маневра. Схема из двух UPS позволяет чередовать их, дозаряжая где-нибудь еще, если будет совсем плохо (например, в соседнем доме, где другой график отключений). Ну, и в совсем плохом случае, можно вытряхнуть разряженные “бочки” и поменять их на заряженные — что даст возможность проработать еще пять часов на одном наборе “бочек”.

Тем не менее проблема остается. Все остальное не так остро — фонарики, телефоны и ноутбуки гораздо более всеядны, экономичны и их вполне можно заряжать даже от солнечной батареи, если есть такая возможность.

Этим летом, когда цены упали, я добавил к арсеналу Jackery 240, который в теории позволит запитать роутер и вообще не думать об экономии. Но есть нюанс — если подключаться через встроенную в Jackery розетку, это приведет к потерям энергии. Схема получится такая:


постоянные аккумуляторы (те же 18650) jackery ->

инвертор, превращающий постоянный ток jackery в переменный 220 (DC/AC) ->

розетка переменного тока ->

вилка ->

блок питания mini-UPS (превращающий 220 в 12В постоянный ток для mini-UPS (AC/DC)) ->

сам mini-UPS (поскольку напрямую к роутеру не подключишься) ->

DC-кабель с постоянным током ->

роутер + GPON-терминал


В этой схеме слишком много преобразований туда-сюда (переменный-постоянный ток, DC/AC, AC/DC) и каждое такое преобразование не происходит даром, а приводит к потере энегии. Например для инвертера, превращающего постоянный ток в переменный оценка потерь гуляет от 10% до 30% потерь. Если очень грубо прикидывать (я пока не замерял и не проводил тестов), то вместо 20 часов работы получится от 18 до 13 часов, а для 40 часов — от 36 до 27 часов. А еще есть блок питания UPS и еще какие-то проценты пропадут на промежуточном mini-UPS. Глупо терять до трети энергии просто чтобы перегнать постоянный ток в переменный, а потом обратно в постоянный — просто потому, что нет более удобного интерфейса.

Нет ли возможности выкинуть из этой цепочки все паразитные звенья и подключиться напрямую к роутеру?

Поскольку система рассчитана на автопутешественников в том числе (во всяком случае мне сложно представить себе пеших туристов, таскающих этот сундук в рюкзаке), то Jackery может сам заряжаться от прикуривателя и у него есть “имитатор гнезда прикуривателя” рассчитанный на пылесосы и чайники для автомобилистов. И это гнездо дает постоянный ток… 12 Вольт / 10 Ампер. То, что нужно!

Можно было собрать схему самому. Там даже не схема — просто штекер прикуривателя на два контакта с одной стороны и DC штекер “папа” на 5.5 х 2.1 mm тоже на два контакта с другой. Проще некоторых электровилок. Но оказалось, что на Али есть готовые сборки — даже с кнопками включения-выключения и предохранителями. Моя стоила 3 доллара и вполне справилась с возложенной на нее задачей.

В общем теперь схема проста:


гнездо прикуривателя jackery ->

роутер + терминал.


Никаких инверторов, никакого AC/DC, минимум паразитов. Как себя покажет — поживем-увидим. Это все, конечно, не предел экономии — есть еще идеи, но тут просто получилось достичь серьезного упрощения совсем малыми вложениями. И это здорово напоминает схему фонаря, ласково названного ильичевцами “чайнагоном” — но это уже другая история :)


Исправление имен — 2

2023-08-19

Предыдущий пост я закончил на том, что система “подчеркивание для категорий, остальное — как есть” вполне справляется с моими нуждами. Вопрос был в том, как заставить систему показывать папки с подчеркиваниями на первом месте. Уже много лет моя рабочая система это Debian на котором в качестве GUI оболочки установлен “прельстиво и любовно” настроенный Openbox. В качестве файлового менеджера я использую Thunar. И вот он категорически не желал сортировать файлы так чтобы подчеркивание было на первом месте.

Поиск по сети выяснил, что проблема не только у меня [1] — и что большая часть файловых менеджеров (в том числе консольные) берет настройки из локали — настроек локализации системы. Когда устанавливается операционная система один из параметров, которые она спрашивает — это регион, формат даты, валюта и т.д. И один из параметров — это тип сортировки. Все это легко посмотреть через locale в консоли:

В моем случае имело место быть такое:

vik@deku:~$ locale

LANG=ru_UA.UTF-8
LANGUAGE=
LC_CTYPE="ru_UA.UTF-8"
LC_NUMERIC=ru_UA.UTF-8
LC_TIME=ru_UA.UTF-8
LC_COLLATE=ru_UA.UTF-8
LC_MONETARY=ru_UA.UTF-8
LC_MESSAGES="ru_UA.UTF-8"
LC_PAPER=ru_UA.UTF-8
LC_NAME=ru_UA.UTF-8
LC_ADDRESS=ru_UA.UTF-8
LC_TELEPHONE=ru_UA.UTF-8
LC_MEASUREMENT=ru_UA.UTF-8
LC_IDENTIFICATION=ru_UA.UTF-8
LC_ALL=

из всего этого богатства за сортировку отвечает настройка:

LC_COLLATE=ru_UA.UTF-8

и у ru_UA.UTF-8 она воистину богата и изобильна сюрпризами. Я успел поэкспериментировать со скриптами типа тех, что описаны тут [2]. В общем — нужно поменять

LC_COLLATE=ru_UA.UTF-8

на

LC_COLLATE=C

для чего можно пойти по нескольким путям.

  1. Добавить это в настройки “локализатора”. То есть зайти под рутом и отредактировать либо файл
/etc/locale.conf

Либо файл

/etc/default/locale

NB: если вы начинающий — не поленитесь перед редактированием забэкапить настройки.

В файле все прямолинейно. Например, у меня:

/etc/default/locale

лежит:

LANG=ru_UA.UTF-8
LC_COLLATE=C
LC_ADDRESS=ru_UA.UTF-8
LC_IDENTIFICATION=ru_UA.UTF-8
LC_MEASUREMENT=ru_UA.UTF-8
LC_MONETARY=ru_UA.UTF-8
LC_NAME=ru_UA.UTF-8
LC_NUMERIC=ru_UA.UTF-8
LC_PAPER=ru_UA.UTF-8
LC_TELEPHONE=ru_UA.UTF-8
LC_TIME=ru_UA.UTF-8
  1. Запустить из-под рута или через sudo команду:
update-locale LC_COLLATE=C

Которая сделает все то же, что и в 1 пункте, но самостоятельно — в смысле отредактирует те же файлы без участия пользователя.

Оба способа рабочие, но не устраивали меня, поскольку при переустановке я снесу систему — и /etc/ пропадет. Так что я остановился на следующем варианте:

  1. Добавить куда-нибудь команду
export LC_COLLATE="C"

Это может быть autostart.sh для openbox или какой-нибудь из файлов ~/.profile ~/.bashrc и т.д.

Оно сохранится вместе с домашней папкой и не пропадет даже при переустановках и при миграции на другие системы (конфиги из домашней папки у меня лежат под гитом).

  1. Есть и другие варианты — в частности в домашней папке можно организовать что-то вроде локального файла локали.
~/.config/locale...

Или использовать (внезапно) поделие Ленарта Потеринга под названием localectl:

vik@deku:~$ localectl 
   System Locale: LANG=ru_UA.UTF-8
       VC Keymap: us
      X11 Layout: us,ru
     X11 Variant: ,

В общем вариантов еще много :)

И “когда верстался номер” я обнаружил страничку с похожими советами — см [3].

[1] https://askubuntu.com/questions/239371/how-do-i-list-folders-with-underscores-first

[2] https://coderonline.de/scratchpad/understanding-the-sort-order-lc_collate/

[3] https://gee12.space/sortirovka-s-uchetom-simvolov-underscore-i-dr-v-ubuntu/


Исправление имен. Часть первая

2023-08-15

Если имена неправильны, то слова не имеют под собой оснований. Если слова не имеют под собой оснований, то дела не могут осуществляться

– Лунь Юй

Файловая система все равно остается основой хранения — особенно после пришествия Syncthing, которая позволяет держать одинаковое дерево папок и файлов на совсем разных сущностях (десктоп-ноутбук-телефон-планшет).

Раскладывая файлы по папкам постепенно пришел к пониманию, что папка называется либо по категории (~/book/fizo/йога), либо по автору (~/book/fizo/Гилмор Гарт и Лидьярд Артур/), либо по категории и автору внутри нее (~/book/fizo/10_бег/Гилмор Гарт и Лидьярд Артур/).

Когда-то у кого-то подсмотрел лайфхак с нумерацией папок BASIC-стайл (10_бег, 20_плавание и т.д.). В старом бейсике строки кода нумеровались с интервалом в 10 (10, 20, 30…), чтобы можно было между ними при необходимости воткнуть новые строки. Поэтому я для себя эту систему так и назвал. С одной стороны такая система именования папок выглядела рабочей — удобно, есть возможность задавать приоритетность папок и т.д. и т.п. С другой по мере увеличения числа папок все почему-то переставало работать и начинало захламляться.

Похоже, в моем случае вопрос упирается в то, насколько удобно искать в такой системе нужное. Если папки расположены по алфавиту — мозг использует стратегию, похожую на алгоритм бинарного поиска. “Гилмор — значит ближе к началу, Толкачев — ближе к концу” и остальное происходит автоматом — даже если список папок занимает несколько экранов (что редко, но бывает). Мы все умеем эффективно искать “по словарю”, используя алфавитный порядок.

BASIC-система ломает этот порядок. В теории она должна была бы работать, как система, выносящая наверх наиболее часто используемые папки и делающая их привычными для поиска (про бег? ага… ~/book/fizo/10_бег).

На практике получается, что там где я часто ищу нужное, основные часто используемые категории я более или менее помню (и перехожу сразу по ним), но как только появляется необходимость поискать в не очень часто используемой папке (а значит я не помню номерные категории в ней наизусть), то приходится каждый раз просматривать сначала номерные категории в ней (10_спринт, 20_травмы, 30_аэробные_системы…), а потом уже искать по алфавиту. Таким образом в малознакомых местах иерархии номерные категории ломают естественный порядок поиска и мешают. И чем их больше — тем больше они мешают.

Еще один интересный эффект, который я заметил — мозг ломается на гибридной алфавитно-цифровой системе. То есть требуется некоторое усилие, чтобы перейти от просмотра папок названных в стиле “номер_категория” к папкам названным “категория”. Кроме того, сами по себе алфавитно-цифровые категории распознаются мозгом с большим усилием, чем чисто алфавитные или чисто цифровые.

Если “номерных категорий” (будем называть их так) немного — скажем семь плюс-минус две, то система должна работать достаточно эффективно. Как только их становится много и они начинают попадаться в разных местах — система сбоит и мешает.

Еще один негативный эффект “номерных категорий” — усложнение добавления новых категорий и пересортировки старых. Добавляя новую категорию каждый раз приходится отвечать для себя сразу на несколько вопросов. Присвоить приоритет или оставить как есть (33_python или просто python?). Нет ли уже такой категории — python? 22_python44_python… — снова приходится пересматривать все, что лежит по номерам. Если дубликата нет и категория нумерная — на какое место поставить ее в номерном списке? А еще нужно бороться с “эффектом новизны” — все свежепришедшие категории кажутся важными и требуют номера, причем максимально приоритетного.

Пересортировка тоже не сулит ничего хорошего. Если вести все по системе BASIC десятков быстро перестает хватать, кроме того список типа: 10_спринт, 15_марафон, 17_разминка, 20_травмы, 25_растяжения, 30_аэробные_системы начинает выглядеть откровенно уродливо.

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

И это не говоря о том, что при перенумерации начинает “плыть” иерархия — вчера марафон был 15_марафон, сегодня он стал 20_марафон и так далее. Становится сложным привязываться к путям и держать закладки.

Эти неудобства постепенно накапливаются до какой-то точки, после чего система начинает стремительно захламляться. Все новые категории попадают в разряд “новые — значит важные”. Значит нужен номер. Значит нужен номер повыше. И т.д. и т.п. Просматривать это все становится тяжело. Требуются трехзначные номера. Хаос нарастает, читабельность и удобство пользования снижается.

Очевидно стоит отказаться от номерных категорий по возможности совсем или максимально ограничить их использование. Если таких категорий в каждой папке может быть от 5 до 9 — значит не нужно двузначных номеров. Можно обойтись одной цифрой (1_бег) — просто, читабельно и самоограничивает разрастание номерных категорий. Но даже этого лучше не делать, чтобы не создавать самому себе подсознательный ажиотаж.

Отдельный случай — папки, которые хранят архивные данные (фотографии, файлы за какой-то семестр вуза…) — они нумеруются в лексикографическом порядке, поскольку так удобнее искать по дате (2023/2023-08/ — фотографии августа 2023-го года или, скажем вуз/2023-1/ и вуз/2023-2/ — первый и второй семестры 2023-го года). Эта система себя очень хорошо зарекомендовала, мозг не ломает чисто цифровая датировка, нет вопроса расстановки приоритетов и так далее.

Мысль пошла дальше. Мне нравится сортировка методом деления хаоса — поэтому раньше каждая папка системы хранения выглядела как набор папок в котором сначала шли номерные категории, потом остальные папки, потом россыпью файлы, требующие сортировки и распределения по категориям. Перечитывая Архангельского, я в какой-то момент сообразил, что весь хаос внутри каждой из категорий не обязательно держать россыпью. Можно создать отдельную папку, назвать ее 0_место_хаоса и сложить туда все, что требует просмотра, оценки, классификации и распределения. После чего время от времени просматривать ее на предмет свежих идей и расчистки от неактуальной информации.

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

  • Атлетика
  • Бег
  • Бирюков
  • Васильев
  • Велосипед
  • Вишневский
  • Восстановление

Но не обязательно нумеровать категории подряд — можно задать им какой-то один номер всем — и они разделятся с авторскими папками автоматически

  • 0_место_хаоса
  • 1_Атлетика
  • 1_Бег
  • 1_Велосипед
  • 1_Восстановление
  • Бирюков
  • Васильев
  • Вишневский

И даже номер задавать не обязательно — можно просто ставить какой-нибудь спецсимвол — вполне сойдет подчеркивание.

  • 0_место_хаоса
  • _Атлетика
  • _Бег
  • _Велосипед
  • _Восстановление
  • Бирюков
  • Васильев
  • Вишневский

И вот тут я уперся в технический момент. На телефоне Ghost commander понимал такую систему сортировки, а вот на десктопных linux-ах Thunar и прочие файловые менеджеры отказывались понимать подчеркивание, как отдельный элемент сортировки. Получалось что-то вроде:

  • _Атлетика
  • _Бег
  • Бирюков
  • Васильев
  • _Велосипед
  • Вишневский
  • _Восстановление

Я это заборол. И тут начинается техническая часть, которая (предположу) будет интересна только линуксоидам :)


“Словами”я же говорил…“”

2023-03-15

Докер закрывает аккаунты Open Source организаций:

https://blog.alexellis.io/docker-is-deleting-open-source-images/ Docker is deleting Open Source organisations — what you need to know

https://news.ycombinator.com/item?id=35166317 Docker is deleting Open Source organisations — what you need to know | Hacker News

То, что они пойдут по пути гугла — “подсадим всех на сервис, потом резко коммерциализируем его и соберем сливки, пока пользователи будут изобретать альтернативу” — стало более или менее понятно еще пару лет назад. С тех пор любая технология, предлагавшая “вы можете поставить наше приложение через docker” и не предлагавшая вменяемых альтернатив, шла лесом. Глядя на текущие метания коммьюнити, понимаю, что выбор был правильным.

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


Про эффективность ChatGPT

2023-03-08

Если вы работали с веб-сервером Apache2, то могли заметить, что часть переменных конфигов вынесена в отдельный файл.

Вот файл:

/etc/apache2/apache2.conf

А вот настройки внутри него:

...

#
# The directory where shm and other runtime files will be stored.
#

DefaultRuntimeDir ${APACHE_RUN_DIR}

...

У меня сегодня возник вопрос — откуда берется это самое ${APACHE_RUN_DIR}?

Понятное дело, что отсюда:

/etc/apache2/envvars

То есть есть отдельный файл, где эти переменные прописываются через экспорт в bash-переменные среды (назовем их так):

export APACHE_RUN_DIR=/var/run/apache2$SUFFIX

В комментариях внутри файла это даже объясняют:

# Since there is no sane way to get the parsed apache2 config in scripts,
# some settings are defined via environment variables and then used in
# apache2ctl, /etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
...

Однако, последняя страница детектива была написана по-арабски — поэтому я начал выяснять с чего бы это понадобились переменные среды? И почему нет “sane way”, чтобы получить их “в скриптах” (и что за скрипты?).

Я вспомнил, что есть такая штука, как OpenGPT Chat — и мне стало интересно, как это сработает на нем.


Q: что значит Since there is no sane way to get the parsed apache2 config in scripts

A: Это фраза на английском языке, которая означает: “Поскольку нет разумного способа получить обработанный (анализированный) конфигурационный файл apache2 в сценариях”.

Эта фраза может быть частью более длинного контекста, связанного с использованием сервера веб-приложений Apache. В целом, это высказывание говорит о том, что нет простого способа получить доступ к обработанному (или разобранному) конфигурационному файлу Apache в рамках скрипта (например, на языке программирования, таком как Python или Bash).

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


Q: Почему нет простого способа?

A: Ответ на этот вопрос связан с тем, как работает сервер веб-приложений Apache и какие инструменты доступны для работы с его конфигурационным файлом.

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

Некоторые инструменты, такие как утилиты командной строки, могут помочь в обработке конфигурационного файла Apache2, но нет простого и удобного способа получить доступ к обработанному файлу в рамках скрипта на языке программирования. Это связано с тем, что внутренняя структура конфигурационного файла может быть сложной, и нет готовых библиотек или API для работы с этой структурой из скрипта.

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


Вода-вода. С арабского перевели на канцелярский, а потом на аймара. Там было еще некоторое количество бесплодных расспросов, на которые OpenGPT выдвал много разной воды в стиле реферата студента-первокурсника, но интересующий меня вопрос не прояснился.

В конце концов, стало понятно, что ChatGPT тут не помощник и пришлось искать решение самому.

Я вспомнил, что если мы говорим про такую технологию, как CGI, то любой скрипт (или вообще исполняемый файл), который запускается веб-сервером, запускается в своей собственной среде. Поскольку это потенциальная брешь для атаки, то такие скрипты стараются максимально изолировать от операционной системы. Такой скрипт даже не знает из какой папки на диске он был запущен. Соответственно, приходящую информацию (содержимое POST, PUT, GET и т.д. и т.п.) передают в виде переменных среды. В частности в переменной QUERY_STRING.

Есть еще куча переменных, которые описаны, например, тут:

https://docstore.mik.ua/orelly/linux/cgi/ch03_02.htm

Поскольку большинство языков программирования умеют читать эти переменные среды (и имеют к ним доступ) — это позволяет создать что-то вроде единого API. Для того, чтобы генерировать динамический сайт годится программа, написанная на любом языке, которая способна прочитать переменные среды и напечатать в ответ html-текст.

Получается, что апач, экспортируя свои значимые параметры в переменные среды тоже использует этот интерфейс. Любая программа, запущенная через CGI будет знать, где искать APACHE_RUN_DIR, например. Где лежат конфиги, какая версия апача и т.д. и т.п. Вот зачем нужно экспортировать это все в переменные среды.

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

Рассказал мне это все OpenGPT? В ответ на вопрос он насыпал мне кусков документации, которые щедро склеены канцеляритом, но никаких намеков на то, куда копать, он не дал.

Я еще немного поэкспериментировал с разными областями и темами, но сдался после такого:


Q: когда при фосфорилировании может выделяться тепло?

A: При фосфорилировании может выделяться тепло в тех случаях, когда энергия, полученная при реакциях синтеза АТФ, не расходуется полностью на выполнение клеточных процессов и не утилизируется в виде тепла. …


GPT отменил закон сохранения энергии — тепло выделяется тогда, когда энергия при реакции не расходуется на клеточные процессы и не утилизируется в виде тепла.

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

То, что он проходит тест Тьюринга и сдает эказмены, по моему скромному мнению говорит не столько о самой системе, сколько о том, как плохо у нас стало с общением и с экзаменами. Если система научных рецензентов пропустила текст “Корчеватель” (погуглите — очень поучительная история) — она переварит любую бессмыслицу.

Мне кажется, что бить тревогу по этому поводу бессмысленно.

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

Происходит примерно тоже, что и с копипастой в интернете. Напомню:

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

https://tengu-crow.livejournal.com/811447.html

Сейчас та же история повторяется, но уже под другим углом. У нас появились генераторы бессмысленной, корявой, но внешне убедительной копипасты. То, что их превозносят “научные журналисты” и “популяризаторы науки”, говорит только о том, что у этих поп-журов все плохо с образованием и они, как и чиновники, судят тексты только по внешним признакам, не вникая в содержательную часть, а тем более в смысл текста.

Думаю, что дальше по оси времени сложится ситуация, чем-то схожая с использованием GPS — но это тема отдельного разговора.


кухонные мелочи

2023-02-12

В наше продвинутое время кухонные раковины комплектуют страшно неудобными штуками — называется оно «накладка на сифон» или «сетка (клапан) сифона» и предсталяет собой недопробку, недорешетку. Как всякое гибридное решение эта штука неудобна во всех отношениях. Во-первых, задерживает только крупный мусор и плохо очищается — в идеале, чтобы хорошо отмыть нужно ее развинтить и разобрать. Во-вторых, посуда часто нажимает на клапан, он срабатывает и перекрывает сток — что как минимум неприятно, как максимум чревато. Со временем механизм разбалтывается и клапан начинает срабатывать сам по себе. Мелочь, но раздражает, каждый раз, когда моешь посуду.

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


open source media на андроиде

2023-02-11

p.s. к посту про AntennaPod

Хотел написать, что в принципе все медийные нужды на андроидном телефоне перекрывает три-четыре open source приложения, но начал считать и их получилось чуть больше.

  • Основные
  1. VLC[1] для всего — я в основом использую его, как плейер для кино и музыки, но в его функционал входят и подкасты и все прочее. Понимает все кодеки, понимает обложки к аудио, запоминает историю, можно играть радиостанции, если скомпоновать плейлист, понимает субтитры, имеет (в отличие от десктопной версии) легкий и продуманный интерфейс.
  2. Voice[2] — удобная программа для аудиокниг (и диктофона). Sleepy timer, умение помнить где на каком месте в каждой из книг я остановился, возможность выбрать распознавание папки с файлами, как одной книги с главами, или как набора отдельных книг и т.д. и т.п.

Это основные программы.

Есть еще нишевые программы — тоже очень удобные.

  • Сетевые сервисы
  1. AntennaPod[3] помянутый в предыдущем посте.
  2. Легкий и удобный NewPipe[4] для тытруба и других аудио- и видеосетевых сервисов. Можно смотреть из сети, можно закачивать аудио/видео и смотреть из оффлайна. Очень легко можно создавать свои плейлисты с закладками (посмотреть папизже) и формировать свои подписки rss-style, которые показывают одним или несколькими потоками обновления на выбранных каналах.

Никакой рекламы, возможность поставить другую страну обитания (очень интересно, скажем, смотреть то, что смотрят в Нигерии или Лаосе, например). И все настройки можно сохранять, а список каналов — экспортировать в OPML. В общем родное приложение Тытруба даже рядом не ночевало.

Тытруб, ясное дело, не дремлет и периодически вносит изменения на сайте с целью поломать все неродные приложения. Если кто-то помнит эпическое перетягивание каната между ICQ и не-родными мессенджерами — тут примерно та же история. Поэтому у меня NewPipe установлен не из родного репозитория F-Droid, а из отдельного репозитория, который поддерживает команда[5] — и который достаточно быстро реагирует на выверты Тытруба.

  1. RadioDroid[6] — фактически интерфейс к вики-подобной энциклопедии радиостанций Radio Browser[7]. При обычном использовании забирает список станций у этой вики и позволяет играть их в плейере.

Вики-сайт сделан удобно. Можно пополнять станции самому (от меня там есть пара записей, например). Но можно формировать и подключать свои собственные плейлисты — вплоть до открыть в текстовом редакторе raido.m3u файл и накидать туда ссылок на нужные станции. То есть внешний сайт не обязателен.

Можно экспортировать плейлист со станциями во внешний файл, можно записывать радиопередачи в файл, есть будильник, есть (конечно же!) sleepy timer.

Все легкое, не грузит телефон и на мой взгляд неизмеримо функциональнее, чем tune-in, например. Особенно радует, что информацию ни от кого не прячут и плейлист можно использовать в других плейерах при необходимости (у меня так живет единый набор онлайновых радиостанций, который работает и с телефона и с десктопа).

Если в сети есть доступ к машинам с запущенным на них mpd (music player daemon)[8] то можно вещать звук и на них.

  • Управление mpd
  1. Говоря про mpd [8]. Тут нужно некоторое объяснение. MPD — это демон (програма, запускаемая в фоновом режиме) для линуксов и прочих POSIX-совместимых систем, который висит в памяти и — как следует из названия — играет музыку.

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

К нему написано много разных фронтэндов [9] — от коммандлайнового mpc, curse-подобных ncmpc и ncmpcpp до продвинутых графических типа cantata. Есть внешние клиенты в том числе для телефонов. Наиболее удобным для меня оказался M.A.L.P.[10] — по сути дистанционный пульт управления, который позволяет удобно управлять с телефона через wifi воспроизведением на mpd который запущен на десктопе (или каком-то другом компе, который используется, как проигрыватель).

Итого — две основные, три сетевые программы и один пульт управления. Все open source, все с очень высокой (как на мой вкус) юзабельностью и гибкостью использования.

[1] https://f-droid.org/ru/packages/org.videolan.vlc/
[2] https://f-droid.org/ru/packages/de.ph1b.audiobook/
[3] https://f-droid.org/ru/packages/de.danoeh.antennapod/
[4] https://github.com/TeamNewPipe/NewPipe
[5] https://newpipe.net/FAQ/tutorials/install-add-fdroid-repo/
[6] https://f-droid.org/packages/net.programmierecke.radiodroid2/
[7] https://www.radio-browser.info/
[8] https://www.musicpd.org/
[9] https://www.musicpd.org/clients/
[10] https://f-droid.org/ru/packages/org.gateshipone.malp/


AntennaPod и странные подкасты

2023-02-10

Люблю open source. Неожиданно для себя выяснил, что AntennaPod[1], которым я слушаю подкасты, может скачивать подкасты не только по rss, как это делает любая подкастокачалка, а просто забирать их из папки с файлами. Ей можно элементарно указать на папку на телефоне и она будет каждый раз сканировать ее на наличие новых файлов и добавлять эти файлы в очередь прослушивания.

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

Есть еще более экзотический случай. Иногда попадаются странные подкасты, которые не отдают rss или делают это криво. Например, служба Радио Куба на эсперанто [2] или выпуски Radio Dreyeckland из Фрайбурга тоже на эсперанто [3], которые появляются только по понедельникам, а потом сносятся с сайта для экономии места — уж не знаю почему у них все так странно устроено.

На десктопе я читаю новости через rss-ридер newsboat и слушаю подкасты через идущий к нему podboat.

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

А теперь, поскольку папка синхронизируется с телефоном через syncthing, а AntennaPod подхватывает из нее новые файлы и делает вид, что это тоже подкасты, я могу слушать такие подкасты в общем потоке не заморачиваясь на какие-то обходные пути.

[1] https://antennapod.org/
[2] https://www.radiohc.cu/eo/podcasts
[3] https://rdl.de/sendung/esperanto-magazino-0


Длиннопост про процесс чтения aka reading workflow

2022-12-24

Случайно наткнулся на страдания Витуса Вагнера, выбирающего новую читалку. Вот что удивляет больше всего — люди вроде работают с линуксом и open source, рассуждают про принципы, но когда дело доходит до практики — напрочь забывают про принцип «одна программа делает одно дело, но делает его хорошо», а вместо этого начинают вожделеть большой комбайн: чтобы сразу читал epub, fb2, pdf, djvu, chm (sic!) имел движок чтения вслух и пр и пр.

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

  1. Чтение: текст и сканы.

Категории форматов fb2/epub (текст с разметкой) и pdf/djvu (набор картинок, иногда снабженный текстовым слоем) — это две радикально разные категории форматов, которые требуют радикально разного юзабилити и радикально разного стиля чтения.

Посему у меня стоит две программы: fb2/epub/txt я читаю в BookReader с F-Droid [1]. Кстати, в списке Витуса оной читалки нет — уж почему он прошел мимо единственной стабильно обновляемой open source читалки — загадка. На больших файлах (больше 5Мб) он не падает, отличает два файла с одинаковым названием, но разным содержимым (несколько вариантов моего Большого текстового файла, отконвертированного через pandoc) и я им вполне доволен.

Из приятного — его база данных — это папка .bookreadersync, где лежат файлы открытые в данный момент в читалке + метаинформация по этим файлам в формате .json — при этом все закладки, цитаты и комментарии к текстам хранятся в этом же json. Это значит, что:

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

Дополнительные приятные штуки: расстановка переносов (после WeaselReader / GutenPalm на палме — это для меня практически маст хев для любой читалки), внятная работа с примечаниями (не такая удобная, как на CoolReader, но есть и достаточно хорошая), внятная работа с иллюстрациями в тексте. Внятная работа с иллюстрациями для меня — возможность выбрать пункт «растянуть все иллюстрации на весь экран».

Формат .chm вообще вызывает у меня некоторое недоумение (если хочется html с содержанием — есть нормальные форматы вроде .epub и вообще зачем тащить это к себе в библиотеку) поэтому я стараюсь его избегать, а если это невозможно — конвертирую в .epub/.fb2 и т.д.

Для pdf/djvu, а часто и для манги/комиксов я использую Document Viewer[2], который удобен тем, что:

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

Я знаю, что первая программа может работать с pdf/djvu, а вторая с epub/fb2, но мне это не нужно поскольку (еще раз) работа с текстовой информацией и с информацией в виде сканированного текста для меня два принципиально разных рабочих процесса. Посему и два отдельных инструмента.

На линуксовом десктопе я редко что-то читаю с экрана — я заметил, что в 90% случаев работа сводится к «открыть книгу, найти цитату, скопировать в буфер» или «открыть книгу и просмотреть по диагонали, чтобы принять решение по дальнейшей ее судьбе». Поэтому там стоит coolreader поставленный из appimage — как хорошо настраиваемый, с нормальной функцией поиска, содержания и копипаста (с чем очень плохо у Fbreader’а) — и его хватает с головой.

Для pdf/djvu на десктопе у меня дефолтный evince. Там есть нюансы, поскольку pdf/djvu в моем случае это не только книги — это большой объем моих сканов бумажных архивов и база данных по статьям и научной работе.

  1. Хранение и каталогизация.

Кроме всего остального я не требую от читалки, чтобы она хранила и сканировала мои книжные папки на наличие там книг. Читалка должна (а) быстро и четко срабатывать на открытие нужной книги, (б) хранить стек читаемых книг с запомненной позицией по каждой из них (т.е. открывать уже читаемую книгу на нужном месте), (в) если читалка может показывать список книг с картинками обложек — вообще хорошо. Все перечисленные книги с этим справляются. Свою библиотеку я упорядочиваю самостоятельно (о, ужас!) вручную и распределяю книги по папкам в файловой системе.

Для работы с десктопа, понятное дело, хватает штатных средств, для работы с телефона отлично подходит Ghost Commander [3] — тоже оупенсорсный, быстрый и удобный.

Есть много софта, который пытается отсканировать содержимое папок, разложить все по тегам, авторам, жанрам и т.д. и т.п. Некоторое время я экспериментировал с разными изводами подобного каталогизаторского софта, но в конце концов пришел к выводу, что он как минимум непрактичен, как максимум — вреден. Из всего доступного набора я использую (и то — очень нечасто) полнотекстовый поисковик Recoll [4] — он всеяден и быстр.

Все остальное возложено на файловую систему, грамотную организацию папок и syncthing как синхронизатор между разными устройствами. У меня есть «место хаоса» — папка, куда сгружаются свежие книги и раз в какой-то период я разгребаю это место, раскладывая все по папкам, выбрасывая мусор и реорганизуя папки. Это обманчиво простая система имеет сразу несколько преимуществ.

Во-первых, я могу хранить разнородные файлы в одном месте. Частая ситуация — по автору или теме есть несколько .fb2 и несколько .djvu файлов, причем .djvu идет практически без прописанной внутри него метаинформации, а следовательно стандартный сканировщик папок обломается уже на этом этапе.

Во-вторых, такая система не зависит от конкретных программ-каталогизаторов. Иначе возникает ситуация «сегодня у нас эверноут/жабреф/зотеро/калибре есть, завтра эверноута/жабрефа/зотеры/калибры нет, к новым системам старые данные не подходят и все нужно начинать заново».

В-третьих, для упорядочивания файлов нужно прикладывать некоторые регулярные усилия — тут никто ничего не делает за вас, но эти усилия окупаются. Если их не предпринимать. то система захламляется при любом каталогизаторе, так что раз все равно их нужно делать — лучше пусть система позволяет это делать с «минимальным трением». Поскольку система папок последовательно упорядочивается — она постепенно приближается к оптимальной. В самом процессе почти сами собой выделяются нужные категории, вырабатываются правильные названия папок. Все вопросы вроде «а если у меня книга попадает сразу в несколько категорий — в какую папку ее сложить?» на самом деле надуманные и вполне решаемые. Посмотрите на любую бумажную библиотеку для примера ;)

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

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

Я очень редко переименовываю сами файлы, поскольку это трудоемкая (и часто бессмысленная) процедура, но строго отношусь к названиям папок. Очень удобно использовать для этого vidir — как на десктопе, так и на телефоне через termux — но это тема отдельного разговора.

  1. Аудио

Относительно движков для чтения — в «Паутине» Лехи Андреева ака Мерси Шелли есть чудесная цитата:

Программа-чтец, которую я поставил еще в 2012-м, обладала неудачной интонацией типа «не могу кончить никак», и я запускал ее только в исключительных случаях.

Которая полностью отражает мое отношение к этим самым движкам.

Поэтому, если мне нужна аудиокнига — я иду на рутрекер, и скачиваю книгу, начитанную нормальным человеческим чтецом (спасибо им большое за то, что они есть), часто со спецэффектами и на хорошем оборудовании и слушаю ее нормальным проигрывателем для аудиокниг[5], который хранит стек из читаемых книг, помнит где я остановился и имеет слипи-таймер, который важен, если книга слушается на сон грядущий.

Книги я тоже храню в файловой системе не заморачиваясь на какие-то каталогизаторы. Дополнительное удобство состоит в том, что в категорию «слушаю на ходу» или «слушаю по ходу» попадает множество других аудиофайлов: диктофонные заметки, подкасты, файлы с телеграма, аудиодорожки с тытруба и т.д. и т.п.

  1. «Ітогі підведем».

Я краткости ради оставил за бортом другие аспекты процесса (например, работу с библиографиями), но думаю в целом идея понятна. Еще одно преимущество в использовании специализированных решений состоит в том, что если какое-то звено выпадает — ему достаточно просто найти замену, новый кирпичик, который заместит старый. А если выпадает «комбайн» приходится перестративать все. Мы это уже видели на примере Evernote и (вставить любое подходящее приложение).

В качестве примера — когда начались блэкауты, то чтобы сэкономить батарейку телефона, я нашел старый плейер (SanDisk Sansa Clip Zip), который прошит специальной прошивкой Rockbox и имеет слот для microSD. Плюс такой же слот есть на моем приемнике (Retekess V115). И там и там есть все те фичи, которые мне нужны (закладки, слипи-таймер и пр и пр). Для синхронизации я использую Unison (лучше подходит для этих целей, чем syncthing) — при этом файловая структура остается ровно той же, процесс сбора и работы с аудиоинформацией остался прежним.

  1. https://f-droid.org/packages/com.github.axet.bookreader/
  2. https://f-droid.org/ru/packages/org.sufficientlysecure.viewer/
  3. https://f-droid.org/ru/packages/com.ghostsq.commander/
  4. https://www.lesbonscomptes.com/recoll/pages/index-recoll.html
  5. https://f-droid.org/ru/packages/de.ph1b.audiobook/

2022-08-07

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


Идеальный Сайт

2021-12-26

Современные системы строятся по принципу «максимум интерфейса — минимум контента».

Объем кода, необходимого для загрузки странички сервиса под доставке суши, больше «Войны и мира» Толстого. Он обладает адаптивным дизайном, хостится в контейнере, который лежит в облаке (которое периодически тоже лежит, поэтому нужен еще сидиэн и статическое кэширование), у него есть бот, отвечающий на запросы («Ваше обращение важно для нас, подождите еще немного и наш сотрудник прочитает ваше письмо у себя в почте»), есть окошко предлагающее подписаться на совершенно бесплатную рассыку про историю и философию сушарни «у Ахмеда».

Полезная информация такого сайта — это телефон доставки (хорошо, если не адрес странички в инстаграме) и каталог заказов который либо лежит как огромная фотка в фейсбуке, либо pdf со сканами бумажного документа, лежащий на гуглодиске и снабженный скупой инструкцией типа «перейдите в папку меню, а в ней в папку дня недели, например Четверг».

Идеальный Сайт использует все современные модные технологии и не содержит контента вообще.


«Дюна» Вильнева

2021-12-05

Смотрю вильневскую Дюну. Очень тяжело, поэтому просматриваю отдельными кусками. Тяжело потому, что Вильев, в погоне за красивой картинкой забывает про сюжет, характеры и прочие мелочи. В итоге все рассыпается. Пропадает дополнительный смысловой слой. Тяжело смотреть, потому, что видно, где все это «пороблено» — при этом картинка да, отличная.

Эпизод когда герцог летит смотреть на то, что происходит со сборщиками пряности — и его сопровождает Кинес. Во-первых, Кинес (Б-г с ней с Повесткой) пришел без фрименского эскорта, во-вторых Кинес начинает поучать герцога — мол летим посмотрим на то, что вас обеспечивает (типа герцог вообще не в курсе, что происходит).

Главный глюк — в оригинале к харвестеру приближается червь, а из-за диверсии харконенов не прилетает эвакуационная машина. Герцог, рискуя собой и своими людьми, сажает орнитоптеры рядом с харвестером и забирает оттуда экипаж.

Что у Вильнева? У Вильнева машина прилетает, но когда она поднимает харвестер, один из якорей ломается и он не может поднять харвестер. Ну и далее герцог рискуя собой, бла-бла-бла, выкидывают лишний груз, берут людей. А грузолет висит, блин, рядом и никому не приходит в голову, что людей вполне можно эвакуировать на нем.

Как было написано в записке, придавленной ледорубом: «Умираю от голода, нечем открыть консервы».

Причем, у Вильнева упущено много красивых и вкусных деталей, которые есть в книге. Например, сами меланжеры покидать харвестер не особо хотели — ибо это деньги и пряность, а грузолет может все-таки прилетит. Кроме того, на харвестере были пассажиры — фримены. От чего Пол афигел — как так, червь, все дела, а фримены спокойно разгуливают по окрестностям. Ну и помимо прочего Кинеса впечатляет, что «Этот герцог больше беспокоился о людях, нежели о Пряности. Он рисковал своей жизнью – и жизнью своего сына! – чтобы спасти людей. Он спокойно принял гибель краулера, а угроза жизни людей привела его в бешенство. Такому вождю можно быть преданным до фанатизма. Победить его нелегко…»

И вот так вот у него все. Картинка красивая. Но смысл потерян от слова «совсем».


ventoy

2021-11-11

До сих пор для меня самая тягостная и замороченная операция при установке-техобслуживании Linux — изготовление загрузочной флэшки. То есть понятно, что и как делать где смотреть диски и пр и пр, но dd работает медленно, не всегда хорошо втыкает образ на флэшку и вообще.

Обнаружил и обкатал на практике проект, который сильно облечает всю эту работу: Ventoy.

https://www.ventoy.net/en/index.html

Общая идея — после установки можно из командной строки или из графического приложения (для Windows есть .exe, для Linux можно скачать и распаковать .tar.gz) указать флэшку.

Эта программа после запуска создает на указанной флэшке два раздела: маленький загрузочный под собственно ventoy и большой в формате exFAT (или другой файловой системы — можно подстраивать в процессе), куда можно сложить .iso образы дисков.

После этого флэшка превращается в мультизагрузочную. На начальной загрузке загружается ventoy, который открывает меню и предлагает выбрать из .iso образов нужный и далее загружает его. Все это прекрасно тем, что (а) ventoy сам по себе стабильно загружается (б) можно носить много .iso образов (например, столько, сколько влезет на мою 32Гб флэшку) (в) эти образы можно обновлять простым копированием на флэшку после выхода новых версий.

Словом, рекомендую.


facebook-grep

2021-11-07

Поиск по фейсбуку работает отвратительнейшим образом. Однако, если (руководствуясь приведенными выше соображениями, схемами и ссылками) скачать к себе на диск бэкап — можно «гуглить внутри» простым поиском по файлам и доставать оттуда все, что требуется найти.

Я держу его в виде zip-файла. Что нужно — можно найти с помощью zipgrep (поскольку он вываливает даже больше информации, чем нужно — можно использовать ключ -l — показать только файлы, где это все нашлось):

vik@deku:~/sync/facebook_backup$ zipgrep -l Генри* facebook-vikboyko.zip 

messages/inbox/**********s5mdituwca/message_2.html
messages/inbox/**********s5mdituwca/message_3.html
messages/inbox/************_s4xdge6dzq/message_3.html
posts/your_posts_1.html
your_interactions_on_facebook/recently_visited.html
comments_and_reactions/comments.html
messages/inbox/****************_odtns3un0a/files/SilaprivychkiCharlzDakhighgh_1334161980017208.txt

А потом, захожу в архив mc — и смотрю его просмотрщиком по F3 — он как раз хорошо устраняет все лишние html-теги и позволяет смотреть чистый текст (предположу, что в FAR-е есть схожая функциональность).

В общем, это позволяет работать с бэкапом (искать цитаты, например, в своих постах восьмилетней давности) даже не распаковывая архив :)


эвристика инфосферы

2021-11-06

До этого момента успел подписаться на довольно много разных телеграм-каналов. Обычно я себя сдерживаю, но все равно набегает «вот это интересное», «и вот это интересное», «и вот еще то вот». А теперь появился отличный повод это все проредить и этот повод — реклама.

По мере того, как в Телеграм-каналах появляется реклама — отписываюсь. Делаю исключение для очень немногих. Появление рекламы — признак, что канал читает слишком много народу, следовательно приходящая оттуда информация имеет околонулевую ценность. А если эту информацию еще и разбавляют рекламой, концентрация полезного и ценного падает еще больше.


мелкие тире в FBreader

2020-07-23

Неприятная особенность — после очередного обновления системы FBreader начал показывать мелкие тире в конце слов — скорее всего то, что должно быть “невидимым переносом”. Я перепробовал массу настроек, задумался о смене читалки, начал раздумывать над тем, что в принципе можно отредактировать бы ~/.config/gtk-3.0/gtk.css так чтобы скрыть это безобразие, но, решил почитать доки и накнулся в них на такой ключ:

-zlui ui-type

          Try to start FBReader with the specified uu type. Supported ui types are gtk (to use Gtk+ library), qt (Qt 3 library) and qt4 (Qt 4 library).

Сиречь запуск с разными библиотеками. Запуск с

fbreader -zlui qt

решил вопрос. Теперь добавлю под него в ~/.bash_aliases алиас:

alias fbreader='fbreader -zlui qt'

либо даже запилю отдельный башскрипт — и буду продолжать им пользоваться.

Но вообще думаю про что-нибудь более продвинутое (fbless, foliate) — забавно, что в наше продвинутое время нормальных читалок под линуксовый десктоп (быстрых и чтобы понимали fb2/epub) раз, два и обчелся.


чай и сиеста

2020-07-02

Я периодически об этом напоминаю. Сейчас особенно актуально.

«Для борьбы с жарой ваш покорный слуга рекомендует опыт лучших собаководов среднеазиатских жителей, а именно — зеленый чай и сиесту. Основная идея сиесты — переждать полдень, когда делами невозможно заниматься совсем вообще, где-нибудь в тени, желательно подремав.

Опыт, практика, да и свидетельства других людей говорят о том, что чай (кофе, любой другой горячий напиток) это хорошо и правильно.

При этом чем горячее чай, тем лучше. Лучше всего для такого питья подходит пиала со слегка отогнутым наружу бортиком — вероятность обжечься с такой посудой минимальна. Горячая жидкость переключает внутренний терморегулятор организма в режим охлаждения — после хорошей чашки чая обычно очень быстро прошибает потом, а жара уже не ощущается как жара. Кофеин, танин и прочие составляющие напитка улучшают кровообращение, расширяют сосуды и придают бодрости. Дополнительная польза в том, что чаем сложно простудиться, кипячение воды профилактирует кишечные инфекции, а сам зеленый чай обладает противомикробным действием и тоже профилактирует болячки теплого климата вроде дизентерии»

подробности см:

https://tengu-crow.dreamwidth.org/1293095.html

https://tengu-crow.livejournal.com/785173.html


Об децентрализацию (а так же ихнюю и всехнюю свободу спича)

2020-07-01

Reddit забанил одно из самых больших сообществ (видел оценку в 800 тысяч) в поддержку Трампа [1] После чего выяснилось, что у сообщества есть отдельный форум с близкой к реддитовской функциональностью — который теперь работает альтернативной площадкой. Заглавный пост который там висит начинается так:

«Китайские комми наконец пришли с факелами в наш старый дом. [сабреддит] The_Donald был забанен на реддите. Как это обычно бывает с Реддитом, они опоздали всего на день и им не хватило всего доллара» [2]

Я из любопытства побродил по форуму. Интересно, что там вполне здравые правила — запрещен расизм, доксинг (выяснение и публикация личных данных), оскорбления, нарушения закона и т.д.

Среди прочих веток мое внимание привлекла ветка, озаглавленная: «Добро пожаловать, новички с реддита! Позвольте мне продемонстрировать одну из лучших фич этого сайта»[3]. И — картинка, с мемом, который (по-видимому) банят на реддите. Первый комментарий к ней: «See? Nothing happens to the post!» — «Видите? С постом ничего не случилось». А дальше — длинный хвост на триста комментариев, где народ резвится, вывешивая разнообразный запрещенный неполиткорректный контент. Праздник непослушания.

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

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

Примечания:

[1]: обсуждение на хакерньюс https://news.ycombinator.com/item?id=23679425

[2]: «The Chicoms have finally brought their torches to our old home. The_Donald has been banned on Reddit. As usual with Reddit, they’re a day late and a dollar short»

[3]: «Welcome new users from Reddit! Allow me to show you one of the best features of this site»


gx in vim broken

2020-05-24

При обновлении Vim выяснилось, что функционал gx, который я использовал раньше отвалился. Это была очень удобная функция — становишься на ссылку — и бум! — открывается браузер. Теперь те, кто поддерживает встроенный netrw плагин решили, что этого больше не нужно — и все.

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

Превратить патч в плагин для Vim оказалось несложно. Пока все грязно и на коленке, но работает :)

https://github.com/tengucrow/interceptor


«Чимборазо и Котопакси, вы похитили сердце мое»

2019-11-06

Кто читал «Пушки крепости Навароне» Маклина? У меня дошли руки до загадочных Чимборазо и Котопакси :)

«WHEN I was but thirteen or so
I went into a golden land,
Chimborazo, Cotopaxi
Took me by the hand»

http://www.ecuador-climbing.info/climb_cotopaxi_climbing_chimborazo_9.htm

https://www.bartleby.com/103/158.html