27 Eylül 2014 Cumartesi

Almanya'da Verdiğim D3 Dersi

Uzun bir aradan sonra hepinize merhaba. Yazın gerçekleştirdiğimiz çalışmaları bir ürüne dönüştürmek adına çalışmaya devam ediyoruz, dönemin başlamasıyla da yoğunluklar eski seviyesine yükseldi. İki hafta önce ODTÜ'de ikincisi gerçekleştirilen biyoinformatik kursunda veri görselleştirmeyi ve çok yüzeysel bir şekilde de web tabanlı veri görselleştirmeyi anlattım, yaklaşık 4 saatlik bir zaman diliminde anlatılabileceği kadarıyla.

Veriyi görselleştirmek, her ne kadar Excel'de sütun grafiği çizmek gibi anlaşılsa da, bu sadece çok ama çok ufak bir kısım. Excel'in kabiliyetlerini küçümsüyor değilim, ancak olayın boyutlarının çok daha büyük olduğunu vurgulamak istiyorum. Uzun bir süredir de bu konu ilgimi çekiyor ve ciddi manada zaman ayırıyorum. Hatta bugün sizlerle paylaşacağım şey de bu zihin mesaisinin bir ürünü.

İzmir'de Mayıs ayında İYTE'de gerçekleştirilen ve benim de görüntüleme üzerine bir sunum yaptığım etkinlikte görüntüleme yaklaşımım çok beğenilmişti, ve Almanya'da biyolojik veri görüntüleme üzerine uzmanlaşmış bir çalışma grubundan kullandığım araçları onlara anlatmam için bir davet almıştım. ODTÜ'de gerçekleştirilen kursun hemen sonrasında pazar günü Almanya'ya, Bielefeld Üniversitesi'ne gitmek üzere yola çıktım ve geçtiğimiz hafta boyunca her gün 4'er saat D3 ile görüntülemenin nasıl yapılacağını anlattım. Resmi bir ders kapsamında ziyaretçi öğretim görevlisi (Gastdozent) sıfatıyla lisansüstü öğrencilerine verdiğim dersin başlığı Data Visualization With D3 Workshop, dersin resmi sayfasına da ilgili üniversitenin bu linkine tıklayarak ulaşabilirsiniz. Beni davet eden grubun 3 boyutlu hücre modelleme çalışmalarına ise http://cellmicrocosmos.org/ adresinden ulaşabilirsiniz.


Gelelim neler anlattığıma. İlk gün, veri görüntülemenin felsefi boyutundan, mevcut görüntüleme anlayışlarımızdan, bizleri kısıtlayan fiziksel ve zihinsel bariyerlerimizden, ve gelecekte görüntülemenin nereye doğru gittiğinden bahsettim. D3'e ilişkin neredeyse tüm referansların toplandığı d3js.org adresindeki örnekleri tanıtarak D3 ile neler yapılabileceği hakkında bir fikir vermeye çalıştım. İkinci gün uygulamaya geçtik ve basit bir şekilde sütun grafiği yapmayı, bunu yaparken de hem HTML, hem de SVG'nin nasıl kullanılacağını anlattım. Sütun grafiklerimize etkileşimler ekleyip fare hareketlerine göre renk değiştirmesini sağlayacak basit bir uygulama geliştirdik. Üçüncü gün bir saçılım grafiği [scatter plot] yaparak 2 boyutlu verileri nasıl noktalar halinde gösterebileceğimizi ve ölçeklendirme yaparak x ve y eksenlerini nasıl gösterebileceğimizden bahsettim ve uygulamaya geçtik. Uygulamalar esnasında kullandığımız verileri Wolfram Alpha veri motorundan elde ettik ve tüm eğitim boyunca ülkelere ait çeşitli verileri kullandık. Günün sonunda, vurgulamak istediğimiz veriyi fare hareketlerine göre algılayıp ona göre görüntülemenin özelliklerini dinamik olarak değiştiren ve verileri bir dosyadan okuyarak her türlü ölçeklendirmeyi kendi yapabilen bir görüntüleme uygulaması oluşturduk. Dördüncü gün sırada çizgi grafiği vardı, ve bunun için de daha basit line elemanı yerine çok daha gelişmiş olan path elemanını kullanan grafiklerin nasıl yapılacağını anlattım. Ayrıca iki farklı grafik türü arasındaki etkileşimin nasıl sağlanacağını, yani mesela saçılım grafiğindeki bir noktaya tıkladığınızda bunun başka bir grafik türünde, örneğin sütun grafiğinde, nasıl daha detaylı bir şekilde görüntülenebileceğine ilişkin prensipleri gösterdim ve bu doğrultuda bir uygulama daha geliştirerek günü tamamladık. Dünkü son dersimizde ise ağ grafiklerinin nasıl yapılacağını, ve bir ağ grafiğinin diğer grafik türleriyle nasıl ilişkilendirilebileceğini örnek uygulamalarla anlattım. Dersler esnasında da, geliştirdikleri görüntüleme uygulamalarının nasıl web tabanlı uygulamalara dönüştürülebileceğini ve birlikte nasıl çalışabileceğimizi uzun uzun konuştuk. Yarın başlayacak olan Alman Biyoinformatik Konferansı'nda  katılımcılara D3'ü özetleyecek bir de konuşmam var, umarım birlikte çalışma fırsatları açısından da verimli geçer.

Burada olumsuz şeyler yazmaktan hiç hoşlanmıyorum, ancak madalyonun bir de diğer yüzü var. Yazılabilecek bir çok şey var, ama yurt dışına gitme sürecinde yaşadıklarımdan özetle, bizim herhangi bir konuda bir uzmana ihtiyacımız yok, bunu iyice anladım. Olsa ne yapacağız ki zaten? Ferrari'den mühendis getirip, oto sanayinde ona Kartal mı tamir ettireceğiz, yoksa Şahin mi? Uygulamalar esnasında kullandığımız verilerde Türkiye sadece nüfusuyla ön plana çıkıyor, diğer katma değerli alanlarda gerinin de gerisindeyiz. Ne için, kimin için çalışıyoruz? İşin acı tarafı, artık ülkemdeki saçma sapan şeylerden iyice sıkılmaya başladım. Bakalım zaman ne gösterecek.


Sözün Özü:
D3 konusundaki deneyimlerimden faydalanmak adına bir ders vermem için Almanya'ya, Bielefeld Üniversitesi'ne görüntüleme alanında uzmanlaşmış bir grup tarafından davet edildim. Hafta boyunca yoğun bir uygulamalı kurs kapsamında D3 ile geliştirilebilecek web görüntüleme uygulamalarının nasıl yapılacağını anlattım. Yaptığım işler büyük oranda ülke sınırları dışında kıymet görüyor, ülke sınırlarına girince aynı kısır döngüye tekrar gireceğim sanırım.



Proje:
d3js.org adresine bir göz atmanızı ve oradaki örnekleri inceleyerek web'de görüntülemenin ne noktaya vardığını incelemenizi öneririm. Veya boşverin, kim uğraşacak şimdi.

Meraklısına:
Yurt dışına görüntülemeyle uğraşan birçok grup var, özellikle John Hopkins'ten Jeff Leek'in D3 ile R'ı birleştiren bir uygulama kütüphanesi geliştirmek adına bir çalışması var, ilginizi çekerse bir göz atabilirsiniz.