Hatred's Log Place

DON'T PANIC!

Feb 16, 2020 - 1 minute read - Linux

Thunderbird LDAP Auto-complete

Небольшой хинт по настройке автодополнения адресов из адресной книги LDAP в Thunderbird:

Если коротко, в расширенных настройках создать строковое свойство:

ldap_2.servers.[ADDRESSBOOK].autoComplete.filterTemplate

Где [ADDRESSBOOK] - индивидуально для каждой книги.

со значением примерно такого вида:

(|(mozillaNickname=%v*)(cn=%v*)(sn=%v*)(mail=%v*)(displayName=%v*))

Проблема:

  1. Этот фильтр не работает в адресной книге
  2. Фильтр вообще не работает в диалоге приглашения в Календаре
  3. Если что-то начинается со *, то нужно вводить как \*

Jan 18, 2020 - 1 minute read - programming

Meson Cross Compiling

Кросс-компиляция в Meson достаточно проста. Выполняется, как и в CMake при помощи вспомогательного файла:

[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'aarch64'
endian = 'little'

[binaries]
c = 'aarch64-linux-gnu-gcc'
cpp = 'aarch64-linux-gnu-g++'
#ld = 'gold'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
pkgconfig = 'pkg-config'
#exe_wrapper = 'wine' # A command used to run generated executables.

[properties]
c_args = ['-DCROSS=1', '-DSOMETHING=3']
c_link_args = ['-some_link_arg']
sys_root = '/some/path'

Сохраняем его под именем cross-build.ini и передаём meson:

mkdir build
cd build
meson --cross-file ../cross-build.ini ..

Стоит отметить, что meson ОЧЕНЬ чувствителен к значениям переменных типа CC ,CXX и LD. Он рассчитывает, что если они установлены, то они отсылают к компилятору, который генерирует код для билд-машины, иными словами - нативный код. Это актуально для среды LTIB, которая настраивает окружение таким образом, что эти переменные окружения ссылаются на кросс-компилятор. Для случая autotools и большинства случаев использования CMake - это нормально. А вот Meson может сломаться.

Ещё одной особенностью является задание линкёра - ld = xxx. Он не задаёт конкретный бинарник, а отсылает к типу: gold (бинарник ld.gold или аналогичный), bsf (ld.bsf или аналогичный). Я задал его некорректно изначально, и только запуск Meson под strace позволил выяснить причину его недовольства.

Jan 16, 2020 - 3 minute read - Linux

Firefox 72: убираем прокрутку большого количества вкладок

Небольшое введение.

Есть два поведения для большого количества вкладок:

  • Путь Google Chrome и производных: максимально сжимаем вкладки (правда потом они не отображаются и приходится неочевидным способом прокручивать колесиком мыши или горячими клавишами): image-20200116121003432

  • Путь Firefox: заполнять вкладками всё пространство, как будет занято, начинать их сжимать, если размер достигнут какого-то минимального значения, включать полосу прокрутки плюс добавляется выпадающий список: image-20200116121911753

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

Jan 10, 2020 - 4 minute read -

Let's Encrypt for GitLab Pages

Буквально сегодня состоялся разговор по поводу того, что на GitLab Pages нет возможности автоматически обновлять сертификаты Let’s Encrypt (которые протухают каждые 90 дней) и что данная возможность есть на GitHub Pages.

Кроме того, сегодня как раз подошла череда обновления сертификата, заодно что-то меня потянуло поглядеть статью в документации GitLab по настройке интеграции с Let’s Encrypt: Let’s Encrypt for GitLab Pages

И что же я там вижу:

Let’s Encrypt for GitLab Pages (manual process, deprecated)

Warning: This method is still valid but was deprecated in favor of the Let’s Encrypt integration introduced in GitLab 12.1.

Воу! С радостным предчувствием иду по указанной ссылке и таки да, они завезли автообновление сертификатов!

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

Jan 4, 2020 - 1 minute read - programming

ABI Laboratory

Очень полезный ресурс от Андрея Пономаренко ( тыц, тыц) как для разработчиков библиотек, так и для маинтейнеров разного рода софта. Позволяет мониторить изменения в API/ABI интерфейсах библиотек:

Вообще функционал ресурса достаточно богат и интересен:

  • можно помониторить список C/C++ библитек на предмет изменений в API/ABI (инструмент ABI Tracker)
  • можно поискать неизвестный символ (в т.ч. в “mangled” виде) при помощи инструмента ABI Navigator
  • для разработчиков модулей ядра Linux может показаться интересным инструмент Linux ABI
  • ну и схожий инструмент для Windows API

Все доступные инструменты можно глянуть на странице Reports.

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

Jan 4, 2020 - 1 minute read - linux

Внезапный Homebrew

С удивлением для себя обнаружил, что Homebrew, который использовал несколько раз для установки пакетов и сборки/портирования софта на macOS, вполне себе может использоваться и на Linux и даже в среде WSL на Windows:

В целом неплохо, но:

  1. это ещё один шаг к dependency hell
  2. нет возможности (если есть - поправьте) зафиксировать версию/срез репозитория

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

Ну и для Windows я бы предпочёл окружение MSYS2 с pacman в качестве пакетного менеджера.

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

Jan 3, 2020 - 4 minute read - blog

Hugo: редактирование страницы из браузера

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

Jan 3, 2020 - 1 minute read -

Markdown Converters

Пара Markdown конвертеров из простого текста и HTML (исходного текста):

  • https://euangoddard.github.io/clipboard2markdown/ - по сути разбивает по параграфам и больше ничего не делает. Но, зачастую, этого достаточно.
  • http://domchristie.github.io/turndown/ - уже из исходного текста. Может показаться удобным, для статей изначально оформленных в HTML (некоторые блогодвижки). Или открыть исходный код страницы, и скопировать нужный текст.

Оба конвертера JS-онли, могут работать непосредственно из браузеров, исходники прилагаются:

Jan 2, 2020 - 1 minute read - electronic

Digi-Key KiCAD Library

Digi-Key предоставляет символы и корпуса для компонентов, которыми они торгуют в формате понятному для KiCAD. И выкладывают их на GitHub. Кроме того, есть символы и от некоторых партнёров (репозитории разделены).

Помимо этого они же опубликовали учебный курс по работе с KiCAD на YouTube.

Все подробности по ссылке ниже:

Dec 6, 2019 - 1 minute read -

Cross Posting Test

Проверка кросс-постинга.

Nov 13, 2019 - 1 minute read -

Генератор таблиц для Markdown

Пост - мемориз.

Не всегда рисовать таблицы в Markdown разметке удобно, особенно добавлять/удалять колонки (со строками всё намного проще). Да и просто следить за соответствием вводимых данных конкретной колонке. И вот совершенно случайно набрёл на ресурс: Tables Generator

А конкретно: Markdown Tables Generator

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

Для редактирования можно скопировать таблицу и импортировать её через “File → Paste table data…”, естественно при условии корректности данных. Кроме того, можно данные для таблицы импортировать из CSV (“File → Import CSV File…”), как работает эта функция я не проверял, скорее всего могут возникнуть проблемы с пробелами или разделителями.

Что ещё? Вообще там можно создавать таблицы не только в разметке Markdown, а в:

  • LaTeX
  • HTML
  • Text
  • MediaWiki (вот где абсолютный треш!)

Схожие ресурсы:

Nov 13, 2019 - 4 minute read - туризм

ГГЦ карты для QMapShack в виде TMS (Tile Map Service)

QMapShack умеет работать с сетевыми картами, которые представлены в виде тайлов с определённым соглашением о вызове. Что бы работать с подобными сервисами нужно создать файл-описание с расширением .tms. Описание формата можно почитать здесь.

До недавнего времени я обходился в основном картами OpenCycleMap, TMS файл для которых идёт вместе с QMS. А для нужных районов уже искал/скачивал листы карт ГГЦ (в народе: “новый” генштаб) и делал им обвязку в виде .vrt файла (такие карты содержать описание нужных преобразований, не затрагивая самих исходников карты, тем самым можно делать “обрезку карт” и они понимаются всем, что использует GDAL).

Но это дело малость меня достало и захотелось быстро под рукой иметь и ГГЦ карты. Естественно, при условии наличия доступа к сети и доступности сервисов.