Pardus Yaz Stajı: İkinci Hafta

Pazartesi günü projeleri seçmemiz gerekiyordu. Henüz belli bir alana yönlenmediğim için ne seçeceğim hakkında pek bir fikrim yoktu. Biraz düşününce yeni bir şey yapmaktansa varolan bir şeyi iyileştirmenin daha iyi olacağını düşündüm. Listede ilk cazip gelen proje ActionsAPI iyileştirmesi oldu.Ama gelmeden önce grafik arayüzle uğraşmak gibi bir niyetim de vardı  o yüzden cazip gelen projelerden bir manager ailesi iyileştirmeleriydi. Biraz tartıştıktan sonra paketleme tecrübemin de olmadığını da düşünülünce manager ailesi iyileştirmelerini staj projem olarak aldım. Diğer arkadaşlarımın projelerine de bu adresten bakabilirsiniz. Açıkcası diğer projeler yanında biraz sönük kaldığını düşünmüyor değilim. Neyse sonra danışmanım Gökmen Göksel'den ilk görevimi aldım. Disk Yöneticisi'ne bazı detayların eklenmesi. Yaklaşık 3 günde bu görevi bitirebildim. Aslında zor bir hata sayılmazdı. Bu kadar sürmemeliydi ,iyi bir başlangıç yapamadığımı da düşünüyorum. Üzerinde uğraşırken neler yaşadığımı anlatayayım.
Yali varsayilan  kurulumda sabit diski /boot bölümü ext4 ve diğer kısımlar LVM üzerinden paylaştırıyormuş. Diskimi hep elle bölümlendirdiğim için bu detayı buradaki bilgisayara varsayılan kurulum yapınca farkettim ve disk manager'in LVM desteği olmadığı için biraz zorlandım.
Uludağ deposunda aldığım disk-manager kodları 2011'e aitmiş Ama Çomak ekibi sağ olsun herhangi bir sorun olmadan Kurumsal 2'de masaüstü bağımlılığına takılmadan çalışabildim.
Disk Yöneticisi'nin disk bilgilerine bakmak için kullandığı pardus.diskutils modülü içinde getPartitions() diye bir metod varmış. Ama bu metod sadece 2011'de varmış. Bir süre Kurumsal 2'da bunu aradıktan sonra Virtualbox'a 2011 kurarak bunu farkettikten sonra hemen yan tarafımda oturan Ozan Çağlayan'dan rica ettim ve benim için bu metodun içerisinde bulunduğu pardus-python paketini güncelleyip devel  deposuna gönderdi. Ancak diskutils içinde disk kullanımı ile ilgili herhangi bir metod yokmuş bende disk kullanımını öğrenmek için bir yol bulmaya koyuldum. Biraz araştırdıktan sonra python ile birlikte gelen os modülünde bu işi yapan statvfs adında bir modül olduğunu öğrendim. Bu metod diskin kapasitesi,ne kadar boş olduğu vs. bilgilerini hafıza blockları cinsinden kendine özel ama mantık olarak dicte benzer bir yapıda döndürüyor. Tabi metodun doğru çalışması için cihaz isminin değil bağlama noktasının verilmesi gerekiyormuş farketmem biraz zaman aldı. Tecrübesizlik başa bela işte elden ne gelir. Gerekli hazırlık bitmişti ve uygulamayı nereye yapacağımı bulmak için  Disk Yöneticisi kodlarını okumaya başladım. Kod okumak daha önce pek yapmadığım bir şey olduğu için önce kafam karıştı daha sonra biraz daha anlayabilmeye başladım. Kafama takılan noktaları da not ederek topluca sordum. Disk Yöneticisi disk bilgilerine erişmek için arka tarafta Çomar'ı kullanıyormuş. Çomar hakkında pek bir şey bilmiyordum. Diğer arkadaşlarımda benzer şeyler sormuş olmalı ki Gökmen Göksel bize  bir Çomar semineri verdi. Bir süre daha çalıştıktan sonra aşağı yukarı Disk Yöneticisi'nin nasıl çalıştığını öğrenmiştim. Kodu yazacaktım ama nereye yazacağım hakkında kısa bir tereddüt yaşadım sistem modülleri program boyunca kullanılmadığı için import'lardan da fikir edinemedim. Bir süre sonra arka tarafta yürüyecek bir iş olduğu için backend modülüne koymaya karar vermiştim. Kodu yazdım ama güncellediğim Disk Yöneticisi'ni çalıştırmayı beceremedim. Yardım istedim ve kod çalıştı (God bless Murphy :D) Aslında bir iki ufak tefek yazım hatasını düzelttikten sonra çalışmıştı. Sonra aklıma diskin belli bir kullanım yüzdesini aştığında farklı bir şekilde gösterilebileceğini düşündüm (İçiniz rahat edecekse bu fikri Windows'tan çaldığımı söyleyebilirsiniz). Ama Qt'de disk kullanımını ifade ettiğim QProgressBar widget'inin rengi doğrudan değiştirilemiyormuş. Bunun için CSS benzeri bir stil kodu yazmak gerekti. Eğer bir stilde artalan rengini ayarlayıp diğerinde ayarlamazsanız aynı kenarlık ayarlarını verseniz de farklı görünümler ortaya çıkıyormuş benden söylemesi. Her neyse hafta sonu içinde boşluk bulunan bağlama noktalarının hataya sebep olduğunu farkettim. Bundan ofiste bahsedince biraz uğraştıktan sonra dbus string ve python string arasındaki dönüşümden gelen fazla bir "\" in statvfs metodunun çalışmamasına sebep olduğunu farkettik. Çözümü benim boyumu biraz aşıyordu. Üzerinde biraz uğraştıktan sonra çözümü bulmuşlar (Ben o sıralarda orada değildim) Ama çözümü daha görme fırsatım olmadı onun ileride tekrar bildiririm.

İyi bir başlangıç yapamayıp yeterli performansı bence gösterememiş olsam da çalışmaya başladık.Bakalım stajın ikinci yarısı neler gösterecek

5 Temmuz 2011

Posted In: 2011 Pardus Stajı, Gezegen, pardus

Pardus Yaz Stajı : İlk Hafta

Aslında an itibari ikinci haftanın içindeyiz ama hafta içi hafta sonu toptan yazarım deyip hafta sonu da gayet yoğun olduğum için blog yazma işi şu ana kaldı. Gün gün yazayım. Çok uzun olursa bölerim.

İlk Gün :
Servis saatlerini takip etmemenin etkisiyle kendim gitmek zorunda kaldım. Her zamanki gibi E-5'e sorunlu bir çıkıştan sonra Harem-Gebze minibüsüyle Gebze'ye geldim. Minibüste benim gibi Pardus stajyerlerinden Fatih Durmuş ile tanışmam da hoş bir sürpriz oldu. Tübitak Gebze Yerleşkesi E-5'te Gebze Center kavşağından 5-10 dk yürüme mesafesinde ormanlık bir alanda güzel bir yer. Üniversite yerleşkesini epey andırıyor. Enstitü girişinde Pardus Geliştiricilerinden Serdar Dalgıç ile karşılaştık.Bize kantini gösterdi Orada Pardus ekibiyle beraber kahvaltı ettik. Enstitü içinde güvenlik oldukça yoğun hatta uzay üssünü andırmadı değil :) Ayrı bir alana yerleştirilmek yerine Pardus geliştiricilerinin çalıştığı odalara ikişer ikişer yerleştirildik.Hoş bir gelişme oldu aslında. Bilgisayarı kurmak çeşitli sorunlar nedeniyle uzun sürdü. Temin ettikleri bilgisayarların gayet iyi olduğunu da söyleyebilirim. Öğleye kadar kalan zamanda koordinatörümüz Renan Çakırerk'in yazdığı Stajyerin El Kitabına göz attım. Öğle yemekleri yemekhanede yeniyor. Üniversite yemekhanesi standartının bir hayli üstünde.
Öğleden sonra Pardus ekibinin neredeyse tamamının ve Proje Yöneticisi Erkan Tekman'ın katıldığı bir tanışma toplantısı yaptık. Hoş bir sohbet oldu. Zaten ofiste ilk farkettiğiniz şeylerden bir tanesi de şu oluyor ortamda sıkıcı ve ciddi bir hava kesinlikle yok. Hatta arkadaş ortamında çalıştıklarını gayet net bir şekilde söyleyebilirim. Akşama kadar QT ve Vim ile uğraştım. Güzel bir gündü ama oldukça yoruldum sabah 6 bir ikinci öğretim öğrencisi için çok erken :/

İkinci Gün:
En sevdiğim şeylerden biri olan serviste uyuma keyfine tekrar kavuştum :)
Öğleye kadar Qt ve Vim denemelerime devam ederken bir yandan developer.pardus.org.tr'deki kod yazım stili dökümanına baktım. Bahadır Kandemir Pardus ekibinden ayrılıyormuş. Öğleyin bir veda yemeği düzenlemeye karar vermişler. Yerleşkeye 5 dk kadar uzakta Beybaba (Fatih blogunda buradan Bayramoğlu olarak bahsetmiş sonra Enes'de ondan alıntı yapmış ama doğrusu bu :D ) adlı güzide bir mekana gittik. Hoş sohbet ve güzel yemekler birleşince harika zaman geçirdik. Tavuk köftesi denen şeyin varlığından da haberdar oldum :)
1 haftanın eğitim ile geçeceğinden haberdardım. Eğitim programının ilk gününde Camia Koordinatörleri ve bazı geliştiricilerle birlikte özgür yazılım üzerine biraz konuştuk. Özellikle özgür yazılımın bence çok önemli olan kültürel yönü hakkındaki duruşunu beğendiğim ve konuşmalarına elimden geldiğince katılmaya çalıştığım Koray Löker'i dinlemek her zaman ki gibi oldukça keyifliydi. Aynı zamanda bence ülkemizdeki en tecrübeli özgür yazılım geliştiricilerinden biri olan Onur Küçük'de gayet faydalı katkılarda bulundu. Aslında bir iki şeyi burada da yazmak istiyorum. Onur Küçük RMS'in konuşmasının ardından { Bilmök'te gelenler bilir RMS'in Pardus özgür değil sözünü söyledikten sonra olanlardan haberim yoktu. (Dipnot: RMS'in özgür dağıtım koşulları oldukça katı Mesela RMS için kablosuz sürücüsü [kurulu veya depolarında] bulunduran herhangi bir dağıtım özgür değil.) }Pardus standında "İyi bir dağıtım olmuş" dediğini aktardıktan sonra kablosuz (Wireless) aygıtların neden özgür ol(a)madığını açıkladı. Aslında sürücüleri özgürmüş ancak donanıma müdahale edebilmeyi sağlayan firmware yazılımlarının kapalı olması yasal zorunlulukmuş. Nedeni de şuymuş: Kablosuz cihazlar aslında temelde radyo alıcıları ve belirli radyo frekans aralıkları belli işler için kanunlarla belirlenmiş durumda ve bunların hepsi kamuya açık değil. Bunun gibi cihazın temel özellikleriyle oynanmaması için mevzu bahis firmware yazılımlarının kaynak kodları kapalı olmak zorundaymış. Diğer işletim sistemleri kullanımı ile ilgili de mevzu açıldı. Bu konudaki yaklaşımları her ne kadar sıcak bakmasam da mantıklı buldum. Koray Löker'in "Bir şeylerin yokluğuna alışmamız çok kolay. Mesela eğer Pardus'ta webcamler çalışmasaydı. Webcamlerin gereksiz olduğuna ikna olmamız en fazla 2 gün sürerdi." sözü de eksikleri,yanlışlıkları görmek neden diğer sistemlerin kullanılması gerektiğini güzelce açıkladı. Bu seminerin ardından koordinatörümüz Renan Çakırerk ve Yasemin Kuru (Soyadını yanlış hatırlıyor olabilirim yamuluyorsam düzeltin) Yazılım Yaşam Çevrimi ve yazılım geliştirme süreci ile ilgili 101 niteliğinde bir seminer verdiler.
Oldukça keyifli bir gün olduğunu söyleyebilirim.

Üçüncü Gün:
Bugün eğitim ağırlıklı geçti. Önce sabah Fatih Arslan'dan Vim dinledik. Bu aslında vim ile karşılaşmam değildi. Günlük işlerimde kullanmasam da hangi amaçla kullanıldığından yeteneklerinde falan haberdardım. Gerçi daha önce bana vimden bahseden gene Fatih Arslan'dı.Her neyse kendisi de vimi çok severek kullandığı için büyük bir heyecanla anlattı,gösterdi. Salondan yer yer "yok artık"  nidaları yükseldi ortaya da cheatsheet niteliğinde bir belge çıktı. Belgeyi Tuncer'in blogunda bulabilirsiniz  Ardından Serdar Dalgıç paketler ve paketleme ilgili bir eğitim verdi. Basitçe en baştan paket kavramından başlayıp paketlerin genel yapısından,nasıl oluşturuldukların ve ardından paketlemenin nasıl yapılacağından bahsetti ve örnek bir paket yaptık. Öğle yemeğinden sonra Onur Küçük ve Ozan Çağlayan Pardus'un açılış sürecinden ve Kernel'den bahsettiler. Tamamen fransız olduğum bir konu olduğu için merakla dinledim. Anlamakta zorlansam çok faydalı oldu. En çabuk gördüğüm faydasını şöyle söyleyeyim artık grub.conf veya menu.lst'yi anlayabiliyorum :)

Dördüncü Gün
Bugünki eğitimler Python-Qt ve Arayüz tasarımı ile ilgiliydi. Python'la zaten stajdan önce de güzel bir birlikteliğimiz vardı. Şaka bir yana gerçekten kullanmayı sevdiğim bir dil Python. Gökmen Göksel ipython üzerinde Python'u tanıtırken bende güzel ipuçları yakalayabildim. Hemen ardından Bertan Gündoğdu arayüz tasarımına dair genel bilgiler verdi. Arayüzün kullanıcı için programın tamamı olduğundan ve tasarımın kullanıcı odaklı olması gerektiğini anlattıktan sonra bu konuda yapılmış bazı araştırmalardan örnekler verdi. Öğleden sonra Gökmen Göksel ve Renan Çakırerk Python üzerinde Qt uygulama çatısını anlattılar. Qt Designer,Qt Assistant gibi QT araçları tanıttıktan sonra Qt programlamayı basit bir İnternet tarayıcısı ve Fotoğraf görüntüleyici yaparak gösterdiler. İnternet tarayıcısı'nın -Qt'nin Webkit kullanan araçlarıyla olduğunu belirteyeyim-  İE'den daha iyi olduğu esprisi tabii ki kaçmadı :) Hatta Gökmen Göksel adres kutusunda Qt'nin araçlarının nasıl modifiye edilebildiğini gösterdikten sonra en sonunda da pardus için yazdığı pds altyapısını bizlere gösterdi.

Beşinci Gün
Bugün öğleden sonra eğitimler bitecek projeler belli olacaktı. Projeleri görürken özellikle benim gibi bir yazılım geliştiricisi (ki bu ünvanı hakettiğimi de düşünmüyorum gerçi maksat söylediğim anlaşılsın) olacak son derece tecrübesiz olan biri nin olacağı gibi tedirgindim. Neyse sıradan gideyim  sabahki eğitimler hata çözme ve test yapmak üzerineydi. Önce Fatih Arslan daha önce blog'unda yazdığı hikayeyi bize uygulamalı olarak göstererek hataların çözümünde nasıl bir yol izlememiz gerektiğini gösterdi ve en sonunda quilt kullanarak yama yapmayı öğretti. Ardından Gökhan Özbulak paket testlerinin nasıl yapıldığını gösterdi ve staj sırasında kurumsal-2 deposunda bazı testler yapacağımızı söyleyerek bize seçmemiz için bir bileşen listesi verdi.
Öğleden sonra biz ofiste beklerken geliştiriciler staj projelerini belirlediler.Ama az bir vakit olduğu için seçimi hafta başına bıraktık.

Çok güzel bir hafta geçirdim ama daha yeni başlıyoruz ve daha yaşanmamış çok şey var.ileride elimden geldiğince aktarmaya çalışacağım. Biraz gecikmeli yazabilirim tekrar kusura bakmayın

28 Haziran 2011

Posted In: 2011 Pardus Stajı, Gezegen, pardus

Pardus Stajına Başlarken

Benim de seçildiğim 2011 Pardus Yaz Stajı yaklaşık ben yazmaya başladıktan 8 saat sonra başlayacak.Ve başlamadan önce bu staj hakkında ne hissediyorum,ne düşünüyorum,ne bekliyorum gibi soruları özellikle daha sonra bakmak için yazmak için yazmak istedim.

Çok genelden başlamak gerekirse. TÜBİTAK ülkemizin önemli bilim insanlarınca kurulmuş her ne kadar son yıllarda siyasi iktidar bazı müdahalelerde bulunmuş olsa da ülkemizin araştırma alanlarında lokomotiflerinden biri olduğunu düşündüğüm bir kurum. Özellikle TÜBİTAK yayınlarıyla büyümüş bir neslin ferdi olarak bu güzide kurumda kısa bir süre çalışabilecek olmak benim için gurur verici
Ayrıca bir özgür yazılım aktivisti olmaya çalışan (ne kadar beceriyorumdur takdir bana ait değil) biri olarak da ülkemizin en büyük özgür yazılım projelerinden birinde çalışabilme olanağı bulmam da bir mutluluk kaynağı benim için.

Peki beklentim neler
Öncelikle herkesinde tahmin edebileceği üzere tecrübe özellikle günlük hayatta kullanılabilecek hiç bir yazılım üret(e)memiş biri olduğum da düşünülürse bu çok önemli.
Bireysel değil takım içi çalışma tecrübesinin de ayrıca çok önemli olduğunu düşünüyorum.
Kısaca bu tecrübe bittiğinde bir ay sonra daha iyi bir yazılımcı/programcı olmayı umuyorum.

Bence önemli olan bir beklentim daha var.
Yaklaşık 2008 yazından beri Pardus'la ilgileniyorum.Son 1 sene içerisinde de toplulukta yer almaya çalıştım. Bu sürede gözlemlediğim önemli şeylerden biri de kullanıcılarla geliştiriciler arasındaki devasa iletişim bozukluğu.Özellikle kullanıcı tarafı Pardus geliştiricilerini yoğun bir eleştiri yağmuruna tutuyor.Sanıyorum ki geliştiricilere de söylenmedik söz kalmamıştır. Bu durum beni oldukça rahatsız etmekle beraber
Bu stajı bir anlamda da madalyonun öteki yüzünü görmek olarak düşünüyorum.
Nasıl çalışıyorlar,durumları neler,acaba kullanıcılar olarak onlara haksızlık ettiğimiz noktalar var mı gerçekten merak ediyorum. Bunu özellikle gözlemlemeye çalışacağım ve sizin onların açısından öğrenmek istediğiniz bir şey varsa mümkün olursa iletmek de ayrıca isterim.

Şu anlık düşündüklerim,hissettiklerim bunlar. Aklıma bir şey gelirse ekleme yapabilirim.
NOT: Pardus stajı ile alakalı yazılarımı dürüst bir şekilde yazmaya çalışacağım  "Onlara yaranmak için yazıyorsun bunları, Beynin yıkamışlar orada" şeklinde yorumlar yapmamanızı rica edeceğim.
Özellikle tartışmak istediğiniz bir şey varsa ugurcanergn@gmail.com adresinden ulaşabilirsiniz.

20 Haziran 2011

Posted In: 2011 Pardus Stajı, Gezegen, gnu/linux, Özgür yazılım, pardus, programlama

WP Twitter Auto Publish Powered By : XYZScripts.com