Cum este să asculți codul cu viteza de 1000 de cuvinte pe minut

Povestea unei mici tragedii și a unor mari victorii ale unui foarte bun dezvoltator, care are nevoie de ajutor

Cum este să asculți codul cu viteza de 1000 de cuvinte pe minut

La Universitatea Federală din Orientul Îndepărtat există un centru de activități în proiecte — acolo masteranzii și absolvenții găsesc proiecte inginerie pentru care există deja clienți, finanțare și perspective. De asemenea, acolo se desfășoară prelegeri și ateliere. Specialiștii experimentați discută despre lucruri moderne și aplicate.

Unul dintre ateliere a fost dedicat utilizării sistemului de containerizare Docker pentru calculul distribuit și orchestrare. La acesta au participat masteranzi și doctoranzi în matematică aplicată, inginerie, dezvoltarea de software și alte domenii tehnice.

Profesorul era un tânăr cu ochelari negri, cu o tunsoare modernă, purtând o eșarfă, sociabil și prea încrezător — mai ales pentru un student de 21 de ani aflat în anul doi de studii. Se numește Evgheni Nekrasov, a fost acceptat la DVOU cu doar doi ani în urmă.

Marelui geniu

„Da, erau mai în vârstă și aveau mai mult statut, dar nu pot spune că erau mai experimentați. În plus, uneori predam lecții colegilor mei de grupă în locul profesorului nostru. La un moment dat, ne-am dat seama că nu mai poate să îmi ofere nimic despre Programarea Orientată pe Obiect, așa că periodic țineam lecții despre OOP, dezvoltarea modernă, GitHub, utilizarea sistemelor de control al versiunilor.”

Cum este să asculți codul cu viteza de 1000 de cuvinte pe minut

Evgheni poate programa în Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C și Assembler. „JavaScript îl cunosc cel mai bine, celelalte sunt cu un nivel sau două mai jos. Dar pot programa un controler în Rust sau C++ în doar o oră. Nu am învățat aceste limbi intenționat. Le-am studiat în funcție de sarcinile pe care le aveam. Pot să mă integrez în orice proiect, studiind documentația și manualele. Cunoaștem sintaxele limbajelor, iar care să aleg este o chestiune minoră. La fel este și cu cadrele de lucru și bibliotecile — e suficient să citesc documentația și înțeleg cum funcționează. Totul depinde de domeniul de aplicare și sarcină.”

Evgheni studiază programarea intens din 2013. Profesorul său de informatică, care era complet orb, l-a interesat în științele informatice. Drumul a început cu web-ul — HTML, JavaScript, PHP.

„Mă interesează pur și simplu. Dorm puțin — sunt constant ocupat, citesc ceva, studiez.”

În 2015, Evgheni a aplicat pentru concursul „Umnik” dedicat susținerii proiectelor tehnice ale tinerilor cercetători cu vârsta de peste 18 ani. Totuși, el nu avea 18 ani, așa că nu a reușit să câștige concursul — dar comunitatea locală de dezvoltatori l-a observat. S-a întâlnit cu Serghei Milehin, care organiza conferințe la Vladivostok în cadrul Google Developer Fest. „M-a invitat acolo, am participat, am ascultat, mi-a plăcut. Anul următor am revenit, am început să cunosc tot mai mulți oameni și să socializez.”

Andrei Sitnik din comunitatea VLDC a început să-l ajute pe Evgheni cu proiectele sale web. „Trebuia să construiesc o aplicație multi-threaded pentru procesarea websockets. M-am gândit mult timp cum să fac acest lucru pe PHP și m-am adresat lui Andrei. El mi-a spus: „Folosește node.js, pachete npm disponibile pe internet și nu te mai stresa. De fapt, a mișca open-source-ul este grozav.” Așa că mi-am îmbunătățit engleza, am început să citesc documentația și să public proiectele pe GitHub.”

În 2018, Evgheni a susținut deja prezentări la Google Dev Fest, vorbind despre realizările în domeniul interfețelor accesibile, protezelor pentru membrele superioare, dezvoltarea neurointerfețelor și sistemelor de control pentru acces fără contact. Acum, Evgheni studiază la anul II de licență în domeniul „Inginerie software”, dar a absolvit cu succes și își finalizează lucrarea de licență.

„Mi s-a spus să implementez o structură de date într-un tabel hash. Este un lucru standard, pe care îl primesc toți studenții. Mi-a ieșit un cod de 12.000 de linii și multe soluții improvizate”, spune Evgheni râzând, „Am construit un tabel hash și o structură modificată pe JavaScript, pentru a citi mai repede datele. Iar profesorul spune: „Am nevoie să scrii cum îți este mai simplu — pentru a putea să o evaluez.” A fost foarte frustrant.”

Proiectele personale ale lui Evgheni arată mult mai interesant. Primul dintre ele este dezvoltarea standardelor web pentru persoanele cu handicap fizic. El dorește să creeze o resursă care să conțină tehnologie asistivă din fabrică, astfel încât persoanele cu deficiențe de vedere să poată să le folosească cu ușurință și să nu se îndoiască că vreo informație le va fi inaccesibilă. Evgheni cunoaște bine această problemă, deoarece a rămas fără vedere.

Leziune

„Cândva, eram un adolescent obișnuit, cu toate membrele la locul lor. În 2012, am avut un accident. Am ieșit la plimbare cu un prieten, am găsit o bombă pe stradă, iar aceasta a explodat în mâinile mele. Mi-a smuls mâna dreaptă, mi-a rănit-o pe cea stângă, mi-a afectat vederea și auz. Timp de jumătate de an, am stat doar pe mese de operație.

Mâna stângă a fost asamblată din bucăți, mi-au pus plăci și pini. După cinci luni, am reușit să o folosesc.

După accident, nu vedeam absolut nimic. Dar medicii au reușit să-mi recupereze percepția luminii. De la ochiul meu nu mi-a rămas nimic în afară de membrană. Totul din interior a fost înlocuit — corpuri vitree, cristalin. Tot ce se putea.

În 2013, Jeni a început să frecventeze o școală specială pentru copii cu probleme de vedere. Profesorul de informatică, care era complet orb, l-a învățat să folosească din nou computerul. Pentru aceasta, sunt folosite programe speciale — cititoare de ecran. Acestea accesează API-urile sistemelor de operare pentru a obține acces la interfață și pentru a modifica puțin modul de navigare.

Jeni se consideră un entuziast al Linux-ului, folosește Debian. Cu ajutorul tastaturii, se deplasează prin elementele interfeței, iar sintetizatorul de voce descrie ceea ce se întâmplă.

„Acum vei auzi ceva extraordinar”, îmi spune el înainte de a deschide programul.

Acesta sună ca un cod sau o conversație extraterestră, dar de fapt este pur și simplu limba rusă sau engleză, doar că sintetizatorul vorbește cu o viteză incredibilă pentru un auz neantrenat.

„A învăța asta nu a fost greu. La început, am lucrat în Windows și foloseam programul de acces la ecran Jaws. Foloseam și mă gândeam: „Doamne, cum pot lucra la o viteză atât de lentă”. Am crescut viteza și am realizat că urechile mi se învârteau. Am revenit, și treptat am început să cresc cu 5–10 procente în fiecare săptămână. Am accelerat sintetizatorul la o sută de cuvinte, apoi și mai mult, din nou și din nou. Acum îmi vorbește la o mie de cuvinte pe minut.”

Jeni scrie într-un editor de text obișnuit — Gedit sau Nano. Copiază sursele de pe GitHub, pornește cititorul de ecran și ascultă codul. Pentru ca alți dezvoltatori să poată citi și înțelege fără probleme, el folosește pe scară largă lintere și configurații. Dar Jeni nu poate folosi medii de dezvoltare deoarece acestea nu sunt accesibile persoanelor nevăzătoare din cauza implementării lor.

„Sunt realizate în așa fel încât fereastra lor este definită de sistem, iar tot ceea ce este în interiorul feronerie nu poate fi văzut de cititorul de ecran, deoarece nu are acces. Acum am contactat direct JetBrains pentru a încerca să implementez unele patch-uri în mediile lor. Mi-au trimis sursele pentru PyCharm. IDE-ul este realizat pe Intellij Idea, astfel încât toate modificările pot fi aplicate și acolo.”

O altă barieră este neconformitatea cu standardele generale pe web. De exemplu, vedem pe pagină un titlu mare. Mulți dezvoltatori îl implementează folosind tag-ul span pentru a mări fontul la dimensiunea dorită și, în consecință, acesta arată bine. Dar, deoarece textul nu este un titlu pentru sistem, cititorul de ecran nu-l recunoaște ca un element de meniu și nu permite interacțiunea.

Zhenya folosește ușor versiunea mobilă a „Vkontakte”, dar ocolește Facebook: „VK este convenabil pentru mine, pentru că acolo există o listă de meniu de navigare separată. Are elemente și titluri, care pentru mine sunt o împărțire semantică a paginii. De exemplu, titlul de nivel 1, unde este numele meu de utilizator — știu că acesta este titlul paginii. Știu că titlul „mesaje” împarte pagina și mai jos este lista dialogurilor.”

Facebook propovăduiește accesibilitatea, dar în realitate lucrurile sunt atât de proaste încât nimic nu se poate înțelege. Îl deschid — și programul începe să se blocheze, pagina se mișcă groaznic încet, totul îmi sare. Peste tot sunt butoane, și mă întreb: „cum pot lucra cu asta?!” O să-l folosesc doar dacă îmi finalizez clientul sau conectez ceva extern.”

Cercetări

Zhenya trăiește în Vladivostok într-un cămin universitar normal. Baia este în cameră, sunt două dulapuri, două paturi, două birouri, două rafturi, un frigider. Niciun gadget special, dar, după cum spune el — nu sunt necesare. „Deficiența de vedere nu înseamnă că nu pot merge sau nu găsesc trecerea. Dar poate că m-aș bucura să-mi echipez o casă inteligentă, dacă aș avea materiale consumabile. Nu am pur și simplu bani să cumpăr componente. Pentru un student, a cheltui cinci mii pe o placă ca să o studiez — este foarte nerentabil.”

Zhenya locuiește cu prietena lui, care îl ajută mult în viața de zi cu zi: „să pregătească sandvișuri, să facă ceai, să spele rufele. Așa că am avut mai mult timp pentru odihnă și pentru a mă ocupa de activitățile mele preferate.”

De exemplu, Zhenia are o trupă muzicală în care cântă la chitară electrică. A învățat să cânte după o accidentare. În 2016, a petrecut trei luni într-un centru de reabilitare, unde a cerut ajutorul unui profesor pentru chitară. La început, juca cu un șuval, întors pe dos. Apoi a creat un mediatoare.

„Am luat o bandă pentru întărirea încheieturii, pe care o folosesc, de exemplu, artiștii marțiale, am tăiat-o în locurile de separație dintre degete și am întins-o pe antebraț. Există o pernuță de spumă care protejează încheietura de daune - de aceasta am prins mediatoare, pe care fratele meu le-a tăiat dintr-o spatulă din plastic. A ieșit un fel de limbă lungă din plastic, cu care cânt la corzi - atât prin arpeggiu, cât și prin bătut.”

Explozia a afectat timpanul, astfel că Zhenia nu aude frecvențele joase. La chitara lui nu există a șasea coradă (cea mai gravă), iar a cincea este acordată diferit. Cântă în principal solo-uri.

Dar activitățile principale rămân dezvoltarea și cercetarea.

Proteza de mână

Cum este să asculți codul cu viteza de 1000 de cuvinte pe minut

Unul dintre proiecte este dezvoltarea unei proteze pentru membrele superioare cu un sistem de control inteligent. În 2016, Zhenia a venit la o persoană care se ocupa de dezvoltarea protezei și a început să-l ajute la testare. În 2017, au participat la hackathon-ul „Neurostart”. În echipa de trei persoane, Zhenia a programat controlerele de nivel scăzut. Ceilalți doi - au construit modelele și au învățat rețelele neuronale pentru sistemul de control.

Acum, Zhenia a preluat întreaga parte software a proiectului. Folosește brățara Myo Armband pentru a citi potențialele muschilor, construiește maskele pe baza acestora și aplică modele de rețele neuronale pentru recunoașterea gesturilor - pe aceasta se bazează sistemul de control.

„În brățară sunt opt senzori. Ei transmit schimbările potențialelor la orice dispozitiv de intrare. Am descompus manual SDK-ul lor, am decompilat tot ce aveam nevoie și am scris propria librărie în Python pentru a citi datele. Evident, datele nu sunt suficiente. Chiar dacă aș pune un miliard de senzori pe piele, tot nu ar fi suficient. Pielea se mișcă deasupra mușchilor, iar datele se amestecă.”

În viitor, Jena plănuiește să implanteze sub piele și în mușchi câteva senzori. Ar fi încercat deja acest lucru – dar în Rusia astfel de intervenții sunt interzise. Dacă un chirurg implantează unui om echipament necertificat sub piele, va pierde diploma. Cu toate acestea, Jena a cusut un senzor în mână – un RFID, ca în cheile electronice, pentru a deschide interfonul sau orice lacăt la care va fi legat cheia.

Ochi artificial

Împreună cu Bogdan Șcheglov, biochimist și biofizician, Jena lucrează la prototipul unui ochi artificial. Bogdan se ocupă de modelarea 3D a globului ocular și de conectarea tuturor circuitelor în modelul tridimensional cu nervul optic, în timp ce Jena construiește un model matematic.

„Am studiat o tonă de literatură despre omologii existenți, tehnologiile care au fost pe piață și sunt acum, și am înțeles că recunoașterea imaginilor nu mai este relevantă. Dar am aflat că anterior fusese creată o matrice pentru înregistrarea fotonilor și a energiei acestora. Am decis să dezvoltăm o astfel de matrice într-o dimensiune redusă, care ar putea înregistra măcar un set minim de fotoni și pe baza acestora să construiască un impuls electric. Astfel, ne eliberăm de stratul intermediar al imaginii clare și al recunoașterii acesteia – lucrăm pur și simplu direct.”

Ca urmare, va rezulta o viziune nu tocmai în sensul clasic. Dar, așa cum spune Jena, restul nervului optic ar trebui să perceapă stimulii electrici așa cum îi percepe de la un ochi adevărat. În 2018, au discutat proiectul cu rectorul Universității Tehnice Maritime, Gleb Turișin, și cu mentorul Skolkovo, Olga Velichko. Aceștia au confirmat că această problemă poate fi soluționată cu tehnologiile care există deja în lume.

„Dar această problemă este și mai complexă decât dezvoltarea protezelor. Nu putem nici măcar să facem experiment pe broaște pentru a verifica cât de bine generează retină impulsurile, cum depind acestea de diferite lumini, ce zonă generează mai mult, ce zonă mai puțin. Este nevoie de finanțare, care să ne permită să închiriem un laborator și să angajăm oameni pentru a decomprima sarcinile și a scurta termenele. Plus costurile pentru toate materialele necesare. De obicei, toate se reduc la bani.”

Birocrație

Bogdan și Genia s-au adresat Skolkovo pentru finanțare, dar au primit un refuz - acolo ajung doar produsele finite cu potențial comercial, nu proiectele de cercetare aflate în stadiul incipient.

În ciuda neobișnuitului parcurs al lui Genia, a abilităților sale și a succeselor inspiratoare - este surprinzător cât de mult îi împiedică birocrația. Este deosebit de frustrant să auzi despre asta pe fondul știrilor. Iată un alt 'produs necesar oamenilor' (o aplicație de fotografii, optimizarea publicității sau noi tipuri de chaturi) care primește milioane de dolari în venituri și investiții. În schimb, un entuziast necunoscut nu știe ce să facă cu ideile sale.

Anul acesta, Genia a câștigat un curs gratuit de șase luni în Austria printr-un program de parteneriat între universități - dar nu poate merge acolo. Pentru confirmarea vizei, sunt necesare garanții că are bani pentru locuință și trai în Salzburg.

„Apelurile la fonduri nu au avut rezultate, deoarece finanțarea se oferă doar pentru programele de diploma complete”, spune Genia, „Apelul la Universitatea din Salzburg de asemenea - instituția nu are cămine și nu ne poate ajuta cu cazarea.

Am scris la zece fonduri, iar dintre acestea am primit răspuns de la doar trei sau patru. Și m-au informat că gradul meu științific nu se potrivește - ei au nevoie de masteranzi și mai sus. Lucrările mele științifice din cadrul licenței nu sunt recunoscute de ei. Dacă studiezi la o universitate locală, ești licențiat și te ocupi de cercetări tehnice, atunci în cadrul universității poți depune documentele. Dar pentru o persoană din străinătate, din păcate, nu există acest lucru.

M-am adresat aproximativ la același număr de fonduri rusești. La Skolkovo mi s-a spus: îmi pare rău, dar lucrăm doar cu masteranzi. La alte fonduri mi-au spus că nu au finanțare pentru șase luni, ori funcționează de asemenea doar cu programe de diplomă, ori nu finanțează persoane fizice. Iar din fondurile Prohorov și Potanin nu am primit niciun răspuns.

De la Yandex am primit un mesaj că se ocupă cu o mare activitate de caritate și că compania nu are acum finanțare, dar îmi doresc tot ce e mai bun.

Am fost chiar de acord cu o finanțare contractantă-țintă, care mi-ar fi permis să mă duc să studiez, iar la final aș aduce ceva pentru companie. Dar totul se oprește din cauza nivelului scăzut de comunicare. Înțeleg cu ce se leagă. Oamenii care lucrează la apeluri telefonice și e-mailuri — lucrează doar pe documente. Văd că a venit o solicitare, care poate fi chiar bună. Dar scriu: îmi pare rău, nu, deoarece fie a expirat termenul de solicitare, fie nu te încadrezi în statut. Și nu am posibilitatea de a ajunge la proprietarii fondului, pur și simplu nu am astfel de contacte.

Dar postările despre problema lui Jena au început să se răspândească rapid pe rețelele sociale. În primele câteva zile, am strâns aproximativ 50.000 de ruble — din cele necesare 12.000 de euro. Timpul pentru strângere este puțin, dar Jena deja primește sprijin din partea multora. Poate că totul va merge bine.

Aș fi bucuros să închei acest text lung cu întoarcerea eroului din Austria cu o nouă experiență puternică. Sau cu obținerea unei burse pentru unul dintre proiecte și o fotografie din noul laborator. Dar textul s-a oprit în camera căminului, unde sunt două dulapuri, două paturi, două birouri, două rafturi, un frigider.

Mi se pare că comunitățile profesionale mari sunt necesare pentru a se ajuta reciproc. Lui Jena Nekrasov îi sunt necesari bani, contacte utile, idei, sfaturi, orice. Să ne ridicăm karma.

Contactele lui Jena și alte cifre importantee-mail: evgeniy@nekrasov.pw
Telefon: +7-914-968-93-21
Telegram și WhatsApp: +7-999-057-85-48
github: github.com/Ravino
vk.com: vk.com/ravino_doul

Detalii pentru transferul de fonduri:
Numărul cardului: 4276 5000 3572 4382 sau prin numărul de telefon +7-914-968-93-21
Portofel Yandex prin numărul de telefon +7-914-968-93-21

Destinatar: Nekrasov Evghenii

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster