23 May 2023

Yapay Zekânın Politikliği


OpenAI, ChatGPT’den birkaç ay sonra merakla beklenen GPT-4’ü çıkardı. OpenAI, beş yılda önemli bir yol katetti. GPT (Generative Pre-trained Transformer – Üretken Ön İşlemeli Dönüştürücü) ilk olarak 11 Haziran 2018’de yayımlanan “Üretken Ön Eğitimle Dil Anlayışını Geliştirme” başlıklı makalede tanıtılmıştı. O zamana kadar en iyi sinirsel NLP (Natural Language Processing – Doğal Dil İşleme) modelleri öncelikle büyük miktarlarda etiketlenmiş verilerden denetimli öğrenmeyi kullanıyordu. Bu yaklaşım maliyetli olduğu gibi özellikle açıklaması yeterli olmayan veri setlerinde sınırlı bir performans gösteriyordu. GPT’nin “yarı denetimli” yaklaşımı ise iki aşama içeriyordu. Denetimsiz üretken “ön işleme” aşamasında başlangıç parametrelerini ayarlamak için bir dil modelleme hedefi kullanılıyor. İkinci aşamada ise bir denetimli ayrıştırıcı, parametreleri hedeflenen göreve uyarlayarak ince ayar yapıyor. Kamunun kullanımına açılmayan GPT-1, 120 milyon parametreye sahipti. Modelin eğitiminde çeşitli türlerde 7000 yayınlanmamış kitaptan elde edilen 4,5 GB metin kullanılmıştı. 14 Şubat 2019’da çıkarılan GPT-2 ise 1,5 milyar parametreye sahipti ve eğitiminde Reddit’te oylanan 45 milyon web sayfasından, 40 GB metin ve 8 milyon belgeden yararlanılmıştı. 11 Haziran 2020’de çıkarılan GPT-3’te parametre sayısı 175 milyara ulaştı, eğitiminde kullanılan metin miktarı 570 GB oldu (https://en.wikipedia.org/wiki/Generative_pre-trained_transformer).

Microsoft, GPT-3’ü “yurttaş geliştiriciler” olarak adlandırılan ve çok az programlama deneyimi olan veya hiç olmayan kişilerden ileri düzeyde programlama uzmanlığına sahip profesyonel geliştiricilere kadar herkesin iş üretkenliğini artırmak için uygulamalar oluşturmasına yardımcı olan Microsoft Power Apps platformuna entegre etmeye çalıştı. YZ (Yapay Zekâ) destekli bu sistemde ” ‘çocuklar’ adı ile başlayan ürünleri bul” gibi konuşma dilini kullanarak programlama hedefleri tanımlanabiliyor. Böyle girişimler olunca yazılımcılar ister istemez “YZ işimizi elimizden mi alıyor?” diye sormaya başladılar. Microsoft yöneticilerinden Charles Lamanna, amaçlarının kesinlikle geliştiricilerin yerine YZ’yi koymak olmadığını, dünyadaki sonraki 100 milyon geliştiriciyi bulmak olduğunu söyledi (https://news.microsoft.com/source/features/ai/from-conversation-to-code-microsoft-introduces-its-first-product-features-powered-by-gpt-3/). Ayrıca The Guardian, GPT-3’ü YZ’nin insanlara zararının olmadığını savunan bir makale yazdırmak için kullandı. Bazı fikirlerle beslenen GPT-3 sonunda tek bir makalede birleştirilen sekiz farklı makale üretti (https://www.theguardian.com/commentisfree/2020/sep/08/robot-wrote-this-article-gpt-3). GPT-3’ü belirli konularda içerik üretmek dışında kullanmayı deneyenler de oldu. Drexel Üniversitesi’den bir çalışmaya göre GPT-3, Alzheimer hastalığının erken belirtilerini tespit etmede faydalı olabilirdi (https://journals.plos.org/digitalhealth/article?id=10.1371/journal.pdig.0000168).

27 Temmuz 2022’de protein dizilimlerinde kullanılan ProtGPT2 ve 24 Eylül 2022’de de biyomedikalde kullanılan BioGPT çıktı. İnsanlar dört gözle GPT-4’ü beklerken ChatGPT, 30 Kasım 2022’de bir prototip olarak piyasaya sürüldü. ChatGPT, GPT-3’ün iyileştirilmiş bir versiyonu olan GPT-3,5’e dayanıyordu. Zaman zaman saçmalasa da birçok bilgi alanındaki ayrıntılı ve anlaşılır yanıtlarıyla ilgi odağı oldu. ChatGPT o kadar başarılıydı ki okullar ChatGPT ile kopyaya karşı önlem almak zorunda kaldılar. Şubat 2023’te Hong Kong Üniversitesi öğrencilere ve öğretim elemanlarına derslerde, ödevlerde ve değerlendirmelerde ChatGPT veya diğer YZ araçlarının kullanımının yasak olduğunu belirten bir e-posta gönderdi. Öğrenci, dersin öğretim elemanından önceden yazılı izin almadığı takdirde, herhangi bir ihlalin üniversite tarafından intihal olarak değerlendirileceği belirtildi (https://web.archive.org/web/20230219011809/https://www.scmp.com/news/hong-kong/education/article/3210650/university-hong-kong-temporarily-bans-students-using-chatgpt-other-ai-based-tools-coursework). Aralık 2022’de, yazılım geliştiricilerin en çok ziyaret ettiği sitelerden biri olan Stack Overflow, ChatGPT’nin yanıtlarının olgusal olarak belirsiz doğasını gerekçe göstererek, sorulara yanıt oluşturmak için ChatGPT kullanımını yasakladı (https://www.theverge.com/2022/12/5/23493932/chatgpt-ai-generated-answers-temporarily-banned-stack-overflow-llms-dangers).

14 Mart 2023’te, beklenen an geldi ve GPT-4 sahneye çıktı. GPT-4, ChatGPT Plus’a da eklendi. Ama bunun için ayda 20 dolar ödemeniz gerekiyor. Şu anda sınırlı sayıda kullanıcı GPT-4’ü ücretsiz olarak test edebiliyor. OpenAI, “GPT-4’ün GPT-3.5’ten daha güvenilir, yaratıcı ve çok daha incelikli talimatları işleyebildiğini” öne sürüyor. Ancak GPT’nin önceki sürümlerindeki açıklık GPT-4’te yok. OpenAI, GPT-4’ün teknik detayları konusunda kapalı bir yaklaşım benimsedi (https://www.vice.com/en/article/ak3w5a/openais-gpt-4-is-closed-source-and-shrouded-in-secrecy). Model boyutunu, mimariyi, donanımı veya eğitim yöntemini belirtmekten kaçındı. Şirket bu kararında rekabet ortamı ve büyük ölçekli modellerin güvenlik gerekliliklerinin belirleyici olduğunu belirtti. Microsoft, resmi duyurudan önce Bing arama motorunda GPT-4’ten yararlandığını ve Microsoft 365 Copilot ile GPT-4’ü Word, Excel, PowerPoint, Outlook, Teams vb uygulamalara entegre edeceğini duyurdu. Duolingo da “rol yapma” ve “yanıtımı açıkla” özellikleriyle beraber GPT-4’ü uygulamalarına eklediğini duyurdu.

Cade Metz ve Keith Collins’in The New York Times‘ta yayımlanan incelemelerinde GPT-4’ün etkileyici ama hâlâ açıklarının olduğu belirtiliyor (https://archive.is/fL9jH#selection-815.95-815.105). GPT-4, GPT-3,5’ten farklı olarak görüntüleri girdi olarak kabul ediyor. Kullanıcılar, GPT-4’ten görüntüleri tanımlamasını isteyebilirler. Örneğin OpenAI’ın web sitesinde, sisteme un, yumurta, süt ve yağ içeren bir fotoğraf yüklenmiş ve bu malzemelerle ne yapılabileceği sorulmuş. GPT-4, bu malzemelerle pankek, waffle, krep, Fransız tostu, omlet, kurabiye gibi yapabilecek birçok şey olduğu yanıtı vermiş. The New York Times‘ta yayımlanan yazıda test edilen fotoğraf ise daha karmaşık, bir buzdolabının içi. GPT-4 yine dolapta yer alan içeriğe göre yapılabilecekleri listelemiş. Be My Eyes (https://www.bemyeyes.com/), internette karşılaşılan veya gerçek dünyada çekilen görüntüleri açıklayıcı hizmetler sunmak için GPT-4’ü kullandığını yazıyor. GPT-4’ün yanıtları, GPT-3,5’e göre daha tutarlı. Kuzey Carolina Üniversitesi’nden Doçent Doktor Anil Gehi, GPT-4’e bir gün önce gördüğü bir hastanın tıbbi geçmişini ve hastanın hastaneye kaldırıldıktan sonra yaşadığı komplikasyonları açıklamış. Açıklamasında, sıradan insanların bilemeyeceği birkaç tıbbi terim de yer alıyormuş. Nasıl bir tedavi uygulamaları gerektiğini sorduğunda GPT-4 tam da kendi uyguladıkları tedaviyi ifade etmiş. Gehi, başka vakaları denediğinde de benzer şekilde etkileyici yanıtlar almış. İncelemede, her zaman aynı performansın sergilenmesinin pek olası olmadığı, yanıtları değerlendirmek ve tıbbi prosedürleri uygulamak için hala Dr. Gehi gibi uzmanlara ihtiyaç olduğuna dikkat çekiliyor. GPT-4, GPT-3,5’e göre standart testlerde çok daha başarılı. OpenAI, yeni sistemin 41 eyalet ve bölgede avukatların yeterliliğini değerlendiren baro sınavında ilk yüzde 10’da yer alabileceğini, SAT sınavlarında ise 1600 üzerinden 1300 alabileceğini iddia ediyor. Ancak GPT-4, gerçekleşmiş olan şeyler hakkında akıl yürütüyor izlenimi yaratabilse de gelecek hakkında hipotezler oluştururken yaratıcı (!) değil. Gelecek hakkında daha önce söylenenleri tekrarlıyor; yeni bir şey söylemiyor. Örneğin, önümüzdeki on yılda (GTP-4’ün de bir ürünü olduğu) NLP araştırmalarında çözülmesi gereken önemli sorunların neler olduğu sorulduğunda yeni fikirler ortaya atamıyor. Ayrıca etkileyici performansına karşın GPT-4 hâlâ öncelleri gibi “halüsinasyon” olarak adlandırılan sorunu aşabilmiş değil. Doğru ve yanlış hakkında bir anlayışa sahip olmadığı için tamamen yanlış olan metinler uydurabiliyor. En son kanser araştırmalarını anlatan web sitelerinin adresleri sorulduğunda var olmayan internet adresleri verebiliyor.

GPT-4’e Ne Kadar Güvenebiliriz?

Halüsinasyon, Rebooting AI: Building Artificial Intelligence We Can Trust kitabının yazarlarından Gary Marcus’un uzun bir süredir üzerinde durduğu bir konu. Marcus, GPT’nin muhteşem olmasına rağmen 2022 yılındaki makalesinde belirttiği doğruluk ve güvenilirlik sorunlarını aşamadığını savunuyor. GPT’nin robotlara veya bilimsel keşiflere rehberlik etmek için güvenilir bir şekilde kullanılamayacağı konusunda ısrar ediyor (https://garymarcus.substack.com/p/gpt-4s-successes-and-gpt-4s-failures ).

Ancak medya, coşkuyla tam tersini iddia ediyor ve GPT’nin içsel sorunları yeterli ve açık bir şekilde tartışılmıyor. Bunda YZ şirketlerinin ve bazı bilim insanlarının da payı var. Örneğin, 2016’da Toronto’daki YZ konferansında derin öğrenmenin büyükbabası ve zamanımızın en ünlü bilim insanlarından Geoffrey Hinton, radyologluğun sonunun geldiğini öne sürüyordu. Hinton’a göre derin öğrenme, MRI ve BT taramalarından alınan görüntüleri okumak için o kadar uygundu ki radyolog yetiştirmeyi artık bırakmamız gerekiyordu. Derin öğrenme, beş yıl içinde daha iyi sonuçlar verecekti. Günümüzde gelindiğinde ise yapay öğrenmenin (machine learning – makine öğrenmesi) radyolojide kullanımının göründüğü kadar kolay olmadığı ortaya çıktı. Şimdi insanlar ve makinelerin birbirlerinin güçlü yanlarını tamamlayarak çalışmasının daha verimli olacağı görüşü yaygın. En azından şimdilik!

Marcus (2022), insan dilini gerçekten anlayabilen makinelerden hâlâ çok uzak olduğumuzu ve güvenilir bir yapay zeka elde edeceksek derin öğrenmenin inşa etmemiz gereken şeyin yalnızca küçük bir parçası olduğunu düşünüyor. Marcus’a (2022) göre temelde örüntüleri tanımaya yönelik bir teknik olan derin öğrenme, ihtiyacımız olan tek şeyin kabaca hazır sonuçlar olduğu, risklerin düşük olduğu ve mükemmel sonuçların isteğe bağlı olduğu durumlarda kendini en iyi gösteriyor. Örneğin, akıllı telefonunuzdan tavşan fotoğraflarını listelemesini istediğinizde daha önce hiçbir fotoğrafı etiketlememiş olsanız da telefonunuzdaki YZ, tavşan etiketli fotoğraflara yeterince (!) benzeyen tüm fotoğrafları listeleyebilir. Fakat otomatik, derin öğrenme destekli fotoğraf etiketleme hataya açıktır; ışığın yetersiz, fotoğraf açısının ters vb olduğu durumlarda bazı tavşan fotoğraflarını kaçırabilir. Fakat birkaç fotoğrafı kaçırdı diye kimse zarar görmez ve sinirlenip telefonunu fırlatıp atmaz.

Radyoloji veya sürücüsüz araçlarda olduğu gibi riskler daha yüksek olduğunda, derin öğrenmeyi benimseme konusunda çok daha dikkatli olmamız gerekir. Yapılacak tek bir hata, insanın hayatına mal olacaktır. Özellikle, derin öğrenme sistemlerinin üzerinde eğitildikleri şeylerden önemli ölçüde farklı olan “aykırı değerler” ciddi sorunlar yaratabilir. Örneğin Tesla, “tam kendi kendine sürüş modu”nda, yolun ortasında dur işaretini tutan bir kişiyle karşılaştığında ne yapacağını şaşırdı; insan sürücü, aracı devralmak zorunda kaldı. Çünkü Tesla, ne kısmen dur işaretiyle gizlenmiş insanı ne de yol kenarındaki olağan bağlamının dışındaki dur işaretini tanıyabildi!

Derin öğrenme sistemleri günümüzde hiç beklenmedik anlarda aptalca hatalar yapabiliyorlar. Bazen bir insan radyoloğun bir aksaklık olarak değerlendireceği (görüntüdeki kirlilik gibi) durumlar yanlış okunabiliyor. Radyolojide kullanılan YZ sistemleri çoğunlukla veya tamamen görüntülere dayanıyor. Bir hastanın geçmişini tanımlayabilecek tüm metinleri yeterince anlamadığından bazen kritik bilgileri ihmal ediyor. Dolayısıyla radyologlar tamamen devreden çıkarılamıyor. Bir derin öğrenme sistemi, elmanın önünde üzerinde “iPod” yazan bir kağıt parçası olduğu için elmayı yanlış bir şekilde iPod olarak etiketleyebiliyor. Ya da bir başkası, karlı bir yolda devrilmiş bir otobüsü kar küreme makinesi olarak etiketleyebiliyor. Marcus (2022), yapay öğrenmenin bütün bir alt alanının bu gibi hataları incelediğini, ancak henüz net yanıtlara ulaşamadığını belirtiyor.

Günümüzde bu gibi sorunları daha fazla veri toplayarak aşma doğrultusunda bir eğilim var. Daha fazla veri ve giderek daha büyük ölçeklerde derin öğrenme ile YZ’nin daha iyi hale getirebileceği görüşü yaygın. GPT’nin 2018’den bu yana gelişimi de bu eğilimi haklı çıkarıyor gibi. Fakat 2022’de yayımlanan bir makalede Google, GPT-3 benzeri modelleri büyütmenin onları daha akıcı hale getirdiği, ancak daha güvenilir yapmadığı savunuluyor (https://arxiv.org/abs/2201.08239). Marcus (2022) da devasa ölçeklendirmenin şimdiye kadar bir devrime yol açmadığının altını çiziyor. Marcus’a (2022) göre GPT-4, GPT-3 ve 3.5’ten açıkça daha iyi, ama bu fark nitelik değil, nicelikle ilgili. Güvenilirlik sorunu hâlâ devam ediyor.

Ayrıca OpenAI’ın GPT’nin son sürümünde seçtiği yol da endişe verici. Kullandığı veri seti hakkında bir açıklama yapmaktan kaçınması adındaki açıklıkla çelişiyor. Ne kadar büyük olduğunu, mimarisini, ne kadar enerji kullandığını, kaç tane işlemci kullanıldığını bilmiyoruz. Eğitim setinde ne olduğu hakkında hiçbir fikrimiz olmadığı için GPT-4’ün hangi problemler üzerinde çalışıp hangilerinde çalışmayacağını tahmin etme şansımız yok (https://garymarcus.substack.com/p/gpt-4s-successes-and-gpt-4s-failures). Ayrıca GPT-4’ün çevreye maliyetini de bilmiyoruz (https://www.birgun.net/haber/yapay-zeka-hakkinda-cok-az-konusulan-onemli-detaylar-424486 , https://www.theguardian.com/commentisfree/2023/mar/04/misplaced-fears-of-an-evil-chatgpt-obscure-the-real-harm-being-done).

Kuşkusuz GPT-4 ve sonraki modellerin önemli ticari etkileri olacak. Google (https://digiday.com/media/googles-new-ai-tools-and-openais-gpt-4-bring-more-maturation-to-the-ai-race/), Yandex, (https://www.siliconrepublic.com/machines/yandex-large-language-model-ai-gpt) ve Baidu’nun da benzer çalışmaları var (https://tr.euronews.com/2023/02/07/chatgptye-buyuk-rakipler-geliyor-cinli-baidudan-ernie-bot-ve-googledan-bard). Ancak Kasım 2020’de MIT Technology Review‘de yayımlanan röportajda “derin öğrenme her şeyi yapabilecek.” (Hao, 2020) diyen Hinton’un sözlerini oldukça tehlikeli görüyorum.

YZ, henüz her şeyi yapamasa da şirketler ve onların ikna ettiği bürokratlar bu kontrolsüz gücü çeşitli alanlarda kullanmaya fazla istekliler. Bu süreçte, doğruluk ve güvenilirlik hakkındaki zaafların yanında bir diğer büyük tehlike sistemlerin tasarımlarında yer alan insan seçimlerinin politik karakterinin belirsizleştirilerek gizlenmesi.

Verimlilik ve Adalet Beklentisi

Gündelik hayatta aldığımız birçok karar düzenliliklere veya örüntülere dayanır. Örneğin, hava kapalıysa yağmur yağabileceğini düşünür ve evden çıkarken yanımıza şemsiye alırız. Yapay öğrenmenin temelde yaptığı bu süreci otomatikleştirmektir. Veri setlerindeki yapılara ve örüntülere dayalı olarak hedeflenen bir sonuç hakkında tahminler yapmak için bir model geliştirilir. Daha sonra bu model ile öngörülerde bulunulur. Bunun zekâ olarak tanımlanıp tanımlanamayacağı ya da zekânın ne olduğu ayrı bir tartışma konusu. Fakat günümüzde kullanılan YZ destekli sistemlerde zekânın öngörü öğesi öne çıkar:

Çocuk soru sorduğu zaman Alexa’nın yaptığı şey, aslında duyduğu sesleri alarak konuşulan kelimelerin ne olduğunu anlamak ve ardından bu kelimelerin bulmak istediği bilgiyi öngörmekti. Alexa, Delaware’in başkentinin neresi olduğunu “bilmiyor” ama insanlar böyle bir soru sordukları zaman özel bir yanıtı yani “Dover”ı aradıklarını tahmin edebiliyor (Agrawal, Gans ve Goldfarb, 2019).

Agrawal vd. (2019) öngörüyü,eksik bilgilerin tamamlanması olarak tanımlıyor. Agrawal vd.’nin (2019) öngörü makineleri olarak adlandırdığı YZ sistemleri genellikle veri olarak adlandırılan bilgilerimizi alıyor ve onu sahip olmadığımız bilgileri oluşturmak için kullanıyor. Daha iyi öngörü, daha iyi bilgi ve bu da daha iyi karar anlamına geliyor. Öngörü makinelerindeki gelişmeler, onları sihirliymiş gibi gösteriyor. Öngörü maliyetlerindeki düşüşler, çeşitli sorunları bir öngörü sorununa indirgemeye ve çözümler geliştirmeye olanak veriyor. Böylece makineler görebiliyor (nesne tanıma), navigasyon kullanabiliyor (sürücüsüz arabalar), çeviri yapabiliyor veya sohbet edebiliyor.

Fiziksel dünyamız, sayısal verilere dönüştürülüyor; davranışlarımızın sürekli ölçülüyor, kaydediliyor ve sonraki adımlarımız tahmin edilmeye çalışılıyor. Şirketler, daha fazla veri toplayarak daha mükemmel sistemler geliştirmeye çalışıyorlar. Dünyanın en büyük teknoloji şirketlerinin gücü, daha gelişmiş yapay öğrenme tekniklerine değil, sahip oldukları veri hacmine ve daha fazlasını toplayabilme hızına ve verimliliğine dayanıyor.

Hinton’un sözlerini tehlikeli bulmamın nedeni ise kurumların son yıllarda tahmine dayalı araçlarla desteklenen karar süreçleri oluşturması veya kurumların yerlerini YZ destekli sistemlere bırakmasını savunan tezlerin yaygınlaşması. Bu tezlerin temelinde yapay öğrenmenin iki temel vaadi öne çıkıyor: verimlilik ve adalet. Danışmanlık şirketi McKinsey, yapay öğrenmenin sunduğu verimlilik kazanımlarının küresel değerinin 6 trilyon dolar değerinde olduğunu tahmin ediyor. McKinsey’e göre yapay öğrenmeyi aşağıdaki alanlarda kullanarak verimliliği artırmak mümkün:

  • Derin öğrenmenin büyük miktarlarda ses ve görüntü verilerini analiz etme yeteneğinden yararlanarak fabrika montaj hatlarında veya uçak motorlarında ortaya çıkabilecek anomaliler öngörülebilir.
  • Lojistikte, teslimat trafiğini optimize ederek, yakıt verimliliği artırılabilir ve teslimat süreleri azaltılabilir.
  • Perakende satışlarda, müşterilerin demografik ve geçmiş işlem verileri sosyal medya hareketleri ile birleştirilerek, kişiselleştirilmiş ürün önerileri oluşturmaya yardımcı olunabilir.
  • Kamu kurumlarında ise kaynakların ve hizmetlerin nasıl sunulacağını şekillendirerek verimliliği artırabilir. Hatta yapay öğrenme iklim değişikliği ve nüfusun yaşlanması gibi büyük ölçekli toplumsal sorunların ele alınmasında rol oynayabilir.

Yapay öğrenmenin adalet vaadi ise bilgisayar sistemlerinin insanlardan daha nesnel kararlar verebileceği yanılsamasına dayanıyor. Çünkü algoritmalar ne yoruluyor ne de duygusal yük altında ezilerek yanlış kararlar veriyor. İnsanlar çeşitli nedenlerden dolayı vakaları farklı değerlendirirken, yapay öğrenme modelleri daha tutarlı tahminler üretiyor ve vakaları farklı değerlendirirken yalnızca istatistiksel farklılıkları dikkate alıyorlar.

Ama istatistik ve bilgisayar bilimi diline gömülü verimlilik ve adalet vaadinin altında çoğu zaman atlanan bir gerçek var: Yapay öğrenmenin politikliği. Tahminler oluşturmak için verilerin nasıl kullanılacağı ve tahminlerin karar vermek için nasıl kullanılacağı hakkındaki seçimler, bazı çıkarları ve değerleri diğerlerine göre önceliklendirir. Ayrıca yapay öğrenme, kararların alınabileceği ölçeği ve hızı artırdığı için milyonlarca insanın hayatını etkileyebiliyor. Yapay öğrenme, insanların kararlarını etkilemekle kalmıyor karar prosedürlerinin nasıl yapılandırıldığına ilişkin seçimler yapmalarını da sağlıyor. Yapay öğrenmenin politik karakterini dikkate almadan ve farklı aşamalarında ona eşitlikçi bakış açısıyla müdahalelerde bulunmadan kendiliğinden olumlu bir tablo orta çıkmayacak.

Farklı Seçenekler, Farklı Sistemler

Öngörüye dayalı araçların nasıl çalıştığı, onları nasıl tasarlandığına ve kullanıldığına bağlı. Yapay öğrenme, öncelikle insanlar tarafından geliştirilen ve insanlar tarafından tanımlanan sorunları ele alan bir dizi teknikten meydana geliyor. Ayrıca yapay öğrenme modelleri eğitilirken insanlar tarafından bir araya getirilen ve oldukça insani bir dünyanın yapılarını, fırsatlarını ve dezavantajlarını yansıtan veri setleri kullanılıyor. Kısacası öngörü, her türlü öznellikten arınmış cam bir fanusta gerçekleşmiyor.

Yapay öğrenme sürecinde yer alan seçenekleri iki başlık altında inceleyebiliriz. Birincisi, yapay öğrenme modelinin tasarımı hakkındaki seçenekler. Örneğin, modelin tahmin etmeyi öğreneceği sonuçlar, modelin eğitiminde kullanılacak veriler, modelin sonucu tahmin etmek için kullanacağı öznitelikler ve modeli oluşturmak için kullanılacak algoritma tasarım aşamasında verilmesi gereken kararlardır. İkincisi, geliştirilen yapay öğrenme modelinin konuşlandırılması veya tahminlerin karar vermek için nasıl kullanılacağı hakkındaki seçeneklerdir: Model insan kararlarını desteklemek için mi yoksa onların yerini almak için mi kullanılacaktır? Kararlar, hangi eylemleri doğuracaktır?

Tasarımsal Seçenekler

Bir yapay öğrenme sisteminde öncelikle modelin öngöreceği çıktılara karar vermek gerekir. Bu çıktı basitçe bir e-postanın istenmeyen e-posta (spam) olup olmadığına karar vermek olabilir. Ya da model, bir adayın iyi bir çalışan olup olmayacağı, hükümlünün şartlı salıvermeye uygun olup olmadığı gibi daha karmaşık hedeflere sahip olabilir. Analist, nicelleştirilebilen, ölçülebilen ve öngörülebilen bu çıktı için hedef değer adı verilen bir vekil tanımlamalıdır. Bir diğer deyişle analist, gerçek dünyadaki bir sorunu bir hedef değişkene dönüştürebilmelidir (Simons, 2023).

Bir e-postanın spam olup olmadığını belirlemek kolaydır. Bunun için daha önce spam olarak etiketlenmiş e-postalar kullanılabilir. Böylece yeni e-postaların önceden spam olarak etiketlenmiş olanlarla benzer özelliklere sahip olup olmadığına bakmak yeterli olacaktır. Ancak belirsiz bir sorunu hedef değişkene çevirmek genellikle karmaşıktır. Bir banka, bir bireyin kredi için güvenilir olup olmadığına ve faiz oranına nasıl karar vermelidir? Güvenilirlik (krediye uygunluk), gerçek dünyada tam karşılığı olmayan belirsiz bir hedeftir. Güvenilirlik, bankalar, düzenleyiciler ve kredi endüstrisi tarafından, değişen koşullara ve alınabilecek risklere göre yeniden tanımlanan bir kavramdır. Modelin hangi hedef değişkeni tahmin etmeye çalıştığı ve çıkan tahminlerin kredi kararlarında kullanım biçimi, kimlerin kredi alabileceğini şekillendirir (age).

Hedef değişkenleri tanımlamak her zaman yargı içerir. Örneğin, bir işverenin yapay öğrenme yardımıyla en iyi çalışanları seçmeye çalıştığını düşünelim. İyi bir çalışan kimdir? Belirli bir zaman diliminde en fazla satışı yapan veya en çok üreten midir? Bir işte en fazla kalan mıdır? Belki de takım ruhuna en uygun kişidir? En iyi çalışanın kim olduğu şirketin hedeflerine göre değişecektir. Şirket, gelirini artırmak, daha çok üretmek, personel değişim oranını azaltmak veya şirket ruhunu güçlendirmek istiyor olabilir. Şirketin hedefine göre iyi çalışan tanımı değişecek ve bu da farklı sonuçlara neden olacaktır. İşverenin hedef değişkeni adayın bir işte kalacağı tahmini süre olarak tanımladığını varsayalım. Ortalama olarak erkekler bir pozisyonda kadınlardan daha uzun süre kalma eğiliminde olduklarından erkekler daha avantajlı olacaklardır. Ya da işveren, adayın kişilik tipini göz önünde bulundurarak bir seçim yapmaya çalışabilir ve bunun için Myers-Briggs testinden yararlanabilir. Fakat ilgili testte kişilik tipleri, cinsiyetler arasında eşit olmayan bir şekilde dağıldığından yine cinsiyetler arasında bir eşitsizliğe neden olacaktır (age).

İkinci seçim, modelin eğitilmesi için kullanılacak veya toplanacak verilerdir. GPT-4’ün önceki modellerin aksine eğitim verisi hakkında bilgi vermekten kaçınması ciddi bir sorundur. Yapay öğrenme, verileri kullanarak öngörüde bulunur. Verinin bir kişinin nerede yaşadığı, ne kadar kazandığı veya hangi sosyal yardım programlarını kullandığı gibi olgulardan oluşan nesnel betimlemeler olduğu varsayılır. Fakat veriler, gerçekliğin sabit temsillerini değil, neyin ve nasıl ölçüleceğine ilişkin insan seçimlerini yansıtır (age).

Ayrıca sahip olunan veri miktarının fazlalılığı karmaşık örüntüleri tespit etme ve bu örüntüleri öngörü, şekillendirme ve kontrol amacıyla kullanma olanaklarını artırır. Google, milyarlarca etiketli örnekten oluşan bir veri seti oluşturabildiği için istenmeyen e-postaları tespit etmede iyidir.

Eğitim verileriyle ilgili seçimler, bir modelin ne öğrendiğini belirler. Bir hedef değişkeni tanımlarken yapıldığı gibi veri setlerini bir araya getirmek, yorumlamak ve muhakeme yapmak gerekir. Veri, yaygın düşüncenin aksine olguları değil muhakemeleri temsil eder. Neyin ölçüleceğine ve neyin ölçülemeyeceğine ilişkin seçimler iktidar yapılarıyla bağlantılıdır. Kurumlar, kayıtlı ekonomiye giremeyenler hakkında veri toplama konusunda daha başarısızdır. Ayrıca veri üretme olasılığı en düşük olanlar genellikle toplum tarafından en çok dışlananlardır. Simons (2023), Street Bump örneğini verir. Street Bump, Boston’daki çukurları tespit etmek için akıllı telefonlardaki ivme ölçerleri kullanan bir uygulama. Uygulamanın en etkili çalıştığı yerler bir çok insanın akıllı telefona sahip olduğu ve zaten daha az çukurun yer aldığı daha zenginlerin yaşadığı mahallelerdir. Akıllı telefon kullanımının düşük olduğu yerler hizmete en çok gereksinimi olan yerler olmalarına karşın veride temsil edilememiştir.

Bir grubun veride daha fazla ya da eksik temsil edilmesi veriden elde edilebilecek sonuçları da etkiler. Allegheny’de (Pensilvanya) kullanılan AFST’nin (Allegheny Family Screening Tool – Allegheny Aile Tarama Aracı) kullandığı algoritma bir çocuğun istismara veya ihmale maruz kalma riskini tahmin ediyor. Algoritmanın orijinal halinde eğitim veri setindeki değişkenlerin dörtte biri yoksulluk ölçütleriyken, diğer dörtte biri çocuk adalet sistemiyle ilişkiliydi. Sonuç olarak AFST, orantısız bir şekilde düşük gelirli, Afrikalı Amerikalı hane halklarını temsil eden veriler üzerinde eğitilir ve özel sağlık sigortası gibi daha varlıklı, beyaz ailelerin ürettiği türden verileri algoritmaya katmaz.

Tasarım aşamasındaki üçüncü seçim bir modele dahil edilecek öz niteliklerdir. Veriler hiçbir zaman bir kişinin karmaşıklığını tam olarak yansıtamaz. Çünkü bir öznenin tüm özelliklerini toplamak veya tüm çevresel faktörleri bir model içinde hesaba katmak genellikle imkansızdır. Bu nedenle işletmeler ve kamu kuruluşları gerçekliği vekil verilerle çözümlerler. Örneğin, siyah ailelerin araba sigortası oranları, şehir içi mahallelerden banliyölere taşındıklarında genellikle önemli ölçüde düşer. Çünkü sigorta şirketleri, risk için vekil olarak posta kodu gibi indirgeyici özellikleri kullanırlar. Sigorta oranları, kendi bireysel riskiniz kadar sizin gibi başkalarının riskine göre belirlenir (age).

Irk gibi korunan özelliklerin bir modele dahil edilip edilmediği genellikle yapay öğrenmede çok az fark yaratır. Çünkü diğer değişkenler, korumalı sınıfların üyeleri hakkındaki bilgileri kodlar. Bu nedenle, yapay öğrenme yasayla korunan gruplar hakkındaki örüntüleri de keşfedebilir. Bir modelin, bir çocuğun istismar riski altında olup olmadığını veya işe başvuran bir kişinin iyi bir çalışan olup olmayacağını tahmin etmek için hedef değişkene göre insanları sıralamak için kullandığı özellikler, genellikle bireyleri belirli bir sınıfa üyeliklerine göre de sıralar. Belirli bir öz nitelik bir popülasyonda eşit olmayan bir şekilde dağılmışsa, yapay öğrenme algoritması da bu dağılımı yansıtacaktır.

Dördüncü seçim, yapay öğrenme modelinin hangi algoritmayı kullanacağı ile ilgilidir. Yapay öğrenmede genellikle karmaşıklık, doğruluk ve hata oranları arasında bir dengeleme yapmak gerekir. Örneğin bazı modeller daha doğru sonuç verseler de çocuk koruma gibi yüksek riskli ortamlarda yönetimi, bakımı ve yorumlanması daha kolay olan modeller tercih edilebilir (age).

Yapay Öğrenme Modelinin Konuşlandırılması

Bir modeli konuşlandırırken başlıca seçim, modelin öngörülerinin nasıl kullanılacağıdır. İş başvurularını değerlendiren bir modeli ele alalım. Modelin işe başvuranları sıralaması ve ilk yarının otomatik olarak mülakatlara davet edilmesi istenebilir. Ya da modelin sıralaması kimin mülakata davet edileceğine karar veren yetkiliye sunulur.

Bir yapay öğrenme modeli devreye alındıktan sonra, personelin modelin öngörülerine karşı kararlar alabilmesine izin verme ihtiyacı ile yüksek kesinlik oranına sahip modelin değerlendirmelerine güvenme ihtiyacı arasında sürekli bir gerilim vardır. YZ’nin insanların yerini almayacağı ama insanların YZ ile birlikte çalışma yeteneklerini geliştirmesi gerektiği söylenir. Ancak ya AFST’de olduğu gibi çalışanlara profesyonel muhakeme yapma ve sistemlerin tahminlerini göz ardı etme konusunda daha az inisiyatif verilir ya da çalışanlar risk almak istemediklerinden sistemlerin çıktılarını artık kabullenmeye başlarlar.

***

Veriler sosyal dünyamızın yapısını yansıtır. Öngörü için verilerin nasıl kullanıldığı (yapay öğrenme modellerinin tasarımı) ve öngörülerin nihai kararı nasıl etkilediği (yapay öğrenme modellerinin konuşlandırılması) kaçınılmaz olarak politik bir karaktere sahiptir. Yapay öğrenme, bilgisayar bilimciler tarafından yürütülen teknik bir süreç olduğu için, altta yatan ahlaki ve politik seçimleri gizleyebilir. Ancak öngörü araçlarının tasarımı ve kullanımıyla ilgili seçimler bazı insanlara yarar sağlarken bazılarına zarar verir. Bazı değerler için uygun bir ortam hazırlarken diğerlerini gölgede bırakır. Yapay öğrenmedeki seçimler iki açıdan politiktir. Birincisi, bazı sosyal grupların çıkarlarını diğerlerine göre önceler. Seçilen hedef, değerler veya eğitim için kullanılan veriler belirli bir sınıf, ırk, etnik grup veya cinsiyete mensup kişileri dezavantajlı konuma getirebilir. İkincisi, oluşturulan modeller bazı değerleri desteklerken diğerlerinin önüne geçer. Eşitsiz ve adaletsiz bir dünyada, yapay öğrenme modellerinin tasarımında bazı ilgi ve değerlerin diğerlerine göre önceliklendirilmesinden kaçınmanın kolay bir yolu yoktur (age).

GPT-4 ve onu takip edecek sistemler Yapay Genel Zekâ değil ama bu haliyle bile bir çok yerde çığır açabilecek düzeydeler. OpenAI yola çıkarken “dijital zekayı, finansal getiri sağlama ihtiyacıyla sınırlandırılmadan, bir bütün olarak insanlığa en çok fayda sağlayacak şekilde ilerletmek” için araştırma taahhüdünü beyan etmişti. Ama GPT-3 ile beraber önce kaynak kodunun paylaşılmaması, şimdi de sistem hakkında paylaşılan bilginin çok sınırlı olması gelecek için endişe verici.

YZ sistemleri, hayatın her alanına yayıldıkça bu sistemlerin kararlarından etkilenenlerin sistemin tasarımında ve konuşlandırılmasındaki seçimler hakkında bilgi sahibi olma hakları ve karar sürecine katılım hakları olmalı. Bu yüzden şirketlere karşı yurttaşların mahremiyetinin veya şirketler arasındaki rekabetin korunmasında hakemlik yapan devlet yerine teknolojinin tasarım ve konuşlandırılmasında yurttaşları sürecin bir parçası olarak gören kurumlara ihtiyaç var.

Kaynaklar

Agrawal A., Gans J., Goldfarb, A. (2019). Geleceği Gören Makineler. (çev. M. Ürgen).İstanbul: Babil Kitap, 1. Baskı

Hao, K. AI pioneer Geoff Hinton: “Deep learning is going to be able to do everything.” MIT Technology Review (2020).

Marcus, G. (2022). Deep learning is hitting a wall. Nautilus, Accessed, 03-11.

Simons, J. (2023). Algorithms for the People: Democracy in the Age of AI. Princeton University Press.



09 June 2022

13 June 2021

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!



18 May 2021

04 May 2020

15 February 2020

Python ile ufak bir resim boyutlandırma betiği


Pampalar şimdi malumunuz ben linux kullanıcısıyım bu blogumdan da belli oluyordur. :P Ama tamamen alışkanlık ve kod yazmayı sevmekten dolayı konsol kullanmasını seviyorum. Geçenlerde okulda bi resim boyutlandırma ve video çevirme işlemi lazım oldu windowstaki gibi iki saat programlarla cebelleşmek yerine hemen konsoldan birer satırlık (ffmpeg ve imagamagick şahaneleri ile) kodla işimi gördüm. Burda amaç havalı görünmek değildi işi hızla bitirmekti.

Müdür yardımcımız hemen yapıştırdı siz linux kullanıyonuz ya dedi :) yani konsol falan :) Bunun konsol haricinde de yapılabildiğini anlattım ama seviyorum böyle dedim ama yine de tuttum bir de python betiği yazdım.
Adını da feriha koymadım pyresim koydum ( isim bulamadım salladım) github a da koydum ha :) alın bakın kullanın falan diye :)
https://github.com/birtanyildiz/pyresim





18 August 2019

26 January 2019

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

21 December 2018

Hangi Masaüstü Ne Kadar Türkçe Konuşuyor? -11-


Büyük masaüstü ortamlarının Türkçe çeviri oranları hakkında en son bir yıl önce yazdığımdan son durumu tekrar gözden geçirmek istedim. Özgür yazılımlar için genel olarak Türkçe çeviri eksikliğinin kullanıma engel olmayacak durumda olduğunu söylemek mümkün. Bu çevirilerin çok az sayıda gönüllüyle sürdürüldüğünü hatırlatmak isterim. Çeviri oranlarının yüksek olması sanki bu konuda yapılacak bir şey kalmamış izlenimi doğursa da yazılım çevirisi süreklilik isteyen bir alan.

KDE: Geçen yıl %94 olan Türkçe çeviri oranı %82'ye gerilemiş durumda. Uzun yıllar boyunca hiç çevirilmemiş olan yardım içeriği geçen yıl bir atılımla %8 seviyesine ulaşmıştı. Bugün bu oranın %22 olması güzel ama yapılması gereken çok şey var bu konuda.

GNOME: Geçen yıl %99 olan arayüz çevirileri hala %99'da. Aradan geçen bir yılda eklenen her şeyin çevrildiği anlamına geliyor bu. Yardım içeriği hiç çevrilmeden duruyor. Bu konuda enerji ve motivasyon bulmak gerçekten çok zor.

Enlightenment: Geçen yıl %73 olan çeviri oranı %100'e ulaşmış durumda.

XFCE: Geçen yıl tamamı çevrilmiş olan xfce projesinin bugünkü çeviri oranı yine %100 seviyesinde.

LXDE: Geçen yıl olduğu gibi %100 çeviri oranına sahip.

LibreOffice: Özgür ofis paketi olan LibreOffice çevirileri de geçen yılın oranlarına çok yakın. Kullanıcı arayüzü %99, yardım içeriği ise %92 oranında Türkçe kullanılabilir durumda.

Bu çalışmaları sürdürenlerin ellerine sağlık!



11 December 2018

"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.

04 December 2018

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

29 October 2018

Linux için F5 Ssl Vpn Client i Kurulumu ve Kullanımı


Windows için Windows Store da, android için Google Play de client i bulunan F5 Ssl VPN linux için herhangi bir repo ya katılmış gözükmüyor. Eğer siz de benim gibi linux kullanıcısı iseniz, kuruluşunuz tarafından size verilen vpn geçidi adresine firefox ile eriştiğinizde karşınıza çıkan sayfaya kullanıcı adı ve şifreniz ile giriş yapabilirsiniz.

Giriş yaptığınızda karşınıza şöyle bir sayfa çıkacak
Bu sayfada işaretli olan yerden manual olarak yüklemeyi seçip indirdiğiniz tgz uzantılı dosyayı açtığınzda
karşınıza şu dizin gelecek. Burada sağ tıklayıp terminalde açtıktan sonra;

sudo ./Install.sh 
komutu ile kurulumu başlatabilirsiniz. sadece bir kere kurayım mı diye soracak size "yes" yazıp entera basıp geçtikten sonra vpn clientiniz hazır. Kullanmak için sadece komut satırında (terminalde)

sudo f5fpc -s -t "https://sslvpnadresiniz.com"

yazarak başlatmanız

sudo f5fpc --stop 

yazarak durdurmanız mümkün olacaktır.

Detaylı bilgi için f5fpc --info yazmanız yeterli....

Kolaylıklar dilerim.



Zemberek 0.16.0 Text Normalizasyonu ve gRPC sunucusu


Zemberek NLP 0.16.0 yayınlandı.  Bu sürümdeki yeni özelliklerden bazıları:

Metin Normalizasyonu
Bu özellik ile sosyal medya, forum ve mesajlaşma yazlımlarında kullanılan cümlelerdeki hatalar düzeltilmeye çalışılır. Bu işlem, metne daha sonra uygulanacak işlemlerin başarımını arttırabilir. Örnek:

Yrn okua gidicem
yarın okula gideceğim

Tmm, yarin havuza giricem ve aksama kadar yaticam :)
tamam , yarın havuza gireceğim ve akşama kadar yatacağım :)

ah aynen ya annemde fark ettı siz evinizden cıkmayın diyo
ah aynen ya annemde fark etti siz evinizden çıkmayın diyor
Bu ilk denememiz olduğu için sıklıkla hata yaptığı durumlar olacaktır. Detaylar için dokümantasyona bakınız.

gRPC sunucusu
gRPC, açık kodlu, yüksek hızlı bir uzaktan fonksiyon çağrı mekanizmasıdır. Zemberek fonksiyonlarının bir kısmına başka programlama dillerinden hızlı erişim sağlamak için kullanılabilir. Bu ilk sürümde grpc sunucusu ve kısıtlı fonksiyonlara python ile erişim kütüphanesi yayınlandı. Dokümantasyon.

Yeni morfolojik analiz modları:
Normalizasyon türü işlemler için faydalı olabilecek iki yeni analiz modu eklendi. Bunlardan ilki "informal" analiz. Bu şekilde özellikle konuşma dilinde kullanılan "yapıcam, edicem, geliyo, gidek" türü kelimelerin analiz edilip formal şekillerine dönüştürülebilmesi için mekanizmalar hazırlandı. Bu mekanizmanın kapsamını ilerki sürümlerde arttırmayı düşünüyoruz.

Diğer mod ise türkçeye özgü harfleri ihmal eden analiz mekanizması. Bu şekilde "kisi" kelimesi "kişi, kışı" çözümleri bulunabiliyor.

Yeni analiz modları için dokümantasyonu inceleyebilirsiniz.

Bu sürümde önceki sürümlerdeki API'yi bozan değişiklikler de oldu ve bazı hatalar giderildi. Eğer projeyi kullanıyorsanız güncelleme yapmadan değişiklik listesini incelemenizi öneririz. Bu sürümde yardımı olan herkese, özellikle morfoloji hatalarını bildiren Müge ve lm modelindeki problemi gideren bojie'ye teşekkürler.



23 April 2018

01 October 2017

Hangi Masaüstü Ne Kadar Türkçe Konuşuyor? -10-


Dönem dönem düşen masaüstü ortamlarının çeviri oranlarının çok yükseldiği bir zamanda yazabildiğim için mutluyum. Aşağıdaki rakamlara bakınca bir GNU/Linux dağıtımı kullanmanın önündeki (eğer varsa) engellerden birinin yerelleştirme olmadığını rahatça söyleyebiliriz sanırım.

KDE: Geçen yıl %81 olan KDE çeviri oranı büyük bir artış göstererek %94 seviyesine çıktı. Daha önce neredeyse hiç çevirisi olmayan yardım içeriğinin de %8'i Türkçeye çevrildi. Çok yakında daha yükseğe çıkacağını tahmin ediyorum. KDE'nin en çok yerelleştirildiği 12. dil Türkçe.

GNOME: Geçen yıl %90 olan çeviri oranı %99'a yükseldi. Yardım içeriği neredeyse hiç çevrilmeden duruyor.

Enlightenment: Geçen yıl %74 olan çeviri oranı %73'e geriledi.

XFCE: Xfce web sayfası da dahil olmak üzere %100 çeviri oranına sahip.

LXDE: Lxde projesinde yer alan bütün yazılımlar %100 Türkçe çevirisine sahip.

LibreOffice: Özgür ofis paketi LibreOffice'de çeviri durumu çok iyi. Bütün sürümlerin arayüzleri %100 Türkçe'ye çevrilmiş durumda. Yardım içerikleri de %99 civarında yerelleştirildi.

Çevirmenlerin ve onlara destek olanların eline sağlık!

20 September 2017

XXII. Türkiye'de İnternet Konferansı, Akademik Bilişim 2018 ve 3. Kamu Açık Kaynak Konferansı


Türkiye'de İnternet Konferanslarının yirmi ikincisi bu yıl 2-4 Kasım 2017 tarihlerinde Bahçeşehir Üniversitesinde yapılacak.

3. Kamu Açık Kaynak Konferansı ise 25-26 Ekim 2017 tarihleri arasında ATO Congresium'da düzenlenecek.

Yirminci Akademik Bilişim Konferansı için Karabük Üniversitesi ev sahibi olacak ve 31 Ocak - 2 Şubat 2018 tarihlerinde gerçekleşecek.

Bilişim camiasının bu üç büyük buluşmasını takvimlerinize şimdiden işaretleyin de sonradan keşke haberim olsaydı demeyin.

28 May 2017

Ö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

Ö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

17 May 2017

Ö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 2017

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.

04 May 2017

05 April 2017

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.


04 April 2017

Üniversiteler eposta bayrağını nasıl kaybetti?


Üniversitelerin bilgi işlem daire başkanlıkları çoğunlukla kısıtlı personelle ama çok büyük özveriyle çalışan birimleridir. İşler yolunda giderken, yani internet bağlantısında bir problem olmadığında, ne yaptıkları pek anlaşılmaz ama en küçük kesintide hatırlanırlar. Üniversitelerin verdiği servisler çoğunlukla bu özverili personelin öğrenme isteğinden ve merakından kaynaklanır. Amirlerinin çoğunlukla adını bile duymadıkları servisleri kendi kurumlarında etkinleştirmek için hiç karşılığını almadıkları fazla mesailer harcarlar. ULAKBİM'in bilgi işlem personellerini bir araya getirdiği etkinliklerde heyecanla servisleri nasıl ayağa kaldırdığını anlatan çok sunum dinlemiş biri olarak yazıyorum bunları.

On yıl kadar önce neredeyse bütün üniversiteler diğer bütün servisleri gibi kendi eposta servislerini de kendi sunucularında tutarlardı. Zaten çok kısıtlı kaynaklarla çalışan bilgi işlem daire başkanlıkları çoğunlukla GNU/Linux kullanarak verirdi bu hizmeti. Kendi yetişmiş personeli olmasa bile civardaki üniversitelerdeki meslektaşlarından destek alarak bir kere kurulunca kuruma yetecek bir düzen kurulmuş olurdu.

Yukarıdaki cümleler hep geçmiş zamanlı çünkü bugün tablo çok büyük ölçüde değişmiş durumda. Aşağıda ayrıntılarını okuyacağınız gibi üniversiteler bu servisi büyük oranda artık kendileri vermiyorlar. Bir servisi vermek demek onun ayakta durması ve geliştirilmesi sırasında öğrenilecek şeylerle personelin kendisini geliştirmesi de demek olduğundan bilgi işlem daire başkanlıkları bu görevi başkalarına teslim ederken kendilerini de çok şeyden mahrum bırakıyorlar. Durum gerçekten bahsettiğim kadar vahim mi birlikte bakalım.


Bugün itibariyle Yüksek Öğretim Kurulu Başkanlığının bilgilerine göre 183 üniversitemiz var.
  • Bunların 7 tanesinin ya alan adı bile belli değil ya da henüz eposta servisi vermiyor. 
  • 51 üniversite personelinin elektronik postalarını Google'a devretmiş durumda. DNS sunucularına girilen bir kayıtla bütün eposta yönetimi işini Google'a teslim ederek bir odadan diğerine gönderilen epostanın kendi kampüslerindeki sunucuya değil California'ya gidip geri dönmesine neden olmuş durumdalar. Mesafeyi gözünüzde daha iyi canlandırabilmeniz için Mardin'den gönderilen bir epostanın gidip geldiği yolun bir ekran görüntüsü koyuyorum. Bu bağlantı için ödenen bedeli hepimizin vergileriyle yaptığımızı hatırlatmama eminim gerek yoktur.

  • 38 üniversite Microsoft'un çevrimiçi Outlook servisini kullanıyor. Bunu yapan üniversiteler de yine epostaları üzerindeki bütün kontrolü kaybetmiş durumdalar. Aşağıdaki ekran görüntüsü de Şırnak'tan gönderilen epostaların iletim merkezini gösteriyor.

  • 1 üniversite epostalarını Yandex'e, 1'i de Superonline'a teslim etmiş durumda.
  • Epostalarını bulut servislerine vermemiş üniversitelerden 29 tanesi Microsoft işletim sistemleri kullanarak bu servisi kendisi işletiyor.
  • 1 üniversite IBM AIX kullanırken, 2 üniversite de Oracle ile eposta servisini ayakta tutuyor.
  • 4 üniversite eposta servisini FreeBSD/OpenBSD kullanarak kendi sunucularında barındırıyor.
  • Sadece 49 üniversite bu servisi bir GNU/Linux dağıtımı kullanarak sürdürüyor. Bunların 18'inin sayfasından zimbra kullandıkları açıkça görülebiliyor.
Üniversitelerin özgür yazılımlar kullanarak kolayca yönetebilecekleri bu servisi yurtdışındaki bulut servislerine (başkasının bilgisayarına) teslim etmelerinin nedenlerini ve bunun yol açtığı şeyleri de bir sonraki yazıya bırakmadan önce bu bilgilere nasıl ulaştığımı yazayım kısaca: YÖK'ün sayfasından üniversitelerin alan adlarını öğrendikten sonra bir çok alternatifin arasından mxtoolbox'tan eposta sunucusu kaydını sorgulamak için 'MX Lookup' seçeneği kullanılabilir. Bununla google ve MS outlook kullananlar hemen görülebilirken kalanlar için üniversite sayfalarına girip 'eposta' bağlantılarını takip etmek yeterli olacaktır.


22 March 2017

Pardus ne durumda?


Aşağıdaki yazıyı BMO Dergi için yazdım, olduğu gibi buraya da alıyorum. Tek farkı daha fazla bağlantı içermesi.

Pardus başlangıcında kendi özgün teknolojilerini geliştirme hedefinde olan bir GNU/Linux dağıtımı projesiydi. Geliştiricilerinin çok büyük bölümü TÜBİTAK çalışını olan proje kullanıcı tarafında ciddi bir heyecan yaratmıştı. Daha önce hiç GNU/Linux dağıtımı kullanmamış, özgür yazılım kavramından haberi olmayan kullanıcılar bile Pardus’la özgür yazılım dünyasına adım attılar. Bireysel kullanımda bir miktar yaygınlığı olsa bile kurumsal anlamda kayda değer bir yaygınlık elde edemedi, hatta TÜBİTAK kendi bünyesinde bile kullanmadı Pardus’u.

Ülkemizde işletim sistemi ölçeğinde bir yazılım projesinin geliştirilmesi hem özgür yazılım alanında bir bilinç oluşması, hem de bilişim dünyasındaki genç insanlara ‘ben de yapabilirim’ duygusunu vermesi açısından çok önemliydi. Etkinliklerde geliştiricileri görebildiğiniz, hatta katkıda bulunabildiğiniz bir işletim sistemi kullanmak heyecan verici bir şeydi. Proje böyle bir heyecanla devam ederken 2011 yılında geliştiricilerin neredeyse tamamı işten çıkartılınca, TÜBİTAK çalışanı olmayan hiç geliştiricisi kalmamış Pardus’un nasıl sona erdiğini hepimiz gördük. Bu süreçte yaşananlar hakkında çok az yazı yazıldığından tek bildiğimiz projenin durdurulması kararının teknik bir karar olmadığı. 2012 Mart’ında Pardus’un Yarını Çalıştayı adında bir toplantı TÜBİTAK tarafından düzenlendi ve bir şekilde Pardus’la ilgili tarafların fikirleri alındı. Daha sonra bu fikirler değerlendirilmeye alınmadı ama Pardus’un bir işletim sistemi olarak değilse de kendi şemsiyesi altında özgün yazılımlar geliştirilen bir program olarak hayatına devam edeceği mesajını daha o toplantıdan almıştık. [5], [6], [7]

İzlenen yöntem ve geldiği yer açısından çok şey söylenebilecek olsa da Fatih Projesinin ülkemizin en kapsamlı bilişim altyapısı projesi olacağı o zaman da belliydi. Yukarıda bahsettiğim toplantının ardından Fatih Projesi kapsamında okullara verilen etkileşimli tahtalarda Debian paket yöneticisini kullanan bir dağıtımın Pardus adıyla kullanıldığını gördük [8]. Bu Pardus’un o zamana kadar geliştirdiği bütün özgün teknolojilerin kullanılamaz duruma gelmesi anlamına geliyordu. Bu tarihten itibaren Pardus yeni bir yola girdi ve TÜBİTAK bünyesinde yeni çalışanlar işe alarak Debian temelli dağıtımlardan biri oldu.

Mevcut durumda Pardus çok büyük ölçüde Debian paketlerini kullanan bir GNU/Linux dağıtımı. Kendine hedef olarak özgün bir dağıtım hazırlamaktan daha çok kamuda özgür yazılımın kullanımını yaygınlaştırmayı amaçlıyor ve ülkenin ihtiyacı olan yazılımları özgür yazılımlar olarak geliştirmeyi hedefleyen bir programa dönüşmüş durumda [1]. “Bunun yapılması için Pardus tarafından geliştirilen yazılımlardan vazgeçilmesi gerekiyor muydu” sorusu üzerinde tartışılabilecek konulardan biri ama bundan sonra yapılacaklar için bu tartışmanın öncelikli olmadığını düşünüyorum.

Pardus ülkenin hangi ihtiyaçları için özgür yazılım çözümleri geliştiriyor sorusu üzerinde biraz duralım.

Yukarıda da bahsi geçen Fatih Projesi için geliştirilen Etkileşimli Tahta Arayüzü Projesi (ETAP) [2] geliştirilen yazılımların en geniş kullanım alanına sahip olanlarından biri. Yüzbinlerce sınıfta, milyonlarca öğrencinin karşısına çıkacak ilk işletim sisteminin bir özgür yazılım olması çok önemli bir konu [9]. Pardus’un geliştirdiği ETAP bence çok başarılı bir proje. İlk prototiplerinden [10] bu yana takip ettiğim ETAP Fatih projesinin bütün ihtiyaçlarına cevap verebilen modern bir araç durumunda. Umarım Milli Eğitim Bakanlığı Fatih Projesinde özgür olmayan alternatifleri değil de ETAP’ı kullanır. Bu konu işletim sistemine ve onun üzerinde koşacak yazılımlara ödenecek lisans bedellerinin çok fazla olmasından daha çok ülkedeki özgür yazılım bilincinin artması açısından önemli. İlk işletim sistemi olarak sahipli bir yazılımı çocuklarımıza göstermek hem doğru değil, hem de ülke menfaatlerine uygun değil. [11],

Kurumların Pardus veya başka bir GNU/Linux’u işletim sistemi olarak kullanabilmeleri için ihtiyaç duydukları bir diğer proje de merkezi sistem yönetimi yazılımı olan Lider/Ahenk [3]. Kurumsal politika belirleme ve uygulama konusundaki ciddi bir ihtiyaca cevap veren Lider/Ahenk [12] mevcut durumda oldukça kullanılabilir bir ürün. Engerek [13] ve Ahtapot [14] gibi diğer projelere de Pardus’un sayfasından ulaşılabilir.

Kamuda özgür yazılım kullanımına geçiş hedefinin sadece Debian paketleri ve onun üzerinde koşacak kendi yazılımlarımızla gerçekleşmeyeceğini de bilmemiz gerekiyor. İngilizce konuşan dünyadan farklı bir alfabemiz olduğunu ve tek farkımızın da bundan ibaret olmadığını unutmadan yaygın kullanılan özgür yazılım projelerinin geliştiricilerinin de yetiştirilmesi/desteklenmesi gerekiyor. Bir küçük örnekle bunu netleştireyim. LibreOffice 30 yıllık köklü bir özgür ofis programı. Bir kurumun veya kullanıcının ihtiyaçlarına cevap verebilecek durumda ve dünyada çok yaygın kullanılıyor. İngilizce konuşan dünyada yüzde ifadesi 50% şeklindeyken biz %50 olarak yazıyoruz. Bu farklı kullanım LibreOffice belgelerinde sorunsuz kullanılabiliyor çünkü bizden bir geliştirici bunu gördü ve düzeltti [4]. Bir özgür yazılım göçü sırasında böyle çok şeye ihtiyaç duyacağımız ve bunların çözümü için sadece Pardus’un yeterli olmayacağı çok açık olmalı. Tek başına TÜBİTAK’ın veya Pardus’un yapabileceklerinin sınırlı olduğunu göz önüne alıp ülkedeki özgür yazılım ekosisteminin büyütülmesinden başka bir çözümün olmadığını düşünüyorum.

Bugün itibariyle Pardus hedeflerine ulaşmış değil. Henüz kendi projelerine kurum dışından katkı alamadığı gibi sürüm politikaları ve geliştirici belgeleri kamuyla paylaşılmış değil. Bunları gerçekleştirmek için çabalar var ama hızlandırılması ve yoğunlaştırılması gerektiği de açık.

Pardus’un kat edeceği uzun bir yol var ama ülkemizde özgür yazılımın kullanımının arttırılması açısından çok büyük önem taşıyor.

18 March 2017

Kimlik kanıtlamada biyolojik verilerin kullanılması


Güvenli olmayan iletişim kanallarını kullanıp güvenli veri alış verişi yapmak hepimizin isteği. İnternet ve GSM şebekeleri üzerinden yapacağımız haberleşmelerde taraflardan biri olduğumuzu kanıtlamak için kullanıcı adımızın yanında (en az) bir de parola kullanıyoruz. Benzer şekilde banka kartlarımızı yetkisiz bir şekilde eline geçirenlerin de sadece bizim bildiğimiz pin kodunu kartlarla birlikte kullanması gerekiyor. Banka kartlarının diğer kimlik kanıtlama işlemlerinden çok daha az karakterli (4 ile 6 karakter arasında) pin kodlarına izin vermesi ciddi bir sorun oluşturmuyor çünkü deneme yanılma yöntemini kullanmak için çok az (3-4) denemeye izin veriyorlar.

Kırılamayacak parolalar kullanmak gerçekten kolay iş değil (bu konuda daha ayrıntılı bir yazı okumak isteyenlere Murat Demirten'in çok güzel bir yazısını öneririm). Kimlik kanıtlama servisleri bizim iyi parolalar seçmeyeceğimizin farkında olduklarından uzun zamandır başka çözümler peşindeler. İki farklı kanalı kullanarak kimlik kanıtlaması yaptırmak en yaygın kullanılan yöntem. Madem internet bağlantısı güvenli değil, o zaman onu aynı zamanda gsm ile de doğrulamak güvenliği arttırabilir elbette. Tabi biri hem cüzdanınızı hem de cep telefonunuzu ele geçirmişse ve parolalarınızı da biliyorsa veya bulmuşsa bu mekanizmayı da atlatabilir ama tek kanallı kimlik doğrulamadan daha güvenli olduğu da bir gerçek. Konudan biraz uzaklaşıp 'her anahtarın açtığı kilit' haberine bakmak isteyebilirsiniz belki burada ;)

Bir diğer yöntem de kullanıcılara anahtarlığa bile takılabilecek boyutlarda olan ve kısa süreli geçerliliği olan parolalar üretecek cihazlar vermek. Bir dönem bir çok bankacılık sisteminde vardı ama hala kullanılıyor mu bilemiyorum. Cihazın fiziki güvenliğini sağlayabilecekseniz iyi bir çözüm gibi duruyor bu uygulama da.

Hangi yöntemi kullanırsak kullanalım parolalarımızı düzenli aralıklarla yenilememiz saldırganların işini zorlaştıracak bir önlem olacaktır. Aynı anahtarla şifrelenmiş çok sayıda şifreli metin üzerinden yapılabilecek saldırılara bir önlem olacaktır bu işlem. Elbette şifreleme yöntemleri sadece anahtar denemesi yapılarak kırılmıyorlar ama konuyu dağıtmamak için bu konuya girmiyorum.

Kimlik kanıtlamada kullanacağımız parolanın yeniden üretilemez, taklit edilemez bir bilgi olması başta çok cazip görünse de pratikte uygulaması oldukça zor. Parmak izimiz, avuç içi izimiz veya retina görüntümüzün taklit edilemediğini biliyoruz, en azından bugünün bilgisiyle böyle kabul ediyoruz. Durum böyle olunca kapıları açmak için anahtar kullanmak yerine retina taraması yaptırmak veya kredi kartı kullanırken parmak izini okutmak çok parlak bir fikir gibi görünüyor çoğunluğa. Benim çevremde bile cep telefonlarının ekran kilitleri için bile 4 karakterli pin girmek veya bir deseni çizmek yerine parmak izini cihaza okutan çok tanıdığım var.

Peki kimlik kanıtlama verilerimiz nasıl saklanıyor? Yıl 2017 oldu ama hala kullanıcı adı ve karşılık gelen parolayı düz metin olarak saklayan çok fazla yer var maalesef. Eğer bir internet adresi 'parolamı unuttum' linkine tıkladığınızda size parolanızı eposta ile gönderebiliyorsa parolanızı düz metin olarak sakladığından emin olarak o adresten arkanıza bakmadan uzaklaşmanız gerektiğini söyleyebiliriz. Aklı başında olanlar kimlik kanıtlamada kullandığımız verileri veritabanlarında gölgelenmiş, şifrelenmiş olarak saklıyorlar. En kötü senaryo olan saldırganların bu bilgilere ulaşması durumunda bile parolalarımızın gölgelenmiş hallerinin ele geçirilebileceği kabul edilerek güvenlik önlemi alınmış oluyor. Saldırganların hesaplarımıza erişmesi için mutlaka bu gölgelenmiş, şifrelenmiş verileri geri döndürmesi de gerekmiyor çoğu durumda. Bir sözlük atağı ile parolamızı belirlemeleri bir çok durumda mümkün oluyor. Kırılamayan şifreleme yöntemi diye bir şeyin olmadığını aklımızda tutarak bu şifrelenmiş parolaları ele geçirenler karşısında sonsuz güvenliğimiz olmadığını kabul edelim.

İnternet sitelerinde ne kadar önlem alınırsa alınsın parolaların bir şekilde ele geçirilebildiğinin haberlerini hepimiz sıklıkla duyuyoruz. Yahoo'dan Sony'ye varana kadar bir çok şirketin kullanıcı bilgilerini çaldırdığı hakkında haberler okumuş olmalısınız. Hatta bütün vatandaşların TC Kimlik bilgilerinin internetten indirilebilir olduğu haberleri de defalarca yapıldı. Bir sitenin parolaları saldırganlarca ele geçirilmişse mümkün olduğunca çabuk parolalarımızı yenilememizi öneren bir epostalar alıyoruz. Burası çok kritik aslında. Böyle bir eposta alınca '12345' olan parolamızı daha güvenli diyerek '123456' ile değiştirebiliyoruz ama ya ele geçirilen şey parmak izimiz, avuçiçi izimiz veya retina bilgimiz olursa ne yapacağız? Onları değiştiremeyecek olduğumuzu biliyoruz. Eğer kırılan şey bize parola üreten cihaz olsa onun yenilenmişini almak veya parola değiştirmek zaten çok kolay bir şeyler ama değiştiremeyeceğimiz biyolojik verilerimiz başkalarının eline geçtiğinde ne yapacağız? Parmak izimiz çalınınca retina taramasına mı geçeceğiz?

Bizi çaresiz bırakacak bir uygulama olan biyolojik verilerin kimlik kanıtlamada kullanılmasının en kısa sürede önüne geçmek gerekir. Böyle kimlik kanıtlaması yapan hizmetleri kullanmamak, varsa diğer yöntemleri denemek en doğru hareket olacaktır. Bunun ilk adımı olarak telefonlarınıza parmak izi bilginizi kesinlikle vermeyin.