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

13 Haziran 2021 Pazar

Halkın parasıyla oluşturulan yazılımlar halkın malı olmalı

Avrupa Özgür Yazılım Vakfı uzun zamandır yürüttüğü bir kampanya ile "Vergi verenlerin parasıyla üretilen yazılımlar Özgür Yazılım olarak yayınlanmalı"[1] diyor. Uzun yıllardır kamuda çalıştığım için bu hedefin çok uzağında olduğumuzu biliyorum. Bizde neredeyse her kurum ihtiyacı olan yazılımları çoğunlukla kaynak kodunu almadan, kimseyle paylaşamayacağı, kendisi üzerinde bir geliştirme yapamayacağı şekilde alıyor veya yazdırıyor. Böyle olunca aynı sorunu her kurumun yeniden çözdürmesi, lisans bedeli ödemesi, üzerinde geliştirme yapamaması gibi olumsuz durumlar oluyor. Bunu yapanlar özel şirketler olduğunda bile özgür yazılımları kullanmalarını teklif ederken kamu kurumlarının bizim vergilerimizi böyle harcamamaları konusunda bir bilinç oluşturulmalıyız. Kurumların yöneticileri bilişim dünyasından o kadar habersizler ki ortada böyle bir sorun olduğunun bile farkında olmuyorlar çoğunlukla. Eğer iyi anlatılırsa halkın vergilerinin verimli kullanılması konusuna hiçbir yöneticinin ayak dirememesi gerekir.

Bu hafta Ankara Büyükşehir Belediye Başkanı Mansur Yavaş'ın duyurduğu "Lezzet Ankara" uygulamasının bir özgür yazılım olarak lisanslanmasının yukarıda bahsettiğim kampanyanın yaygınlaşması için önemli bir adım olabileceğini düşünüyorum. Elbette bunun için ikna edilmesi gereken kişi başkentin belediye başkanı değil onun bilişim alanıyla ilgili görevlendirdiği kişiler olmalı. Bu yazıyı hem onları hem de ilgilenen diğer yetkilileri göz önünde tutarak ayrıntılandırmak istiyorum.

Kamu kurumları ister kendi personellerine geliştirme yaptırsınlar, isterse dışarıdan alım yapsınlar çok basit birkaç noktaya dikkat ederek halkın vergilerinin çok daha verimli kullanılmasını sağlayabilirler. Burada akıllara gelebilecek konuların üzerinden geçelim.

Yazılımınızı özgür yazılım yapınca kontrolü kaybetmeyeceksiniz

Özgür yazılımların kaynak kodları açık oluyor, kurum çalışanları dışından da destek verenler olabiliyor dediğimizde sanki her gönderilen kod yazılıma dahil edilmek zorundaymış gibi algılandığı oluyor. Durum böyle değil elbette. Yazılımı özgür yazılım olarak lisanslayınca dışarıdan kod katkısını nasıl alacağınızı yine kurum olarak belirliyorsunuz elbete. İsteyen (lisans şartlarına uyarak) sizin kodunuzu kullanabiliyor ama siz uygun bulduğunuz kodları projenize dahil ediyorsunuz. Tedirgin olacak bir şey yok aksine geliştiriciler harcayacakları emeğe değeceğini düşünürlerse kendi kadronuzla hayal bile demeyeceğiniz büyüklükte işler yapabilirsiniz.

Özgür yazılımlar güvenlik tehlikesi anlamına gelmez

Bu konuda uzunca yazdığım için tekrarlamak istemiyorum ama özet olarak şunu söyleyeyim "bir algoritmayı gizleyerek onu daha güvenli hale getiremezsiniz"[2]. Güvenlik sürekli ilgilenmeniz gereken bir konu olacaktır. Yazılımınızı özgür yazılım lisansıyla lisanslayıp kaynak kodlarını açtığınızda elbette kodlardaki hataları düzeltmek ve iyileştirmeler yapmak için bakanlar olduğu gibi saldırganlar da olacaktır ama yazılımı geliştirmek isteyenlerin sayısının saldırganlardan fazla olduğuna ve pek az güvenlik açığının yazılımın koduna bakarak tespit edildiğine güveniyoruz. Sizi kandırmayalım, kaynak kodlar açılınca güvenlik sorunu kaybolmayacak.

Yazılımınızın kaynak kodunu hemen açmanızı beklemiyoruz

İster kurum içinde geliştirilsin isterse dışarıya yazdırılmış olsun en başından itibaren kodlar başkalarının da göreceği şekilde düşünülerek yazılmadıysa içinde bazı kirli çözümler içeriyordur. Sadece tek bir noktada kullanılacak diye planlandığından özelleştirmeye uygun halde değildir. Bazı servislere erişimde kullanılan gizli bilgiler kaynak kod içine yazılmış olabilir. Bunların kaynak kod açılmadan önce temizlenmesi ve özelleştirilmeye uygun hale getirilmesi gerekir. Bu emek isteyen bir iştir ama bir başka kamu kurumunun baştan yazması, yazdırması düşünülünce maliyetinin ne kadar önemsiz olacağını hesaplamak kolay olacaktır. Elinizdeki kaynak kodların açılması için tecrübeli yazılım firmalarından destek alarak işe başlayabilirsiniz. Bundan sonra bunu bir kurum kültürü haline getirirsiniz ve ilave desteğe ihtiyacınız kalmaz.

Yazılımın kaynak kodunu herkesin göreceği bir hale getirmenin faydaları saymakla bitmeyecektir. Bir yazılım güvenliği firmasından alacağınız danışmanlık size kullanıcı verilerini nasıl saklamanız gerektiği konusunda da yol gösterecektir örneğin. Yazılımınız kullandığı algoritmayı iyi gerçekleştirmiştir ama kullanılan algoritma güvenli değildir belki. Önceden yazılmış olanları siz düzeltirsiniz, bundan sonra yazılacak olanlara da hepimiz bakarız.

Bundan sonra her yazılımın kaynak kodunu da satın almalısınız

Yazılımları eğer kurum içinde geliştirmiyor da dışarıdan alıyor veya ihtiyacınıza göre yazdırıyorsanız şartnamelerinize yazılımın kaynak koduyla birlikte teslim edilmesi gerektiğini mutlaka yazmalısınız. Halkın vergileriyle oluşturulan bir ürün mutlaka halkın malı olmalıdır. Sadece kaynak kodların verilmesini değil bir özgür yazılım lisansıyla lisanslanmasını da şartlarınız arasına koymalısınız. Bunu yapmazsanız aldığınız kaynak kodları paylaşamayacağınız gibi geliştirme dahi yapamayabilirsiniz.

Bu süreç elinizdeki yazılımlar için bedava olmayacak

Mevcut yazılımların kaynak kodlarının açılması sürecinde elbette bir maliyet olacaktır ama bu asla yazılımın yeniden yazılması kadar olmayacaktır. hem zaten hedefiniz hiç para harcamamak değil vergilerimizin verimli harcanması olmalıdır.

Yazılımların kaynak kodlarını açmak yazılım firmalarına zarar vermez

Merak etmeyin bütün kamu kurumları teker teker muhasebe yazılımı lisansı satın almayacak diye yazılım firmalarına zarar vermiş olmazsınız. Yazılım çözümlerine her zaman ihtiyaç olacaktır, firmalar gerekli inovasyonu geliştireceklerdir. Zaten bir firma kendisi yazılım geliştirmiyor, sadece yurtdışı bir firmanın ürününün lisansını satıyorsa ona yazılım firması bile dememek gerekir. Onlar başlarının çaresine baksınlar, bu kamunun sorunu değildir.

Herkesin dilindeki yerlilik, millilik sorununu çözmüş olacaksınız

Bu konuda da önceden uzunca yazmıştım[3] ama yazılımları özgür yazılım yaparak geliştirmenin ülkemizde yapılmasına, bizim üreten bir ülke olmamıza katkı sağlamış olacaksınız. Geliştirme yapabilmek için dışa bağımlı olmayacağız. Sadece bunlar bile yazılımları özgür yazılım yapmanız için yeterliyken bir de onları kamunun vergileriyle ürettiğinizi ve başka şansınızın olmadığını hesaba katmalısınız.

Vergi verenlerin parasıyla üretilen yazılımlar Özgür Yazılım olarak yayınlanmalıdır!

26 Ocak 2019 Cumartesi

Kamu kurumları özgür yazılımdan ne anlıyor?

Son dönemde "yerli ve milli yazılım"dan bahsedildiğini sıkça duyuyoruz. Bu konuya bir açıklık getirmek için bir cümleyle özetlenebilecek bir yazı yazmıştım [1]: "Özgür yazılım yerli ve milli yazılımlardan bütün beklentilerimizi karşılama potansiyeline sahiptir." Evet özgür yazılımın bu potansiyeli var ama ülke olarak bunu değerlendiriyor muyuz? Bence hayır! Özgür yazılımın getirdiği dört özgürlükten [2] sırasıyla bahsedip bu iddiamı temellendirmek istiyorum.

Yazılımı istenilen amaç için, istenilen şekilde çalıştırma özgürlüğü

Bu özgürlük son kullanıcı açısından bakınca en temel olanı [3]. Peki kamunun özgür yazılıma (onlar hep açık kaynak diyorlar ama bence esas önemli konu bu değil) olan ilgisi gerçekten bazıları sahipli yazılımları kullanamıyor diye itiraz edişinden mi? Yoksa özgür yazılımların çok büyük oranda lisans bedeli verilmeden kullanılabiliyor olmasından mı? Burada kamunun sadece maliyet odaklı yaklaşımı özgür yazılımdan çok hızlı bir dönüşü beraberinde getirir. Bunu kendi ülkemizde yaşadığımız tecrübelerden de çok iyi biliyoruz. Bununla ilgili daha önce yazdıklarımı tekrar etmemek için linkini bırakıyorum [4].

Yazılım nasıl çalıştığını anlama ve onu istediği gibi değiştirme özgürlüğü

Kamu bu özgürlüğü neredeyse hiç kullanmıyor. Tamam özgür yazılımların kaynak kodları açık ve kamu onu değiştirebilir durumda ama bunu yapmıyor. Nereden biliyoruz yapmadığını? Özgür yazılımların geliştirme süreçleri tamamen açık olduğu için istediğiniz özgür yazılıma bakın geliştiricileri arasında kaç tane .tr uzantılı eposta adresi var. Üşenmeyen isimlere tek tek de bakabilir. Sizi yormamak için söyleyeyim çok büyük oranda hiç yok. Oysa Pardus temel olarak Debian üzerine inşa edilmiş bir dağıtım, bir tane bile Debian geliştiricisi istihdam etmesi gerekmez mi? Dağıtımla birlikte dağıtılan ofis paketi LibreOffice, bir tane olsun LibreOffice geliştiricisi çalıştırması gerekmiyor mu? Ankara'da postgresql konferansı düzenlendiğinde akın akın koşan TÜBİTAK birimlerinde bir tane olsun, ilaç niyetine postgresql geliştiricisi bulunmamasında bir gariplik yok mu?

Peki TÜBİTAK kendisi geliştirici çalıştırmıyor ama Debian vakfının, Belge vakfının, Postgresql vakfının destekçisi mi? Bunun da cevabı hayır. Böyle yazınca sadece TÜBİTAK hakkında yazıyorum gibi anlaşılmasın isterim. Her yerde adı geçen Havelsan, Aselsan ya da herhangi bir kamu kurumu için de durum aynı.

Bütün özgür yazılım kullanan kurumlar onun gelişimine katkıda bulunsun demiyorum ama hiçbirinin katkıda bulunmaması olacak şey değil. Bu özgürlüğü hiç değerlendirmediğimiz için buradan edineceğimiz bilgi birikimi diye bir şeyden bahsedemiyoruz. Ülkemiz insanının "ben de yapabilirim" hissine zerre katkısı olmuyor özgür yazılım kullanımının. Bu büyük bir kayıptır.

Yazılımın kopyalarını yeniden dağıtabilme özgürlüğü

Bu özgürlüğü kullanıyoruz ve kurumlar lisans ücreti ödemiyor ama yazılımı yapılandırmak ve özelliştirmek ayrıca bir emek istiyor. Yazılımın kendisine para vermemiş kurumlar bakımı ve ayakta tutulması için ücret ödemek istemiyor genellikle. Microsoft'a, Oracle'a her yıl düzenli ödenen bakım ücretlerini yerli firmalara verip sorunlarını çözdürmekte çok isteksiz kamu kurumları.

Yazılımın değiştirilmiş hallerini yeniden dağıtılabilme özgürlüğü

Kamu kullandığı özgür yazılımları geliştirmeye çalışmadığı için elinde değiştirilmiş bir hali de olmuyor ve bunu dağıtamıyor. Eğer bir özgür yazılımı kendi ihtiyaçları için kaynak kodunda bir değişiklik yaparak kullanıyorsa bile bunu özgür yazılım topluluğu ile paylaşmadığından bu özgürlük tamamen işlevsiz bir hale geliyor.

Açık kaynak yazılımlarla kendi problemlerini çözen kamu kurumları kendi yazılımlarının kaynak kodlarını açıp başka kurumların kullanımına da sunmuyor. Neredeyse aynı problemleri çözmek için her kurum kendi açık kaynak (!) çözümünü kendi geliştiriyor.

Bütün bunlara rağmen özgür yazılım kullanımı ülke için bir avantajdır ama sürdürülebilir bir durum değildir. Yazılım tekelleri ile fiyat konusunda mücadele etmek mümkün değildir. Yukarıda bahsettiğim [4] numaralı yazıdaki acı tecrübelerimizi unutmamalıyız. Özgür yazılım sadece bedava yazılım değildir, onu böyle anlayanlar Microsoft ve Oracle "sizden para almayalım" dediklerinde ilk geri dönenler olacaktır.

Özgür yazılım kendi başına bir amaç değil, daha iyi bir dünya için bir araç. Biz ülke olarak sadece tüketen bir ülke olmayı hedeflemiyorsak bu yolda bize yardımcı olabilecek bir araç. Üreten bir ülke olabilmenin de ilk şartı yüzümüzü üretime çevirmek olmalı.

Maalesef yanlış yoldayız!

[1] https://www.nyucel.com/2017/03/yerli-yazlm-milli-yazlm.html
[2] http://www.gnu.org/philosophy/free-sw.en.html
[3] https://www.nyucel.com/2017/03/son-kullanc-icin-ozgur-yazlm-neden.html
[4] https://www.nyucel.com/2012/07/bedava-m-ozgur-mu.html

11 Aralık 2018 Salı

"Kod yazabiliyorum ama algoritmasını yazamıyorum"

Yıllardır bilgisayar mühendisliği öğrencilerine algoritma ve programlamaya giriş anlatıyorum. Bütün eğitim hayatları boyunca sadece problem çözmeye odaklanmış olan öğrenciler için problemi çözme süreci üzerinde düşünmek çok zor geliyor. Öğrencilerin bir kısmı üniversiteye gelmeden önce de kodlamayı bir miktar biliyor olmasına rağmen bir problemi hangi süreçleri takip ederek çözdükleri üzerine neredeyse hiç düşünmemiş oluyorlar. Bu elbette bireysel olarak onların eksikliği değil, onları bu hale eğitim sistemimiz getiriyor.

Algoritma üzerinde düşünmek aslında problemi çözmek değil de onu çözümlemek anlamına geliyor. Üniversiteye gelene kadar problem çözümlerinde hep kısa yollar, formüller öğrenmiş; kavramları, tanımları önemsememiş gençler için bunları öğrenmek ve üzerinde düşünmek zorlu bir süreç oluyor. Hemen kod yazmaya geçmek istiyorlar ama problemi çözümlemeden kodunu yazmak işlevsiz bir çaba oluyor. Algoritma yazmak veya akış şeması çizmek için harcanan zaman boşa geçiyormuş gibi geliyor genç arkadaşlara.

Bu denizi doldurmak için yapılan çalışmalara benziyor biraz. Kayaları taşıyan ilk kamyonların döktüklerinin suyun içinde kaybolup gittiğini görürüz başlarda. Sanki bir sonsuzluğun içine bıraktığımız bu kayalar asla kıyının seviyesine gelemeyecek gibidir. Eğer yeterince kayayı suya dökersek zamanla suyun yüzeyinden görülebilir olduklarını görürüz. Bu işleme sabırla devam edince kayalar suyun yüzeyini de aşarlar. Programlama öğrenme sürecinin başında algoritma üzerinde düşünürken, yazarken işte bu kayaları denize döküyoruz. Hemen ortaya bir şey çıkarmak isteyenler, for'ları, while'ları ve if'leri yazmak ve o denizi hemen doldurmak istiyorlar.

Karl Marx'ın en kötü mimarı en iyi arıdan ayıran özelliğinin mimarın yapacağı işi önce aklında inşa etmesi olarak vurgulamasını yazılım dünyası için de düşünmek hatalı olmayacaktır. 



İşin doğrusu bazı durumlarda çözülecek problem üzerinde çokça düşünmeye değecek kadar derinlikli olmuyor. Hele iş hayatında insanın karşısına sürekli meydan okumalarla dolu sorunlar çıkmıyor. Süreç üzerinde düşünme disiplini olmayan biri için her sorun böyle kolayca çözülebilir gibi geliyor olabilir ama elbette her zaman böyle olmuyor.

Bir örnekle problemin önce akılda çözülmesinin önemini göstermek istiyorum. Aşağıda bir üçgen şeklinde dizilmiş sayılara bakalım. Bize yukarıdan aşağı doğru sadece birbirine temas eden sayılarla elde edebileceğimiz en büyük toplam soruluyor olsun.
Takip edilebilecek rotaların sayısı sadece 8 olduğundan olası bütün rotaları hesaplayıp en büyüğünü seçersek 308 toplamını bulmak zor olmayacaktır. Şimdi bu sayı dizisini biraz büyütelim.

Yukarıdaki şekilde 15 satır var, yani takip edilebilecek rotaların sayısı 2^14 tane. Bu da 16384 farklı rota demek oluyor. İlkine göre bir hayli fazla olsa da burada da tüm rotaları hesaplayıp en büyüğünü seçmek imkanı var. En yavaş bilgisayarlarda bile oldukça kısa sürede hesaplanabilecek şekilde kodlamak mümkün bu yöntemi.

Peki ya satırların sayısı 100 olsaydı? Bu durumda hesaplanacak farklı rota sayısı 2^99 olacaktı. Bu da 633825300114114700748351602688 farklı rota demek olur. Bu 30 basamaklı bir sayı olduğundan bütün rotaları hesaplayarak sonuca ulaşamayacağımız herkes için çok açık olmalı. Ne bu kadar farklı rotayı hesaplayabilir ne de, hesaplasak bile, bunları bir yerde saklayabiliriz. İşte "kod yazabiliyorum ama algoritmasını yazamıyorum" diyenlerin tıkandığı nokta burasıdır. Yöntem üzerinde düşünmeyen ancak sonucu apaçık görünen problemleri çözebilir.

Buraya kadar sabırla okuyanlar için çözümü de yazıp öyle bitirmek istiyorum bu yazıyı. Çözümü 8 farklı rotanın olduğu durum için anlatacağım ama kolayca genişletebilirsiniz. Problemi yukarıdan aşağıya doğru değil de aşağıdan yukarı doğru çözmeye çalışalım. En alttaki satırın bir üstüne kadar gelmiş olsaydık en alt satırdakilerden hangisini seçerdik diye düşünelim. Yani bir şekilde 17'ye gelmiş olsaydık, en büyük toplamı elde etmek için 18'e mi, 35'e mi giderdik? Elbette 35'e gitmeliydik. Aynı şekilde 47'den de 87'ye gitmeliydik. Son olarak 82'den de 87'ye giderdik. O zaman üçüncü satırdaki her sayıdan altındaki satırdaki ulaşabildiği sayıların en büyüğüne gideceğimizi görmüş olduk. Şimdi problem şu hale geldi.

                                   75
                       95                       64
17+max(18,35)  47+max(35,87)  82+max(87, 10)

İşlemleri yapınca:

     75
   95 64
52 134 169

Aynı işlemi ikinci satır için yapalım:
                         75
95+max(52,134) 64+max(134,169)

Burada işlemleri yapalım:
     75
229 233

Aradığımız sonuç böylece 75+max(229,233)=308 olacaktır. Bir kere böyle düşünmeyi akıl ettiğimizde satır sayısının ne kadar fazla olduğunun bir önemi kalmayacaktır. Yazacağımız kod 100 satır için bir saniyede çözüm bulacakken, bunu düşünmeyenlerin yazacağı kod milyarlarca yılda sonlanmayacaktır. Algoritma hakkında düşünmek ve düşünmemek arasındaki fark işte bu büyük uçurumdur.

4 Aralık 2018 Salı

LibreOffice için Türkçe imla denetimi eklentisi: zemberek-extension

Zemberek-NLP Ahmet A. Akın ve Mehmet D. Akın'ın 10 yıldan uzun zamandır geliştirdikleri bir özgür yazılım projesi. Proje Türkçe için doğal dil işleme araçları içeriyor [1]. Bir dönem Pardus tarafından kullanımı ile çok bilinen bir projeydi ama bir süre hem Pardus sahipsiz kaldı, hem de Zemberek geliştiricileri gönüllü olarak yaptıkları işe bir süre ara verdiler. Zemberek sadece imla denetimi işini yapmıyor olsa da son kullanıcıya en çok ulaştığı yer burası. Özellikle LibreOffice kullanıcılarının imla denetimi yaptırabilmeleri ciddi bir ihtiyaç.

Zemberek-NLP bu yıl içinde yeniden geliştirilmeye başlandı. Uzun yıllardır el değmemiş olan LibreOffice eklentisi de baştan hazırlandı [2]. Eklentiyi hazırlama kısmında Okan Özdemir ve Talha Kanyılmaz da çalıştılar. Eklenti henüz ilk sürümünde olduğundan hatalar içerebilir. Deneyip geri bildirimde bulunulursa çok iyi olur. Kurulum ve diğer konular için eklentinin sayfasına bakılabilir.


[1] https://zembereknlp.blogspot.com
[2] https://github.com/COMU/zemberek-extension

28 Mayıs 2017 Pazar

Özgür yazılım ile açık kaynağın ne farkı var?

Özgür Yazılım hareketi 1983'de başlayan ve kullanıcıların yazılımları çalıştırma, anlama, değiştirme ve değiştirdikleri halini dağıtma özgürlüklerini savunan bir harekettir. Açık Kaynak ise neredeyse aynı ilkeleri farklı ifadelerle savunan ve 1998'de ortaya çıkan, özgür yazılım topluluğunun içinden çıkan bir oluşumdur. Özgür Yazılım hareketinin başlatıcısı Stallman açık kaynağı bir yazılım geliştirme metodolojisi, özgür yazılımı ise bir sosyal hareket olarak görmektedir. Stallman uzun yıllardır neden kendisini bir açık kaynak savunucusu olarak kabul etmediğini yazılarıyla ve konuşmalarıyla anlatıyor olsa da çok fazla anlaşıldığı söylenemez. Bu yazıda ikisi arasında bir fark var mı ve biz hangi ifadeyi kullanmalıyız konularını tartışmak istiyorum.

Lisans

Bir yazılımla ne yapabileceğinizi belirleyen şey onun özgür yazılım veya açık kaynak olması değil o yazılımın kullandığı lisanstır. Temel kavramları aynı bile olsa her özgür yazılım lisansı aynı kullanım şartlarını sunmaz. Watcom lisansı gibi neredeyse kimsenin kullanmadığı lisansları bir tarafa bırakırsak bütün açık kaynak yazılım lisanslarının aynı zamanda özgür yazılım lisansı olarak kabul edildiğini görürüz. Konuya lisanslar açısından bakınca özgür yazılımlar ile açık kaynak yazılımlar arasında bir fark yoktur [3].

Yanlış anlamalar

Türkçe konuşan insanlar olarak "free software" ifadesinde yaşanan "bedava" mı "özgür" mü karışıklığını yaşamıyor olmamıza rağmen "open source" yazılım denildiğinde sadece kaynak kodu açık olan yazılımın anlaşılması gibi sorunla, İngilizce konuşanlar gibi, karşı karşıya kalıyoruz. Özgür yazılım denildiğinde arkasında yazılımın ve kullanıcıların özgürlüklerini önemseyen, onun için mücadele eden bir felsefe olduğunu anlamak kolay olmasına rağmen maalesef onun hakkında da kafa karışıklığı az değil. Genel Kamu Lisansı (GPL) en bilinen özgür yazılım lisanslarının başında geliyor olmasına rağmen tek özgür yazılım lisansı değil. GPL özgür yazılımın dört şartına ek olarak Copyleft kavramını da kullanmaktadır. Özgür yazılımın şartları yazılımı sizin nasıl haklarla edineceğinizi belirlerken Copyleft onu nasıl dağıtmanız gerektiğini söyler. Yani Copyleft özelliğine sahip bir lisansla lisanslanmış bir yazılımı yine aynı şartlarla dağıtmanız gerekir [1]. Bütün özgür yazılım lisanslarının böyle bir zorunluluğu olmamasına rağmen maalesef genel kanı bu yönde ülkemizde.

Açık kaynak ise ülkemizde en az anlaşılan kavramlardan biri. Bunda adının yaptığı çağrışımın etkisi de büyük elbette. Hem kullanıcılar, hem de önemli miktarda geliştirici bir yazılımın kaynak kodunu görebildiğinde onu açık kaynak sanmak gibi bir kavramsal hataya düşüyor [2]. Github benzeri bir kod barındırma ortamına yazılımının kaynak kodlarını koyan bir yazılımcı onun hemen açık kaynak olduğu yanılgısına kapılıyor.

Açık kaynak yanlış anlaşılmaya çok müsait olduğundan açık kaynak ifadesini her kullandığımızda onun kaynağı açık olan yazılım anlamına gelmediğini ve mevcut 10 şartını anlatmak oldukça zor bir iştir. Bunu yapmadığımızda hem özgür yazılım hem de açık kaynak hareketlerinin uğraştıkları konuları önemsememiş oluruz. Özgür yazılım dediğimizde birilerinin kafasını karıştırma riski oldukça düşüktür. Günümüzde gittikçe artan bir hızla özel mülk yazılımların da kaynak kodlarının açıldığını hesaba katarak, insanları yanlış yönlendirmemek için açık kaynak yerine özgür yazılım ifadesini kullanmak daha doğru bir hareket olacaktır.

Düşmanımız açık kaynak değil özel mülk yazılımdır

Özgür yazılım taraftarları olarak sıklıkla açık kaynak ifadesini özgür yazılım olarak düzeltiyoruz. Bunu kafa karışıklığına neden olmamak için yaptığımız halde, istemeden de olsa, sanki açık kaynağın kötü bir şey olduğu algısını da yaratabiliyoruz. Halbuki durum böyle değil. Özgür yazılım ve açık kaynak hareketleri kullanıcıların özgürlüklerini savunan hareketlerdir. Biz özgür yazılım savunucuları açık kaynağı düşman olarak görmeyiz. Hem özgür yazılımın hem de açık kaynak yazılımın insanlık için kötü olarak kabul ettiği yazılımlar özgür olmayan (özel mülk) yazılımlardır.
We in the free software movement don't think of the open source camp as an enemy; the enemy is proprietary (nonfree) software.

[1] http://www.nyucel.com/2017/05/genel-kamu-lisansnn-gpl-onemli-fark.html
[2] http://www.nyucel.com/2017/05/ack-kaynak-sadece-kaynak-koda-erisim.html
[3] http://www.nyucel.com/2017/05/ozgur-yazlm-m-ack-kaynak-m-1.html

20 Mayıs 2017 Cumartesi

Özgür Yazılım mı Açık Kaynak mı?

Yazılım lisansları son kullanıcı tarafında neredeyse hiç okunmayan metinler olmalarına rağmen yazılım geliştiriciler arasında bile yaygın olarak okundukları söylenemez. Elbette son kullanıcının yazılım lisansıyla ilişkisi geliştiriciden çok farklıdır. Elindeki yazılımı nasıl değiştireceği, başka bir yazılım içinden nasıl çağırabileceği, statik mi dinamik mi derlemesi gerektiği, kendi koduna birlikte dahil edebileceği yazılımların lisanslarının nasıl olması gerektiği gibi konularla ilgilenmez son kullanıcı. Bu bahsettiğim durumlarda geliştiricilerin nasıl davranması gerektiği lisans metinlerinde genellikle ayrıntılı olarak tarif edilir.

Son kullanıcı genellikle yazılımı özgürce kullanabiliyor mu, başkasıyla paylaşabiliyor mu, gelecekte de kullanabilecek mi, güvenli mi gibi konularla ilgilenir. Son kullanıcının yazılımın lisansını okumadan da onunla ilgili neler yapabileceğini öğrenmesinin bir yolu yazılım lisansının hangi sınıfa girdiğini ve o sınıftaki yazılımların belirleyici özelliklerini bilmesidir. Eğer yazılım bir özgür yazılımsa onunla yapılabilecek şeyler çok kısa ve net bir şekilde belirlidir [1]. Biraz daha fazla madde içeren açık kaynak bir yazılımın şartları da net olarak tarif edilmiş durumdadır [2]. Örneğin elde ettiğiniz yazılım GPLv3 ile lisanslanmışsa ve bu lisansın bir özgür yazılım lisansı olduğunu biliyorsanız diğer ayrıntılarla çok ilgilenmeden onu gönül rahatlığıyla kullanabilirsiniz.

Özgür yazılım ve açık kaynak lisanslarıyla ilgili şartları okuduğunuzda aradaki farkı kolayca anlamanız mümkün olmayabilir. Bu sizi tedirgin etmesin zaten büyük kalabalıkların da durumu böyle. Bir yazılıma açık kaynak dediğinizde biri sizi "hayır o özgür yazılım" diye uyarıyorsa "arada ne fark var?" diye sorun. Çok büyük ihtimalle açıklayamayacaktır. Bu yazıyı çok uzatmamak için aradaki kavramsal ayrılıkları bir başka yazıya bırakıp burada hangi lisanslar özgür yazılım, hangileri açık kaynak kategorisine giriyor göstermek istiyorum.

Hangi lisansların özgür yazılım kategorisine girdiğini görmek isteyenler buraya [3], açık kaynak yazılım lisanslarının hangileri olduğunu görmek isteyenler buraya [4] bakabilirler. Özgür yazılımla ilgili bağlantıya bakarsanız (biliyorum çoğunluk bakmayacak) hangi lisansların GPL-uyumlu olduğunu, hangilerinin GPL uyumlu olmasa da özgür yazılım olduğunu görebilirler. Hangi lisansların özgür yazılım lisansı olarak kabul edilmediği de nedenleriyle birlikte açıklanmış durumda. Bir lisansın GPL-uyumlu olması o lisansla yazılmış bir kodun GPL lisanslı bir yazılıma dahil edilip dağıtılabileceği anlamına gelir.

GPLv3 uyumlu özgür yazılım ve açık kaynak lisansları


Aşağıdaki lisanslar hem GPLv3-uyumlu özgür yazılım lisansları, hem de açık kaynak lisanslarıdır. Sayıları sizi şaşırtacak kadar fazla olan bu lisansların listesi şöyle:
  • 2-clause BSD License (BSD-2-Clause)
  • 3-clause BSD License (BSD-3-Clause)
  • Apache License 2.0 (Apache-2.0)
  • Artistic License 2.0 (Artistic-2.0)
  • Boost Software License (BSL-1.0)
  • CeCILL License 2.1 (CECILL-2.1)
  • EU DataGrid Software License (EUDatagrid)
  • eCos License version 2.0
  • Educational Community License, Version 2.0 (ECL-2.0)
  • Eiffel Forum License V2.0 (EFL-2.0)
  • GNU Affero General Public License version 3 (AGPL-3.0)
  • GNU General Public License version 2 (GPL-2.0)
  • GNU General Public License version 3 (GPL-3.0)
  • GNU Lesser General Public License version 2.1 (LGPL-2.1)
  • GNU Lesser General Public License version 3 (LGPL-3.0)
  • Historical Permission Notice and Disclaimer (HPND)
  • ISC License (ISC)
  • MIT License (MIT)
  • Mozilla Public License 2.0 (MPL-2.0)
  • Python License (Python-2.1)
  • Sleepycat License (Sleepycat)
  • Universal Permissive License (UPL)
  • W3C License (W3C)
  • wxWindows Library License (WXwindows)
  • Zope Public License 2.0 (ZPL-2.0)
  • zlib/libpng license (Zlib)

GPLv3 uyumlu olmayan özgür yazılım ve açık kaynak lisansları

Bazı özgür yazılım lisansları GPL-uyumlu olmayabiliyor. Genel Kamu Lisansının diğer özgür yazılım lisanslarından farkını daha önce yazmıştım, belki okumak isteyebilirsiniz şimdi [1]. GPL uyumlu olmadığı halde özgür yazılım lisansı olan lisansların sayısı da az değil. Bunların arasından açık kaynak lisansı olarak da adı geçenlerin listesi de şöyle:
  • Academic Free License 3.0 (AFL-3.0)
  • Apple Public Source License (APSL-2.0)
  • Common Public Attribution License 1.0 (CPAL-1.0)
  • Eclipse Public License 1.0 (EPL-1.0)
  • European Union Public License, Version 1.1 (EUPL-1.1)
  • IBM Public License 1.0 (IPL-1.0)
  • LaTeX Project Public License 1.3c (LPPL-1.3c)
  • Lucent Public License Version 1.02 (LPL-1.02)
  • Microsoft Public License (MS-PL)
  • Microsoft Reciprocal License (MS-RL)
  • Mozilla Public License 1.1 (MPL-1.1)
  • Nokia Open Source License (Nokia)
  • Open Software License 3.0 (OSL-3.0)
  • PHP License 3.0 (PHP-3.0)
  • Q Public License (QPL-1.0)
  • RealNetworks Public Source License V1.0 (RPSL-1.0)
  • Sun Public License 1.0 (SPL-1.0)
  • Zero Clause BSD License (0BSD)

Açık kaynak olduğu halde özgür yazılım olmayan lisanslar

Peki açık kaynak olduğu halde özgür yazılım lisansı olarak kabul edilmeyen lisanslar neler? diye soruyor olmalısınız şimdi? Eğer özgür yazılımın ve açık kaynağın şartlarını okumuşsanız bunun kolay kolay sağlanamayacak bir durum olduğunu biliyor olmalısınız ama [3] ve [4] adreslerinde adı geçen ve bu şartı sağlayan sadece bu kadar az lisans olduğunu okumak sizi şaşırtacaktır sanırım. Eğer bu lisanslardan biriyle lisanslanmış bir yazılıma açık kaynak derseniz doğruyu söylemiş olurken, özgür yazılım derseniz hatalı bilgi vermiş olursunuz.
  • NASA Open Source Agreement 1.3 (NASA-1.3)
  • Reciprocal Public License 1.5 (RPL-1.5)
  • Sybase Open Watcom Public License 1.0 (Watcom-1.0)
Buraya kadar sabırla okuduysanız bütün özgür yazılımların doğal olarak açık kaynak olduğunu biliyor olmalısınız. Bu bilgilerden sonra neredeyse bütün açık kaynak yazılımların da özgür yazılım olduğunu görmüş oldunuz.

Arada hiç mi fark yok?

Her ne kadar neredeyse bütün açık kaynak yazılımlar özgür yazılım olmanın kriterlerini yerine getiriyor olsalar da doğrusu yazılım kendisini nasıl tanımlıyorsa o terimi kullanmaktır. Örneğin Genel Kamu Lisansı ile lisanslanmış bir yazılım kendini açık kaynak olarak tanımlıyorsa ona açık kaynak demek doğrusudur ama tersini söylemekte de teknik olarak hatalı bir durum olmadığı herkesçe açık olmalı.

Özgür yazılım ve açık kaynak aynı şey mi?

Yukarıda okuduğunuz şeylere rağmen özgür yazılım ve açık kaynak farklı dünya görüşlerini temsil eden fikirler. Bu konu hakkında ayrı bir yazı okumak isterseniz buradan okuyabilirsiniz.

[1] http://www.nyucel.com/2017/05/genel-kamu-lisansnn-gpl-onemli-fark.html
[2] http://www.nyucel.com/2017/05/ack-kaynak-sadece-kaynak-koda-erisim.html
[3] https://www.gnu.org/licenses/license-list.html
[4] https://opensource.org/licenses/alphabetical

16 Mayıs 2017 Salı

Özgür yazılım penceresinden WannaCry

Birkaç gündür neredeyse bütün haberlerde bir fidye yazılımı olan WannaCry hakkında okuyoruz. Microsoft'un bütün işletim sistemlerini etkileyen bir samba açığından faydalanan bu yazılım kullanıcıların bilgisayarlarındaki dosyaları şifreledikten sonra 300$ ödeme yapmaları halinde bu durumdan kurtulabileceklerini anlatan bir mesaj gösteriyor. İşin teknik kısmı hakkında çokça yazılıp çizildiğinden bu yazıda başka bir konudan; özgür yazılımın yaşananlara nasıl bakması gerektiğinden bahsetmek istiyorum. Sadece Microsoft'un işletim sistemlerini etkileyen bu büyük açığı bir avantajmış gibi kullanmadan önce aşağıdaki konularda düşünmemiz gerekiyor.


Neden özgür yazılım kullanılsın istiyoruz?

Biz özgür yazılımları daha güvenli oldukları, daha hızlı oldukları veya daha özelleştirilebilir oldukları için mi kullanıyoruz? Toplam sahip olma maliyetleri daha düşük diye mi özel mülk yazılımlar yerine özgür yazılımları tercih ediyoruz? Özgür yazılımlar bu saydığım avantajlara hatta daha fazlasına sahip oldukları halde sahipli yazılımlar karşısındaki gerçek üstünlükleri bunlar değil elbette. Özgür yazılımları herkesin istediği amaçlar için çalıştıramadığı, programın nasıl çalışabildiğini anlayamadığı, ihtiyacına uygun şekilde değiştiremediği, elindeki yazılımı dağıtmasının önünde kısıtlamaları olan sahipli yazılımlarla karşılaştırmaya buradan başlamamamız gerekir. Eğer temel argümanımız hız, güvenlik, ucuzluk olursa yarın sahipli bir yazılım bu konularda öne geçtiğinde söyleyecek sözümüz kalmaz. Kendimizi kandırmayalım bazıları hali hazırda bu konuların bazılarında daha ilerideler ama biz yine de özgür yazılımları kullanma taraftarıyız. İnsanların özgürce kullanıp, dağıtamadığı yazılımları özgür yazılımlarla kıyaslamaya başlamadan önce onların minimum insani ihtiyaçları karşılamaları gerekir [1]. İnsanlara, şirketlere, kamuya neden özgür yazılımlar kullanmaları gerektiğini doğru argümanlarla açıklamak çok önemli [2].

Özgür yazılım kullanılsaydı benzer bir durumla karşılaşılamaz mıydı?

Elbette karşılaşılabilirdi. Hatta karşılaşıldı da. GNU/Linux ve *BSD'lerde en çok kullanılan kabuk olan bash'in bu hatayla karşılaştırılabilecek büyüklükte bir hatası olan shellshock ancak 25 yıl sonra farkedilebildi. Bash'in kaynak kodları bu süre boyunca hepimizin gözlerinin önündeydi hem de. Bu yazdıklarımdan elbette kaynak kodların erişilebilir olmasının güvenlikle ilgili olumlu etkisinin olmayacağı anlamı çıkartılmamalıdır [3]. Bugün yaygın olarak kullanılan bir özgür yazılıma eklenen kodlara dünyanın her köşesinden geliştiriciler, geliştirici adayları ve meraklılar bakıyor. Kaynak kodlarını göremediğimiz bir yazılıma bir arka kapı kolaylıkla eklenebilirken aynı şeyi bir özgür yazılıma yapmak (imkansız demeyeyim ama) çok çok zordur. Durum böyle olmasına rağmen özgür yazılımlarda güvenlik sorunu hiç olmaz dememek gerekir, çünkü yaşadığımız örnekler var. Bugün wannacry sadece Windows'ta yaşanıyor siz GNU/Linux kullanın dersek yarın shellshock benzeri bir durumda söyleyecek sözümüz kalmaz. Bizim temel argümanımız özgürlük olmalıdır ve bu GNU/Linux kullanın demek için yeterlidir.

Microsoft'un neredeyse kimsenin kullanmadığı samba-v1'e hala destek veriyor olması görülmedik bir şey midir?

Geriye uyumluluk bütün yazılımların ciddi sorunlardan biri durumunda maalesef. Eski sürümlere destek verildiğinde böyle şeyler olabilirken desteğin kesilmesi de başka sorunlara yol açabiliyor bazen. Windows10'a bile samba-v1.0 desteğini vermesi elbette Microsoft'un kabahati ama bu hiç yapılmayan bir yanlış da değil. Neredeyse her yerde TLS 1.2 kullanılırken SSL'in eski sürümlerine verilen desteğin suistimal edilmesi yüzünden yaşadığımız şeyler üzerinden çok da uzun zaman geçmedi. Microsoft zamanında Windows'lardan bu desteği kaldırabilirdi ve bu onu daha iyi bir işletim sistemi yapmazdı. Bizim windows ve diğer sahipli işletim sistemlerini kullanmayın dememizin arkasında yatan şey onların tasarım ve planlama hataları değil özgür olmamalarıdır.

Microsoft Windows XP kullanıcılarına bir şey borçlu mu?

Microsoft'un Windows XP'yi piyasaya sürüş tarihi 2001. Elimizi vicdanımıza koyup konuşalım hangi işletim sistemine 16 yıl destek veriliyor? Dört yıl önce XP desteği artık sona erdi diye de yazdılar. XP çıktığı tarihte piyasada olan Debian 2.2 veya Redhat 6.2 için destek alamadığından şikayetçi kimse var mı? Aradan geçen bunca yılda kamunun kaynaklarını bir özgür işletim sistemine geçişte kullanmamış ve hala Windows XP kullandıran yöneticiler kusura bakmasınlar ama suçun önemli bir kısmı onları üzerinde. 

WannaCry'dan etkilenenler elbette sadece XP kullanıcıları değil bütün Windows sürümlerinin kullanıcıları oldu ama tahmin edilenin çok üzerinde XP kullanıcısı olduğu da görülmüş oldu. Bir kurumun yöneticisi arka planda ne yaptığını bilmediği, en temel insani ilkelere uygun olmayan bir işletim sistemini kullandırıyorsa suçu Microsoft'a atamaz bence.

GNU/Linux veya BSD'ler Windows'un alternatifi mi?

Özgür yazılımdan, özgür işletim sistemlerinden sanki Windows'un alternatifiymiş gibi bahsetmeyi kabul edilemez buluyorum. Bu konuda daha önce çokça yazdığım için tekrarlamak yerine aşağıya bağlantılarını bırakıyorum. [4], [5], [6]

11 Mayıs 2017 Perşembe

Genel Kamu Lisansının (GPL) önemli farkı: Copyleft

Özgür yazılım sade ve güçlü bir mekanizma üzerine kurulu bir felsefe. Özel mülk yazılım lisansları nasıl firmaları koruyan hükümler içeriyorsa özgür yazılım lisansları da kullanıcıları, yani toplumu korumaya çalışıyorlar. Bir yazılım lisansının özgür yazılım lisansı kabul edilebilmesi için ilgili yazılımla ilgili aşağıdaki dört temel özgürlüğü garanti etmesi gerekiyor:
  • Yazılımı herhangi bir amaç için çalıştırma özgürlüğü,
  • Yazılımın nasıl çalıştığını öğrenme ve onu değiştirme özgürlüğü,
  • Yazılımı yeniden dağıtma özgürlüğü,
  • Yazılımın değiştirilmiş halinin dağıtılabilmesi özgürlüğü.
Elbette bunlar çok genel hükümler ve bunları sağlayan çok sayıda özgür yazılım lisansı mevcut. Lisans metinleri çoğunlukla ayrıntıları da tanımlayan, özel durumlarda nasıl davranılması gerektiğini tarif eden hukuki metinler. Yazılım geliştiricilerin bu lisans metinlerini okumamak gibi bir lüksü olamaz çünkü yaptıkları iş açısından çok belirleyici metinler bunlar. Yazılımlar hemen hemen her zaman başkalarının yazdıkları kitaplıkları içerdiğinden geliştiricilerin hangi kitaplıkları kendi yazılımına dahil edip edemeyeceğini, hangi kitaplıkları bir arada kullanabileceğini bu metinlerden başka öğrenebilecekleri bir alternatifleri yoktur.

Aslında kullanıcılar da bir yazılımı kullanmadan önce onun getirdiği kısıtlamaları ve sağladığı özgürlükleri öğrenebilmek için bu lisansları okumalı ama hem metinler yer yer teknik ifadeler içeriyor hem de çok uzunlar. Asıl bağlayıcı metinler İngilizce olanlar olmasına rağmen Linux Kullanıcıları Derneğinin kamuoyunun kullanımına sunduğu Özgür Yazılım Lisansları sayfası oldukça yararlı olacaktır. Eğer yazılım geliştiricisi değilseniz özgür yazılımın temel kavramlarını ve kullandığınız yazılımın bir özgür yazılım olduğunu bilmek yeterli bir güven zinciri oluşmasını sağlayabilir.

İdeal bir dünyada yukarıdaki dört şart yeterli olabilecekken günümüz dünyasında özgür yazılımların özel mülk yazılımlara dönüştürülmesinin önüne geçmek için bazı önlemler almak gerekmektedir. Genel Kamu Lisansının yukarıdaki şartlara ek olarak getirdiği en önemli farklılık Copyleft'tir.


Copyleft yazılımınızın mevcut halinin ve/veya değiştirilmiş halinin de özgür yazılım olarak kalmasını garantilemenin bir yoludur. Copyleft bir özgür yazılımı alan kişilere onun özgün halini ve/veya değiştirilmiş halini yine özgür yazılım olarak dağıtmaları gerektiğini söyler. Yani elde ettiğiniz Copyleft özelliğine sahip bir yazılımı aldığınız özgürlükleri aynen devretmeden dağıtamazsınız. Bu şartın bütün özgür yazılımlara ait olmadığını sadece Copyleft'in bir getirisi olduğunu akıldan çıkartmamak gerekir. Bütün özgür yazılımların böyle zorunlulukları yoktur. Bazı özgür yazılım lisansları aldığınız yazılımın kaynak kodunu kapatıp özel mülk yazılım olarak dağıtmanıza bile izin verir. GPL Copyleft özelliğini taşıyan bir özgür yazılım lisansıdır. Özgür yazılımların bir listesi için bu adrese bakabilirsiniz.

Copyright, yani telif hakkı, kullanıcıların özgürlüklerini kısıtlamak için kullanılan bir terim iken Copyleft bu özgürlüklerin devam etmesini garanti altına almaya yöneliktir. Adının çağrıştırdığının aksine Copyleft, Copyright'ın tersi değil onu kullanmanın bir yoludur. Copyleft yazılımın telif hakkından vazgeçmek anlamına gelmediği gibi eğer telif hakkından vazgeçerseniz Copyleft'in kullanımının şartları ortadan kalkmış olur. Yani telif hakkına sahip olmadığınız bir yazılımın nasıl dağıtılacağına zaten karışamazsınız.

Yazdığınız kodu Genel Kamu Lisansıyla nasıl lisanslayabileceğinize dair bu yazıyı da okumak isteyebilirsiniz.

5 Nisan 2017 Çarşamba

Eposta üniversiteler için ne anlama geliyor?

Bir önceki yazımda üniversitelerin %52'sinin eposta servisini kendi kontrolü olmayan şirketler aracılığı ile verdiğini yazmıştım. Üniversitelerin %17'sinin de eposta sunucularını MS işletim sistemleri üzerinden sağladığı düşünülünce konuya özgür yazılım açısından bakan biri için durum oldukça kötü görünüyor. Bu yazıda da üniversiteler neden bu tercihi yapıyorlar ve sonuçları neler oluyor konularını tartışmak istiyorum.

Biz yapamayız, ara eleman olalım fikrinin bir uzantısı

Üniversitelerin üreten ve paylaşan kurumlar olması durumunda neler yapabildiğinin dünyada pek çok örneği var BSD (Berkeley Software Distribution), wu-ftpd (Washington University ftp daemon) ve (MIT tarafından geliştirilen) Kerberos diğer pek çokları arasından bir çırpıda aklıma gelenler. Elbette eposta sunucularını kendimiz tutsak fezaya bayrak dikecektik, dışarı verdiğimiz için dikemiyoruz demiyorum ama eposta sunucusunu dahi kendi ayakta tutamayan bir üniversite nasıl olacak da dünyada yapılmamış bir işi kendi bilgi işleminden bekleyecek bilemiyorum. Eposta sunucularının diğer bütün sunucu servisleri gibi sorunlar çıkarttığı tahmin etmesi zor olmayan bir gerçek ama bunları çözmeye çalışmak, bu çözümleri başkalarıyla paylaşmak harcanan emeğe değecek bir iş bence. Sunucu servislerini dışarı taşımak bilgi işlemleri sorunları çözebilen birimler olmaktan sorun raporlayan birimlere dönüştürmek demek oluyor.

Bu servisler gerçekten "bedava" değil

Ne Google ne de Microsoft üniversitelere eposta hizmeti verirken belirli kullanıcı sayılarına kadar ücret talep etmiyor. Bu hizmeti sonsuza dek ücretsiz vereceklerinin, hatta vereceklerinin garantisi de yok. Yakın gelecekte bu servisi ücretli hale getireceklerini de düşünmüyorum doğrusu. Bir üniversitenin binlerle ifade edilen personelinin, onbinlerce öğrencisinin epostalarına üste para vermeden sahip olabilen bir kurum bundan neden vazgeçsin ki zaten? Peki bedava olmayan ne o zaman? İnternet bağlantısı tabi ki. Bilmeyenler için yazayım; ülkemizde üniversiteler internet bağlantısı için kendi bütçelerinden bir harcama yapmıyorlar. TÜBİTAK'a bağlı ULAKBİM bütün devlet üniversitelerinin bağlantıları için faturayı kendisi ödüyor. Durum böyle olunca üniversitelerde internet bağlantısı sanki ücretsizmiş gibi bir algı oluşuyor ama durumun öyle değil.

Telekom altyapısına çok az yatırım yapıldığından ULAKBİM üniversitelere çok kısıtlı bant genişlikleri verebiliyor. 50.000 öğrencisi ve 2000 personeli olan bir üniversitenin hızının yaklaşık 1Gbit/s olduğunu söyleyebilirim (çoğu anadolu üniversitesi için rakamlar bunun çok altında aslında). Aşağıda dün avrupada yaşayan bir arkadaşımla yaptığım yazışmada da görebileceğiniz gibi bir ev kullanıcısı 500 Mbit/s hızı tek başına kullanabiliyor. Hal böyleyken kurum içi eposta haberleşmesinin tamamını Amerika'ya gönderip alması veya yurtiçine gönderilen her epostanın Avrupayı gezip öyle yerine ulaşması bence kötü bir karar. Harcanan bu bant genişliğinin parasını üniversiteler kendi ödemiyor ama sonuçta ödeniyor.


Kararlar teknik değil idari 

Üniversite bilgi işlem daire başkanlıklarının çoğunlukla çok kısıtlı kaynaklarla çalıştığı bilenen bir gerçek ama çok yeni kurulmuş bir kaç üniversite dışında mail hizmetini google veya MS'e devretmiş üniversiteler zaten servisi veriyordu. Önemli bir çoğunluğunda bu işi çok kaliteli yapan arkadaşlarımız vardı, hala da o kurumlarda çalışıyorlar. Eposta sunucusunu biz işletmeyelim kararı bu servisi veren teknik bilgisi olan personelin kararı değil, üst yönetimlerin aldıkları kararlar. Bunu çok fazla sistem yöneticisinden bizzat dinledim.

Eposta sunucusu işletmek zor bir iş mi diye sorarsanız cevabım 'yeterince bilmiyorsanız her sunucuyu işletmek zor' olacaktır. Birer eğitim ve araştırma kurumu olan üniversiteler işletmesi zor diyerek kullanıcıların mahremiyetlerini hiçe sayarak bu görevden vazgeçmemeliler. Böyle bakınca DNS de zor bir servis diyerek yarın onu da mı kontrolümüz dışında bir yere vereceğiz?

Eposta yazışmalarının mahremiyeti hiç düşünülmüyor

Eposta yazışmalarımızı MS veya Google'a teslim etmek bütün yazışmalarımızı iki bütün amerikan şirketinin diskinde tutmak demek olurken bundan rahatsız olmamak nasıl mümkün oluyor anlamakta zorluk çekiyorum gerçekten. Bütün kullanıcıların gönderip aldıkları mailler üzerinden yapılabilecek en hafif şeyin reklam gösterimi olabileceğini düşünüyorum. Konuya bilgi güvenliği açısından bakınca durumun vahametini görmemek mümkün değil. Son dönemde hakkında çokça konuşulan kişisel verilerin korunması açısından bakınca da kurumların kullanıcılarının epostalarını hiçbir kontrolleri olmayan kurumlara devretmesi üzerinde konuşulması gereken bir konu olmalı.

İnternet erişim engellemeleri hiç hesaba katılmıyor

Neredeyse üç yıl youtube engelinin yaşandığı bir ülkede yaşıyoruz. Bu engellemelerin önce dns çözümlemesiyle yapıldığını daha sonra ise google'a ait IP adreslerinin engellendiğini hatırlatmak isterim. Google bu adresler üzerinden sadece youtube yayınını değil başka servislerini de yaptığından diğer servislere erişimde sorunlar yaşandığını düşününce yarın benzer bir yasaklama olduğunda (olmayacağını düşünen varsa tanışmak isterim kendisiyle) eposta servisinde bir aksama olduğunda üniversiteler kiminle konuşup servislerini ayağa kaldırabilirler? Benzer şekilde dosya paylaşım sitelerine getirilecek bir yasakla eposta servisleriyle birlikte kullanıcılara sunulan depolama alanları da bir anda erişilmez duruma gelecektir. Üniversiteler bütün kullanıcılarını vpn veya tor kullanmaya yönlendirmeyecekse bu durum için bir planlarının olması gerekir ama olmadığını hepimiz biliyoruz.

Servisi başkasına yaptırmak elimizdeki araçları alıyor

Kurum dışından biri size eposta gönderdiğini söylesin ve siz bunu alamamış olun. Ortada bir sorun olduğu açık ama bunu nasıl çözeceksiniz. Eğer eposta sunucusu kurumunuzdan biri tarafından yönetiliyorsa sunucu loglarına bakmasını sorunu teşhis etmesini isteyebilirsiniz ama bunu google'dan nasıl isteyeceksiniz?

Kullanıcılarınıza google ve/veya sunmadığı bir teknolojiyi kullandırmak istemeniz durumunda yine eliniz kolunuz bağlı durumdasınız. Örneğin epostalarınızı Google'a vermişseniz eposta sunucunuza IPv6 üzerinden de erişilebilirken MS henüz bu hizmeti vermiyor (en azından Outlook kullanan hiçbir üniversite MX kaydına böyle bir girdi yapmamış). Eposta sunucusunu kendisi barındıran 17 anadolu üniversitesinin eposta sunucusuna IPv6 üzerinden de ulaşılabiliyor. Elbette Microsoft da yarın IPv6 hizmeti vermeye başlayabilir ama yeni bir teknolojiyi denemek, kullanmak için bu şirketlerin zamanlamasını beklemek üniversitelerin yapması gereken bir şey mi sizce de?

Yerli de değil, milli de

Son zamanlarda hemen herkesin dilinde olan yerli yazılım, milli yazılım söylemi ile epostaları Amerika'da, Avrupa'da saklamak yan yana getirmesi zor şeyler gibi görünmüyor mu size de? Bu konuda daha önce uzunca yazdığım için tekrarlamak istemiyorum ama özgür yazılımlar sanki bu topraklarda yazılmış gibi kullanabileceğimiz ve ihtiyaçlarımıza göre özelleştirebileceğimiz yazılımlarken onları kullanmalıyız.

Dünyada durum nasıl?

Dünyaca ünlü, hemen herkesin adını bildiği MIT, Harvard, Yale, Caltech, Purdue, Oxford ve Princeton eposta servisini MS veya Google'a vermiş değil. Bunda da gören gözler için bazı ibretler olmalı.

Konuyla ilgili hala ikna edici olmayan bir yer varsa yorum olarak yazarsanız cevaplamaya çalışayım.

17 Mart 2017 Cuma

Son kullanıcı için özgür yazılım neden önemli? -3-

Meraklısı için bu serinin önceki yazıları: [0], [1], [2].

Özgür yazılımlar doğaları gereği sahipli yazılımlardan daha düşük ücretlerle sahip olunabilir yazılımlardır. Çok büyük oranda ücretsiz olarak kullandığımız özgür yazılımları para verip alsak bile dağıtılmaları ile ilgili bir kısıtlama olmadığından bir kere elde ettiğiniz özgür yazılımı isterseniz satabilir, isterseniz ücretsiz dağıtabilirsiniz. Peki bir sahipli yazılıma para verdiğinizde aslında neye sahip olursunuz? Yazılımı kurarken kabul edip devam ettiğiniz son kullanıcı sözleşmelerinde bu durum açıkça belirli ama çoğumuz onları okumadığımız için bir kaç noktaya dikkat çekmek önemli olacak.

Örnek olarak sahipli bir yazılım olan Microsoft Windows 10 işletim sisteminin kullanıcı sözleşmesinde neler olduğuna bakalım:

  • Kullanıcıların önemli bir çoğunluğu yazılım için ödedikleri paranın karşılığı olarak yazılımı satın aldığını düşünür ama bu çoğu durumda doğru değildir. Windows işletim sistemi için ödediğiniz paranın karşılığında "Yazılımın satışı yapılmamakta, lisansı verilmektedir". Eğer satın almış olsaydınız onun nasıl çalıştığını anlamak için istediğiniz amaçla çalıştırabilir, değiştirebilir, dağıtabilir, değiştirdiğiniz halini dağıtabilirdiniz. Örneğin bir otomobil için ödediğiniz bedelin karşılığında aldığınız arabayı kime isterseniz satabilirsiniz, motorunu açıp nasıl çalıştığına bakabilirsiniz, eğer elinizden geliyorsa bütün aksamını ihtiyaçlarınıza uygun değiştirebilir ve bu haliyle satabilirsiniz. Bahsettiğim bu işlemleri yapabileceğiniz yazılımlar özgür yazılımlardır.
  • Parasını ödediğiniz MS Windows işletim sisteminin "yazılımın teknik kısıtlamalarını aşacak çözümler üretmek", "yazılımda tersine mühendislik işlemi yapmak, yazılımı kaynak koda dönüştürmek veya assembler diline çevirmek veya bunları yapma girişiminde bulunmak" ve "yazılımı, ticari barındırma için sunucu yazılımı olarak kullanmak" son kullanıcı sözleşmesiyle yasaklanmış durumda. Bunları elbette çoğu kullanıcı zaten yapmayacaktır ama yapmasının yasak olması farklı bir şey.
  • Yazılımı "yayımlamak, kopyalamak, devretmek veya ödünç vermek" de yasaklananlar arasında. Mesela bir yakın arkadaşınız isterse yazlığınızın veya arabanızın anahtarını kimseden izin almadan verebilirken isteyeceği şey MS Windows olursa ona 'kusura bakma' demeniz bekleniyor. Hatta başka bir bilgisayarınız varsa ona da kurulum yapamazsınız. "Yazılımı yeni bir cihaza her devrettiğinizde, önceki cihazdan kaldırmalısınız". Bu da yetmediyse kurulum yaptığınız işletim sistemi üzerine sanal makineye bile ikinci bir kurulum yapmanıza yine aynı kullanıcı sözleşmesi izin vermiyor.
  • Madem bu kadar kıymetli bir şey diyerek lisansına bu kadar para verdiğiniz yazılımın kopyasını alıp saklamak isterseniz (sadece saklamak için) "yedekleme amaçlarıyla yazılımın tek bir kopyasını oluşturabilirsiniz".
  • Peki bu işletim sistemini kullanırken gizliliğim, güvenliğim ne durumda diye merak ediyorsanız sözleşmede buna da açıklık getirilmiş: "Bu anlaşmayı kabul etmekle ve yazılımı kullanmakla, Microsoft'un Microsoft Gizlilik Bildiriminde (aka.ms/privacy) ve yazılım özellikleriyle ilişkili kullanıcı arabiriminde açıklandığı şekilde bilgileri toplayabileceği, kullanabileceği ve açıklayabileceğini kabul etmiş olursunuz". Bu sözleşmeyi kabul eden birinin 'bilgisayarımdan bazı bilgiler toplanmış ve birilerine verilmiş' diye sızlanmaya hakkı yok çünkü baştan bunu kabul ediyor.
  • Buraya kadarki şartları bir şekilde kabul etmişseniz bile yazılımın sizin ücretini ödeyip lisansını aldığınız şekilde bilgisayarınızda kalacağından da emin olamazsınız. Yine sözleşmede geçen ifadeyle "Bu anlaşmayı kabul ederek, ek bildirim olmaksızın bu tür otomatik güncelleştirmeleri almayı kabul edersiniz". Yani bilgisayarınıza kurduğunuz yazılım yarın bazı işlevleri yerine getirmeyebilir veya bilmediğiniz (aslında kaynak kodu kapalı olduğu için hiçbir zaman bilemeyeceğiniz) yeni işlevler edinmesini sağlayacak bir hale size bir bildirim mesajı bile göstermeden dönüşebilir.
  • Yazılımı kendiniz kullanmaktan vazgeçip başkasına devretmek isterseniz, devredeceğiniz kişinin Amerikanın ticaret ambargosu uygulamadığı bir ülkede yaşamasının gerekmesi de kendi başına kabul edilemez bir durum olmalı normal insanlar için.
Normalde benzer şartları sunan hiçbir ürüne değil para vermek, bedava olsa kullanmayız. Özgür yazılımlar yukarıda bahsi geçen kısıtlamalarla karşılaşmayacağınız, size özgürlükler sunan yazılımlardır.

11 Mart 2017 Cumartesi

Son kullanıcı için özgür yazılım neden önemli? -0-

Meraklısı için bu serinin önceki yazıları burada ve burada.

Her yazılımın mutlaka bir lisansı olur. Bazı yazılımlar kurulum sırasında bir kullanıcı sözleşmesi gösterip onay alırken bazıları lisans metninin bir kopyasını diske kopyalar. Kurulum sırasında gösterilen metinler nadiren okunurlar. Zaten programı kurdum, bunu da onaylayıp geçeyim diye düşünülür çoğunlukla. Bu yazıda son kullanıcı açısından bu sözleşmelerin nasıl önem taşıdığından bahsedeceğiz ama önce çok kısaca güney afrikadan bahsetmek istiyorum.

Bilindiğiniz gibi çok yakın zamana kadar Güney Afrika Cumhuriyetinde siyahilere uygulanan ırkçı uygulamalar yasal desteği olan uygulamalardı. Yani aşağıda fotoğrafını gördüğünüz sadece beyazların oturabildiği banklar, sadece beyaz kadınların girebildiği tuvaletler, sadece beyazların su içebildiği çeşmeler keyfi uygulamalar değil, kanunlarla çerçevesi çizilmiş şeylerdi. 'Bir konunun yasalara uygun olması onu insani yapar mı?' sorusunu yazının sonuna kadar aklınızda tutmanızı isterim.




Burada örnek olarak Adobe Photoshop lisans sözleşmesini veriyorum ama Amerika kökenli firmaların hepsinin ürünlerinde aynı ifadeler mevcut. Yani her Microsoft ürününü kullanırken bu maddeleri onaylamış oluyorsunuz.


Bu sözleşmeyi kabul ederek ABD'nin ihracat kısıtlamasına tabi ülkelerden birinde yaşamadığınızı ve bunlardan birine yazılımı doğrudan veya dolaylı bir şekilde ihraç etmeyeceğinizi kabul etmiş oluyorsunuz. Bu maddenin Amerikan'ın ticaret kanununa uygun olduğuna elbette şüphe yok ama yazılımı kullanmak için (bunlarla sınırlı olmamak kaydıyla) Küba, İran, Kuzey Kore, Suriye veya Sudan'da yaşamadığınızı ve hatta yazılımı doğrudan veya dolaylı bir şekilde oralara ulaştırmayacağınızı beyan etmek insanlığın hangi kanununa uygun?

Tekrar ilk fotoğrafa bakın ve sadece beyazların oturabildiği banklara oturan beyazlar hakkında ne düşündüğünü aklınıza getirin. Az önce siyahilerin oturamadığı banklara ben de oturmam diyordunuz siz de. Peki bin yıldır yanı başımızda yaşayan İranlı kardeşlerimizin kullanamadığı yazılımları kullanıyor olmanın bundan ne farkı var? Yarın Amerika ile aramız kötü olursa bu yazılımları kullanamayacak olmak bir yana konunun nasıl bir ayrımcılık içerdiği herkes için çok açık olmalı.

Sadece beyazların ön koltuklarına oturabildiği otobüsleri kullananlara 'nasıl oldu da kullanabildiniz o otobüsleri?' diye sorabilseydik muhtemelen "başka alternatif yoktu, mecburdum" cevabını alacaktık. Güney Afrika Cumhuriyetinde neler yapılabilirdi ayrı bir yazının konusu ama şurası bir gerçek ki siz mecbur değilsiniz. Özgür yazılımlar herkesin özgürce kullanabileceği seçenekleri sunuyor hepimize.

Önünüzdeki iki otobüs arasında seçim yaparken ikisinin konforunu veya hızını değerlendirme aşamasına geçmeden önce birine sizin gibi olmayanların binemediğini düşünüp öyle seçim yapın. Sıra eğer konforu karşılaştırmaya gelirse özgür yazılımlar bu rekabete çoktan hazırlar.

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.

hoşçakal kardeşim deniz

Nerelisin sorusuna Ankaralıyım demeye utanacak kadar çok zaman Çanakkale'de yaşadım. Hiç kimseyi tanımadan geldiğim bu şehirde harika in...