postgresql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
postgresql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

9 Mart 2017 Perşembe

Yerli yazılım, Milli yazılım

Ülkemizin olabildiğince çok konuda dışa bağımlı olmaması hepimizin isteği. Elbette her şeyi yurt içinde üretemeyiz ama eğer bir ürünün yurt dışından kullanılması ülkenin kaynaklarının dışa aktarılması anlamına geliyorsa veya o ürünü geliştirmek için dışa bağımlı oluyorsak onu kendimizin üretmesi anlamlı olacaktır. Ülke menfaatleri açısından bakıldığında bazen dışarıdan daha ucuza alınabilecek bir ürünü yurt içinde üretmek onun sağlayacağı katma değerler göz önüne alındığında daha faydalı olabilir. Güvenlik, gizlilik gibi konuların yanı sıra bir ülke vatandaşı için kullandığı ürünlerin çoğunun kendi ülkesinde üretildiğini bilmek bile önemlidir.

Uzun zamandır özgür yazılımı anlatmaya gittiğim yerlerde 'neden yabancıların yazılımlarını kullanıyoruz da kendimiz yazmıyoruz' sorusuyla karşılaştığımdan bu konuda kısaca yazayım istiyorum. Bu bahsettiğime çok benzer tepkileri Pardus hakkında da sıklıkla duyuyorduk, 'neden milli çekirdek yok, neden kendi ofis paketimizi yazmıyoruz' soruları sonunda 'neden her şeyi baştan yazmıyoruz' sorusuna hızlıca dönüşüyordu.

Öncelikle şunlarda anlaşalım: Kamunun kaynaklarını kullanarak geliştirilen bütün yazılımlar kamunun malı olmalı yani birer özgür yazılım olarak lisanslanmalıdır. Bu yazılımlar bizim sağlayacağımız imkanlarla ortaya çıkacağından sonuçta sahipli yazılımlar olması son derece mantıksız bir iş olacaktır. İkinci olarak eğer ülke olarak ihtiyacımız olan bir yazılım varsa ve böyle bir özgür yazılım yoksa elbette onu baştan yazmak ve özgür yazılım yapmak temel hedefimiz olmalıdır.

Cilalı taş devrine geri dönüp mevcut her şeyi baştan kendimiz keşfetmeye çalışamayacağımıza göre kullandığımız şeyleri yurt içinde üretmek için elimizde kriterler olmalı. Bence bu kriterler için aşağıdaki sorular yol gösterecektir: a) Yazılımı kullanmak için yurt dışına kaynak aktarmamız gerekiyor mu? b) Yazılım üzerinde değişiklik yapmak için yurt dışına bağımlı mıyız? c) Yazılım bazı ihtiyaçlarımızı karşılamıyorsa onun üzerinde değişiklik yapıp kullanmak yerine baştan yazmak daha mı ekonomik olacak? d) Yazılımın ne yaptığından emin miyiz? Yani güvenlikle, gizlilikle, mahremiyetle ilgili kaygılarımız var mı? e) Bu baştan yazma işine nereye kadar devam edeceğiz?

Konuya bu kriterlerle yaklaştığımızda özgür yazılım yerli yazılımdan beklenen her şeyi fazlasıyla sağlar. Şimdi her madde üzerinde kısaca duralım.

Özgür yazılımları kullanmak için yurt dışına kaynak aktarmak gerekmez.

Özgür yazılımların sıfırıncı şartı onları istenilen amaç için kullanabilmemizi garanti altına alır. Yani bir özgür yazılımı ister ev kullanıcısı, isterse ticari kullanıcı ayrıca kimseden izin almadan istediği gibi kullanabilir. Her kullanıcının temel ihtiyaçlarından biri olan ofis paketi için tercihimizi MS Ofis olarak kullandığımızda ülke olarak zaten zorluklarla ürettiğimiz değerleri yurt dışına aktarmış olurken, LibreOffice kullanırsak yurt dışına tek kuruş kaynak aktarmamış oluruz. Benzer şekilde işletim sistemi olarak bir GNU/Linux dağıtımı kullandığımızda onu sanki kendimiz yazmışız gibi özgürce kullanabiliriz. Ülke olarak petrol ve doğalgaz gibi zenginliklere sahip olmadığımızdan bir yazılımın lisans bedelini ödeyebilmemiz için karşılığında vermemiz gereken kaynakları yurt içinde kullanmak hem istihdamı arttıracak hem de üreten bir ülke olmamızı sağlayacaktır. Konuya yurt dışına aktarılan para açısından baktığımızda özgür yazılımlarla yerli yazılımlar arasında bir fark olmadığı görülecektir.

Özgür yazılımları geliştirmek için yurt dışına bağımlı değiliz.

Her yazılımın hataları ve eksikleri olur, bu yazılımın doğasında olan bir şeydir. Özgür yazılımlar kaynak kodlarıyla birlikte dağıtıldıklarından eğer ülke olarak ihtiyacımızı karşılamayan yerleri varsa bunu yazılım geliştiricilerimiz bu yazılımların kaynaklarına ekleyebilecek, mevcut hatalarını giderebileceklerdir. Ülke olarak yerli ofis paketi yazmak için baştan başlamak yerine LibreOffice'in 30 yıllık çalışmasını kullanıp ona eklemeler yapmak kesinlikle çok daha anlamlı olacaktır. Bir işletim sistemini baştan yazmanın ne kadar büyük bir iş olacağını daha sonraki maddelerde açıklamaya çalışacağım ama şu kadarını söylemeden geçmeyeyim böyle sonu gelmeyecek bir projeye kamunun kaynaklarını aktarmak yerine bir GNU/Linux dağıtımının eksikliklerini gidermeye ve ihtiyaçlarımıza cevap verebilecek hale getirmeye çalışmak karşılaştırılamayacak kadar verimli bir çalışma olacaktır. Ülkemizde mevcut yazılımlara kod ekleyebilecek kalitede yazılımcı kaynağı olduğuna ben eminim ama zaten eğer bu yoksa baştan da yazamayız o yazılımları. Konuya yazılımın geliştirilmesi açısından bakıldığında özgür yazılımlar yurt içinde geliştirilen yazılımlardan daha hızlı geliştirilen yazılımlar olarak karşımıza çıkarlar çünkü dünyanın geri kalanının emeğini de kullanmamıza imkan verirler.

Özgür yazılımları kullanmak yazılımı baştan yazmaktan çok daha ekonomiktir.

Yazılımların tek maliyetleri kod yazımı süresince geliştiricilerin fonlanması değildir. Bunun haricinde yazılımın analizi, tasarımı, test edilmesi gibi süreçler de çok önemli bilgi birikimi gerektiren ve zaman alan süreçlerdir. Ülke olarak bir veritabanı yazılımına ihtiyacımız olduğunda postgresql (veya bir başka özgür veritabanı) kullanmak yerine onu baştan yazalım dersek postgresql'in gelişimi için harcanmış 20 yıllık emeği bir kenara koyacağımız gibi onu bu sürede çalıştırmış ve test etmiş yüz binlerce kullanıcının emeğinden de faydalanamamış oluruz. Postgresql bütün kaynak kodlarıyla kendimiz yazmışız gibi kullanabileceğimiz, özgürce geliştirme yapabileceğimiz ve dünyanın geri kalanının onun üzerine yapacağı geliştirmelerden de faydalanabileceğimiz bir veritabanı iken bunu elimizin tersiyle bir kenara itip en baştan başlamak bizi sadece 20 yıl geri götürmez, aynı zamanda kendi emeğimizi de boşa harcamamıza neden olur. Konuya sadece ekonomik olarak baktığımızda bile özgür yazılımlar en az yerli yazılımlar kadar (çoğu durumda daha fazla) ekonomik fayda sağlarlar.

Özgür yazılımların ne yaptıklarını kontrol edebiliriz.

Özgür yazılımlar kaynak kodlarıyla birlikte dağıtıldıklarından iddia ettikleri işlevlerin yanında başka işler yapıp yapmadıklarına bakabiliriz. Bunu elbette hepimiz yapamayız ama hem biz bir grup geliştirici kaynağını bu alana ayırıp baktırabiliriz hem de dünyanın geri kalanının da aynı kodlara bakmasından faydalanabiliriz. Yani ülke olarak lisans bedelinin karşılığını madenlerden çıkardıklarımızla, tarlalarda ürettiklerimizle, denizcilikten elde ettiklerimizle ödemeyi göze alsak bile tam olarak neler yaptığını asla bilemeyeceğimiz kapalı kaynak kodlu, sahipli yazılımlar yerine özgür yazılımlar kullandığımızda tedirgin olabileceğimiz güvenlik, gizlilik, mahremiyet gibi bütün konular üzerinde ihtiyacımız olduğu kadar çalışabiliriz. Bir özgür yazılımı yurt içinde geliştirmiş olmakla insanlığın ortak malı olan bir özgür yazılımı kullanmak arasında bu açıdan hiçbir fark bulunmaz.

Mevcut özgür yazılımları kullanmak yerine her şeyi baştan yazmak gerçekleştirilemez bir hedeftir.

Elbette en formal tanımı bu değil ama bilgisayar yazılımı dediğimiz şeyin bir algoritmanın gerçeklenmiş hali olduğunu unutmayalım. Bu algoritmalar da insanlığın ortak malıdır. Sadece bu topraklar üzerinde yaşayanlar tarafından geliştirilmedi diye bir özgür yazılımı kullanmak yerine onu baştan yazmayı tercih etmek demek aslında yeni bir algoritma geliştirmeyeceksek aynı işi en baştan yapmak demektir. Bunun karşılığında elde edeceğimiz fayda da çoğunlukla sıfıra yakın olacaktır. Eğer algoritmaları da baştan yazmaya kalkarsak bu yolun sonunun cilalı taş devrine gideceği çok açık olmalı herkes için çünkü bilgilerini kullandığımız Newton Çorumlu olmadığı gibi, Amper de Yozgatlı değil. Aklı başında kimsenin insanlığın bütün bilgilerini yeniden biz üretmeliyiz demeyeceğini tahmin ediyorum.

Ayrıca bir yazılımı bu ülkede geliştirilmedi diye baştan yazmaya kalktığımızda nerede duracağız sorusu da cevaplanması gereken bir soru. Örneğin kendi işletim sistemi çekirdeğimizi bu nedenle baştan yazmaya kalktığımızda hangi programlama dilini kullanacağız. Malum hiçbirini biz geliştirmedik. O zaman önce bir programlama dili geliştirelim dersek bu defa da onun için bir editör yazmak gerekecek. Elbette yazdığımız kodları derleyecek bir derleyici ve onun ailesini de yazmak kendi başına ofis paketi yazmaktan çok daha büyük bir emek isteyecek. Peki bu derleyiciyi hangi kabuk üzerinde çalıştıracağız? Demek ki bir de kabuk yazmak gerekecek. Bu konuyu sonuna götürdüğümüzde varacağımız yer cilalı taş devri olacaktır maalesef. Bizi bu noktaya getiren ise bir özgür yazılımı sadece biz geliştirmedik diyerek baştan yazma isteği oldu.

Özgür yazılımlar hangi açıdan bakarsak bakalım bizden biri yazmış gibi kullanabileceğimiz, geliştirebileceğimiz yazılımlardır.

16 Nisan 2008 Çarşamba

debian, postgresql, freeradius, özgürlük ve evlilik üzerine

Geçenlerde debian üzerine freeradius kurarken yaşadığım problemlerle ilgili yazmıştım. Sonradan belli olduğu gibi bu freeradius sevdası eduroam'a dahil olmak içindi. Eduroam'a dahil olmak pek güzel ama daha önce sahip olunmayan logların analizi de kendi başına ciddi bir iş. Log'lar çok detaylı olduklarından düz metin dosyalarında tutmak yerine bir veritabanında tutalım dedik. Tabi sonra bu logların analizi işi var o da ayrı çaba isteyecek ama daha sıra ona gelmedi.

Benim aklıma normalde veri tabanı denildiğinde mysql'den başka bir şey gelmez ama kayıtların analizini yapacak olan (yeni çalışma arkadaşlarımızdan) Mehtap, 'python ve postgresql ile bir şeyler yazayım' deyince itiraz etmedik (sevindik hatta). Sınav haftasında olmalarına rağmen bugün bu konuya çalıştık beraber. Aslında yapılacak işlem basit. Hatta dün bir kaç saatte Türkçe'sini bile bitirdim. Ama klasik olarak işler belgelerde yazıldığı gibi gitmedi. Tamam hataya alışkınız ama daha elimizdeki veri tabanını postgresql'e yükleyemeyince çokça zaman kaybettik. İşin garibi, Mehtap belgede yazanları daha önce denediğini ve bir problemle karşılaşmadığını söylüyordu. Beraber denedik; gerçekten pardus üzerinde sorunsuz çalışıyordu yazılanlar. Belgenin yazarı da SuSE üzerinde test etmişti yazdıklarını.

Nasıl bir hatayla karşılaştığımızı da yazayım da google'dan arayıp buraya gelenler doğrudan bunu okuyup işlerini halletsinler:
su - postgres
createuser radius --no-superuser --no-createdb --no-createrole -P
createdb radius --owner=radius
exit
cd /usr/share/doc/freeradius/examples/
psql -U radius radius < postgresql.sql
Hata da şöyle:
psql: FATAL:  Ident authentication failed for user "radius"

Nette yapılan arama yığınla böyle sorun döndürüyor. Yukarıda yapmaya çalıştığımız şey veritabanında kısıtlı bir radius kullanıcısı, radius veritabanı yaratıp elimizdeki şemayı postgresql'e yüklemekten ibaret. İşin bu kadar başında yığınla insanın takılıyor olması şaşırtıcı bir durum aslında. Ben yine debian'a toz kondurmak istemedim ama google'ın buldukları çoğunlukla onunla ilgiliydi. Uzun lafın kısası eski dostum debian postgresql'in standart gelen pg_hba.conf dosyasını daha güvenli olsun diye değiştirip öyle dağıtıyormuş. Diğer dağıtımların akıl edemedikleri(!) bu değişiklik sayesinde postgresql ile tanışmak üzere olan kullanıcılar, belki bizim de yapmak üzere olduğumuz gibi, arkalarına bakmadan mysql'e doğru kaçıyorlar. Burada konunun detaylı tartışması ve çözüm yöntemleri anlatılıyor.

Neyse biz sorunumuzu çözdük ve yine de özgürlükçü tavrından dolayı debian'ı seviyoruz ;)

-------------------

Okulu bitirip giden 'bizim çocuklar' birer birer evleniyorlar yakınlarda. Aişe'nin 27 Nisanda İstanbul'da olacak düğününe gidemeyeceğim ama 16 Mayısta Lapseki'de evlenecek olan arkadaşın düğününe giderim muhakkak. Kim olduğunu isterse kendi yazsın ;)

Edit: Hayır yahu evlenen Oğuz değil :)

yapay zeka çağında hâlâ bilgisayar mühendisi olunmalı mı?

Yazıyı okumaya sabrı olmayanlar için kısaca söyleyeyim: kimse gelecekle ilgili tavsiye verecek bir şey bilmiyor. Önceden de bilmiyordu bugün...