Com és escoltar codi a 1000 paraules per minut

La història d'una petita tragèdia i grans victòries d'un molt bon desenvolupador que necessita ajuda

Com és escoltar codi a 1000 paraules per minut

A la Universitat Federal de l'Extrem Orient hi ha un centre d'activitats de projectes: allà els màsters i els batxillerats troben projectes d'enginyeria que ja tenen clients, diners i perspectives. També s'hi fan conferències i cursos intensius. Especialistes amb experiència parlen de coses modernes i aplicades.

Un dels cursos intensius es va dedicar a l'ús del sistema de contenidorització Docker per a la informàtica distribuïda i l'orquestració. Hi van assistir estudiants de màster i postgrau de matemàtiques aplicades, enginyeria, preparació de programari i altres àrees tècniques.

El professor era un noi amb ulleres fosques, un tall de cabell de moda, una bufanda, sociable i massa confiat, sobretot per a un estudiant de segon de 21 anys. Es diu Evgeny Nekrasov, va entrar a la FEFU fa només dos anys.

Wunderkind

“Sí, eren més grans i tenien més estatus, però no puc dir que tinguessin més experiència. A més, de vegades donava conferències als meus companys per al nostre professor. En algun moment, ens vam adonar que no em podia donar res més sobre programació orientada a objectes, així que de tant en tant li donava conferències sobre POO, desenvolupament modern, GitHub i l'ús de sistemes de control de versions.

Com és escoltar codi a 1000 paraules per minut

Evgeniy pot escriure en Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C i Assembler. "Conec millor JavaScript, la resta són un nivell o dos inferiors. Però al mateix temps, puc programar un controlador en Rust o C++ en una hora. No vaig estudiar aquests idiomes a propòsit. Els vaig estudiar per a les tasques que em van assignar. Em puc incorporar a qualsevol projecte estudiant la documentació i els manuals. Conec les sintaxis dels idiomes, i quina utilitzar no importa realment. Passa el mateix amb els marcs i les biblioteques: només llegiu la documentació i entenc com funciona. Tot ve determinat per l'àrea temàtica i la tasca".

Evgeniy ha estat estudiant de manera intensiva programació des del 2013. Un professor d'informàtica de secundària que era completament cec el va fer interessar per la informàtica. El camí va començar amb la web: HTML, JavaScript, PHP.

"Només sóc curiós. No dormo gaire: estic constantment ocupat amb alguna cosa, llegint alguna cosa, estudiant alguna cosa".

El 2015, Evgeniy es va presentar al concurs "Umnik" per donar suport a projectes tècnics de joves científics de més de divuit anys. Però no tenia divuit anys, de manera que no va guanyar la competició, però Evgeniy va ser observat per la comunitat de desenvolupadors locals. Va conèixer Sergei Milekhin, que en aquell moment estava organitzant conferències a Vladivostok com a part del Google Developer Fest. “Em va convidar allà, vaig venir, vaig escoltar, em va agradar. L'any següent vaig tornar a venir, vaig conèixer més i més gent, em vaig comunicar”.

Andrey Sitnik de la comunitat VLDC va començar a ajudar Evgeniy amb els seus projectes web. "Necessitava crear una aplicació de socket web multiprocés. Vaig pensar durant molt de temps sobre com fer-ho en PHP i em vaig dirigir a l'Andrey. Em va dir: "agafa els paquets node.js, npm que hi ha a Internet i no et trenquis el cap. I, en general, moure el codi obert és genial". Així que vaig millorar el meu anglès, vaig començar a llegir documentació i a publicar projectes a GitHub".

El 2018, Evgeniy ja va fer presentacions al Google Dev Fest, parlant dels desenvolupaments en el camp de les interfícies accessibles, les pròtesis d'extremitats superiors, el desenvolupament d'interfícies neuronals i els sistemes de control d'accés sense contacte. Ara Evgeniy cursa el seu segon any de grau en Enginyeria del Programari, però ja l'ha completat amb èxit i està acabant el seu treball final.

"Em van dir que implementés l'estructura de dades en una taula hash. Això és una cosa estàndard que es dóna a tothom a la universitat. Vaig acabar amb 12 mil línies de codi i un munt de crosses", diu Evgeniy entre riure, "Vaig construir una taula hash i la seva estructura modificada en JavaScript per llegir les dades més ràpidament. I el professor diu: "Necessito que escriviu allò que em resulta més fàcil per poder avaluar-ho". Va ser molt molest".

Els projectes personals d'Evgeniy semblen molt més interessants. El primer d'ells és el desenvolupament d'estàndards web per a persones amb discapacitat física. Vol crear un recurs que proporcioni tecnologia d'assistència de manera que les persones amb discapacitat visual puguin utilitzar-lo fàcilment sense la preocupació de perdre'n informació. Evgeniy coneix bé aquest problema, perquè ell mateix va perdre la vista.

Lesió

“Jo solia ser un adolescent normal, amb totes les meves extremitats al seu lloc. L'any 2012 em vaig esclatar. Vaig sortir a passejar amb un amic, vaig agafar un cilindre pel carrer i em va explotar a les mans. Se'm va arrencar la mà dreta, la mà esquerra estava paralitzada, la meva visió estava danyada i la meva oïda. Durant sis mesos em vaig estirar a les taules d'operacions.

La mà esquerra es va muntar per peces, es van instal·lar plaques i agulles de teixir. Després de cinc mesos vaig poder treballar per a ella.

Després de la lesió, no vaig poder veure res. Però els metges van aconseguir restaurar la percepció de la llum. No quedava res del meu ull, excepte la closca. Tot el que hi havia dins es va substituir: els cossos vítris, les lents. Tot el possible".

El 2013, Zhenya va anar a estudiar a una escola correccional per a nens amb discapacitat visual. Aquell professor d'informàtica, que era completament cec, li va tornar a ensenyar a utilitzar l'ordinador. Per a això, s'utilitzen programes especials: lectors de pantalla. Accedeixen a les API del sistema operatiu per accedir a la interfície i canviar lleugerament la manera com es controlen.

Zhenya es diu a si mateix un àvid usuari de Linux; fa servir Debian. Utilitzant el teclat, navega pels elements de la interfície i un sintetitzador de veu expressa el que està passant.

"Ara només sentiràs l'espai", em diu abans d'encendre el programa.

Sembla un codi o una xerrada alienígena, però en realitat és rus o anglès normal, només que el sintetitzador parla a una velocitat increïble per a l'oïda no entrenada.

"No va ser difícil aprendre això. Al principi vaig treballar amb Windows i vaig utilitzar el lector de pantalla Jaws. El vaig fer servir i vaig pensar: "Senyor, com pots treballar a una velocitat tan lenta". Vaig fer zoom i em vaig adonar que les orelles estaven enrotllades en un tub. El vaig tornar i gradualment vaig començar a augmentar-lo entre un 5 i un 10 per cent cada setmana. Vaig accelerar el sintetitzador a cent paraules, després encara més, i una i altra vegada. Ara diu mil paraules per minut".

Zhenya escriu en un editor de text normal: Gedit o Nano. Copia les fonts de Github, inicia el lector de pantalla i escolta el codi. Per garantir que altres desenvolupadors puguin llegir-lo i entendre-ho fàcilment, utilitza linters i configuracions a tot arreu. Però Zhenya no pot utilitzar entorns de desenvolupament perquè són inaccessibles per a cecs a causa de la seva implementació.

“Estan fets de tal manera que la seva finestra la determina el sistema, i tot el que hi ha dins de la finestra no és vist pel lector de pantalla perquè no hi pot accedir. Ara m'he posat en contacte directament amb JetBrains per provar de fer alguns pegats als seus entorns. Em van enviar les fonts de PyCharm. L'IDE s'implementa a Intellij Idea, de manera que tots els canvis es poden aplicar tant allà com allà".

Un altre obstacle és la manca d'adhesió als estàndards web comuns. Per exemple, veiem un encapçalament gran en una pàgina. Molts desenvolupadors ho implementen mitjançant una etiqueta span per ajustar el tipus de lletra a la mida desitjada i acaba semblant bé. Però com que el text no és un títol per al sistema, el lector de pantalla no el reconeix com a element de menú i no permet la interacció.

Zhenya utilitza fàcilment la versió mòbil de VKontakte, però evita Facebook: "VK és convenient per a mi perquè té una llista separada de menús de navegació. Té elements i encapçalaments que per a mi són la divisió semàntica de la pàgina. Per exemple, l'encapçalament del primer nivell on s'indica el meu sobrenom: sé que aquest és el títol de la pàgina. Sé que la capçalera "missatges" divideix la pàgina, i a sota hi ha una llista de diàlegs.

Facebook promou l'accessibilitat, però en realitat tot és tan dolent que és impossible entendre res. L'obro i el programa comença a congelar-se, la pàgina és terriblement lenta, tot salta per a mi. Hi ha tots els botons a tot arreu, i em dic: "Com puc treballar amb això?!" Només el faré servir si acabo el meu client o connecto un tercer".

Recerca

La Zhenya viu a Vladivostok en un dormitori universitari normal. Hi ha un bany a l'habitació, dos armaris, dos llits, dues taules, dos prestatges, una nevera. No hi ha gadgets especials, però segons ell, no són necessaris. "La discapacitat visual no vol dir que no pugui caminar o que no trobi el camí. Però podria i m'agradaria equipar-me amb una casa intel·ligent si tingués els consumibles. Simplement no tinc diners per comprar components. Que un estudiant gasti cinc mil en honoraris només per ficar-la és molt poc rendible".

La Zhenya viu amb una noia, ajuda de moltes maneres a la casa: "escampa entrepans, aboca te, renta la roba. Per tant, vaig tenir més temps per relaxar-me i fer les coses que m'agraden”.

Per exemple, Zhenya té un grup musical on toca la guitarra elèctrica. També va aprendre després de la lesió. L'any 2016 va passar tres mesos en un centre de rehabilitació, on va demanar a un professor que l'ajudés amb la guitarra. Al principi jugava amb la costura d'una samarreta capgirada. Llavors vaig construir un mediador.

“Vaig agafar un embenat per reforçar la mà, que utilitzen, per exemple, els karatekes, el vaig tallar als llocs on estan separats els dits i el vaig tirar cap a l'avantbraç. Hi ha un coixinet d'escuma que protegeix el raspall de danys: hi vaig cosir un pic que el meu germà va tallar amb una espàtula de plàstic. Va resultar ser una llengua de plàstic tan llarga, que faig servir per tocar les cordes, picant i rasguejant".

L'explosió li va fer volar els timpans, de manera que Zhenya no pot escoltar les freqüències baixes. La seva guitarra no té la sisena corda (la més baixa), i la cinquena està afinada de manera diferent. Interpreta sobretot parts en solitari.

Però les activitats principals segueixen sent el desenvolupament i la investigació.

Pròtesi de mà

Com és escoltar codi a 1000 paraules per minut

Un dels projectes és el desenvolupament d'una pròtesi d'extremitat superior amb un sistema de control intel·ligent. El 2016, Zhenya va acudir a la persona que estava desenvolupant la pròtesi i va començar a ajudar-lo amb les proves. L'any 2017 van participar al hackató Neurostart. En un equip de tres persones, Zhenya va programar controladors de baix nivell. Dos més van construir els mateixos models i van ensenyar xarxes neuronals per al sistema de control.

Ara Zhenya s'ha fet càrrec de tota la part del programari del projecte. Utilitza el Myo Armband per llegir potencials musculars, construeix màscares basades en ells i aplica models de xarxes neuronals a la part superior per reconèixer els gestos; això és el que basa el sistema de control.

"La polsera té vuit sensors. Transmeten possibles canvis a qualsevol dispositiu d'entrada. Vaig eliminar el seu SDK amb les meves pròpies mans, vaig descompilar tot el que es necessitava i vaig escriure la meva pròpia lib en Python per llegir dades. Per descomptat, no hi ha prou dades. Encara que poso mil milions de sensors a la meva pell, encara no serà suficient. La pell es mou sobre els músculs i les dades es barregen".

En el futur, Zhenya té previst instal·lar diversos sensors sota la pell i els músculs. Ho provaria ara, però aquestes operacions estan prohibides a Rússia. Si un cirurgià implanta equips no certificats sota la pell d'una persona, perdrà el seu diploma. Tanmateix, Zhenya va cosir un sensor a la seva mà: una etiqueta RFID, com en les claus electròniques, per obrir un intercomunicador o qualsevol pany al qual s'enllaçarà la clau.

Ull artificial

Juntament amb Bogdan Shcheglov, bioquímic i biofísic, Zhenya està treballant en un prototip d'ull artificial. Bogdan es dedica al modelatge en 3D del globus ocular i connectant tots els microcircuits en un model tridimensional amb el nervi òptic, Zhenya està construint un model matemàtic.

"Hem estudiat un munt de literatura sobre anàlegs existents, tecnologies que estaven al mercat i que hi són ara, i ens vam adonar que el reconeixement d'imatges no és rellevant. Però vam saber que prèviament s'havia creat una matriu per registrar fotons i la seva energia. Vam decidir desenvolupar una matriu similar en una mida reduïda, que seria capaç de registrar almenys un conjunt mínim de fotons i construir un pols elèctric sobre la seva base. D'aquesta manera ens desfer de la capa intermèdia d'una imatge clara i el seu reconeixement; només treballem directament".

El resultat serà una visió que no és del tot en el sentit clàssic. Però com diu Zhenya, la resta del nervi òptic ha de percebre el subministrament d'impulsos elèctrics de la mateixa manera que des d'un ull real. El 2018, van discutir el projecte amb el rector de la Universitat Tècnica Marina, Gleb Turishchin, i la mentora de Skolkovo, Olga Velichko. Van confirmar que aquest problema es pot resoldre mitjançant tecnologies que ja existeixen al món.

"Però aquesta tasca és encara més difícil que desenvolupar pròtesis. Ni tan sols podem fer un experiment amb granotes per comprovar com de bé la retina genera impulsos, com depenen de diferents llums, quina zona genera més, quina menys. Necessitem un finançament que ens permeti llogar un laboratori i contractar gent per descompondre les tasques i reduir els terminis. A més el cost de tots els materials necessaris. Per regla general, tot es redueix a diners".

Burocràcia

Bogdan i Zhenya van sol·licitar finançament a Skolkovo, però se'ls va denegar: només hi van els productes acabats amb potencial comercial, i no els projectes d'investigació en l'etapa naixent.

Malgrat tota l'originalitat de la història de Zhenya, malgrat les seves habilitats i èxits inspiradors, un es sorprèn per l'estranya mala sort burocràtica. És especialment molest sentir això amb el teló de fons de la notícia. Aquí hi ha un altre "producte que la gent necessita" (una aplicació fotogràfica, optimització de publicitat o nous tipus de xats) rebent els seus milions de dòlars en ingressos i inversió. Però un entusiasta desconegut no sap què fer amb les seves idees.

Aquest any Zhenya va guanyar un estudi gratuït de sis mesos a Àustria en el marc d'un programa d'associació entre universitats, però no pot anar-hi. Per confirmar un visat, cal garantir que té diners per a l'habitatge i la vida a Salzburg.

"Apel·lar als fons no va donar resultats, perquè el finançament només s'ofereix per a programes de diploma complet", diu Zhenya, "Apel·lar a la Universitat de Salzburg tampoc no ho va fer: la universitat no té els seus propis dormitoris i no ens pot ajudar amb l'allotjament.

Vaig escriure a deu fons, i només tres o quatre em van respondre. A més, em van respondre que la meva titulació científica no els convinia: necessitaven màsters i superiors. Els meus èxits científics en els estudis de grau no els valoren. Si estàs estudiant a una universitat local, tens una llicenciatura i et dediques a la investigació tècnica, pots sol·licitar-la dins de la universitat. Però per a una persona de l'estranger, malauradament, no tenen això.

Vaig contactar aproximadament amb el mateix nombre de fons russos. A Skolkovo em van dir: ho sento, però només treballem amb mestres. Altres fundacions em van dir que no tenen finançament durant sis mesos, o només treballen amb programes de diplomatura, o no financen persones. I les fundacions Prokhorov i Potanin ni tan sols em van respondre.

Vaig rebre una carta de Yandex que deia que es dediquen a una gran caritat i que actualment l'empresa no té finançament, però em desitgen tot el millor.

Fins i tot vaig acceptar un finançament per contracte, que em permetria anar a estudiar i, per tant, portaria alguna cosa per a l'empresa. Però tot s'atura en un nivell baix de comunicació. Entenc de què es tracta. Les persones que treballen en trucades telefòniques i correu simplement treballen segons els documents. Veuen que ha arribat una aplicació, fins i tot pot ser genial. Però escriuran: ho sento, no, perquè o el termini de presentació de sol·licituds s'ha acabat o no ets qualificat segons el teu estat. Però no tinc l'oportunitat d'arribar a un lloc més alt que els propietaris del fons, simplement no tinc aquests contactes".

Però les publicacions sobre el problema de Zhenya van començar a estendre's ràpidament per les xarxes socials. En els primers dies, vam recollir uns 50 rubles, dels 000 euros necessaris. No hi ha gaire temps per preparar-se, però molta gent ja està escrivint a Zhenya sobre el suport. Potser tot sortirà.

M'agradaria acabar aquest llarg text sobre el retorn de l'heroi d'Àustria amb una experiència nova i poderosa. O rebre una subvenció per a un dels projectes, i una foto del nou laboratori. Però el text es va aturar en un dormitori, on hi ha dos armaris, dos llits, dues taules, dos prestatges, una nevera.

Em sembla que calen grans comunitats professionals per ajudar-se mútuament. L'esposa de Nekrasov necessita diners, contactes útils, idees, consells, qualsevol cosa. Pugem el nostre karma.

Els contactes de Zhenya i altres figures importantscorreu electrònic: [protegit per correu electrònic]
Телефон: +7-914-968-93-21
Telegram i WhatsApp: +7-999-057-85-48
github: github.com/Ravino
vk.com: vk.com/ravino_doul

Detalls per transferir fons:
Número de targeta: 4276 5000 3572 4382 o telèfon +7-914-968-93-21
Cartera Yandex al número de telèfon +7-914-968-93-21

Destinatari: Nekrasov Evgeniy

Font: www.habr.com

Afegeix comentari