February 03, 2010
Özellikle Kurumsal sürüm dalımızın belirginleşmesi ve resmiyet kazanması ile 2000 serisi sürümlerimizin geliştirilmesinde kullanıcı camiasının sesine daha fazla kulak verme gereği ve olanağı ortaya çıkmış durumda. UEKAE ekibi olarak olabildiğince açık ve paylaşımcı bir yönetim tarzı oturtmayı can-u gönülden istiyoruz, her zaman çok belli etmesek de
Kullanıcı camiamıza sürüm geliştirme konusunda daha fazla yetki ve inisiyatif vermek de bu konudaki uygulamalarımızdan biri. Pardus 2009 yolunda bir Ürün Yöneticisi belirlemiştik, uzunca bir zaman da Sürüm Yöneticimiz ile hayli uyumlu çalıştı. Ancak sonrasında çeşitli kısıtlar ve özel nedenlerle bu programdan fazla verim alamadık Pardus 2011 için bu yolu bir kez daha, bu kez biraz farklı bir yaklaşımla deneyeceğiz…
Pardus 2011′in geliştirilmesinde kullanıcı camiası ile iletişimimizi Sürüm Camia Temsilcisi (kısaca SCT) sağlayacak. SCT’in iş tanımı şu maddeleri içeriyor:
- SCT, geliştiriciler ve topluluk arasında bir köprü görevi görerek Sürüm Yöneticisi’nin sürümün getireceği yenilikler ve kapatacağı eksiklere karar vermesine Pardus kullanıcılarının taleplerini ileterek katkıda bulunur.
- SCT, Pardus kullanıcıları listesini, ozgurlukicin.com forumunu, ozgurlukicin.com beyin bölümünü, özellikle küresel Linux ve özgür yazılım mecralarındaki Pardus değerlendirmelerini ve Pardus hata takip sistemini yakından takip eder. Bu platformlardaki yararlı gördüğü fikirleri, kullanıcıların acil ve/veya engelleyici sorunlarını belirli periyotlarla Sürüm Yöneticisi’ne bildirir.
- SCT, Sürüm Yöneticisi ve geliştiriciler tarafından verilen teknik kararların, kullanıcı deneyimini etkileme durumlarına bağlı olarak, kullanıcı camiasına iletilmesi konusunda Sürüm Yöneticisi’ne yardımcı olur.
- SCT, YALI tanıtım metinleri, yardım merkezi, kullanıcı kılavuzu, sürüm duyurusu da dahil olmak üzere, sürüm ile ilgili olarak üretilen tüm belgeleri inceler ve nihai onay konusunda Sürüm Yöneticisi’ne görüş bildirir.
Bu kapsamda Pardus 2011 SCT olarak görev alması için sevgili Kubilay Kocabalkan‘a teklif götürdük, o da kabul etti. Bu sayede Kubilay’ı Sürüm Yöneticimiz sevgili Gökçen ile ilk etabı 11 ay, tümü de neredeyse 2,5 yıl sürecek bir yolculuğa çıkarıverdik. Kolay gelsin Kubilay, işlerinde kolaylıklar…
03 February 2010 @ 04:09 PM

Pardus resmi web sitesinden:
Açık kaynak kodlu, özgür işletim sistemi Pardus, bugün 5. yaşını kutluyor. Pardus’un ilk ürünü olan Çalışan CD 2005 yılı Şubat ayında Gaziantep Üniversitesi’nde düzenlenen Akademik Bilişim Konferansında kamuya duyurulmuştu. Pardus, 2003 yılında TÜBİTAK UEKAE (Ulusal Elektronik ve Kriptoloji Enstitüsü) bünyesinde bir olurluk ve planlama projesi olarak başlatılmış ve hızla çekirdek bir teknik ekip toplanarak Linux temelli, açık kaynak kodlu ve GNU GPL özgür lisanslı bir işletim sistemi dağıtımı geliştirme işine girişilmişti. Bugün varılan noktada Pardus, geniş kitleler tarafından çok yakından takip edilen ve her geçen gün artan sayıda kurum tarafından tercih edilen bir işletim sistemi haline geldi.
yazının tümü burada ve ayrıca burada…
03 February 2010 @ 08:46 AM
February 01, 2010
Uzun çalışmamız ürünü olan pardus kurumsal 2 64 bit pardus alfa sürümü çıktı. Uzun günler boyunca çalıştık, sorun çözdük hep beraber(Pardus ekibine yardımları için çok teşekkür ederiz) ve ilk kurulan cd'miz artık hazır. Tabi ki içerisinde hatalar olabilir sonuçta alfa sürümü ;) Hataları bildirmekten çekinmeyiniz, yardım etmekten ise hiç çekinmenize gerek yok tabi ki.
Bu sürüm'ü kuracak ve kullanacak olan tüm arkadaşlara sesleniyorum, güle güle kullanın. Çalışmaya devam edeceğiz yakından takip ediniz;)
ps: bir iki link vermeden bu yazıyı sonlandırmak gereksiz olacağı için,
Şurada ilk alfa sürümümüz : http://members.comu.edu.tr/nyucel/Pardus-C2-x86_64-alfa.iso
Burada da depomuz : http://x86-64.comu.edu.tr/pisi-index.xml.bz2
Bu da sha1sum'ı tabiki : http://members.comu.edu.tr/nyucel/Pardus-C2-x86_64-alfa.iso.SHA1SUM
01 February 2010 @ 11:09 PM
Pardus Kurumsal2 64-bit Kurulan CD'nin ilk sürümü daha önce yayınladığımız sürüm takvimine[1] uygun şekilde hazır[2].
Depoda 1842 adet paket bulunmasına rağmen openoffice.org, thunderbird gibi bazı paketler şimdilik bulunmuyor ama çalışmalarımız sürüyor.
Çok çalışan 3M'ye tebrikler, çok yardımcı olan Pardus ekibine teşekkürler.
[1] http://nyucel.blogspot.com/2009/10/64bit-pardus-surum-takvimi.html
[2] http://members.comu.edu.tr/nyucel/Pardus-C2-x86_64-alfa.iso
[3] http://members.comu.edu.tr/nyucel/Pardus-C2-x86_64-alfa.iso.SHA1SUM
01 February 2010 @ 04:35 PM
January 28, 2010
Hani şu anda bu yazıyı okuduğunuz o plastik kutunun içindeki her şey. Her gün değişiyor teknoloji. Bazen tekrarlıyor kendisini bazen yeniliyor..
Bakış açılarımız değişiyor, alışkanlıklarımız değişiyor, teknoloji bazen ayak uyduruyor bazen bize yön veriyor.
3 sene öncesine kadar dokunmatik cihazlar yanlış tasarımlarının kurbanı kalemlerle birlikte pek bir kullanışsızdılar ama teknolojiktiler (!). Sonra birileri dokunmatik bir cihazın gerçekten dokunulabilir bir şey olmasını akıl etti ve gerçekleştirdi. iPhone mobil dünyayı sağdan sola geçirdi. Sadece o incecik, dokunulabilir, kompakt donanımı ile değil, üzerinde çalıştığı müthiş donanımın hakkını veren yazılımları ile de çok büyük bir değişime sebep oldu.Mobil dünyanın donanım üreticileri iPhone‘a bakarak donanım üretmeye başladılar. Yazılım üreticileri mobil MacOsX ‘i temel aldılar. Büyük abiler mobil yazılım pazarına girmeye karar verdi vs. vs.

Mobil pazarın en önemli oyuncusu Nokia bile Apple‘ın mükemmel bir şekilde gerçeğe dönüştürdüğü bu yaklaşımı yeni yeni keşfetmeye başladı.. Binlerce modele sahip olmasına rağmen hiçbir Nokia modeli iPhone’un yakaladığı başarıyı yakalayamadı.. Hatta birkaç yüz tanesi bile tek başına iPhone ile başa çıkamadılar..
Teknoloji durmuyor ya yerinde hani değişiyor, yeniliyor ya kendini.. E-book (elektronik kitap) denilen, başta pasif monochrome ekranları, elektronik mürekkebi ile geldi. Önce gerçek kağıttan kitapların en büyük oyuncusu Amazon el attı e-book işine.. Kindle’ı çıkarttı kısmen başarılı oldu.. Ekran okuma için gerçekten çok başarılıydı, müzik dinleyebiliyordunuz ve internete girebiliyordunuz siyah-beyaz.
Apple ?
Durmadı tabi, tablet bir bilgisayar çıkaracağı söylentileri dolaşmaya başladı.. Bir sürü tasarımcı olası iTablet tasarımlarını ortaya attılar (isim bile çelişkili idi iTablet, iSlate ..). Artık Apple’ın tasarım yaklaşımını anlamış olacaklar ki (sadece basit) ortaya atılan olası tasarımların hemen hemen hepsi dün Steve Jobs‘ın biz Dünyalılara duyurduğu iPad ile hemen hemen aynıydı.

Yine yaptılar. Steve Jobs efsanevi tanıtımı sırasında iPad’in yerini şu şekilde tarif etti; “herkesin telefonu ve dizüstü bilgisayarı var, biz bunların yanına üçüncü bir teknoloji yerleştirmeyi hedefledik ve sanırım başarılı olduk“.
Steve Jobs işe geri döndükten sonra ilk olarak büyük yanlışı düzeltti Intel‘e geçti. Masaüstü ve Dizüstünde çok değerli olan bu adımı yenilenmiş gri-siyah tasarımlı iMac‘ler izledi. iPod‘un başarısını ve gelişimini söylemeye gerek yok herhalde :) Arada o müthiş tasarımcılarının elinden MacBook Air çıktı.. iPhone ile dokunulabilen efsaneyi yarattıktan sonra yine yeni bir efsane ile aramızda. FSF‘nin dediği gibi iBad olabilir özgürlük için; ama teknolojinin bu kadar gelişmiş olması heyecan verici.. Hep Apple yapıyor olsa da ben mutlu oluyorum :)
28 January 2010 @ 07:03 PM
January 23, 2010
Tr-spell projesinde yer alan turkce imla denetimi paketini Firefox 3.5 ve 3.6 ile calisir hale getirdim. Isteyenler indirebilir . Kurulum icin: http://code.google.com/p/tr-spell/wiki/FirefoxEklentisininKurulmasi . Chrome kullaniyorsaniz zaten kendi icerisinde turkce imla destegi var.
23 January 2010 @ 03:18 PM
January 19, 2010
Pardus‘un Mayıs’a doğru kararlı sürümünün çıkması düşünülen “Kurumsal 2″ dağıtımı için TÜBİTAK-UEKAE diğer sürümlerden farklı bir politika güdüyor. Bu sürüm için diğerlerinden daha uzun süre destek verilmesi planlanırken, resmi paket deposuna daha az yazılım alınıyor; depoya alınmayan ek yazılımların yerleştirilebileceği bir katkı (contrib) paket deposu oluşturmaya da sıcak bakmadıklarını belirtilmişlerdi.
Bunun üzerine ben ve Türker (Sezer), Linux Kullanıcıları Derneği bünyesinde bir kurumsal 2 katkı deposu açmayı düşündük. Bir haftaya yakın bir inşaat sürecinin ardından da depoyu ve bir web sayfasını (wiki, svn, iş takip sistemi ile beraber) çalışır hale getirdik.
Deponun web sayfasında ayrıntılı bilgi bulabilir, depoyu Kurumsal 2 sisteminize ekleyebilir, depo gelişimini takip edebilir, paketleme isteklerinde bulunabilirsiniz. Paketleme çalışmalarına katılmak isteyecekleri de aramızda görmekten mutluluk duyarız.
19 January 2010 @ 08:57 AM
January 15, 2010
Build farm hakkında bir ufak çaplı bir yazmıştım ancak kaza sonucu yok olunca kısa ve öz bir şekilde build farmdan bahsetmeyi daha doğru buldum.
Buildfarm bizim elimizle yaptığımız paket derlemeyi otomatikleştirmeye yarayan bir buluş diye adlandırabiliriz. Kendisini doğru yapılandırınca, verilen xml'lerin paketlerini yapıyor, svn'de paketlerde bir değişiklik oluştuğunda haberdar olup onların paketlerini yapıyor, şu paketleri yapmaya başlıyorum, şu paketleri bitirdim ve şu paketlerde sorunlar yaşadım diye mail atıyor. Yapamadığı paketleri de bekletiyor...
Peki çalışır hale nasıl getirilir?
Başlangıçta svndeki son revizyonunda bir takım sorunlar var. Pardus ekibinden yeniden yazıldığı hakkında bilgi aldım. O yüzden sayın Türker Sezer ile konuşmamdan sonra açıklayıcı bilgilerinin ışında revizyon 24480 kullanmaya başladım(Ve onu anlatacağım).
Teknik olarak buildfarm pisinin yapacağı birşeyi yapmıyor. Bizim ile pisi arasında duruyor diyebilirim. Biz buildfarm'a toplu görevler veriyoruz, o da pisiye sırası ile iletiyor, oluşan paketleri bir yere topluyor ve index oluşturuyor(wrapper olarak kullanılıyor yani). Hayat kurtarıyor bile diyebilirim.
İki şeye ihtiyacımız olacak başlangıç olarak;
- buildfarm kaynak kodlarına,
- Buildfarm'a verilecek olan paketlerin pspec.xml ve actions.py içeren havuzu(repository).(Birde pardus'a tabiki)
İlk olarak /root un içerisine indirmemenizi tavsiye ediyorum. Çünkü disk dolsa bile root için ufak bir alanın kalması gerektiği ve böylece sisteme müdahale edebilme imkiyanının bulunabilmesi için...
Örnek olsun diye ben /hede diye bir dizin açtım kabul edelim.
ilk olarak;
# cd /hede# svn co -r 24480 http://svn.pardus.org.tr/uludag/trunk/buildfarmBu sayede build farm kaynak kodlarını sistemimize indirmiş bulunuyoruz.
# svn co http://svn.pardus.org.tr/pardus/2009/develBu sayede havuzu /hede dizinimize indirmiş bulunuyoruz. Bu havuzun svn yapısı ile tutulması buildfarm içinde gereklidir çünkü kendisi bu havuzdaki güncellemeleri kontrol edebiliyor. Böylece kendisine bunları ekledim, bi zahmet yapı ver dememize gerek kalmıyor.
# cd /hede/buildfarmBu dizinde bulunan config.py python kodunu düzenleyerek buildfarm'ı çalışır hale getireceğiz(python bilmenize gerek yok bunun için).
localPspecRepo = "/hede/2009/devel" -> Burada indirmiş olduğumuz paket havuzumuzun yolunu gösteriyoruz. Böylece buildfarm ne üzerinde çalışacağını öğreniyor.
logFile = "/var/cache/pisi/buildfarm.log" -> Buildfarm'ın temel loglarının bulunacağı dosyayı belirtiyoruz.
outputDir = "/var/cache/pisi/buildlogs/" -> Yapılmaya çalışılan paketler ile ilgili logların tutulacağı dizini belirtiyoruz.
binaryPath = "/var/cache/pisi/packages/" -> Oluşan paketlerin koyulacağı dizin
testPath = "/var/cache/pisi/packages-test/" -> Build farm'ın kendi oluşturduğu paketlerin dizini
debugSupport = FalsedebugPath = "/var/cache/pisi/packages-debug/"
ignoreCheck = True -> Actions.py'lerde check kısımlarının geçilmesini sağlar. Pek çok pakette bu testler düzgün yapılamadığı için ön tanımlu true gelir.
sendEmail = True -> Yaptıklarını bize haber verecek olan güzel teknoloji.
mailFrom = "buildfarm@pardus.org.tr" -> Gönderilecek mail'de kimden gelmiş kısmı
announceAddr = "buildfarm@pardus.org.tr" ->
ccList = ["buildfarm@pardus.org.tr"] -> Kime ek olarak gönderilecek
smtpServer = "mail.pardus.org.tr" -> Smtp servisi veren ve mail'in gönderileceği sunucu
useSmtpAuth = True -> Smtp gönderirken kimlik kanıtlaması yapılacağını belirtiyor.
generateDelta = True -> Hayatı kolaylaştıran delta paketlerin yapılacağını belirtiyor.
deltaBlacklist = [] -> Bu liste ise delta paketlerinin yapılmaması gereken paketlerin isimleri yazılması gerekiyor.
Şimdi bir adet mailauth.py diye dosya oluşturuyoruz. Çünkü mail gönderirken hangi kullanıcı ve parolası ile göndereceğini buraya bakarak söyleyecek. İçerisine
username = "hede@hodu.org.tr"password = "xxxxxxxxxxxxxxxx"
yazılması yeterli. Çalıştırırken ilk olarak repomanager.py çalıştırılması daha sonra ise main.py çalıştırılması gerekmektededir.
Buildfarm çalıştıktan sonra /var/pisi altında iki tane dosya oluşacak;
-
workQueue, -> Burada yapılacak olan paketlerin pspec.xml'lerinin tam yolları yazılıyor,
-
waitQueue -> Burada ise yapılmasında bir sorun oluşmuş paketlerin bir sonraki çalışmada yeniden yapılabilmesi için sırada beklemeleri için tam yolları yazılı.
Ek olarak da /etc/pisi/pisi.conf'da bir kaç düzenlemeyle daha hızlı bir buildfarm elde edebiliriz;
[build]buildhelper = ccache -> Bu seçenek derleme yaparken ccache paketinden yardım alır. Daha hızlı bir derleme oluşur.
buildno = True -> Bu seçenek ile aynı sürümden iki paketin çakışması engellenir.
cflags = -mtune=generic -march=i686 -O2 -pipe -fomit-frame-pointer -fstack-protector -D_FORTIFY_SOURCE=2 -g3 -ggdb -> Sona gelen -g3 -ggdb ile debug parametresi verilmiş olur. Oluşan hatalarda daha anlaşışır çıktılar gözlemlenebilir.
compressionlevel = 9 -> Paketlerdeki sıkıştırma oranını arttırır. Ancak sistemin canına okur.
cxxflags = -mtune=generic -march=i686 -O2 -pipe -fomit-frame-pointer -fstack-protector -D_FORTIFY_SOURCE=2 -g3 -ggdb -> Sona gelen -g3 -ggdb ile debug parametresi verilmiş olur. Oluşan hatalarda daha anlaşı
şır çıktılar gözlemlenebilir
enableSandbox = True -> Paket derlenirken temel sisteme erişim kontorlü yapmasını sağlar.
fallback = ftp://ftp.pardus.org.tr/pub/source/2009 -> Paketin kaynak kodunun adresi cevap vermiyorsa buradan indirmeye çalış.
generateDebug = True ->
host = i686-pc-linux-gnu -> Üzerinde bulunan gcc'nin hangi mimari için derlendiği(biraz karışık oldu galiba :)
jobs = -j5 -> Yapılan derleme işleminin paralelleştirilme sayısı(çekirdek sayısı +1 diye hesaplayabiliriz.)
ldflags = -Wl,-O1 -Wl,-z,relro -Wl,--hash-style=gnu -Wl,--as-needed -Wl,--sort-common -> Dinamik kütüphaneler için gerekli bayraklar.
Not: Buildfarm kurarken kullandığınız dağıtımın o sürümünün havuzunu almaya dikkat ediniz(2008 üzerinde 2009 buildfarm'ı mantıklı değil;)
15 January 2010 @ 12:40 AM
January 04, 2010
Pek uzun zamandır bu günlüğü sadece veda yazılarımı yazmak için kullanır olduğumdan geleneği bozmamak adına bir tanesini daha yazmadan geçemedim. Buyrunuz buradan yakınız;
Temmuz 2008'den beri Symantec çatısı altında yürüttüğüm profesyonel çalışma hayatım Aralık 2009 itibariyle sona erdi. TÜBİTAK çatısı altından çıktıktan sonra gözlemleme şansı bulduğum dış dünyada olup bitenleri algılayabildikten sonra, beraber çalışılabilecek en düzgün ekiplerden biri ile ile yaklaşık 1.5 sene boyunca çalışma şansı bulduğum için kendimi gerçekten hallice şanslı hissediyorum. Hazır yeri gelmişken başta harika bir teknik adam, nefis bir insan ve kusursuz bir patron olduğu için Burak Dayıoğlu'na, güzel bir takım olma becerisine sahip çok az ekipten biri oldukları için tüm Symantec Türkiye Danışmanlık ekibine, ve her biri işinin erbabı olan Symantec Türkiye Satış ve Satış Öncesi ekiplerine teşekkür etmeden bu yazıyı tamamlayamayacağım.
Bu süre zarfında dış dünya diye tabir etmekten nedensiz bir zevk aldığım o yerde o kadar çok mutsuz, yerinde saymayı gelenek haline getirmiş, tabansız bir özgüvenle konuşan ve/veya hareket eden, düşünce sistemindeki çarpıklıklardan dolayı o yaşa kazasız/belasız gelmiş olabilmesi bile mucize olabilecek, yaptığı işi sevmeyen/saymayan v.b. insan ile tanıştığımdan verebileceğim yegane tavsiyem gelecekteki iş yerinizi ve iş arkadaşlarınızı seçerken dikkatli olmanız olabilir. Aksi halde, ne yazık ki bence pek doğru dönmeyen bir çarkın, kırık/arızalı/aksak bir parçası olarak bitmenizin çok zor ve zaman alıcı olmadığını tecrübe etmekte pek zorlanmayacağınızı düşünüyorum. Bu tabi ki sektör diye tabir edilen dış dünyanın her yanının böyle olduğu anlamına gelmemeli, bu süre zarfında sayıları iki elin parmakları kadar bile olsa da tanıştığım pek değerli insanlara da buradan selamlar olsun.
Aralık başından itibaren Princeton Üniversitesi, Bilgisayar Bilimleri bölümünde yürütülmekte olan Planet-Lab projesinde Araştırmacı sıfatı ile çalışmaya başladım. Bu hamlenin doğal bir sonucu olarak da pek yakın bir gelecekte ABD'ye taşınıyor ve hayatımın şimdilik bilinmez bir süresini oralarda geçiriyor olacağım. Dünyanın en saygın akademik ortamlarından birinde, harika bir kampüste, birbirinden değerli insanlar ile beraber çalışma fırsatı yakalamış olmaktan dolayı son derece heyecanlı ve mutluyum. Bu değişikliğin bir diğer tadından yenmez güzelliği ise pek değerli dost Barış Metin ile, her ne kadar aynı ülke sınırları içinde olmayacak olsakta, beraber çalışacak olmamız...
Bu değişikliğin kaçınılmaz olarak yanında getireceği bir seri özlemi omuzlama yardımcı olan/hayatlarında olan ve olacak olan bir sürü değişikliği sessizce kabul eden pek sevgili ailem'e, her kararımda koşulsuz yanımda olan/beni kendinden önce düşünen/nefes aldığım her anımda iyi ki varsın dediğim pek değerli hayat arkadaşım Seda'ya ve bu geçen senelerde her birini tanıma şansı yakaladığım için sonsuz mutlu olduğum onlarca değerli dostuma da her şeyden çok teşekkür etmeden ve "iyi ki varsınız ve her anımda hep olun..." demeden bu yazıyı bitirmek tatlı yemeden sofradan kalkmaya benzeyeceğinden (ve bu bazı kültürlerde ölümle bile cezalandırılabilecek ciddi bir suç olduğundan) kendilerine buradan da bir kez daha seslenmeden edemedim.
Ne demişler, "So Long, and Thanks for All the Fish..."
04 January 2010 @ 12:51 AM
January 02, 2010
December 30, 2009
Bugün 64-bit kurulan Pardus için son eksiğimiz olan önyükleyiciyi nasıl halledeceğimize de karar verdik. Pardus'un 32-bitte kullandığı önyükleyici olan grub uzun süredir gelişimi durmuş bir yazılım. Yapması gereken işi fevkalade iyi yaptığından bir eksikliği de yok açıkçası.
Bizim açımızdan tek eksiği 64-bitte derlenmiyor oluşu. Diğer dağıtımlar ne yapmışlar diye baktığımızda onların grub'ı 32-bitte statik derleyip kullandıklarını gördük. Bugün biz de aynı yolu izledik ve sonuç olarak kurulan cd için eksiğimiz kalmadı.
En kısa sürede elimizdeki paketlerden[1] bir seçkiyle kurulan cd hazırlayabilmek için çalışıyoruz. Bu cd bizim için çok önemli bir eşiğin aşılması anlamına gelecek, çünkü bu cd'yi alan paketçiler kendi paketlerinin 64-bitte nasıl derlendiğini, ilave bir şey yapılmasının gerekip gerekmediğini görebilecekler. Pardus'un 64-bit gelişim süreci çok hızlanacak.
Biz de böyle büyük bir işin altından kalkabilmenin verdiği cesaretle kim bilir neler yapacağız...
ps: Yıllar önce çekilen 64 bit pardus videosunun yenisini[2] bugün çektik ;) Çekimlerin pek eğlenceli olduğunu söylememe gerek yoktur sanırım.
[1] http://x86-64.comu.edu.tr
[2]
30 December 2009 @ 10:22 PM
December 29, 2009
Geçen hafta oldukça az paket içeren bir rootfs geliştirici sürümünü duyurmuştuk[1], şimdi sırada alfa var[2]. Alfa için 2010 Şubat'ını öngörmüş olmamıza rağmen takvimde bir değişiklik yapabilecekmişiz gibi görünüyor.
Geldiğimiz durumda 1200'ün üzerinde 64bit pisi paketini hazırlamış durumdayız[3]. Bu aşamada hedefimiz daha fazla paketi 64bit'e taşımak yerine kurulabilir bir cd hazırlamak olacak.
Belki de bir yeni yıl ISO'su yetiştirebiliriz, kim bilir...
[1] http://nyucel.blogspot.com/2009/12/pardus-corporate-2-x86-64-rootfs-042.html
[2] http://nyucel.blogspot.com/2009/10/64bit-pardus-surum-takvimi.html
[3] http://x86-64.comu.edu.tr
29 December 2009 @ 11:12 PM
Selamlar,
PHP’de kullanabileceğim framework leri araştırırken hem basitliği hemde iyi dökümante edilmiş olmasından CodeIgniter’ı tercih ettim. Bir süredir alışmaya çalışıyorum. CodeIgniter’ın kurulumu gerçekten çok basit. İsterseniz adım adım CI ‘ı sistemimize kuralım.
CI ‘a bulaştıysanız çoktan PHP, Apache, MySQL sisteminizde kuruludur ama yinede biz bir iki laf edelim. Konsolda kısaca sudo pisi it mod_php apache komutu vererek sistemimize PHP ve Apache kuralım. (mysql-server kurulu gelmektedir) Daha sonra yine konsolda service apache start komutu ile apache servisini çalıştıralım. Her defasında localhost işlemleri için /var/www/ dizinine ulaşmak istemezsek ev dizinimizde public_html adında bir dizin oluşturabiliriz. Böylece http://localhost/~kullanici_adiniz adresi ile projelerimizi tutabileceğimiz adrese ulaşabiliriz. İşte bizde CI ‘ı burada tutacağız. Bu adresten CI ‘ın son sürümünü indiriyoruz. zip olarak sıkıştırılmış dosyayı /home/kullanici_adiniz/public_html dizinine açıyoruz. İsterseniz açılan dizin ismini değiştirebilirsiniz. Web tarayıcımız ile http://localhost/~kullanici_adiniz/CodeIgniter adresine giriyoruz. O da ne? Bizi hoşgeldin diyerek karşılayan bir sayfa! Çok tatlı
İşte Pardus altında CI ‘ı kullanmaya başlamak bu kadar basit. Bundan sonrası Internetteki kaynaklara başvurarak CI ‘a iyice alışmak. Bu süreçte en yakın dostunuz bu adreste. Vakit buldukça CI ile ilgili öğrendiklerimi burada paylaşmayı planlıyorum.
Bu arada tam da bugün Pardus projesinde svn hesabı almamın bir yılı dolmuş
[1] Pardus projesi bana çok şeyler kattı bunun farkındayım. Bu süreçte bana yardımcı olan herkese teşekkür ederim. Bende elimden geldiğince katkı vermeye çalıştım projeye. [2] Umarım yararlı olabilmişimdir. Pardus ‘un hayatımdaki yeri hakkında o kadar çok şey yazabilirim ki tahmin edemezsiniz. Ama bu saatte gözüm kesmiyor yazmayı
Hepinize mutlu yıllar dilerim. Bol Pardus’lu günler…
[1] http://liste.pardus.org.tr/paketler-commits/2008-December/063966.html
[2] https://www.ohloh.net/p/pardus-linux/contributors/26912265106655
29 December 2009 @ 02:00 AM
December 27, 2009
Geçtiğimiz hafta hem gönüllü geliştiricilerimiz hem de bu güne kadar bize sayısız konuda destek olan Özgürlükİçin.com üyesi katkıcılarımız bizden bir e-posta aldı. 2009 yılı biterken Pardus projesi olarak katkıcı ve geliştiricilerimize Pardus için yaptıklarına teşekkür etmek amacıyla minik bir hediye vermek istedik.
Geçtiğimiz haftayı ben ve çokça Işıl bu işin organizasyonunu yapabilmek için harcadık. Lazer etiketler, yüzlerce kargo poşeti temini, adreslerin toparlanması, yazılması ve paketlerin hazırlanması derken en son Cuma günü göndereceğimiz paketlerin büyük çoğunluğunu hazırlamıştık. Yarından itibaren yeni yıl olmadan paketlerin sahiplerine ulaşmasını umut ederek kargo işlerini başlatıyor olacağız.
Umuyorum yeni yıldan hemen önce sizleri gülümsetmeyi başarabiliriz! Şimdiden herkese yeni yılda sağlık, mutluluk ve bol bol Pardus dolu günler diliyorum!
Not: Gönderi listesini oluştururken Ali Işıngör’ün ve Onur’un büyük katkısı sayesinde epey geniş bir liste oluşturmaya çalıştık. Eğer aradan kaçırdığımız birileri olduysa bize bildirmekten çekinmesin =)
*: hayır bunlar pisi paketi değil
27 December 2009 @ 11:15 PM
December 26, 2009
ÇOMAR ve PiSi kardeş, sanırım herkes biliyor bunu. Biri paketleri kuruyor, güncelliyor; diğeri kurulu paketlerin yapılandırma işlerini üstleniyor. Peki, ÇOMAR ve PiSi beraber nasıl çalışıyor? Paket yapıyorsanız ya da yapmak istiyorsanız, eninde sonunda "ÇOMAR betiği yaz" diyecektir birileri size, ve elbet bu soruyu soracaksınız. PiSi paketi yapmak çocuk oyuncağı olduğundan, diğer paketlerdeki ÇOMAR betiklerini alıp ufak değişikliklerle kendi PiSi paketlerinizde kullanabildiğinizden cevabını bilmemeniz ya da öğrenmemeniz muhtemelen uzunca bir süre etkilemez sizi, ama paket yapım işinizi kolaylaştırabilir de.
PiSi kaynak paketlerinde (pspec.xml), ikili paketin (.pisi uzantılı) sağladığı ÇOMAR görevlerinin ve her görevin hangi Python dosyası tarafından sağlandığının listesi bulunur:
<Package>
<Name>python</Name>
<Files>
...
</Files>
<Provides>
<COMAR script="package.py">System.Package</COMAR>
<COMAR script="packhandler.py">System.PackageHandler</COMAR>
</Provides>
</Package>
Betikler, kaynak paket ile aynı dizindeki comar/ dizininde (hiç akla gelmez, değil mi?) bulunur. System.Package, System.PackageHandler ve System.Service dışındaki görevler PiSi ile ilgili olmadığından başka bir yazının konusu, bunlar muhtemelen Sistem Ayarları ekranındaki uygulamalardan birinin ihtiyaç duyduğu altyapıyı sağlar.
System.Package görevini yerine getiren betik, paket kurulduktan sonra, kaldırılmadan önce ve kaldırıldıktan sonra çalıştırılacak metodları içerir. Betik içinde, metodlardan herhangi birinin tanımlı olması zorunlu değildir. Dosya haklarını ve sahiplerini değiştirecekseniz postInstall() metodu, paket kaldırılmadan önce ayar dosyalarında değişiklik yapacaksanız (mod_php'yi kaldırmadan önce Apache ayarlarını değiştirmek gibi) preRemove() metodu, paket kaldırıldıktan sonra artık dosyaları temizleyecekseniz postRemove() metodu kodlarınızı yazmanız gereken yer.
import re
def postInstall(fromVersion, fromRelease, toVersion, toRelease):
module_enable('PHP5')
def preRemove():
module_disable('PHP5')
def module_enable(mod):
...
def module_disable(mod):
...
System.PackageHandler'da durum biraz daha farklı. Bu betikler, betiğin çıktığı paket kurulması/kaldırılması sırasında değil, sisteme herhangi bir paket kurulduğunda ya da kaldırıldığında çalıştırılıyor. Çekirdek modülleri ve Python kütüphaneleri gibi, paket deposunda onlarcası bulunan ve hepsine birer System.Package betiği yazsanız üç aşağı beş yukarı aynı betiğin ortaya çıkacağı paketlerde, paketçinin yükünü ve kod tekrarını azaltmak için kullanılıyorlar.
Django paketini kurduğunuzda, sistemdeki her System.PackageHandler betiği çalıştırılır ve betik içindeki metodlara, pakete ait iki XML dosyası parametre olarak verilir: metadata.xml ve files.xml. Bu dosyalardan ilki, pakete ait kimlik bilgilerinin barındırır, ikincisi ise, paketten çıkan her dosyayı ve dosyalara ait özet bilgileri. ÇOMAR betikleri, files.xml dosyasında, kendilerini ilgilendiren bir dosya varsa (mesela, Python'a ait SPH betiği, ikili paket .py dosyası içeriyorsa) ya da metadata.xml'de ilgili oldukları bir veri/etiket bulunuyorsa işlem yaparlar.
Python'a ait SPH betiği aşağıda, yeni başlayanlar için ağır bir örnek ancak örnek olsun diye yazacağım basit bir betik gerçekçi olmazdı.
import piksemel
import sys
import os
pythonPath = "/usr/lib/python%d.%d" % sys.version_info[:2]
def byteCompile(filepath):
doc = piksemel.parse(filepath)
paths = []
for item in doc.tags("File"):
path = item.getTagData("Path")
if path.endswith(".py"):
paths.append("/"+path)
if paths:
os.system("/usr/bin/python %s/py_compile.py %s" % (pythonPath, " ".join(paths)))
def removeByteCompiled(filepath):
doc = piksemel.parse(filepath)
for item in doc.tags("File"):
path = item.getTagData("Path")
if path.endswith(".py"):
try:
# Remove .pyc and .pyo
os.unlink("/%sc" % path)
os.unlink("/%so" % path)
except OSError:
pass
def setupPackage(metapath, filepath):
byteCompile(filepath)
def postCleanupPackage(metapath, filepath):
removeByteCompiled(filepath)
Bu gecelik bu kadar...
26 December 2009 @ 10:39 PM
December 22, 2009
ÇOMAR (COnfiguration MAnageR - Yapılandırma Yöneticisi), sıradan bir işi yapmak için Google'da saatler geçirmeyin, anlamadığınız bir formatta yazılmış ayar dosyalarını kurcalamayın ve bu sırada sisteminizi uçurmayın diye oluşturulmuş bir ayar yönetim sistemi. PiSi'nin kardeşi olur kendisi; biri uygulamaları kurar, diğeri yapılandırır - ya da en azından yapılandırma işi için kolay kullanılabilir bir ortam yaratır.
Misal, ağ bağlantısı kurmak istiyorsunuz. Bunu farklı yollarla, farklı yöntemlerle yapabilirsiniz. Ethernet, wireless, modem ve 3G kullanabilirsiniz. Ethernet ile yapacaksanız iş nispeten kolaydır; DHCP istemcisini açar, IP almaya çalışırsınız. makul bir süre sonra IP alamazsanız, ağda bir sorun olduğunu anlarsınız; ya da IP alıp hayatınıza devam edersiniz. Kablosuzda durum biraz daha karışıktır. DHCP ile IP almadan önce -varsa- kimlik doğrulama yaparsınız, doğrulama şekline göre farklı ayarlar yapar, farklı uygulamalar çalıştırırsınız. Her işi konsoldan yapmanızı gerektiren sadist bir işletim sistemi kullanmıyorsanız, genelde bu iş için bir araç kullanırsınız. İşlem yapmadan önce sizden yetkili kullanıcı parolasını ister, ilgili dosyaları değiştirir, gerekli programları çalıştırır.
Çoğu Linux dağımı bu işi böyle yapar. Belirli bir görevi yerine getirmek için oluşturulmuş -çoğu dağıtıma özgü- yönetim arabirimleri, kendi yöntemleri ile ayarları değiştirir, komut çalıştırır ve sonuçta kullanıcının isteğini yerine getirir. Sorun ise, aynı ayar dosyaları ya da uygulamalar farklı yönetim araçları ve bu araçlardan bilgi almak isteyen diğer uygulamalar tarafından kullanılmak istendiğinde ve kullanıcılara bir işi yapabilmeleri için yetkili kullanıcı (root) hesabı parolası verilmesi gerektiğinde ortaya çıkar.
ÇOMAR, burada devreye girer, sade ve basit bir çözüm ile. Pardus'ta sık yapılan işler için görev modelleri tanımlanır ve bu görevleri üstlenecek uygulamaların birbirlerinin ayağına basmadan, altyapıdaki değişikliklerden (değişen sürümler, kullanılan yeni teknolojiler, ...) çalışmalarını sağlayacak ve gerektiğinde yetki kontrolü yapabilen bir yönetim katmanı oluşturulur.
- Ağ bağlantısı yönetimi
- Aygıtları listele
- Aygıt üzerinde bir bağlantı oluştur
- Adres ayarları yap
- Bağlantıyı aç
- Bağlantı bilgilerini göster
- ...
- Servis yönetimi
- Servisleri listele
- Servisi aç
- Servis bilgilerini al
- ...
- ...
Görev modelleri yukarıda görüldüğü gibi olabildiğince sadedir, uygulamalardan ve teknolojilerden bağımsızdır. Alt görevleri yerine getirecek kodlar ise görevi yerine getirecek uygulamanın PiSi paketi ile beraber gelen Python betikleridir (bunlara ÇOMAR betikleri diyoruz) ve bu betikler içinde modelde tanımlı her alt görevi yerine getiren bir fonksiyon bulunmaktadır. Her uygulama, aynı görevi farklı şekillerde yerine getirdiğinden, her uygulamanın ÇOMAR betiği farklıdır. Betikler, uygulamaların PiSi paketlerini hazırlayan -teorik olarak, Pardus geliştiricileri arasında, o uygulamayı en iyi bilen- geliştiriciler tarafından yazıldığından, arabirimlerin keyfi yöntemlerle ayar dosyası değiştirme ya da komut çalıştırmasından daha güvenli ve düzenlidirler. Detaylı bilgi için, mevcut görev modelleri ve bu görevleri yerine getirecek ÇOMAR betiklerinin formatları incelenebilir.
Arabirimler ve ÇOMAR betikleri arasında duran ve yetki kontrolü yapan katmanda ise, yapılan iş teknik olarak karışık görünse de, aslında son derece basittir. Arabirimden alınan bir çağrı, örneğin ağ bağlantısı kurma emri; çağrıyı yapan kullanıcının o işi yapmaya yetkisi olup olmadığı kontrol edildikten sonra, ilgili uygulamanın ÇOMAR betiğine yönlendirilir ve betikte tanımlı fonksiyon çalıştırılır. Sıkıcı detaylar için, iletişim için kullanılan DBus'a (İngilizce) belgeler ve ara katman ile ilgili tasarım notları incelenebilir.
Arabirimlerin, bu ara katman ile iletişimi kolay bir şekilde yapabilmeleri için -nispeten- basit bir Python kütüphanesi bulunmaktadır:
import comar
link = comar.Link()
print "Servis betiği olan uygulamalar:"
print list(link.System.Service)
Bu Python kütüphanesi ile ilgili daha fazla örnek, COMAR API projesine ait Beni Oku dosyasında ve örnekler dizininde bulunabilir.
22 December 2009 @ 05:42 PM
December 21, 2009
Pardus'un Kurumsal 2 sürümünü temel alıp geliştirdiğimiz 64 bit sürümünün sadece geliştiricilerin kullanımına yönelik kök dosya sistemini paylaşmak istiyoruz[1]. Bu kök dosya sisteminde tüm system.base ve system.devel bileşenleri 64-bit derlenmiş bulunuyor. 64 bite uygun çekirdek ve geliştirme için mutlaka gereken vi ve subversion da bu kök dosya sisteminde mevcut. Daha fazlasını isterseniz 64 bit hazırladığımız paketler de şimdilik burada[4].
Bu kök dosya sistemini kullanabilmek için ayrı bir disk bölümüne veya sanal bir makineye kurmaya ihtiyacınız olacak. Sistemin şimdilik bir yükleyicisi (grub, lilo, vb.) olmadığından varolan bir yükleyicinin boot etmesine ihtiyacı var. Kullandığınız herhangi bir linux'un grub veya lilo'suna herhangi bir linux'u nasıl ekliyorsanız aynı şekilde bu kökdosya sistemini açtığınız bölümü de eklemeniz yeterli olacaktır.
Geleneksel hatırlatmaları yapmakta fayda var: bu kök sistemi bir deneme sürümüdür, yeni toolchain ile paket derlemekten başka bir amaç için uygun değildir. Bu paketleri herhangi bir Pardus üzerine kurmamanız gerekir (kursanız da çalışmazlar;)). Kullandığınız 32bit bir Pardus üzerinden bu kök sisteme chroot yapamazsınız (inatlaşmak için değil de uygun olanı bu değil diye yazıyorum).
/root dizini içine svn deposunun kök dosya sistemi hazırlandığındaki halini devel-x86_64 olarak koyduk. Sistem açıldığında bir svn up diyerek sadece aradaki farkları alıp paketlemeye başlayabilirsiniz. Belki başlamadan "PiSi paketlerini 64 bite taşırken neler yapılıyor" başlıklı yazımı[5] da okumak isteyebilirsiniz. Svn depomuz hakkında da bir yazı[6] var, okumadıysanız o da ilginizi çekebilir.
Kurulum için 64 bit işlemcili bilgisayarınızda şu adımları izlemek yeterli:
* Yeni kök sisteminin kurulacağı disk bölümünü hazırlayın. Belki [2] adresinindeki Pardus 2008 RootFS duyurusundaki adımlara bakmak isteyebilirsiniz.
* pardus-corporate2-rootfs-0.42.tar.bz2 dosyasını bu dizine açın. Dosya açıldığında ~1.3GB yer kaplayacaktır. /etc/fstab ve /etc/mtab dosyalarını sisteminize uygun hale getirin.
* İmaj açıldıktan sonra sisteminizi yeniden başlatabilirsiniz. Açılış için bir önyükleyiciye ihtiyacınız olduğunu yazmıştım. İşler yolunda giderse sisteminiz açılacaktır.
* root için pardus parolasını kullanarak oturum açıp geliştirmeye başlayabilirsiniz.
Bu x86-64 için ilk rootfs deneme sürümü olduğundan bir takım hataları olduğunu ihmal etmemelisiniz.
[1]http://members.comu.edu.tr/nyucel/pardus-corporate2-rootfs-0.42.tar.bz2
[2]http://liste.pardus.org.tr/gelistirici/2008-February/011253.html
[4]http://x86-64.comu.edu.tr
[5]http://nyucel.blogspot.com/2009/12/pisi-paketlerini-64-bite-tasrken-neler.html
[6]http://nyucel.blogspot.com/2009/12/devel-x8664-svn-deposu-hakknda.html
21 December 2009 @ 10:40 PM
December 19, 2009
Her başlangıcın zor olması gerçeğinin kaçınılmaz olduğu göz önüne alındığında daha pek de duyulmamış bir yerde blog yazmaya başlamak da benim için biraz zor. Bildiğiniz gibi bir süre Pardus Proje Yöneticisi Erkan Tekman (bundan sonra kendisine zaman zaman ET’de diyebilirim) tarafından resmi olmayan işe başlayışım duyurulmuştu. 1 Kasım’dan bu yana hem ortama alışmak hem de işlerin bir ucundan yavaş yavaş tutmaya başlamak için henüz resmi olmasa da Pardus ofisine gidip geliyorum. Pek çoğunu yakından tanıdığım yeni çalışma arkadaşlarımın gösterdiği ilgi ve bir takım ET uyarıları -fırça da denebilir- sayesinde alışma süresini kısa sürede doldurdum ve yıl başında resmi olarak da işe başlamamla birlikte artık önümüzdeki aylar ve yıllarda neler yapacağımı kestiriyorum.
Geçtiğimiz iki yılda (2007 Eylül – 2009 Eylül arasında) Pardus’u yakından takip eden pek çok kişinin bildiği üzere resmi topluluk sitemiz olan Özgürlükiçin.com’un yürütülmesi, yönetilmesi, geliştirilmesi işleriyle uğraştım. Bu günden sonra da umuyorum mesaimin çoğunu Pardus ve çevresindeki ekosistemin daha da büyümesini sağlamak için harcayacağım!
Yine yeniden selam Pardus…
19 December 2009 @ 10:12 PM
Necdet hocam'ın da yazdığı gibi rootfs yakında yayınlanacak. Bir çok kişinin büyük merakla beklediğini hepimiz biliyoruz. Ancak rootfs sürecinde sadece konsol ekranı olan bir sistem olacak. Bu yüzden gerçekten ne yapacağını bilen arkadaşların rootfs'i denemesini öneriyoruz. Diğer arkadaşların ise bir süre daha sabretmesini içten arzuluyorum.
Diğer arkadaşlara ise rootfs ile iyi eğlenceler diliyorum. Umarım bunun 3 üniversite son sınıf öğrencisinin uzun süreler boyunca çalışarak meydana getirdiği bir sürüm olduğunu unutmazsınız.
Artık bizler daha çok çalışarak alfa için daha uzun bir mesafeyi kat etmemiz gerekiyor. Bize yardımcı olanlara şimdiden teşekkür ederiz.
Not: gelişmeler için bizi takip edin(
Necdet Yucel,
Metin Akdere,
Meltem Parmaksız,
wiki).
19 December 2009 @ 09:38 PM
64bit ile ilgili ilk yazımdan[1] bu yana hep üzerinde durduğum şey bu çalışmaları bir öğrenim süreci olarak gördüğümüzdü. Bir işletim sistemini bir mimariden bir diğerine taşımak demek hem boot sürecini, hem paket yöneticisini, hem de işletim sisteminin geri kalanını detaylarıyla öğrenmek demek aslında. Sadece bunlarla da sınırlı değil öğrenme süreci; diğer paket yöneticileri nasıl çalışıyor, diğer dağıtımlar mimari farkı için paketlerde nasıl değişiklikler yapmışlar sorularına cevap verebilmek gerekiyor.
Bu öğrenme ve çalışma sürecinde en zor şey öğrendiklerini belgelendirmek. İnsan "bunları yazacağıma biraz daha çalışayım, başka şeyler öğreneyim" diye düşünüyor ama bu düşüncenin bizi hedefimizden uzaklaştıracağının da farkındayız. Aldığımız her notu henüz elektronik ortama geçirmemiş olsak bile (herkesin elinde not aldığı defterler var) sürecin temel aşamalarını wiki[2]'ye aktarmaya çalışıyoruz. Bu belge sürekli gelişme aşamasında, çünkü yazanlar sürekli öğreniyorlar ;)
RootFS'in hazır olduğunu bir süre önce yazmıştım[3]. Bir iki gün içinde bunu indirilebilir bir yere koyacağız. Elbette RootFS sadece geliştiriciler için olacak. Meraklı ve heyecanlı son kullanıcılar en azından alfa sürümü beklemeliler.
Peki RootFS'i alan geliştiriciler ne yapacak? Elbette daha önce bir RootFS kullananlar için bir açıklama gerekmez ama yine de meraklılar için bir şeyler yazmak iyi bir fikir olabilir.
Her PiSi paketinin zaten bir geliştiricisi bulunduğundan ve pspec.xml ve actions.py dosyaları 32bit için hazırlanmış olduğundan 64bite geçişte yapılacak şey paketi sıfırdan hazırlamaya çalışmak değil. Bu aşamada yapılması gerekenleri wiki'de Paketlerin X86_64 Mimarisine Taşınmasında Yapılması Gerekenler bölümünde yazıyoruz ama burada da başlıkları yazayım. Merak eden wikiden devamına bakar herhalde.
64bite taşınırken inşa dosyalarında değişiklik gerektirecek paketler için altı farklı durum olabileceğini öngörüyoruz:
- farklı parametrelerle derlenenler
- ilave yamalar gerektirenler
- 32-bitte yapılan bazı yamaların çıkartılması gerekenler
- farklı kaynak dosyasına ihtiyaç duyanlar
- dosyaları farklı dizinlerde bulunduranlar
- x86_64 mimarisinde karşılığı bulunmayanlar
Geliştiricilerin bu durumlara uyan bir paketle karşılaşmaları durumunda bu değişikliği wikide uygun başlık altında yazmalarını bekliyor, karşılaştıkları sorunlara listede[4] beraber çözüm bulmayı umuyoruz.
[1] http://nyucel.blogspot.com/2009/07/64bit-pardus.html
[2] http://tr.pardus-wiki.org/Pardus'un_X86_64-64_Mimarisine_Port_Edilmesi
[3] http://nyucel.blogspot.com/2009/11/64-bit-icin-rootfs-hem-hazr-hem-hazr.html
[4] http://liste.pardus.org.tr/64bit/
19 December 2009 @ 03:24 PM
December 18, 2009
Meraklı gözlerin farketmiş olduğunu tahmin ettiğimiz bir svn deposu kullanıyoruz bir süredir. Bu depoyu diğer Pardus depolarından farklı kullandığımız için bir açıklama yapmak gerekiyor.
64bit için temel aldığımız Pardus sürümü Corporate 2 ve bu sürüm geliştirme halinde. Başlangıçta bu sürümü takip etmeyi denerken, Pardus ekibiyle Gebze'de yaptığımız görüşme sonunda Kurumsal 2 deposunun bir görüntüsünü alıp onun üzerinde çalışmaya karar verdik. Bu kararın ardından svn'in 82569 numaralı görüntüsünü alıp çalışmalarımızı onun üzerinde yapıyoruz. 64bit için değişiklik gerektiren paketler için gerekenleri yapıp commit ediyoruz. Bu deponun tamamını 64bit'e taşıdığımızda güncel svn ile aradaki farkı alıp onları da ayrıca halledeceğiz. Yaptığımız çalışmalarla ilgili belgelendirme en başından bu yana bu adreste bulunuyor. Pardus'u başka bir mimariye port etmeyi düşünenlerin nasıl bir yoldan geçecekleri ile ilgili bir fikirleri olması için faydalı olabilir.
Bu yazıyı 64bit rootfs'i alacak arkadaşlara yardımcı olması amacıyla yazıyorum.
18 December 2009 @ 09:37 AM
December 10, 2009
Üç yıldır projede pek çok görev üstlenmiş, bu arada 2008 Sürüm Yöneticiliği, Dış Projeler Koordinatörlüğü ve son olarak da Kurumsal 2 Sürüm Yöneticiliği yapmakta olan Ekin Meroğlu kısa (ümidimiz oldukça kısa) bir süre için projeden ayrılıyor, Ekin askere gidiyor…
2008 Sürüm Yöneticiliği görevini Gökcen Eraslan üstleniyor. 2009.1′in çıkışı (sürüm takvimini pek yakında sürüm yöneticimiz Onur Küçük açıklayacak) ile YALNIZCA GÜVENLİK durumuna geçecek ve 2009.2′nin çıkışı (planımıza göre 2010 Nisan’ında yayımlanacak) ile YAŞAM SONU durumuna erişecek olan 2008 sürümü Ekin’in dönüşünü göremeyecek herhalde. O nedenle bu görevlendirme geçici değil, kalıcı…
Kurumsal 2 Sürüm Yöneticiliği görevini geçici olarak Ozan Çağlayan üstleniyor. Yeni yapılanmamız uyarınca artık sürümlerimizi iki kişilik bir sürüm yönetim ekibi çıkaracak. Geliştirici sürümünü geçtiğimiz haftalarda duyurduğumuz ve nihai sürümünü planımıza göre 2010′un ilk yarısında yayımlayacağımız Kurumsal 2 çalışmalarında Ozan ile birlikte çalışacak arkadaşımız Serdar Dalgıç.
Gerek 2009′un ara sürümlerinin takvimi göz önüne alındığında, gerekse 2010 yılı içerisinde ekipte yaşanacak büyüme ve ortaya çıkacak oryantasyon ihtiyacı hesaba katıldığında “Pardus 2010″ adı ile bir sürüm yayımlamanın yerinde olmadığını gördük. 2000 serisinde 2009′u izleyecek olan sürümümüz Pardus 2011. Pardus 2011 Sürüm Yöneticisi olarak Gökcen Eraslan görev yapacak ve sürüm yönetim ekibinde Fatih Aşıcı ile birlikte çalışacak. Ayrıca 2009 için “Ürün Yöneticisi” adıyla oluşturduğumuz görev 2011′den başlayarak Sürüm Camia Temsilcisi (SCT) adını alarak sürüm yönetim ekibindeki UEKAE çalışanı arkadaşlarımıza eşlik edecek. Pardus 2011 için SCT’yi gelecek ay başında belirleyip duyurmayı planlıyoruz. Pardus 2011 sürümünü 2010 yılı sonunda yayımlamayı hedefliyoruz. Geliştirme çalışmalarının çok yakında başlayacağının müjdesini vermiş olayım buradan ve gerisini Gökcen’e bırakayım.
Pardus 2009, Pardus 2011.1′in çıkışı ile, tahminen 2011′in ilk yarısında YALNIZCA GÜVENLİK durumuna geçecek ve 2011.2′nin çıkışı ile, tahminen 2011 ortasında, yani 2009′un çıkışından neredeyse 2 yıl sonra YAŞAM SONU durumuna erişecek. Bu da 2009′u 2007 ile birlikte en uzun ömürlü sürümlerimiz arasına sokacak. Amacımız 2011 sonrasında 12 aylık sürüm periyotlarına olabildiğince uymak. Uygun zamanda diğer büyük dağıtımlar gibi 6 aylık periyotlara geçişi düşünebileceğiz, ama kişisel tahminim bunun 2013′ten önce olamayacağı yönünde…
Kurumsal sürümlerimiz için ise 3 yıllık periyotlar düşünüyoruz. Ancak Kurumsal 3′ün 2 yılın ardından, yani 2012′de yayımlanması olasılığı hayli yüksek. Kurumsal sürümler bir sonraki sürümün çıkması ardından 1 yıl desteklenecekler. Eğer sözleşmeli kullanıcıları olursa bu süreyi 1 yıl daha uzatmak mümkün olacak. Yani Kurumsal 2 için desteğimiz 2013-2014 civarında sona erecek. Kurumsal 3′ün geliştirici sürümünün 2011 sonunda çıkacağı hesaba katıldığında kurumsal kullanıcıların test, yerleştirme ve terfi/göç için en az 1,5 zamanları olacak, ki diğer büyük dağıtımlar ile uyumlu süreler bunlar da.
10 December 2009 @ 06:49 AM
November 29, 2009
Uzun zamandır yazamıyordum, gezegen biraz paslanmış ama bu girdi gezegenin pasını alacak gibi görünüyor :)
Birkaç gün önce PHP 5.3.1 yayınlandı, birçok hatayı ve güvenlik açığını kapatıyor. Güvenlik güncellemeleri şu şekilde:
- Added “max_file_uploads” INI directive, which can be set to limit the number of file uploads per-request to 20 by default, to prevent possible DOS via temporary file exhaustion.
- Added missing sanity checks around exif processing.
- Fixed a safe_mode bypass in tempnam().
- Fixed a open_basedir bypass in posix_mkfifo().
- Fixed failing safe_mode_include_dir
İçlerinden en önemlisi kalın olarak belirttiğim “max_file_uploads” seçeneği. PHP 5.3.1 ‘den önceki sürümlerde bu özellik yok ve üzerinde PHP çalıştıran herhangi bir sunucu 1 dakika içerisinde isteklere yanıt veremez hale getirilebiliyor. Upload edilen dosyanın işlenip işlenmemesi önemli değil, sadece boş bir index.php barındırmanız bile yetiyor!
Açık PHP’nin dosya upload sırasında geçici dosya oluşturmasından kaynaklanıyor. Eğer art arda 16.000+ dosya upload isteği gönderirseniz, sunucu geçici dosya yaratma ve silme ile aşırı derecede meşgul olacağı için normal isteklere cevap veremez hale geliyor. Bu süre zarfında %100 ‘e yakın işlemci tüketmesi ve büyük miktarda bellek kullanması da cabası.
Bununla birlikte açığın kullanıldığına dair çok net bir işarete rastlayamıyorsunuz. Sadece log dosyanızda aynı IP adresinden gelen birkaç yüz tane POST isteği görülecek. POST isteklerinin içeriğin görülemediği için, eğer bu açıktan haberdar değilseniz dikkatinizi o yöne değil de başka yerlere vererek sunucunuzun neden erişilmez olduğunu anlayamayacaksınız. Daha da kötüsü, her zaman kolayca kullanılabileceği için sisteminiz büyük risk altında olacak :)
Açık Bogdan Calin tarafından bulundu. Daha ayrıntılı bilgi için [0] adresini okuyabilirsiniz. Kendisi kullandığı scripti vermeyeceğini yazmış ancak biraz araştırma ve deneme ile açığı exploit eden kodu yazdım ve yayınlıyorum. :) Kod [1] adresinde.
Şu anda Türkiye’de PHP içerik sunan sitelerin büyük bir çoğunluğu etkinlenir durumda. Hosting şirketleri bu açığı kapatmadığı sürece de etkilenecek…
[0] http://www.acunetix.com/blog/websecuritynews/php-multipartform-data-denial-of-service/
[1] http://www.exploit-db.com/exploits/10242
Peki nasıl korunacağız?
PHP 5.3.1 ile açık kapanıyor. Eğer güncelleme imkanınız varsa 5.3.1′e güncelleyin. Ancak PHP 5.3.1 ile birçok özellik değişmiş durumda ve PHP 5.2.x ile çalışan pek çok uygulama 5.3.x ile çalışmayacaktır. Bu yüzden büyük ihtimalle PHP 5.2.x kullanıyorsunuz. Eğer tahmin ettiğim gibiyse, 5.2.x yamaları aşağıda. Yamaları uygulayıp PHP’yi tekrar derleyin ve sunucunuzu yeniden başlatın.
http://svn.php.net/…/main/rfc1867.c?r1=272374&r2=289990
http://svn.php.net/…/main/main.c?r1=289214&r2=289990 (NOT: Buradaki 100 değeri sonradan 20 olarak değiştirildi, siz de 20 olarak değiştirip uygulayın)
Güvenli olup olmadığımı nasıl anlarım?
Çok basit. Aşağıdaki adresindeki dosyayı alıp sunucunuz üzerinde dosya uzantısı *.php olacak şekilde çalıştırın. Sizde yamanın olup olmadığını söyleyecektir.
Pardus ne alemde?
Tabi ki açık yayınlandıktan 1 gün sonra yamaları eklendi ve commit [*] edildi. Birkaç gün içerisinde de depoya alındı. Şu anda düzeltilmiş PHP paketi stable depoda. Eğer Pardus kullanıyor ve PHP içerik sunuyorsanız güvenlik açığını kapatmak için PHP paketlerini güncellemeniz yeterli:
sudo pisi ur && sudo pisi up mod_php php-common php-cli
sudo service apache restart
* http://liste.pardus.org.tr/paketler-commits/2009-November/087149.html
Sonra?
Yazdığım bu girdi ve exploit bu tür önemli şeyleri takip etmeyen sistem yöneticilerini uyandıracaktır diye umuyorum. Eğer PHP kullanıyorsanız, lütfen kullandığınız dağıtımın güncellemelerini kontrol edin. Açığın kapanıp kapanmadığına bakın. Hizmet satın alıyorsanız sunucu yöneticinize bu durumu bildirin. Ve lütfen bu girdiyi ulaştırabildiğiniz kadar insana ulaştırın, dağıtın! Böylece insanlar bu konu hakkında bilinçlenecek ve bu açık daha hızlı bir sürede kapanacabilecek..
Önemli Notlar:
Yayınlanan kod ile yapacaklarınız tamamen sizin sorumluluğunuzdadır. Yayınlanan kod sadece eğitim amaçlıdır ve böyle bir şeyin yapılabileceğini göstermek için yazılmıştır.

29 November 2009 @ 06:17 PM
November 28, 2009
Çekmecelerimi karıştırırken 2005 yılında yaptığım bir proje geçti elime. MagicPlug.
MagicPlug, akıllı bir elektrik prizi. Kendisine takılan cihazları uzaktan "aç kapa" yapmak için tasarlandı. Uzaktan ile kastettiğim kablosuz olarak bilgisayar üzerinden prize hükmetmek. Dolayısı ile bu bilgisayara uzaktan bağlanılabildiği için aynı zamanda internet üzerinden de kontrol edilebiliyor.
Projeyi yaptığım günlerde Linux kullanmıyordum. Çekmeceden çıkarıp bir de Pardus 2009 üzerinde çalıştıralım dedim.
MagicPlug'ı, uzaktan kumandalı oyuncak araba, röle, paralel port kablosu, birkaç transistör, direnç ve diyot kullanarak yaptım.
Uzaktan kumandalı arabanın üzerinden çıkardığım alıcı kendisine gerekli komutlar verilince motor çalıştırmak üzere tasarlanmış. Biraz modifikasyonla bunu bir röle tetikleyecek hale getirdim.
Arabanın kumandasını ise yine biraz modifikasyonla paralel porttan aldığı komutlar ile vericiye sinyal göndermesini sağladım.
Daha iyi anlaşılması için bir şema hazırladım.

Sonuçta ortaya şöyle iki cihaz çıktı:
MagicPlug KumandasıMagicPlugPeki sistemi nasıl çalıştırdım?
Önce paralel porttan çıkış almamı sağlayacak küçük bir C programı yazdım. Program iki adet argüman alıyor, on ve off.
sudo magicplug on
komutunu verdiğimizde fiş çalışıyor. off komutu verince de çalışmasını durduruyor. Programın kodlarını
buradan bulabilirsiniz.
Programi derlemek icin "gcc magicplug.c -o magicplug" komutunu verin.
Daha sonra ise Python ve Qt kullanarak hazırladığım ve sadece bir butondan oluşan frontend'e backendi bağladım. O nun da kodlarını
şuradan bulabilirsiniz.
"sudo python magicplug.py komutunu verip programı çalıştırabilirsiniz."
Masaüstüme bağlı olan bu sisteme laptop'umdan ssh -X ile bağlanarak sistemi Pardus 2009 üzerinde çalışır halde gösterdiğim kısa video da aşağıda. Sistem şu an yanımda olsa da aslında salondan veya Antartika'dan lambayı kapatıp açabilirim. Bu arada cep telefonundan anca boyle fake gibi gorunen bir video cekebildim + projeyi Kıbrıs'ta yaptığım için İngiliz tipi fiş kullanmayı tercih ettim.
28 November 2009 @ 08:35 PM
November 26, 2009
Pardus'u 64-bit mimaride çalıştırabilmek için en önemli adımlardan biri PiSi'yi hazırlanan kök dosya sisteminde çalışır hale getirilmesi oldu. PiSi'nin iç yapısı, gereksinimleri ve işleyişi hakkında detaylı bir belge bulunmasına rağmen bağımlılıklarını gösteren böyle bir belge yoktu (veya biz bulamadık). System.base ve system.devel'de bulanan bağımlılıkların da pisi paketlerinde yazılmadığı hesaba katıldığında arkadaşların ne kadar uğraştıkları daha kolay anlaşılabilir.

Son kullanıcının işine yarayacak bir belge değil ama Pardus'un başka bir portunu hazırlamak isteyenlerin işini çok kolaylaştıracağını tahmin ediyorum.
26 November 2009 @ 07:59 PM
November 23, 2009
Yaklaşık 50 gündür üzerinde çalıştığımız Pardus'un 64-bit sürümü için rootfs'in bugün hazır olacağını yazmıştım daha önce. Aslında üzerinde 64-bit PiSi paketi oluşturulabilen bir rootfs'imiz bir kaç gündür elimizde var. Biz bu kök dosya sistemi üzerinde paket yapımıyla uğraşıyoruz (Uğraşıyoruz derken boş vakitlerimizde bakıyoruz demediğimi belirtmek isterim. 50 günün son üç haftasında sabah 9, akşam/gece 12 temposuyla çalışıyor arkadaşlar).
Bundan önce sadece i686 makineler üzerinde PiSi paketi yapıldığından Pardus ekibinin geliştirdiği teknolojilerin 64-bit sorunlarıyla ilk biz karşılaşıyoruz ve bunların çözümü için geliştiricilerle iletişimde olmak gerekiyor. Kimi hatalar çok hızla çözülürken kimileri daha fazla vakit alıyor.
Bugün itibariyle elimizdeki rootfs, bazı problemlerin etrafından dolaşılmasını gerektiren bir durumda. Bunun yanında PiSi ile ilgili verilmesi gereken kararlar da henüz verilmiş değil.
Bu halini sırf takvime uymak adına yayınlamayı uygun bulmadığımızdan şimdilik bir link vermiyoruz. Sürüm takviminin geri kalanında bir değişiklik yok.
23 November 2009 @ 04:33 PM
November 22, 2009
p, li { white-space: pre-wrap; }
Bilindiği üzere Pardus 64 üzerinde uğraşıyorduk(biraz çok uğraşıyorduk gerçi:), pek az bir şey yazmış olabilirim kendi adıma... Ama gecelere kadar çalıştık pisi'nin bağımlılıkları ile haşır neşir olduk(şimdi paket yöneticisini daha bi sevmiyor değilim)
Tüm paketleri ellerimizle derledik, linkledik, non-shared lib'leri kaldırdık...(birazcık cinnet geçirdik gerçi bağımlılıklarla ) Ancak sonunda şu çıktıyı almak bu zahmete ve zamana değdi galiba :)
root@pardus64 /#pisi rm libsigsegv
Safety switch: the component system.base cannot be found
The following minimal list of packages will be removed
in the respective order to satisfy dependencies:
libsigsegv
Removing package libsigsegv
Running pre removal operations for libsigsegv
Running post removal operations for libsigsegv
Removed libsigsegv
root@pardus64 /# pisi it libsigsegv-2.6-3.pisi
Installation order: libsigsegv
Installing libsigsegv, version 2.6, release 3, build None
Extracting the files of libsigsegv
Configuring libsigsegv package
Configured libsigsegv
Installed libsigsegv
Şimdi azıcık paket yapmak gerekiyor galiba :)
22 November 2009 @ 06:35 PM
64-bit'te ilk paketlediğimiz program sevgili meren'in PiSi Hello World'ü oldu:
$ pisi build -d pspec.xml
Outputting packages in the working directory.
Building PiSi source package: merhaba-pisi
DEBUG: RepoDB initialized in 0.000104904174805.
DEBUG: ComponentDB initialized in 0.000452995300293.
Safety switch: the component system.devel cannot be found
Fetching source from: http://cekirdek.uludag.org.tr/~meren/merhaba-pisi-1.0.tar.gz
merhaba-pisi-1.0.tar.gz [cached]
Source archive is stored: /var/cache/pisi/archives/merhaba-pisi-1.0.tar.gz
Unpacking archive...
unpacked (/var/pisi/merhaba-pisi-1.0-1/work)
Setting up source...
Sandbox enabled build...
Building source...
Sandbox enabled build...
Testing package...
Installing...
Sandbox enabled build...
DEBUG: return value for "install -m0755 -o root -g root merhaba-pisi.py /var/pisi/merhaba-pisi-1.0-1/install/usr/bin" is 0
** Building package merhaba-pisi
Generating files.xml,
Generating metadata.xml,
Build number is not available. For repo builds you must enable buildno in pisi.conf.
Creating PiSi package ./merhaba-pisi-1.0-1.pisi.
DEBUG: return value for "lzma -1 -z install.tar" is 0
Done.
All of the files under the install dir (/var/pisi/merhaba-pisi-1.0-1/install) has been collected by package(s)
Keeping Build Directory
*** 0 error(s), 2 warning(s)
Sonuç şöyle:
# ls
actions.py merhaba-pisi-1.0-1.pisi pspec.xml
Ve hatta:
# pisi info merhaba-pisi
Installed package:
Name: merhaba-pisi, version: 1.0, release: 1, build --
Summary: PiSi Hello World Application..
Description: Just a basic application. Nothing to describe.
Component: None
Provides:
Dependencies:
Distribution: Pardus, Dist. Release: 2009
Architecture: x86-64, Installed Size: 102.00 B
Reverse Dependencies:
22 November 2009 @ 03:40 PM
November 21, 2009
Pisi'den önceki son basamak olan Çomar'ın 64-bit çalışmalarımızdaki son durumu şöyle:
$file /usr/sbin/comar
/usr/sbin/comar: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.25, not stripped
21 November 2009 @ 10:39 PM
November 19, 2009
18 Kasım 2009 Çarşamba günü Ankara’da, Türkiye Bilişim Derneği tarafından düzenlenen Bilişim ‘09 Ulusal Bilişim Kurultayı’nda yaptığım “Dünya Özgür Yazılıma Nasıl Göçüyor?” başlıklı konuşmamın yansılarını paylaşıyorum.
19 November 2009 @ 08:39 AM
November 16, 2009
ALT + F2 tuşlarına basarak krunner'ı başlatıp çalışmasını istediğimiz programın ismini yazarak enter'a bastığımız zaman programımız çalışıyordu.
Peki krunner'ın aslında sadece bu işe yaramadığını biliyor muydunuz?
Hesap Makinesi
Resimdeki gibi "=" yazdığınız andan itibaren krunner hesap makinesine dönüşüyor. Hemen sağına istediğiniz işlemi yazıp altta beliren sonucu görebilirsiniz. Oldukça pratik değil mi?

Tarayıcı başlatmak
Resimdeki gibi girmek istediğiniz sitenin ismini yazıp enter'a bastığınız anda Firefox açılıyor ve yazdığınız siteye yönlendiriliyorsunuz.

Bunun gibi daha birçok plug-in var. krunner'ın başka pratik özelliklerini siz de keşfederseniz yorum kısmına yazabilirsiniz.
16 November 2009 @ 07:49 AM
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
16 November 2009 @ 12:49 AM
November 15, 2009
Uzun bir çalışmadan sonra UEKAE dergisi hayata geçmiş bulunmakta. UEKAE Dergisi Kurulu’na ve dergi için emekte bulunan herkese teşekkürlerimi sunuyorum. Dergiyi büyük bir keyifle okuduğumu belirtmek isterim. Gerçekten yazılanların hepsi ilgi çekici ve okuması bir o kadar zevkli. Dergi’yi http://dergi.uekae.tubitak.gov.tr/ adresinden online olarak okuyabilirsiniz.

Değerli Okurlar,
Uzun süredir hayalini kurduğumuz UEKAE Dergisi’nin bir yılı aşkın süren titiz ve özverili bir çalışma sonucunda hazırladığımız ilk sayısını sizlerle paylaşmaktan büyük heyecan, sevinç ve gurur duyuyoruz.
Dergimiz, kuruluş tarihi 60′lı yıllara uzanan UEKAE’nin, Ulusal Elektronik ve Kriptoloji Araştırma Enstitümüzün, temel uzmanlık alanları olan bilgi güvenliği, haberleşme ve ileri elektronik alanlardaki bilgi ve deneyimini siz okurlarımızla buluşturmayı amaçlıyor. Bir diğer hedefimiz de UEKAE dergisi ile ülkemizde bu uzmanlık alanlarında güvenilir Türkçe kaynak oluşturmak.
UEKAE Dergisi’nin her sayısında sizlerle uzmanlık alanlarımızdaki konulardan oluşan yazı dizileri ile karşınıza çıkıyor olacağız. Ayrıca, her sayının kapak konusunu ayrıntılı bir biçimde ele alarak sizlere konuyu farklı yönleri ile değerlendirme fırsatı sunmayı planlıyoruz. Enstitümüz uzmanlarının ve araştırmacılarının gerek akademik, gerek profesyonel çalışmalarını yansıtan makaleler bölümünün de son derece faydalı olacağı inancındayız. Başarı öyküsü bölümünde ise, kendilerini her zaman saygı ile andığımız, hem endüstri, hem akademi hem de Enstitümüz için önemli hizmetleri bulunan kişileri tanıtma imkanı bulacağız. Ayruca dergimizde UEKAE ile ilgili haberleri ve ürünlerimize dair bilgileri de aktarıyor olacağız.
Dergimizin ülkemiz için kalıcı bir bilgi kaynağı olması ümidiyle çalışmalarımızı sürdürürken, siz değerli okurlarımıza keyifli okumalar ve esenlikler diliyoruz.
UEKAE Dergisi Yayın Kurulu
İçindekiler:
Onur Yazısı – Nüket YETİŞ
Başlarken – Mehmet Önder YETİŞ
TÜBİTAK UEKAE’nin Başarı Yolculuğu - Sermet SÜER, Eniş TÜYENİ, Çağrı KOÇ
Kapak Konusu:
Kriptoloji Tarihi – Mustafa Ümit ÇEŞMECİ
Günümizde Kriptoloji – Uğur Kaşif BOYACI
Kuantum Bilgi Güvenliğine Doğru – Şeref KALEM
Yazı Dizileri:
Elektronik İmza: Genel Bir Bakış - Ersin GÜLAÇTI
Kriptografik Cihazlar: Milli Kriptolu Cep Telefonu – Gökhan VICIL, İmran ERGÜLER
Akıllı Kartlar ve Uygulamaları: Akıllı Kart Nedir? – Mustafa Başak
Pardus: Pardus ve Kriptografi – A. Murat EREN
Elektronik Harp: Tanıtımı Kapsamı ve Türkiye İçin Önemi – S. Gökhun TANYER, M. Alper KUTAY, D. İlhan TÜFEKÇİ
Kurumsal Yönetim: Kurumsal Yönetim Sistemlerine Giriş – Suha ERSİN
Herkes İçin Proje Yönetimi: Proje Yönetimine Başlarken – Hayal ŞENYURT
Makaleler:
Dengeli Uzay-Zaman Blok Kod Seçimi İçin Bir Bit Hata Olasılığı Çözümlemesi - Selami ŞAHİN
Rasgelelik (Rastlantısallık) Kavramına Genel Bir Bakış – C. Nezih GEÇKİNLİ
Radar Antenleri – I: Yarıklı Dalga Kılavuzu Antenleri – Bahattin TÜRETKEN, Lale ALATAN, Feyzullah YAYIL
Başarı Öyküsü:
Prof. Dr. Yılmaz TOKAD – Aydın KUBİLAY
Serbest Kürsü:
İşleyen Dil Işıldar: Hatice Nur YANANLI

15 November 2009 @ 10:05 PM
November 13, 2009
Olay, bir gün, bir köşe başında, gelip giden kalabalığın ortasında oldu.
Durdum, gözlerimi kırpıştırdım, hiçbir şey anlamıyordum. Hiçbir şey hakkında hiçbir şey. İnsanları, nesneler hangi nedenle böyleydiler, anlamıyordum, her şey son derece anlamsız ve absürttü. Gülmeye başladım.
Bana garip gelen şey, neden bunu daha önce anlamadığım oldu. O zamana kadar her şeyi olduğu gibi kabul etmiştim; trafik ışıkları, arabalar, posterler, üniformalar, anıtlar, dünyadan tamamen kopmuş şeyler; hepsini sanki bir gereklilik sonucu ortaya çıkmışlar, bir neden-sonuç zincirinin halkasıymışlar gibi benimsemiştim.
Sonra gülmem dudaklarımda dondu, yüzüm kızardı, utandım. Ellerimi kollarımı sallayarak kalabalığa “Durun! Bir dakika!” diye bağırdım, “Bir yanlışlık var. Her şeyde bir terslik var. Dünyanın en saçma işlerini yapıyoruz. Nereye varır bu işin sonu?”
Etrafta insanlar durdu, merakla beni süzdüler. Orada, ortalarında durdum, kollarımı sallaya sallaya, ümitsizce anlatmaya, bir anda aydınlanmamı sağlayan ilhamımı açıklamaya çalıştım.. ve hiçbir şey demedim. Hiçbir şey demedim, çünkü kollarımı kaldırıp ağzımı açtığım anda, aydınlanmam geri gitti, ağzımdan bildik, eski kelimeler çıktı.
- Eee, ne demek istiyorsun, diye sordu insanlar. “Her şey yerli yerinde. Her şey olması gerektiği gibi. Her şeyin bir sebebi var. Her şey diğerleriyle uyum içinde. Yanlış veya saçma bir şey göremiyoruz.”
Orada öylece durdum, çünkü şimdi her şeyi yerli yerinde görüyordum, her şey doğal, olması gerektiği gibi görünüyordu; trafik ışıkları, anıtlar, üniformalar, gökdelenler, tramvay yolları, dilenciler, geçit törenleri; ama bu beni rahatlatmadı, tersine bana acı verdi.
“Pardon”, dedim. “Galiba benim hatam. Bir an öyle gibi geldi. Her şey yolunda elbette. Kusura bakmayın.” Ve kızgın bakışların arasında yürüyüp gittim.
Yine de, şimdi bile, sık sık bir şeyi anlamadığım zaman, ister istemez, aynı umuda kapılıyorum; yeniden o anı yaşayacağımı, yine hiçbir şeyden hiçbir şey anlamayacağımı, bir anda bulup kaybettiğim öteki bilgiye ulaşacağımı umuyorum.
- italo calvino
13 November 2009 @ 04:34 PM
November 11, 2009
Personel hareketleri açısından geçtiğimiz haftalar ve önümüzdeki günler oldukça hareketli idi, genel bir mesaj yazmakta yarar var.
İki yıldır geliştirici ve güvenlik ninjası olarak görev yapan Pınar Yanardağ ile bir buçuık yıldır sistem yöneticimiz olarak görev yapan sevgili Taner Taş 15 Kasım 2009 itibarı ile TÜBİTAK UEKAE’den ayrılıyorlar. Pınar’a akademik hayatında (ve yeni medeni haliyle, mutluluklar Pınar!), Taner’e yeni işinde başarılar diliyoruz.
İki yıldır görüntü ailesi sorumlusu olarak aramızda yer alan Fatih Aşıcı mezuniyeti ardından (tebrikler Fatih!), Ağustos ayı itibarı ile tam zamanlı oldu.
Eylül ayında aramıza katılan Mehmet Emre Atasever çoğunlukla küçük form faktörleri, bu arada ARM mimarisinde Pardus kapsamlı projelerimizde çalışacak.
Ekim ayında yarı zamanlı olarak aramıza katılan en genç ve en çalışkan geliştiricilerimizden Eren Türkay depo ve dağıtım konularında abi ve ablalarına yardım edecek, ayrıca ikincil güvenlik ninjası (brincili şimdilik sevgili Gökcen Eraslan) olarak çalışacak.
Kasım ortasında aramıza katılacak olan Serdar Dalgıç dağıtım bölümümüzde, Renan Çakırerk kurumsal yönetim merkezi (LİDER) geliştirme projesinde görev alacak.
Aralık ayı içerisinde resmen işe başlamasını ümit ettiğimiz, buna karşın hemen hergün işbaşı yapan Akın Ömeroğlu ise proje geliştire, iş ortağı ilişkileri ve altyüklenici yönetimi konularını üstleniyor.
Emre, Eren, Akın, Serdar ve Renan’a hoşgeldin diyoruz…
2010 yılı pek çok yeni arkadaşın projemize katılacağı bir yıl olacak, sık sık duyurular yapacağız inşallah…
11 November 2009 @ 04:13 PM
November 09, 2009
64-bit Pardus için RootFS'i hazırlayan dört kişiden biri olan Serhat Ersel'i bu akşam memleketi olan Antalya'ya yolcu ettik. Serhat geçen yıl bilgisayar mühendisliğinden mezun oldu ve aralık ayında askere gidecek (elbette bu gidişten önceden haberimiz vardı). Gideceği son güne kadar bütün enerjisini bu projeye veren (okulun son yılındaki bitirme projesinde birlikte çalıştığımız) Serhat'a özverili çalışması için teşekkür ediyor askerlik döneminde kolaylıklar diliyorum.
Meltem, Mete ve Metin'in artık daha da fazla çalışmaları gerekecek. Belki bu hafta sonu bize bir sürpriz yapabilirler ;-)
09 November 2009 @ 08:15 PM
November 08, 2009
Uzun bir zamandır yoğun bir çalışma süreci içerisinde olduğumuz için pek bir blog girdisi yapamıyordum. Yaklaşık olarak 1 aydır Pardus'un x86_64 portunu hazırlamaya çalışıyorduk.
Başlangıçta Pardus 2008 üzerinde çapraz derleme ile 64 bit olarak başladığımız ve üzerinde chroot yapacağımız sistem için uzun saatler geçirdik. Chroot'da bir takım sorunlar yaşadık ve 2008'den 2009'a geçildiği haberi ile beraber bizde yeni yönümüzü o tarafa çevirdik. 2008'de bir kısmını öğrendiğimiz süreci daha hızlı bir şekilde ilerletebildik. Ancak hedef olarak chroot dan boot edilebilir bir sisteme çevirdik. Bu süre zarfında
clfs belgesini takip ettik, sürümler arası farklara bakarak yamalar bulduk, bir kısmını kendi aramızda tartışarak değiştirdik, derlenmeyen araçlar için çince bile okuduk. (google translate'e teşekkürü bir borç biliriz.) Çekirdek derledik, nasıl derlememiz gerektiği konusunda biraz tartıştık. Pardus'un kullandığı çekirdeği ve config dosyasını biraz değişiklik yaparak kullandık. (debian ve ubuntu gibi dağıtımların 32bit ve 64bit çekirdek config'lerinden yola çıkarak.) İnitramfs oluşturmak için uzun süredir çabalıyorduk. Coolplug isimli pardus teknolojisi biraz uğraştırdı bizi gerçi. Derlemek için elimizde olan çapraz derleme yapabilen gcc kullanmıştık. Hata almadığımız için oldu herhalde demiştik. Ancak coolplug'ı initramfs de çalışmadığını gördüğümüzde klibc'yi sistem için derlesek mi acaba diye düşünmeye başladık. Ancak çapraz derleme yapabilmesini sağlayabilmemiz için elle tutulur bir belge bulamadığımız için 64bit olan debian 5 üzerinde klibc - klcc kurduk (libklibc-dev paketinden geliyor klcc) ve coolplug'ı derledik. İnitramfs'in içerisine dahil ettik. Boot sırasında bu seferde en azından coolplug çalıştığını gördük. Ancak sabit diski göstermeyi başaramadık. Coolplug'dan kaynaklı bir sorun olduğunu düşündüğümüz için ve daha fazla motivasyon kaybetmemek için (tek bir noktada takıldığımız için elimiz kolumuz bağlanmış durumdaydık.) Bu yüzden hızlı bir şekilde cumartesi akşamı alternatif yol olarak chroot değerlendirdik.(debian 5 - 64bit üzerinde) Ufak bir sorun yaşadık. Ancak lib64 -> lib'e kopyaladık.(bir birlerine döngü olarak linklendiğini gördük ihtiyaç duyduğu kütüphaneyi ve o da lib64 içinde bulduk.) ve chroot yaptık sorunsuz bir şekilde. Vatana millete hayırlı olsun.

08 November 2009 @ 12:35 PM
October 30, 2009

64bit çalışmalarının başladığını yazdığımdan bu yana hep "ne zaman?" sorusu soruluyordu. Biz de bir takvim yayınlamak ve bunu takip etmek istiyorduk. Artık gelecekle ilgili bir tahmin yapabileceğimizi düşündüğümüzden bir plan yapalım ve duyuralım istedik:
rootfs: 23 Kasım 2009
alfa: 1 Şubat 2010
beta: 22 Şubat 2010
RC1: 8 Mart 2010
RC2: 15 Mart 2010
final: 1 Nisan 2010
Çalışanlar öğrenci olduklarından (hatta Serhat askere gideceğinden), sınav takvimleri, bayram tatili, akademik bilişim gibi çalışmaya ara verilecek dönemleri de dikkate aldık.
Artık bunu herkese söylediğimize göre daha fazla çalışmak lazım arkadaşlar ;)
nb: Daha önce Pardus 2008 üzerinde çalıştığımızı yazmıştım ama Pardus Kurumsal'ın 2009'u baz alacağını öğrendiğimizden biz de çalışmalarda artık 2009 kullanıyoruz.
30 October 2009 @ 03:07 PM