Проект Radio Chain — как развернуть сеть в тайге в условиях полного отсутствия интернета

Идея проекта Radio Chain появилась на одном из хакатонов, в котором я участвовал в прошлом году. Там была задача со звездочкой: сделать так, чтобы устройства связывались друг с другом в условиях полного отсутствия мобильной связи.

В целом задача очень актуальна. Сейчас многие крупные компании, например, Google или Facebook, известные предприниматели вроде Илона Маска и даже государственные структуры говорят о глобальном интернете. Наверняка, вы тоже читали новости о космическом интернете и прочих идеях. Но, во-первых, все они стоят очень дорого, а во-вторых, они не возникнут за день и даже за год.

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

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

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

Как начать программировать

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

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

Какие проекты уже удалось реализовать

Я начал заниматься разными проектами еще с седьмого-восьмого класса. Мой первый проект, кстати, до сих пор есть в двух магазинах. Это мобильное приложение под Android и iOS, которые позволяет на основе разных факторов рассчитать наиболее благоприятные дни для зачатия ребенка. В основу этого проекта легли исследования, которые проводились специалистами на протяжении 30 лет. В результате удалось сформировать закономерности, которые я представил в виде алгоритма на сервере, после чего, говоря простым языком, соединил мобильные клиенты с сервером. Этот проект я реализовал вместе со своими родителями. Кроме того, год назад я заинтересовался архитектурой и недавно на заказ реализовал план архитектурного объекта, а также сделал видео.

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

Как начать участвовать в хакатонах и победить в первом же из них

В последние годы я стал завсегдатаем хакатонов. Первый мой хакатон был в Москве, где необходимо было придумать решение для поискового отряда «Лиза Алерт» (Организаторы хакатона — Олимпиада НТИ, Кружковое движение НТИ и МОО «Игры будущего» — прим.ред.). Там я занял первое место, причем выступал в одиночку против команд по шесть-семь человек. Конечно, это было очень знаково для меня: все-таки первый хакатон и первая победа.

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

Олимпиада НТИ. Источник: nti-contest.ru
Олимпиада НТИ. Источник: nti-contest.ru

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

Также мне удалось стать призером и другого хакатона, который устраивал «Райффайзен банк». Там я выступал вместе с командой студентов из Университета ИТМО, и мы заняли второе место. На хакатоне необходимо было разработать систему, которая позволяла бы мотивировать пользователя, который приходит на консультацию в банк, решить свою проблему самостоятельно, не прибегая к помощи консультанта.

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

Как учиться и делать проекты максимально эффективно

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

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

Конгресс молодых ученых, школьные секции
Конгресс молодых ученых, школьные секции

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

Перспективы

После окончания школы я хочу поступить в Университет ИТМО, мне интересна специальность, связанная с нейротехнологиями. Планирую участвовать в конкурсе ITMO.STARS, для которого собираю портфолио со всеми моими работами.

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

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

Даже по текущему опыту могу сказать, то командная работа способна дать гораздо больший результат, чем действия в одиночку. Когда мы с ребятами, готовясь к ЕГЭ, решаем задачи вместе, делаем практически все на 100 баллов. Было бы интересно, если бы на ЕГЭ можно было бы зарегистрировать свою команду. Мне кажется, такой опыт мог бы показать умение в команде. А это очень важно. Потому что знания сегодня можно получить всегда, а коммуникационные навыки, которые приобретаются в детстве, во взрослой жизни получить уже гораздо сложнее. На мой взгляд, если человек может работать в команде, он точно сможет выживет в современном мире.