11 Aralık 2012 Salı

OPW Başvuru Süreci

Bu ara aslında vizelerin hemen sonrasında hatalarını kapatmak için bir proje seçsem, bugzillalara baksam diye düşünürken Tuğçe(sınıftan arkadaşım) Outreach For Women programı için gruba link atmıştı. Bu program nedir diye sorarsanız Gnome'un sadece kadınların katılabilmesi için düzenlediği kış staj programı. İstenilen projeyi tamamladığınızda 5000 dolarlık ödül de var. Benim de zaten bir yerlere başvurma gibi bir düşünce içerisindeyken bunu öğrenmiş olmamda iyi olmuştu. Tabi hemen linkten projelerin ne olduğuna bakmaya başladım.

Gnome ile ilgili projlerden birini seçmeye karar verdim. Gnome sevdiğim de bir ortamdı açıkçası. Gnome projelerinden Flickr İntegration'a başvurdum. Proje tanımının yapıldığı yerde C, GTK kullanılacağı yazıyordu. Proje içeriğine açıklama olarak arka plan ayarları yaparken kullanıcıların resimlerini Flickr hesaplarına attıkları yerden de çekebilmelerini sağlamak yazıyordu. Bunun benim başvurabileceğim bir proje olduğunu düşündüm. Projede bize yön gösterecek olan geliştirici arkadaşın ismi, mail adresi de yazılıydı. Projelere başvurabilmek için önce bir katkıda bulunmak gerekliydi. Bunun için mentore mail attım. Aslında önce vazgeçtim nasıl ingilizce mail yazacağım diye düşündüm. Sonra mezun olduktan sonra ne olacak, o zaman böyle şeyler gerekme ihtimali çok daha yüksek, şimdiden tecrübem olsun diyerek mail attım. Akşama doğru cevap geldi. Ben katkıda bulunmak için tavsiye istemiştim. Çünkü bugzillaya girip o kadar şeyden hangisi seçsem, nasıl yapsam demektense mentore sormak daha kestirme bir yoldu. O da hemen şurada şöyle bir eksiklik var diye cevap atmış. İlk başlarda C ile GTK'da bocaladım. Daha önce Ruby, Python kullandığımdan C garip geldi. Sonra ben yapamıyorum sanırım diyerek vazgeçtim. Aslında yapamamaktan değilde biraz güvensizlikten kaynaklanıyordu. Sonra Necdet hoca ne yaptın bakalım dedi o gün. Ben de vazgeçtim demeye kalmadan "Nasıl yapabiliriz?, senden ne istemişler?, Cevap attın mı?" kısmına geldi konu:). Hafta sonu C, GTK ile nasıl kullanılır diye bakmıştım ama istenen bugzilladaki eksikliği yapmamıştım. Bir de benden istedikleri uygulamaya ek yapabilmem için kaynak kodu indirip, derleyip çalıştırmam gerekliydi. Bende Ubuntu Unity vardı. Bu yüzden diğer dağıtımlardaki Gnome uygulamalarıyla her şey bire bir aynı gitmiyordu. Sonra ben mentore hangi dağıtımı kullandığını sordum, o da zaten OPW(Outreach Program For Women) için de gerekli olabileceğini düşünerek Fedora kullanmamı tavsiye etti. Fedorayı kendi bilgisayarımda sanala kurdum çok verimsiz oldu. Sonra Necddet hocanın bilgisayarlarından birini alarak onda sanala kurduk. Orada bendeki sanalda çalıştığından daha iyi haldeydi. Aslında orda da kötü çalışıyordu.

Sonra ben istedikleri yamayı hazırlayıp gönderdim. Cevap olarak kullandığım fonksiyonları değilde, aynı işi daha kısa yaptıran başka fonksiyon kullanmam gerektiğini aldım. Daha sonra yeni yama hazırlayıp gönderdim. Akşamında ise bugzilladan aldığım cevap "It works" oldu ;) Sonra geriye başvuru formunda hazırlamam gereken kısım kalmıştı. Ben forma her şeyi çok kısa yazmıştım. Bilgi işlemden aldığım tavsiyelerle biraz daha ayrıntılı bilgi vermem gerektiğini düşündüm. Formda kaç yıldır özgür yazılım projeleriyle ilgileniyorsunuz, bu tür projelere daha önceden başvuruda bulundunuz mu gibi sorular vardı. Onları da cevapladıktan sonra formu gönderdim.

Başvurunun bana kattıkları bir projeye katkı vermek için geliştiricisinden fikir istediğinizde aslında gayet yardımcı olduklarını gördüm. Her ne kadar yanlış dil bilgisiyle ingilizce mail atmaya çalışırken bu durumu gayet normal karşıladıklarını gördüm. Sonradan bakıp kendi fark ettiğim hatalarım için bile uyarı almamıştım. Gerçi farklı anlama gelen şeyler değildi yanlış yazdıklarım, yazarken dikkatsiz davrandığım içindi.

Bundan sonra da dönem içersinde yapacağım işlerin yanında Gnome sayfasından uygulama seçip geliştiricisiyle iletişime geçerek katkı vermeye sürekli devam etmeye karar verdim. Bunun nedeni ise bir hata kapatmaya çalışırken, bir çok başka şey öğreniyor insan. Belki bir dönem üzerinde çalıştığı projeden daha fazla şey öğreniyor bile olabilir. Çünkü katkıda bulunmak istediğiniz araçlarıda çalıştırıp yaptığım ek oldu mu, olmadı mı derken bir çok farklı araç da kullanıyor olmanız gerekebiliyor. Ayrıca büyük projelerdeki büyük insanlarla çalışırken de bir çok tecrübe elde ediliyor açıkçası.

Size tavsiyem eğer katkı vermek aynı zamanda bir şeyler öğrenmek gibi bir düşünceniz varsa sadece proje seçip gereken yerlere mail atmak :)

10 Aralık 2012 Pazartesi

Git Kullanarak Yama Dosyası Hazırlama

Yama  dosyalarını elimizdeki bir dosyanın orjinal hali ile bizim değiştirdiğmiz hali arasındaki farkları kolayca görmek istiyorsak oluştururuz. Peki bunu neden isteriz? Örneğin herhangi bir kodda değişiklik yaparak üzerine yeni özellikler eklediysek kodun orjinal halini yazan kişiye orjinal dosya ve yeni dosya arasındaki farkları göstermede kolaylık sağlar.

Bu işi bir de git format-patch kullanarak da yapabiliriz. Bu, yaptığımız eklemeler arasındaki farkları görmeyi daha da kolaylaştırır. Nasıl oluyor derseniz şu şekilde; örneğin bir kaynak kodu git deposundan aldığımızı düşünelim. Üzerinde bir çok kez değişiklikler yapıyoruz. Yaptığımız değişikliği commit ettikten sonra yama dosyalarını oluşturmak için git format-patch'i kullanırsak kendisi değiştirilmiş dosyaları bulur ve bir önceki committeki haliyle arasındaki farkları gösteren bir yama dosyası oluşturur. Eğer bunun için diff aracını kullanırsak dosyanın orjinal halini başka bir yere almak gibi bir kaç işlem daha gerekecekti. Bu işlemi örneklendirelim, uygulamamızın üzerinde değişiklik yaptıktan sonra aşağıdaki komutları verelim:
git commit -m"Test1"
git format-patch -1
Burada önce commit ettik, sonra yama 1 numaralı olması gerektiğini de belirterek yama dosyası oluşturduk. Oluşan dosya ismi şuna benzer olmalı "0001-Test1.patch" buradaki 0001 bizim -1 olarak yazdığımız kısımı belirtir. Yama dosyasının adını Test1 vermesi ise commit mesajımızla benzer bir dosya ismi olacağı için. Yama dosyasını açıp bakarsak içerisinde "+" simgeleri eklenen satırları, "-" simgeleri ise çıkarılan satırları belirtir. Ben de git format-patch'i daha çok beğendiğimden öğrendikten sonra onu kullanmaya başladım. Şimdilik söyleyeceklerim  bu kadar görüşmek üzere :)

4 Aralık 2012 Salı

İngilizce Önemli

Merhabalar, yazının başlığından da anlaşıldığı gibi biraz İngilizce ve faidelerinden bahsetmek istedim. Aslında günümüzde İngilizce bilmek çok da ayrıcalık sayılımıyor. Ama biz nasıl yapıp ediyorsak okullarda bu kadar yıl "i go to school" dan fazla bir şey öğrenemiyoruz.

Benim şuan lisansta okuduğum bölümde de İngilizce bilmek ciddi anlamda önemli. Çünkü Türkçe kaynak sıkıntısı oluyor. Bu derslerde bir şekilde geçiştirilmiş olsa bile bilişim sektörünün kalbi Türkçe ile atmıyor ne yazık ki. Okulda gördüğümüz derslerde bu yıla kadar(3. sınıf) hocalar pek dilin üzerinde durmamışlardı açıkçası ya da ben öyle gördüm. Ben de 1. sınıfın 2. dönemindeyken(bilgi işlem sayesinde) yuh her şey İngilizce yahu demiştim. Benim dilim çok kötüydü gerçi hala çok iyi değil. Ama en azından bilmediğim bir konuyu okuduğumda anlayabiliyorum şuan, tabi bu okuduğum konunun ağırlığına ve kitabın dili kullanımına göre değişebiliyor.

Tavsiyem açıkçası çalışmaktan başka bir şey değil :) Eğer düz liseyseniz(benim gibi) önce bir sürü kelime ezberlemek gerekli ben 1'in yazında öyle yapmıştım. Kelime ezberleme kartlarınında etkili olacağını düşünüyorum. Ama yazarakta kelimenin tam yazımını öğrenmeniz için çok etkili olur bence. Kelime ezberleme işlemi tabiki sözlükten bakarak hangi kelimeler varmış şeklinde değil de bir şeyler okumaya çalışırken karşımıza çıkan bilmediğimiz kelimeleri not alarak olmalı diye düşünüyorum. Biraz dil bilgisi kuralı da bilsek iyi olur hani. Onun için çok özet olmayan ama anlatırken de baymayan içinde bir çok dil bilgisi kuralı özelliği barındıran kitaplar var. Ben bu yaz bir tane almıştım. Takılınca oradan bakıyorum iyi oluyor. 1'den beri yazları 2 aylık falan kurslara gidiyorum. Çok yardımcı oluyor diyemem ama en azından insan kelimeleri unutmuyor. Okunuşları öğreniyor. Hem bütün yaz evde otursam ne yapacağım zaten. Yabancı müzik dinlemek bence çok etkili oluyor. Eğer müziğin sözlerini bir yerlerden okuyup bilmediğiniz kelimelerin anlamlarına bakıyorsanız tabi.

Bunu bizim okul için(COMU) söylüyorum belki 2. sınıfta  ya da sonraki yıllarda çok mümkün olmuyor(biraz sınavlar biraz da kaytarmaktan) ama 1 olsam daha fazla İngilizce çalışırdım. İngilizce çalışmak çok sıkıcı biliyorum :( Ama her şey sıkıcıya konuyu bağlamadan :) 1. sinif olan arkadaşlara tavsiyem daha fazla İngilizce :)