Хабрахабр

Каково это — слушать код со скоростью 1000 слов в минуту

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

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

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

Его зовут Евгений Некрасов, он поступил в ДВФУ всего два года назад.
Преподавателем был парень в темных очках, с модной прической, в шарфе, общительный и слишком уверенный — особенно для 21-летнего студента второго курса.

Вундеркинд

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

«JavaScript я знаю лучше, остальные — на уровень, на два ниже. Евгений может писать на Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C и Assembler. Я не учил эти языки целенаправленно. Но при этом запрограммировать контроллер на Rust или C++ смогу за час. Я могу влиться в любой проект, изучив документацию и мануалы. Я изучал их под задачи, которые мне ставили. Так же с фреймворками и библиотеками — достаточно почитать документацию, и я понимаю, как это работает. Я знаю синтаксисы языков, и какой именно использовать, особого значения не имеет. Все определяет предметная область и задача».

Школьный учитель информатики, который был полностью слепым, заинтересовал его компьютерными науками. Евгений форсированно изучает программирование с 2013 года. Путь начался с веба — HTML, JavaScript, PHP.

Я мало сплю — постоянно чем-то занят, что-то читаю, изучаю». «Мне просто интересно.

Но ему восемнадцати не было, поэтому выиграть в конкурсе не удалось — зато Евгения заметило местное сообщество разработчиков. В 2015 году Евгений подал заявку на конкурс „Умник” по поддержке технических проектов молодых ученых от восемнадцати лет. «Он пригласил меня туда, я пришел, послушал, мне понравилось. Он познакомился с Сергеем Милехиным, который в тот момент организовывал конференции во Владивостоке в рамках Google Developer Fest. На следующий год пришел снова, все больше знакомился с людьми, общался».

«Мне было необходимо построить многопоточное приложение для обработки веб-сокета. Андрей Ситник из сообщества VLDC стал помогать Евгению с его веб-проектами. Он мне сказал, „возьми node.js, npm-пакеты, которые есть в интернете, и не ломай голову. Я очень долго думал, как сделать это на PHP, и обратился к Андрею. Поэтому я подтянул английский, стал читать документации и выкладывать проекты на Гитхаб». И вообще двигать опенсорс — круто”.

Сейчас Евгений учится на втором курсе бакалавриата по направлению „Программная инженерия”, но уже успешно ее закончил и дописывает итоговую работу. В 2018 году Евгений уже выступал на Google Dev Fest со своими докладами, говорил о наработках в области доступных интерфейсов, протезов верхних конечностей, разработке нейроинтерфейсов и систем управления бесконтактного доступа.

Это стандартная штука, которую дают всем в вузе. «Мне сказали реализовать структуру данных в хеш-таблице. А преподаватель говорит: „мне надо, чтобы ты написал, как проще мне — чтобы я могла это оценить”. У меня получилось 12 тысяч строк кода и куча костылей», — говорит Евгений со смехом, — «Я построил хеш-таблицу и ее видоизмененную структуру на JavaScript, чтобы быстрее считывать данные. Было очень досадно».

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

Травма

«Раньше я был обычным подростком, со всеми конечностями на месте. В 2012 году я подорвался. Вышел с товарищем прогуляться, подобрал на улице баллон, и он рванул у меня в руках. Мне оторвало правую кисть, покалечило левую, повредило зрение, снизило слух. Полгода я просто валялся на операционных столах.

Через пять месяцев я смог ей работать. Левую кисть собрали по частям, поставили пластины и спицы.

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

Тот учитель информатики, который был полностью слепым, научил его пользоваться компьютером заново. В 2013 Женя пошел учиться в коррекционную школу для детей с нарушениями зрения. Они обращаются к API операционных систем, чтобы получить доступ к интерфейсу и немного изменить способ управления. Для этого используются специальные программы — скринридеры.

С помощью клавиатуры он перемещается по элементам интерфейса, а синтезатор речи озвучивает происходящее. Женя называет себя заядлым линуксоидом, он использует Debian.

«Сейчас ты услышишь просто космос», — говорит он мне перед тем, как включить программу.

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

Поначалу я работал в Windows и использовал программу экранного доступа Jaws. «Учиться этому было не трудно. Увеличил и понял, что уши сворачиваются в трубочку. Пользовался и думал, „господи, как можно на такой медленной скорости работать”. Разогнал синтезатор до ста слов, потом еще больше, еще и еще. Вернул назад, и постепенно стал наращивать каждую неделю на 5–10 процентов. Сейчас он у меня говорит тысячу слов в минуту».

Копирует с гитхаба исходники, запускает скринридер и слушает код. Женя пишет в обычном текстовом редакторе — Gedit или Nano. Но Женя не может использовать среды разработки, потому что они недоступны незрячим из-за своей реализации. Чтобы его могли без проблем читать и понимать другие разработчики, он повсеместно использует линтеры и конфигурации.

Я сейчас связался с JetBrains напрямую, чтобы попытаться внести некоторые патчи в их среды. «Они сделаны таким образом, что их окно определяется системой, а все, что внутри окна — скринридер не видит, потому что не может получить доступ. IDE реализована на Intellij Idea, поэтому все изменения можно будет применить и там, и там». Они скинули мне исходники PyCharm.

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

В нем элементы и заголовки, которые являются для меня семантическим разделением страницы. Женя легко пользуется мобильной версией «Вконтакте», но обходит стороной Facebook: «VK для меня удобна, потому что там есть отдельный список меню навигации. Знаю, что заголовок „сообщения” разделяет страницу, и ниже идет список диалогов. Например, заголовок первого уровня, где указан мой псевдоним — я знаю, что это заглавие страницы.

Я открываю его — и программа начинает виснуть, страница жутко тормозит, у меня все скачет. Фейсбук пропогандирует доступность, но на деле все так плохо, что ничего невозможно понять. Везде сплошные кнопоки, и я такой: „как вообще с этим работать?!” Буду им пользоваться только если допилю свой клиент или подключу сторонний».

Исследования

Женя живет во Владивостоке в обычной университетской общаге. Санузел в комнате, два шкафа, две кровати, два стола, две полки, холодильник. Никаких специальных гаджетов, но по его словам — они и не нужны. «Нарушение зрения не значит, что я не смогу ходить или не найду проход. Но я бы может и с радостью оборудовал себе умный дом, будь у меня расходные материалы. У меня банально нет денег покупать компоненты. Для студента потратить пять тысяч на плату, чтобы ее потыкать — это очень невыгодно».

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

Научился он тоже после травмы. Например, у Жени есть музыкальная группа, где он играет на электрогитаре. Поначалу играл швом рубашки, вывернутой наизнанку. В 2016 он три месяца провел в центре реабилитации, где попросил помочь с гитарой преподавателя. Затем соорудил медиатор.

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

На его гитаре нет шестой (самой низкой) струны, а пятая настроена иначе. Взрыв вышиб барабанные перепонки, поэтому Женя не слышит низких частот. Играет он в основном соло-партии.

Но главными занятиями остаются разработка и исследования.

Протез руки

В 2016 году Женя пришел к человеку, который занимался разработкой протеза и стал помогать ему с тестированием. Один из проектов — разработка протеза верхних конечностей с умной системой управления. В команде из трех человек Женя программировал низкоуровневые контролеры. В 2017 году они приняли участие в хакатоне „Нейростарт”. Еще двое — конструировали сами модели и учили нейронные сети для системы управления.

Он использует браслет Myo Armband для считывания потенциалов мышц, строит по ним маски и сверху применяет модели нейронных сетей для распознавания жестов — на этом строится система управления. Сейчас Женя взял всю программную часть проекта на себя.

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

Он бы попробовал это уже сейчас — но в России запрещены подобные операции. В будущем Женя планирует закрепить под кожей и в мышцах несколько датчиков. Тем не менее, один датчик Женя зашил в руку — rfid-метку, как в электронных ключах, чтобы открывать домофон или любой замок, к которому ключ будет привязан. Если хирург вживит человеку под кожу несертифицированное оборудование, то лишится диплома.

Искусственный глаз

Вместе с Богданом Щегловым, биохимиком и биофизиком, Женя работает над прототипом искусственного глаза. Богдан занимается 3D-моделированием глазного яблока и соединением всех микросхем в трехмерной модели со зрительным нервом, Женя строит математическую модель.

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

Но как говорит Женя, остаток зрительного нерва должен воспринимать подачу электрических импульсов так же, как от настоящего глаза. В результате получится зрение не совсем в классическом понимании. Те подтвердили, что эту задачу можно решить с помощью технологий, которые уже есть в мире. В 2018 году они обсуждали проект с ректором Морского технического университета Глебом Турищиным и ментором Сколково Ольгой Величко.

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

Бюрократия

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

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

Для подтверждения визы нужны гарантии, что у него есть деньги на жилье и жизнь в Зальцбурге. В этом году Женя выиграл бесплатное полугодовое обучение в Австрии по партнерской программе между вузами — но не может туда поехать.

«Обращение в фонды не дало результатов, потому что финансирование осуществляется только на полные дипломные программы», — говорит Женя, — «Обращение в сам университет Зальцбурга тоже — вуз не имеет своих общежитий и не может помочь нам с проживанием.

Причем ответили, что моя научная степень им не подходит — им нужны магистры и выше. Я написал в десять фондов, и из них мне ответили только три или четыре. Если ты учишься в местном вузе, ты бакалавр и занимаешься техническими исследованиями, то в рамках вуза ты можешь подать документы. Мои научные наработки в бакалавриате у них не котируются. А для человека из-за рубежа у них такого, к сожалению, нет.

В Сколково мне сказали: прости, но мы работаем только с магистрами. Я обратился приблизительно в столько же русских фондов. А из фондов Прохорова и Потанина мне даже не ответили. В других фондах мне говорили, что у них нет финансирования на полгода, либо они так же работают только с дипломными программами, либо они не финансируют физических лиц.

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

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

За первые несколько дней собрали около 50 000 рублей — из необходимых 12 000 евро. Но посты о Жениной проблеме начали быстро расходится по соцсетям. Возможно, все получится.
Времени на сборы немного, но Жене уже многие пишут о поддержке.

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

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

Контакты Жени и прочие важные цифры

e-mail: evgeniy@nekrasov.pw
Телефон: +7-914-968-93-21
Telegramm and WhatsApp: +7-999-057-85-48
github: github.com/Ravino
vk.com: vk.com/ravino_doul

Реквизиты для перевода средств:
Номер карты: 4276 5000 3572 4382 либо по номеру телефона +7-914-968-93-21
Яндекс кошелёк по номеру телефона +7-914-968-93-21

Адресат: Некрасов Евгений

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть