28
Ağu
20. gün de tamamlandı ve Pardus staj maceramız sona erdi. Daha öğrenilecek çok fazla şey, gidilecek çok fazla yol olduğu için ayrılmak istemesem de pılımı pırtımı toplayıp eve dönme zamanı geldi. Çok güzel insanlarla tanışma fırsatı buldum ve hepsine staj dönemi boyunca bilgilerini ve tecrübelerini benimle paylaştıkları için buradan teşekkür ederim.

Staja başladığımda Artistanbul'da çalışacağım için biraz tedirgindim. Sonuçta nasıl bir yerde çalışacağımı bilmiyordum ve Gebze'de çalışmak istememe rağmen Artistanbul tarafına seçilmiştim. Fakat gelecek senelerde de Artistanbul'da staj yapabilecek arkadaşlara belirtmek isterim ki burası oldukça keyifli ve teknik anlamda çok şey öğrenebileceğiniz bir yer, bazı açılardan daha avantajlı.

Teknik açıdan daha çok web (Django) üzerine çalışılıyor ve bu alanda gelişmek istiyorsanız ofiste size yol gösterebilecek Pardus ve Django konusunda çok bilgili iki kişi (Gökmen Görgen ve Ahmet Aygün) var .Özgürlük İçin, Pardus kullanıcılarına yönelik amaçları olan bir platform olduğu için burası daha çok Pardus'un toplumla ve çevresi ile olan ilişkileri hakkında kafa yorulan bir yer.

Stajımın son 2 gününü Ali Işıngör'ün de tavsiyesi ile Gebze'de Tubitak kampüsünde geçirdim. Geliştiricilerle tanışma  ve UEKAE'deki çalışma ortamını da görme şansı bulum. Bünyem sabah 9:30'da kalkmaya, işe 12 gibi başlamaya alışkın olduğundan 5:45'de uyanıp günde 4 saat yol gitmenin vücudumda 'Noluyor lan!' isimli hormonu salgılatması dışında UEKAE'de bulunmak harikaydı. Burası bir Ütapya. Sosyal yaşamın iğrenç çelişiklikleri içerisinden buraya geldiğiniz zaman önce çok şaşırıyorsunuz. Bilim ahlakına sahip, özgür düşünen insanların bir arada bulunduğu, iki insan arasında ayrım hissedilmeyen, sakin bir toplum. Zaten böyle olması gerektiğini düşününce kendinizi hep olmak istediğiniz yerdeymiş gibi hissediyorsunuz , şaşkınlık yerini keyif ve mutluluğa bırakıyor.

Staj projem olan tema2'yi henüz tamamlayamadım. Önümüzdeki hafta evden çalışarak commit yapmaya devam edeceğim.
20
Ağu
Tema2 Oİ için tarafında büyük oranda tamamlandı. Simge setleri de içeriklere eklendi. Çok yakında süprüz yaparak sitede değişiklikleri yayına sokabiliriz. Önümüzdeki hafta için işin benim sevdiğim kısmına geldik ve KDE üzerinde (KNewStuff) çalışmaya başlayacağız. Ayrıca django-piston ile  Oİ için bir Rest API'si yazacağız. Geriye kalanların hepsini bir haftaya sığdırabilir miyiz emin değilim fakat tüm haftalardan daha yoğun geçeceği muhtemel. "Çok kolay benim proje, iki haftada bitirim" laflarımı da yemiş oldum böylelikle.
16
Ağu
Dün gerçekleşen Oİ IRC toplantısı sonrasında tema2'ye simge setlerini de ekleme kararı aldık. İçerikleri indirirken 3 saniyelik gereksiz beklemeyi de kaldırdık. Oİ deposuna commit yapmama rağmen şu sıralar tema modellerinde çok sık değişiklik olduğu için depoya gönderdiğim commitler Oİ'de henüz görünür değil. Bu arada tema yenileniyor fakat yeni bir Django uygulaması olarak değil. Yani Engin'in beyin2'deki izlediği yoldan farklı olarak, var olan kodda değişiklik yapıyorum.

Dünkü toplantıda eklenmesi istenen bir diğer özellik sistem sesleriydi, fakat uygulanabilirlik açısından ne kadar kullanışlı olacağını henüz kestiremediğimiz için bu fikri tekrar düşünmek üzere erteledik. Duvar kağıdı yarışması da kısa süreli ertelemek zorunda kaldığımız bir diğer güzel fikirdi. Staj dönemim içinde bazı tema içeriklerini Pardus içerisinden erişilecek ve uygulanacak şekilde entegre etmek istediğimiz için yeni özellik eklemeyi sanırım bir yerde kesip onlar için kafa yoracağız.

Yazıyı okuyanlar için Django ile ilgili ayrıntıları ve kullanıcı seviyesindeki özellikleri bir arada anlattığım zaman hoş olmayacağını düşündüğüm için Django ile ilgili teknik detayları atlamaya özen gösteriyorum. Başka bir yazımda teknik olarak neler yaptığımı biraz ayrıntılı şekilde  anlatmak istiyorum.
13
Ağu
Stajda 2. haftamı tamamlamış bulunmaktayım. Zaman hızlı geçti. Şu ana kadar Özgürlük İçin için yaptığım değişikliklerin hiçbirisi görünür durumda değil fakat yavaş yavaş bazı kısımları tamamlamaya başladım. Merak edenler için tema'dan bir ekran görüntüsünü de burada paylaşayım. Teknik bir detay içermese de umarım merak uyandırır.

Bu arada Ali Işıngör ofise geldiğimde beni eşek şakaları konusunda uyarmıştı fakat pek ciddiye almamıştım. Bugün ilk eşek şakasına uğradım. Yemeğe gittiğim sırada 2-3 kişilik organize bir eylem olarak düzenlendiğini tahmin ediyorum. Yemekten sonra konsol ekranımda Python'u çalıştırmayı denediğimde şok edici bir hata mesajı ile karşılaşmıştım. Gökmen Görgen'e (yemeğe birlikte gitmiştik) durumu anlatınca ilk başta o da şok oldu :) Hemen ekran görüntülerini filan aldık. Fakat Gökmen'in şaşkınlığı benden kısa sürdü ve "Biri seni kekliyor oğlum" diyerek numaranın kaynağını buldu. Çok ucuz bir .bashrc şakasına kurban gitmiştim. Fakat oldukça iyi bir espriydi. Hatayı Python listelerine raporlamadan önce ortaya çıktığı için yine de şanslıydım. Bundan sonra oturumumu açık bırakıp gitmemeyi öğrenmiş oldum.


10
Ağu
Bugün Özgürlükİçin'in yeni beyin2'sinde ortaya atılan fikirlerden birisini  beğenerek Özgürlükİçin tema bölümü için uygulamaya karar verdik. Beyinde ortaya atılan fikirlerin hepsi ofiste merak ve dikkatle inceleniyor, yeni ve güzel fikirler heyecanla karşılanıyor. Beğendiğimiz ve uygulayacağımız fikir tema kısmında Open Office eklenti ve şablonlarına yer verme fikri oldu. OpenOffice.org'da yer alan şablonları inceledikten sonra, biz de özellikle Türkiye'de işimize yarayacak pek çok kullanışlı yeni şablonun buraya eklenebileceğini düşündük.· Open Office için sınırsız bir özelleştirme imkanı mevcut ve daha fazlası geliştiricilerimizin hayal gücüne kalmış.

Beyin benim Özgürlükİçin'de en çok hoşuma giden kısımlardan birisi, yeni ve uygulanabilir pek çok fikir burada ortaya  çıkabiliyor. Beyin tam Pardus ile kullanıcılar arasında bir köprü kurma görevini üstlenmiş Özgürlükİçin'in hedefine yönelik bir uygulama. Bazen kullanıcılar için son derecede önemli ve uygulanması oldukça basit fikirler çıkabiliyor.  Uygulanabilirlik derecesi düşük fikirleri dahi okuyup gülüp geçmek yerine bir şekilde ciddiye almak, hem kullanıcıların neler düşündüğünü anlamak hem de ileride düşünülebilecek fikirlere bir kıvılcım oluşturabilme ihtimali olması açısında çok faydalı bana göre.
6
Ağu
Artistanbul gerçekten çok keyifli bir yer. Bir haftadır burada staj yapmanın bana verdiği keyfin neler olduğunu düşünüyorum. Pek çok nedeni var ve en güzel yanı şu demek diğerlerine haksızlık olur. Buradaki herkes özgür yazılımı gerçekten seven insanlar ve yaptıkları işe bu yüzden çok fazla önem veriyorlar. Bunun heyecanını görmek ve benimle paylaşmaları sayesinde ben de yaptığım işten, burada bulunmaktan çok fazla keyif alıyorum. Bu mutluluk ve çalışma heyecanını anlatmak zor. Bu gerçekten burada bulunarak anlaşılabilir. 'Dahil olmak' dedikleri böyle bir şey ve kendinizi yapılan güzel işlerin bir parçası olarak görmek öğrendiklerinizi daha anlamlı kılıyor. Zaten bu da özgür yazılımın neden daha zevkli olduğunun bir nedeni. Burada işin teknik yanı, diğer yanlarından daha az önemli. Herkes konuşmak sosyal anlamda bir şeyler paylaşmak istiyor, bu sayede bir robot gibi değil değerleri olan insanlar olarak bilgisayarın başında herkes. Ali Işıngör ile özgür yazılım ya da herhangi bir başka konuda bir şeyler konuşabilmek kod yazmaktan değerli benim için. Zaten sadece bilgisayar değil ofiste insanların o an aklının ucundan köşesinden geçen herhangi bir saçma şey ile ilgili muhabbetler başlayabiliyor her an. Kızlar gittikten sonra bizimkiler ile erkek erkeğe muhabbet etmek de apayrı bir keyif.

Tüm bu muhabbetler, şakalaşmalar, şamata, kaos ve dövüş müsabakalarının dışında buradakiler geri kalan zamanlarını sıkı bir biçimde çalışarak geçiriyorlar. Benim de staj döneminde yapacağım şey Özgürlük İçin' in tema kısmında iyileştirmeler yapmak olacak. Ayrıca geriye kalan vaktimde KDE'nin eski Get Hot New Stuff çatısının yerini alan KNewStuff ile Pardus üzerinden Özgürlük İçin'in REST API' sine erişerek yeni masaüstü bileşenleri indirilebilen ve uygulanabilen bir entegrasyon yapmayı hedefliyorum.
4
Ağu
pyv8, Google tarafından geliştirilen ve Google Chrome'da da kullanılan V8 Javascript motoru için yazılmış bir çeşit wrapper. Bu sayede Python programları içerisinde gömülü olarak Javascript kodu çalıştırabiliyoruz. pyv8 V8 API'sini kullanarak çalıştırdığı Javascript kod parçacıklarının sonucu olarak dönen Javascript nesneleri ile Python nesneleri arasında bir köprü kurma görevini yerine getiriyor. Ayrıca Python'da oluşturduğunuz bazı özel sınıfları Javascript'e aktarıp orada kullanmanıza da olanak sağlayabiliyor.

>>> import PyV8
>>> ctxt = PyV8.JSContext() # bir javascript ortamı oluşturduk
>>> ctxt.enter()
>>> ctxt.eval("1+2") # javascript kodunu string argümanıyla çalıştırıyoruz
3 # dönen cevap bir python integerı
>>> class Global(PyV8.JSClass): # javascript ile uyumlu bir sınıf
... def hello(self): # bir javascript metodu
... print "Hello World"
...

>>> ctxt2 = PyV8.JSContext(Global()) # yeni javascript ortamımıza bu sınıfı dahil ettik
>>> ctxt2.enter()
>>> ctxt2.eval("hello()") # artık bu sınıfın metoduna javascript içinde erişebiliriz
Hello World # dönen cevap bir python nesnesi

Kütüphane kurulumu ve çalışması için Python haricinde programlara ihtiyaç duyduğu için kaynak dosyadan kurulumu bazı bağımlılıklar gerektiriyor. Bununla ilgili bir belge mevcut: http://code.google.com/p/pyv8/wiki/HowToBuild. Windows kullanıyorsanız çalıştırılabilir kurulum dosyaları ile tek adımda kurulabiliyor.

Javascript kodu yazarken kullandığımız onclick, XMLHttpRequest, window.open, document.url, DOM elementleri gibi özellikler Javascript'in özellikleri değildirler ve bunlar Javascript motorları tarafından sağlanmaz. Bu özellikleri tarayıcılar eklentiler ile sağlarlar. pyv8 ile bu değişkenleri kullanmaya çalıştığınız zaman tanımlı olmadıklarını belirten bir hata alırsınız.