Como é ouvir código a 1000 palavras por minuto

A história de uma pequena tragédia e grandes vitórias de um desenvolvedor muito bom que precisa de ajuda

Como é ouvir código a 1000 palavras por minuto

Na Universidade Federal do Extremo Oriente existe um centro de atividades de projetos - lá mestres e bacharéis encontram projetos de engenharia que já têm clientes, dinheiro e clientes potenciais. Lá também são ministradas palestras e cursos intensivos. Especialistas experientes falam sobre coisas modernas e aplicadas.

Um dos cursos intensivos foi dedicado à utilização do sistema de conteinerização Docker para computação distribuída e orquestração. Estiveram presentes mestres e pós-graduandos de matemática aplicada, engenharia, preparação de software e outras áreas técnicas.

O professor era um cara de óculos escuros, corte de cabelo estiloso, lenço, sociável e muito confiante - principalmente para um aluno do segundo ano de 21 anos. O nome dele é Evgeny Nekrasov, ele ingressou na FEFU há apenas dois anos.

Prodígio infantil

“Sim, eles eram mais velhos e tinham mais status, mas não posso dizer que fossem mais experientes. Além disso, às vezes dava palestras aos meus colegas para o nosso professor. Em algum momento, percebemos que ele não poderia me dar mais nada sobre Programação Orientada a Objetos, então de vez em quando eu dava palestras para ele sobre OOP, desenvolvimento moderno, GitHub e o uso de sistemas de controle de versão.”

Como é ouvir código a 1000 palavras por minuto

Evgeniy pode escrever em Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C e Assembler. “Eu conheço JavaScript melhor, o resto está um ou dois níveis abaixo. Mas, ao mesmo tempo, posso programar um controlador em Rust ou C++ em uma hora. Não estudei esses idiomas de propósito. Estudei-os para as tarefas que me foram atribuídas. Posso participar de qualquer projeto estudando a documentação e os manuais. Eu conheço a sintaxe das linguagens, e qual delas usar realmente não importa. É o mesmo com frameworks e bibliotecas – basta ler a documentação e entender como funciona. Tudo é determinado pela área temática e pela tarefa.”

Evgeniy estuda programação intensamente desde 2013. Um professor de ciência da computação do ensino médio, completamente cego, fez com que ele se interessasse por ciência da computação. O caminho começou com a web – HTML, JavaScript, PHP.

"Eu só estou curioso. Não durmo muito – estou constantemente ocupado com alguma coisa, lendo alguma coisa, estudando alguma coisa.”

Em 2015, Evgeniy candidatou-se ao concurso “Umnik” para apoiar projetos técnicos de jovens cientistas com mais de dezoito anos. Mas ele não tinha dezoito anos e não conseguiu vencer a competição - mas Evgeniy foi notado pela comunidade de desenvolvedores locais. Ele conheceu Sergei Milekhin, que naquele momento organizava conferências em Vladivostok como parte do Google Developer Fest. “Ele me convidou para ir lá, eu vim, ouvi, gostei. No ano seguinte voltei, conheci cada vez mais as pessoas, me comuniquei.”

Andrey Sitnik, da comunidade VLDC, começou a ajudar Evgeniy com seus projetos web. “Eu precisava construir um aplicativo de soquete web multithread. Pensei muito em como fazer isso em PHP e procurei o Andrey. Ele me disse: “pegue pacotes node.js, npm que estão na Internet e não quebre a cabeça. E, em geral, migrar o código aberto é legal.” Então melhorei meu inglês, comecei a ler documentação e postar projetos no GitHub.”

Em 2018, Evgeniy já fez apresentações no Google Dev Fest, falando sobre desenvolvimentos na área de interfaces acessíveis, próteses de membros superiores, desenvolvimento de interfaces neurais e sistemas de controle de acesso sem contato. Agora Evgeniy está no segundo ano do bacharelado em Engenharia de Software, mas já o concluiu com sucesso e está finalizando seu trabalho final.

“Disseram-me para implementar a estrutura de dados em uma tabela hash. Isso é algo padrão dado a todos na universidade. Acabei com 12 mil linhas de código e um monte de muletas”, diz Evgeniy rindo, “construí uma tabela hash e sua estrutura modificada em JavaScript para ler os dados com mais rapidez. E a professora diz: “Preciso que você escreva o que é mais fácil para mim para que eu possa avaliar”. Foi muito chato."

Os projetos pessoais de Evgeniy parecem muito mais interessantes. A primeira delas é o desenvolvimento de padrões web para pessoas com deficiência física. Ele quer criar um recurso que forneça tecnologia assistiva pronta para uso, para que pessoas com deficiência visual possam usá-la facilmente, sem a preocupação de perder alguma informação. Evgeniy conhece bem esse problema, porque ele próprio perdeu a visão.

Trauma

“Eu era um adolescente comum, com todos os meus membros no lugar. Em 2012, eu me explodi. Saí para passear com um amigo, peguei um cilindro na rua e ele explodiu nas minhas mãos. Minha mão direita foi arrancada, minha mão esquerda ficou aleijada, minha visão foi prejudicada e minha audição ficou prejudicada. Durante seis meses fiquei deitado em mesas de operação.

A mão esquerda foi montada em partes, placas e agulhas de tricô foram instaladas. Depois de cinco meses, pude trabalhar para ela.

Depois da lesão, não consegui ver mais nada. Mas os médicos conseguiram restaurar a percepção da luz. Não sobrou nada do meu olho, exceto a concha. Tudo dentro foi substituído – os corpos vítreos, as lentes. Tudo possível."

Em 2013, Zhenya foi estudar em uma escola correcional para crianças com deficiência visual. Aquele professor de informática, que era completamente cego, ensinou-o a usar o computador novamente. Para tanto, são utilizados programas especiais - leitores de tela. Eles acessam APIs do sistema operacional para obter acesso à interface e alteram ligeiramente a forma como são controlados.

Zhenya se autodenomina um usuário ávido de Linux; ele usa Debian. Usando o teclado, ele navega pelos elementos da interface e um sintetizador de voz dá voz ao que está acontecendo.

“Agora você ouvirá apenas espaço”, ele me diz antes de ligar o programa.

Parece um código ou conversa alienígena, mas na realidade é russo ou inglês comum, só que o sintetizador fala a uma velocidade incrível para o ouvido destreinado.

“Não foi difícil aprender isso. No início trabalhei em Windows e usei o leitor de tela Jaws. Usei-o e pensei: “Senhor, como você pode trabalhar em uma velocidade tão lenta?” Aumentei o zoom e percebi que as orelhas estavam enroladas em um tubo. Devolvi-o e gradualmente comecei a aumentá-lo em 5 a 10% a cada semana. Acelerei o sintetizador para cem palavras, depois ainda mais, e de novo e de novo. Agora ele fala mil palavras por minuto.”

Zhenya escreve em um editor de texto normal - Gedit ou Nano. Copia fontes do Github, inicia o leitor de tela e ouve o código. Para garantir que possa ser facilmente lido e compreendido por outros desenvolvedores, ele usa linters e configurações por toda parte. Mas Zhenya não pode usar ambientes de desenvolvimento porque eles são inacessíveis para cegos devido à sua implementação.

“Eles são feitos de forma que sua janela seja determinada pelo sistema, e tudo que está dentro da janela não é visto pelo leitor de tela porque ele não tem acesso. Agora entrei em contato diretamente com a JetBrains para tentar fazer alguns patches em seus ambientes. Eles me enviaram as fontes do PyCharm. O IDE é implementado no Intellij Idea, então todas as alterações podem ser aplicadas ali e ali.”

Outra barreira é a falta de adesão aos padrões comuns da web. Por exemplo, vemos um título grande em uma página. Muitos desenvolvedores implementam isso usando uma tag span para ajustar a fonte ao tamanho desejado, e acaba ficando bem. Mas como o texto não é um título para o sistema, o leitor de tela não o reconhece como elemento de menu e não permite interação.

Zhenya usa facilmente a versão móvel do VKontakte, mas evita o Facebook: “O VK é conveniente para mim porque tem uma lista separada de menus de navegação. Possui elementos e títulos que para mim são a divisão semântica da página. Por exemplo, o título de primeiro nível onde meu apelido é indicado - eu sei que este é o título da página. Eu sei que o cabeçalho “mensagens” divide a página e abaixo há uma lista de diálogos.

O Facebook promove a acessibilidade, mas na realidade tudo é tão ruim que é impossível entender alguma coisa. Eu abro - e o programa começa a congelar, a página fica terrivelmente lenta, tudo pula para mim. Existem todos os botões em todos os lugares, e eu fico tipo, “como faço para trabalhar com isso ?!” Só usarei se encerrar meu cliente ou conectar um terceiro.”

Pesquisa

Zhenya mora em Vladivostok, em um dormitório universitário comum. O quarto tem banheiro, dois guarda-roupas, duas camas, duas mesas, duas prateleiras, uma geladeira. Não há aparelhos especiais, mas segundo ele não são necessários. “A deficiência visual não significa que não poderei andar ou não encontrarei um caminho. Mas eu poderia e ficaria feliz em me equipar com uma casa inteligente se tivesse os consumíveis. Simplesmente não tenho dinheiro para comprar componentes. Para uma estudante gastar cinco mil em mensalidades só para brincar com ela não é muito lucrativo.”

Zhenya mora com uma menina, ela ajuda de várias maneiras na casa: “espalhar sanduíches, servir chá, lavar roupa. Portanto, tive mais tempo para relaxar e fazer as coisas que amo.”

Por exemplo, Zhenya tem um grupo musical onde toca guitarra elétrica. Ele também aprendeu após a lesão. Em 2016, passou três meses em um centro de reabilitação, onde pediu a um professor que o ajudasse com o violão. No começo brinquei com a costura de uma camisa virada do avesso. Então construí um mediador.

“Peguei um curativo para fortalecer a mão, que é usado, por exemplo, pelos karatecas, cortei nos locais onde os dedos estão separados e puxei no antebraço. Tem uma almofada de espuma ali que protege o pincel de danos - nela costurei uma palheta que meu irmão cortou para mim com uma espátula de plástico. Acabou sendo uma língua de plástico muito longa, que uso para tocar as cordas - dedilhando e dedilhando.”

A explosão estourou seus tímpanos, então Zhenya não consegue ouvir as frequências baixas. Seu violão não tem a sexta corda (mais baixa) e a quinta é afinada de forma diferente. Ele toca principalmente partes solo.

Mas as principais atividades continuam a ser o desenvolvimento e a investigação.

Braço protético

Como é ouvir código a 1000 palavras por minuto

Um dos projetos é o desenvolvimento de uma prótese de membro superior com sistema de controle inteligente. Em 2016, Zhenya procurou o responsável pelo desenvolvimento da prótese e começou a ajudá-lo nos testes. Em 2017, participaram do hackathon Neurostart. Em uma equipe de três pessoas, Zhenya programou controladores de baixo nível. Outros dois construíram eles próprios os modelos e ensinaram redes neurais para o sistema de controle.

Agora Zhenya assumiu toda a parte de software do projeto. Ele usa a braçadeira Myo para ler potenciais musculares, constrói máscaras com base neles e aplica modelos de redes neurais para reconhecer gestos – é nisso que o sistema de controle é construído.

“A pulseira tem oito sensores. Eles transmitem alterações potenciais para qualquer dispositivo de entrada. Destruí o SDK deles com minhas próprias mãos, descompilei tudo o que era necessário e escrevi minha própria biblioteca em Python para ler dados. É claro que não há dados suficientes. Mesmo que eu coloque um bilhão de sensores na minha pele, ainda não será suficiente. A pele se move sobre os músculos e os dados se confundem.”

No futuro, Zhenya planeja instalar vários sensores sob a pele e os músculos. Ele tentaria fazer isso agora - mas tais operações são proibidas na Rússia. Se um cirurgião implantar equipamento não certificado sob a pele de uma pessoa, ela perderá o seu diploma. No entanto, Zhenya costurou um sensor em sua mão - uma etiqueta RFID, como nas chaves eletrônicas, para abrir um interfone ou qualquer fechadura à qual a chave estará vinculada.

olho artificial

Juntamente com Bogdan Shcheglov, bioquímico e biofísico, Zhenya está trabalhando em um protótipo de olho artificial. Bogdan está envolvido na modelagem 3D do globo ocular e conectando todos os microcircuitos em um modelo tridimensional com o nervo óptico, Zhenya está construindo um modelo matemático.

“Estudamos muita literatura sobre análogos existentes, tecnologias que estavam no mercado e estão agora, e percebemos que o reconhecimento de imagem não é relevante. Mas aprendemos que uma matriz já havia sido criada para registrar fótons e sua energia. Decidimos desenvolver uma matriz semelhante em tamanho reduzido, que fosse capaz de registrar pelo menos um conjunto mínimo de fótons e construir um pulso elétrico a partir deles. Desta forma, eliminamos a camada intermédia de uma imagem nítida e do seu reconhecimento – apenas trabalhamos diretamente.”

O resultado será uma visão que não corresponde exatamente ao sentido clássico. Mas, como diz Zhenya, o restante do nervo óptico deve perceber o fornecimento de impulsos elétricos da mesma forma que um olho real. Em 2018, eles discutiram o projeto com o reitor da Universidade Técnica Marinha, Gleb Turishchin, e com a mentora de Skolkovo, Olga Velichko. Eles confirmaram que esse problema pode ser resolvido com tecnologias já existentes no mundo.

“Mas essa tarefa é ainda mais difícil do que desenvolver próteses. Não podemos nem mesmo realizar um experimento em sapos para verificar até que ponto a retina gera impulsos, como eles dependem de luz diferente, qual área gera mais, qual menos. Precisamos de financiamento que nos permita alugar um laboratório e contratar pessoas para decompor tarefas e reduzir prazos. Mais o custo de todos os materiais necessários. Via de regra, tudo se resume a dinheiro.”

Burocracia

Bogdan e Zhenya solicitaram financiamento a Skolkovo, mas foram recusados ​​- apenas produtos acabados com potencial comercial vão para lá, e não projetos de pesquisa em estágio inicial.

Apesar de toda a originalidade da história de Zhenya, apesar de suas habilidades e sucessos inspiradores, ficamos surpresos com o estranho azar burocrático. É especialmente irritante ouvir isso tendo como pano de fundo as notícias. Aqui está outro “produto que as pessoas precisam” (um aplicativo de fotos, otimização de publicidade ou novos tipos de chats) recebendo milhões de dólares em receitas e investimentos. Mas um entusiasta desconhecido não sabe o que fazer com as suas ideias.

Este ano, Zhenya ganhou um estudo gratuito de seis meses na Áustria, no âmbito de um programa de parceria entre universidades - mas ele não pode ir para lá. Para confirmar um visto, são necessárias garantias de que ele tem dinheiro para moradia e vida em Salzburgo.

“O recurso a fundos não produziu resultados, porque o financiamento é fornecido apenas para programas completos de diploma”, diz Zhenya, “O recurso à própria Universidade de Salzburgo também não produziu - a universidade não tem dormitórios próprios e não pode ajudar-nos com alojamento.

Escrevi para dez fundos e apenas três ou quatro me responderam. Além disso, responderam que meu diploma científico não lhes convinha - precisavam de mestrado e superior. Minhas realizações científicas na graduação não são valorizadas por eles. Se você está estudando em uma universidade local, possui um diploma de bacharel e está envolvido em pesquisa técnica, poderá se inscrever na universidade. Mas para quem vem de fora, infelizmente, não tem isso.

Entrei em contato com aproximadamente o mesmo número de fundos russos. Em Skolkovo me disseram: desculpe, mas só trabalhamos com mestres. Outras fundações me disseram que não têm financiamento para seis meses, ou trabalham apenas com programas de diploma, ou não financiam pessoas físicas. E as fundações Prokhorov e Potanin nem me responderam.

Recebi uma carta da Yandex informando que eles estão envolvidos em uma grande instituição de caridade e que a empresa atualmente não tem financiamento, mas eles me desejam tudo de bom.

Até concordei em contratar um financiamento direcionado, que me permitiria ir estudar, e com isso traria algo para a empresa. Mas tudo pára num baixo nível de comunicação. Eu entendo do que se trata. Pessoas que trabalham por telefone e correspondência simplesmente trabalham de acordo com documentos. Eles veem que chegou um aplicativo, pode até ser legal. Mas eles vão escrever: desculpe, não, porque o período de inscrição expirou ou você não se qualifica de acordo com seu status. Mas não tenho oportunidade de chegar a um lugar superior aos donos do fundo, simplesmente não tenho esses contactos.”

Mas as postagens sobre o problema de Zhenya começaram a se espalhar rapidamente pelas redes sociais. Nos primeiros dias, arrecadamos cerca de 50 rublos - dos 000 euros exigidos. Não há muito tempo para se preparar, mas muitas pessoas já estão escrevendo para Zhenya sobre suporte. Talvez tudo dê certo.

Terei prazer em terminar este longo texto sobre o regresso do herói da Áustria com uma experiência nova e poderosa. Ou receber bolsa para um dos projetos e foto do novo laboratório. Mas o texto parou num dormitório, onde há dois armários, duas camas, duas mesas, duas prateleiras, uma geladeira.

Parece-me que são necessárias grandes comunidades profissionais para se ajudarem mutuamente. A esposa de Nekrasov precisa de dinheiro, contatos úteis, ideias, conselhos, qualquer coisa. Vamos aumentar nosso karma.

Contatos de Zhenya e outras figuras importantese-mail: [email protegido]
Телефон: +7-914-968-93-21
Telegrama e WhatsApp: +7-999-057-85-48
GitHub: github.com/Ravino
vk.com: vk.com/ravino_doul

Detalhes para transferência de fundos:
Número do cartão: 4276 5000 3572 4382 ou telefone +7-914-968-93-21
Carteira Yandex pelo número de telefone +7-914-968-93-21

Destinatário: Nekrasov Evgeniy

Fonte: habr.com

Adicionar um comentário