Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Всем привет!
Вот уже больше года я вместе с несколькими товарищами делаю дайджесты FOSS News для Хабра с материалами о свободном и открытом ПО и железе. Недавно меня пригласили на онлайн-конференцию разработчиков программного обеспечения с открытым кодом «Админка», где я рассказал о наших дайджестах для тех, кто их не видел, и об их «внутренней кухне» для тех кто уже читает. Я подумал, что здесь читателям это тоже может быть интересно, поэтому публикую текст доклада, на котором я основывал своё выступление.
Оглавление
- Введение
- Предыстория
- Идея
- Формат
- Последние главные материалы
- Развитие за год+
- Схема подготовки
- Источники, ключевые слова, фильтрация и прочее
- Интерактивный категоризатор
- Админка
- Команда
- Планы
- Присоединяйтесь!
- Контакты и ссылки
Введение
Сегодня я хочу рассказать о дайджестах новостей и других материалов о свободном и открытом ПО и железе под названием FOSS News. Free and Open Source Software News то есть. Мы с товарищами делаем эти дайджесты с января 2020 г., то есть больше года. В своём выступлении я хочу не только рассказать, что мы делаем, для тех кто не читал, но и показать некоторые детали процесса подготовки, что будет новым для тех кто нас уже и так читает, и остальным может быть интересно. Ещё FOSS News – это не просто дайджесты о FOSS, это сам по себе FOSS проект, потому что в нём много автоматизации и её код выложен под свободной лицензией. В PermLUG я занимаюсь организационными вопросами и проектами, по основной же работе в Miro я инженер по нагрузочному тестированию и имею около 12 лет опыта разработки ПО.
Предыстория
Всё началось на встрече Пермской группы пользователей GNU/Linux 23 января 2020 г., а группа сама появилась аж 24 года назад. Я тогда только в школу ходил и ещё не участвовал. Далее было 5-6 волн активности и затишья. Я подключился где-то на 4-й. И последняя волна была инициирована мной, идея дайджестов тоже была моя, это я на верхнем фото справа со странным лицом, просто другого фото не было. Захотелось что-то полезное делать кроме собраний. Я и стал делать. Объединяться хорошо, а объединяться вокруг проекта – ещё лучше. И в рекордные сроки, через 3 дня после той линуксовки, был готов выпуск №0. А со временем ещё пара людей подключились.
Идея
Идея дайджестов была простая. Я читал несколько источников о свободном и открытом ПО и железе, но мне мало интересны были релизы, которым уделялось достаточно много внимания. Я просто регулярно делаю sudo apt upgrade и радуюсь если что новое появилось в программах, которыми пользуюсь, ну а если что не заметил – надо будет нагуглю. Именно релизы я отслеживаю буквально по нескольким проектам. Мне было интересно, чем ещё живёт сообщество. Что куда внедрили, кто исходники открыл, аналитика разная о достижениях FOSS, привлечение финансирования, отчёты о работе фондов и всё такое. Гипотеза была такая, что не одному мне интересна именно в первую очередь такая приоритизация.
Формат
Формат менялся со временем и чуть меньше года назад или около того стал примерно таким:
- Несколько главных материалов. Это могут быть и новости, и статьи, и какие-то особо важные релизы.
- Блок «короткой строкой». Здесь по указанным трём категориям собрано всё, что попало в ленту из всех источников и не попало в главное, это реально много материалов, но там просто заголовок и ссылка и всё поделено по категориям. В начале дайджеста оглавление. Можно просто перейти в нужный блок, пропустив неинтересное.
- Прочее. Тут например ссылки на другие дайджесты или что-то ещё, что не вписалось в основные категории.
Выход каждую неделю в воскресенье вечером.
Последние главные материалы
Вот пример материалов из последнего дайджеста, которые я счёл важными. Как видно, темы разнообразные и могут быть интересны значительно более широкой аудитории, чем релизы.
Развитие за год+
Чуть более чем за год всего было выпущено 62 дайджеста. Выпуск №0 был опубликован ВКонтакте и это было провалом, просмотров было очень мало, всего несколько десятков, я очень расстроился. Сейчас, вспоминая это, я думаю – с чего вдруг я вообще решил релизить ВКонтакте. Может просто потому что у нас была группа только там и других мыслей и в голову не могло прийти.
Выпуск №1 запостили уже на Хабр по совету одного знакомого. Спасибо тимлиду с прошлого места работы за инвайт. И тут труды были вознаграждены – просмотров было много, тысяч 7. И на только что созданный канал в Telegram сразу подписалась пара сотен человек.
Далее такого пика просмотров как у выпуска №1 мы не достигали и вообще число просмотров стабилизировалось, зато сформировалась постоянная аудитория и наверное это тоже неплохо. Аудитория примерно 2.5 тысяч человек – не знаю много это или мало, мне нормально. Ну а Telegram канал растёт потихоньку но стабильно, это приятно.
Схема подготовки
На этом пожалуй всё, что подготовлено только для тех, кто не знал про дайджесты. Ещё ссылки на подписку будут в конце. Теперь немного внутренней кухни, она тоже интересная сложилась за более чем год выпусков.
Как делаются дайджесты:
- FNGS робот, написанный на Python, крутится на сервере и пробегается по куче RSS и HTML источников, собирает материалы и отфильтровывает по ключевым словам.
- С помощью интерактивного консольного клиента-категоризатора fncategorizer.py, тоже на Python (у меня почти всё на Python), я обрабатываю то что насобирал сервер, отбрасываю не по теме или явно неинтересные материалы, раскидываю по категориям с помощью подсказок категоризатора, который тоже работает по базе ключевых слов, всё это отправляется обратно на сервер.
- Скрипт remotedatatohtml.py вытаскивает с сервера все заголовки и ссылки для текущего выпуска и метаинформацию и генерирует HTML.
- HTML загружаю на Google Drive, кидаю ссылки для ревью товарищам.
- После ревью гуглодок выкачиваю и скриптом googledoctohtml.py преобразую в формат Хабра, в том числе строя оглавление. Да, в редакторе Хабра не совсем стандартный HTML.
- Заливаю на Хабр, ссылки кидаю в Telegram, RSS и по соцсетям.
- Собираю статистику, тоже скриптом естественно.
И как уже говорил в начале, код инструментов автоматизации, как сервера так и клиента и вспомогательных утилит – под свободной лицензией, ссылки в конце. В принципе после некоторых доработок это можно использовать для любых дайджестов. Правда я этим не заморачивался, но кому надо могу помочь.
Источники, ключевые слова, фильтрация и прочее
Ещё немного статистики на слайде. Русскоязычные источники я насобирал по памяти, а англоязычные – считерил немного, просто некоторое время назад linux.com собирал тематические материалы с других ресурсов и делал ссылки у себя, а я просто посмотрел откуда они собирали и добавил в базу. Ключевые слова набирались в ходе работы с категоризатором, который я написал, и ещё я стащил названия всех проектов, которые ведёт Linux Foundation. Есть на примете ещё источники. Вот тут написано про 500 исходных и 160 итоговых материалов – просто не все ленты прям строго тематические, приходится отбирать по ключевым словам, большую работу тут за меня делает робот, я отсеиваю буквально десяток-другой вручную или около того. Ещё десяток-другой это дубликаты, их потом вручную объединять приходится пока что. По категориям раскидывание идёт в полуавтоматическом режиме, скрипт делает мне предложения исходя из ключевых слов, я принимаю или указываю свои варианты.
Интерактивный категоризатор
Какой линуксоид без консоли :) Вот скрин клиента-категоризатора, с которым я работаю каждый будний день по утрам полчаса-час. Кому-то может выглядит страшно этот скриншот, но мне прям вообще удобно, радуюсь когда пользуюсь, сильно упростил работу.
Админка
Поскольку FNGS сервер работает на Python Web фреймворке Django, бонусом шла админка. Через неё удобнее поиск делать и какие-то отдельные записи править и добавлять. Тут особо моей заслуги нет, просто показываю. Сборная солянка такая из консольных и графических инструментов, но мне норм.
Команда
В команде FOSS News из постоянных участников робот, мы вдвоём с Васей из PermLUG и ещё один человек с Хабра. Робот делает очень много рутинной работы, которой если бы мне пришлось заниматься каждую неделю я бы точно с ума сошёл :) А последнего я в жизни никогда не видел, просто он сначала на Хабре замечания к выпускам скидывал в личку, а потом я его пригласил к предрелизной подготовке, и он большой молодец.
Планы
Давно, когда я придумывал FOSS News, мне хотелось не просто собирать новости, но и давать контекст, ссылки на близкие материалы, в общем не просто ссылки собирать, но и разбирать их полноценно. К сожалению это плохо успеваю делать. Вот я на следующем слайде буду вас призывать подключаться к нашей команде. Если это получится – будет больше времени и ресурсов для дальнейшего развития проекта.
Ещё читатели предлагали нам делать видеодайджесты, но это слишком сложно как мне кажется, а вот подкасты – возможно, хотя сам я их не слушаю :)
И где-то в далёком светлом будущем я хотел бы сделать из FOSS News профессиональное СМИ, даже домены купил уже.
Присоединяйтесь!
Как я уже говорил, планов много, качество хочется повышать, новые направления открывать, но ресурсов не хватает. Поэтому возникла идея сделать распределённой работу над самой продолжительной частью процесса подготовки – категоризацией источников. Для этого можно сделать Telegram бота. Он же может использоваться для добавления материалов, которые оказались вне поля зрения FNGS-робота.
Поэтому приглашаем к участию Python-разработчиков, которые хотели бы помочь в разработке бота, и просто активистов, которые хотели бы поработать с ботом в будущем.
Мы также открыты к другим вариантам сотрудничества.
И с радостью расскажем о ваших FOSS проектах, скидывайте ссылки!
Контакты и ссылки
На последнем слайде были контакты и ссылки, приведу их просто текстом для удобства.
Ресурсы PermLUG:
- Сайт (статичная страничка, просто для ссылок на всё остальное)
- Telegram — @permlug (канал) и @permlug_chat (чат)
- ВКонтакте
- Fediverse
Исходники инструментов:
- FOSS News Gathering Server
- FOSS News Tools
Мои личные контакты:
- gim6626@gmail.com
- @gim6626 в Telegram
Спасибо за внимание! Читайте, комментируйте, распространяйте FOSS News и подключайтесь к нашей команде!
Ссылки на материалы по «Админке»:
- Полная программа te-st.ru/events/adminka
- Видеозапись первого дня www.youtube.com/watch?v=dvsCYfeo_qc
- Видеозапись второго дня www.youtube.com/watch?v=gCukiw4DWuU