LinuxTag Berlin – 1’inci Gün

Bu yıl Berlin’deki LinuxTag’a katılıyorum (hala devam ediyor). Almanya’da ilk başta Frankfurt’a ayak bastım. Aile ziyareti yaptıktan sonra hızlı Tren ile Berlin’e geçtim. Üç gündür Berlin’deyim. Burada kısa kısa aldığım notları sizlerle paylaşmayı düşünüyorum. Almanya şöyle değişik, böyle değişik şeyleri beklemeyin benden şimdiden söyleyeyim, çünkü o şekilde zaten istesem de yazamam. Notlar genel olarak biraz dağınık, şimdiden haberiniz olsun :)

LinuxTag nedir ? LinuxTag avrupa’nın en büyük özgür yazılım etkinliklerinden biri. Gerek Almanya’dan, gerekse diğer ülkelerden yoğun katılım alıyor. Çok profesyonel işleniyor, 5-6 ayrı salonlarda paralel sunumlar mevcut. Her gün ayrı bir konuya ağırlık veriliyor.

**Scientific Computing on GPU’s ** İlk girdiğim sunum buydu. Genel olarak CPU ve GPU arasındaki temel farkları anlatan bir sunumdu. GPU’yu kullanmamız gereken alanlar var, özellikle de bilimsel alanlarda onlara değinildi. Örneğin GPU’da hiç bir şekilde ön bellek yokmuş. CPU’da normalde L1 veya L2 adlarında bellekler olur. Bunlar doğrudan CPU’nun dahilinde olduğu için hazırı hızlı olabiliyor. Fakat bu da veriye yerel bağımlılık oluşturuyor, yani bir veri kullanılacaksa, hemen bellekte tutuyor ve orada saklıyor. GPU’larda ise bu bellek olmadığından her gelen verilerin hızlıca işlenip geri yollanmasına bağlı. GPU bu yüzden paralel programlama’da inanılmaz hızlar sağlıyor. Bunun dışında GPU’ların kendi içsel bellekleri mevcut (önbellekten farklı). Bunlar 5 çeşit olarak ayrılıyor:

  • Registers

  • Shared Memory

  • Global Memory

  • Constant Memory

  • Texture Memory

Her bir belleğin çeşitli ulaşım hızları var. GPU’larda zor olan da bu bellekleri yönetmek. Bunlar manuel olarak düzenleniyor ve tamamen size bağlı fakat ciddi şekilde optimasyon sağlıyor. Bunun dışında sunumda Tegra ve Nvidia’nın Fermi mimarilerine girildi. Mesela Fermi’lerde yukarıda bahsettiğim ön bellek (cache memory) eklenmiş.

Genel olarak sonrasında çok da spesifik konulara dalıp uçtu sunucu :) Yakalayamadım sonrasını. Değişik ve ilginç bir sunumdu

**Spice and desktop virtualization ** Bu sunumu RedHat’den Gerd Hoffman yaptı. Ama ben hiç beğenmedim açıkcası, çok hızlı bir şekilde anlattı. Konuşmayı da ağızının içinden söylediği için çok anlayamadım açıkcası. Verimsiz geçti bu yüzden. Biraz da Spice geliştiricilerine hitap ediyor gibiydi. Spice’nin kuruluşunu anlattı kısaca. Spice’in basit bir protocol olduğunu ve işini yaptığından bahsetti. Genel olarak sanallaştırma sunucu ve yönetici işlerinde kullanılınıyor, fakat günümüzde masaüstü kullanımı da artıyor ve önem kazanıyor. Bunun için Spice’da bir takım teknolojiler mevcut. Örneğin ekran effektleri için (gnome-shell gibi) Spice QXL apisi mevcut. Usb için yoğun bir şekilde çalışılıyor ve gelişmeler mevcut. Bunun dışında ağ protokolleri ile ilgili bilgiler sundu. Dediğim gibi pek verimsiz geçti, fakat geliştirici slaytların bağlantısını da bizlerle paylaştı :)

Şuradan indirebilirsiniz: http://kraxel.org/slides/2011-linuxtag-spice.pdf

**Qui Vadi, QT ** Sunumu veren Daniel Molkentin, kendisi Nokia Berlin’de yazılım mühendisi olarak çalışıyor. Şu an için de Qt Creator uygulaması için çalışıyor(QT ve QML için platform bağımsız IDE). İlk başta QT’nin hala satılmadığından dem vurdu, biz hala buradayız çalışıyoruz dedi :) Bunu vurgalayarak söyledi, çünkü bildiğiniz gibi Nokia’nın Microsoft ile anlatşmasından sonra kafalarda bir çok kafa işareti oluşmuştu. Genel olarak Qt’de çıkacak yeniliklerden bahsetti. 4.8 için , Lighthouse adındaki uygulamadan bahsetti. Bu uygulama bir çok platformda (özellikle gömüllü sistemlerde) avantaj sağlayacak. Bundan önce QT/Embedded mevcut idi, QT/E’nin pencere sistemi de yoğun olarak yazılımsal bir grafik motoruna bağlı idi. Lighthouse ile bunu tamamen donanım bazlı yapmak istiyorlar. Bunun dışında Qt 4.8’de ciddi optimizasyonlar mevcut (özellikle I/O kısmında). Ayrıca QML de bu yenilikler arasında olacak.

Qt5 için de ana konu modularizasyon olacak. Tüm bileşenleri modüle etmeye çalışılacak. Yine son zamanlarda bir trend olarak karşımıza çıkan GPU kullanımı da artacak. GPU ile ilgili ciddi kullanımlar olacak. Grafik altyapsını da tamemen yenileyercekler (OpenGL 2.1 kullanımı), yani yeni Qt5 Linux dağıtımlarında Mesa’nın 7.10.2 ve üstünü isteyecek.

Massif Visualizer ** Sunumu veren Milian Wolff. Kendis Kdevelop ve Kate geliştirici. Konu debugger’ler hakkında. Valgrind’den yola çıkarak anlattı. Valgrind iyi bir debugger olsa da 5-100x katı daha yavaş çalıştırıyor uygulamayı, çünkü kendisi bir emulatör kullanıyor. Bunun dışında debug için çeşitli uygulamalar mevcut. Örneğin **Memcheck, bellek yönetimindeki hataları bulmak için. Helgrind, multithread hatalarını bulmak için. Callgrind, işlemci gücünü analiz etmek. Massif , bu da bellek kullanımını analiz etmek için.

Bir uygulamayı debug edebilmek için, debug sembolleri ile derlemek gerekiyor. Massif daha önce de belirtiğim gibi bellek kullanımını analiz etmek için kullanılan bir araç. Valgrind ile kullanmak isterseniz valgrind –tool=massif … şeklinde belirterek çalıştırmanız gerekiyor. Massif belleğin “Heap” dediğimizin kısmını inceliyor. Çeşitli aralıklarla birer imaj alıyor. Bunun yaparken uygulamanın bellek kullanımını hiç bir şekilde etkilemiyor, fakat Massif’in kendisi bellek harçayabilir.

Valgrind’i Massif ile çalıştırdıktan sonra, belirli bir dosya üretiyor. Bu dosya’dan her türlü bilgiyi elde edebiliyorsunuz. Fakat okuması çok zor ve uğraştırıcı. Bunun önüne geçebilmek için Milian, Massif Visualizer adında bir uygulama yazmış. Bu uygulama bu bilgileri çok daha güzel ve okunabilinir bir şekilde gösteriyor. İşte bu sunumda bu uygulamanın tanıtımı yapıldı :)

Resmi sitesi şu şekilde: https://projects.kde.org/projects/extragear/sdk/massif-visualizer

Genel olarak ilk gün bu şekilde geçti. Birde İsmail Dönmez ile buluştum, eski Pardus geliştiricilerinden :) Kendisi şimdi openSUSE’de Booster olarak görev alıyor. Güzel bir konuşmamız oldu, özellikle OBS ve OSC konularında, onları ilerideki günlerdeki yazılarımda anlatacağım.

14 Mayıs 2011

Bir İETT hikayesi

İstanbul'da olanlar son aylarda otobüs duraklarına gelen otobüs bilgilerini göstermek için kurulmuş ve çoğunlukla çalışmayan ! ekranları görmüştür büyük ihtimalle geçenlerde evimin oradaki durakta otobüs beklerken ekranın bozulduğunu ve 5-10 saniye çalıştıktan sonra yeniden başladığını gördüm. Ama asıl anlatmak istediğim şey bu döngünün başına denk geldiğimde GRUB ekranını ve makineye kurulmuş olan Debian'i gördüm. Akabinde bunu fark etmemle beraber yaşadığım dumur mutluluk karışımı duygularla beraber sonraki döngüde fotoğrafını çekebildim. İstanbul'daki otobüs duraklarının bir çoğunda bulunan sistemlerde GNU/Linux sistemlerin kullandığını öğrendiğim için mutlu oldum ve bunu da sizlerle paylaşmak istedim.
Fotoğrafı da yayınlıyorum. Doğru düzgün bir şeye benzemeyen şemalimin ve telefonu o heyecanla ters tutuşumun da kusuruna bakmazsınız diye umuyorum

14 Mayıs 2011

Posted In: Gezegen, gnu/linux

Neden Wine 64bit paketi Pardus 2011 depolarında yok ?

Sıkça sorulan sorulardan biri. Neden Wine yok depoda ? Son aylarda gerek forumlarda, gerek bugzilla bununla ilgili yoğun bir şekilde şikayet geliyor. Bir geliştirici olarak ister istemez rahatsız oldum. Çünkü ben kendi adıma kullanıcılara hep en iyiyi sunmayı çalıştım ve hala da çalışıyorum. Ne zaman bir şikayet görsem “nerede hata yaptım” diye düşünmeden edemiyorum.

Bu konuyla ilgili sizleri bildirmek adına bu yazıyı yazıyorum. Bu yazdıklarımı bir bahane olarak görmezseniz sevinirim. Biraz da bizim içerimizdeki gizli kahramanların neler yaptıklarını ve sizler için gece gündüz çalıştıklarını da görmenizi istiyorum. Şimdi yerinizden kalkın, kendinize bir çay hazırlayın. Uzun bir yazı olacak. Ben bekliyorum :)

Çayınızı aldınız değil mi ? Hadi bakalım, başlayalım …

Her şey bundan yaklaşık beş ay **önce bir Bugzilla hatası ile başladı. Kullanıcılardan Wine paketi ile ilgili bir istek geliyor. O zamanki Wine paket bakıcısı olan **Fatih Aşıcı ise 32 bit deposuna Wine’in girdiğini, fakat 64 bit deposu için biraz zamana ihtiyacı olacağını söyledi.

Biraz zaman alacak derken neyi kast ediyordu peki ?

Fatih Aşıcı’nın kastettiği durum, Wine’in çalışması için gerekli lib32 paketleri idi. Yani 64 bit altında çalışan 32bit paylaşımlı kütüphaneler. Bunlar olmadan Wine çalışmaz. Mesela Skype, Google Earth, Picasa gibi uygulamalar da bunu istiyor. Pisi’nin güzel bir şekilde bu paketleri yapmasına olanak veren bir altyapısı mevcut değildi.

Fatih bu yorumu 16.01.2011 tarihinde yapmış. Depo’da hiç bir lib32 paketi mevcut değil. Usanmadım, Fatih Aşıcı’nın bu yorumundan sonraki tüm commitlerini tek tek inceledim. Gerek paketler deposunda, gerekse Uludağ deposunda yaptıklarını not aldım.

Şimdi beraber Fatih Aşıcı’ın bu günden sonra uğraştığı işlerle ve bu lib32 paketlerinin durumunun nasıl geliştiğine bakalım.

Ocak Ayı (16’sından sonra)

  • Kde’nin öntanımlı klasör ayalarını düzenlemiş.

  • Xorg-sunucusu Opengl sürümünü düzgün yüklemediği için Onur Küçük ile buna bir yama hazırlamış.

  • Ardından 2011 çıkışı için gerekli depo değişiklikleri yapmış (2011 adında bir tag oluşturmuş).

  • 2011 için testing deposunu açmış.

  • Depo’daki sahipsiz paketleri bakıcısız olarak işaretlemiş.

  • NVidia ve Ati’nin kapalı kaynak kodlarını güncellemiş.

  • Virtualbox sürümünü elden geçirmiş, önemli bir hatayı düzeltmiş.

  • Az sayılı karakterleri desteklemek amacıyla Çomar’ı yamalamış.

  • Pisi 2.4_Alpha2 sürümünü çıkarmış.

  • Xorg sunucusunu yeni geliştirme sürümüne geçirmiş.

  • Bunun yanında bir çok küçük paketi güncellemiş, düzenlemeler yapmış.

  • Sürüm notlarını gözden geçirmiş

  • Rusya dilinin desteklenmemesi için Yalı’yı düzenlemiş

  • Yalı’ya ayrı bir klavyeyı kolayca kullanılması için yama yapmış

  • Pisi’nin düzgün arşiv indirilmesi için “fetcher” sınıfını gözden geçirmiş

  • Çomar’daki modelerden birini gözden geçirmiş

Ocak ayının yarısı bu şekilde geçmiş. Ortada hala lib32 yok. Onun yerine 2011’in yetişmesi için elinden geldiğince kritik sistemleri düzeltmeye çalışmış. Tabi bu arada Bakalım şubat ayı nasıl geçiyor

**Şubat ayı (01-28 arası) **

  • Henüz 2011’e alınmamış paketlerin listesini çıkarmış.

  • İsmi değişmiş paketlerin depo indeksini bozulmaması için gerekli değişiklikleri yapmış.

  • “Patch” paketinde kritik bir güvenlik hatasını kapatmış ve paketi gözden geçirmiş

  • Gpg/ssh agent’lerin ile bir hatayı düzeltmiş

  • Yalı’nin kodunda bir kısmı sadeleştirmiş

  • Benim libicns ile yaptığım bir hatayı usanmamış gidip değiştirmiş

  • Network Manager’e küçük bir değişiklik yapmış

  • Çeşitli X11 paketlerini gözden geçirmiş (libpciaccess, pixman, vs…)

  • Playground’daki Koffice paketine de göz atmış ve paket içeriği ile ilgili sadeleştirme yapmış

  • Ntfsprogs paketinin bakımını yapmış

  • Depolar arasındaki paketler uyumsuzluğuna tekrar göz atıp gereken düzeltmeleri yapmış

  • Kde’ye bir yama hazırlamış (klavye ayarlarını Xorg sunucusundan düzgün almıyordu)

  • Gnupng paketinin bakımını yapmış

  • Benim review’e koydum bir pakete göz atmış (vim-plugin-pisi)

  • Yine depoya aldığım bir pakete göz atıp gereken değişiklikeri yapmış (keepassx)

  • Wine paketini güncellemiş(32bit tabi, çünkü hala henüz ortada 64 bit yok)

  • Wine 64 bit paketi için deneysel bir actions.py hazırlamış

  • Xorg sunucusunun bakımını yapmış, eski yamaları atmış, yeni olanları eklemiş

  • Yine kritik bir paket olan Mesa’ya göz atmış

  • Gramps adı altındaki paketin anlatımını düzeltmiş

  • Flashplugin’i güncellemiş, kritik bir güvenlik açığını düzeltildi bu sayede (sevgililer günü bugün bu arada:))

  • Kurumsal 2’deki Kde başlangıçta takılıp kalıyordu gidip baştan bir yama hazırlamış, bunu düzeltmiş

  • Virtualbox paketine bakmış tekrardan, önemli bir hatayı düzeltmiş

Şu an şubat ayının ortasına gelmişiz…

  • Ati kapalı kaynak kodlu sürücülere göz atmış tekrardan(güncelleme ve kod düzeltme)

  • Çizim tabletleri için gerekli olan bir paket olan xorg-input-wacom paketini güncellemiş tekrardan

  • Pisi için bir yama hazırlayıp onu pakete sokmuş.

  • Gecelik iso’ların çıkması için gerekli altyapıyı hazırlamış (Gökçen Eraslan ile hatırladığım kadarıyla)

  • Farm için gerekli olan betikleri gözden geçirmiş tekrardan.

  • Buildtype özelliği için pisiye sayısız değişikliler almış.

  • Pisi 2.4_alpha3 sürümünü çıkarmış. Bu paketle beraber lib32 için gerekli altyapıyı da başlatmış oldu. (Tarih 21.02.2011)

Bundan sonra şubat ayının sonun kadar benim de içinde olduğum bir dizi lib32 paketlerinin bakımını yapmış. O zamanlar Skype isteği de ön plandaydı. Bu yüzden Skype için gerekli lib32 paketlerini oluşturmaya başladık. Benim hazırladığım paketleri oyun alanıma alıyordum, Fatih de bir yandan onların üzerinden geçiyordu. Bununla ilgili bir mail de geliştirici listesine atmışım:

http://liste.pardus.org.tr/gelistirici/2011-February/055676.html

Bu arada tarihlere dikkatlice bakınız. Fatih 21.02 tarihinde lib32 için gerekli altyapı paketini, yani Pisiyi depoya koymuş. İki gün sonra neredeyse **yaklaşık 40 tane **lib32 paketi hazırlamıştık ve playground’a bekliyordu. O iki gün gerçekten inanılmaz işler yapmıştık.

Mart (başlangıç)

  • lib32 paketlerinden dolayı sıkan sorunları çözmeye zamanını ayırmış.

  • Nvidia ekran kartları sürücülerine göz atmış

  • Kısa kısa paket düzenlemeleri yapmış

Fatih sonra 04.03 gibi aramızdan ayrılıyor. Kendisi bir ay sonra Askere gidecekti. Tabi bununla bitmiyor, tatildeyken bile Pisi 2.4_alpha4’yı çıkartmış. Pisi’ye yeni buildfarm ile uyumlu olacak şekilde Delta desteğini de veriyor. Bunu yaptıktan sonra Nisan ayını başında zaten Askere teslim oluyor. Üzerinde 300’e yakın paket vardı. Bunların bir çoğunu ben aldım. Bunların arasına Wine’de vardı. Bunu da hata kaydında belirtmişim (03.03).

Fatih Aşıcı tarafında durum böyleydi. Kendisine Wine paketini Mart ayı başlangıçında sormuştum. Kendisi Askere teslim olmadan önce yapacağını dile getirmişti. Yani Nisan’ın başında gitmeden önce bakacağını söylemişti. Ben de haliyle Nisan’a kadar bekledim. Fakat işler istenildiği gibi gitmiyor. Hayat bu, demek ki Fatih de zaman bulamadı ve yapamadı.

Nisan’dan sonra peki ben ne yaptım da Wine 64bit paketi hala depo’da yok ?

Nisan (1-30 arası)

  • Libva paketini yeni sürüme çekmişsim,

  • Libva güncellendiği için, çeşitli paketleri tekrar derlemek zorunda kalmışız (geliştirici listesinde bununla ilgili mail mevcut)

  • Sayısız paket güncellemeleri yapmışım:

    1. Texmaker

    2. Aria2

    3. Git

    4. Libtorrent

    5. Dos2unix

    6. Xorg-sgml-doctools

    7. Chromium’u (ayda 3-4 kere oluyor bu güncelleme)

    8. Xscreensaver

    9. Flashplugin

    10. Intel ekran kartı sürücüleri

  • Yeni ati kapalı kaynak kodlu sürücülere göz atmışım

  • Ati sürücüleri ile ilgili değişiklikleri depoya yansıtmışım.

  • Xorg-app’deki bir güvenlik açığını kapatmışız

  • Çomak’da Gnome3 çıkabilir düşüncesi ile xkeyboard-config’u güncellemişsim

  • Xkeyboard’un düzgün çalışabilmesi için libX11’i de güncellemişsim

  • Bugzilla’daki Licq vardı onunla ilgili oyun alanımda Licq paketini hazırladım

  • Udev’deki 32 bit kütüphaneleri 64 bit olanları eziyordu onu düzeltmişsim (ilgili geliştirici maili)

  • Önemli bir bileşen olan libdrm’i paketine bakmışsım

  • Nvidia kapalı kaynak sürücülerini güncellemişsim

  • Geleneksel Vim yamaları eklemişim

  • Bir takım bileşenleri üzerime almışım

  • Nvidia açık kaynak kodlu sürücüleri güncellemişsim

  • Mutt’daki bir güvenlik açığını kapatmışsım

  • Phoronix test-suite’nin çalışabilmesi için Php’yi değişiklik yapmışız

  • Bir takım Nvidia reverse engineering uygulamalarını oyun alanıma yüklemişsim

  • Virtualbox ailesini güncellemişsim

  • Wine 64bit için gerekli olabilecek lib32 paketlerini depoya almışım (freeglut, glew, mesa)

  • Emre Erenoğlu’nun katkılarıyla daha fazla lib32 paketleri almışız depoya (libXft, libXtst, libXpm, libXinerama, libXcursor)

  • Kde randr modülüni devreye sokmuşum ve baştan yeniden değiştirerek yazmışsım (güzel bir özellik oldu bu)

Bunu dışında Bugzilla’daki hatalar da var elbet (sağ üst köşedeki noktalar gibi). Bunlar da haliyle zaman alıyor. Ha bugün ha yarın derken hala Wine ile uğraşamadım haliyle. Şimdi peki ne durumdayız ?

Yaklaşık bir haftadır Wine ve paket bağımlılıkları ile ilgileniyorum. Wine için mesa-32bit bunun bir önemli parçasıydı. Onu düzgün bir şekilde yaptıktan sonra çeşitli farklı paketler de mevcut yapmamız gerekiyor. Nihayetinde yerelimde Wine 64bit düzgün bir şekilde çalışmayı başardım :) Hatta deneme olarak Winamp uygulamasını indirip denedik Ofiste, sesi de güzelce veriyor (şu ünlü koyun sesi). Örnek ekran görüntüsü:

Wine 64 bit Pardus 2011 altında

Peki depo’ya ne zaman girecek ?

Wine henüz tam bitmedi. Açıkcası bir çok pakete ihtiyacı var hala. Bunlar şu şekilde:

  • libxinerama-32bit (depoda mevcut)

  • libxcomposite-32bit (depoda mevcut)

  • ldbus-32bit (depoda mevcut)

  • libgnutls-32bit

  • libsane-32bit

  • libgphoto2-32bit

  • liblcms-32bit

  • gstreamer-32bit

  • liboss-32bit

  • libcups-32bit

  • libgsm-32bit

  • libtiff-32bit

  • libmpg123-32bit

  • libopenal-32bit

  • libldap-32bit

  • libxml2-32bit

  • libXslt-32bit (depoda var)

  • openssl-32bit (bununla bugün uğraşıyordum bitmedi henüz)

  • libjpeg-32bit

  • libpng-32bit

Yukarıdaki paketlerin çoğunun bizdeki ismi farklı. Bazıları olmayabilir de depoda. Ama Wine’in düzgünce çalışabilmesi için bunların lib32 paketine ihtiyacımız var. Bazı paketlerin lib32 paketini oluşturmak kolay olsa da, bazıları çok zaman alabiliyor. O yüzden hani sizlere iki güne sonra hazır diyemiyorum. Paketlerin çoğunu bilmiyorum bile ne yaptığını, benim üzerime olmayan paketler.

Pardus’taki Wine 64bit’in hali bu durumda. Umarım en azından kafanızda bazı şeyler şekillenmiştir diye düşünüyorum. Hatırlarsanız, geliştiricileri bir hatayı iki ayda bir çözüyor demiştiniz ve bununla ilgili uzun bir yazı yazmıştım. “20-30 tane geliştirici var, bir Wine’i mi yapamıyorlar” diyenler de oldu, bu yazıyı okuduktan sonra belki farklı düşünen olmuştur, yok değişmediyse o zaman kendimizi hala anlatacağız demektir.

Örneğin yukarıda saydıklarımın arasında, ne kadarını kod geliştirmeye ayırdık sizce ? Ben kendi adıma konuşursam çok ama çok az. Gönül isterdi ki, paketlerin sayısı az olsun, bugzilla’daki hatalar az olsun, kullanıcıların isteklerini yerine getirelim, yeni teknolojiler geliştirelim. İnanın sizler ne kadar istiyorsanız bizler de istiyoruz bunları yapmayı. Ama buraya kadar okuyup geldiyseniz, yukarıda Fatih Aşıcı’dan verdiğim örnekleri de göz önüne alırsanız, ne durumda olduğumuzu herhalde çok iyi anlayacaksınızdır. Akşamları eve gelince, hafta sonları bile boş vakitlerinde sizlere zaman ayıran insanlar bunlar.

Bu sıkıntıyı gidermek için çözümlerden bir tanesi geliştirici sayısını artırmak. Buraya kadar okumuşsanız, “Madem böyle bundan sonra ben de Pardus için bir şeyler yapmak istiyorum” diyorsanız şimdi tam zamanı. Bugzilla’daki hatalara bakın, yeni paket isteklerindeki paketlerle ilgilenin, geliştirici adaylığına başvurun, ben güzel yazı yazarım diyorsanız güzel belgeler yazın, çeviri yapın, Pardus’u dünya’ya tanıtın.

Siz var olduğunuz sürece biz de bu işi yapıyor olacağız. Gelin hep beraber güzel işlere imza atalım. Sizden tek isteğim bu.

3 Mayıs 2011

WP Twitter Auto Publish Powered By : XYZScripts.com