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

В Далекоизточния федерален университет има център за проектна дейност - там магистри и бакалаври намират инженерни проекти, които вече имат клиенти, средства и перспективи. Там също се провеждат лекции и интензивни курсове. Опитни специалисти разказват за съвременни и приложни неща.
Един от интензивите беше посветен на прилагането на контейнеризационната система Docker за разпределени изчисления и оркестрация. На него присъстваха магистри и аспиранти по приложна математика, инженерство, подготовка на софтуер и други технически направления.
Лектор беше младеж с тъмни очила, модна прическа, шал, общителен и прекалено самоуверен - особено за 21-годишен студент от втори курс. Казва се Евгений Некрасов, той е приет в ДВФУ само преди две години.
Гений
«Да, те бяха по-възрастни и по-значими, но не мога да кажа, че бяха по-опитни. Освен това понякога водех лекции на моите състуденти вместо нашия преподавател. В даден момент осъзнахме, че той не може да ми даде повече по обектно ориентирано програмиране, затова периодично четох лекции вместо него по ООП, съвременна разработка, GitHub, прилагане на системи за контрол на версиите.»

Евгений може да пише на Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C и Assembler. «JavaScript го знам най-добре, останалите - на ниво, две по-ниско. Но мога да програмирам контролер на Rust или C++ за час. Не съм учил тези езици целенасочено. Изучавах ги под задачите, които ми поставяха. Мога да се включа в всеки проект, като изучавам документацията и ръководствата. Знам синтаксисите на езици, а кой точно да използвам, няма особено значение. Същото важи и за фреймворците и библиотеките - достатъчно е да прочета документацията и разбирам как работи. Всичко зависи от предметната област и задачата.»
Евгений учи програмиране интензивно от 2013 година. Учителят по информатика, който беше напълно слеп, го запали интереса към компютърните науки. Пътят му започна от уеба - HTML, JavaScript, PHP.
«Просто ми е интересно. Спя малко - постоянно съм зает, чета и изучавам нещо.»
През 2015 година Евгений подаде заявление за конкурса „Умник” за подкрепа на технически проекти на млади учени и ученици над осемнадесет години. Но Евгений все още нямаше осемнадесет, затова не успя да спечели конкурса — затова местната общност на разработчиците забеляза него. Той се запозна със Сергей Милехин, който по това време организираше конференции във Владивосток в рамките на Google Developer Fest. „Той ме покани там, отидох, послушах, хареса ми. На следващата година отново дойдох, все повече се запознавах с хора, общувах.”
Андрей Ситник от общността VLDC започна да помага на Евгений с неговите уеб проекти. „Необходимо ми беше да изградя многопоточно приложение за обработка на уеб-сокети. Дълго време мислех как да го направя на PHP и се обърнах към Андрей. Той ми каза: „вземи node.js, npm пакети, които са в интернет, и не си чупи главата. И изобщо, да се движиш в опенсорс — е страхотно”. Затова усилено подобрих английския си, започнах да чета документации и да публикувам проекти в GitHub.”
През 2018 година Евгений вече се изявяваше на Google Dev Fest с свои лекции, говореше за разработки в областта на достъпните интерфейси, протези на горни крайници, разработка на невроинтерфейси и системи за безконтактно управление. В момента Евгений учи на втори курс бакалавриат по посока „Програмна инженерия”, но вече успешно е завършил и довършва финалната работа.
„Казаха ми да реализирам структура от данни в хеш-таблица. Това е стандартна задача, която дават на всички в университета. Получи ми се 12 хиляди реда код и куп решения на крайни проблеми,” — разказва Евгений с усмивка, — „Построих хеш-таблица и нейната изменена структура на JavaScript, за да чета данните по-бързо. А преподавателят казва: „трябва да го напишеш, както ми е по-лесно — за да мога да го оценя”. Беше много досадно.”
Много по-интересни изглеждат личните проекти на Евгений. Първият от тях — е разработването на уеб стандарти за хора с физически ограничения. Иска да създаде ресурс, съдържащ асистивна технология от първо ниво, така че хората с нарушения на зрението да могат лесно да я ползват и да не се притесняват, че някаква информация ще им е недостъпна. Евгений добре познава този проблем, защото сам е загубил зрението си.
Травма
Преди бях обикновен тийнейджър с всички крайници на място. През 2012 година се взривих. Излязох с приятел на разходка, намерих балон на улицата и той експлодира в ръцете ми. Изкъсаха ми дясната китка, повредиха ми лявата, нараниха ми зрението и намалиха слуха. Половин година просто лежах на операционните маси.
Лявата ми китка я събраха на части, сложиха ми пластини и шини. След пет месеца успях да работя с нея.
След травмата не виждах нищо. Но на лекарите успяха да възстановят чувството за светлина. От окото ми не остана нищо освен обвивката. Вътре всичко беше заменено - стъкловидни тела, лещи. Всичко, което може.
През 2013 година Жека започна да учи в корекционна школа за деца с нарушено зрение. Този учител по информатика, който беше напълно сляп, го научи да използва компютър отново. За целта се използват специални програми - скрийн рийдъри. Те се свързват с API на операционните системи, за да получат достъп до интерфейса и леко да променят начина на управление.
Жека се нарича запален линуксист, използва Debian. С клавиатурата се движи по елементите на интерфейса, а синтезаторът на реч носи информацията.
„Сега ще чуеш нещо просто космическо,“ ми казва той преди да пусне програмата.
Това звучи като шифър или извънземно бърборене, но всъщност е обикновен руски или английски език, просто синтезаторът говори с невероятна скорост за неподготвени уши.
„Научаването на това не беше трудно. Поначало работех в Windows и използвах програмата за достъп до екрана Jaws. Ползвах я и мислех: „господи, как може да се работи с такава бавна скорост”. Увеличих и разбрах, че ушите ми се завиват на тръбичка. Върнах назад и постепенно започнах да увеличавам всяка седмица с 5–10 процента. Разгонвам синтезатора до сто думи, после още повече, още и още. Сега той ми говори хиляда думи в минута.“
Жека пише в обикновен текстов редактор - Gedit или Nano. Копира изходния код от GitHub, стартира скрийн рийдъра и слуша кода. За да може да бъде четен и разбран от други разработчици, той навсякъде използва линтери и конфигурации. Но Жека не може да използва среди за разработка, защото те не са достъпни за незрящи поради своята реализация.
«Те са проектирани така, че прозорецът им се определя от системата, а всичко вътре в прозореца – скрийнридерът не вижда, защото не може да получава достъп. В момента се свързах директно с JetBrains, за да опитам да внеса някои поправки в техните среди. Те ми изпратиха изходния код на PyCharm. IDE е реализирана на Intellij Idea, така че всички промени могат да се приложат и там, и тук».
Друга пречка е несъответствието с общите стандарти в уеба. Например, виждаме на страницата голям заглавие. Много разработчици го реализират с етикет 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
Telegram и WhatsApp: +7-999-057-85-48
github:
vk.com: vk.com/ravino_doul
Данни за превод на средства:
Номер на картата: 4276 5000 3572 4382 или по номер на телефон +7-914-968-93-21
Яндекс портфейл по номер на телефон +7-914-968-93-21
Получател: Некрасов Евгений
Източник: habr.com

