Архив рубрики: ubuntu

Синхронизация часов в десятом Дебиане

В свежем Debian GNU/Linux (вроде, и в Ubuntu 16.04 LTS четырёхлетней давности аналогично) для синхронизации часов используют не ntp, а timesyncd. Только оно по умолчанию не работает — ни на рабочем компьютере, ни на домашнем ноутбуке.

Начал разбираться — выяснил:

  1. Настройки хранятся в /etc/systemd/timesyncd.conf: там есть адрес основного сервера для синхронизации и список запасных — и оба этих списка закомментированы. Понятно, что надо раскомментировать плюс можно в качестве основного адреса указать тайм-сервер своего провайдера.
  2. VirtualBox препятствует синхронизации — его можно запустить (sudo VBoxService --timesync-set-start — мне не помогло) или совсем проигнорировать, если используется редко, как я и сделал.

После этого останется лишь перезапустить демонов и время наконец-то станет точным.

Разрешаем Имиджмеджику делать PDF

ImageMagick позволяет собирать многостраничный PDF-файл из нескольких растровых картинок, но не всегда — на некоторых компьютерах выдаёт ошибку

convert: not authorized `result.pdf' @ error/constitute.c/WriteImage/1028.

Причина — в том, что в конкретном экземпляре может быть запрещено создавать PDF, но есть рецепт, как это исправить: в файле /etc/ImageMagick-6/policy.xml надо включить нужное разрешение — строку

<policy domain="coder" rights="none" pattern="PDF" />

надо заменить на 

<policy domain="coder" rights="read|write" pattern="PDF" />

После этого PDF-файл будет нормально создаваться.

Теперь осталось понять, почему же готовый файл вдвое тяжелее суммы исходных. Добавление в команду преобразования параметров -dither none -colors 2 на размер готового файла практически не влияет.

Регистрозависимая сортировка

Линуксовая команда sort (во всяком случае, в Ubuntu 16.04 LTS) почему-то сразу сортирует без учёта регистра, хотя такое поведение должно включаться специальным ключом -f либо --ignore-case. Ключа --no-ignore-case для выключения такого поведения нет. Выход — сортировать перловым однострочником


perl -0777 -ne 'print join "\n", sort split "\n"'

Как засунуть имиджмеджиком растровые картинки в PDF нужного размера

Для несложных преобразований картинок: изменение размера, увеличение резкости, добавление надписей и преобразование типов — большой и тяжёлый графический редактор не нужен — достаточно взять ImageMagick. ImageMagick знает не только кучу разных растровых форматов файлов, но и кое-какие векторные, в том числе PDF, однако преобразование в них требует иногда плясок с бубном: например, если для преобразования толпы PNG-файлов написать

convert *png result.pdf

то результат может и не понравиться. Путём экспериментов с найденным на всяких форумах кодом получился такой рецепт для преобразования в PDF размером 210×297 мм (A4) кучи растровых файлов, отсканированных с разрешением 600 точек на дюйм

convert *png -units pixelsperinch -density 600 -resize 100% \
 -gravity center -background white -extent 4960x7016 result.pdf

размер растровых файлов не меняется, они располагаются в центре получившихся страниц.

PDF-файл с разным заполнением страниц

Для картинок с разрешением 300 dpi цифры будут чуть другими:

convert *png -units pixelsperinch -density 300 -resize 100% \
-gravity center -background white -extent 2480x3508 result.pdf

Для 150 dpi числа надо ещё вдвое уменьшить:

convert *png -units pixelsperinch -density 150 -resize 100% \
-gravity center -background white -extent 1240x1754 result.pdf

Чтоб не тыкать вручную — автоматическое совмещение кадров в Hugin

Под виндой для склеивания панорам есть Kolor Autopano, под линуксом — Hugin. В принципе, Хугином вполне можно пользоваться: единственное, чего в нём не было по сравнению с Автопано — автоматического поиска серий кадров, но это не критично. С остальными задачами — аккуратно совместить кадры, внося необходимые геометрические искажения и поправляя цвет, дать пользователю выбрать тип проекции и сделать панораму в нужном размере — Хугин справляется. Однако с недавних пор в нём пропала возможность автоматически находить контрольные точки для совмещения кадров — приходится указывать их вручную. На панорамах из двух-трёх кадров это ещё терпимо, но если кадров десяток и панорам — не одна, это быстро утомляет.

Причина оказалась в том, что программу autopano-sift, которая использовалась для совмещения, из доступных в Ubuntu программ убрали, а альтернативу — autopano-sift-c — не добавили.

Способ решения — поставить что-нибудь из программ совмещения, с которыми Хугин умеет работать. Мне, как перлопрограммеру, ближе способ, который сводится к установке модуля Panotools::Script, и выбору Match-n-shift в настройках Хугина (File → Preferences → Control Point Detectors) в качестве программы по умолчанию. Попробовал — работает.

Аргазинское водохранилище

Аргазинское водохранилище

Аргазинское водохранилище

Река Миасс

Перекодирование кривой кириллицы в именах зазипованных файлов

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

Неправильная кодировка кириллических имён файлов

Консольные инструменты — хоть unzip, хоть 7z — тоже не помогают.

Возможный способ решения — распаковать, а потом перекодировать имена:


convmv -f utf-8 -t latin1 --notest *
convmv -f cp866 -t utf-8  --notest *

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

Мелкими шажочками

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

Выяснил, что Убунту теперь предлагает обновляться не до следующей версии, а до ближайшей LTS-версии, что, конечно, в четыре раза лучше, чем было когда-то, но ещё в два раза медленнее, чем хотелось бы. Но делать нечего — обновляемся, как предлагают, в несколько этапов — 12.04 LTS (Precise Pangolin) → 14.04 LTS (Trusty Tahr) → 16.04 LTS (Xenial Xerus).

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

Терминал

Атомный редактор

Пробую очередной текстовый редактор — Atom. Поначалу не удавалось его запустить — на сайте выложена версия для архитектуры amd64, а собрать из исходников не получилось (не очень-то и хотелось), однако нашёлся вариант для ленивых — PPA с поддержкой 32-битных версий убунты.

Проверка синтаксиса в редакторе Atom

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

Перловые модули вставали не туда

Только сейчас обнаружил интересную штуковину: если в убунте выполнять общесистемную установку перловых модулей командой

sudo cpan Имя::Модуля

то модуль встаёт куда надо — в моём случае это /usr/local/share/perl/5.18.2 (а мануалы ложатся в /usr/local/man/man3), но если сначала взять себе рутовую консоль командой

sudo bash

и из такой консоли запускать cpan — модули встанут в ~/perl5/lib/perl5, чего я не ожидал.

P. S. Про sudo apt-get install libимя-модуля-perl я в курсе.