Pull to refresh

Comments 154

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


  • Библиотечка тулзов — 221 звезда, существует с февраля 2016, делалась как набор вспомогательного кода, таскаемого по проектам. Библиотечка постоянно обрастала функционалом и толстела. Сейчас уже не дополняется и фиксятся только редкие баги, но это не мешает продолжать ей набирать звезды.
  • ECS фреймворк — 151 звезда, существует с конца декабря 2017. Разрабатывалась как легковесный аналог Entitas без кодогена (20кб против 0.5мб рантайма) и с сопоставимой производительностью. Поддерживается и расширяется.

Документация отсутствует как класс, в ECS сделана в виде FAQ-секции по основным вопросам. Внутри кода комментарии есть только для публичных методов / полей. Сделан gitter / discord чаты для быстрого решения вопросов, некоторые неожиданно находят меня в телеграмме.


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


Автору удачи и терпения, нужно просто переосмыслить — зачем это делается и для кого.

Дык это… для себя и делается :)
Но спасибо. Вы молодец, у вас хорошая база наработок и интересные статьи.
небольшую утилитку, чтобы перегонять C#-вьюмодели в TypeScript-код

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

Сам я недавно написал небольшой opesource (на другую тему, не ts), выложил на и гитхаб, и как nuget-пакет. Так же, отдельным репозиторием сделал тестовый проект, с использованием этой либы, в качестве примера. Заодно нашел пару багов, немного поменял архитектуру и понял, что наврятли оно будет кому-то нужно. Так что следующий шаг — статью на хабре, я решил не писать.
Примерно так рождаются и умирают opensource-проекты. Ну хоть прокачал свои навыки.
Ваш вариант ни разу не попадался, даже в поиске на StackOverflow.

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

Примерно так рождаются и умирают opensource-проекты. Ну хоть прокачал свои навыки.

Вы это рано оцениваете, я иной раз вытаскиваю из гитхаба поделки, которые лежат там уже по 5 — 7 лет и более. Потому просто может время не пришло. Некоторые вещи вообще приходится заливать с веб.архив'а, так как личных интернет страничек авторов, которые обычно в прошлые времена хостились на сайте разных университетов, уже на серверах нету.
Имхо, Ваша проблема типична для технаря — вы не признаете обязательность рекламы. Какой бы крутой не был ваш проект, если его не рекламировать, причем довольно активно, он никому не будет нужен. То, что вы сделали в StackOverflow — по сути небольшая, но очень целевая реклама — и отдача сразу пошла. Другой вопрос, что за рекламу надо платить либо деньгами любо временем, а большинству опен сорсников это не нужно.
Человек хороший, тут об этом 3/4 статьи вообще-то. Что провести хорошую маркетинговую кампанию своими силами без бюджета, совмещая с 8-часовым рабочим днём — что-то близкое к невозможному. Поэтому и выплывают «в топ» проекты, сделанные при финансовой и информационной поддержке компаний.
А где я писал что он плохой?) Но проблема тем не менее есть, почему-то обычно в технарских вузах никак не развивают тему обязательности рекламы для успеха продукта.

"Человек хороший" — это я тут к людям обращаюсь так. К вам в частности.


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

Потому что там готовят, как ни странно, технарей а не маркетологов.

Спасибо, отличная статья! У меня как раз есть пара идей для опенсорс проектов, что-то я начинал (и нахожусь в самом-самом начале), и примерно такие же мысли приходили мне в голову. Есть только одно замечание:
«Ну ни фига себе» — подумал я — «это значит получается я должен удалить с сайта информацию об открытости к коммерческим предложениям в обмен на 200 долларов (стоимость лицензии на ReSharper) в год?! Нет, ребята, это так себе предложение. Спасибо, не надо». И не стал продолжать диалог.
Вы думаете, что отказались от 200 долларов в обмен на гораздо большую сумму, а по факту — отказались от 200 долларов в обмен на 0 долларов. Причем это должно было быть вам очевидно уже на момент отказа.
P. S. Сделайте кнопочку «Donate». При ста звездах, как мне кажется, это уже может иметь смысл. Заодно и об этом опыте расскажете потом.

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


Вы думаете, что отказались от 200 долларов в обмен на гораздо большую сумму, а по факту — отказались от 200 долларов в обмен на 0 долларов.

Ну… ещё не вечер. :) Надеюсь. С того разговора прошло около двух лет — будем считать что на текущий момент я отказался от 400 долларов. Пока что это даже не моя месячная зарплата :) Смысл этой реплики в том, что 200 долларов в год (даже не кэшем!) — довольно маленькие деньги чтобы раз и навсегда отказаться от коммерческих амбиций.

Ну… ещё не вечер. :) Надеюсь.
Не подумайте только, что я вам чего плохого желаю. Но вашему проекту уже три года, а объявление об открытости к сотрудничеству принесло вам пока ровно 0, правильно? А между тем, 200 долларов у JetBrains — это, емнип, за год, а не навсегда (да даже если и навсегда, это все равно 200 долларов). Тем более, мне кажется, что люди, готовые предложить вам коммерческое сотрудничество, сделают это, даже если у вас не будет этого объявления.

Звучит дельно и логично, но к JetBrains не пойду. Всё равно осадочек от разговора неприятный остался.
Ради справедливости, стоит упомянуть что без изменения текста на сайте JetBrains был готов дать мне единовременную скидку в 25% на свои продукты. То есть — 50 долларов, учитывая что мне нужен только ReSharper.


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

Почему-то пропустил текст под спойлером. На самом деле не 200 баксов, а 600 или около того — они выдают весь toolbox. Да, мне его выдали пару лет назад как раз под проект библиотечки (у меня MIT и нигде не указано про платный саппорт, хотя никто его не запрещает). К сожалению, активного применения софту не нашел (rider тот еще тормоз) и продолжил пользоваться vscode с омнишарпом. Спустя год я просто не стал продлевать лицензию, хотя возможность такая была. Toolbox выдают на проект, т.е на всех постоянных контрибьюторов / членов команды разработчиков.
vscode с омнишарпом

А вы терпеливый...

Моей основной ОС является MacOS, поэтому выбор не велик — или Rider или vscode. А учитывая, что я еще пописываю на typescript, а последняя версия C# не нужна, то выбор маленькой единой оболочки очевиден. Единственный минус — microsoft уже несколько лет не может подпилить нормальное форматирование и приходится костылить свое — 572k установок, люди пользуются. :)

UFO just landed and posted this here
Из моего опыта: библиотеки, фреймворки, инструменты имеют шансы стать сколько-нибудь популярными. Готовый проект, если вы не Джон Кармак, таких шансов не имеет.
Возможно я не прав, но сложилось именно такое впечатление.
Возможно, это потому, что люди ищут решения для своих задач, а не хотят поиграть в чьё-то законченное приложение (которое вряд ли на 100% соответствует желаниям ищущего решение).
Это же опенсорс, недостающие проценты можно доделать самому, нет?)
К примеру, есть vcmi (aka Heroes Might and Magic 3), и ничего, смотрите как люди пилят.
Это же опенсорс, недостающие проценты можно доделать самому, нет?)


Удачи вам в этом нелёгком начинании. :)

К примеру, есть vcmi (aka Heroes Might and Magic 3), и ничего, смотрите как люди пилят.


Есть люди, они современные защиты игр ломают. Но это ведь не значит, что и я и вы сможете так. :)
Удачи вам в этом нелёгком начинании. :)

Мододелы это целая субкультура, причем у каждой игры — своя.
Как вы думаете, будь некая популярная игра open source, моды делать было бы проще?
Есть люди, они современные защиты игр ломают. Но это ведь не значит, что и я и вы сможете так. :)

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


А вы попробуйте модифицировать, например, редактор Kino.

Как вы думаете, будь некая популярная игра open source, моды делать было бы проще?


Возможно, но я сомневаюсь в этом. Разобраться в коде чужой программы (особенно, если у неё штук 100 авторов) и модифицировать её под свою задачу потребует изрядного времени и сил, а, главное, знаний.
А вы попробуйте модифицировать, например, редактор Kino.

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

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


В том-то и дело, что это была бы только попытка…

Т.е. по-вашему реверсить код проще, чем читать исходник?


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

Во-первых, как ни странно, коммитить в код, написанный 100 авторами легче, чем в код, написанный одним. Как минимум, потому что эти что уже один раз хотя бы его посчитали и поняли. Во-вторых, плагины для тех же sublime, vscode, jetbrains как будто пишут отдельные дяди: я уже штуки 3 написал, из которых один висит в официальном репо.


И уже не первый раз, когда что-то работает "not as expected" выручает как раз то, что сабж открытый: я закрытые платформы боюсь как огня: их же не допилишь в случае чего. А открытые программы чинятся прямо на месте, это ж замечательно!

Отличная статья.
Но выкладывать на github надо всё, что может быть полезно другим людям. Хожу поиском по всяким лабам студентво и хелувордам, чтобы научиться использовать технологию. Особенно приятно, когда попадается какой-то забористый конфиг или хитрый вариант использования.
UFO just landed and posted this here
Одного моего знакомого не взяли на работу с формулировкой: «Мы посмотрели ваш код на гитхабе и он нам не понравился». Такие дела.
Так это же наоборот замечательно! Было бы сильно хуже, если бы ребята посмотрели на его код уже после того, как взяли на работу. И он им не понравился. Сильно-сильно. Вот это была бы проблема.
Ну вообще, человечек довольно скиловый.
Что именно за проект они откопали и что им не понравилось, они не сказали. Но это показатель того, что всё что ты коммитишь может быть использовано против тебя.
А я и не говорил ничего про скилы человека. Вопрос в другом. Если по какой-то причине — не важно какой — конкретные человеки не смогут сработаться, лучше об этом узнать как можно раньше. В идеале ещё на берегу. У ребят это получилось. Каждый пошло своею дорогой и нашел в конце то, что искал. Что есть гут.
Учитывая, что код может быть совершенно разных лет (а значит, и опыта, подходов, технологий, знаний), а так же то, что выкладывалось сделанное для себя (а значит, без интереса писать лишние тонные кода, например, того же тестирования или всеми любимых паттернов), я бы не стал бы ориентироваться на код проекта на гитхабе для оценки подойдёт человек/не подойдёт. Её можно использовать как наинизший уровень, реализуемый данным разработчиком и не более.
Это было в прошлом. Сегодня после введения бесплатных приватных репозиториев кто не спрятался — ССЗБ (tm) и отмазки «это для дома, для семьи» не работают.
Раз репозиторий приватный, стало быть, виден только автору? (я никогда их не использовал). Но тогда откуда он окажется у интересующихся?
Я, например, никак не могу даже в приватный репозиторий ПО по работе разместить — у меня ПО для военной техники.

Это было в прошлом.


Вот именно, что код, который на гитхабе сделан в прошлом. У меня, например, там лежит самодельный DOOM под DOS. Ему 17 лет в обед. Но работает. Угадайте, много там «красивого» кода? :)
> Раз репозиторий приватный, стало быть, виден только автору? (я никогда их не использовал).

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

> Но тогда откуда он окажется у интересующихся?

Если это приватный репозиторий — зачем ему оказываться у интересующихся? Это явно излишне.
Если это приватный репозиторий — зачем ему оказываться у интересующихся?

Изначальная посылка была такая:
Одного моего знакомого не взяли на работу с формулировкой: «Мы посмотрели ваш код на гитхабе и он нам не понравился». Такие дела.


А это значит, что тезис
Это было в прошлом. Сегодня после введения бесплатных приватных репозиториев кто не спрятался — ССЗБ (tm) и отмазки «это для дома, для семьи» не работают.

так же не работает, хоть есть приватные, хоть нет.
Отчего же не работает? Наоборот — работает.

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

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

Сегодня такой проблемы нет. Достаточно зайти на гитхаб и провести аудит своих репозиториев. Решить, что стоит показывать наружу а что нет. Это так сказать совершенно бэсплатно. То есть даром. Если человек по какой-то причине это не сделал… Ну значит так оно ему надо. Сам себе злобный буратино.
А, вы с той стороны пошли, что типа в приватных репозиториях надо прятать свои разработки от чужих глаз? Но тогда вообще смысл выкладывания отсутствует — храните разработки дома и никому не показывайте. Разработки-то выкладывают чтобы кто-то ими пользовался, чтобы они кому-то пригодились, чтобы кто-то помог доработать.
Чтобы разработкой кто-то мог пользоваться и за это не было больно и стыдно оная должна быть доведена до соответствующего уровня качества. Это и полноценная документация и тестирование и вот это вот все-все-все. В общем, полноценное ведение проекта.

Если чего-то из этого нет — привет, говнокод! Не важно, какой степени гениальности в нем заложены идеи. С инженерной точки зрения это, повторюсь, говнокод. Он не приспособлен к интеграции с окружающим миром и представляет ценность сугубо для своего автора.

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

Не факт, что студенческий код 20ти летней давности который тогда был вполне себе по фану сегодня… в общем, скорее всего лучше такое в приват (если оно вообще нужно что само по себе вызывает большие сомнения).
Чтобы разработкой кто-то мог пользоваться и за это не было больно и стыдно оная должна быть доведена до соответствующего уровня качества.


А вот нет. Когда вы запускаете программу и она работает, как ожидалось, вам наплевать, насколько красив код внутри, есть ли там тесты, читаем ли синтаксис и прочее. Вам важно, что она работает как часы. И в таком виде она и пригождается. А исходник в данном случае бонус — мол, хотите что-то изменить, милости просим (если сумеете). Так же можно даже в таком коде подсмотреть что-то по работе с аппаратурой, API, или ещё что подобное.

Но! Выкладывая что-то в паблик человек автоматически говорит окружающим «Смотрите! Вот это вот я!». Даже если он это не хочет и совсем не подразумевает.


Не «вот это вот я», а «и это тоже я». В том числе.
> А вот нет. Когда вы запускаете программу и она работает, как ожидалось, вам наплевать, насколько красив код внутри, есть ли там тесты, читаем ли синтаксис и прочее. Вам важно, что она работает как часы.

В термине «говнокод» явно указан субъект — это код :)
Юзеру интересен конечный продукт и пофигу кем и как он написан. Мы имеем риск получить «говнопродукт» но это совсем не одно и то же.
Ваш код в любом случае устареет и будет забыт, независимо от его качества. Многим ли сейчас интересен совершенный код на фокале или коболе? Совершенный код нужен для проекта, который будет сопровождаться/модифицироваться длительное время. Если вы делали разработку для себя и выложили её на гитхаб, ожидать длительного цикла сопровождения и соответствующего кода будет несколько наивно. В конце концов, у автора конечные и весьма небольшие ресурсы. Хотя бы непросто помнить, как внутри программа устроена, если этих программ было написано множество самых разных. Поэтому стоит смириться: код, разработанный на энтузиазме, не обязан быть совершенным.
А коммерческий — как повезёт. Вот код игр от Кармака, скажем так, далёк от совершенства (это мягко сказано). Но кому до этого есть дело? Выложенные им исходники воспринимают с благодарностью. Потому что независимо от кода, результат его работы поражает воображение. Не важно, сделан гамбургер из коровы или, гм, из говна (была тут про это статья :) ), если вкус изумительный.
в общем, скорее всего лучше такое в приват

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


Не стоит краснеть. Вы же это сделали? Уйма народу только совершенствуется в маленьких кусочках и никогда не сможет написать с нуля прилично работающее приложение. Потому что просто являются винтиками большого проекта. Хорошими винтиками. Но только винтиками. Оттого и море болтовни про качество кода и очень мало хороших программ, созданных не в фирмах и не на работе.
UFO just landed and posted this here
Ну оно то конечно так, да. Но зачем давать лишний повод для вопросов? Что мол это было буквально дцать лет назад и вообще это было неправда и сегодня я бы утопил за такой код и прочее блаблабла…

Чтобы в это [потенциально] ввязываться должна быть разумная причина. Выше, допустим, товарищ привел пример со старой игрушкой. Вполне себе понимаемая причина. Но просто так устраивать в паблике доску своего почета за последние дцать лет — это может выйти боком.
UFO just landed and posted this here
Только дата не будет старше регистрации проекта в гите. :)
UFO just landed and posted this here
> Зачем же тогда?

Торвальдс уже давно сказал: Just for fun. Единственная прибыль от создания OpenSource — удовольствие от понимания того, что ты сделал что-то полезное и люди этим пользуются. Рассчитывать на какую-либо материальную отдачу бессмысленно, в лотерею выиграть и то вероятнее.

Про раскрутку: кроме stackoverflow, имеет смысл выложить описание в соответствующие сообщества на реддите. И туда же — новости о выходе мажорных версий.

А, я забыл написать про реддит, да. Ну… вы догадываетесь какой результат принёс пост там, если я про него даже забыл написать :)

Торвальдс это делал Just for fun, когда сидел в чулане у мамки на шее. Потом он вполне себе за это деньги получал. А так да, если у тебя поднялся в пирамиде Маслоу до самой вершины, то на топ залезть, как раз можно с помощью Open Source проекта
UFO just landed and posted this here
И результат тогда тоже будет — just for fun.
UFO just landed and posted this here
Единственная прибыль от создания OpenSource — удовольствие от понимания того, что ты сделал что-то полезное и люди этим пользуются. Рассчитывать на какую-либо материальную отдачу бессмысленно

Вот о том я и говорю: хорошо быть мальчиком-смузихлёбом с контрактом в гуяндбуке на пять лет. С расширенной мед. страховкой, отпуском и оплачиваемыми билетами+трансфером до конференций+размещением. Хорошо светить личиком на сцене во славу пиара родной конторы и пафосно заявлять что, мол, расслабьтесь чуваки, opensource — это Just for fun. Это вот они могут себе позволить такую формулировку.


Только это всё не про нас. И не про вас. И не про читателей статьи. Это важно понимать. А ещё (нам и вам) важно понимать как это всё на самом деле работает в современном мире, как вписывается в бюджеты и финансирование, кто оплачивает весь этот банкет и кто и что с этого имеет. Это поможет определить наше с вами место в этом бардаке лучше чем фраза "Just for fun".

> Вот о том я и говорю: хорошо быть мальчиком-смузихлёбом с контрактом в гуяндбуке на пять лет. С расширенной мед. страховкой, отпуском и оплачиваемыми билетами+трансфером до конференций+размещением. Хорошо светить личиком на сцене во славу пиара родной конторы и пафосно заявлять что, мол, расслабьтесь чуваки, opensource — это Just for fun. Это вот они могут себе позволить такую формулировку.

Ммм… Ну платят кому-то. Бывает. Вам судя по желчной реакции нет. Точнее — на лицо острое чувство обиды от собственной недооцененности социумом. Не переживайте! Все ещё сбудется!
Ну платят кому-то. Бывает

А если платят — то где же тут "некоммерческость" и Just for fun? Занятная ситуация — в некоммерческом духе opensource нас удивительно часто уверяют люди, которые получают за это деньги. Я всего лишь указываю на некую непоследовательность такой позиции.


на лицо острое чувство обиды от собственной недооцененности

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

> А если платят — то где же тут «некоммерческость» и Just for fun? Занятная ситуация — в некоммерческом духе opensource нас удивительно часто уверяют люди, которые получают за это деньги. Я всего лишь указываю на некую непоследовательность такой позиции.

Простите, но почему вы решили. что open source — это сугубо джаст фо фан? С чего вдруг :-?
Нажмите кнопочку «показать ветку комментариев» над вашим комментарием. После чего прокрутите до самого верха. Читайте. Там русским по белому написано кто это сказал.
> Вот о том я и говорю: хорошо быть мальчиком-смузихлёбом…

Так это таки вы говорите или это кто-то другой :-?
Это такой стилистический оборот, который стоит понимать как «продолжая мысль Торвальдса на современные реалии...»
> хорошо быть мальчиком-смузихлёбом с контрактом в гуяндбуке на пять лет.
> Только это всё не про нас. И не про вас. И не про читателей статьи.

Я не программист, а админ/devops, но тем не менее у меня получается иногда записывать в блог или выкладывать на гитхаб какие-то мелкие наработки, которые можно целиком куском выдрать из проекта. По согласованию с работодателем, разумеется. А также писать баг-репорты или предлагать PR для исправления каких-нибудь мелких багов, в которых я сам могу разобраться.

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

А поддержка? А документация? А апдейты? Я вот как раз об этом говорю. Выложить какую-то вещь в формате "берите кому не жалко, автор ни за что не отвечает" — это-то да. Вполне себе можно и по фану. Но в такой ситуации особо-то и не о чем рассказывать, нечего обсуждать. Плюс, что-то мне подсказывает, что Торвальдс имел в виду не это.

> А поддержка?
Мне приятно помочь человеку, который использует мой проект. Если почему-то не приятно или нет времени — я просто отвечу, что сейчас проектом не занимаюсь, но всегда рад принять пулл-реквесты с исправлениями. OpenSource же.

> А документация?
Я извращенец — мне нравится писать понятную документацию, которая позволит другому человеку взять и использовать мою наработку. К сожалению, нас таких мало, большая часть проектов на гитхабе выглядит как куча кода без какого-либо описания, что со всем этим счастьем делать.

> А апдейты?
Если мне захочется что-то допилить в проекте. Или если кто-то пришлёт PR.

Just for fun :)
UFO just landed and posted this here
UFO just landed and posted this here
Прокачивать скилы — тоже хорошая отдача от OpenSource. Но даже для этого нужно, чтобы проект имел хоть какую-то популярность, пользователи репортили баги и писали фича-реквесты. Иначе никакого проку от открытости нету, можно те же 14 лет делать этот проект, никуда не выкладывая.

> я перестал париться за полезность, популярность, пользовательский фидбек

До такого дзена я ещё не дорос, но искренне восхищаюсь :)
UFO just landed and posted this here

Кроме Хабра, Stack Overflow и reddit есть и другие способы раскрутки:


  1. Регистрация проекта в каталогах awesome-* на GitHub (для .NET-библиотек можно использовать каталоги Awesome .NET! и Awesome .NET Core).
  2. Выступить с докладом на митапе локального сообщества. В моем случае это были сообщества MoscowJS и MskDotNet.
  3. Находить статьи (или посты в блогах) о вашем проекте. Если они хорошие, то вы можете опубликовать ссылки на них на своих страницах в соцсетях. Если плохие, то постарайтесь в комментариях к статье внести какие-то исправления и более подробно узнать о проблеме. Если вы нашли очень хорошие статьи на английском, то заведите в документации раздел «Additional reading and resources» и соберите в нем ссылки на такие статьи.
  4. Завести в файле README.md раздел «Who's Using», в котором будете публиковать ссылки на тех кто использует ваш проект. Это повысит общую привлекательность проекта. Например, если у вас есть NuGet-пакет, то с помощью сервиса NuGet Must Haves можно найти пакеты, которые используют ваш пакет в качестве зависимости.
1. Спасибо. Гляну на досуге
2. История об этом есть в статье
3. Ха-ха-ха. Кто ж о свежесозданном проекте писать-то будет? Это уже на поздних этапах разве что
4. Мой пакет не предназначен для того, чтобы поверх него строить другие пакеты. А who's using — опять же ха-ха-ха.
2. История об этом есть в статье

Вы писали про конференции, а не митапы. Это разные вещи.
Не знаю, как в вашем городе, но в Москве слово «митап» в ходу с 2011 году. До этого подобные мероприятия называли юзер-группами.
Автор, я конечно могу ошибаться, но думаю что вы хотели обыкновенной похвалы за свои труды. Да и при том чтобы это было прям «здесь и сейчас», ну в смысле побыстрее. Желание быть кому-то полезным и необходимым — это ясно и понятно, но оно эгоистично, и немного несовместимо с бескорыстностью, которая присуща концепции OpenSource. И не смотрите на гитхаб как на «инстаграмм для программистов», не считайте лайки и звёзды. Фокусировка на результате частенько приводит к разочарованиям (и как следствие, освобождению от иллюзий: разочарование от слова «чары») потому что результата ещё нет, а ожидания от него уже есть :), а фокусировка на процессе наоборот приводит к повышению качества работы и продукта, собственно вы через это и прошли с некоторым трудом в попытках повысить качество документации, так как прекрасно понимали что документация — это вторая неотъемлемая часть вашей разработки. А что касается JetBrains и ваших слов о «commercial services». Тут тоже всё просто: они считают что «Ты — господин несказанного слова, А сказанного слова — ты слуга», но ваша позиция скорее ближе к: «Я хозяин своего слова — захотел дал, захотел забрал». Но ведь они имеют право на своё мнение и свои принципы так же как и вы, потому смысл обидок мне лично не ясен. Просто надо быть сильнее. И желательно иметь ответы на вопросы до начала какой либо деятельности это про "… мне-то это зачем?"

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

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

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

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

Я в статью вставил целую картинку с похвалой в десятке вариаций. И то не всё влезло. Вы полагаете, мне надо больше?


бескорыстностью, которая присуща концепции OpenSource

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


а фокусировка на процессе наоборот приводит к повышению качества работы и продукта

Я правильно понимаю что человеку, который 3 года методично поддерживает свой проект вы посоветовали сконцентрироваться на процессе?


но ваша позиция скорее ближе к: «Я хозяин своего слова — захотел дал, захотел забрал»

Какое же слово, позвольте узнать, я дал? Что готов помочь людям со своим проектом за денежку? А кто не готов? Это делает любой разработчик OSS, который использует свои наработки… кхм. На работе. Если быть последовательным, то JetBrains стоит прикрыть свою программу, ибо как полностью исключить коммерцию им не удастся. Я всего лишь озвучил итак очевидное на своей странице. И какого слова я должен быть слуга? Я должен пообещать JetBrains что никогда больше не буду использовать свой же проект в коммерческих целях? За что? За 200 долларов в год? А личико-то не треснет? Вот и вся суть ситуации, избавленная от ваших высокомерных моральных комментариев.


Но ведь они имеют право на своё мнение

Я никому не запрещаю иметь своё мнение. Просто мне хочется понять насколько оно последовательно.


Просто надо быть сильнее

Благодарю вас за совет, о котором вас не просили.

Вы полагаете, мне надо больше?

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

Я ознакомился, но я вижу что вы оцениваете OpenSource со стороны компаний которые делают на этом деньги. Обычно у них бизнес план, анализ рынка, и прочее, прочее… что соответствует такой схеме. Если хотели так же (хотя бы попробовать), то возможно у вас слабые места в оценке потенциального рынка применения вашего проекта (размеров рынка). И OpenSource он портит потребителя в некоторых ситуациях, пример: сам сижу на Linux — «да с какой стати я буду вам (разработчику) платить, если оно даровое и халявное». Это обратная сторона медали. Я так понял у вас упор на монетизацию при добавлении функционала был. Но разработчики что будут пользоваться вашим инструментом, вполне могут что-то сами допилить — возможно выйдет дешевле. Мне рынок если честно не понятен, но я не в теме, так как вам виднее и проект ваш. А желание донатить тоже не всегда возникает, это из личного опыта.
Я правильно понимаю что человеку, который 3 года методично поддерживает свой проект вы посоветовали сконцентрироваться на процессе?

Абсолютно. Сам был не однократно в ситуациях, когда основная работа мешала своим собственным поделкам. Я ни сколько не хотел занизить ваши временны'е вложения в проект. Но если вы чего-то недополучили, судя по статье и вопросам в ней, может тогда чего-то «недовложили», времени… внимания… рекламы в конце концов.
И какого слова я должен быть слуга?

В том то и дело, что решаете Вы. А я не знаю почему JetBrains следует таким принципам. Там ясно написано «if it meets all the requirements of JetBrains’ Open Source License Program.» У них есть программа лицензирования и они ей точно следуют. Почему? Да потому что это их продукты и они решили на каких условиях они готовы поддерживать своих пользователей/клиентов при помощи своего ПО. (ответ таков: не треснет) На вашем месте я бы проявил любопытство и поинтересовался «а почему именно так и в чём заключается корневые положения программы и политика компании». Мне было бы интересно, как пользователю. Получается вы хотите поддержки, но не до конца разобрались в принципиальных условиях её предоставления? Я думаю, Вы отказались от важной информации. В случае если они публично могут ознакомить с положениями своей программы.
Просто мне хочется понять насколько оно последовательно.

Так напишите им развёрнутые вопросы, «так мол и так, новичёк в опенсорс, могу ли я обратиться к вам за разъяснениями...». Вы извините меня за советы которые вы не спрашивали, но вам же хочется понять? Я думаю что бесполезно обсуждать программу тех, кто её написал, без самих авторов/утвердителей программы поддержки.

Я полностью разделяю вашу позицию, между прочим, я тоже думаю, что «какого это… я буду лишать себя своих собственных коммерческих прав на свой же проект». И что они «редиски» и захотели отнять у вас то что вы считаете неотчуждаемым.
Я полностью разделяю вашу позицию, между прочим, я тоже думаю, что «какого это… я буду лишать себя своих собственных коммерческих прав на свой же проект»
Никого они не лишают. Если даже вы начнёте вдруг заниматься коммерцией и начнёте предлагать платные консультации — лицензия будет действовать год. За этот срок вы, возможно, поймёте — окупают платные консультации Resharper или нет.

В случае если они публично могут ознакомить с положениями своей программы.
Достаточно зайти к ним на сайт и прочитать. Open Source — они поддерживают, Open Core — нет. Однако возникает проблема разделения. Вы под этот нож и попали.
Не хватило чего-то ещё

Слушайте, если вам прямо необходимо понимать статью в терминах "автору чего-то не хватало", то автору не хватало понимания как оно в целом работает и как вписывается в бизнес. Вот и всё. Автор поставил эксперимент — автор понял — автор написал. Пожалуйста, не ищите здесь каких-либо глубинных психологических подоплёк и скрытых мотивов. Автор не маньяк.


Я так понял у вас упор на монетизацию при добавлении функционала был

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


может тогда чего-то «недовложили», времени… внимания… рекламы в конце концов

Если я чего-то и "недовложил", то денег. В виде своего времени, или же в виде выполнения работы маркетолога. А вообще — вложил вот ровно сколько мог и хотел. И прикидываю сколько в это можно было бы вложить и какие результаты получить. Краем глаза, прикидываю кто может себе это позволить и кто каких результатов ожидает. Вот и всё что, в сущности, мне хотелось сказать. То есть опять же — прекратите пожалуйста исходить из того, что у меня есть какие-то глубокие (tm) психологические (tm) причины.


На вашем месте я бы проявил любопытство и поинтересовался «а почему именно так и в чём заключается корневые положения программы и политика компании»

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


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

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


захотели отнять у вас то что вы считаете неотчуждаемым

Ну хоть на том спасибо

А кто не готов?
Много кто не готов. Я например. Как представлю себе — каких усилий может от меня потребовать оформление всего этого юридически… желание как-то сразу пропадает.

Это делает любой разработчик OSS, который использует свои наработки… кхм. На работе.
На работе он совсем за другое деньги получает. И в контракте, зачастую, никаких упоминаний OSS нету. А если есть — то компания же за Resharper и заплатит, не бог весть какая беда.

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

Я должен пообещать JetBrains что никогда больше не буду использовать свой же проект в коммерческих целях?
Вы должны сказать что вот сегодня, сейчас, вы никакой коммерцией, связанной с вашим проектом, не занимаетесь. А если займётесь в течение года — то со следующего года будете платить 200 долларов.

Вот и вся суть ситуации, избавленная от ваших высокомерных моральных комментариев.
Нет, вся суть ситуации в том, что непонятно как отличить вас от фрилансера, который клепает на основе им собственоручно написанного «фреймворка» (набор NPM-пакетов плюс 100 строк своего кода) сайты на заказ. Если JetBrains позволят всем получать opensource-лицензии если у них есть сайт на github'е с тремя коммитами — то у них сильно упадут продажи. Потому они решили провести границу достаточно жёстко — если есть коммерческая деятельность, связанная с вашим проектом, то — вам нельзя выдать бесплатную лицензию (ваша коммерция в этом случае и будет вас кормить), если нету — то можно.

Если вы готовы платить $200 в год за право оказывать платные консультации… ну это ваш выбор, никто вас не заставлял этого делать.
На работе он совсем за другое деньги получает.

Как вы верно заметили выше, вопрос скользкий и является по сути вопросом разделения на Open Source и Open Core.


всем получать opensource-лицензии если у них есть сайт на github'е с тремя коммитами

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


платить $200 в год за право оказывать платные консультации

Я готов платить платить $200 в год за право пользоваться их продуктом. Как для коммерческой работы, так и для некоммерческой. Фактически на этом в итоге и сошлись. И это — мой выбор, как вы верно отметили.

> вы хотели обыкновенной похвалы за свои труды. Да и при том чтобы это было прям «здесь и сейчас», ну в смысле побыстрее. Желание быть кому-то полезным и необходимым — это ясно и понятно, но оно эгоистично, и немного несовместимо с бескорыстностью, которая присуща концепции OpenSource.

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

Так что хотеть для своего проекта популярности и востребованности — совершенно правильно. Если никто не будет им пользоваться — зачем вообще выкладывать это на гитхаб? Оно так же прекрасно полежит и на локальном диске, никому не нужное.

Отличная статья, спасибо что написали.


Дополню пару моментов.


  • Бесплатными путями (reddit, hacker news и прочие) можно сделать рекламу и это не требует особых скиллов маркетинга;
  • OSS — это отличный способ учиться с пользой. Я, например, не могу делать одни и те же hello world’ы на новой технологии и предпочитаю портировать полезную OSS библиотеку (включая ее релиз в репозиторий пакетов). Сразу получаю реальный, близкий к проду, опыт с новым языком и платформой и при этом помогаю чуть-чуть сделать технологию лучше;
  • OSS — это самый доступный способ для разработчика оказаться один на один со своими клиентами и заиметь опыт в полном цикле разработки продукта включая тот же маркетинг, ведение продукта, общение с клиентами и стратегическое планирование. Невероятно недооценённый и полезный аспект;
  • Некоторые компании используют поддержку OSS начинаний своих разработчиков в первую очередь для комфорта этих самых разработчиков. Счастливый разработчик — продуктивный разработчик. Из моего опыта, все компании где поддерживали OSS входили именно в эту категорию;
  • Больше двух более-менее популярных проектов одному потянуть сложно. Более-менее популярный — это сотни звёзд на гитхабе. Поэтому хорошо бы как можно раньше находить людей в коммьюнити (если они сами не проявились к этому моменту) кому можно делегировать хотя бы разгребание Issues.

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

Вставлю пять копеек по поводу документации.
По опыту — недостаточно описания ЧТО делает та или иная функция, нужно качественное объяснение ЗАЧЕМ она это делает. Это кстати концептуальная проблема. Разработчик (или опытный пользователь) представляет возможности системы целиком, а новичок — знает только часть, и как повлияет соответствующий Set или Get на то что нужно непосредственно ему — увы — еще не знает. Соответственно разработчик и пишет документацию таким образом, что часто её читать возможно только находясь уже на определенном уровне пользования.

Вы всё пишете правильно. Посмотрите ещё раз на картинку про Tutorial/Reference/Explanation/How-To — она поможет написать ещё больше правильных вещей :)


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

О, да! Слона-то я и не приметил.

Не очень понял, зачем пиарить свой открытый проект. Звёздочки какие-то… Только если ради потенциальных денег, но тогда JetBrains правы, отказав в бесплатной лицензии.


Если же не ради денег, то чем меньше у проекта пользователей, тем меньше глупых вопросов, меньше запросов фич, которые тебе лично нахрен не сдались, и меньше багов в трекере. Хотите тоже использовать ― берите и молча используйте. Хотите фичу ― напишите. Под Линуксом не работает? ― ну вот и почините. Автор не нанимался решать чужие проблемы.

Хотите тоже использовать ― берите и молча используйте. Хотите фичу ― напишите. Под Линуксом не работает? ― ну вот и почините. Автор не нанимался решать чужие проблемы.

Ну вот, а мне говорят что это у меня завышенное ЧСВ :)


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


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

Да нет, вы знаете, просто не хочется делать и выкладывать бесполезные вещи. Писать в стол, так сказать, не хочется.

Писать стоит в первую очередь для себя, для решения своих проблем. Это не бесполезная вещь и не в стол.


А если вещь приносит кому-то пользу — например, экономит силы и время — то это экономия денег в конечном счёте. А стало быть появляется коммерция.

Когда тебе платят за труд ― это коммерция. Когда ты свой труд раздаёшь ― это благотворительность.


Вот пишешь что-нибудь себе, решаешь свою конкретную практическую проблему. Потом смотришь ― получилось вроде неплохо, проблему решает, паровоз зависимостей не тянет и к основному проекту гвоздями не прибито. Можно выложить в общий доступ. Зачем? Тебе не жалко, а кому ещё вдруг пригодится. На этом можно остановиться.


[Глупая аналогия]Допустим, я не сантехник, но придумал способ легко отремонтировать протекающий сливной бачок. Могу рассказать об этом соседу и даже показать. Но и мысли не будет ходить рассказывать об этом всему дому.[/Глупая аналогия]

Когда тебе платят за труд ― это коммерция. Когда ты свой труд раздаёшь ― это благотворительность.

Мил человек, да труд в любом случае оплачивается. И если вы не можете найти того, кто его оплатил, значит его оплатили вы :)


Можно выложить в общий доступ. Зачем? Тебе не жалко, а кому ещё вдруг пригодится.

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

> Вот именно. Но на практике это работает далеко не всегда как задумывалось. И информационный эфир засорён всякими мотивационными речами, рассуждениями о моральной стороне вопроса, разного рода «компаниями, поддерживающими OSS». Я всего лишь пытаюсь в этом хламе разобраться, только и всего.

«Не читайте советских газет перед едой» ©…
Оно вам зачем? Разбираться в чъём то информационном мусоре.

Очевидно, чтобы уметь отличать где реальность, а где мусор.

Есть польза — найдётся кто-то, кто найдёт проекту коммерческое применение.
И замечательно! Но это вовсе не значит что конкретно вы будуте в этом замешаны. Возьмите Linux.

Как только он появился на нём начали делать деньги. Yggdrasil, Walnut Creek. Но вот конкретно Линус — в этом принципиально не участвовал. Даже в компанию устроился принципиально не связанную ни с какими разработчиками этого вот всего.

Именно потому что как только вы начинаете за консультации получать деньги — вы попадаете в совсем другую категорию с точки зрения налоговой. И ему это всё нафиг не сдалось… до тех пока OSDL не была готова оплачивать ему его работу фулл-тайм.

Ровно из тех же соображений Столлман уволился из MIT, когда начал работать на GNU: в противном случае он бы ещё долгие годы обсуждал бы с юристами вопрос «а кому именно принадлежат права на разработку».

Странно тут про всё это рассказывать и описывать, если честно. Это ж всё — «всем известные» истории… хотя, похоже, таки не всем…
Я могу понять зачем OSS нужен сотрудникам компаний, если такую деятельность компании готовы оплачивать. Делов-то — убедить босса в том, что занимаешься очень полезным делом, «делаешь мир лучше» — и готово.
И я не вижу в этом ничего плохого, ведь в целом, выигрывают от подобных вещей все: как компания, которая как было уже упомянуто, это своего «благотворительность», а для нас, разработчиков, это способ показать в свой вклад в разработку отрытого проекта (хоть и задуманного изначально с коммерческими целями). Плюс ко всему для вас это лишняя возможность блеснуть чем-нибудь в резюме. Чем не выгода для вас в том числе? :)

С другой стороны, как правило те кто занимаются OSS (будь то свои проекты или вклад в существующие, даже в виде тикетов) зачастую имеют достаточно широкий кругозор и могут много чего интересного подсказать. Например, у меня на работе частенько спрашивают что было бы интересно использовать для существующих проектов (фреймворки, библиотеки, какие-нибудь инструменты для тестирования и т.п.).
Я могу понять зачем OSS нужен молодым разработчикам — получить промышленный международный опыт, показать себя.
В целом опыт и/или интерес к чему-то новому и являются причиной к появлению проектов с открытым исходным кодом. Либо, что тоже имеет место: отсутствие нужного инструмента, которым было бы желание пользоваться или архитектура существующих может попросту не устраивать в силу каких-то причин и предпочтений. Самое главное только чтобы то, что будет реализовано позднее было доведено хоть до какого-нибудь минимально готового вида, чтобы желающие могли этим воспользоваться, хотя бы.
Сделать же большой и сколько-нибудь известный OSS-проект самому, с нуля, в современных реалиях практически невозможно, как мне кажется.
Любой проект когда-то начинал с малого и не становился с первого же своего релиза популярным, трендовым и молодежным, а проходил ряд этапов развития и испытаний временем, которые проходит любой ныне существующий Open Source проект. Не получилось (или любой другой свой вариант), тогда начинайте следующий и развивайте идею дальше.
За последние 3 года никто этим проектом не интересовался помимо его непосредственных пользователей. Работодатели? Рекрутёры? Пха! Не смешите мои тапки. Ссылка на проект торчит во всех профилях, но не упоминается ни в одном письме с предложением о работе. Как будто его не существует. А отдельные индивиды даже просили меня приложить к резюме пример кода zip-архивом — вот настолько у ссылок на GitHub развит навык мимикрии и невидимости! В общем, приготовьтесь к тому, что в карьерном плане небольшой, но живой OSS-проект вам не особо-то поможет.
Не смотря на то что сам участвую в разработке Open Source проектов (своих и контрибьюция в чужие), наличие подобных проектов дает вам жирный "+" в карму и небольшое преимущество в поиске работы, но никак не гарантирует вам её получение. В моем случае, с этим фактом я уже смирился давно и в CV добавляю всего пару ключевых проектов (самых «жирных» по вкладу/возможностям).

Но, безусловно, существуют и редкие исключения. Некоторые умные рекрутеры, владеющие поиском по GitHub'у, могут наткнутся на ваш профиль с проектами и пригласить к себе на собеседование. Если повезет, то еще и тестовое вам «скипнут» в качестве бонуса за то что вы такой хороший разработчик уже на старте.

У меня был подобный случай (в прошлом году) с проектом который я уже около года делаю в одиночку. Проект этот посвящен реализации matchmaking'а для игр (ссылка) на микросервисной архитектуре, поскольку не нашел открытой реализации в нужном мне виде и которой мог бы поэкспериментировать на досуге. Так вот, сей проект привлек внимание рекрутера, которая вышла на связь со мной через мою основную почту. И хотя я работу не получил, но впечатление в целом было весьма положительное по итогу. По крайней мере после той цепочки собеседований осталось осознание что делаю что-то не зря и двигаюсь в правильном направлении.
А почему не пытались статьи писать на англоязычные аналоги хабра?
medium, dev.to, etc
Не поверите — я спрашивал у всех и каждого какие есть англоязычные аналоги хабра. Мне все подряд говорили только про reddit. Туда и написал. Эффект был так себе.
Medium тогда был не настолько развит
«Сотрудникам компаний» OSS часто нужен для выяснения потребностей рынка и ускорения разработки. Я имел отношение к тогда еще закрытой версии некоего корпоративного UI-фреймворка — когда разброд и шатания в стане разработчиков, а особенно продакт менеджеров дошли до критического уровня, где-то сильно наверху решили продукт заопенсорсить и дать людям, предлагавшим «написать лучше» это действительно сделать. В результате, одного из главных критиков архитектуры (надо сказать, за дело) начали спонсировать — сегодня он уже на полной ставке консультирует пользователей и ездит по конференциям. По моей оценке — компания сэкономила миллионов так пять долларов только на зарплате, не считая пиара и прочих побочных эффектов.
еще один ПиАр ход — выкладывать вакансии типа
«в подразделение Гугл требуется разработчик со знанием left-pad, зарплата $45 в час»
Оригинально. Я запомнил :)
Автор — хочется добавить свои пять копеек и прежде всего сказать что вы молодец! У самого все чешутся руки выложить свой проект в opensource и как минимум по средством хабра донести до масса свой костылик в решении некоторых проблем в C#. Прочитав вашу статью стало еще больше понятно с чем возможно придется столкнуться. Но тем не менее, даже после получения вашего опыта все равно хочется выложить свой проект для масс и возможно это кому то принесет пользу.
Ваша библиотека — хороша, узнал о ней через чат в телеграмме(про .net)
Сам пилю репозиторий на Github про Angular Universal(212 звезд, 1к уников в 2 недели) — стараюсь раскрыть решение насущных проблем в проектах, которые сложнее hello world. Раскручивал репозиторий через создание чата в телеграмм, выступление на конференциях по Angular и самое главное ответами в issues на Github по angular/universal, теперь пойду StackOverflow смореть)
Спасибо, отличная статья!
Руки не доходят до делать свой «Идеальный каталог», тоже собираюсь выложить на packagist.org, пусть люди пользуются.
У меня была заминусованная статья про «Мой склад», там в пух и прах разнесли мой код на github, но тем не менее 180 форков у репозитория есть :)) Если бы форкать было не чего, то наверное не форкали бы? Даже в телегу один раз написали с вопросами, вот такой хабро-эффект.
Как я вас понимаю… Практически со всем сказанным довелось столкнуться… А уж сколько это времени съедает… — прорву. Даже для самого что ни на есть примитивного проекта…
P.S. Есть в активе проект с пятьюстами звездами на гитхабе… и парочка помельче…
Как по мне, интересный ход мыслей. Минимум емоций и каких то резких выводов. При чтении информация воспринимается не как истина, а как мнение автора. Это редко встречается. Большинство претендуют на истину.

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

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

Касательно непосредственно развития своего OS проекта. Я путь автора не проходил, но были мысли о рекламе своего js фреймворка. До этого дело не дошло, так как появилась другая версия. Я бы даже сказал, полностью другой фреймворк. Потом снова полное обновление. Эти версии не похожи друг на друга. Конечно, чем больше изменений, тем больше пользы. Если бы я выкатил первую версию, я бы не выпустил вторую, потому что мне пришлось би придерживаться принципа обратной совместимости. На данном этапе разрабатываю концепцию новой версии. Не знаю, лучше ли это текущих фреймворков. Но, допустим, да — лучший. То есть, (дальше не уверен в том, том что говорю) как я вижу процесс опен сорс проектов. Перед выходом первой версии планируется архитектура соотвественно текщим технологиям и требованиям. Эта версия выходит. И все — через принцип обратной совместимости не возможно полное изменение проекта. То есть он в какой-то мере обречен. И не только по этой причине. Нововведения будут рассматриваться в контексте текущего проекта (оперируя существующими терминами: «компонент», «сервис», «модель»). Маловероятно полное изменение кода. Почему это нужно? Придерживаясь текущего кода проекта предполагается, что его базис идеален. Хорошо, если так. Но сомневаюсь, что есть идеальный код. Да, ангуляр изменил первую версию. Это указывает на то, что это (полное изменение кода) лучше, чем придерживание старых концепций. Но много ли таких примеров?

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

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

Breaking changes сплошь и рядом. Главное в документации объяснить пользователям как делать в новой версии то, что у них уже работает в старой. Я прямо в документации писал предупреждения. Ну или если изменений много, то отдельная страница документации, озаглавленная "Migration to version X" вполне решит все проблемы. Главное чтобы изложенные там шаги работали и не падали.

Я имел в виду полностью новая версия з другим ядром. В таком случае, если это фреймворк, пользователь должен будет полностью переписать свой код. Допустим, ангуляр — это новая версия реакта и он намого лучше реакта в силу своего почти идеального ядра (все это допустим). В ридми пишешь — переходите на ангуляр, он лучше реакта. Какая будет реакция сообщества и много ли людей станет использовать ангуляр зная, что автор может его в любое время бросить. Это просто как мысль.

Если библиотека — то да. Хотя все равно очень трудно будет пользователю перейти на совершенно новую версию (новую в плане изменения апи больше чем на 50%).

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

Большие тексты сложно воспринимаются, если не использовать приёмы беллетристики.
Вполне согласен. Сам склонен получать новые знание, которы основаны более-менее научно. Но читать чисто науковые статьи очень трудно. (Они мне напоминают Terms and conditions з сайтов). В результате просто может потерятся интерес к данной области, что совсем не хочется. Побольше бы таких статей. В самом деле и интересно, и полезно. А это редко сочетается.
Сделать же большой и сколько-нибудь известный OSS-проект самому, с нуля, в современных реалиях практически невозможно, как мне кажется.

Можно, и это я говорю вам, как автор библиотеки с более чем миллионом загрузок через NuGet.


За последние 3 года никто этим проектом не интересовался помимо его непосредственных пользователей. Работодатели? Рекрутёры? Пха! Не смешите мои тапки. Ссылка на проект торчит во всех профилях, но не упоминается ни в одном письме с предложением о работе. Как будто его не существует. А отдельные индивиды даже просили меня приложить к резюме пример кода zip-архивом — вот настолько у ссылок на GitHub развит навык мимикрии и невидимости! В общем, приготовьтесь к тому, что в карьерном плане небольшой, но живой OSS-проект вам не особо-то поможет.

Здесь проблема не в том, что проект не популярен, а в том, что популярность проекта не всегда ведет к популярности его автора. Зачастую разработчики просто устанавливают пакет через NuGet и иногда бегло читают документацию. Решив свою проблему с помощью библиотеки, разработчики на какое-то время просто забывают о ней (вспоминают только в том случае, когда возникают какие-либо проблемы). В большинстве случаев, отечественные разработчики используют open source-библиотеки по следующему принципу: «Эту библиотеку написал какой-то забугорный чувак, ну и я рад за него…». Приведу пример из собственного опыта: один из моих бывших работодателей больше года использовал мою библиотеку в продакшене и узнал о том, что я автор библиотеки только при разговоре со мной. Просто не каждый смотрит README, описание NuGet-пакета, текст лицензии или фотографию автора.


Я периодически вижу на Хабре статьи о том, как хорошо иметь свой open source-проект или участвовать в каком-нибудь проекте в качестве контрибьютера. По большей части все эти статьи далеки от действительности. Но есть в них и рациональное зерно: в наше время каждый разработчик должен иметь аккаунт на GitHub и какую-нибудь историю активности на нем. Потому что современный HRы, как и специалисты из других областей, хотят иметь количественную оценку человека, а, на данный момент, они могут получить ее только из аккаунтов на GitHub (используются автоматизированные средства такие, как GetCoder.io), Stack Overflow, пакетных репозиториев или магазинов мобильных приложений.


У каждого может быть своя мотивация при создании собственных open source-проектов (PR, желание заработать, найти работу своей мечты или обкатать какую-то идею), но в большинстве случаев все сводится к одному – желанию быть круче.


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

Сардонический смех. Ха-ха-ха. Многие утверждают, что пример 2 из этой статьи — какой-то слишком уж сказочный.
Ничего подобного HR-ы и рекрутёры иметь не хотят. Они хотят закрывать показатели и их не особо волнует кто и что этот конкретный разработчик. Поэтому я и пишу явно — небольшой OSS проект помогает в поиске работы, чаще всего, никак.


В остальном согласен.


Кстати, getcoder.io мне выдаёт 404 в ответ на все мои запросы.

Кстати, getcoder.io мне выдаёт 404 в ответ на все мои запросы.

getcoder.com — по ссылке нужно кликать.

После забивания в поиск моего логина, имени аккаунта, ссылки, чёрта лысого — 404

getcoder.com/ru/p/pavel-b-novikov — эта ссылка работает.

Похоже, что система неправильно обрабатывает репозитории, привязанные к организациям. Возможно, что поэтому вас не находят HRы. В принципе, об этом можно написать в службу поддержки — support@getcoder.io.
Похоже, что система неправильно обрабатывает репозитории, привязанные к организациям

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

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


В принципе, об этом можно написать в службу поддержки

У меня есть задачи и по-важнее.

UFO just landed and posted this here
Скорее фича, посмотрите список стран где оно ищет разработчиков, похоже было задание искать только в странах, где есть клиенты и система тупа не находит никого у кого нет локации или локация «неправильная».
небольшой OSS проект помогает в поиске работы, чаще всего, никак.

А давайте посмотрим на это с другой стороны? То что оно «чаще всего, никак» не помогает — это ваша точка зрения, но если смотреть на отрасль в целом — то оно помогает следующим образом. Я кину взгляд немного в будущее. Если следовать концепции, что в каждой отрасли развитие и прогресс происходят через снятие издержек при внутреннем взаимодействии, за счёт новых инструментов и технологий, то можно нафантазировать себе следующее недалёкое будущее:
1) в связи с тем, что теперь есть популярная площадка хранения кода и механизм внесения элементов прогресса, как своего вклада в общее и светлое цифровое будущее (я тут не стану оценивать понадобилось ли оно кому нибудь другому, кроме разработчика этого кода, это не важно, важно само наличие и участие, потому что при наличии проекта появляется и сам предмет обсуждения и последующие вопросы его оценки), то смею предложить что в области HR сейчас идёт бурная внутренняя деятельность по тому вопросу, что «а как же оценивать потенциальных работников». То есть чтобы следовать прогрессу HR'ы вынуждены будут делать экспертизу кода потенциальных разработчиков. Существующие HR'ы к этому просто не готовы, потому у них проблема закрытия показателей и всплыла.
2) У тех кто нанимает HR к себе на службу, в скором времени будет (или уже есть) головная боль от того что программерской компетенцией они не обладают, и раньше им это и не нужно было, так как эта экспертиза проходила на собеседовании, когда претендента пригласили поговорить о его скилах и его цене. И собеседовали его коллеги из разработчиков, так как только они могут сделать такую экспертизу. При этом, могу сказать, что постоянные собеседования претендентов в некоторой компании, превращаются в текучку, и отнимают уйму времени у толковых разработчиков, в связи с этим, программисты несут уже двойную нагрузку, что просто участвуют в разработке кода, и ещё в собеседованиях. Некоторым эта деятельность, кстати, может не нравится, это индивидуально у каждого разработчика. Подозреваю, что в связи с этим наряду с обычной дилеммой куда податься после — в архитекторы или манагеры, возникнет третья дорожка — «а пойду ка я в HR'ы», скажет наш товарищ, в прошлом кодер, но которому ни в архитекторы ни в манагеры не захотелось идти. Да ещё и откроет конторку по внешней независимой экспертизе исходников на гитхабе. И будет услуги предлагать, тем самым сняв издержки собеседований с нынешних разработчиков, и лишив работы многих HR'ов которые не приобрели такой компетенции по анализу кода и его оценке. Подозреваю, что в требованиях на вакансию некоторых компаний, будет уже явно указано, что наличие своих проектов — обязательно. Это наше с вами недалёкое будущее, товарищи.

Потому, Павел, вы можете счесть меня за фантазёра, но может стоит рассматривать наличие такого проекта у себя как вложение в общую будущую инфраструктуру IT-отрасли. Да, написав этот проект, вы лишите работы некоторых HR'ов в будущем. Это не обвинение, у нас же уже лишают работы водителей, заменяя их роботами, так что тут никто не виноват. А причина такая — количество таких проектов будет расти, а HR'ы будут не в состоянии вас как-то оценить, у них не будет линейки. Даже я, будучи разработчиком и программистом не в состоянии оценить ваш код, так как выбор средств в отрасли только растёт и я не обладаю полнотой компетенции ни в C# ни в других технологиях да ещё и к тому же я не HR.
наличие такого проекта у себя как вложение в общую будущую инфраструктуру IT-отрасли

Я склонен считать, что уже перерос тот период, когда работал за идею. Сейчас я предпочитаю работать за деньги. Вначале карьеры ещё были какие-то такие поползновения. Что вот мол, будущее, вклад, участие, бла-бла-бла. Сейчас же мне эта отрасль с глупыми HR-ами, придурковатыми менеджерами и javascript-безумием, если честно, до звезды соболя. Я готов выслушивать любое безумие заказчика и поддерживать его, но только после оплаты.


У тех кто нанимает HR к себе на службу

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


«а пойду ка я в HR'ы», скажет наш товарищ, в прошлом кодер

Вот. Вот теперь вижу что вы фантазёр, да.


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

… что зарплата не более $2000/месяц. Вы в принципе мечтаете, а в реалиях нашей страны — мечтаете о путешествиях в соседние измерения.


в области HR сейчас идёт бурная внутренняя деятельность по тому вопросу, что «а как же оценивать потенциальных работников»

HR'ы будут не в состоянии вас как-то оценить, у них не будет линейки

В комментариях к этой статье досконально разжевывается и обсасывается мысль о том, что ни в какой линейке HR-ы не нуждаются. И до кучи объясняется почему. Исходить из потребности HR-ов и рекрутёров в github-аккаунте ошибочно. Не хочется опускать вас с мечтательных небес на землю, но прочтите её и посмотрите комментарии.

> Просто не каждый смотрит README, описание NuGet-пакета, текст лицензии или фотографию автора.

Я бы даже сильнее сказал: очень редко кто смотрит в README в секцию Authors и там более ищет фотографию. Если же такой порыв возникает [тем более с фото] это с бОльшей вероятностью не от большой любви К… :)

Ну в самом деле. Ну какая мне разница кто это и что это? Если оно просто тупо работает. Селяви'с. Особенно если это не проектообразующая жизненно важная библиотека но нечто средне-мелкое. Что самому писать просто так не с руки но в случае чего — напишем.
… и там более ищет фотографию

Судя по всему, вы не знаете как выглядят страницы NuGet-пакетов и профиль на GitHub.

Вы правы — я действительно не знаю как выглядят страницы NeGet пакетов. Никогда не приходилось с ними сталкиваться. А профиль на гитхабе — а как он выглядит :-? Профиль как профиль. Что в нем интересного?
Да, ничего интересного там нет. Там просто есть фотография.
Не факт, совсем не факт. Далеко не все товарищи прикрепляют к профилю на гитхабе фотографию. По крайней мере свою.

И как же выглядят страницы NuGet-пакетов? Ни о какой фотографии там речь не идёт — речь идёт об иконке приложения.
За весь свой немаленький опыт работы с NuGet-ом я ни разу не видел, чтобы кто-то ставил своё фото иконкой пакета.

Это логин человека на NuGet. По нажатию на него открывается список загруженных пакетов.
Вы зря так, про то, что этот опыт никому не интересен. Мы всегда смотрим любой код на любом ресурсе, ссылка на который есть в резюме кандидата и часто качество этого кода становится решающим фактором. А наличие документации — чуть ли не еще бОльший бонус. Другое дело, что за редкими исключениями, когда нам было интересно обсудить код — мы не говорили, что для нас это было важным пунктом. Если с вас просят звёзды и прочие не технические метрики — наверное, не стоит идти в такую компанию, а то на работе вместо кода тоже будут звёзды хотеть или там лайки, просмотры и прочие «бубенцы» :)
Без уточнения кто это «мы» — звучит угрожающе :)
Извиняюсь, не хотел :)
Ну, у нас всё равно нет позиций в .NET, а связывать свой личный аккаунт на хабре со своим работодателем мне бы не хотелось. Я просто сильно сомневаюсь, что мы одни так считаем относительно opensource-проектов кандидатов. Хотя, конечно, это не отменяет вероятности, что HR может какую-нибудь глупость сказать или спросить не посоветовавшись — к сожалению, тоже бывает
Само собой вы не одни. Однако мой опыт показывает, что таковых меньшинство.
Как человек, начавший разработку open-source продукта в одиночку (тут важную роль сообщества пока не рассматриваем) еще десять лет назад, и до сир продолжающий уже с компанией из 13 человек (все фул-тайм работают над этим проектом), могу поверхностно судить, что маркетингом тут и не пахло. Повторюсь, что сужу поверхностно, так как выводы делаю только на основании вашей статьи.
Андрей, библиотеки и CMS – это разные вещи, потому что проект CMS изначально предполагает наличие услуг по поддержке и консультированию. Сейчас многие отечественные веб-студии опубликовали исходный код своих коммерческих CMS и зарабатывают на их внедрении.
В целом согласен. Бизнес модель отличается, но и библиотеки нуждаются в маркетинге. В комментарий просто не поместить большой и развернутый ответ. Тут можно статью целую написать. Про плюсы и минусы, подводные камни, в общем просто поделится опытом. «Хмм, а может написать?» — подумал я, пока писал этот комментарий
Хорошего маркетинга без бюджета не бывает, если вы конечно не сверхчеловек. ИМХО.
Бывает. Конечно, он отличается от маркетинга с бюджетом, но он бывает. Хороший он или нет — вопрос второй. Но когда денег нет, выбирать не приходится. Наш проект, например, начинался без бюджета и очень долгое время развивался без него

Честно говоря, не знаю какой может быть маркетинг у open source-библиотеки. Первое что приходит в голову – это анализ существующих аналогичных решений для платформы. Если таких решений нет, то нужно анализировать решения с других платформ. Подобный анализ я делал, когда разрабатывал Bundle Transformer и WebMarkupMin.


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


Все остальное – это же раскрутка. Фактически раскрутка .NET-библиотеки начинается с ее публикации в NuGet Gallery.

UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Вы молодец и ваш проект натолкнул меня на мысль о другом п*це в IT, особенно в web-е.
Какого чёрта за 20+ лет существования web-а, при всём обилии фреймворков для VDOM, компонентных моделей, MVVM, изоморфности и прочего, прочего — какого хрена до вас не было придумано нормально работающего валидатора для mask input-а? Какой-то Советский Союз в международном масштабе, ага. «Зато мы делаем ракеты».

Возможно проглядел и кто-то уже упомянул подобное…
Наличие опенсурс проекта с положительными отзывами можно попробовать предъявить как "заслугу" при подаче на О1 визу в США.
И возможно в других случаях где нужно предъявить грамоты/медали.

Это был именно тот комментарий, которого я ждал к этой статье.

Sign up to leave a comment.

Articles