Kuidas on kuulata koodi kiirusel 1000 sÔna minutis.

VÀikse traagika ja suurte vÔitude lugu vÀga hea arendaja, kes vajab abi

Kuidas on kuulata koodi kiirusel 1000 sÔna minutis.

Kaug-Ida FöderaalĂŒlikoolis on projektitegevuse keskus, kus magistrandid ja bakalaureused leiavad endale inseneriprojekte, millel on juba kliendid, raha ja perspektiiv. Seal korraldatakse ka loenguid ja intensiivkursusi. Kogenud spetsialistid rÀÀgivad kaasaegsetest ja rakenduslikest asjadest.

Üks intensiivkursustest oli pĂŒhendatud Docker konteineriseerimissĂŒsteemi rakendamisele ja orkestreerimisele. Sellele tulid magistrandid ja aspirandid rakendusmatemaatika, inseneritehnika, tarkvaraarenduse ja muude tehniliste valdkondade erialadelt.

Koolitaja oli noormees tumedate prillidega, stiilse soenguga, salliga, suhtlemisalti ja liiga enesekindel — eriti 21-aastase teisekursuse tudengi kohta. Tema nimi on Jevgeni Nekrasov, ta astus DVFUsse alles kaks aastat tagasi.

Vunderkind

„Jah, nad olid vanemad ja jĂ€lgitumad, kuid ei saa öelda, et kogenumad. Lisaks sellele viisin ma aeg-ajalt oma rĂŒhmatutele loenguid lĂ€bi meie Ă”petaja asemel. Teatud hetkel saime aru, et rohkem ei suuda tema mulle Objektorienteeritud Programmeerimise kohta anda, seetĂ”ttu loengutsin perioodiliselt tema eest OOP, kaasaegse arenduse, GitHubi, versioonihaldussĂŒsteemide rakendamise kohta.“

Kuidas on kuulata koodi kiirusel 1000 sÔna minutis.

Jevgeni oskab programmeerida Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C ja Assembleris. „JavaScripti tunnen paremini, teised on tasemel vĂ”i kaks madalamal. Kuid ma suudan Rustis vĂ”i C++-s kontrolleri programmeerida tunni jooksul. Ei Ă”ppinud neid keeli eesmĂ€rgipĂ€raselt. Õppisin neid ĂŒlesannete raames, mis mulle pandi. Ma suudan igasse projekti sisse elada, Ă”ppides dokumentatsiooni ja kĂ€siraamatuid. Ma tean keelte sĂŒntakse ja sea, millist kasutada, ei oma erilist tĂ€htsust. Samuti raamistike ja teekide puhul — piisab dokumentatsiooni lugemisest ja ma mĂ”istan, kuidas see töötab. KĂ”ike mÀÀrab ainevaldkond ja ĂŒlesanne.“

Jevgeni on programmeerimist intensiivselt Ă”ppinud alates 2013. aastast. Tema informaatika Ă”petaja, kes oli tĂ€ielikult pime, tutvustas talle arvutiteadusi. Tee algas veebist — HTML, JavaScript, PHP.

„Mul on lihtsalt huvitav. Ma magan vĂ€he — olen pidevalt millegagi tegev, loen ja Ă”pin midagi“.

2015. aastal kandideeris Jevgeni konkursile „Umlnik”, mis toetab tehnoloogilisi projekte noortelt teadlastelt alates kaheksateistkĂŒmnest eluaastast. Kuid tal ei olnud siis veel kaheksateist, seega konkursi vĂ”itmine ei Ă”nnestunud — siiski mĂ€rkis Jevgenit kohalik arendajate kogukond. Ta tutvus Sergei Milehiniga, kes sel hetkel korraldas Vladivostokis konverentse Google Developer Fest raames. „Ta kutsus mind sinna, ma tulin, kuulasin, see meeldis mulle. JĂ€rgmisel aastal tulin uuesti, tutvusin jĂ€rjest enam inimestega, suhtlesin.”

Andrei Sitnik VLDC kogukonnast hakkas Jevgenile tema veebiprojektides abi pakkuma. „Mul oli vajalik luua mitme lĂ”imega rakendus veebisisendi töötlemiseks. MĂ”tlesin vĂ€ga kaua, kuidas seda PHP-s teha, ja pöördusin Andrei poole. Ta ĂŒtles mulle, et „vĂ”ta node.js, npm paketid, mis internetis saadaval on, ja Ă€ra uuri liiga palju. Ja ĂŒldiselt, avatud allika edendamine on Ă€ge”. Seega Ă”ppisin ma inglise keelt, hakkasin lugema dokumentatsiooni ja postitasin projekte GitHubi.”

2018. aastal esines Jevgeni juba Google Dev Festil oma ettekannetega, rÀÀkides töödest juurdepÀÀsetavate liideste, ĂŒlajĂ€semete proteeside, neuroliideste ja kontaktivaba juurdepÀÀsusĂŒsteemide valdkonnas. Praegu Ă”pib Jevgeni teisel kursusel bakalaureuseĂ”ppes „Tarkvaraarendus”, kuid on juba edukalt selle lĂ”petanud ja kirjutab lĂ”putööd.

„Mulle öeldi, et tuleb ellu viia andmestruktuur rĂ€sitabelis. See on standardne asi, mida kĂ”ik ĂŒlikoolis Ă”pivad. Mul Ă”nnestus kirjutada 12 tuhat rida koodi ja hunnik kiipe,” ĂŒtleb Jevgeni naerdes, „Ma ehitasin rĂ€sitabeli ja selle muudetud struktuuri JavaScriptis, et andmeid kiiremini lugeda. Ja Ă”ppejĂ”ud ĂŒtleb: „mulle on oluline, et sa kirjutaksid seda viisil, mis on mulle lihtsam — et ma saaksin seda hinnata”. See oli vĂ€ga kahju.”

Jevgeni isiklikud projektid nĂ€evad palju huvitavamad vĂ€lja. Esimene neist on veebistandardite vĂ€ljatöötamine fĂŒĂŒsiliste piirangutega inimestele. Ta tahab luua ressursi, mis sisaldab toetavat tehnoloogiat vĂ€lja pakitud kujul, et nĂ€gemispuudega inimesed saaksid neid lihtsalt kasutada ja ei peaks kahtlema, et mĂ”ni teave jÀÀb neile kĂ€ttesaamatuks. Jevgeni tunneb seda probleemi hĂ€sti, sest ta on ise nĂ€gemise kaotanud.

Trauma

«Varem olin tavaline teismeline, kellel olid kÔik jÀsemed kohal. 2012. aastal puutusin plahvatuseni. LÀksin sÔbraga jalutama, korjasin tÀnavalt mingi pudeli ja see plahvatas mu kÀte vahel. Mul lÔhkus parema kÀe randme, vigastas vasakut, kahjustas nÀgemist ja vÀhendas kuulmist. Pool aastat veetsin ma lihtsalt operatsioonilaual.

Vasak kÀsi korraldati osade kaupa, pandi plaadid ja sisenpinnad. Viie kuu pÀrast suutsin selle tööle panna.

PĂ€rast traumat ei nĂ€inud ma ĂŒldse midagi. Kuid arstidel Ă”nnestus taastada valguse tajumine. Minu silmast ei jÀÀnud enam midagi peale kesta. KĂ”ik sees oli vahetatud — klaaskehad, objektiivid. KĂ”ik, mida oli vĂ”imalik.

2013. aastal lĂ€ks Ćœenja Ă”ppima kohandatud kooli nĂ€gemishĂ€iretega lastele. InformatikaĂ”petaja, kes oli tĂ€iesti pime, Ă”petas teda arvutit uuesti kasutama. Selleks kasutatakse spetsiaalseid programme — ekraanilugejad. Need pöörduvad operatsioonisĂŒsteemide API-de poole, et pÀÀseda liidesele ja veidi muuta juhtimist.

Ćœenja nimetab end suurimaks linuxi kasutajaks, ta kasutab Debianit. Klaviatuuri abil liikudes liidese elementide vahel, rÀÀgib kĂ”nesĂŒntesaator, mis toimub.

«Praegu kuuled sa lihtsalt kosmost», — ĂŒtleb ta mulle enne programmi kĂ€ivitamist.

See kĂ”lab nagu ĆĄiffer vĂ”i tulnukate jutustus, aga tegelikult on see lihtsalt tavaline vene vĂ”i inglise keel, lihtsalt kĂ”nesĂŒntesaator rÀÀgib uskumatult kiirelt, mis on harjumatu kuulmiseks.

«Selle Ă”ppimine ei olnud keeruline. Alguses töötasin Windowsis ja kasutasin ekraanilugejat Jaws. Kasutasin ja mĂ”tlesin, 'kuidas saab sellise madala kiirusel töötada'. Suurendasin kiirust ja sain aru, et mu kĂ”rvad keeravad end kokku. Tagasi vĂ€hendasin ja hakkasin igal nĂ€dalal 5-10% vĂ”rra kiirusest ĂŒles seadma. Kiirus tĂ”usis 100 sĂ”nale, siis veel rohkem, veel ja veel. NĂŒĂŒd rÀÀgib ta mulle tuhat sĂ”na minutis».

Ćœenja kirjutab tavalises tekstiredaktoris — Gedit vĂ”i Nano. Kopeerib GitHubist lĂ€htekoodid, kĂ€ivitab ekraanilugeja ja kuulab koodi. Et teised arendajad saaksid selle probleemideta lugeda ja mĂ”ista, kasutab ta laialdaselt lintide ja konfiguratsioonide abil. Kuid Ćœenja ei saa kasutada arenduskeskkondi, sest need ei ole nĂ€gemispuudega inimestele kergesti kĂ€tte saadavad.

„Need on loodud nii, et nende akna mÀÀrab sĂŒsteem ning kĂ”ik, mis akna sees on, jÀÀb ekraanilugejale nĂ€htamatuks, kuna see ei saa juurde pÀÀseda. Ma olen nĂŒĂŒd otseselt JetBrainsiga ĂŒhendust vĂ”tnud, et proovida nende keskkondadesse mĂ”ned plaastrid tuua. Nad saatsid mulle PyCharni allikaid. IDE on rakendatud Intellij Ideale, seega saab kĂ”iki muudatusi rakendada nii seal kui ka seal.”

Teine takistus on veebistandardite mittejĂ€rgimine. NĂ€iteks nĂ€eme lehe pealkirja. Paljud arendajad rakendavad seda span-tagi abil, et tĂ”sta fondi vajalikku suurusesse, ja tulemus nĂ€eb normaalselt vĂ€lja. Aga kuna tekst ei ole sĂŒsteemi jaoks pealkiri, ei tunnista ekraanilugeja seda menĂŒĂŒelemendina ja ei luba sellega suhelda.

Ćœenja kasutab mugavalt Vkontakte mobiiliversiooni, kuid vĂ€ldib Facebooki: „VK on mulle mugav, kuna seal on eraldi navigeerimisnimekiri. Selles on elemendid ja pealkirjad, mis tĂ€hendavad minu jaoks lehe semantilist jagunemist. NĂ€iteks esmaklassi pealkiri, kus on minu hĂŒĂŒdnimi — ma tean, et see on lehe pealkiri. Tean, et „sĂ”numite” pealkiri jagab lehte ja allpool on dialoogide nimekiri.

Facebook propageerib ligipÀÀsetavust, kuid tegelikkuses on asi nii halb, et midagi pole vĂ”imalik mĂ”ista. Ma avasin selle — ja programm hakkab hanguma, leht reageerib kohutavalt aeglaselt, minu kĂ”ik hĂŒppab. Igal pool on ainult nuppe ja ma olen: „kuidas sellega ĂŒldse töötada?!” Kasutan seda vaid juhul, kui suudan oma kliendi Ă€ra viimistleda vĂ”i ĂŒhendada kolmanda osapoole.”

Uuringud

Ćœenja elab Vladivostokis tavalisest ĂŒlikooli ĂŒhikas. Toas on vannituba, kaks kappi, kaks voodit, kaks lauda, kaks riiulit, kĂŒlmik. Erilisi vidinaid ei ole, kuid tema sĂ”nul — need polegi vajalikud. „NĂ€gemishĂ€ired ei tĂ€henda, et ma ei saa ringi liikuda vĂ”i ei leia teed. Aga vĂ”ib-olla oleksin hea meelega oma nutikodu seadnud ĂŒles, kui mul oleks tarvikud. Mul pole lihtsalt raha komponentide ostmiseks. ÜliĂ”pilase jaoks on viie tuhande kulutamine plaadile, et seda nuputada — see on vĂ€ga kahjumlik.”

Ćœenja elab tĂŒdrukuga, kes aitab kodustes asjades: „mugavad vĂ”ileivad teha, teed valada, pesu pesta. SeetĂ”ttu on mul rohkem aega puhkamiseks ja lemmiktegevustega tegelemiseks.”

NÀiteks, Pavel'il on muusikagrupp, kus ta mÀngib elektrikitarril. Ta Ôppis seda samuti pÀrast traumat. 2016. aastal veetis ta kolm kuud rehabilitatsioonikeskuses, kus palus kitarriÔpetajalt abi. Alguses mÀngis ta pöidlahoidjaga, mis oli pööratud vÀljapoole. SeejÀrel ehitas ta vÀlja plektrumi.

«VĂ”tsin randme toestamiseks bindaĆŸi, mida kasutavad nĂ€iteks karateka, lĂ”ikasin sĂ”rmede vahelt ja tĂ”mbasin selle eelkĂ€e ĂŒmber. Seal on vahtpolster, mis kaitseb randme vigastuste eest — sellele kinnitasin plektrumi, mille mu vend plastikust spaatlist lĂ”ikas. Tulemusena sain pikka plastikust keelt, millega mĂ€ngin nööridel — nii plokkide kui ka löökide kaudu.»

Plahvatus purustas kÔrvakiled, seetÔttu Pavel ei kuule madalaid helisid. Tema kitarril puudub kuues (madalaim) nöör, samas kui viies on hÀÀlestatud teistmoodi. Ta mÀngib peamiselt sooloosi.

Kuid peamised tegevused on endiselt arendus ja teadustöö.

KĂ€e protees

Kuidas on kuulata koodi kiirusel 1000 sÔna minutis.

Üks projektidest on ĂŒlajĂ€semete proteesi arendamine nutika juhtimissĂŒsteemiga. 2016. aastal pöördus Pavel inimese poole, kes tegi proteesi arendustööd, ja hakkas aidata teda testimisel. 2017. aastal osalesid nad hackathonil „NeuroStart”. Kolme liikmega meeskonnas programmeeris Pavel madalama taseme kontrollerid. Kahel teisel oli ĂŒlesanne disainida mudelid ja treenida juhtimissĂŒsteemi jaoks nĂ€rvivĂ”rke.

TĂ€naseks on Pavel kogu projekti tarkvara osa enda peale vĂ”tnud. Ta kasutab Myo Armband kĂ€evĂ”ru lihaspotentsiaalide lugemiseks, ehitab selle pĂ”hjal maske ja rakendab nende peal nĂ€rvivĂ”rke ĆŸestide tuvastamiseks — sellel pĂ”hineb juhtimissĂŒsteem.

«KÀevÔrus on kaheksa andurit. Need edastavad potentsiaalide muutused igasugustele sisendseadmetele. Ma lÔikasin ise nende SDK-d, dekompileerisin kÔik vajalikud osad ja kirjutasin oma raamistikku Pythonis andmete lugemiseks. Andmeid on loomulikult puudu. Isegi kui riputaksin miljard andurit nahale, ei piisa sellest. Nahk liigub lihaste kohal ja andmed segunevad.»

Tulevikus plaanib Zhenya kinnitada enda naha alla ja lihastesse mitu andurit. Ta oleks proovinud seda juba praegu, kuid Venemaal on sellised operatsioonid keelatud. Kui kirurg istutab inimese naha alla sertifitseerimata seadmeid, kaotab ta oma arstitunnistuse. Sellegipoolest on Zhenya Ă”mmelnud enda kĂ€e sisse ĂŒhe anduri — RFID-sildi, nagu elektroonilistes vĂ”tmetes, et avada fonolukku vĂ”i mis tahes lukku, millele see vĂ”ti on seotud.

Tehisema

Koos Bogdan Shchegloviga, biokeemiku ja bifĂŒĂŒsikuga, töötab Zhenya tehisema prototĂŒĂŒbi kallal. Bogdan tegeleb silmamuna 3D-modelleerimise ja kĂ”ikide mikroskeemide ĂŒhendamisega kolmemÔÔtmelises mudelis nĂ€gemisnĂ€rviga, Zhenya koostab matemaatilist mudelit.

«Oleme uurinud tohutult kirjandust olemasolevate analoogide kohta, tehnoloogiate, mis on turul olnud ja on praegu, ja mĂ”istsime, et piltide tuvastamine ei ole asjakohane. Selle asemel saime teada, et varem oli loodud matriit fotonite ja nende energia registreerimiseks. Otsustasime arendada sellist matriiti vĂ€iksemas formaat, mis oleks vĂ”imeline registreerima vĂ€hemalt minimaalset kogust fotoneid ja nende pĂ”hjal genereerima elektrilise impulsi. Nii vĂ€ldime me selge pildi ja selle tuvastamise vahelises vahekihis — me lihtsalt töötame otse.»

Tulemusena saadakse nĂ€gemine, mis ei vasta klassikalisele arusaamale. Kuid nagu ĂŒtleb Zhenya, peab nĂ€gemisnĂ€rvi jÀÀnus tajuma elektriliste impulsside sissetulekut samamoodi nagu tĂ”eliselt silmast. 2018. aastal arutati projekti Morsea TehnikaĂŒlikooli rektoriga Gleb Turishiniga ja Skolkovo mentori Olga Velichko'ga. Need kinnitasid, et selle ĂŒlesande saab lahendada tehnoloogiate abil, mis on maailmas juba olemas.

«Kuid see ĂŒlesanne on veelgi keerulisem kui proteeside arendamine. Me ei saa isegi lĂ€bi viia katseid konnadega, et kontrollida, kui kvaliteetselt vĂ”rkkest genereerib impulsse, kuidas need sĂ”ltuvad erinevast valgusest, milline piirkond genereerib rohkem ja milline vĂ€hem. On vaja rahastamist, mis vĂ”imaldaks meilĂŒĂŒrida laboratoorium ja palgata inimesi, et dekomponeerida ĂŒlesandeid ja lĂŒhendada tĂ€htaegu. Lisaks kĂ”ik vajalikud materjalid. Üldiselt sĂ”ltub kĂ”ik tavaliselt rahastusest.»

BĂŒrokraatia

Bogdan ja Zhenya pöördusid Skolkovo poole rahastamise saamiseks, kuid said eitava vastuse — sinna pÀÀsevad ainult valmis tooted kaubandusliku potentsiaaliga, mitte alles alustavad teadusprojektid.

Kuna Zhenya lugu on erakordne, tema oskused ja inspireerivad edusammud — hĂ€mmastab kummaline bĂŒrokraatlik ebaĂ”nn. See on eriti frustreeriv kuulda uudiste taustal. Siin on jĂ€rjekordne "inimestele vajalik toode" (foto rakendus, reklaami optimeerimine vĂ”i uued vestlusplatvormid), mis teenib miljoneid dollareid tulu ja investeeringuid. Samas ei tea tavaline entusiast, mida oma ideedega peale hakata.

Sel aastal vĂ”itis Zhenya tasuta kuuekuulise koolituse Austrias ĂŒlikoolide partnerprogrammi raames — kuid ei saa sinna reisida. Viisa kinnitamiseks on vaja garantiid, et tal on raha eluks ja majutuseks Salzburgis.

„Fondide poole pöördumine ei andnud tulemusi, kuna rahastamine toimub ainult tĂ€iendĂ”ppe programmidel,” ĂŒtleb Zhenya, „Ka Salzburgi ĂŒlikooli pöördumine ei aidanud — ĂŒlikoolil ei ole oma ĂŒhiselamuid ja nad ei saa meid elamise osas aidata.

Kirjutasin kĂŒmnele fondile ja neist vastas ainult kolm vĂ”i neli. Ja vastati, et minu teaduslik kraad ei sobi neile — neile on vajalikud magistrid ja kĂ”rgemad. Minu teadustööd bakalaureuseĂ”ppes ei arvestata. Kui Ă”pid kohalikus ĂŒlikoolis, oled bakalaureus ja tegeled tehniliste uuringutega, siis ĂŒlikooli kaudu saad dokumendid esitada. Kahjuks ei ole vĂ€lismaalastele sellega seal midagi.

Olen pöördunud ka sama palju Vene fonde. Skolkovo ĂŒtles mulle: vabandust, kuid me töötame ainult magistritega. Teistes fondides öeldi, et neil ei ole rahastamist pooleks aastaks, vĂ”i nad töötavad samuti vaid diplomaadi programmide raames, vĂ”i nad ei rahasta fĂŒĂŒsilisi isikuid. Prokhrovi ja Potanini fondidest ei vastanud mulle isegi keegi.

Yandexilt tuli mulle kiri, et nad tegelevad suure heategevusega ja firmal ei ole praegu rahastamist, kuid nad soovivad mulle kÔike head.

Olin isegi nÔus lepingulise sihifinantseerimisega, mis vÔimaldaks mul minna Ôppima, ja tagasiviidates tooksin midagi ettevÔtte jaoks. Kuid kÔik takerdub madala kommunikatsiooni tasemele. Ma saan aru, millega see seotud on. Inimesed, kes töötavad telefonikÔnede ja e-kirjadega, teevad lihtsalt dokumente. Nad nÀevad, et taotlus on esitatud, see vÔib olla isegi suurepÀrane. Kuid nad kirjutavad: vabandust, ei, sest kas taotluse tÀhtaeg on möödas vÔi sa ei vasta staatusele. Mul ei ole vÔimalust liikuda kÔrgemale fondi omanike juurde, mul pole lihtsalt selliseid kontakte.

Kuid postitused Ćœenja probleemist hakkasid kiiresti sotsiaalmeedias levima. Esimese paari pĂ€eva jooksul koguti umbes 50 000 rubla — vajalikest 12 000 eurost. Aega kogumiseks on vĂ€he, kuid Ćœenjat kirjutavad juba paljud toetuseks. VĂ”ib-olla Ă”nnestub kĂ”ik.

Mulle tundub, et oleks tore lĂ”petada see pikk tekst kangelase naasmisega Austriast uue vĂ”imsa kogemusega. VĂ”i projekti jaoks saadud toetuse ja pildiga uuest laborist. Kuid tekst peatub ĂŒhiselamu toas, kus on kaks kappi, kaks voodit, kaks lauda, kaks riiulit, kĂŒlmkapp.

Minu arvates on suured professionaalsed kogukonnad vajalikud ĂŒksteise aitamiseks. Ćœenja Nekrasov vajab raha, kasulikke kontakte, ideid, nĂ”uandeid, kĂ”ike, mis on kasulik. TĂ”stkem oma karma.

Ćœenja kontaktid ja muud olulised numbride-mail: evgeniy@nekrasov.pw
Telefon: +7-914-968-93-21
Telegram ja WhatsApp: +7-999-057-85-48
github: github.com/Ravino
vk.com: vk.com/ravino_doul

Ülekande andmed:
Kaardi number: 4276 5000 3572 4382 vÔi telefoni numbri kaudu +7-914-968-93-21
Yandex rahakott telefoni numbri kaudu +7-914-968-93-21

Saaja: Nekrasov Evgeny

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster