Почему я до сих пор не занимаюсь опенсорсом

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

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

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



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

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

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

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

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

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

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

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

    Ну. И что?
    Реклама
    Комментарии 129
    • +9
      Статья написана (а зачем? это еще тот вопрос) с точки зрения начинающего программиста:

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

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

      — У меня валом денег, свободного времени и почему бы мне не заняться интересной фигней?
      • +4
        В статье упомянуты машина и дети. На своем опыте знаю, что при наличии оных скорее всего со временем очень туго, ну а деньги тут вроде бы значения и не имеют.
        • +19

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

          • 0
            Да и вообще любых личных пооектов в оставшееся от работы время… По крайней мере, пока дети не подрастут.
            • +2
              А если жена OpenSource-разработчик? :)
              • +3
                Тогда, при отсутствии бабушек в соседней комнате, тем более не будет времени.
            • 0
              Жена и дети — главные враги open-source.

              С точки зрения жены и детей, этот самый опенсорс — прямо враг семьи какой-то!
              • –1
                Жена и дети — главные враги open-source.

                Вы про своих? Впрочем, как называть свою семью — ваше дело.

                Говоря о проблеме в общем, по моей статистике это похоже на правду. Только не "враги", а антагонисты.
                Толерантнее нужно быть.
                • 0
                  Толерантнее нужно быть.

                  Кому нужно?

                  • –1
                    Кому нужно?

                    людям
                    • 0

                      Прямо всем?

                      • 0
                        я не исследовал этот вопрос специально
              • 0
                Наличие машины и детей означает, что выбор по факту уже сделан.
                • 0
                  Сделан, кто спорит. И с учетом того, что иметь детей все еще выбирает большая часть людей, подразумевать, что каждый человек будет вкладывать усилия в опен-сорц странно.
              • +2
                У меня валом денег, свободного времени и почему бы мне не заняться интересной фигней?

                Например, спортом. Или поездками. Или еще чем. Нет, вся жизнь — за экраном, вот это девиз «матерого».
                • +1
                  Конечно лучше спортом, а почему бы и нет?

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

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

              • +8
                Делать свои собственные проекты куда интересней и научиться новому в них гораздо проще.
                И даже необязательно их выкладывать как опенсорс, если можно к примеру как shareware.
                • +3
                  Согласен, но есть минус — в своих проектах свои же ошибки не всегда все увидишь…
                  • 0
                    И тут же вопрос, (как пропиариться) привлечь интерес разработчиков к своему проекту.
                    Да, есть код где-нибудь на гитхабе или битбакете, описание, все дела — но толку, если никому это не нужно?
                    • +1
                      Не нужно делать то, что никому не нужно )
                      А если всё же это кому-то нужно, то пропиариться можно той же статьёй на хабре или в соответствующей ветке reddit.
                      • 0
                        Тут ещё проблема коммуникации: что нужно, что ненужно, какой функционал и путь развития выбрать.
                        • 0
                          Кстати, глупый вопрос. А какой раздел в reddit отвечает за подобную тематику, как на хабрахабр?
                          • +1
                            Единого раздела нет, субреддиты более мелкие и узкоспециальные штуки, чем весь хабр. Пиариться можно в языковых разделах — /r/python, /r/golang и прочая, или в разделах по тематике проекта (скажем, /r/telegrambots).
                      • –7
                        Если то, что ты сделал не будут покупать — значит сделал плохо.
                    • +1
                      Для начала у меня всегда один вопрос перед обсуждением всех «почему участвую»и «почему нет».

                      А ты используешь опенсорс в своей работе и жизни?
                      • +3
                        Большинство программистов и админов использует. И?
                        • 0
                          Это не в жизни, а на работе.

                          Но если по работе надо форкнуть и поправить — это и есть ответ на вопрос «почему участвую»и «почему нет».
                        • +3
                          Давайте я Вас так же спрошу про что-то еще. Вы уже вносите свой вклад в науку? А пользуетесь бесплатными знаниями/научными исследованиями?
                          Могу еще из десятка сфер такой же вопрос задать.
                          Почему-то все думают что если человек использует OpenSource, он должен сам в нем участвовать. Но тогда пускай сразу участвует и в десятках других сфер, чьими благами он так же пользуется.
                          • –1
                            То есть вы хотите чтобы все становились немного учеными? Помогали вам проводить эксперименты? Я не против!
                            Пишите адрес лаборатории, выезжаю!
                            • +4
                              Я хочу чтобы люди понимали что оно так не работает, как многие себе представляют. Кроме лаборатории(но я не занимаюсь наукой, к слову), не забудьте еще музыку писать и выкладывать по вечерам, а то, возможно, слушаете музыку, которую люди бесплатно выкладывают. А может еще и ролики на YouTube смотрите, которые люди делают?
                              • 0
                                Ох, блин! У меня тоже есть несколько видео на YouTbe в бесплатном просмотре! И, стыдно сказать, пару каверов записал и тоже выкладывал где-то. Отстойно получилось, если честно.
                                Думаете, не стоило в бесплатный просмотр и прослушивание отдавать? Надо было только если бы мне заплатили за потраченное время?
                                • +1
                                  Наверное, стоит пояснить мою позицию. Представьте, что вы работаете в небольшой компании, которая не предоставляет сотрудникам в офисе бесплатного чая или кофе с печеньками. И вот люди на свои деньги покупают, приносят во офис и все едят и пьют по необходимости. И вот кто-то один никогда ничего не приносит. Его спрашивают — почему, мол, ничего не принесешь? Он отвечает, что на свои деньги может покупать что захочет и когда захочет, он их честно заработал. И продолжает есть и пить.
                                  Нет никакого закона или правила, которое запрещало бы ему так поступать. Все это добровольно приносят для всего коллектива, а этот человек — его часть. И как тратить его деньги — тоже только его право. Но вот пахнет такое поведение, с моей точки зрения, не очень.
                                  Более того, можно предсказать что будет дальше. Глядя на него люди постепенно перестанут приносить что-либо для всех, будут только для себя покупать. Так может случиться и с сообществом. Если все больше людей будут только брать, а все меньше отдавать — сообщество погибнет.
                                  • +2
                                    Вот только не так это работает, один печеньки печет, другой чай приносит, третий сахар, четвертый туалетную бумагу и все вроде счастливы. И тут некто говорит: «я не понял, я один из тех кто приносит печеньки, но я что-то не вижу чтобы все остальные носили печеньки. Ну и что что еще есть люди которые приносят чай, сахар или что-то еще полезное делают, я хочу чтобы каждый кто ест печеньки был обязан тоже приносить печеньки.» Вот именно так это выглядит с OpenSource в подобных статьях.
                                    • +2

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

                                      • 0
                                        Здесь нужно говорить о человеко-часах, потраченных на производство/создание печенья и создание идеи/производство продукции и оказание услуг при помощи нее.
                                        Так-то если кто-то скопирует себе рецепт печенья, то с оригиналом рецепта печенья тоже ничего не происходит.
                                        • 0
                                          «Здесь» изначально была подмена исходных данных: опенсорс нужно сравнивать не с «печеньками», а скажем с «видеозаписями» — точнее с «цифровым контентом». Простой пример: если у меня есть велосипед и ко мне придет мой брат и возьмет велик покататься, то пока брат катается я не могу кататься на велике.
                                          А вот если у меня есть запись моего занятия с моим ребенком, где я обучаю его «врожденной таблице умножения» (наподобие «врожденной грамотности»… к шести годам ребенок знает таблицу умножения))), то я могу дать брату и сестре и многим знакомым эту копию этой записи и ВСЕ РАВНО это запись останется у меня.
                                          А еще я могу выложить эту запись на видеохостинг — например, ютьюб — и тогда все желающие смогу посмотреть — это и есть «опенсорс» — только выкладываем на гитхаб… А можно и не выкладывать…
                                          • 0
                                            Вы не поняли моего возражения и пояснения к нему.
                                            Вот эта часть показывает, что вы не то берете за потребляемую ценность:
                                            то я могу дать брату и сестре и многим знакомым эту копию этой записи и ВСЕ РАВНО это запись останется у меня

                                            Потребляемой ценностью не является копия записи. Ею является процесс обучения посредством ее. Нет никакой разницы, будет сделано 10 копий, каждую из которых посмотрит 1 человек, или же все 10 соберутся в зале, где им покажут исходную запись. Копия — это просто одно из средств (методов) доставки контента «до голвы потребителя». Так же как в с велосипедом — потребляемой ценностью является процесс, услуга перемещения из точки А в точку Б. Без потребления такой услуги посредством конкретного велосипеда он, конкретный в. — просто куча причудливого металлолома. И аналогом записи (не копии, а самого «творения», вашего труда, овеществленного в ней) будет разработка велосипеда, его чертежи, идея, а не сам аппарат.
                                            Именно поэтому чуществуют т.н. «роялти», которые авторы получают при продаже и допечатывании их книг — чем больше книг, тем выше общество оценило труд автора, тем больше он должен получить.
                                  • 0
                                    Ну, для этого можно даже просто играть в игры.
                                    А если осознанно, то могу предложить, к примеру, LHC@home: http://lhcathome.web.cern.ch.
                                    Ну и в статье Википедии «Добровольные вычисления» в списке «Проекты добровольных вычислений» внизу страницы можно выбрать проект себе по вкусу.
                                    • 0
                                      Игроки Eve Online занимались этим из игровой выгоды.
                                      Первая реализация, к тому же, не мешала накрутке рейтинга путем посыла заведомо неверных данных большим количеством пользователей.
                                      Вообще, довольно таки любопытный пример трагедии общин.
                              • +24

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


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

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


                                  И ловить отказы на пулл-реквесты или вежливые письма в духе «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».
                                  • +5
                                    И ловить отказы на пулл-реквесты или вежливые письма в духе «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 назад.


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


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

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

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

                                    • +2
                                      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

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

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

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

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

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

                                    • –28
                                      Пробовал выкладывать проект на гитхаб. Как результат, заинтересованные получили алгоритм, я получил дырку от бублика. Снес все и больше не выкладываю.
                                      • +13
                                        А вы какими-нибудь опенсорс проектами пользовались в жизни?
                                        Поздравляю! Именно так это и работает!
                                        • –8
                                          Теми проектами которыми пользуюсь, я стараюсь их улучшать и как минимум общаюсь с разработчиками.
                                        • +17
                                          Не очень понятно что вы ожидали получить от выкладывания на гитхаб.
                                          • –11
                                            Вы тут, так то, собственно (имхо и от себя добавлю) и подтверждаете слова LorDCA — хочешь что то монетизировать и нет денег на продвижение? или просто ты не компания с заранее более весомым доверием — досвидули опенсурс.
                                            Сейчас оно именно так и работает — есть огромная куча людей, которые ищут ИДЕЮ, чтобы скомуниздить. В итоге тебе донат в 10$\год, а им все сливки с наваром.
                                            • +10
                                              Идея не стоит ничего, идей у всех полно, да вот только никто не хочет работать над их реализацией, ценность имеет сервис, продукт, а не замки в облаках.
                                              • 0
                                                ок, главное, если вам придут в голову хорошие идеи — незамедлительно отправляйте
                                                мне :)
                                                • 0
                                                  Жаль не записываю, а то бы весь список послал, вас в какой сфере идеи интересуют? Общество/бизнес? Бизнес в ИТ?
                                              • 0
                                                Есть абстрактные идеи, есть идеи конкретных решений. Вторые вполне себе имеют ценность.
                                                • –2
                                                  воистину
                                                  • 0
                                                    Да, я преувеличил, ценность конечно есть, но её обычно переоценивают — аналогичную идею много кто может сгенерить, а вот реализовать могут единицы, не потому что они хакеры, а потому что мотивированы делать, а не коменты строчить.
                                                • +4
                                                  хочешь что то монетизировать и нет денег на продвижение?

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


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

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

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

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

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

                                                      • 0
                                                        ок, тогда еще раз обращу внимание на вторую часть, а именно —
                                                        Или, кстати, можно ребром поставить — также, как не увидеть тех, кому изначально идея принадлежала.
                                                        • +3

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

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

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

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

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

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

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

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

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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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

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


                                                        Явление скомуниздивания идей существует исторически.

                                                        Каждая идея — это зернышко маленькой локальной революции.
                                                        По поводу больших революций было сказано давно и другими авторами:

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

                                                      • 0
                                                        Не в идее дело. Нафиг никому та идея не нужна. Решения сложных задач гораздо интереснее. Например мой алгоритм
                                                        Представь что у тебя есть лес из векторов. Не ограниченный лес. И для примера ты хочешь сравнить новый вектор со всем лесом разом. Скажем с миллиардом векторов в лесу. Вот на сравнение вектора из 50к элементов уйдет примерно 2 минуты в текущей конфигурации железа. При этом размер леса не важен!
                                                        Как результат получаешь набор всех совпадений с указанием на векторы имеющие такой же кусок. По каждому кусочку.
                                                        Прямые задачи для такого алгоритма, распознавание/синтез речи, аналитика и экспертные системы нового поколения. Проблема только в том, что я на данный момент уперся в железо своего сервера, а любая корпорация может начать отжимать с этого деньги прямо не отходя от кассы и ни какой опенсорс за ними не угонится.
                                                        • 0
                                                          А бенчмарки есть? Оно реально работает на 1 миллиарде элементов?
                                                          Предположим, что элемент вектора — целое число, 4 байта. Вектор размером в 50 тысяч элементов — это 200 000 байт только на полезную нагрузку.
                                                          200 терабайт данных перелопатить за 2 минуты? Полтора терабайта в секунду?
                                                          А где лежат эти данные?
                                                          Что я упустил в своих расчетах?
                                                          • +1
                                                            Да хоть на 100 миллиардах. Не принципиально. Размер одного элемента ни каким образом не влияет на скорость обработки, ну или влияние не существенно. Узким местом выступает база данных (Cassandra). Которая впрочем хорошо маштабируется. Зависимость примерно такая вектор из 50 000 элементов тратит примерно 100 000 запросов в базу. Cassandra выдает 100 000 запросов в секунду при разворачивании на 10 нодах. То есть при наличии базы развернутой на 10 нодах, можно обрабатывать звук в реальном времени. Причем без обрезаний, рассматривать весь слышимый спектр. Что в теории должно позволить идентифицировать говорящего, разделять несколько одновременно говорящих голосов, преобразовывать речь в текст и идентифицировать акценты и ударения в словах.
                                                            Упустили структуру которая используется для хранения этих данных. Она по сути реализует неограниченное количество множеств и описывает их отношения между собой.
                                                            Бенчмарки можно сделать. На данный момент пытаюсь прикрутить к структуре модули аналитики и поучаствовать с этим на kagle
                                                            • 0
                                                              При этом размер леса не важен!
                                                              [...]
                                                              Зависимость примерно такая вектор из 50 000 элементов тратит примерно 100 000 запросов в базу. Cassandra выдает 100 000 запросов в секунду при разворачивании на 10 нодах.

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

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

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

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

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


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

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

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


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

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

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


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

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

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

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

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

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

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

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

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

                                                                • +3
                                                                  Если так и прёт помочь кому-то в оперсорсе, то всегда есть кому. Нахер только сразу код менять лезть.
                                                                  Вот поддержу. Опенсорс это далеко не только код. Открываете багзиллу любого большого проекта (например, FreeBSD) и выбираете баги по своему вкусу: там вам и порты, и документация, и маны, ну и код, конечно, тоже. :-)
                                                                  • +6
                                                                    Мейнтейнеры самых популярных репозиториев наоборот на большинство запросов пишут «PR welcome», потому что хотельщиков сотни, а реальных помощников единицы.
                                                                    • –1
                                                                      Потому что каждый хочет в резюме написать сколько у него пулреквестов на гитхабе.
                                                                      • +2
                                                                        Нет, просто хотельщики в абсолютном большинстве случаев строчат issue с предложениями, нередко фантазийными, а не PR.
                                                                  • 0
                                                                    Мне кажется что большинство людей просто не хотят что-то делать даром. Зачем писать бесплатную вещь, к тому же делить «славу» с другими людьми, если есть возможность работать над собственным проектом и заработать на нём
                                                                    • –7
                                                                      Я бы назвал это особенностью менталитета наших (славянских) народов.
                                                                      • –1
                                                                        О, несогласные набежали. Много ли знаете людей, опровергающие эти слова? Не только в ИТ
                                                                        • +2

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

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

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

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

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

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

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

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

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

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

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

                                                                              • –1
                                                                                Я бы хотел получше понять смысл вкладываемый вами в слово «регулярно»
                                                                                Это регулярно выкладываю?
                                                                                image


                                                                                • +1

                                                                                  А я, вроде, (а) написал "регулярно пишу" и (б) "будем честными, там [на гитхабе] меньше, чем хотелось бы"

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


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

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

                                                                          На мой взгляд выход в этой ситуации искать таких же начинающих разработчиков, объединенных каким-либо общим интересным проектом и обмениваться опытом, читать документацию, проводить время в написании тестов, в отладчике для изучения работающего open source ПО. Выход всегда есть, было бы желание!
                                                                          • +6
                                                                            По мере сил делаю патчи, пулл-реквесты в либы, используемые в основной работе. Главная проблема — время. Своего-то делать не переделать.
                                                                            • +2
                                                                              Вот! Это, пожалуй, и есть наилучшее поведение. Если тебе нужна определенная функция или есть минутка дописать пару строк кода — делай!
                                                                              А вот ребятам которые во всю ивановскую используют опенсорс, а на заглавный вопрос отвечают, что им за это не платят, интересно как совесть позволяет так говорить?
                                                                              Я сам, правда, ничего не пишу — не программист. Но по мере возможности отвечаю на разные вопросы по конфигурации на тостере и пишу ответы в несколько мэйл листов открытых продуктов.
                                                                              • +1
                                                                                Я как-то отправил в одну популярную библиотеку PR на пару строк кода, который делал небольшое, но удобное улучшение. Собственно, там ценность была не в коде (он элементарный, пишется кем угодно за пару минут), а в идее самого решения.
                                                                                Автор улучшение одобрил, сказал что ему нравится, вот только… надо покрыть его тестами. Мол, напиши тесты, и я его приму. А это уже не несколько минут, потому что мне нужно сидеть разбираться с их тестовым инструментарием, системой сборки и прочей консерваторией. Я было начал, но потом заскучал и забросил. Ничего не имею против автора, он написал много хороших продуктов — но се ля ви.
                                                                                • +1
                                                                                  Да, так часто бывает. Я вот как-то заслал в один проект патч для автоопределения подключения камеры под FreeBSD, но автору хотелось GIO's GSocket и GUnixSocketAddress вместо POSIX sockets APIs, а у меня на них аллергия, я вяло потыкался и в итоге забил. :-(

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

                                                                                  Мне кажется, в таких ситуациях лучше всего действовать по закону Постела: принимать любые патчи, если они не совсем ужас-ужас и достаточно ценные, а отступы фиксить, рефакторить как-то и прочие тесты писать уже самому, но отсылать чистенькие патчи, оформленные в принятом в проекте стиле, с подробным описанием проблемы и решения, минимальными тестами или что там требуется и т.д.
                                                                            • +3
                                                                              Мотивация для участия в Open Source проекте может быть самой разной – и если таковая есть, то человек или присоединяется к заинтересовавшему проекту, или затевает свой. Статья о противоестественных рефлексиях неправдоподобного персонажа.
                                                                              Мне требовалось в свое время распарсить специфические pdf-документы, которые никаким продуктом в тот момент (да и сейчас только PDFBOX, кажется, парсит) не парсились – пришлось поучаствовать в PDFBOX. Как только собрал работающую с моей задачей библиотеку, так и сотрудничество закончил. Думаю, за краткость моего участия, никто из сообщества не обиделся (пару дней, вероятно, заняло), хотя мой патч оказался не универсальным (некоторое время спустя, разработчики обнаружили класс документов, на которых парсинг с моей «заплатой» не был верным), и я мне позже предлагалось возобновить сотрудничество, но я уже был не мотивирован.
                                                                              Людей тянущих опенсорс считаю большими подвижниками и отношусь с огромным уважением. В особенности касается, конечно, объемных и широко востребованных проектов, где требуется самая высокая квалификация.
                                                                              • +3
                                                                                Перед тем, как делать pull-реквесты и фиксить баги, нужно понимать, что за комьюнити находится за проектом.
                                                                                ИМХО, в реальности, немного проектов, в которые можно прийти с улицы и сделать pull-реквест, который примут. Часто там у разработчиков своё видение продукта, это вообще может быть команда из какого-нибудь Microsoft на зарплате, они скорее будут заботиться о KPI и задачах от своего менеджера, чем о фичах о которых просят реальные пользователи.
                                                                                Или у проекта может быть просто противный flow для принятия pull-реквестов, прочитав который хочется просто подождать, пока разработчики сами пофиксят ошибку.
                                                                                Всё это можно понять по багтрекеру. Хороший план не фиксить найденую багу, пока разработчики проекта не обозрачат своё отношение к этой баге. Часто им плевать на ваши use-case и ваши баги, и ваш pull-реквест так и будет висеть до смерти проекта.
                                                                                Я бы сказал, что термин open source, совсем не значит, что кто-то, по-умолчанию, рад вашим pull-реквестам.
                                                                                Я встречал проекты, которые игнорировали даже довольно критичные баги.
                                                                                image

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

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

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

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

                                                                                    Самое читаемое