Интервью с Бруклин Зеленка, блокчейн-инженером, мастером функционального программирования и математики, создателем сообщества и основателем Fission и Witchcraft.

Каким был ваш путь к нынешней работе?

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

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

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

Повлияло ли ваше музыкальное и дизайнерское прошлое на ваше программирование?

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

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

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

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

Почему открытый исходный код?

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

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

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

О чем ваш стартап?

Это называется Деление. Сейчас появляется множество распределенных и одноранговых технологий, таких как блокчейн, Ethereum, IPFS и WebAssembly. У них есть преимущества перед тем, как мы делаем что-то сегодня, но их трудно использовать, потому что они еще совсем новые. Мы хотим, чтобы они были доступны для всех, а не только для тех, кто уже освоил этот маленький кусочек технологий.

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

Мы все еще на начальной стадии, но работа уже началась. В ближайшие пару недель мы выпустим надстройку Heroku для IPFS.

Что такое колдовство?

Функциональное программирование существует с самого начала, по крайней мере, с конца 1940-х годов. Это более математический подход с большим количеством типов абстракции. Мы можем взять определенные шаблоны и закодировать их в библиотеке. Вместо того, чтобы запоминать или воссоздавать их, вы можете просто использовать то, что есть в библиотеке, и это работает.

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

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

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

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

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

Что было создано с помощью Witchcraft?

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

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

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

Вы много занимаетесь аутрич-работой - почему?

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

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

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

Одна из встреч, Code & Coffee, очень обширна и носит общий характер. Он непреднамеренно сработал как питатель. Люди приходят через это и попадают на встречу по функциональному программированию или семинар по колдовству и эликсиру, а затем начинают применять эти технологии в своей работе. На это всегда интересно смотреть.

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

Что побудило вас начать сбор средств для Witchcraft?

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

Я посмотрел, насколько хорошо у них дела, и подумал, зачем мне вообще заниматься сбором средств для моего малоизвестного небольшого побочного проекта. Но в конце концов я просто решил пойти на это и создал Коллектив. На настройку ушло 5 минут, и через пару дней у меня появилось несколько покровителей. К моему удивлению, нас поддерживали люди, с которыми я никогда раньше не общался. Люди начали писать об этом в Твиттере. Теперь, когда я хожу на конференции, меня спрашивают об «этой вещи Open Collective в вашем репо».

Я задавался вопросом, зачем мне вообще заниматься сбором средств для моего малоизвестного побочного проекта. Но в конце концов я просто решил пойти на это. На настройку ушло 5 минут, и через пару дней у меня появилось несколько покровителей.

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

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

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

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

Какая у вас стратегия сбора средств?

Даже относительно небольшая сумма, которую мы собрали с момента создания нашего Коллектива пару месяцев назад, поражает: 1100 долларов - это 1100 долларов, которых у нас не было в прошлом году. Наша стратегия - увеличивать бюджет с течением времени за счет прямого охвата. GitHub недавно включил параметр« financial.yml », так что мы можем указывать людям на Open Collective из нашего репо, что довольно здорово.

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

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

Что вы узнали о ведущих сообществах?

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

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

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

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

Есть какие-нибудь мысли об устойчивости открытого исходного кода?

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

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

Люди думают: «Я всего лишь один человек в небольшом стартапе. Это должны финансировать Microsoft, Apple и Google, а не я ». И да, должны! Крупные технологические компании ведут свой бизнес в основном с открытым исходным кодом. Amazon по сути захватывает и перепродает проекты с открытым исходным кодом. Было бы неплохо увидеть больше поддержки.

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

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

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

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

Что вы посоветуете другим по сбору средств?

Уже действуют два Коллектива из сообщества Elixir: Witchcraft и Nerves Project. Эти двое находятся на противоположных концах спектра: Nerves - удивительно изящный инструмент, значительно упрощающий программирование оборудования, а Witchcraft - это жесткая математика. Было бы здорово, если бы остальная часть спектра Эликсира была заполнена Коллективами.

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

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

Создай коллектив. Это просто. Это займет 5 минут. Напишите об этом в Твиттере. Привлекайте как можно больше людей и убедитесь, что ваши покровители получают признание. Просто пойти на это.

Очень важно помогать сопровождающим в развитии своих проектов за пределами их собственного времени.

Отправляйтесь на одну из встреч в Бруклине в Ванкувере и поддержите Witchcraft!