Hoe het is om naar code te luisteren met 1000 woorden per minuut

Het verhaal van een kleine tragedie en grote overwinningen van een zeer goede ontwikkelaar die hulp nodig heeft

Hoe het is om naar code te luisteren met 1000 woorden per minuut

Aan de Far Eastern Federal University is er een centrum voor projectactiviteiten - daar vinden masters en bachelors technische projecten die al klanten, geld en vooruitzichten hebben. Ook worden er lezingen en intensieve cursussen gegeven. Ervaren specialisten vertellen over moderne en toegepaste zaken.

Eén van de intensieve cursussen was gewijd aan het gebruik van het Docker-containerisatiesysteem voor gedistribueerd computergebruik en orkestratie. De bijeenkomst werd bijgewoond door masterstudenten en studenten in de toegepaste wiskunde, techniek, softwarevoorbereiding en andere technische gebieden.

De leraar was een man met een donkere bril, een modieus kapsel, een sjaal, sociaal en te zelfverzekerd - vooral voor een 21-jarige tweedejaarsstudent. Zijn naam is Evgeny Nekrasov, hij kwam pas twee jaar geleden bij FEFU binnen.

Wonderkind

“Ja, ze waren ouder en hadden meer status, maar ik kan niet zeggen dat ze meer ervaring hadden. Daarnaast gaf ik soms lezingen aan mijn klasgenoten voor onze leraar. Op een gegeven moment beseften we dat hij me niets meer kon geven over Object Oriented Programming, dus van tijd tot tijd gaf ik voor hem lezingen over OOP, moderne ontwikkeling, GitHub en het gebruik van versiecontrolesystemen.

Hoe het is om naar code te luisteren met 1000 woorden per minuut

Evgeniy kan schrijven in Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C en Assembler. “Ik ken JavaScript beter, de rest zit een niveau of twee lager. Maar tegelijkertijd kan ik binnen een uur een controller in Rust of C++ programmeren. Ik heb deze talen niet met opzet bestudeerd. Ik bestudeerde ze voor de taken die mij waren opgedragen. Ik kan aan elk project deelnemen door de documentatie en handleidingen te bestuderen. Ik ken de syntaxis van de talen, en welke ik moet gebruiken, doet er niet echt toe. Hetzelfde geldt voor frameworks en bibliotheken: lees gewoon de documentatie en ik begrijp hoe het werkt. Alles wordt bepaald door het vakgebied en de opgave.”

Evgeniy bestudeert sinds 2013 intensief programmeren. Een leraar computerwetenschappen op de middelbare school die volledig blind was, zorgde ervoor dat hij geïnteresseerd raakte in computerwetenschappen. Het pad begon met het web: HTML, JavaScript, PHP.

"Ik ben gewoon nieuwsgierig. Ik slaap niet veel, ik ben constant ergens mee bezig, iets aan het lezen, iets aan het studeren.”

In 2015 heeft Evgeniy zich aangemeld voor de wedstrijd "Umnik" ter ondersteuning van technische projecten van jonge wetenschappers ouder dan achttien jaar. Maar hij was nog geen achttien, dus hij slaagde er niet in de wedstrijd te winnen - maar Evgeniy werd opgemerkt door de lokale ontwikkelaarsgemeenschap. Hij ontmoette Sergei Milekhin, die op dat moment conferenties organiseerde in Vladivostok als onderdeel van het Google Developer Fest. “Hij nodigde me daar uit, ik kwam, luisterde, ik vond het leuk. Het jaar daarop kwam ik weer, leerde mensen steeds beter kennen, communiceerde.”

Andrey Sitnik van de VLDC-gemeenschap begon Evgeniy te helpen met zijn webprojecten. “Ik moest een multi-threaded websocket-applicatie bouwen. Ik heb heel lang nagedacht over hoe ik dit in PHP moest doen en wendde me tot Andrey. Hij vertelde me: “Neem node.js, npm-pakketten die op internet staan, en breek je hoofd niet. En over het algemeen is het verplaatsen van open source cool.” Dus verbeterde ik mijn Engels, begon documentatie te lezen en projecten op GitHub te plaatsen.”

In 2018 gaf Evgeniy al presentaties op Google Dev Fest, waarin hij sprak over ontwikkelingen op het gebied van toegankelijke interfaces, prothesen van de bovenste ledematen, de ontwikkeling van neurale interfaces en contactloze toegangscontrolesystemen. Nu zit Evgeniy in zijn tweede jaar van de bachelor Software Engineering, maar hij heeft deze al met succes afgerond en is bezig met het afronden van zijn afstudeerwerk.

“Ik kreeg te horen dat ik de datastructuur in een hashtabel moest implementeren. Dit is een standaard gegeven aan iedereen op de universiteit. Ik eindigde met 12 regels code en een hoop krukken”, zegt Evgeniy lachend. “Ik heb een hashtabel en de aangepaste structuur ervan in JavaScript gebouwd om gegevens sneller te kunnen lezen. En de leraar zegt: “Ik wil dat je opschrijft wat voor mij gemakkelijker is, zodat ik het kan beoordelen.” Het was heel vervelend."

De persoonlijke projecten van Evgeniy zien er veel interessanter uit. De eerste hiervan is de ontwikkeling van webstandaarden voor mensen met een lichamelijke beperking. Hij wil een hulpbron creëren die out-of-the-box ondersteunende technologie biedt, zodat mensen met een visuele beperking deze gemakkelijk kunnen gebruiken zonder bang te hoeven zijn bepaalde informatie te missen. Evgeniy kent dit probleem goed, omdat hij zelf zijn gezichtsvermogen verloor.

letsel

“Vroeger was ik een gewone tiener, met al mijn ledematen op hun plaats. In 2012 blies ik mezelf op. Ik ging wandelen met een vriend, pakte een cilinder op straat en deze explodeerde in mijn handen. Mijn rechterhand werd afgerukt, mijn linkerhand was kreupel, mijn gezichtsvermogen was beschadigd en mijn gehoor was aangetast. Zes maanden lang lag ik gewoon op de operatietafel.

De linkerhand werd in delen geassembleerd, platen en breinaalden werden geïnstalleerd. Na vijf maanden kon ik voor haar aan de slag.

Na de blessure kon ik helemaal niets meer zien. Maar artsen slaagden erin de lichtperceptie te herstellen. Er was niets meer van mijn oog over dan de schelp. Alles binnenin werd vervangen: de glaslichamen, de lenzen. Alles is mogelijk."

In 2013 ging Zhenya studeren aan een correctionele school voor kinderen met een visuele beperking. Die leraar computerwetenschappen, die volledig blind was, leerde hem opnieuw hoe hij een computer moest gebruiken. Voor dit doel worden speciale programma's gebruikt: schermlezers. Ze hebben toegang tot de API's van het besturingssysteem om toegang te krijgen tot de interface en de manier waarop ze worden beheerd enigszins te veranderen.

Zhenya noemt zichzelf een fervent Linux-gebruiker; hij gebruikt Debian. Met behulp van het toetsenbord navigeert hij door de interface-elementen, en een spraaksynthesizer laat horen wat er gebeurt.

"Nu hoor je alleen maar ruimte", vertelt hij voordat hij het programma aanzet.

Het klinkt als een code of buitenaards gebabbel, maar in werkelijkheid is het gewoon Russisch of Engels, alleen spreekt de synthesizer met een ongelooflijke snelheid voor het ongetrainde oor.

“Het was niet moeilijk om dit te leren. In eerste instantie werkte ik op Windows en gebruikte ik de schermlezer Jaws. Ik gebruikte het en dacht: “Heer, hoe kunt u zo langzaam werken.” Ik zoomde in en besefte dat de oren in een buis waren gekruld. Ik gaf het terug en begon het geleidelijk elke week met 5-10 procent te verhogen. Ik versnelde de synthesizer tot honderd woorden, daarna nog meer, en opnieuw en opnieuw. Nu spreekt hij duizend woorden per minuut.”

Zhenya schrijft in een gewone teksteditor - Gedit of Nano. Kopieert bronnen uit Github, start de schermlezer en luistert naar de code. Om ervoor te zorgen dat het gemakkelijk door andere ontwikkelaars kan worden gelezen en begrepen, wordt overal gebruik gemaakt van linters en configuraties. Maar Zhenya kan geen ontwikkelomgevingen gebruiken omdat deze vanwege de implementatie ervan ontoegankelijk zijn voor blinden.

“Ze zijn zo gemaakt dat hun venster wordt bepaald door het systeem, en alles binnen het venster wordt niet gezien door de schermlezer omdat deze er geen toegang toe heeft. Ik heb nu rechtstreeks contact opgenomen met JetBrains om te proberen enkele patches voor hun omgevingen uit te voeren. Ze stuurden me de PyCharm-bronnen. De IDE is geïmplementeerd op Intellij Idea, dus alle wijzigingen kunnen zowel daar als daar worden toegepast.”

Een andere barrière is het gebrek aan naleving van gemeenschappelijke webstandaarden. We zien bijvoorbeeld een grote kop op een pagina. Veel ontwikkelaars implementeren dit met behulp van een span-tag om het lettertype aan te passen tot de gewenste grootte, en het ziet er uiteindelijk goed uit. Maar omdat de tekst geen titel voor het systeem is, herkent de schermlezer deze niet als menu-element en staat geen interactie toe.

Zhenya gebruikt gemakkelijk de mobiele versie van VKontakte, maar vermijdt Facebook: “VK is handig voor mij omdat het een aparte lijst met navigatiemenu's heeft. Het bevat elementen en koppen die voor mij de semantische indeling van de pagina vormen. Bijvoorbeeld de kop van het eerste niveau waar mijn bijnaam wordt aangegeven: ik weet dat dit de titel van de pagina is. Ik weet dat de kop 'berichten' de pagina verdeelt, en daaronder staat een lijst met dialogen.

Facebook bevordert de toegankelijkheid, maar in werkelijkheid is alles zo slecht dat het onmogelijk is om iets te begrijpen. Ik open het - en het programma begint te bevriezen, de pagina is vreselijk traag, alles springt voor mij rond. Er zijn overal allemaal knoppen en ik denk: "Hoe werk ik hiermee?!" Ik zal het alleen gebruiken als ik mijn klant afrond of een derde partij aansluit.”

Исследования

Zhenya woont in Vladivostok in een gewoon studentenhuis. Er is een badkamer in de kamer, twee kasten, twee bedden, twee tafels, twee planken, een koelkast. Geen bijzondere snufjes, maar die zijn volgens hem ook niet nodig. “Een visuele beperking betekent niet dat ik niet zal kunnen lopen of geen manier zal vinden. Maar ik zou mezelf graag kunnen en willen uitrusten met een slim huis als ik de verbruiksartikelen had. Ik heb simpelweg geen geld om onderdelen te kopen. Als een student vijfduizend dollar aan collegegeld uitgeeft, alleen maar om haar te pesten, is dat zeer onrendabel.”

Zhenya woont samen met een meisje, ze helpt op veel manieren in huis: “broodjes uitsmeren, thee inschenken, de was doen. Daardoor had ik meer tijd om te ontspannen en de dingen te doen die ik leuk vind.”

Zhenya heeft bijvoorbeeld een muziekgroep waar hij elektrische gitaar speelt. Hij leerde het ook na de blessure. In 2016 bracht hij drie maanden door in een revalidatiecentrum, waar hij een leraar vroeg om hem te helpen met zijn gitaar. In eerste instantie speelde ik met de naad van een shirt binnenstebuiten gekeerd. Toen heb ik een bemiddelaar gebouwd.

“Ik nam een ​​verband om de hand te versterken, dat bijvoorbeeld door karateka's wordt gebruikt, sneed het open op de plaatsen waar de vingers gescheiden waren en trok het op de onderarm. Er zit een schuimkussentje dat de borstel beschermt tegen beschadiging - ik heb er een plectrum aan genaaid dat mijn broer voor mij uit een plastic spatel heeft gesneden. Het bleek zo’n lange plastic tong te zijn, waarmee ik op de snaren speel – tokkelend en tokkelend.”

De explosie blies zijn trommelvliezen uit, zodat Zhenya geen lage frequenties kan horen. Zijn gitaar heeft niet de zesde (laagste) snaar en de vijfde is anders gestemd. Hij speelt voornamelijk solopartijen.

Maar de belangrijkste activiteiten blijven ontwikkeling en onderzoek.

Prothetische hand

Hoe het is om naar code te luisteren met 1000 woorden per minuut

Eén van de projecten is de ontwikkeling van een bovenste ledemaatprothese met een slim besturingssysteem. In 2016 kwam Zhenya naar de persoon die de prothese aan het ontwikkelen was en begon hem te helpen met testen. In 2017 namen ze deel aan de Neurostart hackathon. In een team van drie mensen programmeerde Zhenya controllers op laag niveau. Twee anderen construeerden de modellen zelf en leerden neurale netwerken voor het besturingssysteem.

Nu heeft Zhenya het volledige softwaregedeelte van het project overgenomen. Het gebruikt de Myo Armband om het spierpotentieel te lezen, bouwt maskers op basis daarvan en past daar neurale netwerkmodellen op toe om gebaren te herkennen – dit is waar het controlesysteem op is gebouwd.

“De armband heeft acht sensoren. Ze verzenden potentiële wijzigingen naar elk invoerapparaat. Ik heb hun SDK met mijn eigen handen gestript, alles wat nodig was gedecompileerd en mijn eigen lib in Python geschreven om gegevens te lezen. Natuurlijk zijn er niet genoeg gegevens. Zelfs als ik een miljard sensoren op mijn huid zou plaatsen, zal het nog steeds niet genoeg zijn. De huid beweegt over de spieren en de gegevens raken in de war.”

In de toekomst is Zhenya van plan verschillende sensoren onder de huid en spieren te installeren. Hij zou het nu proberen, maar dergelijke operaties zijn in Rusland verboden. Als een chirurg niet-gecertificeerde apparatuur onder de huid van iemand implanteert, verliest hij zijn diploma. Zhenya naaide echter één sensor in zijn hand: een RFID-tag, zoals bij elektronische sleutels, om een ​​intercom te openen of een ander slot waaraan de sleutel zal worden gekoppeld.

Kunstmatig oog

Samen met Bogdan Shcheglov, een biochemicus en biofysicus, werkt Zhenya aan een prototype van een kunstoog. Bogdan houdt zich bezig met 3D-modellering van de oogbol en verbindt alle microcircuits in een driedimensionaal model met de oogzenuw. Zhenya bouwt een wiskundig model.

“We hebben een heleboel literatuur bestudeerd over bestaande analogen, technologieën die op de markt waren en nu zijn, en beseften dat beeldherkenning niet relevant is. Maar we ontdekten dat er eerder een matrix was gemaakt voor het vastleggen van fotonen en hun energie. We besloten een vergelijkbare matrix in een kleinere omvang te ontwikkelen, die in staat zou zijn om op zijn minst een minimum aantal fotonen te registreren en op basis daarvan een elektrische puls op te bouwen. Zo raken we de tussenlaag van een helder beeld en de herkenning ervan kwijt – we werken gewoon direct.”

Het resultaat zal een visie zijn die niet helemaal in de klassieke zin is. Maar zoals Zhenya zegt, moet de rest van de oogzenuw de toevoer van elektrische impulsen op dezelfde manier waarnemen als door een echt oog. In 2018 bespraken ze het project met de rector van de Maritieme Technische Universiteit, Gleb Turishchin, en Skolkovo-mentor Olga Velichko. Ze bevestigden dat dit probleem kan worden opgelost met behulp van technologieën die al in de wereld bestaan.

“Maar deze taak is nog moeilijker dan het ontwikkelen van protheses. We kunnen niet eens een experiment met kikkers uitvoeren om te controleren hoe goed het netvlies impulsen genereert, hoe ze afhankelijk zijn van ander licht, welk gebied meer en welke minder genereert. We hebben financiering nodig waarmee we een laboratorium kunnen huren en mensen kunnen inhuren om taken op te splitsen en deadlines te verkorten. Plus de kosten van alle benodigde materialen. In de regel draait het allemaal om geld.”

Bureaucratie

Bogdan en Zhenya hebben bij Skolkovo een aanvraag ingediend voor financiering, maar deze werd geweigerd. Alleen eindproducten met commercieel potentieel gaan daar naartoe, en geen onderzoeksprojecten in de kinderschoenen.

Ondanks alle originaliteit in Zhenya’s verhaal, ondanks zijn capaciteiten en inspirerende successen, wordt men verrast door de vreemde bureaucratische pech. Het is vooral vervelend om dit tegen de achtergrond van het nieuws te horen. Hier is nog een “product dat mensen nodig hebben” (een fototoepassing, advertentie-optimalisatie of nieuwe soorten chats) dat miljoenen dollars aan inkomsten en investeringen ontvangt. Maar een onbekende liefhebber weet geen raad met zijn ideeën.

Dit jaar won Zhenya een gratis studie van zes maanden in Oostenrijk in het kader van een partnerschapsprogramma tussen universiteiten, maar hij kan daar niet heen. Om een ​​visum te bevestigen zijn garanties nodig dat hij geld heeft voor huisvesting en leven in Salzburg.

“Een beroep doen op fondsen leverde geen resultaat op, omdat er alleen financiering wordt verstrekt voor volledige diplomaprogramma’s”, zegt Zhenya. “Een beroep doen op de Universiteit van Salzburg zelf leverde ook niets op: de universiteit heeft geen eigen slaapzalen en kan ons niet helpen met huisvesting.

Ik schreef naar tien fondsen, en slechts drie of vier reageerden op mij. Bovendien antwoordden ze dat mijn wetenschappelijke graad niet bij hen paste - ze hadden meesters en hoger nodig. Mijn wetenschappelijke prestaties tijdens mijn bachelorstudies worden er niet door gewaardeerd. Als je aan een lokale universiteit studeert, een bachelordiploma hebt en je bezighoudt met technisch onderzoek, dan kun je binnen de universiteit solliciteren. Maar voor iemand uit het buitenland hebben ze dit helaas niet.

Ik heb contact opgenomen met ongeveer hetzelfde aantal Russische fondsen. In Skolkovo zeiden ze tegen mij: sorry, maar we werken alleen met meesters. Andere stichtingen vertelden mij dat ze gedurende zes maanden geen financiering hebben, of dat ze alleen met diplomaprogramma's werken, of dat ze geen individuen financieren. En de stichtingen Prokhorov en Potanin gaven mij niet eens antwoord.

Ik heb een brief ontvangen van Yandex dat ze zich bezighouden met grote liefdadigheidsinstellingen en dat het bedrijf momenteel geen financiering heeft, maar ze wensen me het allerbeste.

Ik heb zelfs ingestemd met een contractgerichte financiering, waardoor ik kon gaan studeren, en als gevolg daarvan zou ik iets meenemen voor het bedrijf. Maar alles stopt bij een laag communicatieniveau. Ik begrijp waar dit over gaat. Mensen die aan telefoongesprekken en post werken, werken gewoon volgens documenten. Ze zien dat er een aanvraag is binnengekomen, het is misschien zelfs wel gaaf. Maar ze zullen schrijven: sorry, nee, want óf de aanmeldingsperiode is verstreken óf je komt niet in aanmerking op basis van je status. Maar ik heb niet de mogelijkheid om ergens hoger te reiken dan de eigenaren van het fonds, ik heb simpelweg niet zulke contacten.”

Maar berichten over het probleem van Zhenya begonnen zich snel via sociale netwerken te verspreiden. In de eerste paar dagen hebben we ongeveer 50 roebel ingezameld - van de benodigde 000 euro. Er is niet veel tijd om je voor te bereiden, maar veel mensen schrijven al naar Zhenya over ondersteuning. Misschien komt alles goed.

Ik zou deze lange tekst over de terugkeer van de held uit Oostenrijk graag afsluiten met een nieuwe en krachtige ervaring. Of het ontvangen van subsidie ​​voor een van de projecten, en een foto van het nieuwe laboratorium. Maar de tekst stopte in een slaapzaal, waar twee kasten, twee bedden, twee tafels, twee planken en een koelkast staan.

Het lijkt mij dat er grote professionele gemeenschappen nodig zijn om elkaar te helpen. De vrouw van Nekrasov heeft geld, nuttige contacten, ideeën, advies, wat dan ook nodig. Laten we ons karma verhogen.

Zhenya's contacten en andere belangrijke figurene-mail: [e-mail beveiligd]
Телефон: +7-914-968-93-21
Telegram en WhatsApp: +7-999-057-85-48
github: github.com/Ravino
vk.com: vk.com/ravino_doul

Details voor het overboeken van geld:
Kaartnummer: 4276 5000 3572 4382 of telefoonnummer +7-914-968-93-21
Yandex-portemonnee op telefoonnummer +7-914-968-93-21

Geadresseerde: Nekrasov Evgeniy

Bron: www.habr.com

Voeg een reactie