Сайт Романа ПарпалакаБлог

Стили для печати и конвертация в PDF

Постоянные читатели помнят, что у меня есть двухпанельный редактор математических текстов Upmath: слева пишете текст с разметкой на маркдауне и латехе, справа получаете результат.

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

Главная задача сервиса Upmath — подготовка математических текстов для публикации в вебе. Результат его работы — html-код. Если кому-нибудь нужен PDF, его можно получить с помощью самого латеха. На выходе будет превосходно сверстанный документ со всеми типографскими плюшками.

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

Печатать можно напрямую из браузера. Хоть на настоящем принтере, хоть в pdf-документ. Я до сих пор не задумывался об этом, и не подготовил стили для печати (раньше вообще svg-картинки нормально не печатались). Получалась бесполезная страница с началом текста и его исходником:

Мне ничего не стоило добавить стили для печати. Результат сразу преобразился:

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

h1, h2, h3 {
    break-after: avoid;
}

Будем ждать, пока эти баги в браузерах будут исправлены.

26 июля 2020 года, 16:16     upmath · интерфейсы     Оставить комментарий

Переносим сессии при переезде между серверами

Как-то нам нужно было перенести сессии PHP с одного сервера на другой. Сессии хранились в файлах. Серверы друг друга не видели. Но с рабочего компьютера оба были доступны. Решение — команда scp -3:

ssh 10.0.0.1 'sudo chmod go+r /var/www/project/var/sessions/prod/*'
ssh 10.0.0.2 'sudo chmod go+w /var/www/project/var/sessions/prod'
scp -3 user@10.0.0.1:/var/www/project/var/sessions/prod/* user@10.0.0.2:/var/www/project/var/sessions/prod
ssh 10.0.0.1 'sudo chmod go-r /var/www/project/var/sessions/prod/*'
ssh 10.0.0.2 'sudo chmod go-w /var/www/project/var/sessions/prod'
ssh 10.0.0.2 'sudo chown www-data:www-data /var/www/project/var/sessions/prod/*'
ssh 10.0.0.2 'sudo chmod go-r /var/www/project/var/sessions/prod/*'

После этого серверам переназначили ip-адреса. В итоге получился бесшовный переезд.

12 июля 2020 года, 23:29     линукс     Комментарии (2)

Серебристые облака — 4

Прошлой ночью опять наблюдал серебристые облака.

Попробовал заснять облака на видео. Получилось не очень впечатляюще. Вот ускоренная в 4 раза запись.

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

7 июля 2020 года, 00:10     фото · lytdybr     Оставить комментарий
Смотрите также:  Серебристые облака — 3 · Серебристые облака — 2 · Серебристые облака

Видео Ирумы

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

5 июля 2020 года, 12:53     видео · музыка     Оставить комментарий

Очередь на основе PHP-FPM

Применил на практике прием, когда асинхронная очередь обработки сообщений реализовывается через PHP-FPM по протоколу fastcgi. На удивление, всё заработало сразу, никакой наладки не потребовалось.

Обычно PHP-FPM обрабатывает запросы от веб-сервера, например, nginx. Но никто не запрещает обращаться к PHP-FPM напрямую. Если все доступные рабочие процессы заняты, сообщения в нем как раз и ждут своей очереди на обработку.

Положительные стороны:
  • Не нужны дополнительные компоненты в системе.
  • PHP-FPM сам заботится о запуске рабочих процессов, достаточно отредактировать конфиг.
Отрицательные стороны:
  • Нет надежного хранения сообщений. Если процесс PHP-FPM упадет, сообщения потеряются.
  • Нет мониторинга. Если нужен — придется делать самостоятельно.

Чтобы сделать такую очередь, возьмите готовые библиотеки для общения по протоколу fastcgi, например, hollodotme/fast-cgi-client.

27 июня 2020 года, 13:13     программирование · PHP     Оставить комментарий

Серебристые облака — 3

Сегодня серебристые облака красивее и насыщеннее.

В кадр попал самолет.

Обратите внимание на темное пятно. Это обычное облако. Обычные облака темнее фона, а серебристые — светлее.

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

24 июня 2020 года, 01:23     фото · lytdybr     Оставить комментарий
Смотрите также:  Серебристые облака — 4 · Серебристые облака — 2 · Серебристые облака

Серебристые облака — 2

Заметил сейчас серебристые облака.

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

22 июня 2020 года, 00:52     фото · lytdybr     Оставить комментарий
Смотрите также:  Серебристые облака — 4 · Серебристые облака — 3 · Серебристые облака

Лекция Казакова

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

Посмотрел с теплыми воспоминаниями.

За 7 лет мало что изменилось: кроме бозона Хиггса на LHC пока ничего не открыли, продолжат эксперименты до 2035 года; денег на новые ускорители нет; надежда не на рост энергий, а на повышение точности; темная материя не открыта; развитие астрофизики многообещающее.

20 мая 2020 года, 01:34     физика · видео     Оставить комментарий

Отключение голосовой почты на Мегафоне

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

Автоответчики бездумно перетащили в мир мобильных телефонов, хотя пользы в этом нет. Если человек занят и не смог ответить, напишите ему сообщение. Занятому человеку проще прочитать сообщение и ответить, чем прослушивать всё что вы наговорили в попытках уловить суть.

Более того, за эту бесполезную услугу берут деньги. Как только я слышу предложение робота «оставить сообщение», как можно быстрее кладу трубку, чтобы оператор не начал отсчитывать деньги.

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

Сегодня я обнаружил два голосовых сообщения. Одно вчерашнее, другое сегодняшнее. Оба сообщения были телефонным спамом, одно от робота, другое от живого оператора. Ничего серьезного я не пропустил. Но тем не менее, какое всё-таки у Мегафона качество связи, если уведомление о голосовом сообщении идет больше суток?

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

В итоге я потратил почти час, и всё-таки смог методом проб и ошибок отключить голосовую почту. Опишу последовательность действий.

Я нашел три услуги, имеющие отношение к пропущенным номерам. Услуга «Кто звонил» оказалась выключенной. Зато была включенной услуга «Мне звонили». Отключил эту услугу. Вместо нее подключилась бесплатная опция (почему Мегафон называет ее на сайте услугой, а в смс — опцией?) «Пропущенный звонок». Для проверки позвонил с одной сим-карты на другую. Автоответчик действительно отключился при недоступности абонента.

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

11 мая 2020 года, 00:53     опсосы · маркетинг     Оставить комментарий

Окно

Если б было всё равно, люди лазили б в окно.

5 мая 2020 года, 23:47     фото · идиотека     Оставить комментарий

туда →

Поделиться
Записи

Подписка на RSS (?)