вторник, 28 октября 2025 г.

TDF объявили о найме еще трёх программистов

Какое счастье-то. TDF объявили о найме еще трёх программистов:

Для улучшения работы с макросами, включая исправления багов, допиливание совместимости с VBA и нормальную работу с Python

Для улучшения Base (и мне это кажется пустой тратой ресурса, в текущих реалиях никто не юзает однопользовательские БД локально, хватает электронных таблиц) 

Для улучшения UI с упором на macOS (мне кажется, что эта вакансия была определённо заточенной под Патрика, но что-то ничего не слышно, чтобы его наконец наняли)

Я очень надеюсь, что дополнительные товарищи программисты будут таки наняты и сделают LibreOffice ещё круче =) 

PS: по ссылкам есть информация, как с ними связаться, если вдруг вы пишете код на плюсах и желаете поработать над проектом и получать за это деньги =)

воскресенье, 10 августа 2025 г.

Маркус Морхард вернулся и сообщил о своей работе над фичей в Calc, аналогом "форматировать как таблицу" из Excel

Markus Mohrhard - это один из старых разработчиков LibreOffice, со срача с которым я начинал свое вхождение в проект. Последние много лет он был неактивен, но вот недавно он объявился, сделал пару патчей, а сегодня написал письмо в список рассылки о том, что делает фичу для Calc, аналог функции "форматировать как таблицу" из Excel.

Вот кривой перевод его сообщения (я читаю архив рассылки, а там нет скриншотов, о которых он говорит в письме):

"Я немного поэкспериментировал с реализацией поддержки стилей таблиц Calc, включая поддержку OOXML. Я не очень доволен некоторыми решениями в дизайне, поэтому хотел узнать мнение других (разработчиков), прежде чем тратить на это время.

Код находится в ветке feature/calc-table-styles.

Прилагаю два скриншота, показывающих сравнение рендеринга моего тестового документа в MS Excel и текущего рендеринга в Calc.

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

И там в письме дальше длинный список того, что надо бы ещё сделать в этом направлении, вы не думайте, что он выкатил готовую фичу прям =) Но всё равно это очень хорошее начинание, в свое время Маркус делал механизм автообновления для LibreOffice, который в итоге всё же допилили и в 25.2 он уже работает, так что и с этой фичей случится тоже самое, рано или поздно.

пятница, 16 мая 2025 г.

GSoC 2025 и LibreOffice

В этом году LibreOffice также принимает участие в программе GSoC. Заявлены следующие проекты и исполнители по ним:

  • Adam Seskunas - перепишет построитель отчетов для Base с Java на C++
  • Karthik Godha - добавит новый диалог для настройки стилей таблиц Writer и Calc (учитывая, что стили таблиц и там и там не существуют толком, то решение более, чем странное, делать UI для функционала, которого в общем-то нет)
  • Devansh Varshney - реализует автодополнение и подсказки при написании кода макросов в Basic IDE
  • Manish Bera - реализует автодополнение при написании кода макросов на Python (и мне не очень-то понятно, как это будет работать во внешних редакторах, потому что LibreOffice своего едактора кода для Python не имеет, а Jim не смог завершить свой патч)
  • Mohamed Ali Mohamed - реализует биндинг для языка Rust
  • Ujjawal Kumar - добавит возможность импорта файлов с разметкой Markdown в LibreOffice
  • Shardul Vikram Singh - переработает механизм отображения слайд шоу в Impress на использование примитивов DrawingLayer (это что-то очень низкоуровневое, зато может за собой тысячу регрессий потянуть).

Менторить указанных выше товарищей будут Thorsten Behrens, Stephan Bergmann и Sarper Akdemir из allotropia; Rafael Lima; Jonathan Clark, Heiko Tietze, Xisco Faulí, Michael Weghorn и Hossein Nourikhah от самого фонда TDF.

Пожелаем им всем удачи!

пятница, 9 мая 2025 г.

суббота, 1 февраля 2025 г.

Xisco Fauli добавил кучу новых функций в Calc

Из достаточно длинного списка ещё не реализованных функций электронных таблиц MS Excel в будущий LibreOffice Calc 25.8 уже были добавлены следующие:

  • CHOOSECOLS
  • CHOOSEROWS
  • DROP
  • EXPAND
  • TAKE
  • TOCOL
  • TOROW
  • WRAPCOLS 
  • WRAPROWS
  • VSTACK
  • HSTACK

Я уж не знаю, чего Xisco решил этим заняться, так-то он QA в проекте, однако вот решил и сделал. Честь ему и хвала. Посмотрим, может он и остальные функции тоже запилит =)

Обновил пост еще парой функций

воскресенье, 1 декабря 2024 г.

Выпуск LibreOffice 25.2 alpha 1 - что нового?

Xisco Fauli в QA блоге проекта написал, что первая альфа LibreOffice 25.2 доступна для тестирования. Скачать можно по ссылкам, а новшества версии якобы написаны в РелизНотес.

Глянул я на тот РелизНотес, а там почти пусто =)) Разработчики забыли написать туда, свои активности или может вся работа делалась"под капотом" и юзеру просто не видна? Это отношение разрабов к наполнению релизнотесов в проекте мне всегда не нравилось, но и заставить их никто не может, такие дела...

вторник, 26 ноября 2024 г.

Управление макросами в LibreOffice - мы хотим перемен

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

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

У меня в свое время появилась идея, что все эти дела, связанные с управлением макросами должны быть в одном месте, в одном диалоге главном, который бы мог отображать макросы на всех ЯП, диалоги, и позволял бы выполнять действия над ними всеми в зависимости от языка и типа объекта. И я написал баг репорт - https://bugs.documentfoundation.org/show_bug.cgi?id=120658.

Идея единого диалога выглядела вот так, всё в одном диалоге:

Он был воспринят не очень однозначно и долго висел без какой-либо реакции (как и большинство наших баг репортов, кстати). Я сам-то не могу код на плюсах писать, а вот приставать к людям, которые код писать могут - это я могу. И вот мне повезло, я дважды просил Jim Raykowski глянуть, может ли он это реализовать и во второй раз он согласился и таки написал патч на почти четыре тысячи строк, который реализует мою идею. Вот ссылка на патч - https://gerrit.libreoffice.org/c/core/+/176254.

А вот видео - результат реализации:

В настоящее время патч ещё не влит в кодовую базу, идет процесс код-ревью. После того, как патч будет смержен, функционал надо будет потестить и потом надо будет поправить некоторые вещи в UI.
А самое забавное, что у нас нет под капотом механизма, который бы позволял управлять макросами на Python также, как идёт управление макросами на Basic. И в новом диалоге при выбранном макросе Python - выводится ошибка.
И дальнейшим планом видится именно допиливание нашего фреймворка для управления макросами так, чтобы можно было работать с Python макросами без лишних движений в виде установки расширения APSO и прочего. Но это тема для отдельного поста =)

среда, 9 октября 2024 г.

Для тех, кто захочет контрибьютить в LibreOffice

Этот пост - просто информация для желающих, с чего начинать контрибьютить в проект LibreOffice.

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

Итак, для тех, кто захотел написать пару строк кода для LibreOffice:

Начать следует с прочтения вот этой ссылки - https://wiki.documentfoundation.org/Development/GetInvolved. Это ровно информация для новичков в проекте, как скачать исходники, как собрать свой билд, какие зависимости, для каких IDE есть предварительные настройки и как их включить, какой код стайл мы используем, как пишем патчи и как их засылаем. Обратите внимание, вам нужно достаточно современное железо с многоядреным процессором (4 и более ядер) и большое количество ОЗУ (8 или более Гб), потому что первоначальная сборка на 4-х ядерном Core i5 2,5 ГГц занимет ровно два часа времени (а в 14 потоков и 16 Гб памяти - ровно один час). Также необходимо около 30Гб сводобного места на диске (который уже должен быть SSD).

После того, как вы настроите окружение, встанет вопрос, а с чего же можно начать знакомиться с проектом. У нас есть список так называемых изи хаков именно для этой цели. Обычно это баг репорт, в котором достаточно подробно расписано что надо сделать и указана ссылка на конкретный файл или даже строку в исходниках. Вот этот список - https://wiki.documentfoundation.org/Development/EasyHacks/by_Required_Skill/Skill_C%2B%2B. Обратите внимание, список разбит на три группы по сложности, выбирайте себе любую цель и пробуйте написать патч.

Если вы достаточно опытный разработчик и вам сразу все понятно и возможно просто интересна какая-то конкретная тема, например производительность, утечки памяти, проблемы в поддержке каких-то форматов, UI, новые фичи - у нас есть багзилла с бесконечно длинным списком проблем. Также у нас есть некая сортировка проблем по темам, мы называем это МЕТА багами, найти их можно вот здесь -  https://wiki.documentfoundation.org/QA/Tracking_Bugs. Там есть фильтры, можно отсортировать то, что вам надо и покопаться в конкретных баг репортах по выбранной теме.

После написания патча, он должен попасть к нам в геррит - https://gerrit.libreoffice.org/q/status:open+-is:wip+branch:master. Конечно мы используем Git, однако у нас имеется возможность поправить пару строк, используя веб-интерфейс. До пуша в геррит вы обязаны прогнать свой патч, используя команду make check - это позволит вам локально прогнать все юнит-тесты. В геррите патч проверит бот Дженкинс, который также гоняет юнит-тесты для каждой из популярных десктопных ОС, а затем ваш патч должен пройти код-ревью и кто-то из опытных разработчиков с правами должен вам поставить +2 и замержить ваш патч.

Найти разработчиков всегда можно в рабочие часы по средне-европейскому времени в IRC канале - https://web.libera.chat/?chan=#libreoffice-dev. Общение на английском языке.

Также можно задать технический вопрос в список рассылки для разработчиков (также на английском языке) - https://wiki.documentfoundation.org/Development/Mailing_List

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

По каким-то организационным вопросам можно спросить у меня в Телеграм (пока его не прибили), ник @Kompilainenn.

пятница, 26 июля 2024 г.

Выпуск LibreOffice 24.8 RC1. Что нового в 24.8?

The Document Foundation объявил о доступности для тестирования первого релиз кандидата LibreOffice 24.8. По ссылке можно скачать дистрибутив под любую ОС.

Что же нового нам предлагает LibreOffice 24.8?

Writer

  • Теперь можно изменить размер панели комментариев справа от документа
  • Улучшена поддержка многостраничных "плавающих" таблиц
  • Добавлена поддержка хитрых конечных ссылок для документов DOCX, DOC и RTF
  • Подсветка стилей теперь применяется только к стилям, которые используются в документе
  • Во всплывающей подсказке при наведении на гиперссылку теперь показывается URL адрес
  • На Боковую панель добавлена панель Поиск с отображением результатов поиска и некоторого текста вокруг
  • Реализованы различные улучшения для работы с переносами слов

Навигатор в Writer

  • Теперь позволяет вставлять перекрестные ссылки в документ путем перетаскивания соответсвующего имени объекта из Навигатора в текст, при этом показывается контекстное меню, если вариантов для вставки несколько
  • Теперь позволяет удалять простые и концевые сноски
  • Теперь показывает специальный значок для связанных картинок с некорректной ссылкой

Calc

  • Теперь можно задать диапазон ячеек для экспорта в PDF
  • Добавлены функции LET, XLOOKUP, XMATCH, FILTER, RANDARRAY, SEQUENCE, SORT, SORTBY, UNIQUE, аналогичные существующим в MS Excel
  • Улучшена поддержка копирования данных из Google Sheets в Calc
  • Комментарии могут быть отредактированы или удалены прямо из Навигатора
  • Добавлена поддержка форматирования сводных таблиц MS Excel (поддерживается импорт и экспорт)
  • Проверка вводимых данных теперь различает заглавыне и строчные символы
  • Диалог Лист > Вставить ячейки теперь позволяет вставить более одной строки или столбца
  • Добавлена настройка цвета фона ячейка, когда она в режиме редактирования
  • Улучшен и упрощен выбор операций сравнения при настройке условного форматирования с использованием набора значков

Impress

  • В основном режиме отображения слайдов была добавлена скрываемая панель Примечания
  • Встроенные шаблоны презентаций были доработаны
  • Добавлен диалог для перехода к нужному слайду
  • Нажатие на Enter в пустом элементе списка теперь завершает список
  • Перелистывание слайдов теперь работает в обычном режиме
  • Презентации в формате PPTX с большим количеством графики теперь открываются быстрее

Draw

  • Наведение курсора мыши на вкладку слоя теперь подсвечивает фигуры на этом слое
  • Ускорено открытие некоторых PDF файлов

Base

  • Исправлена пара проблем с Firebird

Диаграммы

  • Добавлены две новые суб-диаграммы для расшифровки одной из долей круговой диаграммы (хз, как это называется в Эксель)

Общие изменения

  • Список последних открытых документов теперь отображает только документы того модуля, в котором открыт (текстовые в Writer, таблицы в Calc, презентации в Impress и так далее)
  • Пользователю показывается уведомление о необходимости переоткрыть документ, если изменен уровень безопасности макросов
  • Различные улучшения в поддержке языков юговосточной азии
  • Кнопки для выбора шрифта, подсветки и фона теперь запоминают свое состояние между сессиями с использованием офиса
  • Вроде бы включили автоматическое обновление офиса по аналогии с тем, как это делает Firefox, но я не уловил, как это работает и работает ли вообще
  • Объекты Галереи теперь можно искать, используя специальное поле для поиска в Боковой панели
  • Изменена система шифрования файлов!!! Если в этой версии вы сохраните файл с шифрованием, то чтобы его открыть, вам понадобиться версия офиса не ниже 24.8!

Фильтры

  • Настройка "Удалять персональные данные при сохранении" теперь работает для всех форматов и удаляет вообще все персональные данные из всех мест документа
  • Добавлена реализация  feMerge, feComposite и feBlend свойств для формата SVG

Basic IDE

  • Добавлен выбор тем оформления и подсветки кода
  • Текущая строка в коде теперь подсвечивается
  • Теперь сохраняется вид IDE между сессиями
  • Щелчок на номере строки в строке состояния откроет диалог "Перейти к строке"

Поддержка платформ

  • Поддержка Windows 7, 8 и 8.1 объявлена не поддержкой. Офис будет работать, но возможны проблемы с частью, написанной на Python (это некоторые мастера из меню Файл)