Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021)

Материал из 0x1.tv

Докладчик
Дмитрий Винокуров.jpg
Дмитрий Винокуров

В мире свободного и открытого ПО и железа происходит много важных событий: релизы; внедрения; выпуск обзорных, аналитических и обучающих материалов; интервью с интересными людьми; объявления о мероприятиях и курсах; привлечения финансирования и прочее. В январе 2020~г. Пермской группой пользователей GNU/Linux (PermLUG) был начат проект сбора информации о перечисленных событиях в виде еженедельного дайджеста на «Хабре» под названием «FOSS News». С того момента выпущено более 70 дайджестов, настроен автоматический сбор материалов из нескольких десятков англо- и русскоязычных источников и разработаны прочие средства автоматизации, вокруг проекта сформировалась аудитория в несколько тысяч человек. Следующая статья посвящена достигнутым результатам, разработанному вспомогательному ПО и планам на будущее.

Видео

on youtube

Презентация

Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021).pdf

Thesis

Концепция

Идея дайджестов возникла на встрече Пермской группы пользователей GNU/Linux (PermLUG) 23 января 2020 г. (сама группа существует с 1997-го года). Обсуждали идеи проектов и заметили, что существует много FOSS (англ. Free and Open Source Software — свободное и открытое ПО) интернет-изданий, но зачастую материалы там имеют достаточно узкую направленность, а более общие издания содержат мало информации о FOSS проектах. Также изданий много и в них легко потеряться и пропустить что-то важное. Автором было предложено делать дайджесты каждую неделю, в которых была бы объединена как информация для широкого круга читателей, так и разделы со ссылками по более узким направлениям.

Категории дайджестов со временем сложились следующие:

  • «Главное» — короткие описания со ссылками о нескольких наиболее важных для широкой аудитории материалах, это могут быть, например, новости о значимых внедрениях, особо интересные аналитические статьи или особо важные релизы;
  • «Короткой строкой» — по трём категориям (новости, статьи, релизы) объединено всё, что было собрано подходящего из всех источников и не попало в главное, здесь просто заголовок и ссылка и всё разделено по подкатегориям (для разработчиков, системное, data science и прочие);
  • «Прочее» — ссылки на другие дайджесты или что-то ещё, что не подошло под остальные категории.

В начале каждого дайджеста — аннотация и оглавление.

Дайджесты размещаются на «Хабре» как крупнейшем русскоязычном IT ресурсе.

Процесс подготовки

После нескольких первых выпусков был начат процесс автоматизации сбора информации и составления дайджестов, так как источников подключалось всё больше и вручную работать становилось слишком затратно по времени. После нескольких итераций автоматизации процесс подготовки выглядит так («[А]» — автоматические действия, «[Р]» — ручные, «[П/А]» — полуавтоматические):

  • сбор и фильтрация материалов — робот на Python работает на удалённом сервере и несколько раз в день проверяет множество RSS и HTML источников, собирает заголовок, ссылку, дату и в зависимости от широкой или узкой специализации источника отфильтровывает по ключевым словам или берёт всё, сохраняет в базу;
  • дополнительная фильтрация и категоризация — с помощью интерактивного консольного клиента-категоризатора, тоже на Python, вручную обрабатывается то, что собрал робот, отбрасывается то, что по ошибке прошло фильтрацию, распределяется по категориям и подкатегориям с помощью подсказок скрипта, которые тоже формируются по базе ключевых слов, всё это отправляется обратно на сервер в базу;
  • дополнение — через административный интерфейс веб-фреймворка Django добавляются материалы из источников, не участвующих в автоматизированном сборе (в том числе из чата PermLUG);
  • формирование единого документа — локальный скрипт выгружает с сервера из базы все заголовки материалов и ссылки для текущего выпуска и генерирует HTML;
  • загрузка для совместного редактирования — HTML загружается на Google Drive;
  • доработка — делаются переводы англоязычного текста, добавляются изображения для главных тем дайджеста и пишутся аннотации для всего выпуска и главных материалов;
  • ревью — ссылка на Google Drive отправляется для ревью в PermLUG и сторонним участникам подготовки дайджестов;
  • конвертация в окончательный формат — после ревью документ выкачивается и ещё одним скриптом преобразуется в формат Хабра, в том числе создаётся оглавление;
  • релиз — код статьи загружается на Хабр, добавляются картинки и делается публикация;
  • распространение — аннотация и ссылка на дайджест добавляются в Telegram, RSS и по соцсетям (ВКонтакте, Fediverse, Facebook, Twitter);
  • аналитика — собирается статистика (ещё одним скриптом).

Код инструментов автоматизации, как сервера «FOSS News Gathering Server» так и клиентских вспомогательных утилит «FOSS News Tools» — под свободными лицензиями: AGPL-3.0 и GPL-3.0 соответственно. Теоретически, после некоторых доработок этот код можно использовать для любых дайджестов.

Немного цифр, относящихся к подготовке:

  • 30 англо- и русскоязычных источников;
  • 1530 ключевых слов;
  • ~2097 материалов поступает на отбор в неделю;
  • ~303 материала проходят автофильтры;
  • ~176 материалов (из которых десяток-другой об одних темах) проходят ручной отбор и попадают в дайджест.

В команде, помимо робота и автора статьи, ещё 3 человека, они помогают с вычитыванием.

Результаты

С 23-го января 2020 г. до момента написания этой статьи:

  • выпущено 72 дайджеста, каждую неделю без перерывов;
  • дайджесты просмотрены 205 615 раз на «Хабре» суммарно;
  • в среднем на дайджест 2 855 просмотров на «Хабре»;
  • на канал в «Telegram» подписался 481 человек.

Планы

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

Дайджесты FOSS News и средства автоматизации их составления (Дмитрий Винокуров, OSSDEVCONF-2021)!.jpg

Примечания и ссылки


Plays:21   Comments:0