пятница, 29 сентября 2017 г.

Фильтрация по месяцам и годам в сводной таблице Calc

Потребовалось мне в сводной таблице реализовать общую фильтрацию данных, отображаемых в сводной таблице, по дате, причем не по дням, а по месяцам и годам. Вроде бы, чего тут такого? Однако по умолчанию, если попробовать сделать просто вот так:
то есть просто доступное поле дата перетащить в раздел "Поля страниц", то в результате мы сможем фильтровать только так, как это указано в изначальных данных, на которых основана сводная таблица (у меня это были конкретные даты - дни):
Как видно на скриншоте выше, можно указать фильтровать информацию в сводной таблице по каждой конкретной дате, а выбрать период вроде месяца или года, нельзя. Просто нет таких пунктов. А хотелось иметь нечто вроде того, как показывает автофильтр, но прямо в сводной таблице:
Одним из вариантов является создание вспомогательных столбцов в исходных данных, в которых бы формулами типа МЕСЯЦ(А1) и ГОД(А1) высчитывались бы номер месяца и год. Затем добавить эти столбцы в сводную таблицу и делать сортировку по ним. В принципе - это то, что нужно, НО оказывается есть способ (отнюдь не очевидный) и без захламления дополнительными данными исходной таблицы. Это настройка фильтрации по дате по периодам в самой сводной таблице.
В настройках сводной таблицы поле "Дата" нужно перетащить в раздел "Поля строк" и нажать "ОК".
Получится вот такой вид сводной таблицы:
Установите курсор в любую ячейку сводной таблицы с датой и выбирете пункт меню Данные > Группа и структура > Группировать (или просто нажмите клавишу F12 на клавиатуре). Откроется вот такой диалог "Группировка":
в котором, внезапно, можно настроить интервалы времени, по которым возможна будет дополнительная фильтрация. Выбрать можно несколько значений одновременно. Я выбрал "Месяцы" и "Годы". В итоге мы получим в свое распоряжение дополнительные поля, которые нужно перенести в настройках сводной таблицы обратно в раздел "Поля страниц", нажать "ОК"
и увидеть вот такой вид сводной таблицы:
Как раз то, что и было нужно, теперь можно фильтровать данные по периодам, задавая отдельно месяц и год.
Отмечу, что такой не очень очевидный путь для настройки общего фильтра в LibreOffice Calc полностью копирует решение из MS Excel. Почему нельзя было сделать такую настройку доступной из контекстного меню поля прямо в настройках сводной таблицы, не прибегая к шаманству с перемещением полей из раздела в раздел - это великая тайна разработчиков офисов.
ps: в Excel название поля "Дата" можно заменить на свое, в Либре я что-то такого не нахожу, плохо ищу?

Критичные для меня баги в LibreOffice. Мысли вслух

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

  1. Мерцает интерфейс пользователя, когда по менюшкам водишь мышкой, причем для видеокарт от Интел это никак не лечится, а глаза мне дороги.
  2. Рендеринг шрифтов в документе и в интерфейсе пользователя стал просто ужасный.
  3. Рендеринг встроенных в документ изображений PNG также хромает, это не критично по сути, так как экспорт в ПДФ или печать выполняются с нормальным качеством, но смотреть на это убожество при работе в самом документе сил нет никаких.
  4. В Calc не работает автофильтр при попытке фильтровать записи по дате. Это вообще нонсенс. По сути достаточно большой кусок реальной работы просто не может быть выполнен с использованием LibreOffice.
  5. В текстовых документах Writer могут легко слететь стили, причем не все, а только некоторые и в произвольном порядке, а в больших документах, где стили обычно и надо использовать обязательно, это можно легко не заметить. По сути все преимущество стилей теряется для пользователя, поскольку необходимо постоянно глазами контролировать оформление текста и думать, а не слетели ли стили.
  6. До сих пор LibreOffice может выдать критическую ошибку в каком-то одном модуле и унести в ад ВСЕ открытые документы ВО ВСЕХ модулях.

Это реально печально.

четверг, 28 сентября 2017 г.

Голосование - выбор маскота (талисмана) для LibreOffice

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

воскресенье, 17 сентября 2017 г.

LibreOffice и "импортозамещение"

На русском форуме поддержки LibreOffice проскочила информация о том, что LibreOffice будет устанавливаться в МИД РФ в рамках программы "импортозамещения". Причем они там (якобы) проверяют исходники на предмет наличия закладок в коде, затем сформируют сертифицированную сборку, и, видимо, будут это юзать. Вопрос о том, как они будут ставить обновления, и будут ли вообще, остался открытым. Однако сам факт радует, может быть они наймут какую-нибудь контору для осуществления миграции и техподдержки, включая правку багов.

понедельник, 11 сентября 2017 г.

Прогресс в разработке 3D переходов между слайдами (GTK3 + OpenGL)

Один из самых активных разработчиков LibreOffice Caolán McNamara опубликовал небольшой пост о прогрессе в разработке Gtk3 OpenGL переходов между слайдами в презентациях. По ссылке доступно видео, в котором рядом демонстрируются 3D переходы до изменений (слева) и после (справа). Обратите внимание на артефакты и черное мерцание на левом изображении и отсутствие таковых на правом. Это достаточно заметное изменение и прогресс.

пятница, 1 сентября 2017 г.

LibreOffice и GSoC 2017. Результаты

Как вы знаете, Google каждое лето проводит мероприятие Google Summer of Code, в котором студенты имеют возможность заработать денег путем написания кода по заявкам от проектов с открытым исходным кодом. 2017 год исключением не был и проект LibreOffice получил 9 "грантов" для реализации студентами. Ниже имена героев и описание проектов и достигнутых результатов:
Aleksas Pantechovskis - реализация фильтра импорта QuarkXPress. Цель этой задачи - сделать реверс инжиниринг формата документа, созданного в QuarkXPress 4 (и более ранних версиях, 3.1-3.3, они похожи) и реализовать фильтр импорта - библиотеку C++ на основе librevenge. Начиная с QuarkXPress 5, его файлы шифруются, но, последней широко используемой версией была именно версия 4. Задача выполнена, создана библиотека импорта libqxp
Вот результат работы фильтра импорта на сегодня:
Gautam Prajapati - улучшение LibreOffice для платформы Android. Цель этой задачи - улучшение клиента Android LibreOffice, устранить его самые неприятные ошибки, добавить новые функции в средство просмотра документов и экспериментальную часть для редактирования, улучшить UI / UX, производительность и сделать его более простым и дружественным для разработчиков, улучшить документацию и встроенные комментарии. Задание было таким размытым, что можно считать его выполненным, вот здесь отчет студента о его работе, которая была больше технической, чем нацеленной на какие-то заметные простому пользователю вещи.
Grzegorz Araminowicz - улучшение в работе фильтра импорта SmartArt в LibreOffice. Цель - понятна без дополнительной расшифровки. SmartArt - это формат хранения диаграмм в файлах Office Open XML, который был представлен в MS Office 2007. Он позволяет отделять данные от способа представления, в результате чего образуются сложные диаграммы, созданные из записей маркированного списка. В настоящее время LibreOffice использует предварительно отрендеренную версию диаграммы, для MS Office 2010 и новее. Диаграммы из файлов MS Office 2007 часто выглядят пустыми. Целью проекта является расширение поддержки загрузки и компоновки диаграмм SmartArt. Это сделает LibreOffice более совместимым с OOXML-файлами и позволит в конечном итоге получить полную функциональность SmartArt, включая редактирование и экспорт. Проект был запущен как улучшающий импорт формата VML, но вскоре был изменен. Задача выполнена, реализовано достаточно большое количество необходимых для импорта фич из SmartArt. Вот отчет в списке рассылки разработчиков от студента.
Aditya Dewan - улучшения для LibreOffice Online. Цель - сделать важные функции, существующие в настольной версии LibreOffice и в других ведущих офисных пакетах, доступными для LibreOffice Online. В результате работы в LibreOffice Online была реализована интерактивная горизонтальная линейка во Writer Online и была расширена текущая реализацию WOPI для поддержки функциональности «Сохранить как». Ниже приведена демонстрация работы линейки:
Mohammed Abdul Azeem - миграция из старого Parser в FastParser (речь идет о парсере XML). Большая часть импорта ODF использует устаревший парсер. FastParser является потоковым, основанным на токенах и он быстрее, чем предыдущий парсер. Разработчики стремятся использовать FastParser почти везде и сделать некоторые улучшения в самом FastParser. Что выполнено в рамках проекта: распаковка zip вынесена в отдельный поток, все независимые контексты заменены на использование быстрых токенов, сделано много оптимизаций и рефакторинга кода, исправлены некоторые ошибки. Что еще пока в работе: замена XSAXDocumentBuilder2 на XFastDocumentHandler. Первый есть в нескольких модулях (sc, sw, starmath, sd и т.д.) и приводит к сбою на множестве тестовых примеров. Что не сделано: наблюдается несколько мелких проблем, для которых нужно написать тестовые примеры, преобразование оставшихся устаревших контекстов. Я не уловил, считается ли эта задача выполненной по меркам GSoC, но вот отчет студента о проделанной работе.
Varun Dhall - замена бинарного буфера обмена EditEngine на фильтр ODF. Проект включает в себя модификацию различных модулей, таких как editeng, xmloff, svl, sfx, dtrans и приложений, таких, как Draw / Impress / Calc для изменения буфера обмена. Перед отправкой данных в фильтр экспорта необходимо обработать правильный выбор текста. Для предотвращения регрессий также требуются новые модульные тест. Проект завершен, основные достигнутые цели: формат StarOffice больше не используется для операций копирования / вставки, сериализация SfxItemPool не используется нигде вне таблицы Auto-Formats, поля-гиперссылки копируются должным образом без потери информации, весь неиспользуемый код сериализации удаляется из всех модулей и приложений, что решает проблему ремонтопригодности. Отчет студента о завершении проекта доступен по ссылке.
Muhammet Kara - переработка диалога Настройка. Главное достижение этого проекта - была добавлена возможность для поиска необходимых пользователю опций в диалоге Настройка, которые он бы хотел добавить на панель инструментов или в меню или назначить сочетание клавиш, чтобы ему не приходилось вручную листать бесконечные списки или думать, в каком же разделе находится необходимый элемент. Также была проведена чистка кода. Ранее вся функциональность диалога была расположена в одном файле на более, чем 5000 строк кода. И как финал вот ссылка на видео с тем, что получилось в итоге.
Ximeng Zu - исправление большинства раздражающих ошибок для LibreOffice Android Viewer и добавление нового функционала. Что было сделано в рамках проекта: реализована поддержка файлов, защищенных паролем; добавлена панель адреса и формул; реализована вставка изображений, включая выбор из галереи и получение фото с камеры; динамический DPI для Calc; исправлена неправильная обработка внутренних ссылок, как внешних; некоторые исправления ошибок. Вот ссылка на отчет студента в списке рассылки.
Akshay Deep - улучшение диалога Специальные символы. Об этом я уже писал чуть ранее вот здесь. Продублирую здесь ссылку на его блог с отчетом о работе. Цель проекта достигнута.

PS: я некоторые специфично программистские вещи просто не знаю, как сказать по-русски, поэтому если кто-то почитает оригиналы и меня поправит по моему тексту, то я буду только благодарен.

пятница, 25 августа 2017 г.

Ribbon в LibreOffice. Август 2017г

Сегодня пришлось поюзать LibreOffice 6.0 в целях небольшого тестирования и взбрело мне в голову посмотреть, а что там риббон? Напоминаю, что сейчас есть несколько вариантов риббона/ленты в LibreOffice, все в разной степени готовности к использованию: 
Contextual groups
Contextual single
Tabbed
Groupedbar Full
Groupedbar Compact
Мне показалось, что первые два не развиваются никак, вариант Tabbed - выглядит сейчас просто отвратно, что-то сломали там разработчики, я даже показывать вам это не стану, а вот Groupedbar Full мне даже понравился, не смотря на детские болезни. Вот так оно выглядит (а ниже для сравнения MS Word) сейчас:
Картинку смотреть увеличенной, потому что скриншот сделан на мониторе 1920px. И в либре и в ворде активирован режим работы с таблицами, то есть курсор находится в границах таблицы. Есть одна крайне серьезная проблема в реализации этого варианта риббона: на экране с разрешением по ширине 1280px крайний правый блок при первом запуске наезжает на соседний слева блок. Если окно LibreOffice из полноэкранного режима перевести в оконный и обратно, то крайний правый блок скрывается за границей приложения и никаким образом оттуда его не достать. А там, в выпадающем Menu, скрывается переключатель на обычный (или любой иной) вид панели инструментов. Получается пользоваться сейчас этим вариантом можно только на широкоформатных мониторах от 1366px. Использование этого варианта риббона рвотного рефлекса не вызывает, поскольку не надо прыгать по вкладкам, как в МСО, и под блоками есть дополнительные соответствующие блокам меню. Настраивать под себя это все пока нельзя, это вторая серьезная проблема. Пилит этот вариант ленты Andreas Kainz.
PS: под Linux весь ГУИ LibreOffice выглядит НАМНОГО лучше визуально.

вторник, 22 августа 2017 г.

Механизм автоматического обновления LibreOffice. Часть 2

Я чуть ранее писал уже о том, что Markus Mohrhard реализует для LibreOffice механизм автоматического обновления, аналогичный тому, который есть в windows сборках Firefox. Тогда была доступна для тестирования сборка только для Linux только для 64 битной архитектуры. Сегодня Markus сделал анонс доступности механизма автообновления в ежедневных сборках для платформы Windows.
Итак:
  • Собственно доступны ежедневные сборки по адресу http://dev-builds.libreoffice.org/daily/master/Win-x86@38-updater/, которые можно скачать, распаковать в любой каталог, доступный пользователю на запись (это ВАЖНО!), и тестировать. (Обратите внимание, что в архиве содержится дополнительный уровень вложения каталогов, это может вызвать проблемы с длиной имени файлов в Windows, если сборка у Вас не запускается, то переместите каталог со сборкой ближе к корню диска).
  • Добавлено окно с отображением прогресса в автообновлении LibreOffice.
  • Двухэтапное автообновление (я писал об этом ранее) заменено на обновление в один этап: скачивается дельта-файл и при следующем запуске LibreOffice начинается механизм обновления установленной рабочей копии.
Для того, чтобы механизм полноценно заработал и был включен уже в версию 6.0 необходимо реализовать ещё две большие вещи:
  • Генерация обновлений MSP и инфраструктуры для их применения через updater в LibreOffice на основе файлов MAR. Разработчики Mozilla когда-то работали над интеграцией поддержки MSI в свой код обновления, но отказались от этой работы.
  • Интеграция Windows Service Silent Update для установки в обычный каталог Program Files и интеграция с Windows UAC. Большая часть кода уже существует и уже включена в сборки , но интеграция в код упаковки и установки LibreOffice всё ещё отсутствует.
Если Markus завершит эти два этапа к середине ноября, чтобы успеть до заморозки добавления нового функционала, качество кода устроит выпускающих релиз и QA, то это таки попадёт в выпуск LibreOffice 6.0. 
Используя текущую сборку с механизмом автообновлений и сообщая о любых проблемах Markus'у, Вы можете помочь сделать это реальностью.
Если есть желающие помочь в написании кода для реализации механизма автообновления в LibreOffice, то Markus готов к общению. Найти его можно в IRC сети irc.freenode.net на канале #libreoffice-dev, ник у него - moggi, или написать в список рассылки разработчиков libreoffice@lists.freedesktop.org.

PS: я скачал сборку по ссылке, но:
  1. Не нашел никаких настроек для вкл/выкл автообновления (спрошу у Markus'а попозже, есть ли они в принципе)
  2. Не увидел воочию, как это работает в реальности и работает ли вообще (но тут следует подождать пару дней, чтобы появилась разница между сборками видимо). Update: таки да, на следующий день обновление прилетело само и LibreOffice сам обновился. На SSD процесс обновления занял намного меньше времени, чем это бывает у Firefox. Появляется такой вот прогресс-бар: 
Update-2: Ещё пара подробностей.
  • Нет никаких настроек для автообновления сейчас, кроме возможности его отключить.
  • Если вы три дня не будете запускать билд, скачанный по приведённой выше ссылке, то обнаружите, что апдейтер скачает вам полный инсталлятор вместо инкрементного и при следующем запуске обновит весь установленный билд. Это работает так сейчас, потому что Markus собирает инкрементные патчи у себя на локальной рабочей машине, а потом выкладывает в сеть. Это занимает ресурсы и время. В релизе конечно это будет делать сборочный сервер.
  • Как именно будет работать апдейтер в релизной версии пока неизвестно. В том плане, с какой версии до какой можно будет обновляться инкрементно, а в каких случаях только полный апдейт, это еще не решали. 
  • Возможно появятся дополнительные настройки или уведомления об этом.

понедельник, 21 августа 2017 г.

LibreOffice 6.0. Улучшение в работе со специальными символами

Ранее я писал, что в рамках GSoC один из студентов, Akshay Deep, будет заниматься улучшением диалога Специальные символы в LibreOffice. Сегодня он опубликовал итоги своей работы в этом направлении, как это есть сейчас. По ссылке выше доступны анимированные GIF изображения, увеличьте страницу его блога в браузере для корректного отображения изображений.
Итак, что уже реализовано:
  • В диалог добавлено поле для поиска символа по его имени. Имя символов, введенное пользователем, сравнивается с названиями символов, предоставляемыми специальным API ICU, API отдает номера символов Unicode, результат в виде набора символов показывается пользователю в диалоге. Имя символа вводится только на английском языке.
  • В поле поиска можно ввести имя символа и прокручивать список шрифтов, пока не будет найден нужный символ.
  • В диалог добавлены список последних используемых символов и список символов пользователя в виде строк из пиктограмм.
  • Значок на панели инструментов Стандартная изменен на выпадающее меню, которое содержит вышеуказанные строки с часто используемыми символами и символами пользователя, а также кнопку, открывающую собственно диалог.
  • В диалоге реализованы контекстные меня для управления символами, как в основной таблице символов, так и в строках с часто используемыми символами и символами пользователя.
Это всё будет доступно в будущем релизе LibreOffice 6.0, который выйдет где-нибудь в январе 2018г.
Это реально хорошая, нужная и большая работа, которую выполнил Akshay Deep. Вопрос с качеством его кода остается открытым конечно, и, насколько я понял, есть некоторое количество проблем, которые ему еще предстоит закрыть, и еще некоторые проблемы, к которым он даже не знает, как подступиться, но будем надеяться, что на общую стабильность LibreOffice это не повлияет.

воскресенье, 13 августа 2017 г.

Опрос: какие аспекты важны для Вас?

Очередной опрос (имхо, он ни о чём) от разработчиков LibreOffice. Какие аспекты (в LibreOffice) важны для Вас? Вот прямая ссылка на сам опрос. Опрос доступен на нескольких языках, русского пока нет.
На первой странице выберите удобный Вам язык и нажмите внизу кнопку Next.
1. Насколько важна стабильность для вас? Стабильность означает, что программа функционирует должным образом и не зависает и не падает при неожиданных условиях.
Слева направо: от очень важно до совсем не важно
2. Насколько важна для вас возможность копировать и использовать исходный код? Любой может прочитать исходный код, понять, как вычисляется функция, и использовать его для своих собственных проектов.
Слева направо: от очень важно до совсем не важно
3. Насколько важна прозрачность (проекта, во всех смыслах) для вас? Проект разрешает использование, изучение и модификацию исходного кода без ограничений, а в качестве обычного пользователя вы регулярно информируетесь обо всех аспектах.
Слева направо: от очень важно до совсем не важно
4. Насколько важна безопасность для вас? Безопасность - это защита от кражи информации или ущерба, а также от сбоев или неправильной обработки.
Слева направо: от очень важно до совсем не важно
5. Насколько важен фактор затрат (денег на софт) для вас? Программное обеспечение с открытым исходным кодом, как правило, бесплатно, но, например, может потребовать дополнительных расходов на обучение и администрирование. 
Слева направо: от очень важно до совсем не важно
6. Насколько важна техническая поддержка для вас? Имеется ввиду техническая поддержка с точки зрения доступности вики и форумов, а также возможность связаться с экспертами и даже разработчиками софта. 
Слева направо: от очень важно до совсем не важно
7. Насколько важен для вас опыт пользователя? Хороший пользовательский интерфейс означает, что функциональные требования полностью покрыты, программа проста в использовании, и с ней приятно работать.  (в качестве комментария: я этот вопрос не понял совсем)
Слева направо: от очень важно до совсем не важно
8. Насколько важна для вас совместимость? Это означает наличие обратной совместимости со старыми версиями софта, а также совместимость между различными программами и платформами. 
Слева направо: от очень важно до совсем не важно
9. Насколько важно иметь доверенного производителя (софта)? Доверие к производителю (или, скорее, к издателю) означает, что вы знаете организацию и людей в течение многих лет и можете рассчитывать на продукт в будущем. 
Слева направо: от очень важно до совсем не важно
10. Насколько важна Настраиваемость / Модифицируемость для вас? Этот термин означает, что вы можете адаптировать программу к вашим личным потребностям и предпочтениям относительно визуального внешнего вида, а также рабочего процесса.
Слева направо: от очень важно до совсем не важно
11. Какие другие офисные апартаменты вы используете на регулярной основе? (можно выбрать несколько вариантов)
Apache OpenOffice
Apple iWork
Calligra Suite
Corel WordPerfect Office
Google Docs
Kingsoft WPS Office
Microsoft Office
NeoOffice
OnlyOffice
SoftMaker Office
Other (другое, нужно в поле ввести, что именно)
12. Как часто вы используете онлайн-офис?
never (никогда)
rarely (редко)
occasionally (время от времени)
frequently (часто)
always (всегда)
13. Сколько лет вы являетесь пользователем LibreOffice и его предшественника?
В поле ввести число лет
14. Может ли коллега или друг спросить вас, как решить проблему с LibreOffice?
Да / Нет
15. Какую версию LibreOffice вы используете в настоящее время (не только для тестирования)?
I'm always on 'stable' (я всегда использую stable)
Nothing else than 'fresh' (всегда fresh)
Bleeding edge with nightly builds (ежедневные сборки)
No idea, whatever the updater recommends (использую то, что установлено)
I don't care at all (мне все равно)
16. Как Вы связаны с проектом (LibreOffice)? (можно вырать несколько вариантов)
Normal user (обычный пользователь)
Administration (администратор)
Development/Design (разработчик / дизайнер)
Help authoring/User support at ask.libreoffice.org (писатель справки / поддержка пользователей)
Marketing (маркетинг)
Localization (команда локализации)
QA: reporting, testing, confirming bugs (тестировщик: отчеты, тестирование, подтверждение ошибок)
Training (обучение)
17.  Вы член The Document Foundation? (если вы не знаете, что это значит, то Ваш ответ "Нет")
Да / Нет
18. Какую операционную систему вы используете?
Microsoft Windows XP, 2000, Vista, NT
Microsoft Windows 7
Microsoft Windows 8, 10
macOS
Linux
Other: (написать в поле, какую именно)

После ответов на все вопросы нажмите кнопку Submit в правом нижнем углу страницы (возможно надо будет долистать сайт до упора вниз)