Обычно пет-проект — это что-то такое для души, на несколько вечеров в свободное от работы время. Зачастую никому, кроме его создателя, такой проект не нужен. Но бывают случаи, когда всё заходит куда дальше, неожиданно для самого разработчика. Подобные пет-проекты могут стать коммерчески успешными, а могут культовыми, но не приносящими денег. А еще могут кардинально изменить жизнь своего автора.
Elasticsearch вырос из простого приложения для рецептов, которое сделал для своей жены Шей Бэнон. Сейчас это флагманский продукт всемирно известной компании. Когда в 1991-м году Линус Торвальдс известил мир о появлении Linux, то написал: «just a hobby, won't be big and professional». Что в итоге получилось, мы все знаем.
Есть проекты-шутки, которые внезапно стали популярными в сообществе. Например, язык Rockstar («чтобы код выглядел как рок-тексты») был придуман Диланом Битти в баре без каких-либо серьёзных ожиданий, но люди подхватили идею, принялись делать пулл-реквесты, и теперь это отличный пример эзотерического языка программирования.
В этой подборке расскажем о самых разных пет-проектах — странных и полезных — и об их создателях.
В 1997 году новозеландскому разработчику Саймону Янсену друг прислал шуточное письмо, в котором нужно было последовательно переключаться между картинками, чтобы получалась простенькая анимация. Янсену идея понравилась — и он начал экспериментировать с анимированными картинками, что в итоге довело его до ASCII-версии «Звездных войн» и целого сайта с ASCII-анимацией.
Для олдов все это уже выглядит как боян, который существует еще со времен Средневековья, однако выросло уже новое поколение, ASCII не заставшее. Поэтому в культурологических целях расскажем об этом.
Процесс ASCII-анимации весьма трудоемкий — как и в реальной мультипликации, нужно отрисовать множество кадров. Сначала Янсен работал в Блокноте, но потом объемы так возросли, что это стало невозможно, и он перешел в редактор кода.
Для обозначения явления Янсен придумал специальное слово Asciimation, а ролики сохранял в JAR-файлах. Asciimation стала набирать популярность.
Программу для просмотра анимации переписывали на Perl и на Си, делали собственные анимации на JS и, конечно, обсуждали и обсуждают ее на Ютубе и Хабре.
Возникает резонный вопрос — а для чего все это? Когда-то это показалось ему просто «хорошей идеей», при том что к ярым фанатам «Звездных войн» он себя не относил. Сам он говорит, что все это довольно скучно. Нужно находиться в каком-то странном настроении, когда нет ничего другого, чем хотелось бы заняться.
Геймдизайнер Саймон Эшфорд, работавший на Universal Pictures, считает работу Янсена «вдохновляющим, но бестолковым трудом». Вообще, у Янсена есть множество других проектов, в том числе реактивный охладитель пива и разные штуки на Arduino, но именно анимация «Звездных войн» стала его самым известным пет-проектом. Классический пример «троллейбуса из буханки».
На другом конце спектра находятся проекты, созданные не просто по приколу, а по любви и ради пользы.
Музыкант и программист Дилан Тернер сделал сайт, который алгоритмически генерирует модненький lofi хип-хоп со свободными правами. Бесплатный, без рекламы и без регистрации. У видеоблогеров и стримеров есть постоянная огромная потребность в новой музыке, свободной от авторских прав, и сайт, подобный этому, может стать очень востребованным.
Lofi Generator мог бы стать «серьезным» прибыльным проектом вроде Elasticsearch, но Дилан работает за донаты, так как его цель — предоставить отличный пользовательский опыт без каких-либо тактик монетизации, нарушающих конфиденциальность. Его мотивация — любовь к музыке. Однако разработка требует очень много времени, и без донатов не обойтись.
Это частая история, когда при создании пет-проектов человеком движет стремление популяризировать свои идеи и увлечения — неважно, музыка это, или железки.
Джордж Хиллард — инженер, занимающийся embedded-системами, и фанат Linux — мечтает о дешевых компьютерах с поддержкой Linux и ищет варианты, куда его можно встроить.
Он сделал визитную карточку под управлением Linux.
Это самостоятельный компьютер на базе процессора ARM, на котором установлена кастомная прошивка Linux, созданная с помощью Buildroot. На Хабре уже делали перевод его статьи про особенности разработки, поэтому не будем останавливаться на деталях реализации.
Помимо того, что это технически интересная штука, в ней есть очевидная практическая польза для своего создателя. Вручая такую визитку, embedded-инженер демонстрирует свои скиллы и запоминается как яркий профессионал, — его контакты хочется сохранить. Резюме автора вместе с контактами содержится в самой визитке. Но если сотрудничество не сложится, такую визитку можно использовать просто как флешку.
А как еще можно вшить нужную информацию куда-либо и сразу получить к ней доступ? Для этого подойдет QR-код.
На Хабре уже было много про QR-коды и из последнего странного запомнился пост про то, как нарисовать себе ковидный код. А вот мобильный разработчик Фабио Карбоне сделал Catcode. Суть в том, что пользователь рисует морду котика, связывает ее с определенной информацией, а затем сканирует, как обычный QR-код.
Карбоне создал этот продукт во время пандемии (привет, свободное время!). Двигала им исключительно практическая сторона вопроса: используя много бумажных носителей (книги, блокноты, заметки), он искал способ связать их с цифровым контентом и понял, что до сих пор такой возможности нет. Его «кошкокод» — это попытка заполнить этот пробел. В основе Catcode лежит искусственный интеллект и компьютерное зрение. Алгоритм обнаружения объектов распознает форму кошки, а нейронная сеть извлекает уникальные характеристики каждой кошки.
То, что началось, как попытка решить собственную проблему, вылилось в приложение, которое автору даже удалось монетизировать.
Но со ставшими популярными проектами так бывает не всегда.
Ави Шиффманн — 17-ти летний школьник, также начал свой проект во время пандемии. Он первым разработал сайт, отслеживающий распространение коронавируса. В то время найти информацию о новом вирусе было сложно, существующие сайты тормозили, были завалены рекламой или откровенно недостоверной информацией. Сайт Ави был одним из первых вообще в мире, где публиковалась актуальная информация о ситуации с коронавирусом. В основе работы сайта — веб-скрапинг: используются данные со страниц различных источников по всему миру.
Ави утверждал, что на его сайте никогда не будет рекламы, и отказался от восьми миллионов долларов за размещение рекламы.
Этот проект не настолько трудозатратен, как другие в этом посте, но при этом принес Ави награду «Человек года» на церемонии вручения наград Webby Awards 2020.
А вот еще один проект, касающийся здоровья.
Хорватский продуктовый дизайнер Андрей Дукич, по его словам, более четырех лет не выходил из комнаты и работал над проектом протеза руки, который каждый может напечатать на 3D-принтере.
Сначала в 3D-программе делается подгонка макета под конкретного человека, затем сам протез печатается на любом 3D-принтере и за полдня собирается. Общая стоимость деталей — около 25 евро.
На такую работу его сподвигла личная история.
В юности Андрей занимался борьбой, повредил лодыжку и руку, после чего стал искать варианты, которые помогли бы ему вернуться в спорт.
Читая истории людей, вступивших на путь бесконечных и безуспешных операций, он наткнулся на историю британца, который после десяти лет операций и реабилитации, наконец, решился на ампутацию ноги и с тех пор стал жить без боли — даже смог вернуться в спорт. Так у Андрея появилась «глупая» идея ампутировать ногу и разработать протез.
Потом стала давать о себе знать и рука, и Андрей стал искать в интернете протезы. Он узнал, что в реальности они гораздо менее сложные, чем их представляют в СМИ и фильмах. И тогда он решил сконструировать механическую руку.
Как это в итоге работает в жизни, можно посмотреть в ролике про распаковку протеза.
Своим проектом Дукич противостоит бюрократии и демократизирует доступ к качественному протезированию. Он хочет создать не только полезный и инновационный протез, способный изменить жизнь людей, но и сделать его стоимость доступной.
Это похвальная, амбициозная цель, и по-хорошему безумная.
«Только безумцы думают, что могут изменить мир, и только они делают это» — любимая цитата Ави Шиффмана принадлежит Стиву Джобсу. В ней речь идет про «безумие» положительное и социально одобряемое. Но бывает и так, что мотивацией создания какого-либо проекта становится безумие реальное — психическая болезнь.
Один из таких проектов — TempleOS, библейская операционная система, которую ее автору приказал разработать Бог (и даже указал в ТЗ параметры — 16-цветная графика, разрешение 640×480 и одноголосый звук).
История ее создателя — Терри Дэвиса — достаточно трагическая. Талантливого программиста забрала шизофрения, в 48 лет Дэвис погиб под колесами поезда.
При жизни Дэвис был активным пользователем Reddit, а сейчас у TempleOS есть свой собственный сабредит. У системы, которую без преувеличения можно назвать далеко зашедшим пет-проектом, есть своя экосистема со своими внутренними пет-проектами. Люди пишут под нее программы, делают игры, рисуют портреты Дэвиса и запускают систему на самых разных устройствах. Никакой практической пользы это не несет, и для фанатов это, вероятно, такой способ ухода от реальности.
И интерес не угасает до сих пор: например, новая игра Holy Shoot для этой ОС вышла совсем недавно — 22 февраля.
У многих людей пет-проектом становится игра, но мало у кого подобное хобби выливается в нетривиальный проект с такими высокими трудозатратами, как у разработчика Александра Коротаева. Он с детства залипал на «Героев меча и магии», а в сознательном возрасте решил сделать браузерную версию этой игры.
Cпрашивается, а для чего впрягаться в очевидно трудозатратный и долгий проект?
Во-первых, это красиво.
Во-вторых, это прокачивает навыки разработчика и позволяет выйти за рамки рабочих обязанностей — и это хорошая мотивация начинать пет-проект любой направленности.
А еще Александр хотел перестать играть в игры вообще. А когда человек начинает разрабатывать игры, то и играть в них начинает по-другому и намного меньше.
С рассказом об этом проекте Александр выступил на конференции HolyJS. А мы в блоге даже делали текстовую расшифровку этого доклада — там можно посмотреть технические подробности реализации. А залипнуть в игру можно здесь.
Проект Коротаева занял два года, а программист Тарн Адамс (aka Toady One) вместе со своим братом Заком работает над игрой Dwarf Fortress… уже 20 лет. Dwarf Fortress считают сложной и недружелюбной к новичкам, но если вы разберетесь в ней, она захватит вас. Эта игра — одна из самых безумных и впечатляющих, с изощренной и сложной процедурной генерацией мира. В 2012 году она стала одной из первых видеоигр, приобретенных Музеем современного искусства в Нью-Йорке.
Тарн вместе со своим братом Заком делают игры со школы — программированием их увлек отец. Над DF Тарн работает с 2002 года. Первые четыре года это был побочный проект на неполный рабочий день, но проект увлекал все больше и больше, и страсть к играм сделала свое дело — Тарн бросил учебу в докторантуре, чтобы посвятить все свои силы Dwarf Fortress. Пожертвования игроков стали его единственным источником дохода. Сперва игроки донатили в PayPal, затем в Patreon. Сейчас братья работают над версией с пиксельной графикой и обновленным пользовательским интерфейсом, которая будет доступна для покупки на Steam, релиз запланирован на этот год.
Тарн сам пишет весь код (на С и С++), а брат помогает ему с дизайном и сочиняет истории по мотивам игры. За годы работы проект разросся до 711 000 строк кода, но по заверениям Тарна, управлять им в одиночку намного проще. Нет никаких организационных или бюрократических препятствий, которые нужно преодолевать, когда требуется внести изменения. Единственный минус — невозможно держать все в голове, поэтому легко можно что-то забыть.
DF из пет-проекта превратилась в полноценный, но это не мешает Тарну запускать уже новые пет-проекты. По его словам, в специальной папке, которая мигрировала между компьютерами последние десять лет, сейчас находится около 90 проектов. Над некоторыми из них работа шла пару дней, над другими — несколько лет. В основном это игры в других жанрах, но есть и несколько проектов-помощников DF, например, прототип генератора мифов.
Несмотря на немейнстримовый вид DF, ее сложность и запутанность — это по-настоящему культовый проект, который вырос из страстного желания одного человека делать игры.
А вот пример реализации творческого потенциала в уже существующих играх и целой командой. На этот раз — Minecraft.
В августе 2011 года разработчик с ником THEJESTR начал строительство города Greenfield, прототипом которого стал Лос-Анджелес.
Первым построенным сооружением была автозаправочная станция рядом с районом Ритейл Парк (она существует и по сей день). В течение следующих месяцев THEJESTR и другие строители создали центр города. 10 октября 2011 года сервер был взломан тремя игроками, но THEJESTR успел сделать резервную копию сервера.
Первый мир был загружен 30 октября того же года.
К 2021 году проект собрал 400 разработчиков, а сам город разросся до 20 миллионов квадратных блоков. 99% всех зданий имеют полноценный интерьер.
Координировать команду из 400 человек, задача не простая. В команде есть администраторы, которые занимаются инфраструктурой — они создают множество карт и планов, чтобы убедиться, что все работает в реальном времени. Затем рядом с дорогами создаются участки, и строители приступают к постройкам.
Зачем все это нужно? Для удовольствия. Людям, участвующим в этом проекте, нравится строить и нравится видеть, как то, что они запланировали, вырастает в целый город. Кроме того, в команде есть люди, которые изучают инженерное дело, и участие в строительстве виртуального города помогает им в реальной работе.
А напоследок расскажем о проекте, который в буквальном смысле зашел далеко — аж в Зимбабве. Он косвенно айтишный и связан с Google Maps.
Как-то раз фотограф Таванда Канхема хотел показать другу дом своего детства в Хараре, столице Зимбабве, но столкнулся с тем, что его дома на Google Maps Street View не оказалось. Таванду это расстроило. На картах Google вообще нет многих труднодоступных регионов, так как приоритет компании — оцифровывать крупные мегаполисы. Таванда обратился в Google, чтобы исправить ситуацию.
В итоге все это вылилось в путешествие длинной более 3000 км, и теперь в Зимбабве есть 800 км Street View.
Канхема использовал камеры, взятые у Google и Insta360, и на протяжении части пути его сопровождала съемочная группа Google, которая записывала его эпическое путешествие по песчаным дюнам и городским улицам. Канхема носил камеру на спине во время пеших, велосипедных прогулок и езды на квадроциклах, а также передвигался на автомобиле, лодке и вертолетах.
Теперь благодаря неравнодушному Таванде Канхеме каждый может совершить виртуальную экскурсию по водопаду Виктория, Национальному монументу Великого Зимбабве и другим достопримечательностям.
Подводя итоги
Можно ли сделать из всего этого какой-то единый вывод? Кажется, нет: когда люди делают что-то не на заказ, а по велению сердца, фантазия разводит их в совершенно разные стороны, где нет шаблонов и единых схем.
Но одно можно сказать наверняка: хотя многие из подобных проектов лишены практической ценности, с ними мир становится интереснее, чем если бы все руководствовались только прагматизмом и кругом царил бы сплошной энтерпрайз.
Многим из вас наверняка тоже известны странные и интересные пет-проекты, поэтому смело делитесь ими в комментариях.