среда, 23 декабря 2020 г.

LibreOffice 7.1 RC 1 доступен для тестирования

 Download it now!

The Document Foundation объявил о доступности для тестирования первого релиз кандидата LibreOffice 7.1. Скачать его можно по ссылке. Доступны версии для Windows, Linux, macOS. Обратите внимание, эта версия заменит собой ваш текущий рабочий LibreOffice! В случае, если вы найдете какую-либо ошибку, не стесняйтесь написать о ней разработчикам в багзиллу проекта.

понедельник, 21 декабря 2020 г.

Используем perf и FlameGraph для поиска и визуализации проблем производительности в LibreOffice

В LibreOffice бывают иногда странные случаи, когда он зависает и жрет ресурсы компьютера, как не в себя. Например, загрузка процессора достигает 100% при каких-то банальных операциях. Это ненормально, как вы понимаете. Для того, чтобы программист понял, в каком собственно месте исходного кода ошибка, есть куча инструментов.
Например, perf - это утилита для оценки производительности системы из состава ядра linux. Она на уровне ядра собирает кучу всякой информации и записывает её в файл. Этот файл можно проанализировать потом и понять, где проблемное место. Проблема в том, что вывод этой утилиты весьма слабо читаемый и нужно потратить кучу времени на то, чтобы понять, где там что. А время - деньги. 
Так что один хороший человек написал FlameGraph - это инструмент, который обрабатывает результат вывода утилиты perf и на выходе даёт график, показывающий, какой именно процесс внутри программы занимает больше всего процессорного времени.
График получается в формате SVG и выглядит так вот примерно:
Чем шире полоска, тем больше времени процессора она занимала за исследуемое время, а чем она выше в графике, тем хуже.
Как получить такой график?
1. Нам нужен установленный linux дистрибутив, у меня это Kubuntu 19.04, в котором мы и будем работать далее.
2. Нам нужен установленный пакет linux-tools-$(uname -r), который и содержит утилиту perf. 
Примечание: Обратите внимание, пакет этот должен точно соответствовать текущей версии ядра, поэтому я и команду так написал! У меня было отдельное ядро, не из дистрибутива, к которому linux-tools я конечно не нашёл, пришлось перейти на дистрибутивное ядро. 
3. Также нужен пакет linux-tools-$(uname -r)-generic.
4. Нам нужен LibreOffice, собранный с опцией --enable-symbols (для этого вам потребуется большое количество оперативной памяти, больше 8Гб точно). Опция эта позволит программисту увидеть сразу проблемное место в коде достаточно точно.
5. Нам нужен FlameGraph. Его нужно просто скачать из git автора. Там есть зелёная кнопка "Clone or Download", жмите на неё и в выпадающем меню будет надпись "Download ZIP". Скачается архив, я распаковал его в каталог ~/soft/. Это важно, поскольку влияет на команды, которые мы будем запускать.
Примечание: FlameGraph из архива имеет имя своего каталога FlameGraph-master, я этот самый мастер удалил из имени для упрощения команды.
Для запуска perf без прав root нужно дать команду
sudo sysctl -w kernel.perf_event_paranoid=1
Предварительно запускаем LibreOffice (не системный, а свою сборку!). Я запускал из отдельной вкладки терминала. 
Для начала процесса сбора данных даём команду в каталоге FrameGraph: 
perf record -F200 --call-graph dwarf,65528 --pid=`pidof soffice.bin`
Команда соберет данные из запущенного LibreOffice.
Выполняете действия, которые приводят к проблеме. Закрываете LibreOffice (или убиваете процесс, если он завис).
В терминале будет написано нечто вроде:
[ perf record: Captured and wrote 292,351 MB perf.data (4667 samples) ]
Примечание: вообще-то объем файла perf.data здорово зависит от времени работы LibreOffice и количества действий, которые вы делаете. У меня почти 4Гб данные для графика выше заняли. Так что имейте ввиду, что в том месте, откуда вы даёте команды, есть достаточно свободного места.
Далее даём следующую команду:
perf script | ~/soft/FlameGraph/stackcollapse-perf.pl | ~/soft/FlameGraph/flamegraph.pl --width 1500 > perf.svg
Она и даст нам искомый график с именем perf.svg. Процесс создания SVG может занять достаточно длительное время. Этот SVG и надо прикрепить в багрепорт в багзилле. Вот в принципе и всё.

воскресенье, 20 декабря 2020 г.

Выпуск LibreOffice 7.0.4

The Document Foundation объявил о релизе четвёртого корректирующего выпуска LibreOffice 7.0. Скачать LibreOffice 7.0.4 можно по ссылке libreoffice.org/download.

Список исправленных ошибок относительно релиза LibreOffice 7.0.3:

https://wiki.documentfoundation.org/Releases/7.0.4/RC1

https://wiki.documentfoundation.org/Releases/7.0.4/RC2

Всем, кто использует LibreOffice 7, рекомендую обновиться.
PS: Если найдёте ошибку в программе, то не стесняйтесь сообщить о ней разработчикам 
по этой ссылке.

четверг, 10 декабря 2020 г.

Конкурс на создание шаблонов для LibreOffice

The Document Foundation и компания Adfinis объявили конкурс на создание новых клевых шаблонов для LibreOffice Writer, Calc и Impress.

Начну сразу с очень приятного - шести победителям конкурса достанется приз в размере 500 швейцарских франков каждому. Это примерно 460 евро. Также среди всех участников будут разыграны 15 толстовок, 10 футболок, и 2 рюкзака с символикой LibreOffice.

Теперь о правилах:

Шаблон должен быть создан вами самостоятельно. Простая конвертация существующих шаблонов, например для МСО, в формат ODF не допускается. Использование каких-либо частей существующих шаблонов также не допускается.

Шаблон должен быть предоставлен на конкурс под лицензией Creative Common.

Шаблон не должен содержать в себе любое содержимое под любой несвободной лицензией.

Любые изображения или рисунки должны быть созданы вами самостоятельно, либо должны быть доступны под лицензией Creative Common. Перед использованием изображений или рисунков из Интернет, вы должны убедиться, что они соответствуют выше упомянутой лицензии. На этом сайте https://fosspost.org/open-source-images/ перечислены некоторые ресурсы в сети, на которых можно найти подходящее изображение под нужной лицензией.

Шаблон не должен быть основан на любых проприетарных шрифтах, даже если они распространяются бесплатно. В идеале (но не обязательно!), вы должны использовать шрифты, которые поставляются вместе с LibreOffice.

Шаблон должен быть создан в LibreOffice.

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

Креативность (красота оформления, стилистика, хороший подбор цветов и так далее).

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

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

Как и куда присылать результат вашего творчества:

Назовите ваш шаблон, например SUPER_TEMPLATE.

Создайте текстовый файл с вашим именем/фамилией и адресом электронной почты для связи и назовите его contact.txt.

Создайте архив с исходными файлами (изображения, рисунки, шрифты) и текстовым файлом со ссылками на эти исходники в Сети с именем source.zip.

Предположим, что ваша фамилия Иванов, а текущая дата 25 декабря 2020.

Тогда три этих файла запакуйте в архив с именем SUPER_TEMPLATE-ivanov-2020-12-25.zip. И загрузите получившийся архив на https://nextcloud.documentfoundation.org/s/dbJZ8zRBH2oBpmR.

Конкурс продлится до 31 января 2021г.

Удачи всем, кто захочет участвовать.

среда, 9 декабря 2020 г.

LibreOffice и OpenGL. Бой проигран

Итак, после пятилетнего противостояния разработчиков LibreOffice и OpenGL наступил тот, момент, когда весь код, связанный с OpenGL, был удалён из исходников LibreOffice.

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

Сейчас почти тоже самое происходит со Skia, которая пришла на замену OpenGL в LibreOffice. Пять месяцев Любош её впиливал в проект, работает она только в Windows полноценно, про Linux и macOS пока никто не вспоминает (хотя планы грандиозные были), уже 140 багрепортов написано про Skia и почти все эти баги были исправлены, а проблемы все ещё есть. Шаг за шагом мы идем по тому же пути, как шли пять лет с OpenGL. Думается мне, что ещё через пять лет опять что-нибудь появится новое и путь боли опять повторится.

пятница, 4 декабря 2020 г.

Автотекст в LibreOffice

Автотекст - это сохранённый текст (и не только текст, это могут быть и таблицы и картинки и фигуры и всё вперемешку), который можно вставлять в документ, введя сокращение и нажав клавишу F3. Это очень полезная функция, если вы часто имеете дело с одними и теми же фразами или длиннющими названиями государственных организаций, например Государственное учреждение муниципального образования «Киевский центр подготовки, переподготовки и повышения квалификации специалистов водного транспорта». Чтобы каждый раз это руками не вводить, можно создать автотекст, присвоить ему сокращение, например КЦ, и в дальнейшем использовать его, где необходимо.

В LibreOffice есть некий встроенный набор автотекстов, но они все английские. Единственный полезный автотекст из встроенных - это вставка формулы Math с автоматической нумерацией. Введите буквы fn и нажмите клавишу F3. Увидите такой результат:

 

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

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

Сначала нужно подготовить то, что будет вставляться в документ при наборе сокращения и нажатию на F3. А вставляться у нас будет табличка с полем-счетчиком и формулой Math. Вот такая:

 

Вставить табличку из одной строки и двух столбцов - это просто. Используйте виджет Вставить таблицу на панели инструментов. Вставить в таблицу формулу Math - тоже просто, используя меню Вставка > Объект > Формула. Формулу-заглушку можно вставить любую, вы потом все равно ее будете менять на свою. Я выбрал самую знаменитую.

А вот с автонумерацией придется сделать хитрый ход. Установим курсор в левую ячейку и выберем пункт меню Вставка > Поле > Ещё поля (или нажмите Ctrl+F2), откроется диалог Поля:

 

Выберите вкладку Переменные (в новой macOS Big Sur в LibreOffice есть бага, активные вкладки имеют белый цвет фона и название написанное тоже белым цветом, что видно на скриншоте выше). Выберите Диапазон нумерации в области Тип, введите в поле Имя любое имя (я написал Формула, чтобы потом не вспоминать, что это и для чего), а в поле Значение напишите ваше имя+1 (у меня это Формула+1, как показано на скриншоте выше). Этот финт в поле Значение как раз и будет реализовывать автоматическую нумерацию при каждой вставке нашего автотекста. Нажмите кнопку Вставить. В ячейке таблицы появилось поле с цифрой 1, подсвеченное, как и все поля, серым фоном. Обрамим её скобочками и всё, на этом создание заготовки для автотекста закончилось. Выделим нашу таблицу целиком.

Далее, нажимаем сочетание клавиш Ctrl+F3. Откроется диалог Автотекст:

 

Введите вашему автотексту имя (я задал формула), сокращение (у меня это фр), нажмите внизу на кнопку Автотекст и выберите пункт Создать. Теперь в списке Мой АвтоТекст есть ваш собственный вариант для использования. Нажмите кнопку Закрыть. Попробуйте использовать: введите в документе ваше сокращение и нажмите клавишу F3. Всё должно было получиться=)