Dakikada 1000 kelimelik kod dinlemek nasıl bir şey?

Yardıma ihtiyacı olan çok iyi bir geliştiricinin küçük bir trajedisinin ve büyük zaferlerinin hikayesi

Dakikada 1000 kelimelik kod dinlemek nasıl bir şey?

Uzak Doğu Federal Üniversitesi'nde proje faaliyetleri için bir merkez var - orada yüksek lisans ve lisans öğrencileri zaten müşterileri, parası ve beklentileri olan mühendislik projeleri buluyor. Konferanslar ve yoğun kurslar da burada düzenleniyor. Deneyimli uzmanlar modern ve uygulamalı şeyler hakkında konuşuyor.

Yoğun kurslardan biri, dağıtılmış bilgi işlem ve orkestrasyon için Docker konteynerleştirme sisteminin kullanımına ayrılmıştı. Uygulamalı matematik, mühendislik, yazılım hazırlama ve diğer teknik alanlardaki yüksek lisans ve lisansüstü öğrencileri katıldı.

Öğretmen koyu renk gözlüklü, şık saç kesimli, atkılı, girişken ve kendine fazla güvenen bir adamdı - özellikle 21 yaşında bir ikinci sınıf öğrencisi için. Adı Evgeny Nekrasov, sadece iki yıl önce FEFU'ya girdi.

Harika çocuk

“Evet, daha yaşlıydılar ve daha statüleri vardı ama daha tecrübeli olduklarını söyleyemem. Ayrıca bazen sınıf arkadaşlarıma öğretmenimiz adına ders verdim. Bir noktada bana Nesne Yönelimli Programlama hakkında daha fazla bilgi veremeyeceğini fark ettik ve zaman zaman ona OOP, modern geliştirme, GitHub ve sürüm kontrol sistemlerinin kullanımı hakkında dersler verdim."

Dakikada 1000 kelimelik kod dinlemek nasıl bir şey?

Evgeniy, Scala, Clojure, Java, JavaScript, Python, Haskell, TypeScript, PHP, Rust, C++, C ve Assembler dillerinde yazabilmektedir. “JavaScript'i daha iyi biliyorum, geri kalanı bir veya iki seviye daha düşük. Ancak aynı zamanda Rust veya C++'da bir kontrol cihazını bir saat içinde programlayabiliyorum. Bu dilleri bilerek incelemedim. Bana verilen görevler için onları inceledim. Belgeleri ve kılavuzları inceleyerek herhangi bir projeye katılabilirim. Dillerin sözdizimlerini biliyorum ve hangisinin kullanılacağı gerçekten önemli değil. Çerçeveler ve kütüphaneler için de durum aynıdır; sadece belgeleri okuyun ve nasıl çalıştığını anlayın. Her şey konu alanına ve göreve göre belirlenir.”

Evgeniy, 2013'ten beri yoğun bir şekilde programlama üzerine çalışıyor. Tamamen kör olan bir lise bilgisayar bilimi öğretmeni, onun bilgisayar bilimine ilgi duymasını sağladı. Yol web ile başladı - HTML, JavaScript, PHP.

"Ben sadece merak ediyorum. Pek uyumuyorum; sürekli bir şeylerle meşgulüm, bir şeyler okuyorum, bir şeyler çalışıyorum.”

Evgeniy, 2015 yılında on sekiz yaş üstü genç bilim adamlarının teknik projelerini desteklemek için “Umnik” yarışmasına başvurdu. Ancak on sekiz yaşında olmadığı için yarışmayı kazanamadı - ancak Evgeniy, yerel geliştirici topluluğu tarafından fark edildi. O sırada Google Developer Fest kapsamında Vladivostok'ta konferanslar düzenleyen Sergei Milekhin ile tanıştı. “Beni oraya davet etti, geldim, dinledim, hoşuma gitti. Ertesi yıl tekrar geldim, insanları daha çok tanıdım, iletişim kurdum.”

VLDC topluluğundan Andrey Sitnik, Evgeniy'e web projelerinde yardım etmeye başladı. “Çok iş parçacıklı bir web soketi uygulaması oluşturmam gerekiyordu. Bunu PHP'de nasıl yapacağımı çok uzun süre düşündüm ve Andrey'e döndüm. Bana “İnternetteki node.js, npm paketlerini alın ve kafanızı kırmayın” dedi. Ve genel olarak açık kaynağa geçmek harika bir şey." Böylece İngilizcemi geliştirdim, belgeleri okumaya ve GitHub'da projeler yayınlamaya başladım."

Evgeniy, 2018 yılında Google Dev Fest'te erişilebilir arayüzler, üst ekstremite protezleri, sinirsel arayüzlerin gelişimi ve temassız erişim kontrol sistemleri alanındaki gelişmelerden bahseden sunumlar yapmıştı. Evgeniy şu anda Yazılım Mühendisliği lisans eğitiminin ikinci yılında, ancak lisans eğitimini başarıyla tamamladı ve son çalışmasını bitirmek üzere.

“Veri yapısını bir karma tablosuna uygulamam söylendi. Bu, üniversitedeki herkese verilen standart bir şeydir. Elimde 12 bin satırlık kod ve bir sürü koltuk değneği kaldı” diyor Evgeniy gülerek, “Verileri daha hızlı okumak için JavaScript'te bir hash tablosu ve onun değiştirilmiş yapısını oluşturdum. Öğretmen de diyor ki: “Benim için kolay olanı yazmanı istiyorum ki değerlendirebileyim.” Çok sinir bozucuydu."

Evgeniy'in kişisel projeleri çok daha ilginç görünüyor. Bunlardan ilki fiziksel engelli bireylere yönelik web standartlarının geliştirilmesidir. Görme engelli kişilerin bazı bilgileri kaçırma endişesi olmadan kolayca kullanabilmesi için kullanıma hazır yardımcı teknoloji sağlayan bir kaynak yaratmak istiyor. Evgeniy bu sorunu iyi biliyor çünkü kendisi de görme yetisini kaybetmiş.

Yaralanma

“Eskiden tüm uzuvlarım yerinde olan sıradan bir gençtim. 2012 yılında kendimi havaya uçurdum. Bir arkadaşımla yürüyüşe çıktım, sokaktan bir silindir aldım ve elimde patladı. Sağ elim koptu, sol elim sakat kaldı, görüşüm bozuldu, işitme yeteneğim bozuldu. Altı ay boyunca ameliyat masalarında yattım.

Sol el parçalar halinde birleştirildi, plakalar ve örgü iğneleri takıldı. Beş ay sonra onun yanında çalışabildim.

Yaralanmanın ardından hiçbir şey göremedim. Ancak doktorlar ışık algısını yeniden sağlamayı başardılar. Gözümden kabuktan başka bir şey kalmamıştı. İçerideki her şey değiştirildi; camsı gövdeler, mercekler. Her şey mümkün."

Zhenya, 2013 yılında görme engelli çocuklara yönelik bir ıslah okulunda okumaya gitti. Tamamen kör olan bilgisayar bilimi öğretmeni ona yeniden bilgisayar kullanmayı öğretti. Bu amaçla özel programlar kullanılır - ekran okuyucular. Arayüze erişim sağlamak için işletim sistemi API'lerine erişirler ve kontrol edilme şekillerini biraz değiştirirler.

Zhenya kendisini hevesli bir Linux kullanıcısı olarak tanımlıyor; Debian kullanıyor. Klavyeyi kullanarak arayüz öğeleri arasında geziniyor ve bir konuşma sentezleyicisi olup biteni seslendiriyor.

Programı açmadan önce bana "Şimdi sadece boşluk duyacaksınız" diyor.

Bir kod veya uzaylı gevezeliğine benziyor, ancak gerçekte sıradan Rusça veya İngilizcedir, sadece sentezleyici eğitimsiz kulak için inanılmaz bir hızda konuşur.

"Bunu öğrenmek zor olmadı. İlk başta Windows üzerinde çalıştım ve Jaws ekran okuyucusunu kullandım. Kullandım ve “Tanrım, nasıl bu kadar yavaş çalışabiliyorsun” diye düşündüm. Yakınlaştırdım ve kulakların bir tüp şeklinde kıvrıldığını fark ettim. Geri iade ettim ve yavaş yavaş her hafta yüzde 5-10 artırmaya başladım. Sentezleyiciyi yüz kelimeye, sonra daha da fazlasına ve tekrar tekrar hızlandırdım. Artık dakikada bin kelime konuşuyor.”

Zhenya normal bir metin düzenleyicide yazıyor - Gedit veya Nano. Github'dan kaynakları kopyalar, ekran okuyucuyu başlatır ve kodu dinler. Diğer geliştiriciler tarafından kolayca okunabilmesini ve anlaşılabilmesini sağlamak için, baştan sona linterler ve konfigürasyonlar kullanır. Ancak Zhenya, uygulama nedeniyle körlerin erişemeyeceği için geliştirme ortamlarını kullanamıyor.

“Pencereleri sistem tarafından belirlenecek şekilde yapılmışlar ve pencerenin içindeki her şey ekran okuyucu tarafından görülemediği için görülemiyor. Şimdi ortamlarına bazı yamalar yapmayı denemek için JetBrains ile doğrudan iletişime geçtim. Bana PyCharm kaynaklarını gönderdiler. IDE, Intellij Idea'da uygulandı, böylece tüm değişiklikler hem oraya hem de oraya uygulanabilir."

Diğer bir engel ise ortak web standartlarına uymamaktır. Örneğin bir sayfada büyük bir başlık görüyoruz. Çoğu geliştirici, yazı tipini istenen boyuta sıkıştırmak için bunu yayılma etiketi kullanarak uygular ve sonuçta iyi görünür. Ancak metin sistem için bir başlık olmadığından ekran okuyucu onu bir menü öğesi olarak tanımaz ve etkileşime izin vermez.

Zhenya, VKontakte'nin mobil sürümünü kolayca kullanıyor ancak Facebook'tan kaçınıyor: “VK benim için uygun çünkü ayrı bir gezinme menüleri listesine sahip. Bana göre sayfanın anlamsal bölümü olan öğeler ve başlıklar var. Örneğin takma adımın belirtildiği ilk seviye başlığı - bunun sayfanın başlığı olduğunu biliyorum. "Mesajlar" başlığının sayfayı böldüğünü biliyorum ve aşağıda bir diyalog listesi var.

Facebook erişilebilirliği teşvik ediyor ama gerçekte her şey o kadar kötü ki hiçbir şeyi anlamak imkansız. Açıyorum - ve program donmaya başlıyor, sayfa çok yavaş, her şey benim için atlıyor. Her yerde bir sürü düğme var ve ben de "Bununla nasıl çalışacağım?" diye düşünüyorum. Bunu yalnızca müşterimin işini bitirdiğimde veya üçüncü bir tarafa bağlanırsam kullanacağım."

Araştırma

Zhenya, Vladivostok'ta sıradan bir üniversite yurdunda yaşıyor. Odada banyo, iki gardırop, iki yatak, iki masa, iki raf, buzdolabı bulunmaktadır. Özel bir alet yok ama ona göre bunlara ihtiyaç yok. “Görme engelli olmam yürüyemeyeceğim, yol bulamayacağım anlamına gelmiyor. Ancak sarf malzemelerim olsaydı kendimi mutlu bir şekilde akıllı bir evle donatabilirdim ve donatırdım. Bileşen satın alacak param yok. Bir öğrencinin sırf onu kurcalamak için harçlara beş bin harcaması çok kârsız bir şey.”

Zhenya bir kızla yaşıyor, evin her yerinde birçok yönden yardım ediyor: “sandviçleri yay, çay dök, çamaşır yıka. Bu nedenle rahatlamak ve sevdiğim şeyleri yapmak için daha fazla zamanım oldu.”

Örneğin Zhenya'nın elektro gitar çaldığı bir müzik grubu var. Sakatlıktan sonra da öğrendi. 2016 yılında üç ayını bir rehabilitasyon merkezinde geçirdi ve burada bir öğretmenden gitar konusunda kendisine yardım etmesini istedi. İlk başta bir gömleğin dikişinin ters çevrilmesiyle oynadım. Sonra bir arabulucu kurdum.

“Eli güçlendirmek için örneğin karatekaların kullandığı bandajı aldım, parmakların ayrıldığı yerleri keserek önkolun üzerine çektim. Orada fırçayı hasardan koruyan bir köpük ped var - ona kardeşimin benim için plastik bir spatuladan kestiği bir kazma diktim. Telleri çalmak ve tıngırdatmak için kullandığım çok uzun bir plastik dil olduğu ortaya çıktı.

Patlama kulak zarlarını patlattı, bu yüzden Zhenya düşük frekansları duyamıyor. Gitarının altıncı (en düşük) teli yok ve beşinci telin akordu farklı. Çoğunlukla solo parçalar çalıyor.

Ancak asıl faaliyetler geliştirme ve araştırma olarak kalıyor.

Protez kol

Dakikada 1000 kelimelik kod dinlemek nasıl bir şey?

Projelerden biri de akıllı kontrol sistemine sahip üst ekstremite protezinin geliştirilmesidir. 2016 yılında Zhenya, protezi geliştiren kişinin yanına geldi ve testlerde ona yardım etmeye başladı. 2017 yılında Neurostart hackathon'una katıldılar. Zhenya, üç kişilik bir ekiple düşük seviyeli kontrolörleri programladı. İki kişi daha modelleri kendileri tasarladı ve kontrol sistemi için sinir ağlarını öğretti.

Artık Zhenya projenin tüm yazılım kısmını devraldı. Kas potansiyellerini okumak için Myo Kol Bandını kullanıyor, bunlara dayalı maskeler oluşturuyor ve hareketleri tanımak için sinir ağı modellerini üstüne uyguluyor; kontrol sistemi bunun üzerine kurulu.

“Bileziğin sekiz sensörü var. Potansiyel değişiklikleri herhangi bir giriş cihazına iletirler. SDK'larının içini kendi ellerimle boşalttım, ihtiyaç duyulan her şeyi kaynak koda dönüştürdüm ve verileri okumak için Python'da kendi kütüphanemi yazdım. Elbette yeterli veri yok. Cildime bir milyar sensör koysam bile yine de yeterli olmayacak. Deri kasların üzerinde hareket ediyor ve veriler karışıyor.”

Gelecekte Zhenya, cilt ve kasların altına birkaç sensör yerleştirmeyi planlıyor. Şimdi deneyecekti ama Rusya'da bu tür operasyonlar yasak. Bir cerrah, sertifikasız ekipmanı kişinin derisinin altına yerleştirirse diplomasını kaybeder. Ancak Zhenya eline bir sensör dikti; dahili telefon sistemini veya anahtarın bağlanacağı herhangi bir kilidi açmak için elektronik anahtarlarda olduğu gibi bir RFID etiketi.

yapay göz

Zhenya, biyokimyacı ve biyofizikçi Bogdan Shcheglov ile birlikte yapay bir gözün prototipi üzerinde çalışıyor. Bogdan, göz küresinin 3 boyutlu modellenmesiyle ilgileniyor ve tüm mikro devreleri üç boyutlu bir modelde optik sinirle birleştiriyor, Zhenya ise matematiksel bir model oluşturuyor.

"Mevcut analoglar ve piyasada bulunan ve şu anda mevcut olan teknolojiler hakkında tonlarca literatürü inceledik ve görüntü tanımanın konuyla alakalı olmadığını fark ettik. Ancak fotonları ve enerjilerini kaydetmek için daha önce bir matris oluşturulduğunu öğrendik. En azından minimum sayıda foton kümesini kaydedebilecek ve bunlara dayanarak bir elektrik darbesi oluşturabilecek, küçültülmüş boyutta benzer bir matris geliştirmeye karar verdik. Bu şekilde net bir görüntünün ara katmanından ve onun tanınmasından kurtuluyoruz; sadece doğrudan çalışıyoruz.”

Sonuç, tam olarak klasik anlamda olmayan bir vizyon olacaktır. Ancak Zhenya'nın söylediği gibi, optik sinirin geri kalanı, elektriksel uyarıların kaynağını gerçek bir gözle aynı şekilde algılamalıdır. 2018 yılında projeyi Deniz Teknik Üniversitesi rektörü Gleb Turishchin ve Skolkovo'nun akıl hocası Olga Velichko ile tartıştılar. Bu sorunun dünyada halihazırda var olan teknolojiler kullanılarak çözülebileceğini doğruladılar.

“Ancak bu görev protez geliştirmekten çok daha zor. Retinanın ne kadar iyi uyarı ürettiğini, farklı ışığa nasıl bağlı olduğunu, hangi alanın daha fazla, hangisinin daha az ürettiğini kontrol etmek için kurbağalar üzerinde bir deney bile yapamıyoruz. Bir laboratuvar kiralamamıza ve görevleri ayrıştırıp son teslim tarihlerini kısaltmak için insanları işe almamıza olanak sağlayacak finansmana ihtiyacımız var. Ayrıca gerekli tüm malzemelerin maliyeti. Kural olarak her şey paraya bağlı.”

bürokrasi

Bogdan ve Zhenya, finansman için Skolkovo'ya başvurdular ancak reddedildiler - oraya yalnızca ticari potansiyeli olan bitmiş ürünler gidiyor ve başlangıç ​​​​aşamasındaki araştırma projeleri değil.

Zhenya'nın öyküsündeki tüm özgünlüğe, yeteneklerine ve ilham veren başarılarına rağmen, bürokratik kötü şans karşısında insan şaşırıyor. Haberin arka planında bunu duymak özellikle sinir bozucu. İşte milyonlarca dolar gelir ve yatırım alan bir başka "insanların ihtiyaç duyduğu ürün" (fotoğraf uygulaması, reklam optimizasyonu veya yeni sohbet türleri). Ancak bilinmeyen bir meraklı, fikirleriyle ne yapacağını bilmiyor.

Bu yıl Zhenya, üniversiteler arasındaki ortaklık programı kapsamında Avusturya'da altı aylık ücretsiz bir eğitim kazandı, ancak oraya gidemiyor. Vizeyi onaylamak için Salzburg'da barınma ve yaşam için parası olduğuna dair garantiler gerekiyor.

Zhenya, "Fonlara başvurmak sonuç vermedi, çünkü finansman yalnızca tam diploma programları için sağlanıyor" diyor ve şöyle devam ediyor: "Salzburg Üniversitesi'ne başvurmak da sonuç vermedi; üniversitenin kendi yurtları yok ve konaklama konusunda bize yardımcı olamaz.

On fona yazdım ve yalnızca üç ya da dördü yanıt verdi. Üstelik bilimsel derecemin kendilerine uygun olmadığını, ustalara ve daha yüksek seviyelere ihtiyaçları olduğunu söylediler. Lisans çalışmalarımdaki bilimsel başarılarıma onlar tarafından değer verilmemektedir. Yerel bir üniversitede okuyorsanız, lisans dereceniz varsa ve teknik araştırmalarla uğraşıyorsanız üniversite bünyesinde başvuru yapabilirsiniz. Ama yurt dışından gelen biri için maalesef bu yok.

Yaklaşık olarak aynı sayıda Rus fonuyla temasa geçtim. Skolkovo'da bana şunu söylediler: Üzgünüm ama biz sadece ustalarla çalışıyoruz. Diğer vakıflar bana altı ay boyunca fonlarının olmadığını, ya sadece diploma programlarıyla çalıştıklarını ya da bireylere finansman sağlamadıklarını söyledi. Ve Prokhorov ve Potanin vakıfları bana cevap bile vermedi.

Yandex'den büyük bir hayır işiyle uğraştıklarını ve şirketin şu anda fonunun olmadığını belirten bir mektup aldım, ancak bana en iyisini dilediler.

Hatta gidip çalışmama olanak sağlayacak sözleşme hedefli finansmanı bile kabul ettim ve bunun sonucunda şirkete bir şeyler getirecektim. Ancak düşük düzeyde bir iletişimde her şey durur. Bunun neyle ilgili olduğunu anlıyorum. Telefon görüşmeleri ve posta üzerinde çalışan insanlar sadece belgelere göre çalışırlar. Bir başvurunun geldiğini görüyorlar, hatta güzel bile olabilir. Ama yazacaklar: Üzgünüm, hayır, çünkü ya başvuru süresi doldu ya da durumunuza göre hak kazanmıyorsunuz. Ama fon sahiplerinden daha üst bir yere ulaşma imkanım yok, sadece bu tür bağlantılarım yok.”

Ancak Zhenya'nın sorunuyla ilgili paylaşımlar sosyal ağlarda hızla yayılmaya başladı. İlk birkaç günde, gerekli olan 50 avronun yaklaşık 000 rublesini topladık. Hazırlanmak için fazla zaman yok ama birçok kişi zaten Zhenya'ya destek konusunda yazıyor. Belki her şey yoluna girecek.

Kahramanın Avusturya'dan dönüşüne ilişkin bu uzun metni yeni ve güçlü bir deneyimle bitirmekten memnuniyet duyarım. Veya projelerden biri için hibe almak ve yeni laboratuvardan bir fotoğraf almak. Ancak metin, iki dolabın, iki yatağın, iki masanın, iki rafın ve bir buzdolabının bulunduğu yurt odasında durdu.

Bana öyle geliyor ki birbirlerine yardım etmek için büyük profesyonel topluluklara ihtiyaç var. Nekrasov'un karısının paraya, yararlı bağlantılara, fikirlere, tavsiyeye, her şeye ihtiyacı var. Karmamızı yükseltelim.

Zhenya'nın bağlantıları ve diğer önemli şahsiyetlerE-posta: [e-posta korumalı]
Телефон: +7-914-968-93-21
Telgraf ve WhatsApp: +7-999-057-85-48
github: github.com/Ravino
vk.com: vk.com/ravino_doul

Para transferi ile ilgili ayrıntılar:
Kart numarası: 4276 5000 3572 4382 veya telefon numarası +7-914-968-93-21
+7-914-968-93-21 ​​telefon numarasına göre Yandex cüzdanı

Muhatap: Nekrasov Evgeniy

Kaynak: habr.com

Yorum ekle