Участие в open source: полное руководство

Содержание

Введение: Что же такое Open Source?

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

Если перевести словосочетание «Open Source», то получим что-то вроде «Открытый Источник». Что же это значит в отношении к ПО? Любая программа, а вернее сказать — приложение, которое выполняется компьютером является двоичным (бинарным) файлом, состоящим из набора нолей и единиц, понятным только ему одному. Разрабатывать программы таким образом невозможно, поэтому программисты сначала их пишут на понятных для человека языках программирования. В таком состоянии программы представляют из себя обычные текстовые файлы, и называются — исходным кодом. Когда исходный код написан, он специальными программами (компиляторами) переводится в двоичный вид (этот процесс называется процессом компиляции или сборки), в результате чего и получается готовое приложение, которое мы можем запустить и увидеть.

Подведём итог — программы бывают в двух основных состояниях — в виде исходного кода и в виде исполняемых бинарных файлов.

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

Warsow

Платформы: Windows, Mac, Linux

Warsow – динамичный соревновательный шутер, в значительной степени вдохновленный Quake, сосредоточенный на скорости и движении. Дорожная карта разработки включает такие ориентированные на киберспорт моменты, как Warsow TV и глобальные рейтинги. Также стоит отметить стильную графику, особенно сел-шейдинговых персонажей.

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

Открытый исходный код: что это и зачем?

Что означает «open source»?

любой может свободно использовать, изучать, изменять и распространять ваш проект для любых целей.лицензию с открытым исходным кодомСвободное ПО (Free software)открытое ПО (open source)терминов

Почему люди делают свою работу открытой?

Есть много причин

  • Сотрудничество: Open source проект может получать доработки от любого человека из любой страны мира. Например, платформа для упражнения в программировании Exercism, делается усилиями 350 авторов.
  • Адаптация и ремиксы: Open source проект может быть использован кем угодно, почти для чего угодно. Люди могут использовать ваш проект совершенно по-новому. WordPress, например, стартовал как ответвление уже существовавшего проекта b2.
  • Прозрачность: Любой может проверять open source проект на ошибки и несоответствия. Прозрачность важна даже на государственном уровне. Например, правительство Болгарии и США законодательно предписали прозрачность для таких отраслей как: банковское дело, здравоохранение, и ПО безопасности, вроде Let’s Encrypt.

Обзоре GitHub

Для любого ли применения хорош Open Source?

Если посмотреть на примеры удачных применений Open Source, это будут прежде всего продукты, относящиеся к системному ПО — операционные системы, СУБД, средства виртуализации, Web-сервера, компиляторы и интерпретаторы языков, системные библиотеки, и т. п. Относительно удачным можно считать OSS-офис LibreOffice, который впрочем, происходит от StarOffice, созданного компанией Sun Microsystems. Компания Oracle через год после поглощения Sun’а прекратила разработку офиса, и он постепенно начал собственную жизнь.

Найти удачный Open Source проект типа бухгалтерии, ERP-системы, CAD/CAM системы довольно трудно. Что-то такое есть, но оно сильно уступает своим коммерческим собратьям.

Итак, Open Source хорош для системного ПО, и заметно менее эффективен для прикладного. Причины этого, по всей вероятности, такие:

  • Системное ПО не предназначено для конечных пользователей. Оно может разрабатываться программистами «для себя и себе подобных».
  • Системное ПО нужно очень большому количеству людей. Среди них находится достаточно разработчиков, чтобы их общий труд оказался достаточен для создания продукта.
  • Системное ПО очень наукоемко и трудоемко, цикл разработки долгий. Отдельным компаниям выгодно объединять усилия для создания продуктов или компонентов общего назначения, на базе которых они будут решать свои задачи.
  • Разработка системного ПО часто связана с реализацией новых научно-технических идей, поэтому она близка академическим сообществам, и трудна для корпораций.

Что будет дальше

Будущее предсказывать всегда сложно, а в технологиях особенно. Тем не менее, хочется отметить важный тренд: маятник качнулся в обратную сторону, и self-hosted составляет серьезную конкуренцию SaaS в сфере стартапов и мелкого бизнеса. И так сложилось, что если self-hosted с закрытым кодом «продать» пользователю очень сложно.

Если десять лет назад настройка своего облака была затратной деятельностью, сейчас с появлением Docker’а, K8s и т.д. задача сильно упростилась. Многие компании на ранней стадии вообще отказываются от выделенной команды DevOps’ов или системных администраторов, и поручают разработчикам поддержку парка машин. Не последнюю роль тут играет доступность облачного хостинга (Digital Ocean, AWS и т.д.).

Мне кажется, что через некоторое время настройка и установка сервиса в своей инфраструктуре станет сравнимой с установкой софта на Mac или Windows и будет доступна людям с минимальной технической экспертизой (Product- и project-менеджерам). И open-source станет намного больше!

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

Действительно ли этот Linux так популярен?

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

С другой стороны есть огромное количество компаний, крупных и не очень, заинтересованных в этой области и активно вкладывающих в Open Source деньги и силы своих сотрудников. Среди этого бесчисленного списка можно выделить самых активных и крупных, таких как Intel, IBM, Google, Sun Microsystems, Hewlett-Packard, NEC, Motorola, Nokia. Впечатляет? Такие крупные корпоративные игроки не могут ошибаться. Выводы делайте сами.

Как избежать обескураживания

Photo by Wes Hicks on Unsplash

Запомните: каждый раз, когда вы постите
что-то онлайн, вы открываете себя для
критики

Не важно, что это – комментарий,
фотография, статья или код – вы теперь
уязвимы. И вы должны в определенной
степени принимать критику, потому что
она помогает вам расти

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

Наши лучшие идеи не для всех
являются таковыми

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

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

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

Наша лучшая работа может не
соответствовать стандартам

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

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

Я исправил ошибки и послала код снова.
В этот раз я получил только пять замечаний.

Даже если вы думаете, что делаете
что-то хорошо, окружающие могут подтолкнуть
вас работать еще лучше. Для этого и нужны
ревью. Они не для того, чтобы покритиковать
вас лично или в чем-то обвинить. Их цель
– помочь вам, имейте это в виду!

Можно получить отказ, даже
если все сделано правильно

Порой вы в ответ получаете просто
«нет», и ничего тут не поделаешь. Вы
по-прежнему уверены, что открывалка,
пришитая к костюму, это отличная идея?
Начните воплощать эту идею самостоятельно!
В Open Source создание нового проекта на базе
существующего называется ответвлением
(forking).

Соответственно, сам проект при этом
называют форком оригинального. Например,
Ubuntu это форк Debian. Если люди во главе
проекта отказываются принимать ваши
изменения, вы можете сделать форк их
проекта и стать человеком, который его
поддерживает.

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

Тролли повсюду

Интернет дает всем иллюзию анонимности.
На этой почве возникла субкультура
людей, получающих удовольствие от
нападок на окружающих. Их называют
интернет-троллями. Мне пока не приходилось
сражаться с кем-то таким. Но на всякий
случай можете почитать “The
Complete Guide to Understanding and Dealing With Online Trolls”
Рейгена Частейна. Это поможет вам
подготовиться к такому неприятному
открытию.

Конкурентная ситуация: ведущие поставщики

По данным исследования Forrester Wave за 2010 год, лидером на рынке open source BI систем является Actuate BIRT.

Forrester Wave: Open Source Business Intelligence

Forrester Research, 2010

В сегменте систем, имеющих прочные позиции на рынке, Forrester поместила Spago BI, Pentaho Enterprise, Jaspersoft Enterprise и Pentaho Community. По мнению аналитиков, эти решения сопоставимы между собой. Интересно, что пограничное положение между сегментом претендентов и сегментом систем с прочной репутацией заняла системы Eclipse BIRT. В сегмент претендентов также помещена система Jaspersoft Community. Последние две не могут пока рассматриваться как промышленные BI платформы, однако, в ряде случаев они могут выступать как best-of-breed решения.

Интересно, что Gartner в своем отчете по рынку open source BI по состоянию на начало 2010 года называла крупнейшими поставщиками на этом рынке следующие компании: Actuate Software, Jaspersoft, Jedox, Pentaho and SpagoWorld.

Как открыть сайт openssource.info?

Самые частые причины того, что не открывается сайт openssource.info могут заключатся в следующем:

  • Сайт заблокирован Вашим провайдером. Для того чтобы открыть сайт воспользуйтесь VPN сервисами.
  • Вирусы переписали файл hosts. Откройте файл C:\Windows\System32\drivers\etc\hosts (Windows) или /ets/hosts (Unix) и сотрите в нем строчки связанные с сайтом openssource.info.
  • Ваш антивирус или фаервол блокирует доступ к данному сайту. Попробуйте отключаить их.
  • Расширение AdBlock (или другое аналогичное) блокирует содержимое сайта. Отключите плагин для данного сайта.
  • Иногда проблема с недоступностью сайта заключается в ошибке браузера. Попробуйте открыть сайт openssource.info в другом браузере, например: Firefox, Chrome, Opera, Internet Explorer, Safari.
  • Проблемы с DNS у Вашего провайдера.
  • Проблемы на стороне провайдера.
  • Выполните команды ping openssource.info или tracert openssource.info . Если выполнение указанных команд завершается ошибкой, то проблема, скорей всего, на сетевом уровне.

Типы Open source лицензий

Разработчикам ПО на выбор доступен ряд open source лицензий. Все они, конечно, соответствуют основным принципам open source, но могут различаться по степени «открытости» и условиям, на которых пользователям разрешается изменять исходный код. Вот некоторые из самых популярных лицензий:

  • MIT License. Эта лицензия, созданная в стенах Массачусетского технологического института, позволяет пользователям изменять исходный код с очень небольшими ограничениями. MIT совместима с GPL — это означает, что пользователи могут перелицензировать софт с MIT на GPL. Лицензия MIT позволяет пользователям перелицензировать софт также в проприетарное ПО с копилефтом.
  • General Public License GNU (GPL) 2.0./3.0. Любой продукт, использующий код, защищенный этой лицензией, должен также распространяться под GPL. Это сделано для того, чтобы наработки разработчиков open source софта не использовали в закрытых продуктах.
  • Apache License 2.0. В этой лицензии правила построже — особенно в области распространения ПО. Если вы имеете дело с продуктом под лицензией Apache, можете спокойно и совершенно свободно использовать и изменять код. Если же захотите распространять уже измененный софт, вы должно четко обозначить, что код вы меняли.
  • Common Development and Distribution license 1.0 (CDDL-1.0). Продукты под CDDl можно распространять как в оригинальном, так и в доработанном виде. Однако после этого перейти к копирайту будет уже нельзя. Кроме того, все изменения исходного кода тоже должны быть открыты.

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

Основное отличие BSD-лицензии состоит в том, что пользователям разрешено использовать и изменять исходный код программы, но они при этом не обязаны делиться своими изменениями с сообществом. Это значит, что они могут сохранять любые модификации программы для личных целей или вообще продавать новый продукт по коммерческой лицензии. Хотя этот тип лицензии и предоставляет разработчику больше свободы, многие сторонники философии Open source считают, что это ей противоречит.

Как возник Open Source?

В начале компьютерной эры о продаже программ и сокрытии исходного кода никто и не задумывался. В 1950-60х годах компьютеры производились крупными компаниями, вроде IBM, пользователями были прежде всего научные организации, госорганы и крупнейшие корпорации. Пользователи компьютеров разрабатывали программы сами и обменивались исходными кодами. Культура свободного обмена ПО существует примерно столько же, сколько существуют компьютеры.

В 1969 году компания IBM начала продавать ПО отдельно от компьютеров. Во второй половине 70-х — начале 80-х ПО было признано в США объектом авторских прав. Возникло соответствующее законодательство и судебная практика, возникло понятие лицензии на использование ПО, которая может быть продана и куплена.

В 1988 г. университеты MIT и Berkeley опубликовали свои Open Source лицензии. В 1989 г. FSF Ричарда Столлмана опубликовала свою «заразную» лицензию GPL.

На рубеже 1980х и 1990х годов родился интернет, который радикально увеличил возможности обмениваться информацией, в том числе — программными кодами. Он же резко увеличил и потребности в новых программах, расширив сферу применения компьютеров. В 1991 г. финский студент Линус Торвальдс создал первую версию новой операционной системы Linux, которой суждено будет перевернуть мир и стать знаменем СПО и Open Source. 90-е годы стали временем роста OSS, обусловленным появлением интернета. В 1991 г. Ларри Уолл выпустил 4-ю версию своего языка Perl, который начал резко набирать популярность как универсальный инструмент для программирования. В 1993 г вышла свободная операционная система FreeBSD. В 1995 г. Майкл Стоунбрейкер открыл код СУБД Postgres.

В 1990-е и начале 2000х годов OSS развивалось преимущественно учеными и интернет-компаниями (такими как Yahoo, Рамблер, и др.). Как и для программистов в 60е годы, для них это ПО было побочным продуктом, который помогал решать их основные задачи. Сложилась ситуация, когда различные компании, в том числе конкурирующие, были заинтересованы в развитии этого ПО, при этом его продажа никого из них не интересовала.

Поэтому в начале 2000х годов OSS плотно заняло сервера интернет-компаний и университетов, на ПК же царил Microsoft Windows.

Но уже в 1998 году Microsoft почувствовала угрозу со стороны OSS для своего рынка. Об этом недвусмысленно говорят т.н. Хеллоуинские документы, ставшие достоянием общественности благодаря утечке информации. В 2003-2007 г. Microsoft проводила рекламную компанию Get The Facts, в которой, манипулируя цифрами и фактами, заявляла о том, что Linux во всех отношениях хуже, чем Windows. Глава этой компании Стив Балмер открыто называл OSS «раковой опухолью».

Тем временем Apple отказался от ядра операционной системы собственной разработки и начал развивать ОС для своих ПК на базе BSD. Google приступил к разработке ОС нового поколения для мобильных устройств – Android – на базе Linux (выпущен в 2008 г.). В том же году сообщество Postgres начало активно заявлять о том, что PostgreSQL готов к использованию в Enterprise секторе благодаря общей зрелости продукта, возможности репликации и организации отказоустойчивых кластеров, и, конечно, полноценной работе под Windows.

Счастье — в модульности

Некоторые разработчики нашли себя, сосредоточившись на создании небольших, легко обслуживаемых, фрагментов кода и тем самым сознательно избавились от избыточной ответственности. «Я не люблю разрабатывать ПО, требующее масштабной поддержки, — говорит Джеймс Халлидей (James Halliday), создатель большого количество модулей Node.js. — Вообще стараюсь делать модули минималистичными. Уверен, многие инструменты выиграли бы от того, что над ними перестали работать, перестали вносить изменения без объективных причин». Дополнительные функции приводят к избыточной сложности, и каждое изменение влечет за собой риск появления новых багов.

Хэллидей (более известный под ником substack) — сторонник политики невмешательства и пассивного подхода. «У меня отключены все уведомления от GitHub», — говорит он. В самом деле, любой разработчик может форкнуть код и исправить обнаруженную проблему или добавить новый функционал в модуль. В конце концов, именно так работает Open Source. Джеймс перестает отслеживать issues или pull request’ы для пакетов, которые считает завершенными. «Постоянно следить за каждой мелочью, которую я написал много лет или десятилетий назад, — это не про меня, — отмечает он. — Я всегда занят новыми проектами, что было бы невозможно, если бы постоянно возвращался к старым».

Не существует идеального подхода к разработке, который пришёлся бы по вкусу всем разработчикам открытого и свободного ПО. Многие из них счастливы поддерживать свои проекты или работать с сообществом над улучшениями. Установка в духе «меньше — значит больше» становится все более популярной альтернативой для поддержания крупных проектов и сообществ. Как отмечает Эгбал в своей книге Working in Public: The Making and Maintenance of Open Source Software, добавление новых участников в проект фактически означает дополнительную работу для его авторов. Те рискуют оказаться на своеобразном крючке, связанном с необходимостью не только проверять чужой код, но и поддерживать новые функции, если новички уходят из проекта. Эгбал обнаружила в сообществе Open Source тенденцию к более модульному проектированию и разработке, когда авторы создают компактные пакеты, требующие меньшего числа maintainer’ов и меньшего объема работ. Даже такие крупные проекты, как Ruby on Rails, постепенно переходят на модульный подход.

Между тем, в отчете GitHub State of the Octoverse-2020 говорится, что Open Source-разработчики предпочитают вносить небольшие, постепенные изменения, тем самым создавая меньше проблем для тех, кто занимается поддержкой. «Главной лучшей практикой был признан небольшой охват pull request’ов, поскольку такой подход облегчает их рассмотрение (review), способствует более качественному анализу и упрощает откат в случае возникновения проблем, — сказано в отчете. — Также он улучшает обратную связь, стимулируя и способствуя повышению производительности команды».

Хотя модульный подход может облегчить жизнь Open Source-разработчикам, он также создаёт новые проблемы для крупных предприятий, увеличивая число пакетов, которые необходимо проверять и обновлять. «Объём потенциальных проблем ещё больше. Слишком много зависимостей, при этом за каждую отвечают разные программисты», — пишет Эгбал.

В некотором смысле такова цена использования свободного программного обеспечения. «Помните, что Open Source-программисты обычно делают эту работу ради общего блага, часто безвозмездно, и не могут контролировать то, как их софт используется, — говорит руководитель отдела безопасности GitHub Майк Хэнли (Mike Hanley). — Полагаясь на Open Source и стороннее ПО, необходимо проявлять должную осмотрительность в отношении того, какое ПО вы включаете в проект и как его используете. При этом не забывайте делиться своими улучшениями, интересными примерами использования или багфиксами».

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

3. Как это работает

Проект с открытым исходным кодом обычно включает три этапа. Давайте быстро рассмотрим каждый этап.

Этап 1. Содействие

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

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

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

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

Если вы ищете вдохновение в проекте, над которым нужно начать работать, всегда есть много интересных проектов, особенно если вы смотрите на сайтах, таких как GitHub, SourceForge и Google Code.

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

Этап 2: фиксация

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

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

Этап 3. Распространение

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

Falcongaze SecureTower

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

Функции и фичи

  • Создание скриншотов рабочих компьютеров (что позволяет частично контролировать деятельность сотрудников).
  • Хороший инструментарий просмотра и анализа архива.
  • Практически из любого отчёта можно перейти к указанному там событию. 
  • Инцидентам можно назначать категории (исследованные, неисследованные, отложенные). 

К бонусам программы можно отнести мониторинг Телеграмма и Viber’а, поскольку есть DLP-системы, которые никак не взаимодействуют с мессенджерами.

Недостатки:

  • Отсутствие возможности блокировки принтеров.
  • Отсутствие блокировок для сетевых каналов.

Удобство в использовании

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

Цена

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

Вывод

Программа практически никогда (кроме HTTP, SMTP и MAPI) не блокирует перехваты, а создает теневую копию действий. По сути, SecureTower дает возможность сотрудникам предпринимать любые действия, предупреждая, что они будут проанализированы в будущем. Пока SecureTower больше заточена на мониторинг, нежели на перехват, поэтому назвать программу яростным борцом с утечками данных мы не можем. 

Nethack

Платформы: Windows, Mac, Linux, Android

Nethack – один из наиболее долго существующих «рогаликов», часто называемый вдохновителем других игр, и не только этого жанра.

Здесь вам предстоит пробраться через 50 уровней случайно сгенерированной башни, сражаясь с самыми разнообразными мифическими тварями, чтобы добыть Амулет Йендора. Весь игровой мир создан при помощи ASCII-графики, то есть все, что вы делаете, связано с буквой, цифрой или другим символом с вашей клавиатуры.

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

Преимущества

Начну с «хорошего», а именно почему мне нравится тратить +30 минут в день, на бесплатные проекты с открытым исходным кодом.

Разносторонний опыт в программировании

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

Рутина — главный убийца интереса, как в ежедневной работе, так и в профессии в целом. Наши заботливые (и не очень) начальники изо всех сил стараются угодить, ведь недовольный сотрудник завтра убежит к соседям. Тут тебе и смузи по утрам, и электрогитара в офисе, и абонементы в спортзал, но как бы они не старались, решающим фактором (после ЗП) остается проект. Будь то интересный стартап на модных фреймворках, или же enterprise на Angular 1.X, так или иначе настанет момент, когда всё надоест. Такова природа человека — обесценивать всё чем он обладает, и зариться на соседское.

Надоело писать на своем стеке? Не спеши бегать по собесам, а просто найди интересный для тебя проект в мире open source, и вперед.

Свобода

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

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

Если же применить этот расчет на open source, то все переменные будут вычеркнуты. В этом и есть свобода, никаких ограничений, требований, боссов и дедлайнов, только интересные задачи, которые можно решить используя новый подход или стек. Появилось желание — покрываю тестами v14 Node.js, завтра надоест буду смотреть YouTube, и никто не спросит с меня за тесты, даже если я никогда их не закончу.

Развитие soft skills

Одна голова хорошо, две лучше, а все maintainer’ы отлично, но сложно. Работая над очередным фиксом или фичей, конечно же хочется в итоге залить его в . Для этого нужно не просто написать хороший код, но еще и отстоять свою идею и доказать правоту. В мире open source царит демократия, и каждый готов озвучить свою точку зрения.

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

Самореклама

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

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

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

Если опустить романтичные мечты о собственном деле и вернуться в галерные будни, то здесь тоже есть своя выгода. Приходишь на собеседование, а тебе кофе, печеньки и оффер, потому что ты core contributor в . Другому кандидату с идентичным опытом, скорее всего придется отвечать на банальные вопросы в духе «какие вы знаете типы в JavaScript?», ну вы понимаете.

Карма

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

Почему сайт openssource.info не работает сегодня?

Причины по которым возникают проблемы с доступом на сайт openssource.info могут быть как на стороне сервера, на котором располагается сайт, так и на стороне клиента, т.е. Вас. Так
же сайт может не открываться из за проблем на стороне Вашего Интернет провайдера. Однако хотим отметить, что чаще всего невозможность открыть сайт openssource.info
связана либо с попаданием сайта в черный список РКН (РосКомНадзор), либо с ошибками на стороне сайта.

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

Обход блокировки сайта openssource.info

Данные

Проще всего изучать финансовые вопросы на компаниях, которые торгуются на бирже. Такие компании выпускают финансовые отчеты раз в квартал, по котором можно понять как устроен их бизнес. К сожалению, не так много open-source компаний торгуются (пока!) на бирже. Так что в список были добавлен несколько частных компаний, который у всех на слуху:

Список Open-Source компаний

Примечания:

  • Символом «земля» помечены публичные компании, символом «замок» — частные

  • Стоимость и Выручка указаны в миллионах долларов CША

  • Выручка указана за 2019-ый год, кроме RedHat (там 2018-ый год). RedHat была куплена IBM в 2019-ом году и отчеты перестали публиковаться. Для не публичных компаний — оценка выручки (очень не точная).

  • Стоимость указана либо на последний день торгов (13-ое ноября), либо на дату анонса последнего раунда финансирования. Оценка RedHat — сумма сделки с IBM. Оценка отличается от цены на бирже! Чтобы понять реальную «ценность» бизнеса, из биржевой оценки нужно вычесть ликвидные активы. Например, компания с $1 млн на счету никак не может торговаться меньше, чем за $1 млн. При этом, если она торгуется ровно за $1 млн, это значит, что никакой деятельности она не ведет, и ценность бизнеса равна нулю.

  • Рост — рост выручки последнего доступного года, к предыдущему году.

  • Сырые данные для статьи можно .

Программа с открытым исходным кодом — что это значит?

«Открытость» или «закрытость» исходного кода определяется лицензией, по которой распространяется программа. Open source лицензии, которые иногда называют лицензиями на свободное ПО, делятся на явные (explicit) и неявные (implicit). Их отличие от других лицензий в том, что они дают право изменять и распространять лицензированный продукт, хотя в других случаях это запрещается законом об авторском праве. Если правообладатель ПО решает снять ограничение авторского права, он использует open source лицензию. Это позволяет всем остальным распоряжаться кодом как угодно, без выплат создателю.

Противоположность open source софта — проприетарное программное обеспечение. Изменять его имеют право только лично создатель или компания, которое это ПО создали. Проприетарным софтом являются, например, продукты пакета Microsoft Office или Adobe Photoshop. Клиенты, которые заплатили за ПО деньги, могут им пользоваться — но строго для целей, для которых софт предназначен.

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

Разносторонность open source проектов позволяет использовать их практически для чего угодно. Они подойдут и для ведения бухгалтерского учета, и для системы управления взаимоотношениями с клиентами, и даже для управления ресурсами и транзакциями. Специалисты из совершенно разных областей ежедневно пользуются софтом с открытым исходным кодом. Например, фотографы, которые пользуются программами для редактирования видео или целые офисы, «сидящие» на LibreOffice. Многие популярные видео- и музыкальные сервисы — тоже open source продукты.