Что значит

«быть мейнтейнером open-source проекта»

на самом деле

Иван Меньших (RaRe Technologies)

Gensim

Gensim

позволяет получить векторное представление для сущности

Вася                                  [0.15, 0.35, 0.61]      Слово

Вася сидит дома         [0.23, 0.44, 0.35]      Документ

Вася

Коля             [0.19, 0.64, 0.99]      Узел графа

Саша

Лев

similarity(Вася, Коля) = ....

Gensim

from gensim.downloader import load
from gensim.models import Word2Vec

corpus = load("text8")
model = Word2Vec(corpus)

print(model.most_similar("cat"))

"""
[(u'dog', 0.830856204032898),
 (u'panda', 0.7922875285148621),
 (u'pig', 0.7816621661186218),
 (u'goat', 0.779694676399231),
 (u'bee', 0.7739807367324829),
 (u'ass', 0.7661241292953491),
 (u'hamster', 0.761398196220398),
 (u'blonde', 0.7453086376190186),
 (u'bird', 0.7418307065963745),
 (u'stuffed', 0.7414127588272095)]
"""

Gensim

Кластеризация

Поисковые движки

Классификация

Анализ тональности

Чат-боты

QA

...

Как меня туда занесло?

  1. Использовал Gensim на работе
  2. Контрибьютил фичи, фиксил баги
  3. Сказал текущему мейнтейнеру, что хочу сменить работу
  4. ....
  5. PROFIT

Как меня туда занесло?

Я ещё не знал, во что вписался ...

Как устроен Gensim

 

Как устроен Gensim

 

Как устроен Gensim

  • https://radimrehurek.com/gensim/​
    • Sphinx (с кастомным шаблоном) + плагины
    • Хостится на VPSке
    • Собирается и обновляется tox -e docs && scp -r ...

 

tox -e docs && scp -r ...

Сообщество

  • Github
    • Фича-реквесты
    • Баг-репорты
    • Холивары

 

  • Twitter
    • Анонсы клёвых штук
    • Короткие обсуждения
  • Gitter
    • Чатик
    • Не индексируется
    • Context-switch

 

Зачем нужен мейнтейнер?

Ожидание

Зачем нужен мейнтейнер?

Ожидание

Реальность

Зачем нужен мейнтейнер?

Развитие проекта

  • Саппорт всех уровней
  • Code-review & Merge
  • Release
  • Roadmap
  • Делает всё то, что не делают обычные контрибьюторы
    • Настройка окружения, тесты, чекеры, CI, etc
    • Пишет гайды и документацию
    • Координирует контрибьюторов
  • Иногда (никогда) пилит фичи

 

Что важно для OSS?

Поддерживать проект в ready2use состоянии

  • Колёса & пакеты (PyPI, conda-forge, ...)
  • Тесты
  • АКТУАЛЬНАЯ ДОКУМЕНТАЦИЯ

Что важно для OSS?

Общаться

Как:

  • Twitter
  • Блог
  • Конференции

 

О чем:

  • Новые фичи
  • Серьезные багфиксы
  • Туториалы

Что важно для OSS?

Привлекать контрибьюторов

  • Student incubator
  • Google Summer of Code
  • Sprints

Что важно для OSS?

Любить Open-Source

Спасибо!

Иван Mеньших

 

menshikh_iv
menshikh-iv
menshikh.iv@gmail.com

OSS maintaining (Gensim)

By Ivan Menshikh

OSS maintaining (Gensim)

  • 686