Como é escoitar código a 1000 palabras por minuto

A historia dunha pequena traxedia e grandes vitorias dun moi bo programador que necesita axuda

Como é escoitar código a 1000 palabras por minuto

Na Universidade Federal do Extremo Oriente hai un centro para actividades de proxectos: alí mestres e licenciados atopan proxectos de enxeñería que xa teñen clientes, cartos e perspectivas. Alí tamén se celebran charlas e cursos intensivos. Especialistas experimentados falan de cousas modernas e aplicadas.

Un dos cursos intensivos dedicouse ao uso do sistema de contenerización Docker para a informática distribuída e a orquestración. Nela participaron estudantes de máster e posgrao de matemática aplicada, enxeñaría, preparación de software e outras áreas técnicas.

O profesor era un tipo con lentes escuras, un corte de pelo de moda, unha bufanda, sociable e demasiado confiado, especialmente para un estudante de segundo de 21 anos. Chámase Evgeny Nekrasov, entrou na FEFU hai só dous anos.

Wunderkind

"Si, eran maiores e tiñan máis estatus, pero non podo dicir que tiñan máis experiencia. Ademais, ás veces daba charlas aos meus compañeiros para o noso profesor. Nalgún momento, decatámonos de que non podía darme nada máis sobre Programación Orientada a Obxectos, polo que de cando en vez dáballe conferencias sobre OOP, desenvolvemento moderno, GitHub e o uso de sistemas de control de versións.

Como é escoitar código a 1000 palabras por minuto

Evgeniy pode escribir en Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C e Assembler. "Coñezo JavaScript mellor, o resto son un ou dous niveis máis baixos. Pero ao mesmo tempo, podo programar un controlador en Rust ou C++ nunha hora. Non estudei estes idiomas a propósito. Estudeinos para as tarefas que me encomendaron. Podo unirme a calquera proxecto estudando a documentación e os manuais. Sei as sintaxes das linguas, e cal usar non importa. Pasa o mesmo cos frameworks e bibliotecas: só tes que ler a documentación e entendo como funciona. Todo está determinado pola área temática e a tarefa”.

Evgeniy estuda intensamente programación desde 2013. Un profesor de informática de secundaria que estaba completamente cego fixo que se interesase pola informática. O camiño comezou coa web - HTML, JavaScript, PHP.

"Só teño curiosidade. Non durmo moito: estou constantemente ocupado con algo, lendo algo, estudando algo".

En 2015, Evgeniy solicitou o concurso "Umnik" para apoiar proxectos técnicos de mozos científicos maiores de dezaoito anos. Pero non tiña dezaoito anos, polo que non conseguiu gañar a competición, pero a comunidade de desenvolvedores locais notou a Evgeniy. Coñeceu a Sergei Milekhin, quen nese momento estaba a organizar conferencias en Vladivostok como parte do Google Developer Fest. “Convidoume alí, vin, escoitei, gustoume. Ao ano seguinte vin outra vez, coñecín cada vez máis xente, comuniqueime”.

Andrey Sitnik da comunidade VLDC comezou a axudar a Evgeniy cos seus proxectos web. "Necesitaba construír unha aplicación de socket web multiproceso. Pensei durante moito tempo sobre como facelo en PHP, e acudín a Andrey. Díxome: "toma os paquetes node.js, npm que están en Internet e non che rompas a cabeza. E, en xeral, mover código aberto é xenial". Así que mellorei o meu inglés, comecei a ler documentación e publicar proxectos en GitHub.

En 2018, Evgeniy xa deu presentacións no Google Dev Fest, falando dos desenvolvementos no campo das interfaces accesibles, as próteses de membros superiores, o desenvolvemento de interfaces neuronais e os sistemas de control de acceso sen contacto. Agora Evgeniy está no seu segundo ano de licenciatura en Enxeñaría de Software, pero xa o rematou con éxito e está rematando o seu traballo final.

"Dixéronme que implementase a estrutura de datos nunha táboa hash. Esta é unha cousa estándar que se dá a todos na universidade. Acabei con 12 mil liñas de código e un montón de muletas", di Evgeniy entre risas, "Construín unha táboa hash e a súa estrutura modificada en JavaScript para ler os datos máis rápido. E a profesora di: "Necesito que escribas o que é máis fácil para min para poder avalialo". Foi moi molesto".

Os proxectos persoais de Evgeniy parecen moito máis interesantes. O primeiro deles é o desenvolvemento de estándares web para persoas con discapacidade física. Quere crear un recurso que ofreza tecnoloxía de asistencia fóra da caixa para que as persoas con discapacidade visual poidan usalo facilmente sen a preocupación de perder algunha información. Evgeniy coñece ben este problema, porque el mesmo perdeu a vista.

Lesión

"Eu adoitaba ser un adolescente normal, con todos os meus membros no seu sitio. En 2012, exploteime. Saín a pasear cun amigo, collín un cilindro na rúa e estoupou nas miñas mans. A miña man dereita arrincouse, a miña esquerda estaba paralizada, a miña visión estaba danada e o meu oído estaba deteriorado. Durante seis meses só me deitei sobre mesas de operación.

Montouse a man esquerda por pezas, instaláronse pratos e agullas de tecer. Despois de cinco meses puiden traballar para ela.

Despois da lesión, non puiden ver nada. Pero os médicos conseguiron restaurar a percepción da luz. Do meu ollo non quedaba nada agás a cuncha. Todo o que estaba dentro foi substituído: os corpos vítreos, as lentes. Todo o posible".

En 2013, Zhenya foi estudar a unha escola correccional para nenos con discapacidade visual. Aquel profesor de informática, que estaba completamente cego, ensinoulle de novo a usar o ordenador. Para este fin, utilízanse programas especiais: lectores de pantalla. Acceden ás API do sistema operativo para acceder á interface e cambian lixeiramente a forma en que se controlan.

Zhenya chámase un ávido usuario de Linux; usa Debian. Usando o teclado, navega polos elementos da interface e un sintetizador de voz expresa o que está a suceder.

"Agora escoitarás só espazo", dime antes de conectar o programa.

Parece un código ou unha charla alieníxena, pero en realidade é ruso ou inglés común, é só que o sintetizador fala a unha velocidade incrible para o oído non adestrado.

"Non foi difícil aprender isto. Ao principio traballei en Windows e usei o lector de pantalla Jaws. Useino e pensei: "Señor, como podes traballar a unha velocidade tan lenta". Achegueime e decateime de que as orellas estaban enroscadas nun tubo. Devolvín e gradualmente comecei a aumentalo nun 5-10 por cento cada semana. Acelerei o sintetizador a cen palabras, despois aínda máis, e unha e outra vez. Agora fala mil palabras por minuto".

Zhenya escribe nun editor de texto normal: Gedit ou Nano. Copia fontes de Github, inicia o lector de pantalla e escoita o código. Para garantir que outros desenvolvedores poidan ler e comprender facilmente, utiliza linters e configuracións en todo momento. Pero Zhenya non pode usar contornas de desenvolvemento porque son inaccesibles para os cegos debido á súa implementación.

“Están feitos de tal xeito que a súa fiestra está determinada polo sistema, e todo o que está dentro da ventá non é visto polo lector de pantalla porque non pode acceder a ela. Agora contactei directamente con JetBrains para tentar facer algúns parches nos seus ambientes. Enviáronme as fontes de PyCharm. O IDE está implementado en Intellij Idea, polo que todos os cambios pódense aplicar tanto alí como alí".

Outra barreira é a falta de adhesión aos estándares web comúns. Por exemplo, vemos un título grande nunha páxina. Moitos desenvolvedores implementan isto usando unha etiqueta span para axustar o tipo de letra ao tamaño desexado, e acaba quedando ben. Pero como o texto non é un título para o sistema, o lector de pantalla non o recoñece como elemento de menú e non permite a interacción.

Zhenya usa facilmente a versión móbil de VKontakte, pero evita Facebook: "VK é conveniente para min porque ten unha lista separada de menús de navegación. Ten elementos e títulos que para min son a división semántica da páxina. Por exemplo, o título do primeiro nivel onde se indica o meu apelido: sei que este é o título da páxina. Sei que a cabeceira "mensaxes" divide a páxina, e debaixo hai unha lista de diálogos.

Facebook promove a accesibilidade, pero en realidade todo é tan malo que é imposible entender nada. Ábroo - e o programa comeza a conxelarse, a páxina é terriblemente lenta, todo salta para min. Hai todos os botóns por todas partes, e eu estou como: "¿Como traballo con isto?!" Só o usarei se remato o meu cliente ou conecto un terceiro".

Investigación

Zhenya vive en Vladivostok nun dormitorio universitario normal. Hai un baño no cuarto, dous armarios, dúas camas, dúas mesas, dous estantes, unha neveira. Non hai aparellos especiais, pero segundo el, non son necesarios. "A discapacidade visual non significa que non poida camiñar ou que non atope un camiño. Pero podería e sería feliz equiparme cunha casa intelixente se tivese os consumibles. Simplemente non teño cartos para mercar compoñentes. Que un estudante gaste cinco mil en taxas só para botala por aí é moi pouco rendible.

Zhenya vive cunha moza, ela axuda de moitas maneiras na casa: "untar bocadillos, botar té, lavar a roupa. Polo tanto, tiven máis tempo para relaxarme e facer as cousas que me gustan".

Por exemplo, Zhenya ten un grupo musical onde toca a guitarra eléctrica. Tamén aprendeu tras a lesión. En 2016 pasou tres meses nun centro de rehabilitación, onde lle pediu a un profesor que lle axudase coa guitarra. Ao principio xoguei coa costura dunha camiseta dada ao revés. Despois construín un mediador.

“Tomei unha venda para fortalecer a man, que usan, por exemplo, os karatekas, abrína nos lugares onde están separados os dedos e tirei cara ao antebrazo. Hai unha almofada de escuma que protexe o pincel de danos; cosín unha picota que o meu irmán cortou cunha espátula de plástico. Resultou ser unha lingua de plástico tan longa, que utilizo para tocar coas cordas, pinchando e rasgueando".

A explosión explotoulle os tímpanos, polo que Zhenya non pode escoitar as baixas frecuencias. A súa guitarra non ten a sexta corda (máis baixa), e a quinta está afinada de forma diferente. Toca principalmente partes en solitario.

Pero as principais actividades seguen sendo o desenvolvemento e a investigación.

Brazo protético

Como é escoitar código a 1000 palabras por minuto

Un dos proxectos é o desenvolvemento dunha prótese de membro superior cun sistema de control intelixente. En 2016, Zhenya chegou á persoa que estaba a desenvolver a prótese e comezou a axudalo coas probas. En 2017, participaron no hackathon Neurostart. Nun equipo de tres persoas, Zhenya programou controladores de baixo nivel. Dous máis construíron os propios modelos e ensinaron redes neuronais para o sistema de control.

Agora Zhenya fíxose cargo de toda a parte do software do proxecto. Usa o Myo Armband para ler os potenciais musculares, constrúe máscaras baseadas neles e aplica modelos de redes neuronais enriba para recoñecer os xestos; isto é no que está construído o sistema de control.

"A pulseira ten oito sensores. Transmiten posibles cambios a calquera dispositivo de entrada. Desmontei o seu SDK coas miñas propias mans, descompilei todo o que era necesario e escribín a miña propia biblioteca en Python para ler datos. Por suposto, non hai datos suficientes. Aínda que poña mil millóns de sensores na miña pel, aínda non será suficiente. A pel móvese sobre os músculos e os datos mestúranse".

No futuro, Zhenya planea instalar varios sensores baixo a pel e os músculos. Probaríao agora, pero este tipo de operacións están prohibidas en Rusia. Se un cirurxián implanta equipos non certificados baixo a pel dunha persoa, perderá o seu diploma. Non obstante, Zhenya coseu un sensor na súa man: unha etiqueta RFID, como nas chaves electrónicas, para abrir un intercomunicador ou calquera pechadura á que estará ligada a chave.

Ollo artificial

Xunto con Bogdan Shcheglov, un bioquímico e biofísico, Zhenya está a traballar nun prototipo de ollo artificial. Bogdan está involucrado no modelado 3D do globo ocular e conecta todos os microcircuítos nun modelo tridimensional co nervio óptico, Zhenya está a construír un modelo matemático.

"Estudamos un montón de literatura sobre análogos existentes, tecnoloxías que estaban no mercado e que están agora, e decatámonos de que o recoñecemento de imaxes non é relevante. Pero soubemos que previamente se creara unha matriz para rexistrar fotóns e a súa enerxía. Decidimos desenvolver unha matriz similar nun tamaño reducido, que fose capaz de rexistrar polo menos un conxunto mínimo de fotóns e construír un pulso eléctrico sobre a súa base. Deste xeito desfacemos a capa intermedia dunha imaxe clara e o seu recoñecemento; só traballamos directamente”.

O resultado será unha visión que non é exactamente no sentido clásico. Pero como di Zhenya, o resto do nervio óptico debe percibir a subministración de impulsos eléctricos do mesmo xeito que desde un ollo real. En 2018, discutiron o proxecto co reitor da Universidade Técnica Mariña, Gleb Turishchin, e coa mentora de Skolkovo, Olga Velichko. Confirmaron que este problema pódese solucionar mediante tecnoloxías que xa existen no mundo.

"Pero esta tarefa é aínda máis difícil que desenvolver próteses. Nin sequera podemos realizar un experimento con ras para comprobar o ben que a retina xera impulsos, como dependen de diferentes luz, que zona xera máis, cal menos. Precisamos un financiamento que nos permita alugar un laboratorio e contratar persoas para descompoñer tarefas e reducir prazos. Ademais do custo de todos os materiais necesarios. Como regra xeral, todo se reduce ao diñeiro".

Burocracia

Bogdan e Zhenya solicitaron financiamento a Skolkovo, pero foron rexeitados: só os produtos acabados con potencial comercial van alí, e non os proxectos de investigación na fase nacente.

A pesar de toda a orixinalidade da historia de Zhenya, a pesar das súas habilidades e éxitos inspiradores, un é sorprendido pola estraña mala sorte burocrática. É especialmente molesto escoitar isto co pano de fondo das noticias. Aquí tes outro "produto que a xente necesita" (unha aplicación fotográfica, optimización de publicidade ou novos tipos de chats) que recibe os seus millóns de dólares en ingresos e investimento. Pero un entusiasta descoñecido non sabe que facer coas súas ideas.

Este ano Zhenya gañou un estudo gratuíto de seis meses en Austria no marco dun programa de colaboración entre universidades, pero non pode ir alí. Para confirmar un visado, necesítanse garantías de que ten cartos para a vivenda e a vida en Salzburgo.

"Apelar aos fondos non deu resultados, porque o financiamento só se proporciona para programas de diploma completo", di Zhenya, "Apelar á propia Universidade de Salzburgo tampouco o fixo: a universidade non ten os seus propios dormitorios e non pode axudarnos co aloxamento.

Escribín a dez fondos e só me responderon tres ou catro. Ademais, responderon que a miña titulación científica non lles conveña: necesitaban mestres e superiores. Os meus logros científicos nos estudos de grao non son valorados por eles. Se estás estudando nunha universidade local, tes un título de bacharelato e estás dedicado á investigación técnica, podes aplicar dentro da universidade. Pero para unha persoa do estranxeiro, por desgraza, non ten isto.

Contactei aproximadamente co mesmo número de fondos rusos. En Skolkovo dixéronme: perdón, pero só traballamos con mestres. Outras fundacións dixéronme que non teñen financiamento durante seis meses, ou só traballan con programas de diplomatura, ou non financian a persoas físicas. E as fundacións Prokhorov e Potanin nin sequera me contestaron.

Recibín unha carta de Yandex na que se indica que están comprometidos nunha gran caridade e que a empresa actualmente non ten financiamento, pero deséxanme todo o mellor.

Incluso aceptei un financiamento dirixido por contratos, que me permitiría ir estudar e, como resultado, traería algo para a empresa. Pero todo se detén nun baixo nivel de comunicación. Entendo de que se trata. As persoas que traballan en chamadas telefónicas e correos simplemente traballan segundo os documentos. Ven que chegou unha aplicación, ata pode ser xenial. Pero escribirán: perdón, non, porque ou o prazo de solicitude expirou ou non reúnes os requisitos segundo o teu estado. Pero non teño a oportunidade de chegar a un lugar máis alto que os propietarios do fondo, simplemente non teño tales contactos".

Pero as publicacións sobre o problema de Zhenya comezaron a estenderse rapidamente polas redes sociais. Nos primeiros días, recollemos uns 50 rublos, dos 000 euros necesarios. Non hai moito tempo para prepararse, pero moitas persoas xa están escribindo a Zhenya sobre o apoio. Quizais todo funcione.

Estaría encantado de rematar este longo texto sobre o regreso do heroe de Austria cunha experiencia nova e poderosa. Ou recibir unha subvención para algún dos proxectos, e unha foto do novo laboratorio. Pero o texto parou nun dormitorio, onde hai dous armarios, dúas camas, dúas mesas, dous andeis, unha neveira.

Paréceme que se necesitan grandes comunidades profesionais para axudarse mutuamente. A muller de Nekrasov necesita diñeiro, contactos útiles, ideas, consellos, calquera cousa. Aumentemos o noso karma.

Contactos de Zhenya e outras figuras importantese-mail: [protexido por correo electrónico]
Телефон: +7-914-968-93-21
Telegram e WhatsApp: +7-999-057-85-48
github: github.com/Ravino
vk.com: vk.com/ravino_doul

Detalles para transferir fondos:
Número de tarxeta: 4276 5000 3572 4382 ou teléfono +7-914-968-93-21
Carteira Yandex polo número de teléfono +7-914-968-93-21

Destinatario: Nekrasov Evgeniy

Fonte: www.habr.com

Engadir un comentario