Com'è ascoltare un codice a 1000 parole al minuto

La storia di una piccola tragedia e di grandi vittorie di un ottimo sviluppatore che ha bisogno di aiuto

Com'è ascoltare un codice a 1000 parole al minuto

Presso l'Università Federale dell'Estremo Oriente c'è un centro per le attività di progetto: lì master e scapoli trovano progetti di ingegneria che hanno già clienti, denaro e prospettive. Vi si tengono anche conferenze e corsi intensivi. Specialisti esperti parlano di cose moderne e applicate.

Uno dei corsi intensivi è stato dedicato all'utilizzo del sistema di containerizzazione Docker per il calcolo distribuito e l'orchestrazione. Vi hanno partecipato master e studenti laureati di matematica applicata, ingegneria, preparazione di software e altre aree tecniche.

L'insegnante era un ragazzo con gli occhiali scuri, un taglio di capelli alla moda, una sciarpa, socievole e troppo sicuro di sé, soprattutto per uno studente del secondo anno di 21 anni. Si chiama Evgeny Nekrasov, è entrato nella FEFU solo due anni fa.

Bambino prodigio

“Sì, erano più vecchi e avevano più status, ma non posso dire che avessero più esperienza. Inoltre, a volte tenevo lezioni ai miei compagni di classe per il nostro insegnante. Ad un certo punto, ci siamo resi conto che non poteva darmi niente di più sulla programmazione orientata agli oggetti, quindi di tanto in tanto gli ho tenuto conferenze sull’OOP, sullo sviluppo moderno, su GitHub e sull’uso dei sistemi di controllo della versione”.

Com'è ascoltare un codice a 1000 parole al minuto

Evgeniy può scrivere in Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C e Assembler. “Conosco meglio JavaScript, il resto è uno o due livelli più in basso. Ma allo stesso tempo posso programmare un controller in Rust o C++ in un'ora. Non ho studiato queste lingue apposta. Li ho studiati per i compiti che mi sono stati assegnati. Posso partecipare a qualsiasi progetto studiando la documentazione e i manuali. Conosco la sintassi delle lingue e quale usare non ha molta importanza. È lo stesso con framework e librerie: basta leggere la documentazione e capisco come funziona. Tutto è determinato dall’argomento e dal compito.”

Evgeniy studia intensamente la programmazione dal 2013. Un insegnante di informatica del liceo completamente cieco lo ha interessato all'informatica. Il percorso è iniziato con il web: HTML, JavaScript, PHP.

"Sono solo curioso. Non dormo molto: sono costantemente impegnato con qualcosa, leggo qualcosa, studio qualcosa.

Nel 2015, Evgeniy ha presentato domanda per il concorso “Umnik” per sostenere progetti tecnici di giovani scienziati di età superiore ai diciotto anni. Ma non aveva diciotto anni, quindi non è riuscito a vincere la competizione, ma Evgeniy è stato notato dalla comunità di sviluppatori locali. Ha incontrato Sergei Milekhin, che in quel momento stava organizzando conferenze a Vladivostok nell'ambito del Google Developer Fest. “Mi ha invitato lì, sono venuto, ho ascoltato, mi è piaciuto. L’anno successivo sono venuto di nuovo, ho conosciuto sempre di più la gente, ho comunicato”.

Andrey Sitnik della comunità VLDC ha iniziato ad aiutare Evgeniy con i suoi progetti web. “Avevo bisogno di creare un'applicazione web socket multi-thread. Ho pensato a lungo a come farlo in PHP e mi sono rivolto ad Andrey. Mi ha detto: “prendi node.js, i pacchetti npm che sono su Internet e non romperti la testa. E in generale, spostare l’open source è interessante”. Quindi ho migliorato il mio inglese, ho iniziato a leggere la documentazione e a pubblicare progetti su GitHub.”

Nel 2018, Evgeniy ha già tenuto presentazioni al Google Dev Fest, parlando degli sviluppi nel campo delle interfacce accessibili, delle protesi degli arti superiori, dello sviluppo di interfacce neurali e dei sistemi di controllo degli accessi senza contatto. Ora Evgeniy è al secondo anno di laurea in Ingegneria del software, ma l'ha già completata con successo e sta finendo il suo lavoro finale.

“Mi è stato detto di implementare la struttura dei dati in una tabella hash. Questa è una cosa standard che viene data a tutti all'università. Mi sono ritrovato con 12mila righe di codice e un mucchio di stampelle", dice Evgeniy ridendo, "Ho creato una tabella hash e la sua struttura modificata in JavaScript per leggere i dati più velocemente. E l'insegnante dice: "Ho bisogno che tu scriva ciò che è più facile per me in modo che possa valutarlo". Era molto fastidioso."

I progetti personali di Evgeniy sembrano molto più interessanti. Il primo di questi è lo sviluppo di standard web per le persone con disabilità fisiche. Vuole creare una risorsa che fornisca tecnologia assistiva pronta all'uso in modo che le persone con disabilità visive possano usarla facilmente senza la preoccupazione di perdere alcune informazioni. Evgeniy conosce bene questo problema, perché lui stesso ha perso la vista.

ferita

“Ero un adolescente normale, con tutte le mie membra a posto. Nel 2012 mi sono fatto esplodere. Sono uscito a fare una passeggiata con un amico, ho preso una bombola per strada ed è esplosa tra le mie mani. La mia mano destra è stata strappata, la mia mano sinistra è rimasta paralizzata, la mia vista è stata danneggiata e il mio udito è stato compromesso. Per sei mesi sono rimasto sdraiato sui tavoli operatori.

La mano sinistra è stata assemblata in parti, sono state installate piastre e ferri da maglia. Dopo cinque mesi ho potuto lavorare per lei.

Dopo l'infortunio non riuscivo più a vedere nulla. Ma i medici sono riusciti a ripristinare la percezione della luce. Del mio occhio non era rimasto altro che la conchiglia. Tutto all'interno è stato sostituito: i corpi vitrei, le lenti. Tutto è possibile."

Nel 2013, Zhenya è andata a studiare in una scuola correzionale per bambini con disabilità visive. Quell'insegnante di informatica, che era completamente cieco, gli insegnò di nuovo a usare il computer. A tale scopo vengono utilizzati programmi speciali: screen reader. Accedono alle API del sistema operativo per ottenere l'accesso all'interfaccia e modificano leggermente il modo in cui vengono controllati.

Zhenya si definisce un appassionato utente Linux; usa Debian. Usando la tastiera, naviga attraverso gli elementi dell'interfaccia e un sintetizzatore vocale dà voce a ciò che sta accadendo.

“Adesso sentirai solo spazio”, mi dice prima di accendere il programma.

Sembra un codice o un chiacchiericcio alieno, ma in realtà è normale russo o inglese, solo che il sintetizzatore parla a una velocità incredibile per un orecchio inesperto.

“Non è stato difficile impararlo. All'inizio lavoravo su Windows e utilizzavo lo screen reader Jaws. L’ho usato e ho pensato: “Signore, come puoi lavorare a una velocità così bassa”. Ho ingrandito e mi sono reso conto che le orecchie erano arricciate a forma di tubo. L'ho restituito e gradualmente ho iniziato ad aumentarlo del 5-10% ogni settimana. Ho accelerato il sintetizzatore fino a cento parole, poi anche di più, e ancora e ancora. Adesso parla mille parole al minuto”.

Zhenya scrive in un normale editor di testo: Gedit o Nano. Copia i sorgenti da Github, avvia lo screen reader e ascolta il codice. Per garantire che possa essere facilmente letto e compreso da altri sviluppatori, utilizza linter e configurazioni ovunque. Ma Zhenya non può utilizzare gli ambienti di sviluppo perché sono inaccessibili ai non vedenti a causa della loro implementazione.

“Sono realizzati in modo tale che la loro finestra è determinata dal sistema e tutto ciò che si trova all'interno della finestra non viene visto dallo screen reader perché non può accedervi. Ora ho contattato direttamente JetBrains per provare ad apportare alcune patch ai loro ambienti. Mi hanno inviato i sorgenti di PyCharm. L'IDE è implementato su Intellij Idea, quindi tutte le modifiche possono essere applicate sia lì che lì."

Un altro ostacolo è la mancanza di aderenza agli standard web comuni. Ad esempio, vediamo una grande intestazione su una pagina. Molti sviluppatori lo implementano utilizzando un tag span per restringere il carattere alla dimensione desiderata e alla fine sembra a posto. Ma poiché il testo non è un titolo per il sistema, lo screen reader non lo riconosce come elemento del menu e non consente l'interazione.

Zhenya utilizza facilmente la versione mobile di VKontakte, ma evita Facebook: “VK è conveniente per me perché ha un elenco separato di menu di navigazione. Ha elementi e titoli che per me rappresentano la divisione semantica della pagina. Ad esempio, l'intestazione di primo livello in cui è indicato il mio nickname: so che questo è il titolo della pagina. So che l'intestazione "messaggi" divide la pagina e sotto c'è un elenco di dialoghi.

Facebook promuove l'accessibilità, ma in realtà è tutto così brutto che è impossibile capirci qualcosa. Lo apro e il programma inizia a bloccarsi, la pagina è terribilmente lenta, tutto salta per me. Ci sono tutti i pulsanti ovunque e mi chiedo "come faccio a lavorare con questo?!" Lo userò solo se finisco il mio cliente o collego una terza parte."

ricerca

Zhenya vive a Vladivostok in un normale dormitorio universitario. C'è un bagno in camera, due armadi, due letti, due tavoli, due scaffali, un frigorifero. Nessun gadget particolare, ma secondo lui non servono. “Il problema della vista non significa che non sarò in grado di camminare o che non troverò una strada. Ma potrei e sarei felice di dotarmi di una casa intelligente se avessi i materiali di consumo. Semplicemente non ho i soldi per acquistare i componenti. Per uno studente spendere cinquemila dollari di retta solo per prenderla in giro è molto poco redditizio”.

Zhenya vive con una ragazza, aiuta in molti modi in casa: “spargere i panini, versare il tè, fare il bucato. Pertanto, ho avuto più tempo per rilassarmi e fare le cose che amo”.

Ad esempio, Zhenya ha un gruppo musicale in cui suona la chitarra elettrica. Ha imparato anche dopo l'infortunio. Nel 2016 ha trascorso tre mesi in un centro di riabilitazione, dove ha chiesto a un insegnante di aiutarlo con la chitarra. All'inizio giocavo con la cucitura di una maglietta rivoltata. Poi ho costruito un mediatore.

“Ho preso una benda per rafforzare la mano, che viene usata, ad esempio, dai karateka, l'ho tagliata nei punti in cui le dita sono separate e l'ho tirata sull'avambraccio. Lì c'è un cuscinetto di schiuma che protegge il pennello dai danni: ho cucito un plettro che mio fratello ha tagliato per me da una spatola di plastica. Si è rivelata una lingua di plastica molto lunga, che uso per suonare le corde, pizzicando e strimpellando."

L'esplosione gli ha fatto saltare i timpani, quindi Zhenya non può sentire le basse frequenze. La sua chitarra non ha la sesta corda (la più bassa) e la quinta è accordata diversamente. Suona principalmente parti soliste.

Ma le attività principali restano lo sviluppo e la ricerca.

Mano protesica

Com'è ascoltare un codice a 1000 parole al minuto

Uno dei progetti è lo sviluppo di una protesi dell'arto superiore con un sistema di controllo intelligente. Nel 2016, Zhenya si è rivolto alla persona che stava sviluppando la protesi e ha iniziato ad aiutarlo con i test. Nel 2017 hanno preso parte all'hackathon Neurostart. In un team di tre persone, Zhenya ha programmato controller di basso livello. Altri due hanno costruito i modelli stessi e hanno insegnato le reti neurali per il sistema di controllo.

Ora Zhenya ha rilevato l'intera parte software del progetto. Utilizza il Myo Armband per leggere i potenziali muscolari, costruisce maschere basate su di essi e applica sopra modelli di rete neurale per riconoscere i gesti: questo è ciò su cui è costruito il sistema di controllo.

“Il braccialetto ha otto sensori. Trasmettono potenziali modifiche a qualsiasi dispositivo di input. Ho svuotato il loro SDK con le mie mani, ho decompilato tutto ciò che era necessario e ho scritto la mia libreria in Python per leggere i dati. Naturalmente non ci sono dati sufficienti. Anche se mettessi un miliardo di sensori sulla mia pelle, non basterebbe comunque. La pelle si muove sui muscoli e i dati si confondono”.

In futuro, Zhenya prevede di installare diversi sensori sotto la pelle e i muscoli. Ci proverebbe adesso, ma in Russia tali operazioni sono vietate. Se un chirurgo impianta apparecchiature non certificate sotto la pelle di una persona, perderà il diploma. Tuttavia, Zhenya gli ha cucito in mano un sensore: un tag RFID, come nelle chiavi elettroniche, per aprire un citofono o qualsiasi serratura a cui sarà collegata la chiave.

occhio artificiale

Insieme a Bogdan Shcheglov, biochimico e biofisico, Zhenya sta lavorando a un prototipo di occhio artificiale. Bogdan è impegnato nella modellazione 3D del bulbo oculare e collega tutti i microcircuiti in un modello tridimensionale con il nervo ottico, Zhenya sta costruendo un modello matematico.

“Abbiamo studiato moltissima letteratura sugli analoghi esistenti, sulle tecnologie che erano sul mercato e lo sono ora, e ci siamo resi conto che il riconoscimento delle immagini non è rilevante. Ma abbiamo appreso che in precedenza era stata creata una matrice per registrare i fotoni e la loro energia. Abbiamo deciso di sviluppare una matrice simile di dimensioni ridotte, che fosse in grado di registrare almeno un insieme minimo di fotoni e di costruire un impulso elettrico sulla base di essi. In questo modo eliminiamo lo strato intermedio di un’immagine chiara e il suo riconoscimento: lavoriamo semplicemente direttamente”.

Il risultato sarà una visione che non è proprio nel senso classico. Ma come dice Zhenya, il resto del nervo ottico deve percepire la fornitura di impulsi elettrici allo stesso modo di un occhio reale. Nel 2018 hanno discusso del progetto con il rettore della Marine Technical University, Gleb Turishchin, e con la mentore di Skolkovo Olga Velichko. Hanno confermato che questo problema può essere risolto utilizzando tecnologie già esistenti nel mondo.

“Ma questo compito è ancora più difficile dello sviluppo di protesi. Non possiamo nemmeno condurre un esperimento sulle rane per verificare quanto bene la retina genera impulsi, come dipendono dalla diversa luce, quale zona ne genera di più e quale di meno. Abbiamo bisogno di finanziamenti che ci permettano di affittare un laboratorio e assumere persone per scomporre i compiti e ridurre le scadenze. Più il costo di tutti i materiali necessari. Di regola, tutto si riduce al denaro”.

burocrazia

Bogdan e Zhenya hanno chiesto finanziamenti a Skolkovo ma sono stati rifiutati: lì vanno solo i prodotti finiti con potenziale commerciale e non i progetti di ricerca nella fase nascente.

Nonostante tutta l’originalità della storia di Zhenya, nonostante le sue capacità e i suoi successi stimolanti, si rimane sorpresi dalla strana sfortuna burocratica. È particolarmente fastidioso sentirlo sullo sfondo delle notizie. Ecco un altro "prodotto di cui le persone hanno bisogno" (un'applicazione fotografica, un'ottimizzazione pubblicitaria o nuovi tipi di chat) che riceve milioni di dollari in entrate e investimenti. Ma uno sconosciuto appassionato non sa cosa farsene delle sue idee.

Quest'anno Zhenya ha vinto uno studio gratuito di sei mesi in Austria nell'ambito di un programma di partenariato tra università, ma non può andarci. Per confermare il visto, sono necessarie garanzie che abbia i soldi per l'alloggio e la vita a Salisburgo.

"Il ricorso ai fondi non ha prodotto risultati, perché i finanziamenti vengono forniti solo per programmi di diploma completi", afferma Zhenya, "Nemmeno il ricorso all'Università di Salisburgo stessa: l'università non ha dormitori propri e non può aiutarci con l'alloggio.

Ho scritto a dieci fondi e solo tre o quattro mi hanno risposto. Inoltre, hanno risposto che la mia laurea scientifica non era adatta a loro: avevano bisogno di master e superiori. I miei risultati scientifici negli studi universitari non sono apprezzati da loro. Se studi in un'università locale, hai una laurea e sei impegnato nella ricerca tecnica, puoi presentare domanda all'interno dell'università. Ma per una persona proveniente dall’estero, sfortunatamente, non hanno questo.

Ho contattato circa lo stesso numero di fondi russi. A Skolkovo mi hanno detto: scusa, ma lavoriamo solo con i maestri. Altre fondazioni mi hanno detto che non hanno finanziamenti per sei mesi, o lavorano solo con programmi di diploma, o non finanziano singoli individui. E le fondazioni Prokhorov e Potanin non mi hanno nemmeno risposto.

Ho ricevuto una lettera da Yandex in cui mi informano che sono impegnati in una grande beneficenza e che la società attualmente non ha finanziamenti, ma mi augurano tutto il meglio.

Ho accettato anche un finanziamento mirato per contratto, che mi avrebbe permesso di andare a studiare e di conseguenza avrei portato qualcosa per l'azienda. Ma tutto si ferma a un basso livello di comunicazione. Capisco di cosa si tratta. Le persone che lavorano sulle telefonate e sulla posta lavorano semplicemente in base ai documenti. Vedono che è arrivata una domanda, potrebbe anche essere bello. Ma scriveranno: scusate, no, perché o il periodo per la domanda è scaduto oppure non avete i requisiti per il vostro status. Ma non ho l’opportunità di arrivare a qualcosa di più alto rispetto ai proprietari del fondo, semplicemente non ho contatti del genere”.

Ma i post sul problema di Zhenya hanno iniziato a diffondersi rapidamente sui social network. Nei primi giorni abbiamo raccolto circa 50 rubli dei 000 euro richiesti. Non c'è molto tempo per prepararsi, ma molte persone stanno già scrivendo a Zhenya per chiedere supporto. Forse tutto funzionerà.

Sarei felice di concludere questo lungo testo sul ritorno dell'eroe dall'Austria con una nuova e potente esperienza. Oppure ricevere una borsa di studio per uno dei progetti e una foto del nuovo laboratorio. Ma il testo si ferma in una stanza del dormitorio, dove ci sono due armadi, due letti, due tavoli, due scaffali, un frigorifero.

Mi sembra che siano necessarie grandi comunità professionali che si aiutino a vicenda. La moglie di Nekrasov ha bisogno di soldi, contatti utili, idee, consigli, qualsiasi cosa. Aumentiamo il nostro karma.

I contatti di Zhenya e altre figure importantie-mail: [email protected]
Телефон: +7-914-968-93-21
Telegram e WhatsApp: +7-999-057-85-48
Github: github.com/Ravino
vk.com: vk.com/ravino_doul

Dettagli per il trasferimento di fondi:
Numero della carta: 4276 5000 3572 4382 o numero di telefono +7-914-968-93-21
Portafoglio Yandex tramite numero di telefono +7-914-968-93-21

Destinatario: Nekrasov Evgenij

Fonte: habr.com

Aggiungi un commento