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

Google Geliştirici Uzmanı Lars Knudsen ile 10 ABD doları tutarında bir cihazın engelli kullanıcılar için bilgisayarları nasıl daha erişilebilir hale getirebileceği hakkında konuştuk.

Monika Janota
Monika Janota

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

Monika: Geliştirici olmaya nasıl karar verdiniz? Şu anda profesyonel olarak hangi alanda yoğunlaşıyorsunuz?

Lars: Mühendislik alanında yüksek lisans yaptım ancak teknolojiyle ilgilenmeye çok daha önce başladım. 80'lerde çocukken babamın grafik tasarımla çalışan bir bilgisayar şirketi vardı. Bazen, özellikle yaz tatillerinde beni işe götürürdü. Bazen çalışanlarından bazıları beni izlerdi. Çok zeki bir adam bir keresinde bana "Lars, biraz çalışmam gerekiyor. Burada bir C kılavuzu ve şurada bir bilgisayar var. C derleyicisini başlatmak için aşağıdaki adımları uygulayın. Sorularınız varsa bana sorabilirsiniz." dedim. Bilgisayarın anlayabileceği bir dile çevrilen kısa metinler yazmaya başladım. Bu benim için büyüleyici bir deneyimdi. Programlamaya başladığımda 11 yaşındaydım. Yedinci sınıfta sınıf arkadaşlarım için veya okulda kullanılacak küçük uygulamalar oluşturmaya başladım. Bu şekilde başladı.

Yıllar içinde Nokia, Maersk ve Openwave gibi birçok şirkette çalıştım. Diğer birçok meslekte olduğu gibi, başlangıçta biraz bilgi sahibi olduğunuz için her şeyi yapabileceğinizi düşünürsünüz. Ancak zamanla her şirketin belirli bir çalışma şekli olduğunu öğrenirsiniz.

Bir tıbbi cihaz şirketi için birkaç yıl çalıştıktan sonra 1999'da kendi işimi kurdum. Serbest çalışan bir yüklenici olarak çalıştım ve bu sayede birden fazla kuruluşu hızlı bir şekilde tanıma fırsatı buldum. İlk beş sözleşmeyi tamamladıktan sonra, her şirketin mükemmel kurulumu bulduğunu düşündüğünü ancak bunların tamamen farklı olduğunu fark ettim. O dönemde birçok farklı teknoloji ve işletim sistemiyle de tanıştım. Yirmili yaşlarımın başlarında zihniyetim değişti. Başlangıçta yalnızca bir teknolojiye odaklanmıştım ve bu teknoloji hakkında her şeyi öğrenmek istiyordum. Zamanla, hayatımızı iyileştirmenin bir yolu olarak teknolojileri bir araya getirmeyi düşünmeye başladım. Dünyada A ve B takımı olarak adlandırdığımız gruplar arasındaki farkı kapatmak benim için çok önemli. Bilgisayar sahibi olma veya ücretsiz üniversite eğitimi alma lüksüne sahip olmayan bölgelere mümkün olduğunca fazla bilgi aktarmaya çalışıyorum.

Harici iş ortakları için sözleşmeli olarak çalışmaya devam ediyorum ancak mümkün olduğunda çevre veya toplum üzerinde olumlu bir etkisi olan projeleri 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 konusunda en küçük mikrodenetleyicilerden buluta kadar her şey üzerinde çalışıyorum. Yaptığım işlerin çoğu web ile ilgili. Mantıklı olduğunda teknolojileri birleştirmeye çalışıyorum.

Monika: Google Geliştirici Uzmanları programına katılmadan önce geliştirici topluluklarıyla ilgili çalışmalarda bulundunuz mu?

Lars: Evet, buluşmalara ve konferanslara katıldım. Toplulukla ilk kez Nokia'da çalışırken tanıştım. 2010 civarında, benden önce GDE olan Kenneth Rohde Christiansen ile tanıştım. Web teknolojilerinin gelişmekte olan ülkelerdeki teknoloji uzmanları için nasıl yararlı olabileceğini görmeme ilham verdi. C++, C# veya Java kullanarak çözüm geliştirmek ve dağıtmak için birkaç yıllık deneyim gerekir. Ancak bilgisayar, tarayıcı ve not defteri erişimi olan herkes web tabanlı uygulamalar geliştirmeye başlayabilir ve çok hızlı bir şekilde öğrenebilir. Sınırlı kaynaklarla tamamen işlevsel bir uygulama oluşturmak ve sıfırdan başlamak mümkündür. Bu nedenle web'i çok demokratikleştirici bir teknoloji grubu olarak adlandırıyorum.

Topluluğa dönecek olursak, bir süre sonra web standartlaştırma ve son teknoloji web teknolojilerinin çözebileceği sorunlarla ilgilenmeye başladım. Yeni özellikleri, yayınlanmadan önce tarayıcıda denedim. O zamanlar Nokia'da çalışıyordum ve Linux tabanlı bir amiral gemisi cihaz olan N9 için geliştirme yapı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. Bu nedenle, 2017'de GDE topluluğuna katılmak mantıklıydı.

Topluluk çalışmaları ve birlikte yaptığımız her şeyden, özellikle de pandemi öncesi Chrome Geliştirici Zirveleri'nden çok keyif alıyorum. Bu zirvelerde bir grup harika Google mühendisi ve diğer GDE'lerle birlikte stand görevlisi olarak görev aldım.

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

Lars: Kendi deneyimlerimden yola çıkarak, maddi olarak uygunsa birkaç farklı şirket için serbest çalışmayı düşünebilirsiniz. Bu sayede, kodla ilgili birçok farklı biçim ve geliştirme aşamasıyla karşılaşırsınız. Çeşitli işletim sistemleri ve dilleri tanıyacak, sorunları birçok şekilde nasıl çözeceğinizi öğreneceksiniz. Bu bana çok yardımcı oldu. Yirmili yaşlarımın başında kıdemli geliştirici olarak deneyim kazandım. Bu yaklaşım, profesyonel hedeflerinize daha hızlı ulaşmanıza yardımcı olur.

Bunun dışında, donanım ve yazılımla eğlenin, keşfedin, oynayın. Arkadaşlarınız, aileniz veya yerel bir işletme için gerçek bir sorunu çözecek bir şey geliştirmeyi düşünebilirsiniz. Daha önce hiç yapmadığınız bir şeye atlamaktan çekinmeyin.

Monika: Web teknolojileri için gelecekte neler olacak?

Lars: Web'in, hem tüketiciler hem de işletmeler için büyük saha uygulamalarına yönelik bir platform sunma konusunda birkaç yıldır yeterli kapasiteye sahip olduğunu düşünüyorum. Sunucu tarafında, web teknolojileri özellikle arka uç bileşeni oluşturmak isteyen kullanıcı arabirimi geliştiricileri için sorunsuz bir deneyim sunar. Artık bu özelliği kullanmaya başlamak daha kolay. İşi tamamlamak için hem Firebase hem de Heroku kullanan kişiler tanıyorum. Bu trend artacak. Web teknolojileri, her türlü karmaşık çözümü oluşturmak için yeterli olacak. Web Özellikleri - Project Fugu 🐡'nun bu potansiyeli gerçekten açığa çıkardığını düşünüyorum.

Konuyu biraz farklı bir açıdan ele alırsak, yalnızca İngilizce değil diğer dillerde (ör. İspanyolca ve Portekizce) de tam dokümanlar ve ayrıntılı makaleler sağlarsak Latin Amerika'da ve elbette diğer bölgelerde çok sayıda potansiyeli açığa çıkarabileceğimizi düşünüyorum. Bu ülkelerdeki geliştiriciler genellikle ilgili tüm makaleleri tam olarak anlayacak kadar iyi İngilizce bilmez. Ayrıca, mümkün olduğunca erken, hatta üniversiteye başlamadan önce, kendi şehirlerindeyken öğrenme fırsatı vermeliyiz. Bu becerileri, evlerinden ayrılıp belki de bir daha geri dönmeden önce yerel topluluklara ve işletmelere yardımcı olmak için kullanabilirler.

Thomas: Rastgele bir bilgisayarda C geliştirme yapmaktan donanım korsanlığına kadar uzun bir yol kat ettiniz. Bunu nasıl yaptınız?

Lars: Evde bulunan birçok donanımı sökmeye başladım. Tekrar birleştiremediğimde babam her zaman memnun olmazdı. Zamanla bazı küçük cihazları nasıl oluşturacağımı öğrendim ancak bu iş gerçekten çok daha sonra, Nokia'ya katıldığım ve yerleşik deneyimimi edindiğim dönemde başladı. 30 Serisi telefonlar için küçük ekran koruyucular ve bileşenler oluşturma fırsatı buldum. Bu konuda tutkuluydum ve kalıpların dışına çıkabiliyordum. Bu cihazlar için bir Yılan oyunu oluşturmam istendi. Çok ilginç bir deneyimdi. Yerleşik sistemler oluşturma ile diğer çoğu şey (web dahil) arasındaki temel fark, küçük bir ayak izi bırakmanızdır. Yani kullanabileceğiniz çok fazla alan veya bellek yoktur. Snake'ı geliştirirken kullanabildiğim RAM, çerçeve arabelleğinin üçte birinden azdı (yaklaşık 120 x 120 piksel). Ekrandaki bileşenleri algoritmik olarak yeniden birleştirmenin yollarını bulmam gerekiyordu. Böylece bileşenler karo gibi statik görünecekti. Çok şey öğrendim. Bu, daha büyük sistemlerden küçük, yerleşik çözümlere geçişti.

Thomas: Tipik bir ön uç geliştiricinin beceri seti, yerleşik donanım geliştiren bir kişinin beceri setinden çok farklıdır. Bir ön uç geliştiriciye donanımı incelemesini ve ikili sistemde düşünmeye başlamasını nasıl önerirsiniz?

Lars: İlk adım olarak, Chrome ve Edge'de çalışan ve günümüzün tüm büyük sistemlerine yerleştirilmiş Fugu API'lerinden bazılarına göz atmanızı öneririm. Başlangıçta ihtiyacınız olan tek şey bu.

Yerleşik çözümler oluşturmaya yönelik araç zincirlerinin öğrenme eğrisi de oldukça dik. Kendi özel donanımınızı oluşturmak istiyorsanız Arduino veya ESP32 ile başlayın. Bu cihazlar kolayca satın alınabilir ve oldukça ucuzdur. Doğru geliştirme ortamını kullanarak projenizi kısa sürede kullanıma sunabilirsiniz.

Bluetooth GATT hizmetlerini zaten kullanan bir kalp atış hızı monitörü veya çok sensörlü bir birim de satın alabilirsiniz. Böylece kendi donanımınızı veya donanım yazılımınızı oluşturmanız gerekmez. Mevcut cihazları kullanabilir ve cihazla iletişime geçmek için Web Bluetooth API'yi denemeye başlayabilirsiniz.

Seri protokol kullanan cihazlar da vardır. Bu cihazlar için Web Serial API'yi (Fugu olarak da bilinir) kullanabilirsiniz. Son zamanlarda, herkesin erişebildiği tüm kullanıcı arayüzü cihazlarıyla konuşmanızı sağlayan WebHID API'yi kullanmayı araştırıyorum. Bodrum katımda, yıllardır hiçbir işletim sistemi tarafından desteklenmeyen eski cihazlar buldum. Ancak tersine mühendislik sayesinde bunları yeniden etkinleştirmek birkaç saatimi aldı.

Oluşturmak istediğiniz şeye bağlı olarak farklı yaklaşımlar vardır. Ancak bir web geliştiriciye sağlam bir sensör birimi (ör. Nordic Semiconductor'dan Thingy 52) almasını öneririm. Bu birimde çok sayıda sensör bulunur ve web uygulamanıza çok az çabayla bağlayabilirsiniz.

Thomas: Cihaza bağlanmak ilk adımdır ancak onunla etkili bir şekilde konuşmak bambaşka bir konudur. Engellerle karşılaştıktan sonra neden pes etmediniz? Çalışmaya devam etmenizi sağlayan motivasyon neydi?

Lars: Kişisel olarak benim için en önemli şey, bir sorunu çözmenin sosyal yönüydü. Kendi yerleşik projelerim üzerinde çalışmaya başladığımda, gelişmekte olan bölgeler için kutu içinde bir bilim laboratuvarı oluşturma vizyonum ve arzum vardı. Eşim Meksika'dan ve oradaki bazı okulları gördüm. Büyük şehirlerin dışında bulunan bazı okullar oldukça kötü durumda ve bizim bölgemizdeki materyallere ve ekipmanlara erişemiyorlar.

Başkalarına yardımcı olmak için kullanılabilecek bir şey geliştirme tutkusu beni ayakta tuttu. Topluluk desteğinden de çok memnun kaldım. Google'daki bazı kişilerle iletişime geçtim. Hepsi son derece yardımcı oldu ve tüm sorularımı sabırla yanıtladı.

Thomas: Birçok kişinin evinde bir tür donanım var ancak bu donanımla ne yapacağını bilmiyor. Özellikle SimpleMouse çalışma adıyla bilinen projeniz olmak üzere tüm muhteşem projelerinizin ilham kaynağı nedir?

Lars: Aslında son zamanlarda birçok eski donanımı yeniden canlandırıyorum. Ancak bu projede (henüz adı belirlenmedi, SimpleMouse diyelim) deneyimimden yararlandım. Daha önce bazı erişilebilirlik çözümleriyle çalıştım ve bunların bazılarının artık çalışmadığını gördüm. Bunları çalıştırmak için belirli yazılımların yüklü olduğu eski bir Windows XP işletim sistemine sahip olmanız gerekir. Bu cihazları güncelleyemezsiniz. Kurulumunuzu taşıyamadığınızdan bunları yalnızca evde kullanabilirsiniz.

Bu nedenle, yerleşik dünyadaki becerilerimi Fugu projesiyle nasıl birleştirebileceğimi ve web'de artık insanların bu temelde geliştirme yapabileceği, hem ucuz hem de uygun fiyatlı donanımlarla birlikte her iki tarafta da anlaşılması kolay yazılımlar oluşturmak için neler mümkün olduğunu merak ettim.

Bu proje için nRF52840 adlı yansıtıcı çipli küçük bir USB dongle kullandım. Bir tarafında Bluetooth, diğer tarafında USB ile iletişim kurar. Aslında her iki tarafta da herhangi bir şey olacak şekilde programlayabilirsiniz. Ardından, bilgisayarı kontrol eden cihazları (fare ve klavye) düşündüm. Engelli olan bazı kullanıcılar bu cihazları kullanmakta zorlanabilir. Onlara yardımcı olmak istedim.

İlk olarak, USB dongle'ın tüm işletim sistemleri tarafından fare olarak algılanmasını sağladım. Yerel bir uygulamadan veya web uygulamasından doğrudan Bluetooth'u kontrol edebilirsiniz. Ardından, kullanıcıların web bileşenlerini kullanarak istedikleri şekilde genişletebilecekleri basit bir şablon olan bir web uygulaması oluşturdum. Bu sayede herkes, Android telefonda birkaç saat içinde yaptığım bir web uygulamasıyla bilgisayarını kontrol edebilir.

Bu kurulum sayesinde, web deneyimi olan herkes birkaç gün içinde bilgisayarını kontrol etmek isteyen engelli kullanıcılar için son derece özelleştirilmiş bir çözüm oluşturabilir. En iyi yanı, istediğiniz yere götürebilmeniz ve diğer cihazlarla da kullanabilmenizdir. Tam olarak aynı deneyimi yaşayacaksınız. Kullanıcılar artık kendi cihazlarını kullanmak ve tek bir yerde olmak zorunda olmadığı için cihazın taşınabilirliği ve uygun fiyatı benim için çok önemli.

Thomas: Cihazı gerçek hayatta test etme şansınız oldu mu?

Lars: Aslında Meksika'ya yaptığım son seyahat sırasında bu konuyu orada yaşayan bir web uzmanıyla görüştüm. Şu anda cihazı yerel olarak kullanmanın olasılıklarını araştırıyor. Orada ekipmanlar gerçekten pahalı ama bir USB dongle'ın fiyatı normalde yaklaşık on ABD doları. Şu anda denemek için orada yerel kurulumlar oluşturup oluşturamayacağımızı kontrol ediyor. Ancak henüz Danimarka'da resmi denemeler yapmadım.

Thomas: Engelli bireylere yardımcı olmak için tasarlanmış birçok cihaz gerçekten pahalıdır. Belirli bir şirketle işbirliği yapıp bu pahalı ekipmanın fiyatının çok daha altında bir fiyata üretime mi sokmayı planlıyorsunuz?

Lars: Evet, kesinlikle. Bu konuda yerel bir donanım üreticisiyle görüşüyoruz. Elbette bu cihaz, bu son derece uzmanlaşmış çözümlerin tümünün yerini almayacak. Ancak daha büyük bir şey oluşturmanın ilk adımı olabilir. Örneğin, web teknolojileri için halihazırda kullanılabilen ses tanıma özelliğini kullanabilirsiniz. Android telefonunuzu kullanarak cihazları kontrol etmenin kolay bir yoludur ve her tür cihazla kullanılabilir.

Web'de istediğinizi oluşturabilmeniz ve bunu herhangi bir ana bilgisayarı kontrol etmek için kullanabilmeniz birçok olasılık sunar.

Thomas: Zephyr projenizi açık kaynak olarak mı yayınlıyorsunuz? Ne tür bir lisans kullanıyorsunuz? Projeden para kazanma planları var mı?

Lars: Evet, çözüm açık kaynaktır. Dosyaya belirli bir lisans eklemedim ancak Apache 2.0'ı kullanmanız daha iyi olur. Google da dahil olmak üzere birçok büyük şirket bu lisansı kullanır. SimpleMouse üzerinde çalışırken projeden para kazanmak gibi bir hedefim yoktu. Ancak bir şekilde üretime sunmaya çalışmanın da mantıklı olacağını düşünüyorum. Bununla birlikte maliyet de söz konusu. Nihai hedef, bu özelliği kullanıma sunmaktır. Bu teknolojinin düşük maliyetle ve geniş ölçekte uygulanmasını görmek isterim.