'Gezegen' Kategorisi için belgelik

Pardus’ta staj - 1′inci hafta

Bildiğiniz gibi Pardus’ta staja başlamıştım ve 4 haftalık süre sonunda Türkiye’de yaptığım ilk stajımı bitirmiş bulunmaktayım. Bu 4 hafta içinde bir çok şey öğrendim, hatalarımı da gördüm ve ileride ne yapabilirim sorusuna da az olsa cevabımı buldum. Hayatımda bir dönüm noktası olduğu kesin, en azından benim için, çünkü bundan sonra yapmak istediklerimi daha sağlam temeler ile yapabileceğim. Bu benim için çok önemliydi. Staj döneminde bana yardımlarını esirgemeyen herkese çokça teşekkür ederim, ne kadar teşekkür etsem azdır.

Staj dönemimde her akşam ne yaptıklarımı günlüğüme yazmıştım. Hem neler yaptığımı unutmamak için hem de ileride geriye dönüp neler yaptığımı ve nasıl bir gelişme yaptığımı gördüm. İyi ki de yazmışım. Ayrıca açık kaynak kodlu bir proje olduğu için yaptığım tüm kod değişiklikleri de kayıt altına alındı, yani hangi gün ne yaptığımı svn sunucusundan görebileceğiz. Sırayla hangi günler neler yaptığımı anlatayım:

  • 1.gün: İlk gün proje herkes kendini tanıttı. Daha önce neler yaptığımız ve Pardus hakkında neler bildiğimizi sordular. Ardından tahta’ya çeşitli projeleri yazdılar ve yaktın olduğumuz alanlara yönelik bize projeleri verdiler. Yaklaşık 1-2 saat boyunca bunu tartıştık tabi, kim ne yapmak istiyor, ne yapmak istemiyor bunların hepsi Pardus ekibi için çok önemliydi. Onların tek amacı bize 4 hafta boyunca en verimli zamanı yaşatmaktı. Bu günün sonunda “Synergy” projesini seçtim. Danışmanım ise Pınar’dı(Sonra değişti gerçi).Ardından tüm gün boyunca Synergy hakkında dokümanlar topladım, nedir ne değildir bunları öğrendim. Synergy ağ üzerinden çalışan bir program olduğu için en az iki tane bilgisayara ihtiyacım vardı. Bu yüzden ana bilgisayarım dışında bir tane de laptop verdiler. Sonrasında ise bu iki bilgisayara Synergy kurup çalıştırmaya çalıştım. Çalışırken takılıyordu, biraz araştırdım ve 2-3 tane patch buldum, ardından Faik abi ile bunlardan bir tanesini uyguladık.
  • 2.gün: Synergy için arayüz yazmaya başladım. Uygulamanın adına da Sinerji koydum. Türkçe ismi olsun dedim. İlk önce Kitaptan okuyarak PyQt ile denemeler yapmaya başladım, amacım biraz ısınmak ve bir şeyler öğrenmekti. Pınar Qt-Designer ile yapmamı istedi(Daha mantıklı çünkü, arayüz Qt-designer ile yapılacaktı, sonrası ise kendimiz elle yapacaktık) . Bu yüzden kitaptaki 7′inci bölümü okudum ve bir taslak oluşturdum. .ui dosyasını oluşturdum ve bunu mkpyqt.py ile python dosyasına çevirdim
  • 3.gün: Arayüz fikrinden vazgeçtik. Tasma için bir modül yazalım dedik. Ayrıca istemci tarafı otomatik olarak sunucun isteklerini kabul etsin dedik, yani biz Synergy’i çalıştırdıktan sonra diğer bilgisayar sadece kabul etsin, başka bir şey yapmasın dedik. Faik abi ağ’daki bilgisayarlar arasında bağlantı kurmak için avahi’yi söyledi bana. Avahi ile uygulamaları ağ üzerinden birbirleri ile iletişime geçmesini sağlayabiliyoruz. Örneğin Pidgin avahi kullanıyor, bu sayede hiç bir IM servisi gerekmeden, yani Msn, Jabber gibi bir protokoller gerekmeden avahi üzerinden de konuşabilirsiniz. Neyse bugün tüm günümü avahi’ye adadım, nedir ne değildir bunları öğrendim ve python ile nasıl kullanabileceğime baktım. Sitesindeki python bindingleri inceledim, Faik abi’nin yanına 3-4 kere gitmişimdir çünkü anlamadığım çok şey vardı(başını ağrıttım biraz yani). Günün sonunda ise bir servis oluşturabildim. Yani kısaca _sinerji._tcp altında bir servis tüm ağ’ya yayınlanıyordu. Herkes sinerjiyi görebiliyordu. (Not bundan sonra danışmanım Faik abi olacaktı)
  • 4.gün: Bugün hiç bir şey yapmadım. Çünkü ne yapacağımı tam bilmiyordum. Ayrıca tasma modülü yazamayacağımı öğrendim. Tasma Qt3 ile yazılmıştı, ben ise sadece PyQt4 biliyordum yani Qt4 biliyordum sadece. O yüzden tekrar arayüzü oluşturmaya başladım.
  • 5.gün: Faik abi ile tekrar projeyinin gidişatını değiştirdik. Arayüz farklı olsun dedik. Aslında Synergy’de sunucu ve istemci bilgilerini kendimiz yazıyorduk, sonra dedik ki, neden kendimiz yazıyoruz? Neden ağdaki bilgisayarları sinerji kendisi bulup bize göstermiyor. Yani sunucu tarafı da otomatik olacaktı. Ağdaki tüm bilgisayarları görüp, yönetmek istediklerimizi seçecektik. Kısaca bir ileri noktaya çıkartıp daha kullanışlı ve otomatik hale getirmeye başladık. 4 tane combobox(Her yönde bir tane) olsun dedik, ve buradan seçilsin dedik. Seçip programı başlatıktan sonra , karşı tarafta da combobox’larda istek yollayan bilgisayarlar görüntülensin dedik (bu benim fikrimdi). Fakat sonra bu fikirden de vazgeçip daha da kullanışlı bir hale getirecektik

(Not: Bu bir yazı dizisi, uzun olduğu için haftalara ayırdım her hafta için bir yazı, bu yazi birinci hafta’da yaptığım işler ile ilgili)

Verimliliği artıran minimal bir firefox teması ve eklentileri

Emre‘nin daha önce bahsettiği Chromifox temasını kullanmaya başladım. Gerçekten çok hoş ve sade bir tema olmuş. Google Chrome’u baz alan ve onun iconlarınu kullanan bir tema. Kurmak için Chromifox sayfasına gidebilirsiniz. Ayrıca menu çubuğunu da gizlemek için bir eklenti buldum, o da Hide Menubar. Kurduktan sonra alt tuşu ile istediğiniz zaman ön plana çıkartabilirsiniz. Son olarak bir de uzun linklerde domain ya da subdomain ismini daha belirgin kılmak için Locationbar eklentisini kullanabilirsiniz. Sonuç ise şöyle bir şey:

Sinerji’de son durum

Baya bir gelişme katedildi diyebilirim. Kullanabilinirlik açısından biraz düşündük ve arayüzünü hafif değiştirdik. Daha doğrusu küçültük diyebiliriz. Daha önce gördüğünüz ekran görüntüsünde üste iki tane radio-button vardı. Onları tamamen kaldırdık. Artık arayüz sadece başka bilgisayarı kullanmak isteyenler için hazırlandı. Ya peki başka birisi sizin bilgisayarı kullanmak istiyorsa ne olacak ? O zaman tray’de bir uyarı çıkıp size izin verip vermeyeceğinizi soracak. Ekran görüntüleri şu şekilde(Uygulama PyQt4 ile yazılmıştı hatırlarsanız, o yüzden KDE4 altında arayüzü biraz daha güzel duruyor):

Daha ufak tefek hataları var. Onları düzeltmeye çalışacağım. Proje bittikten sonra da yazdığım kodlar ile ilgili de ayrıntılı bir yazı yazacağım, nerde neyi nasıl kullandım, neler öğrendiğim gibi şeyler.

Host ve Godaddy ile ilgili fikirlerinizi merak ediyorum

Yakın zaman içinde Dreamhost hesabımı tekrar uzatmam gerekecek. Dramhost tarafından aldığım hizmet beni hep memnun etti, yani bu konuda herhangi bir sıkıntım yok. Fakat tek kişilik bir ekip olmam, ve sadece orta hali bir blog barındırmam benim yıllık 120 dollar ödememe engel teşkil ediyor.

Bu kadar ödemek gerçekten istemiyorum, çünkü 120 dolarlık bir iş yok ortada. Bu yüzden godaddy.com üzerinden bir domain alıp, ardından blogspot.com ve google apps uygulamaları ile devam etmek geçiyor aklımdan. Yani blog.arsln.org, mail.arsln.org gibi adresler olacak, fakat hepsi google üzerinde barındırılacak. Bu bana sadece yıllık 10 dolara mal olacak.

Sizde değer mi ? Tavsiye eder misiniz ?

Sinerji programı

Bildiğinizi gibi staj projem Synergy üzerine. Bir önceki girdimde Synergy’inin ne yaptığının sizlere anlatmıştım. Son bir hafta içinde bir çok şeyi yazdım. Arayüz de hala taslak, yani her an değişebilir. Çünkü nasıl yapılacağına tam karar veremedik. Ama son hali bu şekilde de olabilir.  Bunun dışında buradaki kişiler olmazsa bu 1 hafta içinde bu kadar şeyi yapamazdım herhalde. Özellikle Faik abi çok yardımcı oldu. Gerçekten çok şey öğrendim, hala da öğreniyorum. Keşke diyorum staj 4 hafta değil de 8 hafta falan olsa.

Arayüzü PyQt4 ile yazdım, ayrıca avahi ile olan kısım da bitti. Yani kendi servisini oluşturabiliyor ya da ağdaki belirli servisleri okuyabiliyor. Kendi sitesindeki Python binding’leri çok işe yaradı, zaten yaptığım aramalarda bir çok kişi de aynı şekilde kullandığını gördüm. Onlardan çok şey aldığım söylenebilinir. Zaten arayüz QuickSynergy’ye benziyor. Fakat biz ayrı bir konsept işledik, ve daha kolay olacak şekilde yapıyoruz. İleride Tasma modülü olarak doğrudan Tasma içinden kullanabileceksiniz. Qt4 ile yazıldığı için Tasma’da kullanabilmek için 2009 sürümünü beklemek lazım ama, çünkü şu anki Tasma Qt3 ile yazıldı.

Apayrı bir program oluştuğu için programın adına “Sinerji” dedim.  Kendisi de şöyle bir şey:

Burada üsteki bilgisayar “uekae-pardus” ile sağdaki bilgisayar “obsidian” kendi klavye ve faremiz ile kullanabileceğiz. Bu isimleri biz girmiyoruz, avahi kendisi buluyor ve ekliyor. Biz sadece listeden istediğimiz bilgisayarları seçiyoruz.

Pardus gibi bir yerde staj yapmanın ayrı bir güzeliği ise, yaptığım çalışmaları istediğiniz an bakabilmeniz ve inceleyebilmenizdir. Yaptığım tüm değişiklikleri svn deposuna yansıtıyorum. İlgilenenler ya da merak edenler http://svn.pardus.org.tr/uludag/trunk/staj-projeleri/sinerji/ adresinden çalışmalarımı takip edebilirler.

Staj Projesi - Synergy entegrasyonu

Staj başladı ve geride 3 gün bıraktım. İlk önce şunu belirteyim ki buradaki ortam çok şahane. Herkes birbirine yardım ediyor, destek sağlıyor, büyük bir aile gibi yani. Burada misafirhane’de Ankara TÜBİTAK‘ta çalışan 3-4 kişi ile de tanıştım. Sağ olsunlar onlar da baya yardımcı oldular, oluyorlar.Burada sanki herkes birbirini tanıyor gibi. Güzel bir yer, çok sevdim.

İlk gün tanışma faslından sonra  projeler tahtaya yazıldı ve sonra da beyin fırtınası yapılarak herkese uygun olan proje verildi. Emre Aladağ da bu konuda bir şeyler yazdı, okuyabilirsiniz. Benimki ise Synergy ile ilgili olan projeydi. Danışmanlarım ise Pınar ve Faik abi. Staj boyu süresince bu proje üzerinde çalışacağım, tabi erken ya da geç de bitebilir bilmiyorum henüz.

Synergy nedir ?

Bir örnek üzerinde açıklayayım. Linux kurulu bir bilgisayarınız var, bunu dışında bir tane de Windows yüklü ayrı bir makineniz var. Her iki bilgisayarı da kullanıyorsanız, ekranları da yan yana. Fakat her zaman klavyeleri değiştirmek, fareyi değiştirmek bir süre sonra zor olabiliyor. Synergy ile işte bir bilgisayarın, ki bunu siz belirliyorsunuz , bizim örneğimizde Linux kurulu olan, klavyesini ve farenizi her iki taraf için de kullanabiliyorsunuz. Ayrıca bu sadece 2 değil, 3 tane bilgisayar için de geçerli. Solunuzda Mac, sağınızda Windows, tek bir klavye ve fare ile hepsini kullanabilirsiniz.

Synergy nasıl çalışır ?

Her bilgisayar kurulması gerekir. Bir server olacak, bu bizim ana bilgisayarımız, bizim örnekte server Linux kurulu bilgisayar. Bir de client’ler olacak, bunlar da diğer tüm bilgisayarlarda olacak. Bizim örnekte Windows ve Mac yüklü bilgisayarlar client’tir. Synergy her bilgisayar yüklenmesi gerekiyor yine hatırlatayım. Ardından synergy.conf dosyası vardır, Server bilgisayarında düzenlenecek bu dosya, client tarafında ayara gerek yoktur.Fakat Client tarafı hangi bilgisayarın Server olduğunu bilmesi lazım, ve bunu da siz yazmanız lazım. Ayara gerek yok, ama “synergyc -f hostname” komutu ile belirtmeniz lazım, her client için geçerli olacak bu. O yüzden client tarafından da biraz uğraş var.

Pardus’ta Synergy entegrasyonu nasıl olacak peki?

Şimdi birinci kısım synergy.conf olayı olmayacak, tasma için hazırlanan bir arayüz olacak ve oradan kolay bir şekilden ayarlanabilinecek. İkinci kısım ise, server tarafı kolay bir şekilde tasma’dan ayarladıktan sonra, client kısmında hiç bir iş düşmeyecek. Avahi sayesinde client’ler server’den haberdar olacak, ve otomatik olarak synergy’e ayarlanacak. Synergy’de avahi desteği yok ayrıca, bu da eklenecek. Tabi bu sadece Pardus için geçerli olacak. İlerleyen zamanlarda daha tekntik detayları anlatacağım.

« Previous PageNext Page »