![](https://habrastorage.org/webt/2v/m-/zg/2vm-zgl5a5cz6g0o2h8gavks8o0.jpeg)
Всем привет!
Вот уже больше года я вместе с несколькими товарищами делаю дайджесты FOSS News для Хабра с материалами о свободном и открытом ПО и железе. Недавно меня пригласили на онлайн-конференцию разработчиков программного обеспечения с открытым кодом «Админка», где я рассказал о наших дайджестах для тех, кто их не видел, и об их «внутренней кухне» для тех кто уже читает. Я подумал, что здесь читателям это тоже может быть интересно, поэтому публикую текст доклада, на котором я основывал своё выступление.
Оглавление
- Введение
- Предыстория
- Идея
- Формат
- Последние главные материалы
- Развитие за год+
- Схема подготовки
- Источники, ключевые слова, фильтрация и прочее
- Интерактивный категоризатор
- Админка
- Команда
- Планы
- Присоединяйтесь!
- Контакты и ссылки
Введение
Сегодня я хочу рассказать о дайджестах новостей и других материалов о свободном и открытом ПО и железе под названием FOSS News. Free and Open Source Software News то есть. Мы с товарищами делаем эти дайджесты с января 2020 г., то есть больше года. В своём выступлении я хочу не только рассказать, что мы делаем, для тех кто не читал, но и показать некоторые детали процесса подготовки, что будет новым для тех кто нас уже и так читает, и остальным может быть интересно. Ещё FOSS News – это не просто дайджесты о FOSS, это сам по себе FOSS проект, потому что в нём много автоматизации и её код выложен под свободной лицензией. В PermLUG я занимаюсь организационными вопросами и проектами, по основной же работе в Miro я инженер по нагрузочному тестированию и имею около 12 лет опыта разработки ПО.
Предыстория
![](https://habrastorage.org/webt/us/h0/8h/ush08hh9bh1ljjuhaorbrylfjc4.jpeg)
Всё началось на встрече Пермской группы пользователей GNU/Linux 23 января 2020 г., а группа сама появилась аж 24 года назад. Я тогда только в школу ходил и ещё не участвовал. Далее было 5-6 волн активности и затишья. Я подключился где-то на 4-й. И последняя волна была инициирована мной, идея дайджестов тоже была моя, это я на верхнем фото справа со странным лицом, просто другого фото не было. Захотелось что-то полезное делать кроме собраний. Я и стал делать. Объединяться хорошо, а объединяться вокруг проекта – ещё лучше. И в рекордные сроки, через 3 дня после той линуксовки, был готов выпуск №0. А со временем ещё пара людей подключились.
Идея
![](https://habrastorage.org/webt/qh/qq/yc/qhqqycm5fcwuonpzrnskmmcttsk.jpeg)
Идея дайджестов была простая. Я читал несколько источников о свободном и открытом ПО и железе, но мне мало интересны были релизы, которым уделялось достаточно много внимания. Я просто регулярно делаю sudo apt upgrade и радуюсь если что новое появилось в программах, которыми пользуюсь, ну а если что не заметил – надо будет нагуглю. Именно релизы я отслеживаю буквально по нескольким проектам. Мне было интересно, чем ещё живёт сообщество. Что куда внедрили, кто исходники открыл, аналитика разная о достижениях FOSS, привлечение финансирования, отчёты о работе фондов и всё такое. Гипотеза была такая, что не одному мне интересна именно в первую очередь такая приоритизация.
Формат
![](https://habrastorage.org/webt/jw/yw/xs/jwywxsqo_fbsx_gt6k7warwl7ks.jpeg)
Формат менялся со временем и чуть меньше года назад или около того стал примерно таким:
- Несколько главных материалов. Это могут быть и новости, и статьи, и какие-то особо важные релизы.
- Блок «короткой строкой». Здесь по указанным трём категориям собрано всё, что попало в ленту из всех источников и не попало в главное, это реально много материалов, но там просто заголовок и ссылка и всё поделено по категориям. В начале дайджеста оглавление. Можно просто перейти в нужный блок, пропустив неинтересное.
- Прочее. Тут например ссылки на другие дайджесты или что-то ещё, что не вписалось в основные категории.
Выход каждую неделю в воскресенье вечером.
Последние главные материалы
![](https://habrastorage.org/webt/my/17/bl/my17bl1xdelxgw-6ksimy5bctdi.jpeg)
Вот пример материалов из последнего дайджеста, которые я счёл важными. Как видно, темы разнообразные и могут быть интересны значительно более широкой аудитории, чем релизы.
Развитие за год+
![](https://habrastorage.org/webt/vp/6w/hr/vp6whrqkreinpq98i5xpor6ljrq.jpeg)
Чуть более чем за год всего было выпущено 62 дайджеста. Выпуск №0 был опубликован ВКонтакте и это было провалом, просмотров было очень мало, всего несколько десятков, я очень расстроился. Сейчас, вспоминая это, я думаю – с чего вдруг я вообще решил релизить ВКонтакте. Может просто потому что у нас была группа только там и других мыслей и в голову не могло прийти.
Выпуск №1 запостили уже на Хабр по совету одного знакомого. Спасибо тимлиду с прошлого места работы за инвайт. И тут труды были вознаграждены – просмотров было много, тысяч 7. И на только что созданный канал в Telegram сразу подписалась пара сотен человек.
Далее такого пика просмотров как у выпуска №1 мы не достигали и вообще число просмотров стабилизировалось, зато сформировалась постоянная аудитория и наверное это тоже неплохо. Аудитория примерно 2.5 тысяч человек – не знаю много это или мало, мне нормально. Ну а Telegram канал растёт потихоньку но стабильно, это приятно.
Схема подготовки
![](https://habrastorage.org/webt/p6/7i/ce/p67icezu_aqswpcwo_z1p2icrds.jpeg)
На этом пожалуй всё, что подготовлено только для тех, кто не знал про дайджесты. Ещё ссылки на подписку будут в конце. Теперь немного внутренней кухни, она тоже интересная сложилась за более чем год выпусков.
Как делаются дайджесты:
- FNGS робот, написанный на Python, крутится на сервере и пробегается по куче RSS и HTML источников, собирает материалы и отфильтровывает по ключевым словам.
- С помощью интерактивного консольного клиента-категоризатора fncategorizer.py, тоже на Python (у меня почти всё на Python), я обрабатываю то что насобирал сервер, отбрасываю не по теме или явно неинтересные материалы, раскидываю по категориям с помощью подсказок категоризатора, который тоже работает по базе ключевых слов, всё это отправляется обратно на сервер.
- Скрипт remotedatatohtml.py вытаскивает с сервера все заголовки и ссылки для текущего выпуска и метаинформацию и генерирует HTML.
- HTML загружаю на Google Drive, кидаю ссылки для ревью товарищам.
- После ревью гуглодок выкачиваю и скриптом googledoctohtml.py преобразую в формат Хабра, в том числе строя оглавление. Да, в редакторе Хабра не совсем стандартный HTML.
- Заливаю на Хабр, ссылки кидаю в Telegram, RSS и по соцсетям.
- Собираю статистику, тоже скриптом естественно.
И как уже говорил в начале, код инструментов автоматизации, как сервера так и клиента и вспомогательных утилит – под свободной лицензией, ссылки в конце. В принципе после некоторых доработок это можно использовать для любых дайджестов. Правда я этим не заморачивался, но кому надо могу помочь.
Источники, ключевые слова, фильтрация и прочее
![](https://habrastorage.org/webt/e8/ey/pp/e8eypppxgd3txzldoestgbxqalc.jpeg)
Ещё немного статистики на слайде. Русскоязычные источники я насобирал по памяти, а англоязычные – считерил немного, просто некоторое время назад linux.com собирал тематические материалы с других ресурсов и делал ссылки у себя, а я просто посмотрел откуда они собирали и добавил в базу. Ключевые слова набирались в ходе работы с категоризатором, который я написал, и ещё я стащил названия всех проектов, которые ведёт Linux Foundation. Есть на примете ещё источники. Вот тут написано про 500 исходных и 160 итоговых материалов – просто не все ленты прям строго тематические, приходится отбирать по ключевым словам, большую работу тут за меня делает робот, я отсеиваю буквально десяток-другой вручную или около того. Ещё десяток-другой это дубликаты, их потом вручную объединять приходится пока что. По категориям раскидывание идёт в полуавтоматическом режиме, скрипт делает мне предложения исходя из ключевых слов, я принимаю или указываю свои варианты.
Для тех кому интересно – полный список источников (сортировка просто по алфавиту):
- https://analyticsindiamag.com
- https://arstechnica.com
- https://astralinux.ru
- https://habr.com
- https://hackaday.com
- https://itsfoss.com
- https://jaxenter.com
- https://linuxfoundation.org
- https://linuxinsider.com
- https://losst.ru
- https://mashable.com
- https://opensource.com
- https://pingvinus.ru
- https://sdtimes.com
- https://securityboulevard.com
- https://siliconangle.com
- https://techcrunch.com
- https://technode.com
- https://thenextweb.com
- https://venturebeat.com
- https://www.3dprintingmedia.network
- https://www.basealt.ru
- https://www.cbronline.com
- https://www.helpnetsecurity.com
- https://www.linux.com
- https://www.linux.org.ru
- https://www.opennet.ru
- https://www.securitysales.com
- https://www.techradar.com
- https://www.tfir.io
- https://www.youtube.com/channel/UC3kAbMcYr-JEMSb2xX4OdpA
- https://www.zdnet.com
Интерактивный категоризатор
![](https://habrastorage.org/webt/mj/ko/ey/mjkoeyh9dmbpnjkmki8thc7g624.jpeg)
Какой линуксоид без консоли :) Вот скрин клиента-категоризатора, с которым я работаю каждый будний день по утрам полчаса-час. Кому-то может выглядит страшно этот скриншот, но мне прям вообще удобно, радуюсь когда пользуюсь, сильно упростил работу.
Админка
![](https://habrastorage.org/webt/1a/bn/7o/1abn7olqfcdzo-2uuifyscpah08.jpeg)
Поскольку FNGS сервер работает на Python Web фреймворке Django, бонусом шла админка. Через неё удобнее поиск делать и какие-то отдельные записи править и добавлять. Тут особо моей заслуги нет, просто показываю. Сборная солянка такая из консольных и графических инструментов, но мне норм.
Команда
![](https://habrastorage.org/webt/7k/u3/xa/7ku3xabc32sjg7bsx4sdn-6izm8.jpeg)
В команде FOSS News из постоянных участников робот, мы вдвоём с Васей из PermLUG и ещё один человек с Хабра. Робот делает очень много рутинной работы, которой если бы мне пришлось заниматься каждую неделю я бы точно с ума сошёл :) А последнего я в жизни никогда не видел, просто он сначала на Хабре замечания к выпускам скидывал в личку, а потом я его пригласил к предрелизной подготовке, и он большой молодец.
Планы
![](https://habrastorage.org/webt/is/q8/gp/isq8gp5narx_i-giydhg_zxpcac.jpeg)
Давно, когда я придумывал FOSS News, мне хотелось не просто собирать новости, но и давать контекст, ссылки на близкие материалы, в общем не просто ссылки собирать, но и разбирать их полноценно. К сожалению это плохо успеваю делать. Вот я на следующем слайде буду вас призывать подключаться к нашей команде. Если это получится – будет больше времени и ресурсов для дальнейшего развития проекта.
Ещё читатели предлагали нам делать видеодайджесты, но это слишком сложно как мне кажется, а вот подкасты – возможно, хотя сам я их не слушаю.
И где-то в далёком светлом будущем я хотел бы сделать из FOSS News профессиональное СМИ, даже домены купил уже.
Присоединяйтесь!
![](https://habrastorage.org/webt/tb/so/wn/tbsownrqfts0qnui5v2gagzsouk.jpeg)
Как я уже говорил, планов много, качество хочется повышать, новые направления открывать, но ресурсов не хватает. Поэтому возникла идея сделать распределённой работу над самой продолжительной частью процесса подготовки – категоризацией источников. Для этого можно сделать Telegram бота. Он же может использоваться для добавления материалов, которые оказались вне поля зрения FNGS-робота.
Поэтому приглашаем к участию Python-разработчиков, которые хотели бы помочь в разработке бота, и просто активистов, которые хотели бы поработать с ботом в будущем.
Мы также открыты к другим вариантам сотрудничества.
И с радостью расскажем о ваших FOSS проектах, скидывайте ссылки!
Контакты и ссылки
На последнем слайде были контакты и ссылки, приведу их просто текстом для удобства.
Ресурсы PermLUG:
- Сайт (статичная страничка, просто для ссылок на всё остальное)
- Telegram — @permlug (канал) и @permlug_chat (чат)
- ВКонтакте
- Fediverse
Исходники инструментов:
Мои личные контакты:
- 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
hottabxp
Спасибо! С 17 февраля ждал эту статью.