31 Mart 2013 Pazar

Hayal kurmayı beceremeyenlerin hayali:PARDUS

    Evet acımasız bir başlık:"Hayal kurmayı beceremeyenler". Yani bizler. Yani bizi yönetenler.. Yani bu yönetenleri seçenler. Hemen belirteyim. Yazımda hiç bir siyasi övme, yerme yada atıf yok. Yönetenler derken hükümet yada partiyle alakalı bir durum değil. Çünkü bu yazıda geçenleri farklı bir şekilde yapıp her şeyi yüzüne gözüne bulaştırmayacak bir irade şu anda hiç bir partide yok. Yani siyasi olarak kim gelirse gelsin durum değişmeyecekti. Çünkü biz millet olarak hayal kurmayı beceremiyoruz. 

    Pardus projesi kullanma imkanı olmasa bile Linux yada diğer açık kaynak projelerine değer veren bir çok Türk'ün gurur kaynağıydı sanırım. Bende ilk defa üniversitede bölüme yeni başladığım zamanlarda duymuştum. İnsanların Xp kurmaya çalışırken "Kuruluma başlamak için bir tuşa basın..." yazısını unutup kaçırana kadar bilgisayara defalarca format attığı yıllardı (Durumu yaşayanlar espriyi anlamıştır). Linux ile ilk tanışmam Ubuntu ile olmuştu. Muhteşem bir fikir ile çalışan ve kurulan sistemi aynı cd içine toplamışlardı. Yani merak ettiğiniz zaman bilgisayarınıza takıp başlatıyor, saatlerce kurcalıyor ve sonra cd yi çıkardığınızda hiç bir şey olmamış gibi Xp hapishanesine dönüyordunuz. Mahkumların hapishane avlusunda volta atması gibi bir şey olsa gerek. Sonra nette dolaşırken rastgele Pardus projesi haberine rastlamıştım. Zerre boyutundaki Linux bilgime rağmen beni bile heyecanlandıran bir haber vardı. Milli İşletim Sistemi Pardus

    İnanılmaz bir haberdi. Dünyada binlerce gönüllünün vakıflar ve dev bütçeli şirketler ile desteklenerek ortaya çıkardıkları sistemlere bir tane de Türk Markası ekleniyordu. Aslında o zaman ilk şunu düşündüm. Linux açık kaynak kodlu ise ve her hangi bir kişi internetden istediği zaman kodları indirip istediği değişikliği yapma özgürlüğüne sahipse. Bizimkilerde bir Linux kodu indirip resimleri ve adını değiştirip bize milli diye kakalamasınlar. Tabi zamanla edindiğim bilgilerle Pardus projesini çok daha iyi anlayabildim. Bir kakalama projesi değil yeni bir tasarım projesiydi. Bir elin parmağını bile geçmeyen dağıtım alt yapılarından hiç birini kullanmak yerine kendi alt yapısını oluşturacaktı. Bunun için pisi (paket yönetim sistemi) başta olmak üzere bir çok araç yeniden yazıldı. Özellikle diğer dağıtımlarda çıkan sorunlar incelenip ve bu sorunlar en baştan giderilecek şekilde geliştiriliyordu. Bu nedenle özellikle Pisi dünyadaki açık kaynak gönüllülerinin büyük beğenisini toplamıştı.  
Eeee Ne güzel yapmışlar işte neden hayal mayal çamur atıyorum ki şimdi ben.
    Evet ilk aşamada her şey çok güzeldi ama sonrasında değil. Öncelikle devlet kendi değerine hiç bir zaman sahip çıkmadı. Geliştirilmesi için milyonlar harcadığı projeyi hiç bir zaman kullanmaya tenezzül etmedi. Hiç bir kamu kurumunda Pardus kullanılacak diye bir şart koymadı. Hatta tenezzül edenleri bile engelledi. Nasıl mı? Devletin alt Belediyeler gibi alt birimlerden rutin olarak istediği tüm bilgiler ya Microsoft formatlarında (özellikle neredeyse tüm listeler Excel formatında) isteniyor yada bu bilgileri girmek için açtığınız plaformlar İnternet Explorer haricinde çalışmıyor. Yani devlete rutin bilgi iletebilmesi için her hangi bir kamu kurumunun en az bir bilgisayarında Windows ve Office kurulu olması gerekiyor. Tabi bu durumda kim diğerlerine Pardus kurar?

    Bunun en acı örneği de Kütahya Milletvekili Prof. Dr. Alim Işık'ın TBMM'ye verdiği bir soru önergesine verilen cevap sanırım. Soru önergesinde özetle "Arkadaş madem o kadar para harcayıp milli işletim sistemi yaptınız. niye kullanmıyorsunuz?" diyor. Cevaplardan bazıları içler acısı:

  • Bakanlık bünyesinde kullanılan teknolojilerin pek çoğu PARDUS işletim sistemi tarafından desteklenmemektedir. Aktif dizin, E-posta sistemi ve saallaştırma bunların başında gelmektedir. ( rapuru hazırlayanların bu terimlerden ne anladığını çok merak ediyorum).....
  • Ancak bakanlığımız ilgili kuruluşu bünyesinde Pardus sistemi ve donanımlarının gelecek dönemde kullanımı konusunda uygulamalar takip edilmekte olup maliyetin uygun görüldüğü, standartların sağlaması, veri uygunluğu sorunu çözülmesi ve falan filan mırt zırt (sonuçta Pardus kurmak için özel bir uzay bilgisayarına ihtiyacın var zaten Pardus lisanslarıda bir kaç milyon dolar olduğundan uygun donanım bulursak ve lisans ücreti de azcık düşerse kullanırız)
    Bu sadece Çevre ve Şehircilik Bakanlığından gelen cevap kim bilir diğer cevaplarda ne komediler vardır. Cevabın aslına buradan konuyla ilgili başka bir yoruma da buradan ulaşabilirsiniz.

   İkinci olarak ilk öğretim yada meslek lisesi bilişim bölümlerinde hiç bir yerde Pardus ile ilgili ders koyulmadı. Çocuklara ısrarla Windows ve Microsoft yazılım geliştirme araçları öğretildi. Java'ya hiç tenezzül edilmedi, Php gittikçe azaldı ki şu an bir çok meslek lisesinde müfredattan çıkartılmıştır. Python adını bilen bilgisayar öğretmeni sayısını çok merak ediyorum. C ve C++ ya hiç girmiyorum.

    Sonra hikaye uydurdular. F@tih projesi ve bu projede Pardus kullanılacak diye. (Bu arada Fatih projesinin fikrini 2009 yılında Sanayi Bakanlığı Tekno Girişim yarışmasına sunmuş ve reddedilmiştim  Acaba projeye o yüzden mi benim adımı verdiler :)  Hikayeye göre projedeki tüm tahtalara ve daha sonra tabletlere Pardus yüklenecekti. Böylece hem milli proje milli kaynaklarla ortaya çıkarılacak ve proje maliyeti önemli ölçüde düşürülecek hemde Pardus projesinin gelişimine önemli katkılar sağlayacaktı. Hikayeye uygun olarak tüm akıllı tahtalara Pardus yüklendi ama Bill amca imdadımıza hemen yetişti. Geldi bir şeyler vadetti ve istediği peşkeşi aldı. Sonra hikayeye hemen bir ekleme yapıldı ve Akıllı tahtalar Pardus ile çalışmıyor denip tüm tahtalara ek olarak Windows yüklendi ve varsayılan olarak ayarlandı. Zaten yeni bir şey öğrenmekten aciz öğretmenlerimiz klavye olmamasını da bahane ederek hiç bir zaman Pardus'u o akıllı tahtalarda açmadılar ve açmayacaklar. Yani sadece göstermelik ve Milli Yatırım Yalanı.

     Pardus'a en büyük darbede geçen yıl vuruldu. Önce projenin durdurulduğu açıklandı. Sonrada uydurma bir komisyon toplandı ve öldürücü darbeyi indiren kararı aldı. Özgünlüğü ile övünç kaynağı olan ve tüm dünyada açık kaynak gönüllülerinin dikkatini çeken Pardus artık özgünlüğünü kaybedecekti. Kendi alt yapısını bırakacak ve Debian alt yapısını kullanmaya başlayacaktı. Tam olarak istedikleri gibi oldu ve Pardus 2013 Sürümü Debian alt yapısı ile çıktı. Artık milli işletim sistemimiz yok yerine Milli Ubuntu kopyamız var.

    Neyse gece gece yine ayranım kabardı. Ayranım kabardı deyince de üniversiteden bir hocamın (şahsi olarak hoca demeyi uygun bulmuyorum aslında ama kişiyi ifade edecek başka bir kelime bulamadım) kulaklarını çınlatmak istiyorum. Aklıma geldiğinde hep çok iyi(!) duygularla anarım kendisini...

26 Ocak 2013 Cumartesi

Yeni Oyuncağım Android...

    Uzun zamandır Android ile uğraşmak istiyordum ama zaman bulamıyordum(Tembellik faktörü göz ardı edildiğinde :). Sonunda şirketin projesi için başlayabildim. Android programlama alt yapısı çok güzel hazırlanmış ve oldukça keyifli bir ortam. Özelle de Eclipse'in gelişmiş IDE Alt yapısı ile keyfini katlıyor. Bu arada uzun zamandır ihmal ettiğim Java'ya geri dönmeme vesile olduğu için kendilerine ayrıca teşekkür ediyorum.

    Android'i Anlamak
    Bir çok makaleden de okuduğunuz gibi Android programları Activity sınıfından türetilen sınıflardan oluşuyor. Bu yapı çok yabancı değil. Aynı C# programlamadaki Form sınıfları gibi. Activity içinde arayüzü dosyasını çağırarak görsel ara yüzünüzü oluşturuyorsunuz. Arayüz dosyaları res/Layout klasöründe saklanıyor ve xml biçiminde tasarlanıyor. xml form tasarımı daha sonradan Microsoft'un da SilverLight ve devamı olan WPF ile yöneldiği yeni nesil arayüz tasarım standardı. Java'da FX platformunda xml dilinin bir türevini kullanıyor.(Bir sonraki oyuncağım JavaFx olsa ne güzel olur) Tabi tüm bilgisayar dillerinin ve işletim sistemlerinin atası C'de geri kalmadı. C dili ile kolayca fırtınalar estirmenin kaynağı Qt alt yapısında görsel arayüz tasarımı için çok gelişmiş bir xml dil kullanıyor. Hatta o kadar gelişmiş ki bir butonun görünü web sayfası gibi html tasarlayıp css ile süsleyebilirsiniz. Dur be kafam nereye gittin yine.

     Android'in en güzel yönlerinden bir tanesi tüm string ifadeleri farklı bir xml dosya içinde saklıyor ve çok kolay yerleştirebiliyor olması.(Tamam bende biliyorum bunu diğerlerinin de yapabildiğini ama diğerleri zorlamıyor ki. Mecbur değilsem niye yapayım :) Android programlama sırasında Android işletim sistemiyle tam olarak bütünleşiyorsunuz. Bütünleşme ile ilgili en önemli kısım izinler.

    Android ve izinleri
    Windows sisteminin sürekli yapmaya çalışıp beceremediği her defasında kullanıcı ayarlarından Hesap Denetimi'ni kapatmakla sonuçlanan... Linux sistemlerin fazlasıyla abartıp her defasında parola sorması ile kanser eden en büyük sorundur izinler. Nitekim birinde tamamen güvenliği kapatıp kurtulursunuz (neden sık sık format atmak zorunda kaldığımı anladım galiba) ama diğerinde böyle bir lüksünüz yoktur. Yani kendi bilgisayarınızda güvenlik açığı açmak özgürlüğünüz bile yoktur. Keşke çokça param olsaydı da 2 bilgisayar parsına bir tane Mac alıp onuda öğrenip eleştirebilseydim :( 

    Peki Google'in en başarılı bebeklerinden birisi olan Android bu sorunu nasıl aşmış. Çok zekice bir yöntem ile: Kurulan tüm programlara kurulum sırasında izin vererek. Android kullananlar Play'dan program yada oyun indirirken görmüşlerdir mutlaka. Program kurulmadan önce izinler sıralanır ve sizden bu izinleri onaylamanızı ister. Konumunuzu Alma, İnternete Erişim, Rehberinize Erişim vs. Bu izin listesinde olmayan hiç bir işleme ulaşma yetkisi yoktur. Peki bu yetkiler dahilinde kötü bir şey yapamaz mı. Tabi rehbere erişim ve internete erişim yetkisi olan birinin sizin rehberinizi kopyalayıp kendi sunucusuna atmasına engel olamazsınız. Bu yüzden program kurarken mutlaka izinleri okuyup programın çalışmasıyla alakası olmayan izinler varsa programı kurmayın. Android bu izin sistemini nasıl bu kadar iyi denetliyor derseniz işte orası asıl zekanın yeri. Tam bir makale konusu. 

    Tasarım
    Android için arayüz tasarlarken bir form yada bir sayfa ile başlamak zorunda değilsiniz. Bir arayüz direk bir buton yada bir listbox'da olabilir. İç içe geçmiş onlarca elemandan da oluşabilir. Yalnız aynı katmanda 80'den fazla eleman kullanınca performans uyarısı yapmaya başlıyor. Yuh 80 tane elemanın bir sayfada ne işi var demeyin sonuçta lazım oluyor. :) Tabi bu uyarı Eclipse'in söylediği sadece performansın kötü etkilenebileceğine dair bir uyarı yani bir kısıtlama değil. Eclipse sisteminde programınızı daha düzenli yazmanız için çok güzel yönlendirmeler var. Sırası geldikçe onlardan da bahsederim. 

    Tasarım için sayfanın en üst katmanı genelde Layout oluyor. Temelde Grid, Linear,Relative ve Table olarak 4 tane layout var. Şimdi anlatayım hepsini diyeceğim ama adından belli zaten diyip geçesim var.

    Neyse ya ne zaten kahvemde bitti. Sonra yazarken bahsederim yine..