понедельник, 18 января 2021 г.

Кавычки типа «ёлочка» вне зависимости от языка ввода в документе LibreOffice Writer

Думается мне, что любой пользователь LibreOffice Writer, который работает с документами более, чем на одном языке, сталкивался с проблемой, когда кавычка слева от слова ставится в виде « ёлочки, а справа - почему-то в виде лапок ", когда в русском тексте вводишь английское, например, слово. Это особенность работы автозамены, которая связана с настройками локализации. Майк считает, что это бага, но мы сейчас не об этом.

Сейчас мы о том, как заставить LibreOffice Writer ставить кавычки-ёлочки всегда, не зависимо от языка ввода или от языка документа (это разные вещи, не надо их путать).

Делается это так, выбираем пункт меню Сервис>Автозамена>Параметры автозамены и в открывшемся диалоге переходим на вкладку "Национальные":

 

Красной рамкой выделены нужные нам настройки. Обратите внимание, что справа прописано слово "Стандарт", это означает автозамену кавычек на соответствующие национальные кавычки в зависимости от текущего языка в документе. И для наших целей мы должны это изменить. Щёлкаем по кнопке "Открывающие кавычки", откроется диалог для выбора специального символа:

В нём нужно щёлкнуть открывающую кавычку-ёлочку (иначе почему-то не активна кнопка ОК) и нажать ОК.

Затем нужно сделать тоже самое с кнопкой "Закрывающие кавычки", только в диалоге с символами щёлкнуть по закрывающей кавычке-ёлочке соответсвенно.

Получим такой вид в диалоге "Параметры автозамены":

Обратите внимание, что вместо слова "Стандарт" теперь показаны явно заданные символы кавычки-ёлочки, которые нам и нужны. Можете проверить, введя английское слово и обрамив его кавычками даже из английской раскладки и наслаждаться результатом.

среда, 13 января 2021 г.

Отчёт QA в LibreOffice за декабрь 2020

Xisco Fauli, QA инженер из The Document Foundation, опубликовал ежемесячный отчёт о работе QA в декабре 2020 года. По ссылке доступно много самой разной текстовой информации об основной активности разработчиков в проекте и графиков. 

Немного о самом главном за месяц:

Подано отчетов об ошибках - 732, из которых 85 - это запросы на улучшение.

Обработано отчетов - 685

Товарищ Telesto подал опять кучу багрепортов - 143 в декабре (для сравнения в августе было 251, а в сентябре 161, в октябре только 65). Читать его багрепорты становится всё труднее. 

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

Закрыто баг-репортов (по разным причинам) - 625, в том числе: исправлено 16 ошибок, приводивших к аварийному завершению работы LibreOffice.

В отчёте Xisco сделал диаграмму, иллюстрирующую причины закрытия баг репортов: 

FIXED - это ошибки, которые были явно исправлены разработчиками, и в отчете есть прямая ссылка на патч.
DUPLICATE - это ошибки, по которым уже есть информация в багзилле.
WORKSFORME - обычно это старая ошибка, которая в текущей версии LibreOffice не воспроизводится. Значит, кто-то что-то где-то исправил, ошибка не воспроизводится сейчас, а кто и что исправил мы не знаем и ставим такой статус.
NOTABUG - это когда кто-то, не разобравшись в функционале LibreOffice (например, тот же Телесто), пишет отчет об ошибке, а оказалось, что такое поведение программы - это так и задумано.
INSUFFICIENTDATA - ошибка закрывается с таким статусом (недостаточно данных), если она находилась в статусе NEEDINFO (требуется информация) более, чем 6 месяцев. То есть, у баг репортера запросили уточняющую информацию по ошибке и он такую информацию не предоставил.
WONTFIX - это ошибка (или "типа ошибка") или запрос на улучшение, которые никогда не будут исправлены/реализованы по каким-то достаточно значимым причинам.
OTHERS - это Xisco объединил все остальные причины =)
Вот такая вот была почти в обычном режиме работа QA в декабре 2020 года!

среда, 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. Думается мне, что ещё через пять лет опять что-нибудь появится новое и путь боли опять повторится.