В предыдущей опубликованной мной на Хабре статье ("Так почему же ты не участвуешь в разработке Open Source программного обеспечения?") автор поднимал вопрос — почему разработчики не участвуют в опенсорс проектах. Сегодня предлагаю посмотреть на ситуацию глазами разработчика желающего помочь опенсорсу, но раз из раза откладывающему этот шаг. Что ему мешает?

Брендон Хейс (Brandon Hays) еще в 2011 году написал на эту тему отличную статью перевод которой я публикую ниже. Через опыт автора мне хотелось выйти на системное понимание проблем, делающих опенсорс “недружелюбным” для новичков. Буду очень рад, если читатели поделятся свои опытом: изменилось ли что-то за последние годы? как вы решали/решаете обозначенные проблемы? что нужно сделать, чтобы в опенсорс проектах было легче участвовать?

И да — несмотря на все сказанное, лично я считаю, что Open Source — это единственно возможное будущее для разработки ПО. Многие со мной не согласятся — прошу не кидаться камнями, я постараюсь подробнее развить эту мысль в наших следующих статьях.



Я такой лицемер. Несколько месяцев назад я написал пост про преодоление страха участия в опенсорс проектах.

И с тех пор не сделал ни шагу в этом направлении. В комментариях на Твиттере я писал, что для новичков опенсорс проекты похожи на клетки с тиграми. Вынужден сказать, с тех пор мое мнение не изменилось.

Нет, я, так или иначе, участвую в нескольких проектах. Но до сих пор ощущаю себя аутсайдером, потому что мой вклад не касается кода.

Так почему же я (и, предполагаю, многие другие) остаюсь “опенсорс тихоней”?

Сильно рискуя спроецировать свои чувства представления о ситуации на других, я бы выдвинул несколько предположений.

  • Не существует никакого сертификата, обряда или знака отличия, c помощью которого можно было бы публично заявить о своей готовности участвовать в работе над открытым ПО.
  • Непонятно, с чего начинать. Судя по тому, что я слышал, большую часть работы участников составляет добавление отсутствующих, но необходимых функций или исправление обнаруженных багов. Они могут решать проблемы, выявленные на тестах и даже публиковать патчи. Я с такими вещами каждый день не сталкиваюсь. Немногие разработчики запрашивают конкретную помощь по проекту, и ещё меньше – стремятся брать опеку над начинающими.
  • Гайдлайны делают жизнь кураторов проще, а мою – сложнее. Да, курирование опенсорс проекта это сложный и неблагодарный труд. Но я встречал правила участия и гайдлайны, которые пакуют простую задумку фикса в столько слоёв бюрократии, что невольно возникают ассоциации с Майкрософт.
  • Опенсорс для тех, кто кодит лучше меня. Я понимаю, что это звучит как оправдание, но мне неуютно от осознания того, что софтом, который я публикую, могут пользоваться настоящие разработчики.
  • Мои попытки поучаствовать в опенсорс проектах были безуспешны — от этого я чувствую себя глупо. Вот я отправил несколько пул реквестов, и ни один из них не был одобрен. И ни одного комментария о причинах. Это словно подтверждение от вселенной, мол, да, ты – идиот и твоя «помощь» не к месту. Исключительно унизительная трата времени.
  • Нет времени. У меня есть ребёнок, новая машина и растущая гора обязанностей. На написание кода у меня уходит в 3-10 раз больше времени, чем у опытных разработчиков. А ещё не связанные с кодом вклады тоже отнимают время, которое можно было бы посвятить коддингу. Да, это универсальное оправдание, которое без остальных не так значимо, но и его стоит упомянуть.
  • Отсутствие культуры коллаборации. Я думаю, большинство разработчиков привыкли разбираться во всём сами и не ждут поддержки со стороны. Но разве опенсорс это какая-то духовная стезя, на которой к тебе никто не может присоединиться?

Поэтому да, опенсорс может быть пугающим как клетка с тиграми. У меня нет решений приведённых выше проблем. Я просто хотел бы видеть больше проектов, которые явным образом указывают, чего они хотят от контрибуторов: в виде, скажем, призывов провести дополнительное тестирование или исправить конкретные баги или доработать документацию. И еще хотелось бы получать оперативные ответы на пулл реквесты.

Еще было бы здорово дополнить функционал GitHub'а уведомлениями об активных проектах, соответствующих вашему профессиональному уровню. Это была бы неплохая фича.

Комментарии (115)


  1. Siemargl
    12.01.2018 22:18
    +1

    Статья написана (а зачем? это еще тот вопрос) с точки зрения начинающего программиста:

    — А что даст мне участие в Опенсорс проектах, медали или что?

    А если посмотреть на этот же процесс с точки зрения матерого волка:

    — У меня валом денег, свободного времени и почему бы мне не заняться интересной фигней?


    1. dbagaev
      12.01.2018 23:18
      +1

      В статье упомянуты машина и дети. На своем опыте знаю, что при наличии оных скорее всего со временем очень туго, ну а деньги тут вроде бы значения и не имеют.


      1. Yeah
        13.01.2018 12:29

        Согласен. Жена и дети — главные враги open-source. Кроме шуток :)


        1. vagran
          13.01.2018 12:34

          Да и вообще любых личных пооектов в оставшееся от работы время… По крайней мере, пока дети не подрастут.


          1. OpenGIft Автор
            13.01.2018 12:40
            +1

            А если жена OpenSource-разработчик? :)


            1. skiedr
              13.01.2018 13:12

              Тогда, при отсутствии бабушек в соседней комнате, тем более не будет времени.


        1. achekalin
          15.01.2018 16:38

          Жена и дети — главные враги open-source.

          С точки зрения жены и детей, этот самый опенсорс — прямо враг семьи какой-то!


    1. MacIn
      13.01.2018 16:30
      +1

      У меня валом денег, свободного времени и почему бы мне не заняться интересной фигней?

      Например, спортом. Или поездками. Или еще чем. Нет, вся жизнь — за экраном, вот это девиз «матерого».


      1. Siemargl
        14.01.2018 00:28

        Конечно лучше спортом, а почему бы и нет?

        При достаточной квалификации, не нужно «всю жизь» проводить за экраном. Достаточно пары часов.


        1. lair
          14.01.2018 00:29

          … пары часов — в день? в неделю? в месяц? Речь все еще о разработчике идет?


  1. Alert123
    12.01.2018 23:00

    Делать свои собственные проекты куда интересней и научиться новому в них гораздо проще.
    И даже необязательно их выкладывать как опенсорс, если можно к примеру как shareware.


    1. IdFox
      13.01.2018 08:09

      Согласен, но есть минус — в своих проектах свои же ошибки не всегда все увидишь…


      1. Lure_of_Chaos
        13.01.2018 11:55

        И тут же вопрос, (как пропиариться) привлечь интерес разработчиков к своему проекту.
        Да, есть код где-нибудь на гитхабе или битбакете, описание, все дела — но толку, если никому это не нужно?


        1. greabock
          13.01.2018 18:16
          +1

          Не нужно делать то, что никому не нужно )
          А если всё же это кому-то нужно, то пропиариться можно той же статьёй на хабре или в соответствующей ветке reddit.


          1. OpenGIft Автор
            13.01.2018 18:20

            Тут ещё проблема коммуникации: что нужно, что ненужно, какой функционал и путь развития выбрать.


          1. Harrix
            14.01.2018 11:16

            Кстати, глупый вопрос. А какой раздел в reddit отвечает за подобную тематику, как на хабрахабр?


            1. synedra
              15.01.2018 06:46

              Единого раздела нет, субреддиты более мелкие и узкоспециальные штуки, чем весь хабр. Пиариться можно в языковых разделах — /r/python, /r/golang и прочая, или в разделах по тематике проекта (скажем, /r/telegrambots).


      1. crea7or
        13.01.2018 15:09
        -7

        Если то, что ты сделал не будут покупать — значит сделал плохо.


  1. nikweter
    13.01.2018 05:59

    Для начала у меня всегда один вопрос перед обсуждением всех «почему участвую»и «почему нет».

    А ты используешь опенсорс в своей работе и жизни?


    1. aik
      13.01.2018 10:03

      Большинство программистов и админов использует. И?


    1. Firz
      14.01.2018 11:51
      +1

      Давайте я Вас так же спрошу про что-то еще. Вы уже вносите свой вклад в науку? А пользуетесь бесплатными знаниями/научными исследованиями?
      Могу еще из десятка сфер такой же вопрос задать.
      Почему-то все думают что если человек использует OpenSource, он должен сам в нем участвовать. Но тогда пускай сразу участвует и в десятках других сфер, чьими благами он так же пользуется.


      1. nikweter
        14.01.2018 12:10

        То есть вы хотите чтобы все становились немного учеными? Помогали вам проводить эксперименты? Я не против!
        Пишите адрес лаборатории, выезжаю!


        1. Firz
          14.01.2018 12:35

          Я хочу чтобы люди понимали что оно так не работает, как многие себе представляют. Кроме лаборатории(но я не занимаюсь наукой, к слову), не забудьте еще музыку писать и выкладывать по вечерам, а то, возможно, слушаете музыку, которую люди бесплатно выкладывают. А может еще и ролики на YouTube смотрите, которые люди делают?


          1. nikweter
            14.01.2018 12:47

            Ох, блин! У меня тоже есть несколько видео на YouTbe в бесплатном просмотре! И, стыдно сказать, пару каверов записал и тоже выкладывал где-то. Отстойно получилось, если честно.
            Думаете, не стоило в бесплатный просмотр и прослушивание отдавать? Надо было только если бы мне заплатили за потраченное время?


          1. nikweter
            14.01.2018 13:29
            +1

            Наверное, стоит пояснить мою позицию. Представьте, что вы работаете в небольшой компании, которая не предоставляет сотрудникам в офисе бесплатного чая или кофе с печеньками. И вот люди на свои деньги покупают, приносят во офис и все едят и пьют по необходимости. И вот кто-то один никогда ничего не приносит. Его спрашивают — почему, мол, ничего не принесешь? Он отвечает, что на свои деньги может покупать что захочет и когда захочет, он их честно заработал. И продолжает есть и пить.
            Нет никакого закона или правила, которое запрещало бы ему так поступать. Все это добровольно приносят для всего коллектива, а этот человек — его часть. И как тратить его деньги — тоже только его право. Но вот пахнет такое поведение, с моей точки зрения, не очень.
            Более того, можно предсказать что будет дальше. Глядя на него люди постепенно перестанут приносить что-либо для всех, будут только для себя покупать. Так может случиться и с сообществом. Если все больше людей будут только брать, а все меньше отдавать — сообщество погибнет.


            1. Firz
              14.01.2018 14:07

              Вот только не так это работает, один печеньки печет, другой чай приносит, третий сахар, четвертый туалетную бумагу и все вроде счастливы. И тут некто говорит: «я не понял, я один из тех кто приносит печеньки, но я что-то не вижу чтобы все остальные носили печеньки. Ну и что что еще есть люди которые приносят чай, сахар или что-то еще полезное делают, я хочу чтобы каждый кто ест печеньки был обязан тоже приносить печеньки.» Вот именно так это выглядит с OpenSource в подобных статьях.


            1. akryukov
              14.01.2018 14:08

              Если некто берет печеньки, то они заканчиваются.
              Если некто клонирует репозиторий, то с оригиналом ничего не происходит.


              1. MacIn
                14.01.2018 15:20

                Здесь нужно говорить о человеко-часах, потраченных на производство/создание печенья и создание идеи/производство продукции и оказание услуг при помощи нее.
                Так-то если кто-то скопирует себе рецепт печенья, то с оригиналом рецепта печенья тоже ничего не происходит.


        1. Kot_Dymok
          14.01.2018 15:35

          Ну, для этого можно даже просто играть в игры.
          А если осознанно, то могу предложить, к примеру, LHC@home: http://lhcathome.web.cern.ch.
          Ну и в статье Википедии «Добровольные вычисления» в списке «Проекты добровольных вычислений» внизу страницы можно выбрать проект себе по вкусу.


          1. TheKnight
            15.01.2018 07:58

            Игроки Eve Online занимались этим из игровой выгоды.
            Первая реализация, к тому же, не мешала накрутке рейтинга путем посыла заведомо неверных данных большим количеством пользователей.
            Вообще, довольно таки любопытный пример трагедии общин.


  1. monah_tuk
    13.01.2018 06:50

    А по-моему, всё куда проще и прозаичнее. Первое, есть хобби, сделал проект… опубликуй исходники. Оппа, ты уже в open source разработке. Второе (для меня это стало первым): просто пользоваться открытыми приложениями и исправлять то, что именно тебя расстраивает и не устраивает. И не нужно парится, как начинать, что начинать, зачем начинать. А то как-то цели и средства поставлены с ног на голову. Разработка как самоцель, бред же.


    ЗЫ и я так, ничем особым не засветился, но и не для этого что-то писал, патчи отправлял и так далее.


    1. synedra
      13.01.2018 09:26

      просто пользоваться открытыми приложениями и исправлять то, что именно тебя расстраивает и не устраивает


      И ловить отказы на пулл-реквесты или вежливые письма в духе «While the functionality you propose is definitely interesting, we feel that it's beyond the scope of our project and thus would be more useful as a separate library».


      1. monah_tuk
        13.01.2018 09:42

        И ловить отказы на пулл-реквесты или вежливые письма в духе «While the functionality you propose is definitely interesting, we feel that it's beyond the scope of our project and thus would be more useful as a separate library».

        А вот тут начинается прокачка способностей убеждения. Как минимум всегда стоит поставить себя на место разработчиков и понять, а в чём собственно дело? У меня тоже все мои идеи для плагина CMake для Qt Creator приняли, в результате — нанофорк с моими изменениями, которые нужны и полезны мне. Плюс ещё нескольким людям, кто репортит тикеты.


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


        Не отменяется и тот факт, что некоторые проекты могут находиться в состоянии стагнации и самим разработчикам ничего не нужно. Этим славился FFmpeg до раскола и появления libav. Но это стало неплохим пинком гордой птичке и она полетела. Как минимум библиотечную часть FFmpeg читать не так отвратительно, как лет 10 назад.


        В общем, напишите на почту, в рассылку, расспросите, почему и как. Меня, к примеру, ни разу не посылали. Отказы были, но часть отвергнутых изменений таки получилось внедрить, с некоторыми модификациями, а часть более менее обосновано была отвергнута.


        В остальном… лучше вообще не начинать разговор: "я бы… но...". Или делаешь или не делаешь. Всё просто.


        1. monah_tuk
          13.01.2018 23:43

          У меня тоже все мои идеи для плагина

          конечно же нужно читать как: НЕ все мои идеи...


      1. kekekeks
        13.01.2018 10:07

        While the functionality you propose is definitely interesting, we feel that it's beyond the scope of our project and thus would be more useful as a separate library

        Это абсолютно нормальный ответ. Возможность делать зависимости между библиотеками не просто так придумали. Если всё тащить в одну, там ад и содомия начнётся.


        1. akryukov
          13.01.2018 14:02
          -1

          Возможность делать зависимости между библиотеками не просто так придумали. Если всё тащить в одну, там ад и содомия начнётся.

          Управление зависимостями — тот еще ад и содомия. Особенно весело, когда приходится использовать две библиотеки, которые транзитивно тащат разные версии одной и той же библиотеки.


    1. zmeykas
      13.01.2018 22:24

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


  1. LorDCA
    13.01.2018 06:54

    Пробовал выкладывать проект на гитхаб. Как результат, заинтересованные получили алгоритм, я получил дырку от бублика. Снес все и больше не выкладываю.


    1. nikweter
      13.01.2018 08:20

      А вы какими-нибудь опенсорс проектами пользовались в жизни?
      Поздравляю! Именно так это и работает!


      1. LorDCA
        13.01.2018 08:30

        Теми проектами которыми пользуюсь, я стараюсь их улучшать и как минимум общаюсь с разработчиками.


    1. worldmind
      13.01.2018 10:14

      Не очень понятно что вы ожидали получить от выкладывания на гитхаб.


      1. Merkat0r
        13.01.2018 13:00

        Вы тут, так то, собственно (имхо и от себя добавлю) и подтверждаете слова LorDCA — хочешь что то монетизировать и нет денег на продвижение? или просто ты не компания с заранее более весомым доверием — досвидули опенсурс.
        Сейчас оно именно так и работает — есть огромная куча людей, которые ищут ИДЕЮ, чтобы скомуниздить. В итоге тебе донат в 10$\год, а им все сливки с наваром.


        1. worldmind
          13.01.2018 13:07

          Идея не стоит ничего, идей у всех полно, да вот только никто не хочет работать над их реализацией, ценность имеет сервис, продукт, а не замки в облаках.


          1. Merkat0r
            13.01.2018 13:08

            ок, главное, если вам придут в голову хорошие идеи — незамедлительно отправляйте
            мне :)


            1. worldmind
              13.01.2018 13:11

              Жаль не записываю, а то бы весь список послал, вас в какой сфере идеи интересуют? Общество/бизнес? Бизнес в ИТ?


              1. Merkat0r
                13.01.2018 13:15

                в любой из них


                1. worldmind
                  13.01.2018 14:09
                  +1

                  Ну вот я совсем не бизнесмен, поэтому бизнес идеи как-то не генерю и не запоминаю.
                  У меня идеи касаются улучшения мира, типа децентрализованного инструмента для прямой демократии или инструмента для поддержки принятия решений (некий гибрид форума и mind map'а)


          1. dom1n1k
            13.01.2018 14:59

            Есть абстрактные идеи, есть идеи конкретных решений. Вторые вполне себе имеют ценность.


            1. Merkat0r
              13.01.2018 16:00
              -2

              воистину


            1. worldmind
              14.01.2018 11:52

              Да, я преувеличил, ценность конечно есть, но её обычно переоценивают — аналогичную идею много кто может сгенерить, а вот реализовать могут единицы, не потому что они хакеры, а потому что мотивированы делать, а не коменты строчить.


        1. lair
          13.01.2018 15:44
          +2

          хочешь что то монетизировать и нет денег на продвижение?

          Ну так гитхаб вроде и не про монетизацию?


          Сейчас оно именно так и работает — есть огромная куча людей, которые ищут ИДЕЮ, чтобы скомуниздить. В итоге тебе донат в 10$\год, а им все сливки с наваром.

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


          1. Merkat0r
            13.01.2018 15:55

            И про монетизацию тоже — монетизировать можно вообще все, просто надо знать как.

            А, собственно, как вы представляете себе их увидеть?)
            Или, кстати, можно ребром поставить — также, как не увидеть тех, кому изначально идея принадлежала.


            1. lair
              13.01.2018 16:37
              +1

              А, собственно, как вы представляете себе их увидеть?

              По продуктам на рынке.


              1. Merkat0r
                13.01.2018 17:06

                ок, тогда еще раз обращу внимание на вторую часть, а именно —

                Или, кстати, можно ребром поставить — также, как не увидеть тех, кому изначально идея принадлежала.


                1. lair
                  13.01.2018 17:09
                  +2

                  А не важно, кому она принадлежала. Важно, что если бы была "огромная куча людей… с наваром", то была бы и огромная куча хороших реализаций, потому что иначе откуда навар? А нет.


                  1. Merkat0r
                    13.01.2018 17:16
                    -3

                    Л-логика имхо вам надо мыслить куда шире, а сейчас — это просто не ваш круг, потому и не видите да и с таким отношением вряд ли увидите.


                    1. lair
                      13.01.2018 17:18
                      +2

                      Пойнт, однако же, в том, что я и опенсорс выкладываю/забираю в этом же круге, поэтому мне искренне пофиг (для целей опенсорса), что происходит за его пределами.


            1. avost
              14.01.2018 00:34
              +1

              А, собственно, как вы представляете себе их увидеть?)

              Да легко. В вашем варианте у каждого стоящего проекта с гитхаба должно быть несколько общеизвестных лучших "украденых" коммерческих реализаций. Чего мы, отнюдь, не наблюдаем даже близко.


              1. Merkat0r
                14.01.2018 04:22

                Да гдеж я про гитхаб то говорю. Все читать чтоль разучились.

                Я лишь утверждаю, что пока ТЫ сам не реализовал(если можешь) свою идею — в опенсурс (!)ей дорога закрыта, более того — я лишь сказал, что много тех у кого есть ресурсы — ищут как раз идеи чтобы реализовать ибо у самих они закончились

                Кстати — если не наблюдаете это всего лишь ваше упущение, например циско вебекс передает превед неким разрабам из Латвии, а отделение впн еще и опенвпн, кстати о Латвийцах — как там Микротик? уже начал соблюдать GPL(о божечки какже посмели ее нарушить и никому за это ничего не было) и открыл код? :) Как там Яблоко поживает, очередную нонейм компанию выкупили ради патента или просто отжали, все равно же если что на суд 1ккк найдется? О, а, Цукерберг неким братушкам уже позвонил? Про тетрис все помнят? это само наверно известно-лежащее на поверхности.

                Знаете у меня ощущение, что хабр помолодел так до средних лет 16 и остались одни лишь кодеры-переводчики альтруисты-максималисты во всем белом, готовые отдать все за звездочку на гите и верящих в розовых пони.
                Да, пожалуй, пускай будет х-суицидом.


                1. avost
                  15.01.2018 15:50

                  Да гдеж я про гитхаб то говорю. Все читать чтоль разучились

                  (пожимая плечами) гитхаб — лишь пример общеиспользуемого репозитория опенсорса. Не нравится гитхаб, ну, пусть сорсфордж будет.


                  утверждаю, что пока ТЫ сам не реализовал(если можешь) свою идею — в опенсурс (!)ей дорога закрыта

                  А вы точно понимаете термин "опенсорс" — opensource? Давайте, я немного поясню, на всякий случай. Часть source в этом слове означает — исходные тексты реализации. Реализации, Карл! У вас тафтология какая-то — пока не можешь реализовать идею дорога в открытую реализацию ей закрыта. — что это могло бы значить?


                  я лишь сказал, что много тех у кого есть ресурсы — ищут как раз идеи чтобы реализовать ибо у самих они закончились

                  угу. и я сказал, что если бы так было, то на каждый опенсорс проект мы бы наблюдали несколько вариантов коммерческих реализаций той же идеи. Но мы этого, как правило, не наблюдаем.


                  циско вебекс передает превед неким разрабам из Латвии

                  можно подробностей, какую идею они украли?


                  кстати о Латвийцах — как там Микротик? уже начал соблюдать GPL(о божечки какже посмели ее нарушить и никому за это ничего не было) и открыл код?

                  Тут я заинтересовался и поизучал вопрос. Насколько я понял из обсуждений на нескольких буржуйских форумах, да, они высылают исходники купившим их продукт по запросу. Если у вас есть микротик, попросите — пришлют и вам.


                  Как там Яблоко поживает, очередную нонейм компанию выкупили ради патента

                  Какое отношение патенты имеют к опенсорсу и к идеям вообще?


                  О, а, Цукерберг неким братушкам уже позвонил?

                  Вы уж определитесь хорошо это или плохо, поскольку "цукерберг позвонил" — это и есть самый лучший вариант для большинства компаний — её покупка крупным бизнесом. Или когда покупает Цукерберг — хорошо, а когда Эпл — плохо? Очень сложная у вас конспирология!..


                  Про тетрис все помнят?

                  Конечно. Про тетрис все помням, что он никогда не был опенсорсом, а так же то, что Пажитнов поимел с тетриса почти все возможные в его ситуации бонусы (хотя, большинство из них и не были денежными).


                  Знаете у меня ощущение, что хабр помолодел так до средних лет 16 и остались одни лишь кодеры-переводчики альтруисты-максималисты во всем белом, готовые отдать все за звездочку на гите и верящих в розовых пони

                  Ну, тут обратное ощущение. Что вы застряли в 90-х, когда некоторые ещё верили, что ни в коем случае и никому нельзя открывать свою супер-пупер-мега-идею, а то её тут же уворуют злые дяди, реализуют своими бесконечными ресурсами и вы окажетесь в пролёте. Ну, в общем, примерно 146% тех, кто так думал в пролёте и оказались. Я думал, большинство поумнели, но, как видно, не все.


        1. LorDCA
          13.01.2018 18:22

          Не в идее дело. Нафиг никому та идея не нужна. Решения сложных задач гораздо интереснее. Например мой алгоритм
          Представь что у тебя есть лес из векторов. Не ограниченный лес. И для примера ты хочешь сравнить новый вектор со всем лесом разом. Скажем с миллиардом векторов в лесу. Вот на сравнение вектора из 50к элементов уйдет примерно 2 минуты в текущей конфигурации железа. При этом размер леса не важен!
          Как результат получаешь набор всех совпадений с указанием на векторы имеющие такой же кусок. По каждому кусочку.
          Прямые задачи для такого алгоритма, распознавание/синтез речи, аналитика и экспертные системы нового поколения. Проблема только в том, что я на данный момент уперся в железо своего сервера, а любая корпорация может начать отжимать с этого деньги прямо не отходя от кассы и ни какой опенсорс за ними не угонится.


          1. TheKnight
            15.01.2018 08:07

            А бенчмарки есть? Оно реально работает на 1 миллиарде элементов?
            Предположим, что элемент вектора — целое число, 4 байта. Вектор размером в 50 тысяч элементов — это 200 000 байт только на полезную нагрузку.
            200 терабайт данных перелопатить за 2 минуты? Полтора терабайта в секунду?
            А где лежат эти данные?
            Что я упустил в своих расчетах?


            1. LorDCA
              15.01.2018 09:30

              Да хоть на 100 миллиардах. Не принципиально. Размер одного элемента ни каким образом не влияет на скорость обработки, ну или влияние не существенно. Узким местом выступает база данных (Cassandra). Которая впрочем хорошо маштабируется. Зависимость примерно такая вектор из 50 000 элементов тратит примерно 100 000 запросов в базу. Cassandra выдает 100 000 запросов в секунду при разворачивании на 10 нодах. То есть при наличии базы развернутой на 10 нодах, можно обрабатывать звук в реальном времени. Причем без обрезаний, рассматривать весь слышимый спектр. Что в теории должно позволить идентифицировать говорящего, разделять несколько одновременно говорящих голосов, преобразовывать речь в текст и идентифицировать акценты и ударения в словах.
              Упустили структуру которая используется для хранения этих данных. Она по сути реализует неограниченное количество множеств и описывает их отношения между собой.
              Бенчмарки можно сделать. На данный момент пытаюсь прикрутить к структуре модули аналитики и поучаствовать с этим на kagle


              1. lair
                15.01.2018 11:43

                При этом размер леса не важен!
                [...]
                Зависимость примерно такая вектор из 50 000 элементов тратит примерно 100 000 запросов в базу. Cassandra выдает 100 000 запросов в секунду при разворачивании на 10 нодах.

                Ну то есть размер леса все-таки имеет значение.


                1. LorDCA
                  15.01.2018 18:51

                  Ну я пока не заметил зависимости между размером леса и скоростью обработки. Все дело в структуре которая хранит данные. Один знакомый назвал это «сравнение через синтез». Просто одна нода не выдает 100 000 запросов в секунду даже при маленьком наполнении. Ну либо я не умею с ней обращаться. Прорвемся.


                  1. lair
                    15.01.2018 19:00

                    Ну я пока не заметил зависимости между размером леса и скоростью обработки.

                    При фиксированных ресурсах? Можно вам сразу не поверить?


                    1. LorDCA
                      15.01.2018 19:16

                      Ну вы можете делать все что угодно. Просто вы не знаете структуру хранения. Скажем так, размер базы после обобщения 100500 векторов будет в несколько раз меньше чем размер занимаемого этими 100500 векторами места. При этом любой вектор можно востановить назад без потерь. В ближайшее время доделаю работу с «картинками» и выложу результаты работы с датасетами MNIST.


                      1. TheKnight
                        15.01.2018 22:17

                        Бенчмарки с выложенными датасетами помогут прояснить ситуацию.


                        1. LorDCA
                          15.01.2018 23:30

                          если можете подкинуть ссылки на бенчмарки, то обязательно их попробую поделюсь результатами. пока пытаюсь отладить аналитику через участие в разных конкурсах.


                      1. lair
                        15.01.2018 23:02

                        Скажем так, размер базы после обобщения 100500 векторов будет в несколько раз меньше чем размер занимаемого этими 100500 векторами места.

                        Но все равно не O(1) по ресурсам.


                        А что, кассандра правда дает константное время доступа вне зависимости от объема датасета?


                        1. LorDCA
                          15.01.2018 23:23

                          Вы же понимаете что все зависит от правильного индексирования хранимых данных. при этом сам алгоритм использует только простые select и простые insert, нет никаких сложных или требующих вычислений запросов.


                          1. lair
                            15.01.2018 23:27

                            Вы же понимаете что все зависит от правильного индексирования хранимых данных

                            Нет, не понимаю. Никакое индексирование не может вам дать O(1) по ресурсам (а скорее наоборот, ухудшить их). И далеко не всякое индексирование даст вам O(1) по времени доступа.


                            Так какие же у кассандры гарантии?


                            1. LorDCA
                              15.01.2018 23:38

                              В рамках имеющегося сервера, после обобщения одного дата сета, получив порядка 100 миллионов записей в базе, какого то существенного возрастания времени на обработку следующих данных я не заметил.
                              academy.datastax.com/planet-cassandra/nosql-performance-benchmarks


                              1. lair
                                15.01.2018 23:46

                                В рамках имеющегося сервера, после обобщения одного дата сета, получив порядка 100 миллионов записей в базе, какого то существенного возрастания времени на обработку следующих данных я не заметил.

                                Теперь добавьте на этот же сервер сто раз по столько же.


                                academy.datastax.com/planet-cassandra/nosql-performance-benchmarks

                                Там только про масштабируемость. Ответа на мой вопрос там нет.


                                1. LorDCA
                                  16.01.2018 04:24

                                  Все будет в свое время. Не торопитесь. В полноценной версии будет 2 базы с более сотни миллиардом записей в каждой.
                                  А Cassandra, у Apple она крутится с 10 петабайтами данных на 75 000 нодах. Вроде не жалуются.


                                  1. lair
                                    16.01.2018 11:20

                                    А Cassandra, у Apple она крутится с 10 петабайтами данных на 75 000 нодах.

                                    Цифры как бы говорят нам, что не O(1) по ресурсам нифига.


        1. caballero
          13.01.2018 23:11

          Перечень ваши скомунизменных идей в студию! На самом деле даже если у вас есть стоящая идея вам придется приложить массу усилий чтобы убедить остальных что она чего то стоит. И даже если допустить невероятное у вас «украли» идею. Во первых украл на гитхабе это оксюморон там стоит кнопка клонировать на видном месте, во вторых проект не колбаса украли и у вас ее нет. Ваш код на гитхабе с датами комитов — вы всегда можете доказать что вы автор а это как минимум репутация. И сам код можете использовать — если кто то делает на нем деньги то вы можете — уверен пользователи предпочтут ваш открытый вариант чем тех кто украл. Опять же на гитхаб выкладываются проекты а не идеи. А если есть проект и есть его автор то есть человек готовый по своей инициативе работать над проектом то какой смысл его красть, особенно если его надо будет дорабатывать и все такое.
          Я бы не против чтобы мой проект «украли». Как минимум я бы имел возможность дать ссылку на внедрения моего проекта (или как минимум на количество скачиваний) а значит убеждать других пользаков что проект чего то стоит.



      1. LorDCA
        13.01.2018 17:56
        -1

        ожидал помощи, народ говорил, давай выкладывай, будем помогать, поможем привести код в порядок…
        по факту кучка скачиваний, ни одного помошника… и в чем смысл такого выкладывания если все равно никто не помогает?


        1. MacIn
          13.01.2018 18:12

          Разве что альтруизм.


        1. lair
          13.01.2018 18:26
          +2

          и в чем смысл такого выкладывания если все равно никто не помогает?

          What goes around, comes around. Просто отдать что-то людям.


        1. worldmind
          14.01.2018 11:50

          Ну если либа нужная, то это вопрос времени — если ей будут пользоваться то обязательно со временем кто-то найдёт баг или ещё что сделает.
          Знаю пример когда компания лет 10 использовала свободную софтину, а потом заказала пару небольших доработок одному из разработчиков.
          Ну и даже без помощи смысл есть — пиар себя как специалиста.


        1. worldmind
          14.01.2018 12:24
          +1

          Кто-то вот благодаря опенсорсу продвигается.


    1. MaximKulkin
      13.01.2018 12:04

      Писал я проект для себя, никак монетизировать его не собирался. Выложил в опенсорс и теперь у меня сообщество единомышленников, которые репортят, а иногда и чинят баги, добавляют новый функционал, советуют. Как следствие: улучшение мира и чувство самореализации. Не все можно измерить только деньгами.


  1. TuMoXEP
    13.01.2018 10:22
    -1

    Если так и прёт помочь кому-то в оперсорсе, то всегда есть кому. Нахер только сразу код менять лезть. Адекватные чуваки сами пишут, с чем у них проблемы, на что им самим не хочется свое время тратить, но было бы збс, если кто-нибудь поправил и т.п.

    личный опыт
    В 2010-м после статьи Грега сделал пару патчей в ядро, тупо подгоняя коды вендоров под кодингстайл. Фактического вклада — 0, но кайф же, если какому-нибудь Линусу надо будет именно те коды посмотреть, а тут раз — и не надо лишний раз силы и нервы тратить на поиск скобочек. Ну и ЧСВ свое потеребить можно)


    1. danfe
      13.01.2018 11:56

      Если так и прёт помочь кому-то в оперсорсе, то всегда есть кому. Нахер только сразу код менять лезть.
      Вот поддержу. Опенсорс это далеко не только код. Открываете багзиллу любого большого проекта (например, FreeBSD) и выбираете баги по своему вкусу: там вам и порты, и документация, и маны, ну и код, конечно, тоже. :-)


    1. dom1n1k
      13.01.2018 14:41
      +6

      Мейнтейнеры самых популярных репозиториев наоборот на большинство запросов пишут «PR welcome», потому что хотельщиков сотни, а реальных помощников единицы.


      1. caballero
        13.01.2018 23:14

        Потому что каждый хочет в резюме написать сколько у него пулреквестов на гитхабе.


        1. dom1n1k
          14.01.2018 00:14

          Нет, просто хотельщики в абсолютном большинстве случаев строчат issue с предложениями, нередко фантазийными, а не PR.


  1. cliff_5
    13.01.2018 12:07

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


    1. therhino
      13.01.2018 15:39
      -5

      Я бы назвал это особенностью менталитета наших (славянских) народов.


      1. therhino
        14.01.2018 19:15
        -2

        О, несогласные набежали. Много ли знаете людей, опровергающие эти слова? Не только в ИТ


        1. lair
          14.01.2018 19:31
          +1

          Ну да, я знаю немалое количество людей, которые делают что-то "бесплатно".


          1. therhino
            15.01.2018 16:18

            Ну а я малое, помимо того что я сам делаю бесплатно.


            1. lair
              15.01.2018 16:34

              Вам не кажется, что то, что вы мало знаете, — недостаточно обоснование для суждения о менталитете нескольких народов?


              1. therhino
                16.01.2018 03:07
                -1

                Вам не кажется, что то, что вы немало знаете, — не подтверждает обратное?
                Я думаю, спор окончен. Каждый при своем мнении.


                1. lair
                  16.01.2018 11:19

                  … а мне и не надо ничего подтверждать. Это вы пришли с тезисом о менталитете, вам его и подтверждать. Когда вы спросили, много ли кто-то знает людей, вам ответили.


    1. lair
      13.01.2018 15:45
      +8

      есть возможность работать над собственным проектом и заработать на нём

      Или не заработать. Я вот регулярно пишу код, заработать на котором очень сложно. А вот выложить на гитхаб/в нюгет и сделать других немного счастливее — легко.


      1. KvanTTT
        14.01.2018 00:51

        Профилем не поделитесь? Интересно было бы изучить ваш.


        1. lair
          14.01.2018 01:15

          Ну так в профиле же и есть: https://github.com/srogovtsev/ (хотя, будем честными, там меньше, чем хотелось бы, какие-то вещи зависают на уровне "надо бы аккуратно отрезать от proprietary").


          1. KvanTTT
            14.01.2018 18:33

            Так я в профиле сначала проверил — нет там ссылки.


            1. lair
              14.01.2018 18:38
              +2

              Понятно, это я в настройках хабра не разобрался. Все было заполнено, но не показывалось (при этом в моем единственном посте как раз показывалось, что отдельно смешно). Фиксед, спасибо.


  1. igor_suhorukov
    13.01.2018 13:03

    Отсутствие культуры коллаборации. Я думаю, большинство разработчиков привыкли разбираться во всём сами и не ждут поддержки со стороны. Но разве опенсорс это какая-то духовная стезя, на которой к тебе никто не может присоединиться?


    А теперь поставьте себя на место опытного контрибьютора проекта. Рассмотрим крайнюю ситуацию. Появляется новый pull request с малопонятной функциональностью и суровым техническим долгом, написанный похоже что левой ногой программиста. Кто-то с горящими глазами просит принять его и «допилить» потом самим. Так как это очень полезный PR для проекта, по его мнению. Проект и так отягощен обратной совместимостью и своим техническим долгом. А тут новый человек хочет привнести свою лепту, пользу от которой не может доказать и при этом ждет что ему другие на проекте помогут довести pull request до состояния мерджа.

    При этом опытные контрибьюторы проекта делают его в свое время, а не за счет корпораций. У всех также свои семьи, другие хобби и еще хочется отдохнуть. А на работе тоже хватает менторства над менее опытными коллегами. И, например, совсем не хочется обучать в свое свободное время… А если проект движется за счет корпорации, то они также заинтересованы в первую очередь в багфиксе и интересующих коммерческих клиентов фичах.

    На мой взгляд выход в этой ситуации искать таких же начинающих разработчиков, объединенных каким-либо общим интересным проектом и обмениваться опытом, читать документацию, проводить время в написании тестов, в отладчике для изучения работающего open source ПО. Выход всегда есть, было бы желание!


  1. johndow
    13.01.2018 15:40
    +5

    По мере сил делаю патчи, пулл-реквесты в либы, используемые в основной работе. Главная проблема — время. Своего-то делать не переделать.


    1. nikweter
      13.01.2018 18:49
      +1

      Вот! Это, пожалуй, и есть наилучшее поведение. Если тебе нужна определенная функция или есть минутка дописать пару строк кода — делай!
      А вот ребятам которые во всю ивановскую используют опенсорс, а на заглавный вопрос отвечают, что им за это не платят, интересно как совесть позволяет так говорить?
      Я сам, правда, ничего не пишу — не программист. Но по мере возможности отвечаю на разные вопросы по конфигурации на тостере и пишу ответы в несколько мэйл листов открытых продуктов.


      1. dom1n1k
        13.01.2018 19:16
        -1

        Я как-то отправил в одну популярную библиотеку PR на пару строк кода, который делал небольшое, но удобное улучшение. Собственно, там ценность была не в коде (он элементарный, пишется кем угодно за пару минут), а в идее самого решения.
        Автор улучшение одобрил, сказал что ему нравится, вот только… надо покрыть его тестами. Мол, напиши тесты, и я его приму. А это уже не несколько минут, потому что мне нужно сидеть разбираться с их тестовым инструментарием, системой сборки и прочей консерваторией. Я было начал, но потом заскучал и забросил. Ничего не имею против автора, он написал много хороших продуктов — но се ля ви.


        1. danfe
          14.01.2018 11:12

          Да, так часто бывает. Я вот как-то заслал в один проект патч для автоопределения подключения камеры под FreeBSD, но автору хотелось GIO's GSocket и GUnixSocketAddress вместо POSIX sockets APIs, а у меня на них аллергия, я вяло потыкался и в итоге забил. :-(

          В то же время автор cclive принял мой патчик и не просил переделать с использованием буста, а переделал сам.

          Мне кажется, в таких ситуациях лучше всего действовать по закону Постела: принимать любые патчи, если они не совсем ужас-ужас и достаточно ценные, а отступы фиксить, рефакторить как-то и прочие тесты писать уже самому, но отсылать чистенькие патчи, оформленные в принятом в проекте стиле, с подробным описанием проблемы и решения, минимальными тестами или что там требуется и т.д.


  1. nailer
    13.01.2018 18:22
    +3

    Мотивация для участия в Open Source проекте может быть самой разной – и если таковая есть, то человек или присоединяется к заинтересовавшему проекту, или затевает свой. Статья о противоестественных рефлексиях неправдоподобного персонажа.
    Мне требовалось в свое время распарсить специфические pdf-документы, которые никаким продуктом в тот момент (да и сейчас только PDFBOX, кажется, парсит) не парсились – пришлось поучаствовать в PDFBOX. Как только собрал работающую с моей задачей библиотеку, так и сотрудничество закончил. Думаю, за краткость моего участия, никто из сообщества не обиделся (пару дней, вероятно, заняло), хотя мой патч оказался не универсальным (некоторое время спустя, разработчики обнаружили класс документов, на которых парсинг с моей «заплатой» не был верным), и я мне позже предлагалось возобновить сотрудничество, но я уже был не мотивирован.
    Людей тянущих опенсорс считаю большими подвижниками и отношусь с огромным уважением. В особенности касается, конечно, объемных и широко востребованных проектов, где требуется самая высокая квалификация.


  1. musuk
    13.01.2018 20:57
    +1

    Перед тем, как делать pull-реквесты и фиксить баги, нужно понимать, что за комьюнити находится за проектом.
    ИМХО, в реальности, немного проектов, в которые можно прийти с улицы и сделать pull-реквест, который примут. Часто там у разработчиков своё видение продукта, это вообще может быть команда из какого-нибудь Microsoft на зарплате, они скорее будут заботиться о KPI и задачах от своего менеджера, чем о фичах о которых просят реальные пользователи.
    Или у проекта может быть просто противный flow для принятия pull-реквестов, прочитав который хочется просто подождать, пока разработчики сами пофиксят ошибку.
    Всё это можно понять по багтрекеру. Хороший план не фиксить найденую багу, пока разработчики проекта не обозрачат своё отношение к этой баге. Часто им плевать на ваши use-case и ваши баги, и ваш pull-реквест так и будет висеть до смерти проекта.
    Я бы сказал, что термин open source, совсем не значит, что кто-то, по-умолчанию, рад вашим pull-реквестам.
    Я встречал проекты, которые игнорировали даже довольно критичные баги.
    image

    Другое дело, заниматься опенсорсом на работе. Ваша компания использует либу другой компании, и код выложен на гитхабе. В этом случае, даже если вы отправляете пул-реквест на фикс, который не примут, то, по крайней мере, не будет жалко о бездарно протраченого времени, потому что вам за него уже заплатили.


    1. KvanTTT
      14.01.2018 00:59

      это вообще может быть команда из какого-нибудь Microsoft на зарплате, они скорее будут заботиться о KPI и задачах от своего менеджера, чем о фичах о которых просят реальные пользователи.

      Я создал багу по VS Code — пофиксили за 10 дней.


      1. musuk
        14.01.2018 02:22

        Моя мысль была не в том, что ребята из микрософта не фиксят баги. А в том, что у команд есть свои соображения, которые следует попытаться узнать раньше, чем потратить вечер/другой на мердж-реквест или ресёрч. Описать баги вроде вашей не очень затратно по времни, так что даже если бы Микрософт на неё забили, вы бы не много потеряли.


  1. System12
    14.01.2018 19:39
    +1

    Самое забавное в теме это то, что написание статьи или ее обсуждение на форумах тоже опенсорс. Правда не конкретных кодов, а мыслей, которые в дальнейшем можно использовать и в других целях.


    1. KvanTTT
      14.01.2018 22:13

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


      1. danfe
        15.01.2018 09:15

        Умение хорошо излагать свои мысли при написании кода тоже очень помогает, знаете ли (особенно читающим потом этот код). :-)


      1. System12
        15.01.2018 15:04

        Для серьезной статьи одного практического опыта маловато будет. Даже простое описание того что делаешь требует дополнительных навыков и желательно опыта. :)
        Немного в тему чем плох опенсорс. Вспомнилась история про форумный опенсорс. На одном форуме стали задавать довольно интересные вопросы. Я сдуру стал на них отвечать. Через некоторое время мне звонок на сотовый от одного знакомого. Сразу начал мне высказывать свое мнение о моем плохом поведении. Оказывается к ним на фирму пришли консультанты с бизнес-предложением. Для проверки их вшивости им дали несколько вопросов. Они пообещали завтра дать на них полные и подробные ответы и стали их задавать на профильном форуме. По мнению моего знакомого не надо на форумах консультировать тех, для кого консалтинг это бизнес. Может это и правильно! :)