Як гэта слухаць код з хуткасцю 1000 слоў у хвіліну

Гісторыя маленькай трагедыі і вялікіх перамог вельмі добрага распрацоўшчыка, якому патрэбна дапамога

Як гэта слухаць код з хуткасцю 1000 слоў у хвіліну

У Далёкаўсходняй Федэральным Універсітэце ёсць цэнтр праектнай дзейнасці - там магістры і бакалаўры знаходзяць для сябе інжынерныя праекты, у якіх ужо ёсць заказчыкі, грошы і перспектывы. Яшчэ тамака праводзяцца лекцыі і інтэнсіўы. Доследныя спецыялісты расказваюць пра сучасныя і прыкладныя рэчы.

Адзін з інтэнсіўаў быў прысвечаны прымяненню сістэмы кантэйнерызацыі Docker для размеркаваных вылічэнняў і аркестрацыі. На яго прыйшлі магістры і аспіранты прыкладной матэматыкі, інжынерыі, падрыхтоўкі ПЗ і іншых тэхнічных напрамкаў.

Выкладчыкам быў хлопец у цёмных акулярах, з моднай прычоскай, у шаліку, таварыскі і занадта ўпэўнены — асабліва для 21-гадовага студэнта другога курса. Яго клічуць Яўген Някрасаў, ён паступіў у ДВФУ ўсяго два гады таму.

вундэркінд

«Так, яны былі старэйшыя і больш статусныя, але не магу сказаць, што больш вопытныя. Апроч гэтага я часам вёў лекцыі сваім аднагрупнікам за нашага выкладчыка. У нейкі момант мы зразумелі, што больш нічога па Аб'ектна арыентаваным праграмаванні ён мне даць не можа, таму перыядычна я чытаў за яго лекцыі пра ААП, сучасную распрацоўку, GitHub, прымяненне сістэм кантролю версій ».

Як гэта слухаць код з хуткасцю 1000 слоў у хвіліну

Яўген можа пісаць на 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-пакеты, якія ёсць у інтэрнэце, і не ламай галаву. І ўвогуле рухаць апенсорс — крута”. Таму я падцягнуў ангельскую, стаў чытаць дакументацыі і выкладваць праекты на Гітхаб».

У 2018 годзе Яўген ужо выступаў на Google Dev Fest са сваімі дакладамі, казаў аб напрацоўках у галіне даступных інтэрфейсаў, пратэзаў верхніх канечнасцяў, распрацоўцы нейраінтэрфейсаў і сістэм кіравання бескантактавага доступу. Цяпер Яўген вучыцца на другім курсе бакалаўрыяту па кірунку "Праграмная інжынерыя", але ўжо паспяхова яе скончыў і дапісвае выніковую працу.

«Мне сказалі рэалізаваць структуру дадзеных у хэш-табліцы. Гэта стандартная штука, якую даюць усім у ВНУ. У мяне атрымалася 12 тысяч радкоў кода і куча мыліц», – кажа Яўген са смехам, – «Я пабудаваў хэш-табліцу і яе перайначаную структуру на JavaScript, каб хутчэй счытваць дадзеныя. А выкладчык кажа: „мне трэба, каб ты напісаў, як прасцей мне — каб я магла гэта ацаніць”. Было вельмі прыкра».

Значна цікавей выглядаюць асабістыя праекты Яўгена. Першы з іх - гэта распрацоўка вэб-стандартаў для людзей з фізічнымі абмежаваннямі. Ён хоча стварыць рэсурс, які змяшчае асіўную тэхналогію са скрынкі, каб людзі з парушэннямі зроку маглі лёгка імі карыстацца і не сумнявацца, што нейкая інфармацыя апынецца ім недаступная. Яўген добра ведае гэтую праблему, бо страціў зрок сам.

траўма

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

Левы пэндзаль сабралі па частках, паставілі пласціны і спіцы. Праз пяць месяцаў я здолеў ёй працаваць.

Пасля траўмы я ўвогуле нічога не бачыў. Але ўрачам удалося аднавіць святлоадчуванне. Ад майго вока ў мяне не засталося нічога акрамя абалонкі. Унутры ўсё замянілі - шклопадобныя целы, крышталікі. Усё, што можна».

У 2013 Жэня пайшоў вучыцца ў карэкцыйную школу для дзяцей з парушэннямі зроку. Той настаўнік інфарматыкі, які быў цалкам сляпым, навучыў яго карыстацца камп'ютарам нанава. Для гэтага выкарыстоўваюцца спецыяльныя праграмы - скрынрыдары. Яны звяртаюцца да API аперацыйных сістэм, каб атрымаць доступ да інтэрфейсу і крыху змяніць спосаб кіравання.

Жэня называе сябе заўзятым лінуксоідам, ён выкарыстоўвае Debian. З дапамогай клавіятуры ён перамяшчаецца па элементах інтэрфейсу, а сінтэзатар прамовы агучвае тое, што адбываецца.

"Цяпер ты пачуеш проста космас", – кажа ён мне перад тым, як уключыць праграму.

Гэта гучыць як шыфр ці іншапланетная балбатня, але на справе – звычайная руская ці ангельская мова, проста сінтэзатар гаворыць з неверагоднай для нетрэніраванага слыху хуткасцю.

“Вучыцца гэтаму было не цяжка. Спачатку я працаваў у Windows і выкарыстоўваў праграму экраннага доступу Jaws. Карыстаўся і думаў, „пане, як можна на такой павольнай хуткасці працаваць”. Павялічыў і зразумеў, што вушы згортваюцца ў трубачку. Вярнуў назад, і паступова стаў нарошчваць кожны тыдзень на 5-10 працэнтаў. Разагнаў сінтэзатар да ста слоў, потым яшчэ больш, яшчэ і яшчэ. Цяпер ён у мяне кажа тысячу слоў у хвіліну».

Жэня піша ў звычайным тэкставым рэдактары - Gedit або Nano. Капіюе з гітхаба зыходнікі, запускае скрынрыдар і слухае код. Каб яго маглі без праблем чытаць і разумець іншыя распрацоўшчыкі, ён паўсюдна выкарыстоўвае лінтэры і канфігурацыі. Але Жэня не можа выкарыстоўваць асяроддзі распрацоўкі, таму што яны недаступныя невідушчым з-за сваёй рэалізацыі.

«Яны зроблены такім чынам, што іх акно вызначаецца сістэмай, а ўсё, што ўнутры акна - скрынрыдэр не бачыць, таму што не можа атрымаць доступ. Я зараз звязаўся з JetBrains напрамую, каб паспрабаваць унесці некаторыя патчы ў іх асяроддзя. Яны скінулі мне зыходнікі PyCharm. IDE рэалізаваная на Intellij Idea, таму ўсе змены можна будзе ўжыць і там, і там».

Іншая перашкода – незахаванне агульных стандартаў у інтэрнэце. Напрыклад, мы бачым на старонцы вялікі загаловак. Многія распрацоўшчыкі рэалізуюць яго з дапамогай тэга span, каб падцягнуць шрыфт да патрэбнага памеру, і ў выніку гэта выглядае нармальна. Але паколькі тэкст не з'яўляецца загалоўкам для сістэмы, то і скрынрыдэр яго не распазнае як элемент меню, і не дае ўзаемадзейнічаць.

Жэня лёгка карыстаецца мабільнай версіяй «Вконтакте», але абыходзіць бокам Facebook: «VK для мяне зручная, бо там ёсць асобны спіс меню навігацыі. У ім элементы і загалоўкі, якія з'яўляюцца для мяне семантычным падзелам старонкі. Напрыклад, загаловак першага ўзроўню, дзе паказаны мой псеўданім – я ведаю, што гэта назва старонкі. Ведаю, што загаловак „паведамлення” падзяляе старонку, і ніжэй ідзе спіс дыялогаў.

Фэйсбук прапагандуе даступнасць, але на справе ўсё так дрэнна, што нічога немагчыма зразумець. Я адкрываю яго - і праграма пачынае віснуць, старонка жудасна тармозіць, у мяне ўсё скача. Усюды суцэльныя кнопакі, і я такі: „як увогуле з гэтым працаваць?!” Буду ім карыстацца толькі калі дапілую свой кліент або падключу іншы».

даследаванні

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

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

Напрыклад, у Жэні ёсць музычны гурт, дзе ён грае на электрагітары. Навучыўся ён таксама пасля траўмы. У 2016 ён тры месяцы правёў у цэнтры рэабілітацыі, дзе папрасіў дапамагчы з гітарай выкладчыка. Спачатку гуляў швом кашулі, вывернутай навыварат. Затым збудаваў медыятар.

«Я ўзяў бандаж для ўмацавання пэндзля, які выкарыстоўваюць, напрыклад, каратысты, распароў у месцах падзельнікаў пальцаў і нацягнуў на перадплечча. Там ёсць паралонавай падушачка, якая абараняе пэндзаль ад пашкоджанняў - да яе я прыштопаў медыятар, які мне брат выразаў з пластыкавага шпатэля. Атрымалася такая доўгая пластыкавая мова, якой я гуляю па струнах — пераборам і боем».

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

Але галоўнымі заняткамі застаюцца распрацоўка і даследаванні.

Пратэз рукі

Як гэта слухаць код з хуткасцю 1000 слоў у хвіліну

Адзін з праектаў - распрацоўка пратэза верхніх канечнасцяў з разумнай сістэмай кіравання. У 2016 годзе Жэня прыйшоў да чалавека, які займаўся распрацоўкай пратэза і стаў дапамагаць яму з тэсціраваннем. У 2017 годзе яны прынялі ўдзел у хакатоне "Нейрастарт". У камандзе з трох чалавек Жэня праграмаваў нізкаўзроўневыя кантралёры. Яшчэ двое – канструявалі самі мадэлі і вучылі нейронавыя сеткі для сістэмы кіравання.

Цяпер Жэня ўзяў усю праграмную частку праекта на сябе. Ён выкарыстоўвае бранзалет Myo Armband для счытвання патэнцыялаў цягліц, будуе па іх маскі і зверху прымяняе мадэлі нейронавых сетак для распазнання жэстаў – на гэтым будуецца сістэма кіравання.

«У бранзалеце восем датчыкаў. Яны перадаюць змены патэнцыялаў на любую прыладу ўводу. Я ўласнаручна трыбушыў іх SDK, дэкампіляваў усё, што трэба, і пісаў сваю лібу на Python для счытвання дадзеных. Звестак, вядома, не хапае. Нават калі я павешу мільярд датчыкаў на скуру, усё роўна не хопіць. Скурнае покрыва рухаецца над цягліцамі, і дадзеныя змешваюцца».

У будучыні Жэня плануе замацаваць пад скурай і ў мышцах некалькі датчыкаў. Ён бы паспрабаваў гэта ўжо зараз - але ў Расіі забароненыя падобныя аперацыі. Калі хірург ужывіць чалавеку пад скуру несертыфікаванае абсталяванне, то пазбавіцца дыплома. Тым не менш, адзін датчык Жэня зашыў у руку - rfid-пазнаку, як у электронных ключах, каб адкрываць дамафон або любы замак, да якога ключ будзе прывязаны.

Штучнае вока

Разам з Багданам Шчагловым, біяхімікам і біяфізікам, Жэня працуе над прататыпам штучнага вока. Багдан займаецца 3D-мадэляваннем вочнага яблыка і злучэннем усіх мікрасхем у трохмернай мадэлі з глядзельным нервам, Жэня будуе матэматычную мадэль.

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

У выніку атрымаецца зрок не зусім у класічным разуменні. Але як кажа Жэня, астатак глядзельнага нерва павінен успрымаць падачу электрычных імпульсаў гэтак жа, як ад сапраўднага вока. У 2018 годзе яны абмяркоўвалі праект з рэктарам Марскога тэхнічнага ўніверсітэта Глебам Турышчыным і ментарам Сколкава Вольгай Вялічкай. Тыя пацвердзілі, што гэтую задачу можна рашыць з дапамогай тэхналогій, якія ўжо ёсць у свеце.

«Але гэтая задача яшчэ больш складаная, чым распрацоўка пратэзаў. Мы не можам нават правесці эксперымент на жабах, каб праверыць, наколькі якасна сятчатка генеруе імпульсы, як яны залежаць ад рознага святла, які ўчастак генеруе больш, які менш. Трэба фінансаванне, якое дазволіць нам арандаваць лабараторыю і наняць людзей, каб дэкампазіраваць задачы і скараціць тэрміны. Плюс выдаткі на ўсе неабходныя матэрыялы. Як правіла, усё ўпіраецца ў грошы».

Бюракратыя

Багдан і Жэня звярнуліся ў Сколкава за фінансаваннем але атрымалі адмову - туды трапляюць толькі гатовыя прадукты з камерцыйным патэнцыялам, а не даследчыя праекты на стадыі зараджэння.

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

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

«Зварот у фонды не даў вынікаў, таму што фінансаванне ажыццяўляецца толькі на поўныя дыпломныя праграмы», - кажа Жэня, - «Зварот у сам універсітэт Зальцбурга таксама - ВНУ не мае сваіх інтэрнатаў і не можа дапамагчы нам з пражываннем.

Я напісаў у дзесяць фондаў, і зь іх мне адказалі толькі тры ці чатыры. Прычым адказалі, што мая навуковая ступень ім не падыходзіць - ім патрэбны магістры і вышэй. Мае навуковыя напрацоўкі ў бакалаўрыяце ў іх не каціруюцца. Калі ты вучышся ў мясцовай ВНУ, ты бакалаўр і займаешся тэхнічнымі даследаваннямі, то ў рамках ВНУ ты можаш падаць дакументы. А для чалавека з-за мяжы ў іх такога, нажаль, няма.

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

Ад Яндэкса мне прыйшоў ліст, што яны займаюцца вялікай дабрачыннасцю і ў кампаніі зараз няма фінансавання, але яны жадаюць мне ўсяго самага лепшага.

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

Але пасты аб Жэнінай праблеме пачалі хутка разыходзіцца па сацсетках. За першыя некалькі дзён сабралі каля 50 000 рублёў - з неабходных 12 000 еўра. Часу на зборы няшмат, але Жонцы ўжо многія пішуць аб падтрымцы. Магчыма, усё атрымаецца.

Я быў бы рады скончыць гэты доўгі тэкст на вяртанні героя з Аўстрыі з новым наймагутным досведам. Ці на атрыманні гранта на адзін з праектаў, і фатаграфіяй з новай лабараторыі. Але тэкст спыніўся ў пакоі інтэрната, дзе дзве шафы, два ложкі, два стала, дзве паліцы, халадзільнік.

Мне здаецца, вялікія прафесійныя супольнасці патрэбны, каб дапамагаць адзін аднаму. Жонцы Някрасаву патрэбны грошы, карысныя кантакты, ідэі, парады, усё што заўгодна. Давайце паднімем сабе карму.

Кантакты Жэні і іншыя важныя лічбыЭлектронная пошта: [электронная пошта абаронена]
Телефон: +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

Адрасат: Някрасаў Яўген

Крыніца: habr.com

Дадаць каментар