GDE topluluğunda öne çıkanlar: Lars Knudsen

Lars Knudsen bir Google Geliştirici Uzmanı. 10 ABD doları değerindeki bir cihazın, bilgisayarları engelli kişiler için nasıl daha erişilebilir hale getirebileceğini konuştuk.

Monika Janota
Monika Janota

Lars, sahnede diğer iki konuşmacıyla sunum yapıyor.

Monika: Geliştirici olmanız için sizi motive eden neydi? Şu anda mesleki odağınız nedir?

Lars: Mühendislik alanında yüksek lisans yaptım ama teknolojiye olan ilgim çok daha erken başladı. Ben 80'lerde çocukken babam grafik tasarım alanında çalışan bir bilişim şirketi sahibiydi. Bazen, özellikle de yaz tatillerinde beni onunla çalışmaya götürürdü. Bazen çalışanlarından bazıları beni takip ediyordu. Bir keresinde bana çok akıllı bir adam vardı: "Lars, bir iş halletmem lazım, ama buradaki C kılavuzu var ve orada bir bilgisayar var. C derleyiciyi nasıl başlatacağınız aşağıda açıklanmıştır. Sormak istediklerin varsa gelip bana sorabilirsin." Bilgisayarın anlayabileceği şekilde çevrilen kısa metinler yazmaya başladım. Bana sihirli geldi. 11 yaşındaydım ve yedinci sınıfa yaklaştım. Sınıf arkadaşlarım veya okulda kullanmak için ufak uygulamalar oluşturabiliyordum. Her şey bu şekilde başladı.

Yıllar içinde Nokia, Maersk ve Openwave de dahil olmak üzere birçok şirkette çalıştım. Başlangıçta, diğer birçok meslekte olduğu gibi, biraz bilginiz olduğu için her şeyi yapabilecekmiş gibi hissediyorsunuz, ancak zamanla her şirketin işleri yapmanın belli bir yolunu öğreniyorsunuz.

Bir tıp şirketinde birkaç yıl çalıştıktan sonra 1999'da kendi işimi kurdum. Serbest sözleşmeli firma olarak çalıştım ve bu sayede birden çok kuruluşu hızlıca tanıma şansım oldu. İlk beş sözleşmeyi tamamladıktan sonra her şirketin mükemmel düzeni bulduğunu düşündüğünü ancak hepsinin tamamen farklı olduğunu öğrendim. O zamanlar pek çok farklı teknolojiye, işletim sistemine vb. maruz kaldım. Yirmilerinin başlarında düşünce yapısı da değişti. Başlangıçta tek bir teknolojiye odaklanıyordum ve bu teknolojiyle ilgili her şeyi öğrenmek istiyordum. Zamanla teknolojileri bir arada kullanarak hayatımızı daha iyi hale getirmeyi düşünmeye başladım. Özellikle dünyada A ve B ekibi olarak adlandırdığımız ekip arasındaki boşluğu daraltmak istiyorum. İnsanların ücretsiz olarak bilgisayar sahibi olma veya üniversite okuma lüksüne sahip olmadığı bölgelere mümkün olduğunca çok bilgi aktarmaya çalışıyorum.

Şirket dışı iş ortakları için yüklenici olarak çalışmaya devam ediyorum ancak mümkün oldukça çevre veya toplum üzerinde olumlu etki yaratacak projeler seçmeye çalışıyorum. Şu anda Oticon adlı bir işitme cihazı şirketi için yerleşik yazılım üzerinde çalışıyorum. Yazılım açısından en küçük mikrodenetleyicilerden buluta kadar her şey üzerinde çalışıyorum. yaptığım işlerin büyük bir kısmı web ile ilgili. Uygun olduğu durumlarda teknolojileri birleştirmeye çalışıyorum.

Monika: Google Geliştirici Uzmanları programına katılmadan önce geliştirici topluluklarında yer alıyor muydunuz?

Lars: Evet, buluşmalara ve konferanslara katıldım. Toplulukla ilk olarak Nokia için çalışırken bağlantı kurdum. 2010 civarında, benden önce eğitim uzmanı olan Kenneth Rohde Christiansen ile tanıştım. Web teknolojilerinin, gelişmekte olan ülkelerde gelecek vadeden teknoloji uzmanları için nasıl yararlı olabileceğini görmem konusunda bana ilham verdi. C++, C# veya Java kullanarak çözüm geliştirmek ve dağıtmak için birkaç yıllık bir deneyim gerekir. Ancak bilgisayara, tarayıcıya ve not defterine erişimi olan herkes web tabanlı uygulamalar geliştirmeye başlayıp çok hızlı bir şekilde öğrenebilir. Kısıtlı kaynaklarla tamamen işlevsel bir uygulama geliştirip sıfırdan geliştirmek mümkündür. Web'i demokratikleştiren bir teknoloji yığını diyorum bu yüzden.

Ama topluluğa geri dönelim. Bir süre sonra web standartlaştırma ve son teknoloji web teknolojilerinin hangi sorunları çözebileceğiyle ilgilenmeye başladım. Yayınlamadan önce bir tarayıcıda yeni özellikleri denedim. O zamanlar, Linux tabanlı en önemli cihaz olan N9 için geliştirme yapan Nokia'da çalışıyordum. Oluşturduğumuz tarayıcı WebKit tabanlıydı ve büyük bir açık kaynak projesi için özellik geliştirme konusunda harika bir deneyim kazandım. Nokia'dan ayrıldıktan sonraki yıllarda web konferanslarına ve buluşmalara katıldım. Dolayısıyla 2017'de GDE topluluğuna katılmak çok mantıklıydı.

Topluluk çalışmalarından ve birlikte yaptığımız her şeyden, özellikle de bir grup muhteşem Google Mühendisi ve diğer Google Mühendisleri ile birlikte stant görevlerinde yardımcı olduğum pandemi öncesi Chrome Geliştirici Zirveleri'nden çok keyif alıyorum.

Monika: Profesyonel kariyerine yeni başlayan ve hangi yolu seçeceğinden emin olmayan genç bir geliştiriciye ne tavsiye verirsiniz?

Lars: Kendi deneyimlerime dayanarak söyleyebilirim. Bütçeniz varsa birkaç farklı şirkette serbest çalışmayı düşünebilirsiniz. Böylece, birçok farklı geliştirme biçiminde ve geliştirme aşamasında kodla karşılaşırsınız. Çok sayıda işletim sistemini ve dili tanıyacak, sorunları birçok farklı şekilde çözmeyi öğreneceksiniz. Bu da yirmili yaşlarımda kıdemli geliştirici olarak deneyim kazanmama çok yardımcı oldu. Bu yaklaşım, profesyonel hedeflerinize daha hızlı ulaşmanıza yardımcı olacaktır.

Ayrıca, eğlenin, keşfedin, donanım ve yazılımlarla oynayın. Gerçek bir sorunu çözecek bir şey geliştirmeyi düşünün. Bu, arkadaşlarınız, aileniz ya da yerel bir işletme için olabilir. Daha önce hiç yapmadığınız bir şeye atlamaktan korkmayın.

Monika: Web teknolojileri bizi gelecekte neler bekliyor?

Lars: Birkaç yıldır web'in, hem tüketiciler hem de işletmelere yönelik büyük alan uygulamalarına yönelik bir platform oluşturabilecek nitelikte olduğunu düşünüyorum. Sunucu tarafında web teknolojileri, özellikle arka uç bileşeni oluşturmak isteyen ön uç geliştiricileri için sorunsuz bir deneyim sunar. Kullanmaya başlaması artık daha kolay. Bu işi yapmak için hem Firebase hem de Heroku kullanan kişileri tanıyorum. Bu trend artacak. Web teknolojileri her türlü karmaşık çözümü geliştirmek için yeterli olacak. Web Özellikleri - Fugu Projesi 🐡'nin bu potansiyeli gerçekten ortaya çıkardığına inanıyorum.

Biraz farklı bir bakış açısıyla baktığımda yalnızca İngilizce değil, diğer dillerde de (örneğin, İspanyolca ve Portekizce) eksiksiz belgeler ve ayrıntılı makaleler sağlarsak Latin Amerika ile diğer bölgelerde elbette büyük bir potansiyelin ortaya çıkacağını düşünüyorum. Bölgedeki geliştiriciler genellikle ilgili tüm makaleleri tam olarak anlayacak kadar İngilizce bilmezler. Ayrıca onlara üniversiteye başlamadan önce, henüz memleketlerindeyken bile mümkün olduğunca erken öğrenme fırsatı vermeliyiz. Bu becerileri, evden ayrılmadan önce yerel toplulukların ve işletmelere yardımcı olmak için kullanabilir ve belki de bir daha geri dönemeyebilirler.

Thomas: Rastgele bir bilgisayarda C geliştirmesi yapmaktan donanım korsanlığına kadar çok yol kat ettiniz. Bunu nasıl başardınız?

Lars: Evdeki birçok donanımı parçalarına ayırmaya başladım. Babam, elimdekileri toparlayamadığımda her zaman mutlu olmuyordu. Zaman içinde bazı küçük cihazların nasıl üretileceğini öğrendim. Ancak bu çok daha sonra, yerleşik deneyimim edindiğim Nokia'ya katıldığım sıralarda arttı. Series 30 telefonlar için bileşenler olan küçük ekran koruyucular geliştirme fırsatım oldu. Bu konuda gerçekten tutkuludum ve kalıpların dışında düşünebilirdim. Bana o cihazlar için Yılan oyunu geliştirme görevi verdiler. Çok ilginç bir deneyimdi. Yerleştirilmiş sistemler oluşturmakla diğer çoğu şey (web dahil) arasındaki temel fark, küçük bir yer kaplamasıdır. Bu durumda kullanacak fazla alanınız veya belleğiniz olmaz. Snake'i oluştururken kullanabileceğim RAM, kare arabelleğinin üçte birinden azdı (yaklaşık 120 x 120 piksel). Ekrandaki bileşenlerin karo gibi statik görünmesi için bunları algoritmik olarak yeniden birleştirecek yöntemler bulmam gerekiyordu. Çok şey öğrendim. Büyük sistemlerden küçük, yerleşik çözümlere geçiş de buydu.

Thomas: Tipik bir ön uç geliştiricinin becerileri, yerleşik donanımlar yapan kişilerin becerilerinden çok farklıdır. Ön uç geliştiricisini donanım üzerinde çalışmaya ve ikili sistemde düşünmeye başlamaya nasıl teşvik edersiniz?

Lars: İlk adımın Chrome ve Edge'de çalışan ve günümüzün önemli sistemlerinin tümünde yerleşik olarak bulunan bazı Fugu API'lerine bakmak olduğunu düşünüyorum. Başlangıçta ihtiyacınız olan her şey bu.

Diğer bir nokta da, yerleştirilmiş çözümler oluşturmaya yönelik araç zincirlerinin zorlu bir öğrenme eğrisine sahip olmasıdır. Kendi özel donanımınızı oluşturmak istiyorsanız satın alması kolay ve oldukça ucuz olan Arduino veya ESP32 ile başlayın. Doğru geliştirme ortamıyla projenizi kısa sürede kullanıma sunabilirsiniz.

Ayrıca, Bluetooth GATT hizmetlerini kullanmakta olan bir nabız monitörü veya çoklu sensör birimi satın alabilirsiniz. Böylece kendi donanımınızı veya donanım yazılımınızı oluşturmanız gerekmez. Mevcut donanımlarınızı kullanabilir ve Web Bluetooth API ile iletişim kurmaya başlamak için bu API ile denemeler yapmaya başlayabilirsiniz.

Seri protokolü kullanan cihazlar da vardır. Bunlar için Web Serial API'yi (ayrıca Fugu) kullanabilirsiniz. Son zamanlarda, herkesin erişebildiği tüm insan arayüz cihazlarıyla iletişim kurmanızı sağlayan WebHID API'yi kullanmayı araştırıyorum. Bodrum katında, yıllardır hiçbir işletim sistemi tarafından desteklenmeyen bazı eski yapılar buldum ama tersine mühendislik sayesinde bunları yeniden etkinleştirmem birkaç saatimi aldı.

Ne oluşturmak istediğinize bağlı olarak farklı yaklaşımlar var. Ancak web geliştiricilerine bence sağlam bir sensör birimi alın. Nordic Semiconacticor'dan bir Thingy 52 olabilir. çok sayıda sensörü vardır ve çok az çabayla web uygulamanızı bağlayabilirsiniz.

Thomas: Cihaza bağlanmak ilk adım, ancak cihazla etkili bir şekilde konuşmak. Bu da bambaşka bir şey. Engellerle karşılaştıktan sonra nasıl pes etmediniz? Çalışmaya devam etme konusunda sizi motive eden neydi?

Lars: Benim için en önemli faktör bir sorun çözmenin sosyal boyutuydu. Kendi yerleştirilmiş projelerim üzerinde çalışmaya başladığımda, gelişmekte olan bölgeler için bir kutuya bir bilim laboratuvarı kurma vizyonu ve isteğim vardı. Eşim Meksika'da yaşıyor ve orada bazı okullar görmüştüm. şehirlerin dışında kalan bazı işletmeler ise oldukça salaş durumda ve bulunduğumuz yerde sahip olduğumuz malzemelere ve ekipmanlara erişim sağlamıyor.

Başkalarına yardımcı olmak için kullanılabilecek bir şey inşa etme tutkusu. Bu şekilde devam etmemi sağladı. Topluluk desteğinden de çok memnun kaldım. Google'da çalışan birkaç kişiye ulaştım. Hepsi son derece yardımcı oldu ve tüm sorularımı sabırla cevapladı.

Thomas: Birçok insanın evinde böyle bir donanım var ancak bunlarla ne yapacağını bilmiyor. Muhteşem projelerinizin hepsi, özellikle de SimpleMouse başlığındaki proje için nasıl ilham buluyorsunuz?

Lars: Son zamanlarda birçok eski donanımı canlandırmaya başladım ama bu proje için (adı henüz belirlenmedi ama basit bir şekilde diyelim) deneyimlerimi kullandım. Daha önce bazı erişilebilirlik çözümleriyle çalıştım ve bazılarının artık çalışmadığını fark ettim. bu programları çalıştırmak için belirli yazılımların yüklü olduğu eski bir Windows XP'nizin olması gerekir. Kurulumunuzu taşıyamayacağınız için bunları gerçekten güncelleyemezsiniz. Bunları yalnızca evde kullanabilirsiniz.

Bu nedenle, yerleşik dünyadaki becerilerimi Fugu projesiyle nasıl birleştireceğimi ve her iki tarafta da anlaşılması kolay yazılımla birlikte ucuz ve uygun fiyatlı donanımlar oluşturmak için web'de ne yapılabileceğini düşündüm. Böylece insanlar bu donanımları geliştirebilir.

Tam olarak aynı projede, yansıtma çipi olan nRF52840 adlı küçük bir USB donanım anahtarı aldım. Bir tarafta Bluetooth, diğer tarafında USB ile iletişim kurar. Temelde bunu her iki tarafta da herhangi bir şey olacak şekilde programlayabilirsiniz. Sonra bir bilgisayarı kontrol eden fare ve klavye cihazları düşündüm. Bazı engelli bireyler bu cihazları kullanırken zorlanabilir. Ben de onlara yardımcı olmak istedim.

İlk yaptığım iş, tüm işletim sistemlerinin USB donanım anahtarını fare olarak görmesini sağlamak oldu. Bunu yerel bir uygulamadan veya web uygulamasından doğrudan Bluetooth'tan kontrol edebilirsiniz. Ardından bir web uygulaması oluşturdum. Bu, kullanıcıların web bileşenlerini kullanarak istedikleri şekilde genişletebilecekleri basit bir şablon. Bu özellik sayesinde herkes, Android telefonda yaptığım bir web uygulamasıyla bilgisayarını yalnızca birkaç saat içinde kontrol edebiliyor.

Bu kurulumun ardından, web deneyimi olan herkes birkaç gün içinde bilgisayarını kontrol etmek isteyen engelli bireylere yönelik son derece özelleştirilmiş bir çözüm geliştirebilecek. İşin en iyi yanı, bu e-postayı gittiğiniz her yere götürüp diğer cihazlarla da kullanabilmenizdir. Tam olarak aynı deneyimi yaşayacaktır. Benim için cihazın taşınabilirliği ve uygun maliyetli olması çok önemli çünkü insanlar artık kendi cihazlarını kullanmakla sınırlı değil ve artık tek bir konumla sınırlı kalmıyor.

Thomas: Cihazı gerçek hayatta test etme fırsatınız oldu mu?

Lars: Meksika'ya son seyahatimde bu konuyu orada yaşayan bir web uzmanıyla konuşmuştum; şimdi cihazı yerel olarak kullanmanın olası yollarını araştırıyor. Orada ekipman gerçekten pahalı, ancak bir USB donanım anahtarı normalde yaklaşık 10 ABD dolarına mal oluyor. Şu anda bu özelliği denemek için orada yerel kurulumlar yapıp yapamayacağımızı kontrol ediyor. Ama Danimarka'da henüz resmi denemeler yapmadım.

Thomas: Engelli kişilere yardımcı olmak için tasarlanan birçok cihaz çok pahalıdır. Belirli bir şirketle iş birliği yaparak bu pahalı ekipmandan çok daha düşük bir fiyata bu şirketi üretime sunmayı planlıyor musunuz?

Lars: Evet, kesinlikle. Bu konuda yerel bir donanım üreticisiyle zaten görüşüyordum. Cihaz elbette son derece özel çözümlerin yerini almayacak olsa da daha büyük bir şey inşa etmenin ilk adımı olabilir. Örneğin, halihazırda web teknolojileri için sunulan ses tanıma özelliğini kullanabilirsiniz. Bu özellik sayesinde, Android telefonunuzu kullanarak cihazları kolayca kontrol edebilirsiniz. her tür cihazla çalışabilir.

Web'de istediğinizi oluşturabiliyor olmanız ve bunu herhangi bir ana bilgisayarı kontrol etmek için kullanabilmeniz size pek çok olasılık sunuyor.

Thomas: Zephyr projenizi açık kaynak olarak mı yayınlıyorsunuz? Ne tür bir lisans kullanıyorsunuz? Projeden para kazanmayı planlıyor musunuz?

Lars: Evet, çözüm açık kaynaklı. Özel bir lisans koymadım ancak en uygun seçeneğin Apache 2.0 olacağını düşünüyorum. Google da dahil olmak üzere birçok büyük şirket bu lisansı kullanır. SimpleMouse'ta çalışırken projeden para kazanmayı düşünmüyordum. Amacım bu değildi. Ama bence de bunu bir şekilde üretim sürecine sokmak mantıklı. Bu da maliyet getiriyor. Nihai hedefi, bunu erişilebilir hale getirmektir. Bunun düşük bir maliyetle ve geniş ölçekte uygulandığını görmek isterim.