L'histoire d'une petite tragédie et de grandes victoires d'un très bon développeur qui a besoin d'aide

À l'Université Fédérale de l'Extrême-Orient, il y a un centre d'activité de projet où les masters et les bachelors trouvent des projets d'ingénierie qui ont déjà des clients, des financements et des perspectives. Des conférences et des ateliers y sont également organisés. Des spécialistes expérimentés parlent de choses modernes et appliquées.
Un des ateliers était consacré à l'utilisation du système de conteneurisation Docker pour le calcul distribué et l'orchestration. Des masters et des doctorants en mathématiques appliquées, en ingénierie, en préparation de logiciels et d'autres domaines techniques y ont assisté.
L'instructeur était un jeune homme portant des lunettes de soleil, avec une coiffure à la mode, un foulard, sociable et trop sûr de lui — surtout pour un étudiant de 21 ans en deuxième année. Il s'appelle Evgueni Nekrasov, il a intégré l'Université Fédérale de l'Extrême-Orient il y a seulement deux ans.
Enfant prodige
«Oui, ils étaient plus âgés et plus prestigieux, mais je ne peux pas dire qu'ils avaient plus d'expérience. En dehors de cela, je donnais parfois des cours à mes camarades de groupe à la place de notre enseignant. À un moment donné, nous avons compris qu'il ne pouvait plus m'apprendre quoi que ce soit sur la Programmation Orientée Objet, donc périodiquement, je donnais des cours sur la POO, le développement moderne, GitHub, l'utilisation des systèmes de contrôle de version.»

Evgueni sait programmer en Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C et Assembler. «Je maîtrise mieux JavaScript, les autres sont d'un niveau inférieur d'un ou deux crans. Mais je peux programmer un contrôleur en Rust ou C++ en une heure. Je n'ai pas appris ces langages de manière ciblée. Je les ai étudiés en fonction des tâches qui m'étaient confiées. Je peux m'intégrer dans n'importe quel projet en lisant la documentation et les manuels. Je connais les syntaxes des langages, et le choix du langage à utiliser n'a pas grande importance. Il en va de même pour les frameworks et les bibliothèques — il suffit de lire la documentation, et je comprends comment cela fonctionne. Tout dépend du domaine et de la tâche.»
Evgueni étudie la programmation de manière intensive depuis 2013. Son professeur d'informatique, qui était totalement aveugle, l'a intéressé aux sciences informatiques. Le chemin a commencé par le web — HTML, JavaScript, PHP.
«C'est simplement intéressant pour moi. Je dors peu — je suis constamment occupé, je lis et j'étudie quelque chose.»
En 2015, Evgueni a soumis une candidature au concours « Umnik » pour le soutien aux projets techniques des jeunes chercheurs âgés de dix-huit ans et plus. Mais il n'avait pas encore dix-huit ans, donc il n'a pas réussi à gagner le concours — néanmoins, il a attiré l'attention de la communauté locale des développeurs. Il a rencontré Sergueï Milékhine, qui à l'époque organisait des conférences à Vladivostok dans le cadre de Google Developer Fest. « Il m'a invité à y aller, je suis venu, j'ai écouté, ça m'a plu. L'année suivante, je suis revenu, j'ai de plus en plus fait connaissance avec des gens, et j'ai échangé. »
Andrei Sitnik de la communauté VLDC a commencé à aider Evgueni avec ses projets web. « J'avais besoin de construire une application multithread pour le traitement de WebSocket. J'ai longtemps réfléchi à comment faire cela en PHP, et j'ai consulté Andrei. Il m'a dit : 'prends node.js, des paquets npm disponibles sur Internet, et ne te prends pas la tête. Et au fait, faire avancer l'open source, c'est génial'. Donc, j'ai amélioré mon anglais, j'ai commencé à lire la documentation et à mettre mes projets sur GitHub. »
En 2018, Evgueni a déjà présenté des conférences au Google Dev Fest, parlant de ses travaux dans le domaine des interfaces accessibles, des prothèses des membres supérieurs, du développement d'interfaces neurales et de systèmes de contrôle d'accès sans contact. Actuellement, Evgueni est en deuxième année de bachelor en « Ingénierie logicielle », mais il l'a déjà réussie et finalise son travail de fin d'études.
« On m'a demandé de réaliser une structure de données dans une table de hachage. C'est un truc standard que tous les étudiants reçoivent à l'université. J'ai réussi à écrire 12 000 lignes de code et une tonne de rustines », raconte Evgueni en riant, « J'ai construit une table de hachage et sa structure modifiée en JavaScript pour lire les données plus rapidement. Et le professeur dit : 'j'ai besoin que tu écrives cela d'une manière plus simple pour que je puisse l'évaluer'. C'était vraiment frustrant. »
Les projets personnels d'Evgueni sont beaucoup plus intéressants. Le premier d'entre eux est le développement de normes web pour les personnes handicapées. Il souhaite créer une ressource contenant une technologie d'assistance prête à l'emploi, afin que les personnes malvoyantes puissent les utiliser facilement sans douter qu'une information leur soit inaccessible. Evgueni connaît bien ce problème car il a lui-même perdu la vue.
Blessure
«Avant, j'étais un adolescent ordinaire, avec tous mes membres. En 2012, j'ai subi une explosion. Je suis sorti me balader avec un ami, j'ai ramassé une bouteille dans la rue, et elle a explosé dans mes mains. J'ai perdu ma main droite, ma main gauche a été blessée, j'ai souffert de problèmes de vision et d'audition. Pendant six mois, je suis resté sur les tables d'opération.
Ils ont reconstitué ma main gauche morceau par morceau, en y plaçant des plaques et des broches. Au bout de cinq mois, j'ai pu l'utiliser.
Après la blessure, je ne voyais absolument rien. Mais les médecins ont réussi à restaurer une perception lumineuse. Il ne me restait rien de mon œil, à part la membrane. À l'intérieur, tout avait été remplacé : corps vitré, lentilles. Tout ce qui était possible.
En 2013, Zhenya est allé à l'école spécialisée pour enfants malvoyants. Cet enseignant d'informatique, qui était complètement aveugle, lui a appris à utiliser l'ordinateur à nouveau. Pour cela, on utilise des programmes spéciaux — des lecteurs d'écran. Ceux-ci accèdent à l'API des systèmes d'exploitation pour obtenir un accès à l'interface et modifier légèrement le mode de gestion.
Zhenya se décrit comme un passionné de Linux, il utilise Debian. Avec son clavier, il navigue dans les éléments de l'interface, tandis qu'un synthétiseur vocal décrit ce qui se passe.
«Maintenant, tu vas entendre quelque chose d'incroyable», me dit-il avant d'allumer le programme.
Cela sonne comme un code ou un jargon extraterrestre, mais en réalité, c'est simplement le russe ou l'anglais, juste que le synthétiseur parle à une vitesse incroyable pour une oreille non entraînée.
«Apprendre cela n'a pas été difficile. Au début, je travaillais sous Windows et utilisais le programme d'accès à l'écran Jaws. Je l'utilisais et je pensais, 'mon Dieu, comment peut-on travailler à une vitesse aussi lente ?'. Je l'ai accéléré et j'ai réalisé que mes oreilles se fermaient. Je suis revenu en arrière et j'ai commencé à augmenter progressivement chaque semaine de 5 à 10 %. J'ai poussé le synthétiseur à cent mots, puis encore plus, encore et encore. Maintenant, il dit mille mots par minute».
Zhenya écrit dans un éditeur de texte ordinaire — Gedit ou Nano. Il copie les sources depuis GitHub, lance le lecteur d'écran et écoute le code. Pour que d'autres développeurs puissent le lire et le comprendre sans problème, il utilise des linters et des configurations partout. Mais Zhenya ne peut pas utiliser les environnements de développement car ils ne sont pas accessibles aux personnes aveugles en raison de leur mise en œuvre.
«Ils sont conçus de manière à ce que leur fenêtre soit détectée par le système, tandis que tout ce qui est à l'intérieur de la fenêtre n'est pas visible par le lecteur d'écran, car il ne peut pas y accéder. Je viens de contacter JetBrains directement pour essayer d'apporter quelques correctifs à leurs environnements. Ils m'ont envoyé les sources de PyCharm. L'IDE est basé sur Intellij Idea, donc tous les changements pourront être appliqués à la fois ici et là».
Un autre obstacle est le non-respect des normes générales sur le web. Par exemple, nous voyons un grand titre sur la page. Beaucoup de développeurs l'implémentent à l'aide de la balise span pour ajuster la taille de la police, et le résultat semble correct. Cependant, puisque le texte n'est pas reconnu comme un titre par le système, le lecteur d'écran ne le reconnaît pas non plus comme un élément de menu, et ne permet pas d'interaction.
Jenya utilise facilement la version mobile de «Vkontakte», mais évite Facebook : «VK est pratique pour moi, car il y a une liste de navigation distincte. Elle contient des éléments et des titres qui représentent, pour moi, une division sémantique de la page. Par exemple, le titre de premier niveau, qui indique mon pseudonyme — je sais que c'est le titre de la page. Je sais que le titre “messages” divise la page, et en dessous se trouve la liste des dialogues.
Facebook promeut l'accessibilité, mais en réalité c'est si mal qu'il est impossible de comprendre quoi que ce soit. J'ouvre le site — et le programme commence à ramer, la page ralentit horriblement, tout saute. Partout il y a des boutons, et je me dis : „comment travailler avec ça ?!” Je ne l'utiliserai que si je développe mon propre client ou si j'installe un logiciel tiers.»
Recherche
Jenya vit à Vladivostok dans un dortoir universitaire ordinaire. La salle de bain est dans la chambre, il y a deux armoires, deux lits, deux bureaux, deux étagères, un réfrigérateur. Aucun gadget spécial, mais selon ses dires — ils ne sont même pas nécessaires. «Avoir une déficience visuelle ne signifie pas que je ne peux pas me déplacer ou que je ne peux pas trouver mon chemin. Mais j'aimerais peut-être équiper une maison intelligente si j'avais les ressources. Je n'ai tout simplement pas d'argent pour acheter des composants. Dépenser cinq mille pour une carte juste pour jouer avec — c'est très peu rentable pour un étudiant».
Jenya vit avec sa copine, elle l'aide beaucoup dans la vie quotidienne : «étaler des sandwiches, servir du thé, faire la lessive. Cela me laisse donc plus de temps pour me reposer et pratiquer mes activités préférées».
Par exemple, Jeni a un groupe de musique dans lequel il joue de la guitare électrique. Il a également appris après sa blessure. En 2016, il a passé trois mois dans un centre de réhabilitation, où il a demandé de l'aide à un professeur de guitare. Au début, il jouait avec une manche de chemise retournée. Puis, il a fabriqué un médiator.
« J'ai pris un bandage pour renforcer mon poignet, utilisé, par exemple, par des karatékas, que j'ai ouvert aux endroits entre les doigts et mis sur mon avant-bras. Il y a un coussinet en mousse qui protège le poignet des blessures — j'y ai cousu le médiator que mon frère a découpé dans une spatule en plastique. Ça fait une sorte de longue langue en plastique avec laquelle je joue sur les cordes — en arpèges et en frappant ».
L'explosion a détruit ses tympans, donc Jeni n'entend pas les basses fréquences. Sa guitare n'a pas la sixième (la plus basse) corde, et la cinquième est accordée différemment. Il joue principalement des solos.
Mais les principales activités restent le développement et la recherche.
Prothèse de bras
Un des projets consiste à développer une prothèse pour les membres supérieurs avec un système de contrôle intelligent. En 2016, Jeni est venu voir un homme qui travaillait sur le développement de cette prothèse et a commencé à l'aider avec les tests. En 2017, ils ont participé au hackathon "Neurostart". Dans une équipe de trois, Jeni a programmé des contrôleurs bas niveau. Les deux autres construisaient eux-mêmes les modèles et entraînaient des réseaux de neurones pour le système de contrôle.Maintenant, Jeni a pris en charge toute la partie logicielle du projet. Il utilise le bracelet Myo Armband pour lire les potentiels musculaires, en construisant des masques à partir d'eux et en appliquant des modèles de réseaux de neurones pour la reconnaissance des gestes — c'est sur cela que repose le système de contrôle.
« Le bracelet a huit capteurs. Ils transmettent les variations de potentiels à n'importe quel dispositif d'entrée. J'ai moi-même exploré leur SDK, décompilé tout ce qui était nécessaire, et j'ai écrit ma propre librairie en Python pour lire les données. Bien sûr, il manque des données. Même si j'attache un milliard de capteurs sur la peau, ce ne sera toujours pas suffisant. La peau se déplace au-dessus des muscles, et les données se mélangent ».
À l'avenir, Jena prévoit d'implanter sous la peau et dans les muscles plusieurs capteurs. Il aimerait déjà essayer cela, mais de telles opérations sont interdites en Russie. Si un chirurgien implante un équipement non certifié sous la peau d'un patient, il perd son diplôme. Néanmoins, Jena a implanté un capteur dans sa main – une étiquette RFID, comme dans les clés électroniques, pour ouvrir l'interphone ou toute serrure à laquelle la clé sera attachée.
Œil artificiel
Avec Bogdan Shcheglov, biochimiste et biophysicien, Jena travaille sur un prototype d'œil artificiel. Bogdan s'occupe de la modélisation 3D du globe oculaire et de la connexion de tous les circuits dans un modèle tridimensionnel au nerf optique, tandis que Jena construit le modèle mathématique.
« Nous avons étudié une tonne de littérature sur les analogues existants, les technologies qui étaient sur le marché et celles qui le sont encore, et nous avons compris que la reconnaissance d'images n'est pas pertinente. Cependant, nous avons découvert qu'une matrice avait été créée auparavant pour enregistrer les photons et leur énergie. Nous avons décidé de développer une matrice similaire à une échelle réduite, capable d'enregistrer au moins un ensemble minimal de photons et de construire un impulse électrique sur cette base. Ainsi, nous éliminons la couche intermédiaire d'image claire et de reconnaissance – nous travaillons simplement directement. »
En conséquence, la vision ne sera pas tout à fait dans le sens classique. Mais comme le dit Jena, le reste du nerf optique devrait percevoir l'envoi d'impulsions électriques de la même manière que celles d'un véritable œil. En 2018, ils ont discuté du projet avec le recteur de l'Université Technique Maritime, Gleb Turishchev, et la mentor de Skolkovo, Olga Velichko. Ils ont confirmé que cette tâche pouvait être résolue avec des technologies déjà existantes dans le monde.
« Mais cette tâche est encore plus complexe que le développement de prothèses. Nous ne pouvons même pas effectuer d'expériment sur des grenouilles pour vérifier à quel point la rétine génère des impulsions, comment elles varient en fonction de la lumière, quelle zone en génère le plus et laquelle le moins. Nous avons besoin de financement pour louer un laboratoire et embaucher des gens afin de décomposer les tâches et réduire les délais. De plus, il y a les coûts de tous les matériaux nécessaires. En général, tout se heurte à l'argent. »
Bureaucratie
Bogdan et Jenya se sont tournés vers Skolkovo pour un financement, mais ont été refusés — seuls les produits finalisés à potentiel commercial y sont acceptés, pas les projets de recherche en phase de conception.
Malgré l'unicité de l'histoire de Jenya, ses compétences et ses succès inspirants — son étrange malchance bureaucratique surprend. C'est particulièrement frustrant à entendre dans le contexte des nouvelles. Voici un autre « produit nécessaire aux gens » (une application de photographie, optimisation de la publicité ou nouveaux types de chat) qui génère des millions de dollars de revenus et d'investissements. Alors qu'un passionné inconnu ne sait pas quoi faire de ses idées.
Cette année, Jenya a gagné une formation gratuite de six mois en Autriche dans le cadre d'un programme de partenariat entre universités — mais il ne peut pas s'y rendre. Pour la confirmation de visa, des garanties sont nécessaires pour prouver qu'il a de l'argent pour son logement et sa vie à Salzbourg.
« Faire appel aux fonds n'a pas donné de résultats, car le financement est uniquement accordé pour des programmes diplômants complets », dit Jenya, « Contacter l'université de Salzbourg n'aide pas non plus — l'université n'a pas de résidences établies et ne peut pas nous aider pour le logement.
J'ai écrit à dix fonds, et parmi eux, seules trois ou quatre m'ont répondu. En fait, elles ont répondu que mon diplôme scientifique ne leur convenait pas — elles ont besoin de masters et plus. Mes travaux scientifiques au niveau de la licence ne sont pas reconnus. Si tu étudies dans une université locale, tu es licencié et te consacres à des recherches techniques, alors tu peux soumettre tes documents. Mais pour une personne venant de l'étranger, ils n'ont malheureusement pas cette option.
J'ai contacté à peu près le même nombre de fonds russes. À Skolkovo, on m'a dit : désolé, mais nous travaillons uniquement avec des masters. Dans d'autres fonds, on m'a dit qu'ils n'avaient pas de financement pour six mois, ou bien qu'ils travaillaient aussi uniquement avec des programmes diplômants, ou qu'ils ne financent pas les personnes physiques. Et des fonds Prokhorov et Potanin, je n'ai même pas reçu de réponse.
J'ai reçu une lettre de Yandex, disant qu'ils s'engagent dans de grandes œuvres caritatives et que l'entreprise n'a actuellement pas de financement, mais ils me souhaitent le meilleur.
J'étais même prêt à un financement contractuel ciblé, qui me permettrait de partir étudier, et en retour, j'apporterais quelque chose pour l'entreprise. Mais tout est bloqué par un faible niveau de communication. Je comprends d'où cela vient. Les gens qui travaillent sur des appels téléphoniques et des e-mails ne font que suivre des documents. Ils voient qu'une demande est arrivée, elle peut même être bonne. Mais ils diront : désolé, non, parce que soit la demande a expiré, soit vous ne correspondez pas au statut. Je n'ai pas la possibilité de contacter les propriétaires du fonds, je n'ai tout simplement pas ces contacts.
Mais les publications sur le problème de Jena ont commencé à se répandre rapidement sur les réseaux sociaux. En quelques jours, environ 50 000 roubles ont été collectés — sur les 12 000 euros nécessaires. Il y a peu de temps pour les récoltes, mais beaucoup ont déjà écrit à Jena pour offrir leur soutien. Peut-être que cela fonctionnera.
J'aimerais terminer ce long texte par le retour du héros d'Autriche avec une nouvelle expérience puissante. Ou en obtenant une subvention pour l'un des projets, et une photo du nouveau laboratoire. Mais le texte s'est arrêté dans la chambre d'un dortoir, où il y a deux armoires, deux lits, deux bureaux, deux étagères, un réfrigérateur.
Je pense que de grandes communautés professionnelles sont nécessaires pour s’entraider. Jena Nekrasov a besoin d'argent, de contacts utiles, d'idées, de conseils, de tout ce que vous pouvez imaginer. Élevons notre karma.
Contacts de Jena et autres chiffres importantse-mail : evgeniy@nekrasov.pw
Téléphone : +7-914-968-93-21
Telegram et WhatsApp : +7-999-057-85-48
github :
vk.com : vk.com/ravino_doul
Coordonnées pour le transfert de fonds :
Numéro de carte : 4276 5000 3572 4382 ou par numéro de téléphone +7-914-968-93-21
Portefeuille Yandex par numéro de téléphone +7-914-968-93-21
Destinataire : Nekrasov Evgeniy
Source : habr.com

