Jaké to je – poslouchat kód rychlostí 1000 slov za minutu

Příběh malé tragédie a velkých vítězství velmi dobrého vývojáře, který potřebuje pomoc

Jaké to je – poslouchat kód rychlostí 1000 slov za minutu

Na Dálněvýchodní federální univerzitě existuje centrum projektové činnosti — tam magistři a bakaláři nacházejí inženýrské projekty, které už mají zákazníky, finance a perspektivy. Dále se zde konají přednášky a intenzivní kurzy. Zkušení odborníci hovoří o moderních a aplikovaných věcech.

Jedno z intenzivních školení bylo věnováno využití systému kontejnerizace Docker pro distribuované výpočty a orchestrace. Zúčastnili se ho magistři a doktorandi aplikované matematiky, inženýrství, vývoje software a dalších technických oborů.

Lektorem byl chlapec ve tmavých brýlích, s módním účesem, v šále, komunikativní a příliš sebevědomý — zvlášť pro 21letého studenta druhého ročníku. Jmenuje se Evgenij Nekrasov a na DVFU nastoupil teprve před dvěma lety.

Zázračné dítě

„Ano, byli starší a prestižnější, ale nemohu říct, že by měli více zkušeností. Kromě toho jsem občas vedl přednášky svým spolužákům místo našeho lektora. V určitém okamžiku jsme si uvědomili, že mi více nemůže nabídnout z Objektem orientovaného programování, a proto jsem občas vedl přednášky o OOP, moderním vývoji, GitHubu, použití verzovacích systémů.”

Jaké to je – poslouchat kód rychlostí 1000 slov za minutu

Evgenij umí programovat v Scale, Clojure, Javě, JavaScriptu, Pythonu, Haskellu, TypeScriptu, PHP, Rustu, C++, C a Assembleru. „JavaScript znám nejlépe, ostatní umím o úroveň, o dvě níže. Ale přitom bych uměl naprogramovat řadič v Rustu nebo C++ za hodinu. Tyto jazyky jsem se neučil cíleně. Studoval jsem je k úkolům, které mi byly dány. Mohu se zapojit do jakéhokoliv projektu, když si přečtu dokumentaci a manuály. Známe syntaxe jazyků, a který konkrétně použít, není zásadní. To samé platí pro frameworky a knihovny — stačí si přečíst dokumentaci a rozumím, jak to funguje. Vše určuje předmět a úkol.”

Evgenij intenzivně studuje programování od roku 2013. Školní učitel informatiky, který byl úplně slepý, ho zaujal počítačovými vědami. Cesta začala u webu — HTML, JavaScript, PHP.

„Prostě mě to zajímá. Málo spím — neustále jsem něčím zaměstnaný, něco čtu, studuji.”

V roce 2015 se Evgenij přihlásil do soutěže „Umník” na podporu technických projektů mladých vědců od osmnácti let. Ale nebylo mu osmnáct, takže soutěž vyhrát neuspěl — zato si ho všimlo místní developerské společenství. Seznámil se se Sergejem Milječinem, který v té době organizoval konference ve Vladivostoku v rámci Google Developer Fest. „Pozval mě tam, přišel jsem, poslechl jsem si, líbilo se mi to. Příští rok jsem přišel znovu, stále více jsem se seznamoval s lidmi, komunikoval.“

Andrej Sitnik ze společenství VLDC začal Evgenijovi pomáhat s jeho webovými projekty. „Potřeboval jsem postavit vícerozchodovou aplikaci pro zpracování webového socketu. Dlouho jsem přemýšlel, jak to udělat v PHP, a obrátil se na Andreje. Ten mi řekl: ‚Vezmi si node.js, npm balíčky, které jsou na internetu, a nelámej si hlavu. A vůbec, posouvat open-source je skvělé.‘ Takže jsem zlepšil angličtinu, začal číst dokumentace a publikovat projekty na GitHubu.“

V roce 2018 už Evgenij vystupoval na Google Dev Fest se svými přednáškami, mluvil o vývoji dostupných rozhraní, protéz horních končetin, vývoji neurointerfýs a systémů bezkontaktního přístupu. Nyní Evgenij studuje ve druhém ročníku bakalářského studia v oboru „Softwarové inženýrství”, ale už ho úspěšně dokončil a dopsal závěrečnou práci.

„Bylo mi řečeno, abych implementoval datovou strukturu v hash tabulce. To je standardní věc, kterou dávají všem na vysoké škole. Měl jsem 12 tisíc řádků kódu a spoustu berliček,“ říká Evgenij s úsměvem, „Postavil jsem hash tabulku a její modifikovanou strukturu v JavaScriptu, aby byla rychlejší při čtení dat. A učitelka říká: ‚Potřebuji, abys napsal, jak je to pro mě jednodušší — abych to mohla ohodnotit.‘ Bylo to velmi frustrující.“

Daleko zajímavější vypadají Evgenijovy osobní projekty. První z nich je vývoj webových standardů pro lidi s fyzickými omezeními. Chce vytvořit zdroj, který obsahuje asistivní technologie v základu, aby lidé s poruchami zraku mohli snadno používat a nemuseli se obávat, že nějaké informace pro ně budou nedostupné. Evgenij tuto problematiku dobře zná, protože sám přišel o zrak.

Úraz

„Kdysi jsem byl obyčejný teenager se všemi částmi těla na místě. V roce 2012 jsem měl výbuch. Šel jsem na procházku s kamarádem, našel jsem na ulici sprej a ten mi explodoval v rukou. Přerušilo mi pravou ruku, zranilo levou, poškodilo mi zrak a zeslabilo sluch. Půl roku jsem jen ležel na operačních stolech.

Levá ruka byla složena z částí, byly mi nasazeny desky a dráty. Po pěti měsících jsem s ní mohl začít pracovat.

Po úraze jsem vůbec nic neviděl. Ale lékařům se podařilo obnovit pocit světla. Z mého oka mi nezbylo nic kromě skořápky. Uvnitř bylo vše vyměněno – sklovité tělo, čočky. Všechno, co šlo.

V roce 2013 šel Ženja studovat do speciální školy pro děti se zrakovým postižením. Ten učitel informatiky, který byl úplně slepý, ho naučil znovu používat počítač. Používají se k tomu speciální programy – čtečky obrazovky. Ty komunikují s API operačních systémů, aby získaly přístup k rozhraní a mírně změnily způsob ovládání.

Ženja se nazývá vášnivým uživatelem Linuxu, používá Debian. Pomocí klávesnice se pohybuje po prvcích rozhraní a syntetizátor řeči oznámí, co se děje.

„Teď uslyšíš prostě kosmos,“ říká mi předtím, než spustí program.

Zní to jako šifrovaná zpráva nebo mimozemská hatmatilka, ale ve skutečnosti je to obyčejná ruština nebo angličtina, jen syntetizátor mluví neuvěřitelnou rychlostí pro netrénované ucho.

„Učit se to nebylo těžké. Zpočátku jsem pracoval na Windows a používal program pro přístup na obrazovku Jaws. Používal jsem ho a myslel si: „Bože, jak může někdo pracovat takovou pomalou rychlostí.“ Zrychlil jsem to a uvědomil si, že mi uši svinují do kroužků. Vrátil jsem to zpět a postupně jsem začal zvyšovat každý týden o 5–10 procent. Rozjel jsem syntetizátor na sto slov, pak ještě víc, ještě a ještě. Teď mluví tisíc slov za minutu.

Ženja píše v obyčejném textovém editoru – Gedit nebo Nano. Kopíruje zdrojové kódy z GitHubu, spouští čtečku obrazovky a poslouchá kód. Aby ho mohli ostatní vývojáři bez problémů číst a chápat, všude používá linters a konfigurace. Ale Ženja nemůže používat vývojové prostředí, protože nejsou přístupné nevidomým kvůli své implementaci.

„Jsou navrženy tak, že jejich okno je definováno systémem, a všechno, co je uvnitř okna, čtečkou obrazovky není vidět, protože k tomu nemůže přistupovat. Nyní jsem se přímo kontaktoval s JetBrains, abych se pokusil provést některé úpravy v jejich prostředích. Poslali mi zdrojové kódy PyCharm. IDE je implementováno na Intellij Idea, takže všechny změny budou možné aplikovat tam i tam.“

Další překážkou je nedodržování obecných standardů na webu. Například vidíme na stránce velký titulek. Mnozí vývojáři ho realizují pomocí tagu span, aby zvýšili velikost písma na požadovanou úroveň, a nakonec to vypadá normálně. Ale protože text není systémem považován za titulek, čtečka obrazovky ho nepozná jako menu a nedává možnost interakce.

Ženík snadno používá mobilní verzi „VKontakte“, ale vyhýbá se Facebooku: „VK je pro mě pohodlný, protože tam je samostatný seznam navigačního menu. Obsahuje prvky a nadpisy, které jsou pro mě sémantickým rozdělením stránky. Například nadpis prvního úrovně, kde je uvedeno moje přezdívka — vím, že to je titulek stránky. Vím, že nadpis „zprávy“ odděluje stránku, a níže je seznam dialogů.

Facebook propaguje přístupnost, ale ve skutečnosti je to tak špatné, že není možné nic pochopit. Otevírám ho — a program začne zamrzat, stránka hrozně zpomaluje, všechno se mi změní. Všude samé tlačítka, a já jsem si říkal: „Jak s tím vůbec pracovat?!” Budu ho používat jen pokud si vylepším svůj klient nebo připojím třetí stranu.“

Výzkumy

Ženík žije ve Vladivostoku v běžném univerzitním koleji. Koupelna je v pokoji, dva skříně, dvě postele, dva stoly, dvě police, lednice. Žádné speciální zařízení, ale podle jeho slov — to opravdu není potřeba. „Porucha zraku neznamená, že nebudu moci chodit nebo nenajdu cestu. Ale možná bych si rád zařídil chytrý dům, kdybych měl materiály. Nemám prostě peníze na nákup komponentů. Pro studenta je utratit pět tisíc za desku, abych si na ni hrál — to je opravdu nevýhodné.“

Ženík žije s dívkou, ta mu v mnohém pomáhá v domácnosti: „namazat sendviče, nalít čaj, vyprat. Proto mám víc času na odpočinek a věnování se oblíbeným činnostem“.

Například má Ženě hudební skupinu, kde hraje na elektrickou kytaru. Naučil se to také po úrazu. V roce 2016 strávil tři měsíce v rehabilitačním centru, kde požádal učitele o pomoc s kytarou. Zpočátku hrál švem košile vyvráceným naruby. Poté si vytvořil mediátor.

„Vzali jsem si bandáž pro posílení zápěstí, kterou používají například karateci, rozřízl jsem ji na místech dělících prstů a natáhl ji na předloktí. Je tam pěnová podložka, která chrání zápěstí před zraněními — k ní jsem přišil mediátor, který mi bratr vyřezal z plastové špachtle. Vznikl takový dlouhý plastový jazyk, se kterým hraji na struny — prstokladem i úderem.“

Výbuch mu poškodil bubínky, takže Ženja neslyší nízké frekvence. Na jeho kytaře není šestá (nejnižší) struna a pátá je laděná jinak. Hraje převážně sólové partie.

Ale hlavními aktivitami zůstávají vývoj a výzkum.

Protéza ruky

Jaké to je – poslouchat kód rychlostí 1000 slov za minutu

Jedním z projektů je vývoj protézy horních končetin s inteligentním řídicím systémem. V roce 2016 Ženja přišel k člověku, který se zabýval vývojem protézy, a začal mu pomáhat s testováním. V roce 2017 se zúčastnili hackathonu „Neurostart“. V týmu ze tří lidí Ženja programoval nízkoúrovňové kontrolery. Dva další konstruovali samotné modely a trénovali neuronové sítě pro řídicí systém.

Teď si vzal na starost veškerou softwarovou část projektu. Používá náramek Myo Armband k měření svalových potenciálů, vytváří podle nich masky a na ně aplikuje modely neuronových sítí pro rozpoznávání gest — na tom je postaven systém řízení.

„V náramku je osm senzorů. Přenášejí změny potenciálů na jakékoli vstupní zařízení. Vlastnoručně jsem rozebral jejich SDK, dekompiloval všechno, co bylo potřeba, a napsal jsem svou knihovnu v Pythonu pro čtení dat. Samozřejmě že stále chybí data. I když na kůži pověsím miliardu senzorů, pořád to nebude stačit. Pokožka se pohybuje nad svaly a data se míchají.”

V budoucnu plánuje Ženja implantovat pod kůži a do svalů několik senzorů. Zkusil by to už nyní, ale v Rusku jsou takové zákroky zakázané. Pokud by chirurg voperoval člověku pod kůži neschválené zařízení, přišel by o diplom. I přesto si Ženja zašil do ruky jeden senzor — RFID značku, jako v elektronických klíčích, aby mohl otevírat domofon nebo jakýkoli zámek, ke kterému bude klíč připojen.

Umělé oko

Spolu s Bohdanem Ščeglovem, biochemikem a biofyzikem, Ženja pracuje na prototypu umělého oka. Bohdan se zabývá 3D modelováním oční bulvy a propojením všech mikročipů ve trojrozměrném modelu se zrakovým nervem, Ženja vytváří matematický model.

„Prostudovali jsme hromadu literatury o existujících analogiích a technologiích, které byly na trhu a jsou nyní, a pochopili, že rozpoznávat obrázky — to není aktuální. Zato jsme zjistili, že byla dříve vytvořena matice pro registraci fotonů a jejich energie. Rozhodli jsme se vyvinout podobnou matici v zmenšené velikosti, která by byla schopna registrovat alespoň minimální množství fotonů a na jejich základě vytvářet elektrický impuls. Tímto způsobem se zbavujeme mezivrstvy jasného obrazu a jeho rozpoznávání — pracujeme přímo s impulsy.

Výsledkem bude zrak, který není zcela v klasickém pojetí. Jak říká Ženja, zbytek zrakového nervu by měl vnímat přenos elektrických impulsů stejně jako od skutečného oka. V roce 2018 diskutovali projekt s rektorem Námořní technické univerzity Glebem Turiščinem a mentorkou Skolkova Olyou Veličko. Ti potvrdili, že tuto úlohu lze vyřešit pomocí technologií, které již existují na světě.

„Ale tato úloha je ještě složitější než vývoj protéz. Nemůžeme ani provést experiment na žabách, abychom zjistili, jak kvalitně sítnice generuje impulsy, jak jsou závislé na různém osvětlení, který úsek generuje víc, který méně. Potřebujeme financování, které by nám umožnilo pronajmout laboratoř a najmout lidi na rozdělení úloh a zkrácení termínů. K tomu náklady na všechny potřebné materiály. Obvykle je vše o penězích“.

Byrokracie

Bogdan a Ženya se obrátili na Skolkovo s žádostí o financování, ale dostali odmítnutí — tam se přijímají pouze hotové produkty s komerčním potenciálem, nikoli výzkumné projekty v rané fázi.

Přes veškerou neobyčejnost v příběhu Ženyi, jeho schopnosti a inspirující úspěchy - překvapuje zvláštní byrokratické neštěstí. O to je zvlášť frustrující to poslouchat na pozadí zpráv. Tady je další 'produkt potřebný lidem' (aplikace na fotografie, optimalizace reklamy nebo nové druhy chatů) získává své miliony dolarů na příjmech a investicích. A zatím nikomu neznámý nadšenec neví, co si počít se svými nápady.

Letos Ženya vyhrál bezplatné půlroční školení v Rakousku v rámci partnerského programu mezi vysokými školami - ale nemůže tam jet. K potvrzení víza jsou potřeba záruky, že má peníze na bydlení a život v Salcburku.

"Obrátit se na fondy nepřineslo výsledky, protože financování se poskytuje pouze na kompletní diplomové programy," říká Ženya, "Obrátil jsem se také na univerzitu v Salcburku — škola nemá své koleje a nemůže nám pomoci s bydlením."

Napsal jsem do deseti fondů a jen tři nebo čtyři mi odpověděli. A odpověděli, že moje akademická kvalifikace jim nevyhovuje — potřebují magistry a výše. Mé výzkumné práce během bakalářského studia pro ně nejsou uznávány. Pokud studuješ na místní vysoké škole, jsi bakalář a zabýváš se technickým výzkumem, můžeš v rámci školy podat přihlášku. Pro člověka ze zahraničí bohužel nic takového nemají.

Obrátil jsem se zhruba na stejné množství ruských fondů. Ve Skolkovo mi řekli: promiň, ale pracujeme pouze s magistry. V jiných fondech mi říkali, že nemají financování na půl roku, nebo že rovněž pracují pouze s diplomovými programy, nebo že nefinancují fyzické osoby. A z fondů Prochorova a Potanina mi dokonce neodpověděli.

Od Yandexu mi přišel dopis, že se věnují velké charitativní činnosti a firma nyní nemá financování, ale přejí mi to nejlepší.

Byl jsem dokonce ochoten na cílové financování, které by mi umožnilo odjet na studia, a na oplátku bych přinesl něco pro společnost. Ale vše se zastavuje na nízké úrovni komunikace. Chápu, s čím je to spojeno. Lidé, kteří pracují na telefonních hovorech a emailech, pracují jen na základě dokumentů. Vidí, že přišla žádost, může být dokonce skvělá. Ale napíší: promiň, ne, protože buď uplynula lhůta pro žádost, nebo nevyhovuješ svým statutem. A nemám možnost dostat se výše k majitelům fondu, prostě nemám takové kontakty.

Ale příspěvky o Ženině problému začaly rychle kolovat po sociálních sítích. Během prvních několika dnů jsme shromáždili asi 50 000 rublů – z potřebných 12 000 eur. Času na sbírání není mnoho, ale Ženě už mnozí píší s podporou. Možná se to podaří.

Rád bych zakončil tento dlouhý text o návratu hrdiny z Rakouska s novou silnou zkušeností. Nebo o získání grantu na jeden z projektů a fotografií z nové laboratoře. Ale text skončil v pokojíku na kolejích, kde jsou dvě skříně, dvě postele, dva stoly, dvě police a lednička.

Myslím si, že velké profesní komunity jsou potřebné, aby si navzájem pomáhaly. Ženě Nekrasovovi potřebují peníze, užitečné kontakty, nápady, rady, cokoliv. Pojďme si zlepšit karmu.

Kontakty Ženy a další důležitá číslae-mail: evgeniy@nekrasov.pw
Telefon: +7-914-968-93-21
Telegram a WhatsApp: +7-999-057-85-48
github: github.com/Ravino
vk.com: vk.com/ravino_doul

Údaje pro převod prostředků:
Číslo karty: 4276 5000 3572 4382 nebo podle telefonního čísla +7-914-968-93-21
Jandex peněženka podle telefonního čísla +7-914-968-93-21

Příjemce: Nekrasov Evgeniy

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster