10
Eyl

WordPress’te “Tanrı Yanılgısı” diye bir başlık attığınızda, WordPress’in sizin için ürettiği URL’e bakalım:

http://blog.gokmengorgen.net/2010/09/09/tanri-yanilgisi/

Tam istediğimiz gibi. Django ile bir blog uygulaması yazıyor olsaydım, sanırım biraz sıkıntı çekecektim:


In [1]: from django.template.defaultfilters import slugify

In [2]: slugify('Tanrı Yanılgısı')
Out[2]: u'tanr-yanlgs'

Gitti ı’lar… Türkçe karakterler arasından Django’nun slugify’sinde çalışmayan tek karakter küçük harfle yazılmış ‘ı’. Baştan slugify fonksiyonuna bir yama yapıp Django ekibine göndermeyi düşündüm; fakat sadece Türkçe’yi dikkate aldığım için büyük ihtimalle yamam reddedilecekti. Ben de bir utils.py dosyası açıp şöyle bir slugify fonksiyonu yazdım:


def slugify_unicode(value):
    value = value.replace(u'\u0131', 'i')
    value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
    value = unicode(re.sub('[^\w\s-]', '', value).strip().lower())

    return mark_safe(re.sub('[-\s]+', '-', value))

Bu fonksiyonu iPython’da denediğinizde patlıyor; ama sitede kullandığınızda herhangi bir sorunla karşılaşılmıyor. Bunun sebebi, ‘ı’ harfinin iPython konsolunda \u0131 olarak dönmemesinden kaynaklanıyor:


In [5]: u"Tanrı Yanılgısı"
Out[5]: u'Tanr\xc4\xb1 Yan\xc4\xb1lg\xc4\xb1s\xc4\xb1'

Bu bana Python’un garipliği gibi geliyor ve Python3′te sorunun düzeltildiğini söylüyorlar (Python3′te unicode default olacak). Henüz denemedim. Emin olmamakla birlikte, slugify fonksiyonu için değer olarak verdiğim başlığın Django’dan “Tanrı Yanılgısı” olarak değil de, “Tanr\u0131 Yan\u0131lg\u0131s\u0131″ çekilmesinden kaynaklanıyor:


In [24]: x = u"Tanr\u0131 Yan\u0131lg\u0131s\u0131"

In [25]: x
Out[25]: u'Tanr\u0131 Yan\u0131lg\u0131s\u0131'

In [26]: slugify_unicode(x)
Out[26]: u'tanri-yanilgisi'
16
Kas

Son girdimden sonra uzun zamandır günlüğüme bir şey yazmamışım. Önemli gelişmeler hakkında kısa kısa bilgi vereyim:
* Artık eskisi kadar Pardus’a gereken ilgiyi gösteremiyorum, bazen benim geliştiricilik hayatımdaki yalnızlığımı farkeden arkadaşlar özel bir eposta atıp “Size yardımcı olmak istiyoruz, biz de katkıcı olmak istiyoruz.” şeklinde isteklerde bulunuyorlar. Birçoğuna cevap veremedim bile; ama darılmasınlar. Ne ben geliştiriciliği bıraktım, ne de sizin geliştirici olmanızda hiçbir şekilde engel yok. Önce Pardus wiki’sindeki geliştirici belgelerini okumakla başlayın[1], sonra da birilerinin size bir şeyler yaptırmasını beklemeksizin biran evvel faaliyete geçin. Hata yapmaktan da çekinmeyin. Önemli olan, geliştiriciler sizden hatanızı düzeltmenizi istediğinizde, o hatayı bir daha yapmamak için elinizden geleni yapmak.

* İstanbul’da güzel bir yerde çalışmaya başladım. Hayatımın çoğunu artık İstanbul’da geçiriyorum. Eskişehir’de artk çok bir işim kalmadı. işimin Python ve web işleriyle ilgili olması biraz benim şansıma denk geldi. Yıllardır içimde biriktirdiğim Python ile bir web uygulaması yapma enerjisini artık güzel sonuçlar doğurması umuduyla tüketiyorum.

* Puding’le[2] de iş yoğunluğundan dolayı ilgilenemiyorum; ama ileride sürpriz yapma olasılığım var. Bunun yanında Twity[3] ile ilgili ilerleyen zamanlarda güzel gelişmeler duyacağınızı umuyorum.

* Kimseye kırgın, dargın veya üzgün değilim. Her şey olması gerektiği gibi ve her şey yerli yerinde.

* C++ öğrenmeye devam =)

[1]: http://tr.pardus-wiki.org/Pardus:İçindekiler#Geli.C5.9Ftirici_.2F_teknik
[2]: http://github.com/gkmngrgn/puding
[3]: http://github.com/tunix/twity

15
Eki
6
Eki

Puding’in qt arayüzü de yavaş yavaş bitiyor. An itibariyle çalışıyor görünmesine karşın, olası yanlış kullanımda beklenmedik bir hatayla karşılaşmak muhtemel. Bu yüzden şimdilik playground’umda durmaya devam edecek. İlgili videosunu şuradan izleyebilirsiniz:

Peki, Neler Eksik?

  • İlginç bir şekilde, Türkçe çevirisini yapmakta zorlanıyorum. Daha doğrusu, Türkçe olarak düğmelerin, pencerelerin ve anlamların en iyi nasıl ifade edileceği konusunda pek emin olamıyorum.
  • Henüz bağlanmamış (handle edilmemiş) hatalar olabilir.
  • Şimdilik en temel hedef, bir Pardus kalıbını USB belleğe sorunsuz aktarabilmek. İleride sadece temel sistem kurulumu yapacak şekilde Pardus kalıbını USB belleğe yazdırabilmek; Windows veya diğer GNU / Linux dağıtımlarında da Puding’in çalışmasını sağlayabilmek gibi birçok ihtiyacı karşılayabilecek şekilde altyapıyı hazırlamamız gerekiyor.

Eğer Katkıda Bulunmak İsterseniz

Şu şekilde paketini yapıp kurabilmeniz mümkün:
# pisi bi http://svn.pardus.org.tr/pardus/playground/ggorgen/puding/pspec.xml -d
# pisi it puding*.pisi

Şuraya da Puding ile ilgili bulduğunuz hataları ve talep ettiğiniz özellikleri yazabilirsiniz (GitHub üyelik istiyor olabilir):
http://github.com/gkmngrgn/puding/issues

22
Eyl

Pardus staj projelerimden biri olan Puding’in son hali için Vimeo’ya görüntü yükledim. Son kullanıcı olarak uçbirimde nasıl USB’ye Pardus kalıbı oluşturabileceğinizi ve biraz da Puding’in uçbirimde neye benzediğini görmek için izlemenizi tavsiye ederim:


Qt arayüzü bitince onun da görüntüsünü koymayı düşünüyorum, şimdilik resimleri koyuyorum:

puding_qt1

puding_qt2

puding_qt3

19
Tem

Pardus 2008′de Wicd’i yükleyip hemen ardından çalıştırdığımız zaman, bir bildirim penceresiyle karşılaşıyorduk, “Wicd servisini başlatınız!” gibisinden. Pardus 2009′da son Wicd güncellemesiyle, her Wicd servisini başlatmayı unuttuğunuzda sizden PolicyKit yardımıyla yetkilendirme için parola istenecek ve hemen ardından Wicd çalışabilecek. Tabi bu ayrıntı, son kullanıcıların çok da farkına varabilecek ve onları ilgilendirecek gibi durmasa da, bir geliştirici olarak COMAR’ı oldukça ilgi çekici bulduğumu söylemeden edemeyeceğim.

Wicd & PolicyKit on Pardus from Gökmen Görgen on Vimeo.

Bununla beraber, Wicd’e yaptığım PolicyKit yamasını ve yazdığım betiği şuradan bakabilirsiniz:
http://svn.pardus.org.tr/contrib/2009/devel/network/connection/wicd/files/

13
Tem

Xfce’nin öntanımlı internet tarayıcısı Midori an itibariyle Pardus 2009 katkı deposu derleme çiftliğinde derlendi ve depoların eşlenmesiyle yarından itibaren -umarım- yüklenmeye hazır olacak. Xfce’nin öntanımlı internet tarayıcısı ve Firefox’tan da daha minimal yapıda olduğu için xfce-utils paketinde öntanımlı internet tarayıcısını Midori olarak ayarladım. Bundan sonra, temel Xfce kurulumunu gerçekleştirdiğinizde, Xfce ile beraber Midori de kurulacak.

Diğer taraftan, uzun bir süre Review sürecinde onay bekleyen MonoDevelop da en minimal haliyle nihayet depoya girdi ve uzun bir süredir kapatamadığımız Bugzilla girdisini böylece kapatabildik[1]. Zamanla eksik bağımlılıkların paketlenip depoya girmesiyle MonoDevelop’un devre dışı bırakılan özellikleri açılacak.

[1]: http://bugs.pardus.org.tr/show_bug.cgi?id=3042

Pardus-default-settings-xfce paketinin review’den geçip depoda yerini almasından sonra, bir hevesle Pardus 2009′a özel bir açılış teması hazırlamayı denedim, öntanımlı açılış temasından daha özel ve güzel olduğunu düşünüyorum:

Bu paket Xfce’nin temel bileşeninde olduğu için herhangi bir ekstra paket yüklemenize gerek kalmayacak. Dolayısıyla, sıfır model Pardus 2009′unuza Xfce kurmak için yapmanız gereken tek şey, uçbirimde bu komutu kullanmak:

$ sudo pisi it -c desktop.xfce.base -y

Xfce araçlarının özelliklerini geliştirmek için gerekli eklentilerin hepsini birden yüklemek için, ayrıca şu komutu da kullanın:

$ sudo pisi it -c desktop.xfce.addon

Son olarak Pardus’un öntanımlı giriş yöneticisi olan KDM 2009 sürümünde kdebase paketinden ayrıldı, yani KDM’yi silmeden kdebase’i sisteminizden kaldırmak mümkün. Ama yine de GDM kullanmak isterseniz (tarafımca önerilir), iki adımlık bir işiniz var. Önce kurun:

$ sudo pisi it gdm

Ardından da /etc/conf.d/xdm dosyasını açıp kdm yazan yeri gdm olarak değiştirin:

# Preferred display manager
DISPLAY_MANAGER="gdm"

# Cursor theme
#XCURSOR_THEME=""

Böylece sistem açılışında xdm servisi, öntanımlı olarak KDM yerine GDM’yi çalıştıracak.

Son olarak Pardus 2009′un çıkmasına 4 gün kalmışken bir öneride bulunmak istiyorum; Xfce kullanıcısıysanız, o büyük gün tekrar bu yazıyı okumanızı tavsiye ederim. Karşılaştığınız sorunları yorum olarak yazabilirsiniz.

19
Haz

Üç yeni haber. Birincisi, hepimizin bildiği gibi Pardus 2009 Beta sürümü bugün bir aksilik olmazsa yayınlanacak. Bununla beraber, depoda Xfce’nin son sürümünü bulabileceksiniz:

xfce

Eh farkettiğiniz gibi Pardus için özelleştirmeler şimdilik devredışı. Bu henüz devredışı olan özelleştirmeler arasında, klavye kısayollarının (alt + f2, print tuşu gibi) da olduğunu belirtmeliyim. Ama “Benim için sorun değil, ben kendim ayarlarım” derseniz, şu şekilde kurmanız mümkün (depolar henüz eşlenmemiş olabilir):

$ sudo pisi it -c desktop.xfce

Buna ek olarak, OpenOffice’in artık KDE bağımlısı olmadığını söylemekte fayda var. Eğer OpenOffice’i görsel uyum açısından GTK+ arayüzüyle kullanmak isterseniz, openoffice-kde paketini silmeniz yeterlidir. Sıklıkla kullandığınız internet tarayıcınız Firefox içinse, hm bir şey yapmanıza gerek yok. O zaten GTK+ =).

Ayrıca.. Uzun zamandır depoya girmek bilmeyen MonoDevelop, güncel Pardus 2009 deposu için hazır ve şuan review aşamasında:

monodevelop

Umarım Pardus 2009 kararlı sürümü çıkmadan depoya girer ve Mono kullanıcılarına bir sürpriz yapmış oluruz.

11
May

Cuma günü Eskişehir Osmangazi Üniversitesi Bilişim Günleri’ne Ali Işıngör ile Akın Ömeroğlu’yu davet etmiştim. Geldikleri için kendilerini pek teşekkür ederim. İki tane güzel bir sunum verip dinleyicileri kendilerine hayran bıraktırdılar; ama sonlara doğru ilginç bir soru gelmişti. Soruyu tam olarak hatırlayamıyorum; ama duyduğumda bende yarattığı gerginliği hala hatırlıyorum. Deniyor ki, bizim sunumlarımızda Microsoft karşıtlığı sezinleniliyormuş..

Bu çok ilginç ve belki de yanlış bir önyargıdır. Esasında kendi kişisel fikrimiz sorulduğunda “Evet, ben bir Microsoft karşıtıyım.” denmesi mümkündür ve bunda anormal bir şey de yoktur. Tıpki Microsoft teknolojilerine hayran kitlelerin GNU / Linux’un gelişimine bir türlü anlam verememesi gibi bir şey bu. Ama bir iki insanın sahneye çıkıp da OOXML veya Pardus ile ilgili bir sunum yapmasının Microsoft karşıtlığı ile alakası nedir, bunu gerçekten çok merak ediyorum.

“OOXML, kusurlarıyla bilinen standart dışı bir xml standardıdır.” diyerek dinleyicileri bilinçlendirmek; onların bir belge paylaşırken, oluştururken veya açarken ne tip bir dosya biçimi kullandıklarını dikkat etmelerini sağlamak neden Microsoft karşıtlığı olarak algılanıyor ki? Microsoft kullanıcıları gerçekten bu kadar vahim bir şekilde, önlerine ne verilse kabul edilecek bir müşteri kitlesi olmamalılar. Gerektiğinde kendi hak ve özgürlüklerini arayabilmeliler ve tavrını ortaya koyabilmeliler.

Diğer taraftan, dinleyicileri Pardus kullanmaya davet etmek de Microsoft veya bilmemne karşıtlığı olarak algılanmamalı. Öyle olsaydı, Daron’un kendi günlüğünde yazdığı kişisel düşüncelerini de Pardus karşıtlığı olarak ciddiye almamız gerekecekti; ama malesef kendisinin bu ekosistem hakkında bilgisi olmadığı için, ki anladığım kadarıyla bu devasa ekosistemin varlığından da bihabermiş, yazdıkları, yaşadığı birkaç olumsuz deneyimden öteye gidememektedir.

Birileri Pardus hakkında daha doğru, yapıcı ve ciddi eleştirilerde bulunsalar keşke diye internette pek sık geziniyorum; Ozgurlukİcin Fikirler’den çıkanlar dışında başka yerde kaliteli eleştirilere pek rastlayamadım. Geçenlerde bir arkadaşım Pardus’ta C# kodlama yapamadığından şikayetçi olmuştu, bunun için neyin eksik olduğunu sorduğumda, Visual Studio benzeri bir uygulamanın olmadığını söylemişti. Oysa Mono’nun son sürümü depomuzda mevcut, kod yazmak işinin yarısını nasıl bilgisayara yaptırabilirim diye soru sorsaydı, o zaman daha tatmin edici cevap verebilirdim kendisine: Bir aksilik olmazsa MonoDevelop Pardus 2009′da yerini alacak. Bu gece 2009 katkı depolarının hazırlanmasından sonra tekrar MonoDevelop paketleme işlemine geri döneceğim.

Son olarak, Lenovo Ideapad s10 netbook’a tam Arclinux kurmak üzereydim ki, Pardus CD kalıbını usb belleğe yazmakla ilgili, Selim Tavşan tarafından yazılmış çok güzel bir wiki sayfası buldum[1]. Pardus 2009 PreAlpha3 için denedim, oldu ama biraz güncellenmesi gerekiyor, geniş bir zamanda el atacağım.

P.S. Pardus stajına kabul edilen 13 kişiden biri oldum, Pardus’a katkı sağlamakla ilgili çok müthiş bir fırsat geçti elime. Bu sene seçilemeyen arkadaşlar üzülmesinler, geçen sene ben de seçilmemiştim =)

[1]: http://tr.pardus-wiki.org/NASIL:USB_bellekten_bilgisayara_Pardus_kurmak

2
May

Eğer Git hiç kullanmadıysanız, mutlaka önce araştırmanız, denemeniz, fikir sahibi olmanız gerekiyor. Aksi halde aşağıdaki yazdıklarımın size bir şey kazandıracağı konusunda endişeliyim =).

Git, Linus’un, Linux kernelinin geliştirilmesinde kullanmak amacıyla yazdığı bir hızlı sürüm kontrol sistemidir veya sürüm yöneticisidir. Piyasada birçok sürüm yöneticisi bulunmaktadır. Örneğin Pardus geliştiricileri paket yapımında Subversion kullanırlar, Archlinux’ta SVN CVS karışık kullanılmaktadır[1]. Her sürüm kontrol sisteminin birbirlerine göre üstünlükleri ve dezavantajları sözkonusudur. Eğer “Neden Git kullanmalıyım?” diye kendinize soruyorsanız, buna benim vereceğim pek tatmin edici bir cevabım yok; ama şöyle bir bağlantı var, gayet hoş:
http://whygitisbetterthanx.com/

Yalnız bu bağlantıda son madde olarak “Easy to Learn” yazmışlar, o konuda biraz tereddüt ettim, hele ki bayadır SVN kullanıyorsanız, kafanızın haylice karışması mümkün. Çevrimdışı depoda çalışma olayını ilk başta fena halde garipsemiştim. Ama Git’i hızlıca öğrenmek için mutlaka bir GitHub[2] hesabı açın, kurcalayın, alıştırmalar yapın. Şimdi gelelim Gitosis’e..

Gitosis, Git sunucusu kurmanın en güzel yoludur. Bir depo oluşturuyorsunuz, bu depoda görev alacak kullanıcıları (ssh genel anahtarlarını) ekliyorsunuz ve böylece git clone ile depoyu indirip çalışma arkadaşlarınızla ortaklaşa bir yazılım geliştirme fırsatı elde etmiş oluyorsunuz. Ama..

Ama gitosis, sadece izinleri verilmiş kullanıcılar tarafından deponun klonlanmasını sağlayabiliyor. Başka türlü sizden sunucudaki gitosis kullanıcısının şifresini soruyor. Belki gitosis ile oluşturulan depoda sunucu tarafında git daemon export ok komutunu çalıştırmak bunun için işe yarayabilir, henüz deneme fırsatım olmadı. Şimdi gelelim gitosis’in nasıl kurulacağına..

Öncelikle gitosis bağımlılıkları olarak dağıtımınızın paket yöneticisinden git, python ve setuptools’u kurmalısınız. Ayrıca sunucuyla bağlantıyı sağlayabilmek ve gitosis erişim hakkına sahip olabilmek için de SSH kurmanız ve openssh servisini çalıştırmanız gerekir. Bunları kurduktan sonra, gitosis deposundan gitosis’i git’le indiriniz (Nasıl cümle ama?):

$ git clone git://eagain.net/gitosis.git

gitosis dizinine girin. O dizinde root olarak şu komutu verin:

# python setup.py install

Kurulum bu kadar. Ama gitosis için kullanıcı adı ve grup eklemeniz gerekiyor. Bu kısım Pardus kullanıcılarının canını biraz sıkabilir; çünkü her baselayout güncellemesinde bu adımı tekrar tekrar yapacaklar[3]. Sebebi, kullanıcı ve grup bilgilerini tutan dosya baselayout’tan çıkıyor ve siz güncelleme yaptıkça o dosyanın üzerine, yeni baselayout paketinden çıkan dosya yazılacak. Kullanıcı ve grup oluşturma işlemi için root olarak şöyle yapıyorsunuz (Eğer dağıtımınızda /srv dizini bulunmuyorsa /var/spool/gitosis olarak deneyin.):

# mkdir /srv/gitosis
# groupadd -r gitosis &> /dev/null
# useradd -r -m -k /dev/null -g gitosis -d /srv/gitosis -s /bin/sh gitosis &> /dev/null
# chown gitosis:gitosis /srv/gitosis

Kullanıcı ve grubu oluşturduk, gerekli izinleri ve sahiplikleri ayarladık. Bundan sonraki adımımız gitosis’le depo kurulumuyla ilgili olacak. Burada bazı şeyleri açıklığa kavuşturmam gerek. Gitosis’in kurulu olduğu sunucu, bu sunucudaki zorunlu gitosis kullanıcı hesabı, gitosis kullanıcı hesabı dışında herhangi bir gitosis depo yöneticisi olan herhangi bir kullanıcı hesabı ve gitosis depolarına erişimi olan kullanıcılar; işte bunların hepsini birbirlerinden bağımsız olarak ele almanız gerekli. Yani tutup da ben gitosis kullanıcısı açmışım, hem gitosis kullanıcısıyla depo yöneticisi, hem kullanıcı, hem de depoları sunucudan yönetirim diye bir mantık sakın yürütmeyin. Hem güvenli olmayacaktır, hem de muhtemelen bundan sonra yazacaklarımda başarısız olacaksınız. Bu sebeple, gitosis kullanıcısını kullanmayın, hatta parolası bile olmasın, o kullanıcının.

Depo oluşturmaya başlamadan önce, bir depo yöneticisi belirleyin. Benim tavsiyem, sıklıkla kullandığınız bilgisayardaki kullanıcı hesabınız depo yöneticisi olsun. Sunucuda ayrı bir kullanıcı hesabı açmanıza gerek yok; ama zaten sunucuda da size özel bir kullanıcı hesabı varsa, onu da yönetici yapabilirsiniz. Nasıl olsa birden fazla makine veya kullanıcı hesabına da depo yöneticiliği yetkisini sonradan verebiliyorsunuz. Depo yöneticisi olarak seçtiğiniz kullanıcının ssh genel anahtarını sunucuya, “kullanıcı adı @ yerel adres . pub” adıyla gönderin. Örneğin benim bilgisayarımın adı archer, kullanıcı adım gkmngrgn, dolayısıyla ssh genel anahtar adını da gkmngrgn@archer.pub olarak kaydediyorum. Ssh genel anahtar dosyasını herhangi bir metin düzenleyicisiyle açıp satırın sonuna bakarak da nasıl kaydetmeniz gerektiğini öğrenebilirsiniz.

Eğer ssh genel anahtarı oluşturmadıysanız, depo yöneticisi olacak kullanıcı hesabıyla:

$ ssh-keygen -t dsa

komutuyla oluşturabilirsiniz. Soruları geçiş (enter) tuşuna basarak esgeçebilirsiniz. Bu komuttan sonra ~/.ssh/ içinde, id_dsa.pub adıyla bir genel anahtar oluşacaktır. Bu anahtarın ismini biraz önce anlattığım biçimde değiştirin ve sunucuya gönderin. Sonra da aşağıdaki komutla gitosis depolarını oluşturun:

$ sudo -H -u gitosis gitosis-init < /depo/yoneticisi/olacak/kullanicinin/genel/ssh/anahtari.pub
$ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

Evet, gitosis kullanıcısının ev dizininde gitosis ve repositories adında iki alt dizin oluştu ve post-update için gerekli izinleri verdik. Şimdi depo yöneticisi olan kullanıcı hesabınızla gitosis-admin deposunu klonlayın:

$ git clone gitosis@:gitosis-admin.git

Bu işlemin ardından, komutu verdiğiniz dizinde gitosis-admin isminde bir dizin göreceksiniz. Onun içinde de bir adet gitosis.conf, bir adet de keydir dizini göreceksiniz. Yetkiler ve depolarla ilgili yapılandırmanın yapıldığı gitosis.conf dosyasının bir örneğini gösterelim:

[gitosis]

[group developers]
members = gkmngrgn@gacer ggorgen@ggorgen-pardus
writable = example

[group admins]
members = ggorgen@ggorgen-pardus gkmngrgn@gacer

[group gitosis-admin]
writable = gitosis-admin
members = @admins

Tek tek açıklayalım; gitosis-admin grubunda yer alan ayarlar, depo yöneticilerinin belirlenmesi ve depo ismiyle ilgili ayarlar. @admins, bir nevi admins değişkeni olarak düşünülebilir ve admins grubunda belirtilen üyeleri döndürüyor. developers grubunda yer alanlar ise, example isimli bir dizinin oluşturulması ve bu example dizinine kimlerin erişebildikleri ile ilgili ayarlar oluyor. Bir depo oluşturmak için gerekli örnek developers dizinidir. Şimdi, bu grupta depoya adını verdiğimiz example ismiyle yerel bir git deposu oluşturalım:

$ mkdir example
$ cd example
$ git init
$ echo "First file." > README # Bunu yazmasanız da olur, örnek bir dosya sadece.
$ git add README
$ git commit -m "First commit on example repository."
$ git push origin master

Son komutla yerel depomuzu gitosis sunucusuna göndermiş olduk. Bundan sonra eşleştirmeler dosyalarınızı bu example dizininde tutabilir, değişiklikleri sunucuya gönderebilir ve benzer şekilde farklı git depoları da oluşturabilirsiniz.

Peki, buraya kadar tamam. Ne güzel git daemon export ok demeden sunucuya erişebiliyoruz, değişiklikleri yapabiliyoruz vesaire. E ama hem siz başka bir makineden ve hatta aynı makinede başka bir kullanıcıdan depoyu klonlayamıyorsunuz, hem de dolayısıyla ekip arkadaşlarınızla ortaklaşa bir uygulama geliştiremiyorsunuz, bunda bir terslik var değil mi?

Tabi ki bir terslik var. example'dan önce indirmiş olduğunuz gitosis-admin dizinine girin. İçindeki keydir dizinine, depoya erişim izni vermek istediğiniz kullanıcıların, bilgisayarların ssh genel anahtarlarını atın. Ama başta ssh oluştururken isimlere gösterdiğiniz titizliği bu anahtarlara da gösterin. Hede@hodo ise Hede@hodo.pub gibi. Daha sonra gitosis.conf dosyasında, example deposu veya herhangi bir deponun üyelerine (members) Hede@hodo (veya her neyse || kimse) olarak ekleyin. Böylece bir depoda ekip çalışması yapma işlemi için başka ek bir emek sarfetmek gerekmeyecek.

Yalnız ssh erişimi olmayan kullanıcıların da sadece depoyu indirebilmelerine izin vermek için, git daemon export ok komutunu araştırmanız, öğrenmeniz gerekecek. Son olarak, şu bağlantıları da incelemenizi tavsiye ediyorum:

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
http://forum.webfaction.com/viewtopic.php?id=2321
http://wiki.archlinux.org/index.php/Gitosis_Kurulumu

P.S. Gitosis denemelerimin hepsini Pardus 2009'da yaptım, Pardus'ta gayet güzel çalışıyor, gitosis ev dizini olarak /var/spool/gitosis ayarlayın..

[1]: Bu cümle hakkında yorumlarda Alper'in ek bilgisi var, yorumları okuyunuz.
[2]: http://github.com/
[3]: Bu cümle hakkında Türker'in eleştirisi var, yorumları okuyunuz.

24
Nis

Geçenlerde bir arkadaşım, Python 3′te gettext modülünün nasıl kullanılacağını sormuştu, ben de henüz 3.* sürümünü denemediğim için bir cevap verememiştim. Hala da verebilecek aşamada değilim; ama bu konu üzerinde biraz araştırma yaparken, ilginç bir internet sayfasıyla[1] karşılaştım. Aşağıda paylaşacağım kodların ve bilgilerin Python 2.* serisinde çalışmaması söz konusu olabilir.

Python’da karakter dizilerini iki biçimde çağırabiliyoruz:

  • Karakter dizileri için % işleyicisi[2].
  • string.Template modülü[3]

% işleyicisiyle kullanım örneği, Python belgelerinde verilmiş:

>>> print('%(language)s has %(#)03d quot types.' % {'language': "Python", "#": 2})
#Python has 002 quot types.

Bu kodda değişkenler bir sözlük içinde eşleştirilmekte ve print çıktısında tanımlanmış değerleriyle ekrana yazılmaktadır. Bunun aynısı şu şekilde de yapabilirdik:

>>> print('%s has %03d quot types.' % ("Python", 2))
#Python has 002 quot types.

Birincisine göre daha basit olsa da, birinci kodda şöyle bir avantaj söz konusudur:

>>> print('The %(first)s variable, and the %(second)s variable.' % {'second': "New", 'first': "Old"})
#The Old variable, and the New variable.

Bu şekilde kullandığımız zaman, ikinci işleyiciyi ilk olarak tanımlayıp, ikinci işleyiciyi ise sonra tanımlayabilme fırsatımız olabiliyor. Nerelerde kullanılabileceği ayrı bir merak konusu. Bu merakı gidermeden önce bir de şu şekilde kullanıma bir bakalım:

>>> print('The {1} variable, and the {0} variable.'.format("New", "Old"))
#The Old variable, and the New variable.

İlginç, değil mi? Aslında bu kadar çeşitlilik olması garibime gidiyor; ama bu son yöntemin yüksek seviye programlama diline daha yakın bir tarz olduğunu düşünmeden edemiyorum. Yanılmıyorsam bu tip kullanım, C# ve Java’da da var. Şimdi son olarak aşağıdaki kodu inceleyelim:

import sys

class Main:
    def __init__(self):
        print("Python version is, {0}.".format(sys.version[:5])) # print'lerin yazimina dikkat..

        digits_list = self.digits()

        print("{1} is bigger than {0} as digit.".format(digits_list[0], digits_list[1]))

    def digits(self):
        try:
            first_digit = int(input("Please write a digit: ")) # raw_input yerine input kullaniliyor.
            second_digit = int(input("And second digit: "))

        except ValueError:
            print("\nSorry, you must enter a digit.")
            exit()

        return self.sort(first_digit, second_digit)

    def sort(self, x, y):
        return sorted([x,y])

if __name__ == "__main__":
    Main()

Kodun yaptığı şey basit: Sizden iki sayı girmeniz isteniyor ve sayıları, büyüklüklerine göre {0} ve {1} ile eşleştirip, “X, Y’den sayıca büyüktür.” gibisinden bir cümle döndürüyor. Kod basit olduğu için bu tip karakter dizisi işleyicilerin faydası pek belli olmuyor; ama mutlaka bir yerde faydası vardır =). Son kodun çıktısı şu şekilde:

[gkmngrgn@gacer ~]$ python3 rank.py
Python version is, 3.0.1.
Please write a digit: 3
And second digit: 1
3 is bigger than 1 as digit.
[gkmngrgn@gacer ~]$

[1]: http://www.python.org/dev/peps/pep-3101/
[2]: http://docs.python.org/library/stdtypes.html#string-formatting-operations
[3]: http://docs.python.org/library/string.html#string.Template

23
Nis

Uzun bir aradan sonra nihayet Eskişehir’e dönüp, biriken işleri eritmeye başladım. Güne başlarken Pardus’ta geliştirmeyle ilgili tüm işleri bitirebileceğimi umuyordum; ama şaka maka değil, yetmedi. Özellikle Pardus 2009 için yapılan çalışmalardan üzerime düşeni bitirmeye çalıştım; ama ciddi anlamda zorluk çektim. Henüz urgentpackages[1] listesindekileri bitirememiş olanlara kolaylıklar dilerim şimdiden.

Diğer taraftan, bu gece Xfce’nin 4.6.1 sürümü derlenecek ve yarından itibaren depoda yerini alacaklar. Çok fazla değişiklik olmamakla birlikte, birkaç önemli hata kapatma ve bolca çeviri güncellemeleri mevcut olacak. Pardus 2009 için katkı depolarının oluşumu da tamamlandıktan sonra, vakit kaybetmeden aynı güncellemeleri 2009 deposuna yansıtacağım.

Son olarak, an itibariyle Mono ailesinin Pardus 2009′a girmesi için uğraşıyorum, herhangi bir engelle karşılaşmazsam değişiklikleri 2008′e (mümkün olan son sürümlerini) yansıtacağım. Neden tersten gittiğimi sormayın, fena halde kafayı yemiş vaziyetteyim x’(..

Bu arada Pardus 2009 çıkmadı, bir yanlış anlaşılma olmasın. Sadece depolar oluşturuluyor ;)

[1]: http://svn.pardus.org.tr/pardus/2009/devel/urgentpackages

19
Nis

İnsanların yaşamı, yüzde 90 yalanlara dayanır; diğer yüzde 10′luk kısmından emin olmak için henüz yeterli bilgimiz yok. ~ Zar Adam’dan

Bu yıl üniversitemin büyük yükünden kurtulmak üzere, yeni şehirlere ve yeni olasılıklara yelken açarken, bir an durulup arkama bir göz atıyorum. Başlığa sembolizm kavramını sokuştururken peşin peşin sizi uyarasım geldi; belki terimsel anlamıyla tabiri caiz olmamıştır; ama kravattan ne denli nefret ettiğimi bilen bilir. Hiç mi takmam? Elbette takarım; ama sadece yakıştığı için. Şöyle bir konuşma olduğunu varsayın:

- Bir insan çok parası olduğu zaman, yoksullara yardım etmek yerine Bugatti marka araba veya Jeanneau yelkenli satın alırsa, sebebi ne olabilir?
+ Sanırım çoğunu, daha fazlasını da harcayabileceğimize emin olmak için harcarız.. Ve diğerlerinin, ona sahip olduklarımızdan emin olmamız için..

Eğer bir kültürü benimsemek ve altında yatan azımsanamayacak disiplin ve emek adına yelkenli satın almak sözkonusu olsaydı, buna diyeceğim birşey olmazdı; ama verilen cevaba bakılırsa, bununla uzaktan yakından alakası yok. Düşünün, ben bir işletme mezunu olacağım; ama arkama dönüp baktığım zaman kendimi eşofmanla seminer koltuklarında görüyorum. Gerçekten kendimi bir halt sandığımdan değil, tam tersi. Yaptığım şeyin (kravat takmak gibi) mantıklı bir sebebi olsa benim için yeterli olacak. Bazen takım elbiseli herhangi bir elemanı kravatından çekip, “Hey baksana, şu tam simetrik olmayan ipi neden boynuna doluyorsun?” diye sorup öğrenmek istemiyor da değilim tabi..

Diğer taraftan, bu demek değildir ki kravat takanlar sırf anlamı için veya sembol amaçlı bunu yapıyorlar. Bazıları ortama uymak için, bazıları zorunluluktan takıyor olabilirler. Zaten burada kravat da tam anlamıyla bir bahane. Esas cevabını öğrenmek istediğim şey, semboller. Hala ne için ne yaptığımızı bildiğimizden bile emin olduğumuzu söyleyebilecek kapasitede bir bilgeliğe erişemedik ve belki de erişmek bile bir saçmalık olabilir.

Ayrıca şu da gerçektir ki, çoğu zaman yaşadığı ortama uyanlar kazanacaktır. Bir sürü psikolojisi midir nedir, bu toplumu bir şey sürüklüyor. En güçlü olan, daha güçlü olmak için topluluğa yeni, makyajlı, güzel görünümlü alışkanlıklar kazandırdıkça, biz de ortama uymak adına o yöne sürükleneceğiz. Ama dikkatinizi çekerim, sürüklenmek zorunda değiliz, kazanmak zorunda değiliz! Bir kere de kaybedelim, başka şeylerde kazanırız..

Üniversitemi sevdim, öğretmenlerimi çok sevdim; ama malesef beni yıllıklarda ve mezuniyet fotoğraflarında göremeyeceksiniz. Çünkü o mertebeye erişemedim. Hayır hayır, bu son dediğim mertebenin simgeciliğimle bir alakası yok. Gerçekten işletme adına bir katkı sağlayabildiğime inanmıyorum. Ben kaybettim; belki başka şeylerde kazanırım, kim bilir…

P.S. Okulu bırakmıyorum yahu! Bitiyor işte =) Yazmam gereken birkaç makale yüzünden Pardus’taki işlerimi biraz aksatıyorum. Nisan’ın sonunda konserlerimin hemen ardından kokpitin başına geçip, bilgeliğin tek yolu olan deliliğe devam edeceğim ;-)

2
Nis

Ah evet, dün lanet olsun ki Nisan’ın 1′iydi ve iki farklı şakaya maruz kaldım. Bunlardan birincisi Aaron Griffin’den:
http://www.archlinux.org/pipermail/arch-dev-public/2009-March/010971.html

Bir Archlinux kullanıcısı için fazlasıyla anlamsız bir epostaydı. Yerel eposta listemizde de benzeri şaka Alper Kanat tarafından yapıldı:
http://liste.archlinuxtr.org/pipermail/archlinux/2009-April/000652.html

Bunun üstüne bir de Xfce geliştiricisi Jannis Pohlman’den şaka geldi:
http://foo-projects.org/pipermail/xfce4-dev/2009-April/026509.html

Halbuki geçen sene böyle miydi, Pardus’un önemli geliştiricilerinden Çağlar Onur bana geliştiriciliği geçen yılın 1 Nisan’ında müjdelemişti ve başlangıçların en güzelini yaşamıştım. Evet, bu bir başlangıçtı; çünkü ben Pardus’un gelişimine katkıda bulundukça, karşılığında eğitim, öğrenim, tecrübe ve gerçekten de keyif alacaktım. Aldım da…

Bu geçen süre zarfında bazı kararlar vermem gerekti. Öncelikle Xfce kullanıcısıydım ve Xfce paketlerinden sorumlu olmaya başlamıştım. Şimdi benim yerime geçebilecek potansiyel arkadaşlar arıyorum ve onlara elimden geldiğince destek olmaya çalışıyorum. Diğer taraftan, her ne kadar C# bildiğimi söyleyemesem de, Mono projesi ile ilgili uygulamaları paketlemek, bunların depoya girmesini sağlamak ve güncellemekle uğraşıyorum.

Son olarak, uzun zamandır Python’un yanında ikinci bir dil öğrenme gibi çabalarım vardı ve hobi amaçlı olarak işlevsiz ama eğlenceli kodlar yazmaya başladım. Geçen gün bir arkadaşımdan c dersi alırken şöyle eğlenceli bir kod yazdık:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <unistd.h>
#define x 100
 
static void fcark (const int repeat) {
    int i = 0;
    const char cark[5] = "\\|/-";
 
    printf("cursor =>  \t");
 
    for (; i < repeat; i++) {
        printf("\b\b%c\t", cark[i % 4]);
 
        usleep(30000);
        fflush(stdout);
    }
}
 
int main() {
    fcark(x);
 
    printf("\b\bDone.\n");
    return 0;
}

Pek sağlıklı bir yazımım olmayabilir; ama kod çalışıyor. Ne mi yapıyor? İmleci 100/4 (x değişkenine göre) defa kendi etrafında belli aralıklarla (usleep içindeki değerle) döndürüyor. Deneyin, elleşin, hatta biraz daha geliştirin, sonra bana da gösterin! =)

Nice yıllara, yeni geliştiricilerin ve yeni -gerçek- programcıların şerefine..

13
Mar

Uzun bir aradan sonra nihayet Xfce-4.6 kararlı sürümünü Katkı deposuna aktardım. Beni yalnız bırakmayan, destek vereceklerini her fırsatta dile getiren arkadaşlara buradan sonsuz teşekkürlerimi sunuyorum.

Yanılmıyorsam Kasım’dan beri Xfce’nin yeni sürümünü kullanıyor, çeviri ekibiyle beraber çevirileri yapıyor, diğer dağıtımların da Xfce4.6′yi nasıl paketlediklerini ve ne gibi kararlar aldıklarını inceliyordum. Denediğim dağıtımlar; Xubuntu, Linux Mint (Xfce Community), Fedora (Xfce Spin), OpenSuse ve tabi ki halen kullanmış olduğum Arch Linux.

Xfce sürüm yöneticisi Stephan Arts da dahil birçok Xfce geliştiricisi Xubuntu kullanıyor ve ben hala neden Xubuntu kullandıklarını bilmiyorum. Gerçi bu arkadaşların bir kısmı Xubuntu geliştiricisi olduğu için kullanmak zorunda, diğer kısmı da kendi derledikleri paketlerle karışık halde Xfce kullanıyorlar. Ama Xubuntu’yu ilk kurduğumda ciddi ölçüde bir Gnome bağımlılığı beraberinde geliyor ve bunu pek anlamlı bulmuyorum. En azından Pardus’un örnek alabileceği cinsten bir dağıtım değil, bana göre.

Fedora’nın Xfce Spin’i ile Pardus’taki Xfce’nin durumu birbirlerine çok benziyor. Ama o da Xubuntu kadar olmasa da Gnome boyunduruğundan kurtulamamış. Bunu kötü eleştiri olarak algılamamanızı istiyorum, sadece tercih meselesi. Bence örneğin Gnome’un ağ programcığı yerine öntanımlı olarak Wicd kullanılabilirdi. Ama sanırım Fedora ile Wicd anlaşamıyorlar, pek incelemedim.

OpenSuse’nin komünitesi çok garip. Her ne kadar sonradan Gnome’a destek vermeye başlamış olsalar da, komünitede Gnome’u seven ve Gnome’dan anlayan bir kitleyi bulmak biraz zor. Masaüstü ortamı olarak Xfce’yi seçtiğiniz zaman giriş yöneticisi olarak XDM’yi seçmesi ilginç, ayrıca YaST’in Qt arayüzü yerine, görsel uyum için GTK+’nin öntanımlı olarak seçili gelmesi daha doğru olurdu sanki. Son olarak, nasıl ki Pardus’ta Kde’yi tamamen kaldırmak için birçok Pardus araçlarından feragat etmeniz gerekiyorsa (gerçi OpenOffice bir Pardus aracı değil; ama onu da feragat etmeniz gerekiyor, ilginç dimi..), OpenSuse’de Qt’yi kaldırmanız pek mümkün olmuyor. Bence Pardus’ta Xfce’nin durumu OpenSuse’den çok daha iyi.

Linux Mint’in Xfce sürümü tam anlamıyla takdir edilesi. Uzun zamandır Xfce’li Pardus kullanıyorum; Xubuntu, OpenSuse, Fedora beni tatmin edemezken, Linux Mint tam benim planladığım bir yol izliyor. Az bağımlılık için alternatiflere yönelmek konusunda oldukça başarılılar. Örneğin Gnome ağ programcığı yerine Wicd kullanıyor olmaları, OpenOffice yerine Abiword ve Gnumeric kullanmaları, metin editörü olarak da Geany ile Mousepad’i tercih etmiş olmaları vs. Ayrıca Xfce Mint Settings adında bir uygulama da mevcut ki, tam anlamıyla Pardus’taki Tasma tadında bir ayar yöneticisi.

Tabi bu denediğim dağıtımların hepsinde Xfce-4.4.3 vardı ve Pardus’ta Xfce’nin durumunu incelediğim zaman, DistroWatch’te ön sıralarda yer alan birçok dağıtımdan daha iyi durumda olduğumuzu görüyorum. Ama eksiklikleri yok değil..

Yazının başında da dediğim gibi, artık Xfce’nin 4.6 sürümü Pardus Katkı deposunda yerini aldı (Henüz depolar senkronize olmadan yazıyorum, fazla acele etmeyin =)) ve güncellemek için pisi up yapmak yeterli olacak. Geriye zamanla çıkabilecek ufak tefek hataları kapatmak ve xfce4-notifyd, midori, gigolo, xfce4-power-manager gibi yeni eklenti uygulamaların hemen paketlenip depoya aktarılması kalıyor. Bol Xfce’li günler.

Not: Arch Linux’ta Xfce izlenimini atladın diye merak ediyorsanız, işte cevabım: “Sadece Xfce ve bağımlılıkları kurulu geliyor, başka hiçbir marifeti yok ve asıl güzelliği de buradan geliyor”

27
Şub

Zaman daralıyor, bu sabah geliştirici toplantısı için ODTÜ’ye gitmek üzere trene binmiş olacağım; ama yine de bu haberi duyurmadan edemedim. Xfce-4.6.0 sürüm yöneticisi Stephan Arts’ın Xfce geliştirici listesine attığı eposta ile yeni sürümün yayınlandığı haberi geldi ve birçok dağıtımda paketlenmeye başladı bile.

Hoş, şuan devel depomuzda Xfce-4.5.99.1 sürümü mevcut; ama yarınki toplantı nedeniyle henüz paketleme fırsatım olmadı. Ayrıca birkaç ufak test aşaması nedeniyle bir iki gün daha gecikme söz konusu olabilir ama en fazla 4 gün içinde depomuzda yeni Xfce sürümünün yer alacağını umuyorum. Nasıl olsa Pardus’ta paket yapmak ve güncellemek bir dakikalık iş, önemli olan iyi test etmek =)

Şurada yeniliklerle ilgili İngilizce makaleyi görebilirsiniz: http://www.xfce.org/about/tour

Şu sayfada da artık bir Pardus logosuna rastlama zamanı geldi de geçiyor artık değil mi =):  http://www.xfce.org/download

Bilmök toplantısının ardından tekrar görüşmek üzere. Azıcık sabredin =)

7
Şub

Bazen geleceğim hakkında türlü düşüncelere dalarken, geçmişte yapmadıklarım veya yapmaktan vazgeçtiklerim üzerine ne denli pişmanlık duyabileceğim konusunda, kendimi tuhaf olasılıklar hesaplarken buluyorum. İleride neyi yapmadığım için pişman olabilirim? Bir zamanlar sürekli “İyi bas gitar çalıyorsun!” diyenlerin baskısıyla, hiç konser verip hünerimi sergileyemememin bir korkusu vardı; oysa şimdi konserler ve bar programı bir yana, kayıtlar ve küçük çapta klip hazırlıklarıyla bu konuda kendimi tatmin edebildiğimi düşünüyorum.

Konuyu bağlamak gerekirse, bugünün (7 Şubat) bende çok önemli bir yeri var. Bundan tam iki yıl önce, işletim sistemsiz gelen bilgisayarını çalışma masasına yerleştiren bir ben düşünün. Küçüklüğümden gelen feci bir bilgisayar merakımın bastırılamayan heyecanı ve ilk defa bütünüyle ve sadece bana ait bir bilgisayar sahibi olmanın mutluluğu, bilgisayarımın güç düğmesine basarkenki kapkaranlık ekranını görünce, şansıma okkalı bir küfür etmeme neden olmuştu. Ne şans ama değil mi? Bilgisayarın güç düğmesine basınca ekranda rengarenk şeyler belirecek, bir şeylere çift tıklayınca oyun açılacak, ödevlerimi bilgisayara yaptıracağım falan bekliyordum.

Ve sonra bakın ne oldu, internetkafelerde ve üniversitemin kütüphanesinde yer alan bilgisayar odasında yaptığım çeşitli araştırmalarımla Pardus işletim sisteminden (evet, itiraf ediyorum; Pardus’u ilk olarak Türklerin yapmış olduğu bir işletim sistemi olarak bildim; ama hiçbir zaman Pardus’u Pardüs diye okumadım) haberim olmuştu ve daha o gün hemen internetkafeden Pardus cd kalıbını indirip yazdırtmıştım. Uzunca bir uğraş sonucu nihayet çalışır, kullanılabilir ve internete bağlanabilir vaziyette bir bilgisayara sahip oldum.

Bir buçuk yıl gibi uzunca bir süre bu sisteme alışma evresi geçirdim. Bunca süre içinde diğer taraftan da Pardus komunitesiyle tanışıp, onlardan biri olmaya çalıştım. Sensei – çekirge kavramı, özellikle ninjalar gözümde ilginç bir hal almaya başlamıştı ve komunitede bu işi bilenler arasındaki eğlenceli ilişki, yeni kullanıcı olarak benim de katkı sağlamamı teşvik etti.

İlk önce Özgürlükİçin’e inceleme yazısı yazarak işe başladım. Sonra #pardus IRC kanalında geliştiricilerle iyi ilişkiler kurmaya özen gösterdim. Bazen çıldırtıcı durumlar olmadı değil; bir gün geldi, “Kaç aydır Pardus kullanıyorsun, hala bir şey bilmiyorsun!” diye azarlayan oldu; bir başka gün, “Gel bakalım, sana xxx için hesap açalım, çalışmalarını artık burada tutarsın.” diyen oldu (kendisi okuyorsa bu kısma gülebilir, çünkü ikisi de aynı kişilerdi, hehe). Hala da durduk yere kanaldan banlanmalar, durduk yere KDE kullanmadığım için inceden takılmacalar; bazen de sinirime hakim olamayıp gereksiz ve üzücü tartışmalar oluyor. Şimdi dönüp baktığımda bu tip şeylerin gerçekten hiçbir önem arzetmediğini farkediyorum. Önemli olan, sadece geliştiricilerle iyi ilişkiler kurup, ortaklaşa bir iş yapabiliyor olmak..

Bu alışma evresinde, diğer dağıtımlarda işlerin nasıl yürüdüğünü merak ettim ve epey zaman harcadım. Arch Linux, Gentoo ve FreeBSD kullandım, hala da diğer dağıtımların sorunları nasıl çözdüklerini görmek için VirtualBox’ta çeşitli dağıtımları denerim. Bunun yeni bilgisayar kullanıcılarına çok faydalı olduğunu düşünüyorum. Özellikle Gentoo kurmayı öğrenmek, benim için kök dosya sistemini öğrenmenin uygulamalı ve kolay yolu oldu. Arch Linux’ta kendi isteklerime göre AUR depolarındaki PKGBUILD inşa dosyalarını düzenlemek, Pardus’ta geliştirici olabilmek için gerekebilecek birçok mantığı kavramamı oldukça kolaylaştırdı.

Ve nihayet 1 Nisan 2008′de şaka gibi geliştirici olduğum haberi geldi. Fazla vakit kaybetmeden kendime bir yol çizip, o yönde Pardus’a katkı sağlamayı amaçladım. Xfce paketlerini üzerime aldım, GTK+ uygulamalarına elimden geldiğince önem verdim ve Bugzilla’daki hataları kapatmaya çalıştım.

Python öğrenmek, yanında C ile uğraşmak, PyGTK ile örnek uygulamalar yapayım derken bu sefer de kendi içimde benden sonrakiler diye bir dönüm noktası belirleyip, Pardus’a yeni çekirgelerin yetişmesine özen gösterdim (itiraf ediyorum çok ama çok zormuş, benim gibi bir belayla uğraşan senseim Kenan Pelit’e aylar sonra[1] tekrar teşekkür etmem gerek). Derken..

Derken, bilgisayar serüvenimde 2. yılımı doldurmuş bulunuyorum. Yazının başında ne demiştim? İnsan daha çok yapmadığı şeyler için pişmanlık duyar demiştim ya, şimdi tüm bunların hepsini yapabildiğim için, geriye dönüp baktığım zaman mutlu olabiliyorum. Çok baş ağrıtıcı bir çalışma; ama gerçekten değdi, ben buna inanıyorum ve Pardus’un Türkiye’de GNU/Linux’un varlığını duyurma konusunda gerçekten başarılı olduğuna da inanıyorum; hem felsefesiyle, hem de işletim sistemiyle.. Yeni yılımda yeni geliştiriciler, yeni gelişmeler görmek umuduyla..

[1]: http://www.gokmengorgen.net/gunluk/?p=76

27
Oca

Son birkaç günümü, Bursa yolunda geçirdiğim bir zincirleme trafik kazası nedeniyle evde istirahat etmekle geçirdim. Esas olarak Python’u öğrenme çabalarım, deneyimlerim ve ikinci bir programlama dili seçerken nelere göre seçim yapacağımız üzerine karşılıklı fikir alışverişi yaparak bir yazı yazmayı planlıyordum; ama son zamanlarda gezegende ortaya atılan “Gezegende illa ki bilgisayar, programlama ve ilgili deneyimleri paylaşma gibi bir şartımız yok; bu programcıların, bilgisayarla ilgilenen insanların hayatlarıyla ilgili bir yazı da olabilir” düşüncesiyle hareket ederek ben de çok fazla ayrıntıya girmeden kendi yaşadıklarımla ilgili bir şeyler anlatacağım.

Tahmin edebileceğiniz gibi kaza geliyorum demez. O an emniyet kemerinizi taktıysanız ve hızınız da kaza yapmayı engelleyebilecek kadar az değilse, kendinizi en minimum zararla arabayı durdurup kenara çekmeye odaklamalısınız. Kaza anında bir onbeş saniyelik şaşkınlıkla boğuşur, sonraki birkaç dakika da yavaş yavaş çözülüp ne yapmanız gerektiğini düşünmeye, önleminizi almaya başlarsınız.

Ama gelin ki ben o an ne düşündüm. Çok lüks bir arabam olsaydı, çok daha fazla masrafım olacaktı. Eğer arabanın içinde gerekli gereksiz bir sürü eşyam olsaydı, onları feda etme olasılığım çok daha fazla olacaktı. Arabanın içinde hızla koltuğa çarpmış olan laptopum pahalı bir şey olsaydı, üzülebilirdim. Oysa 160 gb’lik harddiskimin sadece 16 gb’lik kısmını kullanıyorum diye şaşıran arkadaşlarıma inat, çok fazla ve lüks şeylere sahip olmamanın bir mutluluğu vardı içimde.

Hatta o an, apart odamı ziyaret edip “Ne kadar az eşyan varmış?” diyenlere inat ayrı bir zenginliği içimde barındırdığımı farkettim. Deprem olsa, kaybedebileceğim en önemli şey -para açısından değil-, basgitarımla analog pedallarım olur herhalde. Onu da kısa zamanda telafi edebilirim diye umuyorum. İnsanın asıl zenginliği, sahip olduklarında, yaşadığı çevrede, popülaritesinde; kravatında, ceketinde; okuduğu, yaşadığı yerde, kariyerinde vb. hiçbir yerde değildir. İnsanın asıl zenginliği kendi içindedir.

O an, bir iki eğitim sertifikası alıp, bunları ceket ve kravatla pekiştirip kendi adına kartvizit bastıran; ama içleri bomboş olan fakir insanlara bir kez daha acıdım. Kendi zenginliklerinin ve fakirliklerinin farkında olmayan o kadar çok insan var ki..

Not: İyi denebilecek bir üniversitenin iyi denebilecek bir bölümünde okuyan arkadaşımın (ismi bende kalsın), salsa biliyorum diyebilmenin (salsa umurunda değil yani) benimle paylaştığı sevincine ortak olmasaymışım keşke. Bize Recep gibi salsacılar lazım, yaptığı işin hakkını verebilen insanlar lazım.. Ayrıca bkz: http://www.gokmengorgen.net/gunluk/?p=102

30
Ara

Alternatif masaüstü yöneticisinin ayak sesleri Pardus’ta duyulmaya başladı! Akın Ömeroğlu tarafından geçtiğimiz günlerde tartışmaya açılan, “Ana sayfada Xfce seçkisi olma konusu” fazla zaman kaybetmeden sonuçlandı ve an itibariyle Pardus Wiki’sinde ana sayfada yerini almış bulunuyor. Wiki’de Xfce ile ilgili belgeler Xfce sayfasına eklendi.

Tabi, Pardus’ta Xfce ile ilgili böyle güzel yılbaşı haberleri olurken, Xfce kullanıcılarından yine katkılarını beklediğimizi belirtmeden edemeyeceğim. Yapmanız gereken çok basit, Eğer Xfce sayfasında kırmızı bir link görüyorsanız, bilin ki o linkin açtığı sayfa boştur, doldurulmaya muhtaçtır.

Dolduralım arkadaşlar!