24 July 2021

Veri: Küçük, Büyük ve Açık


Geçtiğimiz günlerde sosyal medya 20’li yaş fotoğraflarıyla doldu. Ulaştırma ve Altyapı Bakan Yardımcısı Ömer Fatih Sayan, Twitter hesabından yaptığı açıklamada “20’li yaşlar challenge” ve benzeri akımlara karşı vatandaşları uyardı. Sayan’a göre kişisel verileri ve yüz ifadelerini kopyalayan akımlar, görsel veri işleme alanına zemin hazırlıyordu (https://www.trthaber.com/haber/bilim-teknoloji/20li-yaslar-challenge-akimina-karsi-vatandaslara-uyari-578985.html):

Kişinin şimdiki haliyle eski halinin değişiminden, yapay zeka algoritmalarını besleyecek istatistiki veriler oluşturuluyor. Aynı zamanda farklı uygulamalar ve cihazlardan paylaştığımız parmak izi ve yüz taraması gibi verilerimiz, genetik verilerimizi barındırıyor. Bu gibi hassas verilerin hangi sunucularda nasıl tutulduğu, yeterli güvenliğe sahip olup olmadığı tam bir kara kutu.

Kişisel verilerimiz; bizi belirli veya belirlenebilir hale getiren, bizi tanımlayan ve bize ait olan bilgilerimiz. Bu sebeple kişisel verilerimizi korurken, özellikle de sosyal medyada paylaşırken daha hassas davranmalıyız.

Sayan’ın uyarılarının önemli olduğunu düşünüyorum. Bu tür akımların nasıl ortaya çıktığını bilmiyorum. Kendiliğinden mi çıkıyor, yoksa veri hasadı için bilinçli olarak mı örgütleniyor? Bu konuda bir şey söyleyemem ama yine de dikkatli olmak gerekiyor. Zaman zaman böyle akımlar ortaya çıkıyor ve bir çok kullanıcı gönül rahatlığıyla fotoğraflarını paylaşıyor. Birkaç yıl önceki bir başka akımda da insanlar on yıl önceki fotoğraflarını paylaşıyorlardı. O zaman da benzer bir tartışma vardı. Yine temkinli davrananlar ve onları boş yere kuruntuya kapıldığı veya komplo teorileri uydurduğu için eleştirenler vardı.

O zaman, bugün de olduğu gibi, dikkatli olmamız gerektiğini savunanlara karşı ileri sürülen en temel tezlerden biri Facebook’un zaten verilerimize sahip olduğuydu. Başta profil fotoğrafımız olmak üzere bir çok fotoğrafımız ellerindeyken bu eğlencenin ne gibi zararı olabilirdi ki? Facebook da bu düşünceyle paralel bir açıklama yaptı. “Fotoğraflar zaten elimizde. Bu akımın bize ek bir katkısı yok.” dediler.

O’Neil (2019) ise aynı fikirde değildi ve bir yüz tanıma algoritmasını yaşa bağlı niteliklere göre eğitmek istediğimizde yeni paylaşılan veya etiketlenen fotoğrafların önemli bir katkısı olacağını düşünüyordu. Evet, Facebook’un elinde geniş bir veritabanı var. Ama bu tür akımlar daha temiz, etiketlendirilmiş eski ve yeni fotoğrafların birikmesini sağlıyor.

Bir diğer eleştiri ise bu fotoğrafların kullanılamayacak kadar çöp veri içerdiğini iddia ediyordu. Ancak O’Neil’in (2019) savunduğu gibi veri araştırmacıları ve bilim insanları bununla baş etme konusunda tecrübeliler. Örneğin son akımda bazı sosyal medya kullanıcıları ilgisiz ve yanlış fotoğraflar (Marlon Brando fotoğrafı yükleyen Milli Eğitim Bakanı Ziya Selçuk gibi) yüklemiş olsa da algoritmalar bu tip gürültüleri tespit edebilirler (Marlon Brando fotoğrafını ayıklamak ilk başta zor olabilir; ama kedi, köpek fotoğraflarını tespiti oldukça kolaydır.). Ayrıca viral hashtag’lerdeki ilk paylaşımların daha güvenilir ve içerikle ilgili olduğu da biliniyordu. İronik ve konuyla ilgisi olmayan paylaşımlar daha sonra ortaya çıkıyordu.

Yeni bir Facebook/Cambridge Analytica skandalı ortaya çıkmadığı sürece ne bugünkü 20’li yaş akımının ne de önceki akımların belirli bir amaç doğrultusunda örgütlendiğini ispatlayabiliriz. Belki yüklenen fotoğraflar, yaşlılık üzerine çalışan bir sigorta şirketinin algoritmasına katkıda bulunacak. Belki zararsız bir oyun. Ama son on yılda, veri çıkarmak ve toplamak için tasarlanmış çok sayıda uygulama gördük. Veri ve verinin halk için kullanımı hakkında daha fazla kafa yormamız gerekiyor.

Veri nedir?

Veri (data) kelimesi, vermek anlamına gelen Latince dare kelimesinden türemiştir. Bu bağlamda veri, olgulardan soyutlanabilen (veya olguların verdiği), çeşitli şekillerde ölçülebilen ve kaydedilebilen ögelerdir. Enformasyonun ve bilginin yapı taşlarını oluşturur. Fakat Kitchin’in (2014), işaret ettiği gibi veride, vermeden çok alma söz konusudur. Asıl yapılan iş tüm potansiyel verilerin toplamından seçme ve seçilenleri bir araya getirmedir. Dolayısıyla veri, doğanın araştırmacıya verdiği bir şey değil, araştırmacının amacına uygun olarak doğadan aldığı ve seçtiğidir.

Kitchin’ın (2014) yazdığı gibi veri; biçimine, yapısına, kaynağına, üreticisine ve tipine göre farklı kategorilere ayrılabilir.

Veri, biçimine göre nicel ya da nitel olabilir. Nicel veriler, sayısal kayıtlardır. Bir olgunun fiziksel özellikleriyle (uzunluk, mesafe, ağırlık, alan, hacim vb) ilgili olabileceği gibi temsili ve olgunun fiziksel olmayan özellikleri (sosyal sınıf, eğitimsel kazanım, yaşam kalitesi sıralaması vb) ile de ilgili olabilir. Bu bağlamda, dört farklı düzeyde ölçümler gerçekleştirilir: Kategorilere dayalı nominal veri (ör.bekar, evli, boşanmış, dul), sıralı veri (düşük, orta, yüksek), aralık verisi (santigrat ölçeği boyunca sıcaklık), oran verisi (0-100 arasında değişen sınav notu). Nitel veri ise metin, resim, ses, müzik ve video biçimindedir. Nitel verinin analizi daha zordur. Ancak son yıllardaki teknolojik ilerlemelerle nitel verinin nicel biçime dönüştürülmesinde kayda değer gelişmeler olmuştur.

Veri; yapısına göre yapılandırılmış, yarı yapılandırılmış veya yapılandırılmamış olabilir. Yapılandırılmış veri, sayı ve metin içeren bir tablo ya da veritabanında saklanabilir. Veri; ad, soyad, doğum tarihi, cinsiyet vb alanlar içerir. Veriyi toplayan kişi ya veriyi tabloda yer alan alanlara göre toplar veya tablo, toplanan veriler göz önünde bulundurularak oluşturulur. Yapılandırılmış verinin işlenmesi, sorgulanması, analizi ve çeşitli grafiklerle sunumu bilgisayarlar için daha kolaydır. Yarı yapılandırılmış veri, tablo veya veritabanlarında tutulan yapılandırılmış veriye göre daha düzensiz, esnek ve hiyerarşiktir. Ama xml ve json belgelerinde olduğu içeriğin standart bir biçimde (format) olması analizi kolaylaştırır:

<ogrenciler>
<ogrenci> <ad>Ali</ad> <soyad>Kara</soyad> </ogrenci>
<ogrenci> <ad>Can</ad> <soyad>Ay</soyad> </ogrenci>
<ogrenci> <ad>Nil</ad> <soyad>Kaya</soyad> </ogrenci>
</ogrenciler>

XML

{“ogrenciler”:[ { “ad”:”Ali”, “soyad”:”Kara” }, { “ad”:”Can”, “soyad”:”Ay” }, { “ad”:”Nil”, “soyad”:”Kaya” } ]}

JSON

Yapılandırılmamış veri ne tanımlanmış bir veri modeline ne de ortak bir yapıya sahiptir. Belirli bir yapıları ve formatları olmasına karşın veri kümesindeki her veri aynı özelliklere sahip değildir. Daha çok metin, resim, video gibi nitel verilerdir. Son yıllarda sosyal medyaya yüklenen resimler ve gönderilen yazılarla özellikle yarı yapılandırılmış ve yapılandırılmamış veri artmaktadır. Artan veri bir yandan gelişen teknoloji yardımıyla analiz edilirken diğer yandan söz konusu teknolojinin daha kusursuz çalışmasına yardımcı olmaktadır. Dolayısıyla yüklenen resimler sadece analiz edilmemekte, algoritmaların analiz yeteneğini artırmak için de kullanılmaktadır.

Kaynağına göre sınıflandırılan veri ele geçirilmiş, tüketilmiş, geçici ve türetilmiş olabilir. Veri ele geçirme; gözlem, anket, deney, kayıt tutma, kameralar, algılayıcılar aracılığıyla gerçekleşir. Burada en baştan yararlı veri elde etme niyeti vardır. Tüketilmiş veri ise asıl amaç değil, bir yan üründür. Örneğin bir cihaz veya sistemin asıl işini yaparken ürettiği veri stok takibi, çalışanların performansını ölçmek veya müşterilere yeni ürünler önermek için kullanılabilir. Dijitalleşmeyle beraber bu tipte veride önemli bir artış olmuştur. Fakat çeşitli cihaz ve sistemlerin çalışırken ürettikleri veriler her zaman işe yarar olmayabilir. Bazen o kadar çok veri vardır ki bu veriyi saklamak veya işlemek için gerekli araçlar olmayabilir ya da çok az bir yarar için bu kadar zahmete girmenin bir anlamı olmaz. Bu tip veriler de geçici veriler olarak adlandırılır. Fakat değişen koşullara göre geçici veriler yararlı veya yararlanılabilir hale gelerek tüketilmiş verilere dönüşebilir. Bu bağlamda, ele geçirilmiş ve tüketilmiş veriler ham verilerdir. Türetilmiş veri ise ham verinin işlenerek veri miktarının daha yönetilebilir, anlamlı ve yararlı hale getirilmesiyle elde edilir.

Veri, üreticisine göre birincil, ikincil veya üçüncül olarak adlandırılabilir. Birincil veri, bir araştırmacının kendi araştırması dahilinde üretilir. İkincil veri, başkalarının yeniden kullanımı ve analizi için sunulan verilerdir. Üçüncül veriler, sayımlar, kategoriler ve istatistiksel sonuçlar gibi türetilmiş verilerin bir biçimidir. Bir çok araştırma, her üç veri tipini de içerecek biçimde düzenlenir. Büyük veri analizlerinin daha küçük veri kümeleri yardımıyla daha isabetli kestirimlerde bulunması sağlanabilir.

Veri, tipine göre ise dizinsel, öznitelik verisi ve üstveri olarak üçe ayrılabilir. Dizinsel veriler; tanımlamayı ve ilişkilendirmeyi sağlayan kimlik numarası, kredi kartı numarası, MAC adresi, sipariş numarası, adres gibi benzersiz tanımlayıcılardır. Farklı veri kümelerini bir araya getirebilmek için önemlidir. Öznitelik verisi ise bir olgunun bir yönünü gösterir. Örneğin, parmak izi bir kişinin dizinsel (ayırt edici) verisiyken göz rengi, kilo, boy, kan grubu vb öznitelik verisidir. Üstveriyse veri veya veri kümesi hakkındaki veridir. Verinin daha anlaşılır olmasını sağlar. Nasıl kullanılabileceği ve diğer veri kümeleriyle birleşimi hakkında bilgi verebilir.

Yazının devamında da göreceğimiz gibi söz konusu kategorilerden bazıları büyük veriyle beraber ortaya çıkmış veya daha önemli hale gelmiştir.

Küçük Veri

Büyük veriden önce sadece veri vardı. Büyük verinin ortaya çıkışıyla beraber büyük veri kapsamında olmayan veri, küçük veri oldu. Küçük verinin en önemli farkı veri miktarının daha az olmasıydı. Kitchin’in (2014) yazdığı gibi küçük veriler, veri çöllerindeki veri vahaları iken, büyük veri gerçek bir veri tufanı. Küçük veri, örneklemlerle ilgiliyken büyük veri popülasyonun tamamını kapsamaya çalışıyor. Fakat toplanan veriler de farklıdır. Büyük veri daha çok insanların sosyal medyada paylaştığı içerik, algılayıcıların çıktıları, sistemlerin çalışması sonucu ortaya çıkan veriler ve otomatik oluşturulan üstveriler ile ilgilidir. Küçük veri ise belirli sorulara yanıt arar. Küçük veri çalışmaları, hedefli çalışmalardır. İlgilendikleri konuya yoğun bir şekilde odaklanırlar ve büyük veri araştırmalarına göre daha az kaynağa ihtiyaç duyarlar.

Ayrıca küçük veri uygulamaları ve geliştirilen teknolojilerin büyük veriye giden yolda önemli bir adım olduğunu da atlamamak gerekiyor. İnsanlar tarih boyunca veri toplamış ve saklamıştır. Fakat uzunca bir süre veriden elde edilen enformasyonun, makale ve kitaplarda yayınlanması ve sadece çok değerli veri kümelerinin saklanması ile yetinildi. Veri saklama alanını ve maliyetini azaltan dijital depolama çözümlerinin geliştirilmesi sonrasında rutin ve düşük değerli verilerin geniş ölçekli, uzun vadeli depolanması başladı. İlk dijital veritabanları, 1950’lerde ortaya çıktı. Ama bu veritabanları arama ve sorgulama işlemleri için yetersizdi. 1970’lerde geliştirilmeye başlanan ilişkisel veritabanları veri teknolojilerinde büyük bir devrimdi. İlişkisel veritabanı, tablolardan oluşuyor ve tablolar birbirleriyle ilişkilendirilebiliyordu. Örneğin bir tabloda; dizinsel veri olan öğrenci numarasının yanında ad, soyad, doğum tarihi, cinsiyet vb öznitelik verileri saklanıyor; bir diğer tabloda öğrencinin numarası ve sınavlardan aldığı notlar tutuluyordu. Böylece öğrenci numarasını kullanarak iki tablo bağlanabiliyor; sorgulama işlemleri daha hızlı yapılabildiği gibi veri saklama da daha tutarlı olabiliyordu. İlişkisel veritabanlarının yanında elektronik tablolar (günümüzdeki adıyla MS Excel, Libre Office Hesap Tablosu) veri analizinde önemli bir sıçramaydı.

Dijitalleşme beraberinde yeni sorunlar da getiriyordu. 100 yıl önce yazılmış bir kitap günümüzde kolayca okunabilir. Ama aynı süreklilik dijital ürünler için söz konusu değildi. Farklı şirketlerin ürünleri birlikte çalışamadığı gibi özel mülkiyetli yazılımın yeni sürümleri eski biçimlerde sorun yaratabiliyordu. Ayrıca farklı yerlerde tutulan verilerin bir araya getirilebilirliği ve elde edilebilecek enformasyonun artırılması da önemliydi. Bu nedenle 2000’li yıllarda, verilerin paylaşımı ve altyapı standartlarının, protokollerinin ve politikalarının benimsenmesi için çalışmalar yapıldı. Veri paylaşma stratejisi tüm taraflara (araştırmacılar, kurumlar, fon sağlayıcılar ve kamu ve özel işletmeler) fayda sağlayacaktı. Veri paylaşımından sağlanacak kazanımları göz önünde bulunduran ulusal hükümetler, Avrupa Birliği gibi uluslar üstü kuruluşlar ve araştırma ajansları çeşitli girişimleri finanse etmek için büyük yatırımlar yaptılar.

Veri paylaşımını sağlayacak altyapıların kurulmasının bir çok yararı vardı. Yeni araştırma olanakları yaratacak ve herhangi bir amaç için toplanan veriden yeni amaçlar için yararlanılabilecekti. Endüstriye bilgi transferi olacak; verimlilik ve ekonomik büyümeye katkıda bulunulacaktı. Veri, araştırmacıdan bağımsız olarak saklanacağı için araştırmacılar zaman içinde değiştiğinde yeni araştırmacı, öncelinin kaldığı yerden devam edebilecekti. Aynı veri, farklı yerlerde tekrar tekrar saklanmayacak; veri kalitesi artırılabilecekti. Fakat bu paylaşımın önünde birçok teknik, sosyal ve politik engel de vardı. Fon sağlayıcılar, tasarımcılar, yöneticiler, mevduat sahipleri vb birçok taraf arasında müzakere ve anlaşma gerektiriyordu. Yeni veri altyapıları, kültürel değişimle desteklenmeliydi.

Tabii veri paylaşımı ve bunun getireceği yararlar hakkındaki düşünceler daha çok akademisyenlerin ve kamusal bakış açısına sahip kesimlerin düşünceleriydi. Diğer yanda özel sektörde veri hakkında farklı motivasyonlar vardı. Araştırma veri altyapıları; veri paylaşımını ve yeniden kullanımını kolaylaştıran ve teşvik eden altyapılar oluşturarak kamu yararını gerçekleştirmeye çalışıyordu. Veri toplayıcıları, birleştiriciler veya satıcılar olarak adlandırılan veri simsarları ise verileri toplayıp ve yeniden paketleyerek satmakla ilgileniyorlardı. Hala revaçta bir sektör olan veri simsarlığında satılan veriler, günlük yaşamın tüm yönlerini ilgilendirir ve kamu yönetimi, iletişim, mal ve medya tüketimi, seyahat, eğlence, suç, sosyal medya etkileşimleri vb. hakkında olabilir. Veri satışı, milyarlarca dolarlık bir pazardır. Son yıllarda, özellikle İnternet’in ortaya çıkışından bu yana, veri simsarlığı sektörü, hem küçük hem de büyük verileri bir araya getirerek hızla genişledi.

Veri simsarları, hem veri topluyor hem de satıyorlar. Veri simsarlarına veri satmak birçok şirket için önemli bir gelir kapısı. Örneğin, perakendeciler müşterileri hakkındaki çeşitli bilgileri veri simsarlarına satıyorlar. Çeşitli veri simsarlarıyla işbirliği yapan Facebook gibi sosyal medya şirketleri de bu verileri satın alarak sosyal medya verisiyle sosyal medya dışındaki hareketleri içeren verileri birleştiriyorlar. Dolayısıyla herhangi bir yere verimizi teslim ederken (market kartıyla alış veriş yaparken veya 20 yaş fotoğrafımızı paylaşırken!) paylaşılan verinin diğer verilerle birleştirilebileceğini de göz önünde bulundurmalı.

Büyük Veri

Büyük veri çoğunlukla 3V (Volume, Velocity, Variety – Hacim, Hız ve Çeşitlilik) ile tanımlanır. Hacim, artık terabayt ve petabayt ile ifade edilebilen veri miktarını; hız, verilerin gerçek zamanlı olarak veya neredeyse gerçek zamanlı olarak oluşturulmasını; çeşitlilik, birden çok kaynaktan toplanan yapılandırılmamış ve yarı yapılandırılmış verileri vurgular. Kitchin’e (2014) göre büyük veri öncesinde ancak 2V’nin bir araya gelebildiği durumlar vardır: Büyük miktarda ve hızla oluşan veri; çeşitli ve hızla oluşan veri; büyük miktarda ve çeşitli veri.

Hesaplama gücünün katlanarak büyümesi, ağa bağlı cihazların artması, günlük yaşamın gittikçe daha fazla yönü ve sürecinin dijitalleşmesi, verilerin her zamankinden daha dizinsel ve makine tarafından okunabilir hale gelmesi ve veri depolama teknolojilerindeki gelişmeler büyük verinin teknik koşullarını hazırlamıştır. Büyük verinin ortaya çıkışı, yapay öğrenme algoritmalarının da önünü açmış; algoritmaların daha iyi kestirimler için daha çok veri talep etmesi yaşamın bir çok alanının verileştirilmesine neden olmuştur. Bir çok uygulama ve oyun, sadece veri çeşitliliğini ve miktarını artırmak için piyasaya sürülmüştür.

Büyük verinin küçük veriden farklılıkları 3V ile sınırlı değildir. Küçük veri çalışmaları, belirli bir zaman ve yerde, tüm potansiyel verilerin toplam popülasyonundan temsili bir veri kümesi üretmeye çalışır. Toplam popülasyona ait tüm verileri toplamak için zaman ve kaynaklar genellikle yeterli değildir. Büyük veri projelerinde ise popülasyonun tamamı veya küçük veri çalışmalarında kullanılandan çok daha büyük örneklem büyüklükleri hedeflenir.

Ayrıca büyük veriyle beraber verinin çözünürlüğü ve dizinselleştirilebilirliği de artmaktadır. Kamera ve uydu görüntülerindeki çözünürlük artışının (örneğin daha küçük alanlar da temsil edilebilmektedir) yanında toplumsal analizler de derinleşmiştir. Çözünürlük açısından daha da ince ayrıntılara sahip olan birçok veri simsarı, şirketlerin mal ve hizmetleri ayrı ayrı hedeflemesine olanak tanıyan bireyler ve hanelerle ilgili büyük hacimli verileri bir araya getirebilmektedir. Verilerin çözünürlüğündeki artış; insanların, ürünlerin, işlemlerin ve bölgelerin dizinselleştirilebilirliğini de artırmıştır. Örneğin barkod teknolojisi, sadece genel olarak ürünü tanımlar ve bir markette aynı barkoda sahip çok sayıda ürün vardır. Fakat RFID teknolojisi ile ürünleri tek tek izlemek ve tüm hareketi kayıt altına almak olanaklı hale gelmiştir.

Dizinselleştirme olanaklarının artmasıyla verileri birbirine bağlama, birleştirme, sıralama, harmanlama, izleme, eşleştirme ve profilleme olanakları da artmıştır. Küçük veride olduğu gibi farklı veriler arasında ilişkiler kurmak büyük veride de önemlidir. Fakat büyük veri çoğunlukla ilişkileri ilişkisel veri tabanlarında değil, ağlarda arar. Veri parçaları arasındaki örüntüleri keşfeder. Sayısal olmayan, yapılandırılmamış verileri yapılandırılmış veriler olarak ele alma ve ikisini bir araya getirmede başarılıdır.

Büyük veri analizi; tanımlama (Ne oldu? Ne zaman oldu? Ne kadar sıklıkla oldu?), açıklama (Neden oldu? Nasıl etkiledi?), tahmin (Bundan sonra ne olması muhtemeldir? Bu ya da şu devam yolunu tercih edersek ne olabilir?), yol gösterme (En uygun cevap veya sonuç nedir? Bu hedef nasıl başarılır?) için kullanılmaktadır. Büyük veri, insan hayatının tüm yönlerini anlamak ve yönetmek için yeni yollar sunar. Söz konusu yolların toplumsal açıdan kabul edilebilirliği ayrı bir tartışma konusu. Ama her koşulda, insan yaşamı ile ilgili alanlarda büyük veriyi elinde bulunduranlar büyük bir güce sahipler. Birkaç yıl öncesine kadar sosyal medya bağlamında tartışılan bu sorun, şimdi platform ekonomileri ve akıllı şehirlerle yeniden ve daha can alıcı biçimde karşımıza çıkıyor.

Açık Veri

İster küçük veri ister büyük veri olsun, veri kümelerini üretmek çoğu zaman maliyetli bir iştir ve veriyi elinde bulunduranlar veri kümelerine erişimi çeşitli şekillerde sınırlandırırlar. Veri kümeleri sadece onaylı kullanıcılara açılır, erişim için ücret talep edilir veya verinin nasıl kullanılacağı hakkında kısıtlamalar getirilir. Veriler kısmen açıldığı zaman bile bundan yararlanmak için özel teknik araçlar ve uzmanlık gerekir.

Açık veri hareketi; bu kapalılığa son verme, veriyi daha geniş bir kesime açma ve uzman analitik becerilere olan ihtiyacı ortadan kaldırma hedefiyle yola çıktı. Hareketin üç temel ilkesi vardı: açıklık, katılımcılık ve işbirliği (https://obamawhitehouse.archives.gov/open/documents/open-government-directive). Böylece veriden enformasyon ve ilgi üretme yeteneği sadece veriye sahip olanlarla sınırlı kalmayacaktı. Fakat hareketin odağında kamu kurumlarının veya kamu tarafından finanse edilen araştırmaların ürettiği veriler vardı. Özel sektörün ürettiği verilerle pek ilgilenilmiyordu.

Verilerin açık olarak sınıflandırılabilmeleri için öncelikle verilerin kolaylıkla erişilebilir ve yeniden kullanılabilir olmaları gerekir. Open Knowledge Foundation, açık veriyi tanımlarken öncelikle verinin kamuya açık (public domain) olmasının veya açık lisansla sunulmasının gerekliliğine vurgu yapıyor. Open Knowledge Foundation’a göre açık veri (bkz. https://opendefinition.org/od/2.1/en/):

  • bir kerelik makul bir yeniden üretim maliyetini geçmeyecek şekilde bir bütün olarak sağlanmalı ve internet üzerinden ücretsiz olarak indirilebilir olmalıdır.
  • bir bilgisayar tarafından kolayca işlenebilir ve değiştirilebilir bir biçimde sunulmalıdır.
  • açık bir formatta sunulmalıdır. (Açık bir format, kullanımı üzerine parasal veya başka türlü herhangi bir kısıtlama getirmeyen ve en az bir özgür/açık kaynak yazılım aracı ile tam olarak işlenebilen bir formattır.)

Açık Hükümet Verisinin gereklilikleri ise sekiz maddede özetleniyor (https://opengovdata.io/2014/8-principles/):

1. Bütünlük: Herkese açık olmalıdır. Herkese açık veriler; geçerli gizlilik, güvenlik veya ayrıcalık sınırlamalarına tabi olmayan verilerdir.

2. Birincillik: Veriler, toplu veya değiştirilmiş formlarda değil, mümkün olan en yüksek ayrıntı düzeyinde toplandığı gibi olmalıdır.

3. Güncel: Verilerin değerini korumak için veriler gerektiği kadar hızlı bir şekilde sunulmalıdır.

4. Erişilebilir: Veriler, çok çeşitli amaçlar için en geniş kullanıcı yelpazesine sunulmalıdır.

5. Makinelerce işlenebilir: Veriler, otomatik işlemeye izin verecek şekilde yapılandırılmalıdır.

6. Ayrımcı olmamalı: Veriler, kayıt zorunluluğu olmaksızın herkes tarafından kullanılabilmelidir.

7. Özel mülkiyetli olmamalı: Veriler, hiçbir kuruluşun ayrıcalıklı denetime sahip olmadığı bir biçimde sunulmalıdır.

8. Lisans Bağımsız:Veriler herhangi bir telif hakkı, patent, ticari marka veya ticari sır yönetmeliğine tabi olmamalıdır. Makul gizlilik, güvenlik ve ayrıcalık kısıtlamalarına izin verilebilir.

Açık veri hareketi, özellikle 2000’li yılların sonunda daha görünür ve etkili olmaya başladı. 2008’de OECD, üye ülkelere verilerini açma çağrısı yaptı. 2009’da ABD hükümeti, ulusal güvenlik sorunu yaratmayacak veri kümelerini erişime açmak için çalışmalara başladı. 2010’dan bugüne kadar çok sayıda ülke ve uluslararası kuruluş (ör. Avrupa Birliği ve Birleşmiş Milletler Geliştirme Platformu) daha önce kısıtlanmış olan veri kümelerini açtı. Türkiye’de de çok sayıda açık veri portalı var: İstanbul Belediyesi (https://data.ibb.gov.tr/), İzmir Belediyesi (https://acikveri.bizizmir.com/tr/), Balıkesir Belediyesi (https://acikveri.balikesir.bel.tr/), Tarım Orman Bakanlığı (http://veri.tarimorman.gov.tr/), TÜBİTAK (https://acikveri.ulakbim.gov.tr/).

Bu açılma sürecinde, Open Knowledge Foundation ve Sunlight Foundation gibi uluslararası kuruluşlar, bilişim sektöründeki şirketlerin lobi faaliyetleri, belediye verilerinden yararlanmak isteyen gruplar ve açık veri hareketinin aşağıdaki tezlerine ikna olmuş bürokratlar etkili oldular.

Açık veri hareketi, açık verinin hem veriyi elinde tutanlar hem de onu kullananlar için yararlı olacağını savunmaktadır. Birincisi, kamu kurumlarındaki veriler kurumların çeşitli program ve faaliyetlerinin başarısını ölçmek için bir araç sağlamaktadır. İkincisi, yurttaşların kamu kurumlarının verilerine erişiminin sağlanması, kamusal alana aktif ve bilgili katılımı sağlayarak katılımcı demokrasiyi güçlendirecektir. Üçüncüsü, kurumların verilerini açmaları kurumları bu tür verileri, kendi verimlilik ve üretkenliklerini artırmak için de kullanmaya teşvik edecektir. Dördüncüsü, verileri ücretsiz olarak kullanılabilir hale getirmek bir kuruluşun imajını güçlendirecek; onun yenilikçi ve girişimci olarak tanınmasını sağlayacaktır. Beşincisi, herkese açık olan sunulan veriler; mevcut iş verilerine değer katacak, yeni uygulamalar ve hizmetler ve dolayısıyla yeni pazarlar yaratacak ve karar süreçlerini geliştirecektir

Açık veri hareketi kimi zaman özgür/açık kaynak yazılım hareketlerine benzetilse de önemli bir fark vardı. Özgür yazılım, özel mülkiyetli yazılıma bir tepkiydi. Açık veri taleplerinin muhatabı ise çoğunlukla kamu kurumlarıydı. İşin ilginci açık veri hareketinin güçlendiği dönemde bir yandan kamu verilerinin açılması talebi artarken diğer yandan fikri mülkiyet korumaları güçleniyordu. Bu nedenle, fikri mülkiyet kapsamında değerlendirilen şirket verilerinin açılması pek gündeme gelmiyordu. Aslında açık veri hareketine yöneltilen eleştirilere baktığımızda buna şaşırmamak gerekiyor. Eleştirileri üç başlık altında toplayabiliriz.

Birincisi, açık verinin kamu hizmetlerinin neoliberalizasyonunu ve pazarlanmasını kolaylaştırmasıdır. Örneğin, İngiltere’de açık verinin gelişiminde büyük şirketlerin yürüttüğü kampanyaların önemli bir yeri vardır. Aynı süreçte açık hükümet girişimlerinin de zorunlu kemer sıkma programlarının ve kamu hizmetlerinin piyasalaşmasının bir parçası haline geldiği görülmektedir. İş dünyası, pahalı bir şekilde üretilmiş verilere ücretsiz olarak erişebilmiş ve bu tür verilerin üreticisi olan kamu sektörünü piyasan uzaklaştırabilmiştir.

İkincisi, açık veri hareketinin naif bir siyaseti teşvik etmesi ve kimi zaman, açıklık ve demokratikleşme hedeflerinin güçlülerin daha da güçlenmesiyle sonuçlanmasıdır. Veriyi açmak siyasette kendiliğinden bir demokrasi ve açıklık getirmemektedir. Açık verinin toplumu demokratikleştireceği hakkındaki tezler, verilerin nötr olduğunu varsaymaktadır. Oysa hangi verilerin üretildiği, verilerin kiminle ve neyle ilgili olduğu (özellikle sosyal refah ve güvenlik gibi disiplin sistemi olarak işlev gören alanlarda), kimin çıkarlarının temsil edildiği veya dışarıda bırakıldığı önemli konulardır. Kitchin’in (2014) vurguladığı gibi değer yapıları veri kümelerinin doğasında bulunur, analiz ve yorumu şekillendirir ve bunun sonucunda adaletsizlikleri yaymak ve baskın çıkarları güçlendirmek için çalışabilir. Ayrıca herkesin bu tür verilere erişme ve bunları kullanma potansiyeli yoktur. Veriyi herkes için erişilebilir hale getirme iddiası var olan toplumsal eşitsizlikler dikkate alındığında olumsuz sonuçlara neden olabilmektedir. Örneğin Hindistan’ın Karnataka şehrinde yoksullardan yana bir girişim olarak tanıtılan açık veri projesiyle arazi kayıtları sayısallaştırılmış ancak bu girişim finansal kaynaklardan ve açılan veriden yararlanma olanağı olanların yoksulların arazilerine yeniden el koymasıyla sonuçlanmıştır.

Kitchin’in (2014) altını çizdiği gibi iki tip kamu verisi arasındaki farklılığa da dikkat etmek gerekiyor. Birinci tipteki veriler, devletin işleyişi ile ilgili olanlardır ve bu verilerin açılması, performans ve hesap verilebilirliğin değerlendirilmesine yardımcı olmaktadır. İkinci tipteki veriler ise kişiler ve kurumlar hakkındaki hassas verilerdir. Bu veriler, paylaşmak amacıyla yaratılmamıştır ve çoğunlukla mahremiyet ve kişisel veri yasalarıyla korunmaktadırlar. Ayrıca, kredi ve sigorta riski açısından vatandaşları sosyal olarak sınıflandırmaya ve profillemeye çalışan analizlere önemli bir girdi sağlarlar.

Üçüncü eleştiri konusu ise sürdürülebilirlik, fayda ve kullanılabilirlik hakkında. Birçok açık veri projesi, sunduğu içeriğin kullanılabilirliğine, kalitesine veya kullanımının sonuçlarına hiç dikkat etmeden, çeşitli veri dosyalarına bağlantılar vermekle yetiniyor. Veri standartlarında (uygun üstveri, tam kayıt setleri, yüksek, kaliteli, birlikte çalışabilirlik vb) ciddi eksiklikler ve sorunlar var. İyi yapılandırılış bir veri altyapısından beklenen, yeniden kullanım, mahremiyet ve etik ilkeleri; koruma, yedekleme ve denetim politikaları; idari düzenlemeler, işletme organizasyonu ve yönetişim mekanizmaları; finansal istikrar ve uzun vadeli bir gelişim planı ve sürdürülebilirlik gibi konularda yetersizler. Veri analizini desteklemek için uygun araçları ve bağlamsal materyalleri sağlamıyorlar. Ayrıca bazı yönetimler sadece sağlanması daha kolay olan ve daha az yararlı olabilecek verileri sunmakla yetiniyorlar.

Tüm bu eleştiriler, verileri açma düşüncesinden vazgeçmeyi savunmuyor. Sadece verilerin nasıl kullanılabilir hale getirildikleri, nasıl kullanıldıkları ve belirtilen hedeflerle ne kadar uyumlu oldukları konusunda daha eleştirel olmamız gerektiğini vurguluyor. Akıllı şehirlerle beraber, bu durum daha önemli hale geliyor. Çünkü şimdi kamu verisi ve özel sektör verisi ayrımının ötesinde bir durum var. Şehirleri donatan algılayıcılardan veya ulaşım uygulamalarından (Uber’in yanında belediyelerin sunduğu AnkaraKart gibi hizmetler) elde edilen veriler kimin? Algılayıcı veya uygulamayı satan şirketin mi, yoksa belediyenin, yani halkın mı?

***

Açık veri, bir çok akıllı şehir girişiminde önemli bir yere sahip. Örneğin, Katalonya Hükümeti, verileri yasal gereklilikle yayımlamak yerine yasalarca yasaklanmamış her şeyi yayımlama kararı aldı. Ayrıca verinin kalitesinin yönetimi (güvenilirlik, doğruluk ve güncellik) ve açık veri standartlarının sağlanması için çalışmalar yapılıyor. Espuny (2020) tüm bu çalışmalara rağmen veriyi açmanın kendi başına bir anlamı olmadığını asıl amacın verinin işlenmesi, kullanılması, analizi ve anlaşılmasından bir değer yaratmak olduğunu vurguluyor. Verileri açmanın, yalnızca aşağıdakiler gibi diğer hedeflere ulaşmanın bir yolu olduğunu savunuyor:

Şeffaflık ve hesap verilebilirlik: Yurttaşlar, ihaleler ve sağlanan sübvansiyonlar hakkında kamu kurumlarından eylemlerini gerekçelendirmelerini talep etmelerini sağlayacak bilgilere erişebilecekler. Şeffaflık, vatandaşların kamu kurumlarına karşı güvensizliğini azaltabilecek.

Yurttaş katılımını teşvik etmek: Yurttaş katılımı, sadece seçimden seçime oy kullanmaya indirgenmemeli ve sürekli olmalı. Bunun için seçilmişlerin gerekli araçları sağlaması gerekiyor. Yurttaşların gerçek katılımın en önemli ön koşullarından biri ise tartışılan konu hakkında bilgi sahibi olmaları.

Araştırmayı desteklemek: Açık veri, veri toplama ve işlemeyi daha az maliyetli yaparak araştırma faaliyetlerini teşvik eder. Araştırma sonuçlarının açık veri biçiminde yayımlanması bilgi paylaşımını artırır ve proje tekrarlarını engelleyerek maliyeti azaltır.

Kamu hizmetlerini iyileştirmek: Açık veri, kamu hizmetlerinin sunumunu ve karar verme sürecini iyileştirmeye ve maliyetleri düşürmeye yardımcı olabilir. Açık veri, iç süreçlerdeki verimsizliklerin tespiti ve giderilmesi için kullanılabilir.

Ekonomik büyüme ve inovasyonu artırmak: Açık veri, yeni işletmelerin ortaya çıkmasına katkıda bulunur. Bilişim teknolojisi şirketlerinden bireysel uygulama geliştiricilere kadar yeni işler yaratır.

Bu hedeflerin bir çoğu en başından beri açık veri hareketinin hedefleri arasındadır. Fakat Espuny’nin (2020) yazısında vurgulandığı gibi Katalonya’da temel vurgu, açık verinin merkezinde yurttaşların olmasıdır. Bunu, yönetimin açılacak veriyi seçmesi yerine yasal engel olmayan tüm verilerin açılması kararında da görebiliriz. Söz konusu politika değişikliği, şeffaflık için çok daha samimi ve etkili bir adımdır. Ayrıca Katalonya hükümeti, veriyi açmakla yetinmemekte vatandaşlar, sivil toplum, iş dünyası ve idarelerin kendileri arasında açık verilerin değer yaratma potansiyeli hakkında farkındalık yaratmaya çalışmaktadır.

Ama her şeyden önce, açık verinin gerçekten anlamlı olabilmesi için Avrupa Özgür Yazılım Vakfı tarafından örgütlenen “Halkın Parası, Halkın Kodu” kampanyasını (https://publiccode.eu/tr/), veriyi de kapsayacak biçimde genişletmek gerekiyor. Kamu tarafından finanse edilen ve akıllı şehir uygulamalarından elde edilen veri (kişisel verilerin gizliliği göz önünde bulundurularak!) halkın olmalı, halkın yönetime katılımını ve şehrin teknolojik egemenliğini destekler biçimde kullanılmalıdır. Açık veri, bir son değil, özgür yazılımla gelişecek bir başlangıçtır.

Kaynaklar:

Espuny, N. (2020), The Open Data Strategy of the Government of Catalonia, IDEES, https://revistaidees.cat/en/the-open-data-strategy-of-the-government-of-catalonia/, son erişim 17.05.2021

Kitchin, R. (2014). The data revolution: Big data, open data, data infrastructures and their consequences. Sage.

O’Neill, K. (2019). Facebook’s ’10 Year Challenge’is just a harmless meme–right?. Wired, January, 15. https://www.wired.com/story/facebook-10-year-meme-challenge/, son erişim 17.05.2021



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!



14 July 2020

kdenlive nvenc profili tanimliyoruz


Video render işlemlerini hızlandırması için kdenlive‘a bir nvenc GPU render profili tanımladım. Bu tanımı oluşturmak, sadeleştirmek ve test etmek oldukça zor oldu. ffmpeg, kdenlive ve nvenc üçünün de kullandığı parametreler benzer olsada birbirlerinden farklılık gösteriyor. Bir de bunlara sürümler arası parametre farklılıkları eklenince, içinden çıkılmaz bir hal aldı ve çok fazla test yapmam gerekti.

Parametreleri oluştururken üç farklı kaynaktan yararlandım, Youtube tavsiyeleri [1], Nvidia teknik blogu [2] ve bir blogger in yazısı [3]. Umarım sizin için yol gösterici olur.

h264;
f=mp4 vcodec=h264_nvenc preset=medium global_quality=16 profile:v=high bf=3 temporal-aq=1 rc-lookahead=20 vsync=0 movflags=faststart acodec=aac ab=384k
h265;
f=mp4 vcodec=hevc_nvenc preset=medium global_quality=16 profile:v=main temporal-aq=1 rc-lookahead=20 vsync=0 movflags=faststart acodec=aac ab=384k

[1] https://support.google.com/youtube/answer/1722171?hl=en
[2] https://developer.nvidia.com/blog/turing-h264-video-encoding-speed-and-quality/
[3] https://flamy.ca/blog/2019-10-14-kdenlive-nvenc-video-settings-for-youtube.html

Hamdi Özcan – ozcan.com



17 May 2020

LKD Yansı sunucusu artık HTTPS destekliyor


LKD yansı sunucusu artık https://ftp.linux.org.tr adresi üzerinden HTTPS güvenli bağlantısı ile de erişilebilir.

Dağıtımların iso kalıplarını HTTPS üzerinden indirmek için şu andan itibaren https://ftp.linux.org.tr adresini kullanmaya başlayabilirsiniz.

Eğer dağıtımınızın paket yöneticisi HTTPS protokolünü destekliyorsa, paket kaynağı adresini değiştirerek paketleri şifrelenmiş bir şekilde indirebilirsiniz. Bunun nasıl yapılacağının detayları için kullandığınız Linux dağıtımının belgelerine ve destek kanallarına başvurabilirsiniz.



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





29 October 2018

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.



16 October 2017

KRACK: WPA2 Protokolünü Hedef Alan Bir Saldırı


Kablosuz internet cihazlarımızla (bilgisayar, telefon, vb) evlerde, iş yerlerinde vs bağlandığımız kablosuz ağların çoğunu koruyan WPA2 şifreleme algoritmasını etkisiz hale getiren bir atak geliştirilmiş. KRACK adı verilen bu atak kablosuz ağların parolalarını kırmıyor, yani evlerimizdeki internete kaçak ortağımız olmuyor ancak daha kötüsü cihaz ve erişim noktası arasındaki şifrelemeyi etkisiz hale getirerek bizler ve internet arasında giden gelen bilgileri saldırgan kişilerin okuyabilir hale gelmesine yol açıyor.

Biz ne yapabiliriz bu atak karşısında? Bağlandığımız erişim noktasının şifrelemesine güvenemeyeceğimize göre ziyaret ettiğimiz web sayfalarına mümkün olduğunca https üzerinden erişmeye çalışalım, ne kadar az şifrelenmemiş web trafiği yaratırsak o kadar iyi. Ayrıca kullandığımız bilgisayarların, telefonların, modemlerin vb her fırsatta yazılım güncellemelerini takip edelim. Örneğin bir çok Linux tabanlı işletim sisteminde WPA2 şifrelemeli ağlara bağlanmamızı sağlayan wpasupplicant yazılımına gerekli yamalar geldi bile. Windows’lar için de gerekli yamalar yayınlanmış. Şu an için yapacak başka da bir şey görünmüyor.

Atak hakkında detaylı bilgiye https://www.krackattacks.com/ adresinden, atakla ilgili yayınlanan bilimsel makaleye de https://papers.mathyvanhoef.com/ccs2017.pdf adresinden erişebilirsiniz.



07 April 2017

Raspberry Pi ile bira sıcaklığı ölçümü


Bir süredir evde bira yapmayı düşünüyordum sonunda karar verdim. 3 hafta kadar önce butikbira.com adresinden hazır bira setlerinden ve stout tipinde bira kiti satın aldım ve hemen o gün seti kurup başladım. Evde bira yapmanın en zor yanları kullanılan malzemenin temizliği ve mayalanma ortamının sıcaklığını korumak. Temizlik için gereken sabır ve dikkat iken sıcaklık konusu biraz daha büyük ve sorunlu bir durum. Mayalanma kovasının sıcaklık kontrolünü daha önceden Çin’den aldığım USB termometre ile yapıyordum ancak güvenilir bulmadım. Biraz araştırıp gerekli cihazın DS18B20 olduğunu öğrendim.

DS18B20’nin üç ayrı modeli var; transistör şeklindeki probe, su geçirmez plastik ile kaplanmış olan ve sıvı ölçümleri için de kullanılabilen probe ve sensörün hazır PCB kartı takılmış hali. Ben belki mayalanma kovasının içine de yerleştirebilirim diye düşünerek su geçirmeyen modelini internetten satın aldım. Bu 3 ayrı modelden PCB dışındakileri kullanabilmek için ek olarak 4.7k Ohm/0,25 W (sarı-mor-kırmızı-altın) bir dirence ihtiyacınız olacak. (PCB olanda direnç PCB’ye gömülmüş durumda olacaktır.)

ds18b20-waterproof

Evde boşta duran Raspberry B+ ‘ı bu iş için kullanmaya karar verdim. Sensörü hazırlamak ve Raspberry’ye bağlamak benim gibi elektronik cahili biri için bile çok basit. Sensörün üç kablosu var ve bunların Raspberry’de hangi GPIO pine bağlanacağı aşağıdaki gibi;

Kırmızı - 3.3v - PIN1
Sarı - Data - PIN7 (GPIO4)
Siyah - Topraklama - PIN6 (GROUND)

Bağlantıları yaptıktan sonra komutu çalıştırdıktan sonra Raspberry’yi yeniden başlatmanız gerekiyor.

echo "dtoverlay=w1-gpio" >> /boot/config.txt

Raspberry yeniden başlatıldıktan sonra ise yapılması gereken DS18B20’nin veri alabilmesi için gerekli kernel modüllerini yüklemek. Bunun için aşağıdaki komutları çalıştırın.

echo "modprobe w1-gpio" >> /etc/modprobe.d/ds18b20-temp
echo "modprobe w1-therm" >> /etc/modprobe.d/ds18b20-temp
modprobe -a

Modüllerin başarılı bir şekilde yüklendiğini ve sensörün sıcaklık okuyabildiğini aşağıdaki komutla deneyin. Komut çıktısında t=18437 rakamı celcius olarak sıcaklığı veriyor ve bu değeri 1000′ e bölmelisiniz.

[email protected]:~# cat /sys/bus/w1/devices/w1_bus_master1/28-*/w1_slave
27 01 4b 46 7f ff 0c 10 8d : crc=8d YES
27 01 4b 46 7f ff 0c 10 8d t=18437

Sensörün başarıyla sıcaklık okuduğundan emin olduktan sonra okuma işlemini bir script haline getirerek aldığınız değeri istediğiniz ortama (veritabanı, grafik, log dosyası vb.) aktarabilirsiniz.

BASH script örneği;

#!/bin/bash
# beertemp.sh
# GPIO bagli DS18B20 sicaklik sensorunden celcius alinan degeri log dosyasina ekleyen script

simdi=$(date "+%Y/%m/%d %H:%M:%S")
temp=$(cat /sys/bus/w1/devices/w1_bus_master1/28-*/w1_slave | grep "t=" | awk -F'=' '{print $2/1000}')

echo "$simdi - $temp" | tee -a /var/log/temp.log

Scripti crontab içerisine ekleyerek istediğiniz zaman aralığı ile sıcaklığın kaydedilmesini sağlayabilirsiniz.

echo "*/2 * * * * root /bin/sh /usr/local/bin/beertemp.sh 2>&1

Python script örneği; (Belirli sıcaklık değerleri dışında uyarı gönderecek şekilde değiştirilmiş hali)

#!/usr/bin/python

import os # import os module
import glob # import glob module
import time # import time module
import urllib2
import subprocess
import logging
from math import trunc

base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'

logging.basicConfig(filename="/var/log/beertemp.log", level=logging.INFO)
simdi = time.strftime("%Y/%m/%d-%H:%M:%S")

def read_temp_raw():
f = open(device_file, 'r')
lines = f.readlines()
f.close()
return lines

def read_temp():
lines = read_temp_raw()
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = read_temp_raw()
equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos+2:]
temp_c = float(temp_string) / 1000.0 # convert to Celsius
#temp_f = temp_c * 9.0 / 5.0 + 32.0 # convert to Fahrenheit
#return temp_c, temp_f
return temp_c

beerTemp = read_temp()
degree = '{:d}'.format(trunc(beerTemp))
notify_url = "http://yourwebpage/notify.php?msg=Bira+Sicakligi:+%s+%s" % (simdi, beerTemp)
log_msg = "%s - Bira Sicakligi: %s" % (simdi, beerTemp)

if (degree >= 16 or degree <= 25): logging.info(log_msg) else: request = urllib2.urlopen(notify_url).read() logging.warning(log_msg)

Daha sonra isterseniz sensörü bira mayalanma kovasına yapıştırabilir, isterseniz kova kapağında kablo için delik açıp sensörü şerbete daldırabilirsiniz. Deliğin etrafını Starsan ile arındırıp sıcak silikon uygulayabilirsiniz. Kablonun kova içindeki kısımlarına da Starsan sürmeyi unutmayın 🙂

ds18b20 temperature read test



22 March 2017

Kullandığım Linux işletim sistemi 32bit mi? 64bit mi?


Kullandığınız bir Linux işletim sistemini siz kurmamış olabilirsiniz veya birden fazla bilgisayar ve farklı işletim sistemleri ile çalışıyor olabilirsiniz. Bu nedenle bazen kullandığımız Linux işletim sisteminin sürümünün 32 bit mi yoksa 64 bit sürümü olduğunu öğrenme ihtiyacı duyabilirsiniz. Bunu terminal ekranından aşağıdaki kod ile hızlıca öğrenebilirsiniz.

Linux işletim sisteminin 32bit mi 64 bit mi olduğunu öğrenmek için;

uname -a

kodunu terminal ekranına yazdığımızda karşımıza çıkan ibarelerde i686 i386 geçiyor ise 32bit, x86_64 ibaresi geçiyor ise 64bit olduğunu anlayabiliriz.

i686 i386 32bit
x86_64 64bit

Bu işlemi terminal penceresinden 4 farklı şekilde daha yapabilirsiniz.

dpkg –print-architecture

getconf LONG_BIT

arch

file /sbin/init



31 May 2016

Bilgisayar Mühendisliği


Ekşisözlük'teki bilgisayar mühendisliği tanımlarına bakınca, "bilgisayar mühendisi mimar, programcı ameledir", "utp kablo takmayı bilmezler", "temeli hardware'dir", "programlamayla alakası yoktur", "bilgisayar bilimlerinden farklı bir şeydir", "asıl işi işlemci tasarlamak" gibi saçmalıklar arasında kayboluyorsunuz.

Bu da şaşırtıcı değil çünkü bazı hocalar ve mezunlar bile bu yanlış fikirleri yaymaya devam ediyor.

Bilgisayar Mühendisleri Odası'nın şu kuruluş raporuna bakın:

Meslek Alanında Yaşanan Tahribat (sayfa 9): ...sektör kamu ile akademiden ziyade serbest piyasa koşulları içinde büyümüş... kamusal düzenleme olmaması (yüzünden) ülkemiz salt tüketici konumda kalmış... bilgisayar mühendisleri teknoloji ve bilim dünyasında çığır açan çalışmalara imza atmak yerine kod yazan kişiler olarak kalmışlardır.

Bu metni yazan ve okuyan hiç kimsenin aklına, "silikon vadisinde çığırları açanların kamu düzenlemesi mi vardı?", "serbest piyasa hakimiyetindeki Amerika, bilişim tüketicisi konumunda mı?" ya da "Knuth, Tarjan, Sedgewick gibi teorik araştırmacılar bile her gün kod yazıyorken bizim bilgisayar mühendislerinin ayağına bu niye bağ oluyor" gibi çok basit sorular gelmemiş anlaşılan!

Bu bilgi kirliliğine engel olmak için bazı kavramları temelden açıklamak gerekiyor.

Bilgisayar Mühendisliği

Bir çok ülkede Computer Science (Bilgisayar Bilimi) olarak geçen bölümdür. Bir uygulamalı matematik alanıdır. Temel problemleri: neleri hesaplayabiliriz (karmaşıklık, quantum), nasıl hesaplayabiliriz (algoritmalar, veri yapıları, yapay zeka, diller ve derleyiciler) ve neyle hesaplayabiliriz (bilgisayar mimarisi, ağlar, sistemler) olan bir bilim dalıdır.

Türkiye'de bir mühendislik bölümü olarak açılmasının nedeninin devlet kadrolarında mühendis olmayanların teknik kadro sayılmasının zorluğu ve yüksek maaş alamamaları olduğunu düşünüyorum.

Mühendislik iki anlamda kullanılabiliyor: Bilimsel bilginin bir şeyler geliştirmek için kullanılması ile bir profesyonel meslek dalı. Birinci anlamın bir sakıncası yok. Örneğin bir problemin çözülmesi için bir program geliştirmek bir mühendislik çalışması olarak görülebilir.

İkinci anlamda ise sıkıntı büyük. Profesyonel mühendislik, tıpkı doktorluk ya da tesisatçılık gibi bir meslektir. Denetime bağlıdır, mesleği yapanlar bir oda ya da kuruma kayıtlı olmak ve belli yeterlik şartlarını yerine getirmek zorundadır. Bunun amacı da, örneğin evinize patlama riski olan bir doğalgaz borusu bağlanmasını ya da iki inşaat mühendisinin aynı bina için farklı statik hesapları vermesini önlemektir.

Böyle bir durum bilgisayar mühendisliği için iki nedenden anlamsız. Birincisi bu bir profesyonel meslek değil, bir bilim dalı ve bu bilgiye herhangi biri sahip olabileceği gibi kendi başına her türlü amaçla da kullanabilir. İkincisi ise yaratıcılığa ve çeşitliliğe açık bu alanda, şu iş bu şekilde yapılır gibi meslek kurallarını üretecek bilgiye sahip değiliz. Evet, bazı tasarım kalıpları (design patterns), ve yazılım geliştirme teknikleri (test tabanlı geliştirme, sürüm kontrolü, vb) icat ettik ama hâlâ genel problemi çözebilmiş değiliz. Bu iş bir bilim olduğu kadar aynı zamanda bir sanat da. Şirketlerin diplomaya sertifikaya değil kendi mühendisleriyle yapılacak mülakata bakmasının altında da bu yatıyor.

Bilgisayar Bilimcisi Program Yazmaz mı?

Bu saçma fikrin savunulmasının ardında diplomayı aldıktan sonra yan gelip yatarak para kazanma beklentisi var herhalde.

Araştırmacılar için hipotezlerini test etmenin, modellerini incelemenin önemli bir yolu program yazmak. Bazen teorileri ispatlamanın bir yolu bile olabiliyor.

Endüstride ise program yazmayacağım diyen adamı görüşmeye bile çağırmazlar. Google, Microsoft, Apple gibi şirketlerin herhangi bir pozisyonuna girmek için iş görüşmesinde bile program yazmanız gerekiyor.

Bir kişi analiz yapacak, diğeri tasarım yapacak, kalanlar da tasarımdaki fonksiyonları yazacak modeli 60'larda kaldı. Yazılım geliştirme, yazılımların artan karmaşıklığı ile birlikte çok daha dinamikleşti. Tasarım, gerçekleme, test ve hata ayıklama ayrı süreçler değil artık. Takımlar, hiyerarşi yerine birlikte çalışan uzmanlardan oluşuyor.

Elini kirletmeyen biriyle hiç kimse çalışmaz. Okulda ödev olarak yazdığı programlar dışında bir deneyimi olmayan adamın zaten tasarım bilgisi de olamaz. Dahası, bu işlerden bir kaç yıl kopmuş birinin bile tasarım becerisi hızla düşmeye başlar.

Okullu mu Alaylı mı?

Bir başka saçma tartışma. Genelde bu tartışma teorik bilgi mi yoksa pratik bilgi mi gibi yanlış bir düzleme de çekiliyor. O yüzden ikisine de bakalım.

Örneğin elindeki dosyalardan bazı bilgileri tarayıp istatistiksel bir sonuç çıkarmak isteyen bir kişiye Python ile basit betikler yazmaya yetecek kadar bilgisayar bilimleri bilgisi yeterli olabilir. Benzer şekilde bir felsefeci hiç programlama öğrenmeden yalnızca karmaşıklık teorisini çalışarak kendi alanında ihtiyaç duyacağı bilgilere kavuşabilir.

Karşılaşılan herhangi bir problemi çözebilecek genel bir program yazma yeteneği ya da bilgisayar bilimleri alanında yeni bilgiler keşfedebilecek bir araştırma yeteneği için ise üniversite eğitimi programında yer alan hemen her konuyu öğrenmek şart.

Bilgisayarlar bir çok katmandan ibaret. Algoritmalar, kitaplıklar, diller, işletim sistemi, işlemci, transistörler, elektronlar. Bu katmanların hangi seviyesinde çalışırsanız çalışın altınızda kalan kısımlara bağımlısınız. Dolayısıyla işinizi daha iyi yapabilmeniz altta neler döndüğünü bilmenize bağlı.

Teorik ve pratik bilgiden biri daha üstün diyemezsiniz. Daha iyi bir algoritmayla kazandığınız teorik hızı, o algoritmanın işlemci önbelleği kullanımı daha kötü olduğu ve veri setiniz yeterince büyük olmadığı için geri kaybedebilirsiniz örneğin.

Bu bilgileri nereden ve nasıl öğrendiğiniz değil, öğrenmiş olmanız önemli. Dahası dünyanın en iyi üniversitelerinde bile okusanız, işlenen konular ve yaptığınız ödevler sizi bu alanda uzman yapmaya yetmeyecek.

Orko der ki...

Eskiden İstanbul'da her kahvede, satrançta o kahvedeki herkesi yenmiş ama başka birileriyle oynamadığı için Kasparov'u yenerim ben diye böbürlenen tipler vardı.

Ne iş yapıyorsanız yapın, o alanda dünyanın en iyileri kimse onları bulun ve onları tanımaya ve geçmeye çalışın. Bilgisayar alanında bir şeyler keşfetmiş her araştırmacının, günlük yaşamda kullandığımız ürünleri yapan her geliştirici ve girişimcinin, Internet üzerinde blog'ları, sunumları, ders videoları, makale ve kitapları var.

Hayatında büyük ölçekli bir ar-ge projesinde yer almamış, eski ders kitaplarından okuduğu arkaik tanımları öğreten hocaları, yaptığı e-ticaret sitesi ya da muhasebe programıyla kendini girişimci sananları, yabancı dilden yarım yamalak çevirilerle kitap yazanları, forumlarda iki üç soru cevapladığı için büyük üstat havalarına giren tipleri ciddiye almayın.

Yoksa yukarda alıntıladığım kişiler gibi kendi küçük mağaramızda dışardaki dünyanın gölgeleriyle oyalanır dururuz.



09 May 2016

Vodem’in (Huawei 4231) Linux’ta Ethernet Olarak Kullanımı


Elime Vodafone’un bir modemi (Vodem) geçti. Bilgisayarıma taktığımda Linux bir ethernet olarak görmedi ve doğrudan çalışmadı. Daha önce Turkcell’in yeni nesil VINN’larında bu hiç başıma gelmediğinden, bir miktar uğraşmam gerekti.

Huawei’nin K4203 isimli bir modeliymiş (lsusb sağolsun). Kendisi öntanımlı olarak MBIM isimli, Linux 3.8’de desteği gelen bir protokolle bağlanıyormuş (Google sağolsun). Bir sonraki nesil bir cihaz kısaca. Ama ethernet aygıtı olarak da çalıştırmak da mümkün. Bunun için usb_modeswitch ile cihaza komut gönderilmesi gerekiyor.

lsusb çıktısında aygıtın ID’sini 12F1:1F1C olarak görüyoruz:

# lsusb
# lsusb | grep Huawei
Bus 002 Device 012: ID 12f1:1f1c Huawei Technologies Co., Ltd.

usb_modeswitch ile şu komutu gönderince kendisi bir ethernet aygıtına dönüşüyor:

# usb_modeswitch -v 12d1 -p 1f1c -W -I -M 55534243123456780000000000000011062000000101000100000000000000
Taking all parameters from the command line

* usb_modeswitch: handle USB devices with multiple modes
* Version 1.2.5 (C) Josua Dietze 2012
* Based on libusb0 (0.1.12 and above)

! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor= 0x12d1
DefaultProduct= 0x1f1c
TargetVendor= not set
TargetProduct= not set
TargetClass= not set
TargetProductList=""

DetachStorageOnly=0
HuaweiMode=0
SierraMode=0
SonyMode=0
QisdaMode=0
GCTMode=0
KobilMode=0
SequansMode=0
MobileActionMode=0
CiscoMode=0
MessageEndpoint= not set
MessageContent="55534243123456780000000000000011062000000101000100000000000000"
NeedResponse=0
ResponseEndpoint= not set

InquireDevice disabled
Success check disabled
System integration mode disabled

Looking for default devices ...
searching devices, found USB ID 12d1:1f1c
found matching vendor ID
found matching product ID
adding device
searching devices, found USB ID 04f2:b230
Found device in default mode, class or configuration (1)
Accessing device 012 on bus 002 ...
Getting the current device configuration ...
OK, got current device configuration (1)
Using interface number 0
Using endpoints 0x01 (out) and 0x81 (in)

USB description data (for identification)
-------------------------
Manufacturer: Vodafone(Huawei)
Product: HUAWEI Mobile
Serial No.: FFFFFFFFFFFFFFFF
-------------------------
Looking for active driver ...
OK, driver found; name unknown, limitation of libusb1
OK, driver "unkown" detached
Setting up communication with interface 0
Using endpoint 0x01 for message sending ...
Trying to send message 1 to endpoint 0x01 ...
OK, message successfully sent
Resetting response endpoint 0x81
Resetting message endpoint 0x01
-> Run lsusb to note any changes. Bye.

Artık lsusb ile baktığımızda USB ID’sinin de değiştiğini görüyoruz:

# lsusb | grep Huawei
Bus 002 Device 013: ID 12d1:1590 Huawei Technologies Co., Ltd. 

Şimdi bir ağ aygıtı olarak da onu görebilmeliyiz ve eğer ağ yöneticimiz otomatik IP almaya ayarlıysa IP’sini bile almış olmalı:

# ip a
8: enp0s29u1u3: mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 86:c9:ec:4d:51:bb brd ff:ff:ff:ff:ff:ff
inet 192.168.9.100/24 brd 192.168.9.255 scope global enp0s29u1u3
valid_lft forever preferred_lft forever

Bu yaptığımız ayarlar, ne yazık ki kalıcı değil. Modemin üzerine böyle bir bilgi yazamıyoruz. Onun yerine Linux’un aygıt yöneticisi olan udev’e bu modemin her takıldığını farkettiğinde bu komutu çalıştırmasını söylememiz gerekiyor.

Bunun için udev’in kuralları okuyabileceği bir dosya oluşturuyoruz:

echo 'ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1f1c", RUN+="/usr/sbin/usb_modeswitch -v 12d1 -p 1f1c -W -I -M 55534243123456780000000000000011062000000101000100000000000000"'> /etc/udev/rules.d/45-usb_modeswitch.rules

udev’e kuralları tekrar okumasını söylüyoruz:

# udevadm control --reload-rules

Artık “Vodem”i taktığımızda, otomatik olarak ethernet kartı olarak görünmeli ve DHCP’ten IP alabilmeli.

Not: Aygıta gönderilmesi gereken “55534243123456780000000000000011062000000101000100000000000000” gibi bir mesajı kafadan yazmadım :). İnternet’ten araştırdığımda rastladım. Sadece bu cihaz değil, başka Huawei cihazlarında da işe yarıyor gibi okudum. Teknik kaynağını bilen varsa, yorumlara eklerse sevinirim.



23 March 2016

Bir “Portal” üzerine…


Türkiye’de özgür yazılım katkıcılığı yapmak zor iş… Hatta katkıcılığı bırakın topluluk üyesi olmak bile pek kolay değil…

2007 benim için bu alanda bir milat, kişisel aydınlanma, özgür yazılımın alnımda çıkardığı 3. göz… Bu tarihi referans alırsam 2007 öncesi -topluluk/camia ne derseniz artık- aitlik süreci çok zordu. Bakıyorum da 2007 sonrasından ta ki hatırlamak istemediğim bir tarihteki Özgürlükİçin.org çöküşüne kadar gerçekten güzel zamanlar geçirmişiz… Bu çöküşten sonra ise, topluluk ve aidiyet dışında özgür yazılım dünyasıyla olan bağlarımız da zayıflamaya başladı… En büyük zorluk ise bir portal, bir ana gemi olmayışı.

Efsanevi Özgürlükİçin sitesi hayalet gemi gibi bant genişliklerinde seyretmekte... Efsanevi Özgürlükİçin sitesi hayalet gemi gibi bant genişliklerinde seyretmekte…

Bu zorluğu kısaca masaya yatırırsak -aslında buna da çok zamanım yok- madde madde gidelim:

  • Özgür yazılım dünyasından haberler / sürüm duyuruları
  • Ortak bir paylaşım/yardımlaşma alanı – forum
  • Blog kardeşliği – gezegen
  • İncelemeler – özellikle oyun ve heyecan verici şeyler

Bu ve bunun gibi onca şeyi bir araya getiren harika bir şeye sahipmişiz; özgürlükiçin.org hatta o zman o kadar zenginmişiz ki bir de pardus-linux.org‘a sahipmişiz… ve cahilmişiz… bunların artık geride kaldığını kabul etmek gerekiyor…

Özgür yazılımda böyle “değerler” (bu kelimeyi kullanmayı da pek sevmiyoırum) ne kadar önemliymiş, onu düşünüyorum bir kaç gündür… Bunların eksikliği gerçekten özgür yazılım dünyasını takip etmekte insanı çok zorluyor… Hadi ben İngilizce biliyorum takip edebiliyorum… Ya ait olmak? Paylaşmak? Yardımlaşmak? Birlikte bir şeyler yapmak isteyip de o marşa basıp o enerjiyi boşaltabilmek? Yapabilmek? Bunlar yok…

Atlamadan bir de teknokedi.com vardı, o da bu açığı kapatmak için kendi öz amacı olmasa da alan yaratmak için katkı vermişti. Sevgili Ali Işıngör abimizin iyi niyetiydi…

Şu anda bu alan içice dağınık halde… Andoid, tabletler  ve mobil teknoloji birçok kişinin başını döndürdü ve masaüstü arka plana itildi, fakat şimdi GNU/Linux masaüstünün güçlenerek geldiğini görüyorum. Steam’in GNU/Linux’a gelmesi ve süpersonik oyunları Linux’a taşıması, Nvidia – Ati sürücülerindeki yenilikler + Vulkan vs, ve nihayetinde de Microsoft’un başlayan Linux aşkı(!) (hem Office’in potansiyel Linux sürümü beklentisi hem de Office 365)… Bunlar harika şeyler aslında… Masaüstünde Linux kullanımını kısıtlayan birçok sıkıcı bahane ortadan kalkıyor -konuyu uzatmamak adına özgür yazılım felsefesiyle kapalı yazılım tercihini kullanıcıya bırakalım… Yakında kendi adam akıllı dağıtımıyla pazara çıkacak masaüstü/dizüstü bilgisayarlar görmeyi umuyorum. (Dejavu değil…)

Konuya dönersek, şu anda bildiğim birkaç site arasında GNU/Linux dünyasına özel bir amiral gemi görebileceğim bir portal yok. Bildiğim siteler ise adeta kahramanca bir bireysel mücadele ile ayakta tutulmaya çalışılıyor, içerik sunmak için büyük emek ve zaman harcanıyor… Bunlardan bazıları:

  • getgnu.org – Fortran takma ismiyle adeta bir süperkahraman edasıyla paylaşılabilir bütün haberleri neredeyse tüm özgür yazılımla ilişkili forumlara ileten süper kişi. nasıl yaptığını hala çözebilmiş değilim.
  • linuxnotlari.co – Sevgili Mustafa Gökay’ın epeyce emek verdiği Linux Haber Platformu. OMG ubuntu tadında
  • acikgunluk.net – Sevgili Özgür Ilgın’ın günlüğü, özgür yazılım artı hobileri (özel ilgi alanı nostaljik ve avatür türk sineması)

* Başka bildiğiniz aktif sayılabilecek site varsa yorumlara yazarsanız sevinirim.

Yeni bir site?

Hayır, yeni değil, birleştirici, geniş ve yeni içeriği sunan bir site… Kolektif ve eğlenceli, hatta daha önce olmadığı kadar eğlenceli olmalı… Özgür yazılım caps galerisi dahi olsa olur…

Neden?

Çünkü ihtiyaç var

Peki gönüllü mü olacak, nasıl ayakta duracak?

Ticari bir proje olmalı. Para kazanmalı, en azından masraflarını çıkarmalı.

Özgür yazılım projeleri ve ticari amaç???

Böyle bir tabu var, ticari amaç güdülebilir. Özgür yazılım ürünleri dahi parayla satılabilir ki bu gibi işlerde “reklamsızlık” sanki bir bekaret kemeri gibi her projeye iliştiriliyor. Çok anlam veremiyorum…

Ticari amaç olmalı, diğer türlü hiçbir şekilde ayakta duramadı. Bağış kültürü bizim ülkemizde yok, şahsi fedakarlık bir yere kadar… Bir de bu işleri üstlenen kişiler sürekli rica minnet ile istekte bulunmak gerekiyor; damdan düştüm bilirim, yok bize sunucu, yok bize alan adı lazım diye aramaktansa parayı basıp almak en sağlıklısı.

Kim yapacak? Nasıl bir model?

Şu an bu işi hobi olarak yapan arkadaşlar ve böyle bir projeye girmek isteyen kişiler bir araya gelebilir, gelir paylaşımlı kolektif bir model üzerinde anlaşabilir. Dileğim de budur. Şayet onlar olmazsa, İngilizce bilen birkaç üniversite öğrencisi arkadaş böyle bir projeye girerse hem hobi, hem harçlık hem de ileriye yönelik belki de kendi işlerini kurabilirler.

Gelir yeterli olur mu?

Varsayalım Google Adsense ile yola çıktılar, Türkçe içeriğin reklam başı getirisi tabi ki İngilizce içerikten daha düşük olacaktır, ama akmasa da damlar, ileriye doğru hacim arttıkça tatmin edici bir gelir gelebilir.

Özellikle Steam sayesinde oyun inceleme ve tanıtım içeriklerinin ileride büyük potansiyeli olacağına inanıyorum.

Zorlukları?

Tahmin ettiğim bazı zorlukları var, bunun yanı sıra yukarıda bahsettiğim arkadaşların yaşayıp deneyimlediği zorluklar da vardır. Sonuçta protonların çarpıştırmayacakları için kolayca üstesinden gelebileceklerini düşünüyorum. Linus Torvalds’ın “Just for fun – Yanlızca Eğlenmek İçin…” sözüne yaslanıp eğlenceli bir yola girilebilir…

***

Yukarıdaki kendi kendime röportajım daha kısa bir yazı yazmak içindi, kendimi havaya sokmak için değildi. Epeydir bir şey karalamamıştım, lafı iyice uzatmak istemedim 😉

Dilerim bu yazım bir açık davet olur, en azından bir tartışma başlar ve şu üzerimizdeki ölü toprağını silkeleyebiliriz.

***

Bonus: “Var mı peki bu haberleri takip edebileceğimiz yabancı bir site?” diyenler özgür Ilgın’ın 10 sitelik listesine bakabilirler: En çok takip ettiğim 10 yabancı GNU/Linux haber ve blog

***

Son olarak, ben bu yukarıda yazdıklarımı düşünürken LKD‘den şöyle bir ileti de geldi. Katkı verebilceklerin dikkatine:

Merhaba,

Dünyada özgür yazılım ve ilgili alanlar (kişisel verilerin gizliliği, ifade özgürlüğü, telif hakları vs.) hakkında önemli gelişmeler yaşanmakta. Ancak bu gelişmeler hakkında yayımlanmış güncel haber ve yazılar yabancı dil (başta İngilizce) bilmeyen ilgililere ulaşamamakta. Bu nedenle, güncel haber ve yazıları Türkçeye çevirmek amacıyla bir çeviri grubu kuruyoruz. Çeviri grubu çalışmalarına LKD üyesi olsun ya da olmasın özgür yazılıma gönül vermiş herkes katılabilir.

Çevirisi yapılacak haber ve yazılar, LKD tarafından hazırlanacak bir sitede düzenli olarak yayımlanacak. Ayrıca aylık olarak da bülten haline getirilerek duyurusu yapılacak.

Çeviri grubuna katılmak için [email protected] adresine, kısaca kendinizi tanıtan ve çalışma grubuna katılmak istediğinizi belirten bir e-posta atmanız yeterli olacaktır.

— 

ibrahim izlem GÖZÜKELEŞ

https://plus.google.com/109568522902358862122/posts/SC6dNnTsZAJ

~DAVET~

Özgür Yazılım Günleri 2016: LibreOffice Geliştirme ve Yaygınlaştırma ToplantısıÖzgür Yazılım Günleri 2016: LibreOffice Geliştirme ve Yaygınlaştırma Toplantısı –

(twitter bağlantısını yapıştırınca yukarıdaki kendiliğinden çıktı, vay be!)

Fırsatınız varsa katılın, detaylı bilgi için: http://ozguryazilimgunleri.org.tr/2016/etkinlik-programi/

Mutlu günler.

Sonrası Bir “Portal” üzerine… blog.bluzz.net | Günlüğüm ilk ortaya çıktı.



17 February 2016

PostgreSQL'de Türkçe sıralama destekli veritabanı yaratmak


Bu soru bana çok soruluyor, arşiv olsun diye yazayım. Öncelikle bu komut işletim sisteminin İngilizce ve UTF-8 kurulduğunu varsayıyor.

Komut şu:

CREATE DATABASE tr ENCODING='UTF-8' LC_COLLATE = 'tr_TR.UTF-8' LC_CTYPE='tr_TR.UTF-8' TEMPLATE template0;

Burada önemli şeylerden birisi CTYPE. Onu C yapsaydık upper/lower fonksiyonları düzgün çalışmazdı.

Bir de şablon olarak template0 kullanmalıyız -- bunun nedeni template1'in dil kodlamasının İngilizce olması (üstteki varsayım nedeniyle).

En basit hali ile konu bu kadar.



04 February 2016

One of The Largest Events in Europe: FOSDEM



This year, I've been attended Fosdem for the first time. Fosdem is one of the largest events of free software and open source world that happens every january, gathering thousands of the developers (+5000) in Brussels. It is great opportunity to get in touch with the developers of world's leading organisations.

Fosdem has really strong infrastructure to satisfy needs of the attenders.
I've attended the event through Episkey Limited Company's travel fund which is part of Cottange Labs. I've seen the converisation on the mailing list and said if there is any other company that supplies travel fund please let me know because Google have not published scholarship for Fosdem and I could not find another company. Emanuil Tolev has volunteered since 2011 for Fosdem. He replied me and said me and my coworkers would like to sponsor for a person. Then we started a private thread and solved sponsorship requirements. I am thankful for travel grant to Emanuil and Episkey Limited developers.

First day of the event, I've met with Michel, he works as Linux Kernel developer at Intel. We took coffe and talk little. Talking with the kernel developers makes me happy and I really feel very excited. After the meeting, I've discovered the event place, it was at Brussels University, ULB Campus, Solbosh. Fosdem is biggest event that I've attended untill now.

In general, I've joined Main Track sessions. Rspamd is one of my favorites. Vsevolod Stakhov is developer of Rspamd, he told project stages quite clear.

Libreboot and Frosted Embedded Posix OS are my favorites as well. I love to learn about low level software that's why I contribute Linux Kernel. I am former Linux Kernel at Outreachy and would like to keep contribution.

There was an Embedded Systems DevRoom, it was in Building U. I should say, location of the building is hard to find little because there was no sign about Fosdem front of the building. We could not see at least.

In the evening, I've met with my Turkish friends. We have a community photo:


Second day, I've met with Emanuil to talk face to face. He said, I really am glad to sponsor you. That's great to hear.

I've bought tshirts to donate the organisations. It is really great, I am happy to be part of free software and to move it forward.


There was a talk for in memory of Ian Murdock. I would have loved to attend it but I had to leave early because had a flight in the evening. Talks are stored here so far. This is great opportunity to watch the presentation later.

I am very happy about my first Fosdem experience because I improved my network recognizing great folks.

I've seen on the event brochure, it says 8000 developers attended! and you can see diversity at the event. Hope to improve diversity and see underrepresented groups in computer science.

Fosdem is a free event, you can attend without registration. We should donate individualistically or institutionally, if we woud like to see the event in future years.

08 January 2016

Stow ile yapılandırma paketleri


GNU/Stow bir süredir bildiğim fakat bir türlü deneme fırsatı bulamadığım çok basit bir paket veya sembolik link yöneticisi. Her ne kadar /usr/local içerisindeki linkleri yönetmek için düşünülmüş olsa da, esnek yapısı nedeniyle kullanım alanlarından biri de ev dizininde bulunan yapılandırma dosyalarını (yani nokta dosyaları ya da dotfiles) yönetmek.

Örneğin ~/dotfiles içerisinde x ve zsh adında iki dizininiz var. Bu dizinler stow için aslında birer paket ve diyelim bu paketlerin yapısı şu şekilde:

~/dotfiles
├── x
│   ├── .i3
│   │   └── config
│   ├── .Xdefaults
│   ├── .xsession
│   └── ...
└── zsh
    ├── .zlogin -> .zprezto/runcoms/zlogin
    ├── .zlogout -> .zprezto/runcoms/zlogout
    ├── .zprezto
    │   └── ...
    ├── .zpreztorc -> .zprezto/runcoms/zpreztorc
    ├── .zprofile -> .zprezto/runcoms/zprofile
    ├── .zshenv -> .zprezto/runcoms/zshenv
    └── .zshrc -> .zprezto/runcoms/zshrc

Eğer kullandığınız ve herhangi bir x ortamı bulunmayan bir sunucuda, sadece zsh ayarlarınızı kullanmak isterseniz stow zsh dediğinizde, stow sizin için sadece zsh dizini altında bulunan dosyalar ve dizinlerin ev dizininde yer alan gerekli linklerini oluşturacaktır. Bu şekilde yapılandırma dosyalarınızı paketlere bölerek, istediğiniz yapılandırmayı istediğiniz makinada rahatça kullanmanızı sağlıyor.

Bir başka örnek kullandığım yapılandırma dosyalarım verilebilir. gitin sağladığı dağıtık model ile her zaman tüm makineler arası senkronize olan bu dosyalar, stow ile de sadece gerekli makinede gerekli uygulamaları yapılandırmak için kullanılabiliyor.



03 September 2015

Bir Linux Yaz Kampı’nın Daha Ardından: Perde Arkası


Bilindiği gibi Linux Kullanıcıları Derneği (LKD), İnternet Teknolojileri Derneği (INETD) ile işbirliği içinde her sene yaz aylarında, herkesin katılımına açık olan 15 günlük Linux yaz kampı düzenlemekte. Bu yaz kampına katılım için katılımcılardan herhangi bir ücret alınmıyor. Sadece katılımcıların kendi yol/konaklama/yemek masraflarını karşılamaları gerekiyor. KYK ve üniversite yurtlarında uygun fiyatlı konaklama imkanı sunuluyor. Bu sene, yani 2015 yılında bu kampın 6.sı düzenleniyor. Son 4 yıldır ise Linux Yaz Kampı, Bolu Abant İzzet Baysal Üniversitesi’nde üniversitenin de desteği ile düzenleniyor. Geçtiğimiz 5-6 yıldır her sene artan başvuru sayıları bu organizasyonun başarısının bir göstergesi. Ben son birkaç yıldır aktif olarak bu organizasyona destek olamasam da e-posta grubunu elimden geldiğince takip ediyorum. Bu yazıya başlarken bu kadar popüler olan bir organizasyonun perde arkasında neler olduğu ve gönüllü dernek üyelerinin bu etkinliği gerçekleştirebilmek adına nelerle özenle ilgilendiği konusunda herkesin fikri olsun istedim. Şimdi detaylar…

Öncelikle başvurular alınmaya başlamadan önce yapılması gerekenleri sayarak başlayacağım. Kamp tarihinin belirlenmesi (Ramazan Ayı ve Bayramı ile çakışmamasına özen gösteriliyor.), üniversite ve yurt müdürlükleri ile iletişime geçilip belirlenen tarihlerde dersliklerin ve yurtların müsait olduğunun netleştirilmesi, gönüllü eğitmenler ile iletişime geçilip belirlenen tarihlerde kampa katılıp katılamayacakları ve hangi dersleri/sınıfları açabileceklerinin belirlenmesi, web sitesinin güncellenip kayıt almaya hazır hale getirilmesi, sponsor dosyasının hazırlanıp çeşitli firmalara sponsorluk teklifinde bulunulmak üzere gönderilmesi, kampta dağıtılacak promosyon malzemelerinin ve katılımcılara yol gösterecek afişlerin belirlenmesi, hazırlanması. Özetle, daha ortada görünen hiçbir şey yokken hummalı bir çalışma başlıyor.

Başvurular başladığında tüm kayıtlar veritabanında depolanıyor. Başvuranlar arasında üniversite öğrencilerinden, çok çeşitli kurum ve şirketlerde çalışanlara kadar farklı yaş ve hatta meslek gruplarından kişiler oluyor. 2015 yılındaki toplam başvuru sayısı 775. Sınıflar ve eğitmenlerin üst limiti belirlediği toplam kontenjan ise 300 kişi civarı. Dernek olarak stratejik görevlerdeki kişilerin eğitiminin daha önemli olduğunu düşündüğümüz için başvurularda öncelik görevlendirme alan kamu ve üniversite bilgi işlem personellerine veriliyor. Ancak daha önce de belirttiğim gibi kampa katılım herkese açık ve başvurular kapandıktan sonra kontenjan elverdiğince homojen bir seçim yapılıyor. Bu seçimler yapılırken daha önce INETD ya da LKD’nin benzer etkinliklerinde çeşitli sebeplerle kara listeye alınmış kişilerin de elenmesi gerekiyor. Seçim sürecinde yeterince hızlı olunamazsa gecikmeler yaşanabiliyor. Bu sene de gönüllü arkadaşlarımızın yoğunluğu sebebiyle sonuçları açıklamakta biraz geciktik.

Başvuranlar arasından elimizden geldiğince adil ve homojen bir seçim yaptıktan sonra kampa katılmaya hak kazananların bir listesi yayınlanıyor. Bu kişiler ile iletişime geçilerek kesin kayıtları yapılıyor ve bundan sonra yapmaları gerekenler açıklanıyor. Bunun yanı sıra bir yedek liste, bir de reddedilenler listesi oluyor. Tabii ki tüm bu kişilerle de iletişime geçilip durumdan haberdar ediliyor. Bu sırada üniversite ve KYK yurtları ile iletişim sürdürülerek kaç kadın kaç erkek katılımcı olduğu bilgisi veriliyor ki hem yaz okulu ya da staj sebebiyle yurtta kalmak isteyen öğrencilerin kontenjanlarını işgal etmeyelim, hem de Linux Yaz Kampı katılımcıları açıkta kalmasın. Bir yandan da eğitmenlerin geliş – gidiş tarihleri ve konaklama imkanları netleştiriliyor.

Eğitimlere kabul edilen kişilerden aynı sınıfta ders göreceklerin bilgi düzeylerinin birbirine yakın olmasına gayret ediliyor. Yoksa sınıftaki hiç kimse memnun kalmıyor, ders ya çok hızlı geliyor ya da çok sıkıcı. Bunun önüne geçmek için birkaç sene önce eğitimlere başlamadan bir seviye belirleme sınavı yapılmasına karar verilmişti. Bir yandan eğitmenler ve organizatörler bu sınavları hazırlamak için çalışıyorlar. Geçtiğimiz senelerde eğitimlerin başlamasına çok az bir süre kalmasına rağmen onaylanmış katılımcılardan kampın nerede yapılacağı, eğitim için ücret ödenip ödenmeyeceği, dersler başladıktan birkaç gün sonra kampa gelip gelemeyecekleri gibi, kamp web sitesinde üzerine basa basa belirttiğimiz soruları içeren e-postalar yağıyordu. Birçok kişiye garip ya da saçma gelmiş olabilir ancak bu sorunun üstesinden gelmek için kampa katılmak isteyenlere bu soruların yanıtlarını içeren ufak bir test yaptık. Açıkçası işe yaramış görünüyor. 2015 yılında kampın başlamasından hemen öncesine kadar alınan ve gönderilen e-posta sayısı 2500’ü geçmişti. Buraya kadar işlerin karışık olduğunu düşünüyorsanız gelin bir de bu noktadan sonra neler olduğuna bakalım.

Yaz kampının başlamasına 2 gün yani tam 48 saat kalmasına rağmen, çeşitli sebeplerle kampa katılamayacağını belirten katılımcılardan e-postalar yağıyor. Son anda çıkan acil işler, devam etmekte olan stajlar, kimi zaman da belirtilmeyen sebeplerle iptal e-postaları yağmaya devam ediyor. Elbette, insanlık hali, gerçekten ters giden ve önceden öngörülemeyen şeyler, seyahat engeli oluşturabilecek çeşitli sağlık sorunları olabilir. Ancak son anda yağmaya başlayan iptal e-postalarının hepsine bu gözle bakabilmemiz ve anlayışla kabul etmemiz mümkün değil. O yüzden kamp web sitesinin Sık Sorulan Sorular bölümünde belirttiğimiz gibi kampa kesin kayıt yapıldıktan sonra başvurusunu iptal edenler LKD ve INETD’nin kara listesine alınıyor. Kara listeye alınanlar gelecekte bu iki derneğin düzenlediği herhangi bir kontenjanlı etkinliğe kabul edilmiyor. Kişileri kara listeye alırken iptal e-postasını gönderen kişinin iyi niyetine ve samimiyetine güvenerek, önceden tahmin edilemeyen önemli sorunlar yaşadığını belirten katılımcıları hariç tutuyoruz. Bunu anlamak çoğu zaman birkaç kez karşılıklı yazışmayı gerektiriyor. Bu konuda da herkese eşit davranmaya özen gösteriyoruz. Elbette iptal eden katılımcıların yerlerinin doldurulması gerekiyor. Bu noktada yedek listeler devreye giriyor ancak kampın başlamasına 1-2 gün kala yedek listedeki insanlara haber vermek pek hoş olmadığı gibi, pek verimli de olmuyor. Yine son ana kadar katılımcılardan gelen çok çeşitli sorular ve örneğin konaklama şeklinin değiştirilmesi gibi çözülmesi gereken sorunlar oluyor. Tüm bunların sonucunda son ana kadar yurt listelerinin ve katılımcı sayılarının güncellenmesi gerekiyor. Bütün bu sürecin üzerine kayıt yaptırıp haber vermeden kampa gelmeyenler ya da kampa gelip sonra kaçanlar da oluyor. Eh biz de anaokulu öğretmeni değiliz tabii kocaman insanları kulağından tutup getirelim ya da köşede tek ayak üstünde durma cezası verelim. Elimizden geldiğince adil ve herkese faydalı olacak bir organizasyon yapmaya çalışıyoruz ama elimizde olmayan şeyler de oluyor. Örneğin bu sene yukarıdan gelen bir emirle kampın son haftası KYK kadın yurtlarını boşaltmak zorunda kaldık. Şehirle üniversitenin ulaşımı ise belediyedeki koşullar değiştiğinden istediğimiz gibi sağlanamadı.

Sonuç olarak, bu kampın organizasyonunda perde arkasında yaşananları olabildiğince kısa şekilde anlatmaya çalıştım. Yazıyı daha da uzatıp okunabilirliğini azaltmamak adına bahsedemediğim şeyler de var, onlar da başka bir yazıya kalsın. Elbette bizler de insan olduğumuzdan hatalarımız da oluyordur. Ancak yukarıda anlattığım bütün hazırlık sürecinin ve kamp sırasındaki eğitim sürecinin tamamının gönüllülük esasına dayandığını bir kez daha belirtmem gerekir. Bu süreçlere katkı veren herkes kendi profesyonel işlerinde çalışmaktadır. Organizasyonla ilgilenen ya da kampa eğitmen olarak katılan herkes bu kamp için zaman yaratmakta, işlerinden izin alarak (kimi zaman alabildikleri kadar ya da uzaktan çalışarak), herhangi bir ücret almadan, kampa katılmakta ve katkıda bulunmaktadırlar. Kampın eğitmenlerin yol-konaklama ücretleri, sınıflarda kullanılacak olan elektrik kabloları, projeksiyon cihazları, perdeler gibi giderleri ise LKD, INETD, Bolu Abant İzzet Baysal Üniversitesi ve bulabilirsek sponsorlar tarafından karşılanmaktadır.

Tüm bu süreç sosyal bir deney olsaydı herhalde pek çok insanın kendilerine ücretsiz olarak sunulan imkanları ciddiye almayışlarının güzel bir kanıtı olurdu. Oysa insanlar böyle bir etkinlik için para ödeselerdi son dakika iptalleri ya da şartları okumadan kayıt formunu dolduranlar yine bu kadar çok olur muydu? Ama bu kez de derneğin misyonuna ters olan bir etkinlik olurdu. LKD’nin tüm etkinlikleri herkese açık ve ücretsizdir. Çünkü özgür yazılım herkesçe erişilebilir olmalı, özgür yazılım ve Linux’u olabildiğince fazla kişiye anlatabilmeliyiz. Parası olanlara değil, gerçekten istekli olanlara ulaşabilmeliyiz. İşte yukarıdaki bu uzun yazı sadece bu amaç doğrultusunda verilmiş emeklerin çok kısa bir özetidir. Bu organizasyonda emeği geçen herkese teşekkürler, iyi ki varsınız.



24 January 2015

Amazon Web Services


Amazon Web Services hakkında internette zilyon tane makale bulabilirsiniz. Ben ilk başlarda araştırırken çok fazla türkçe döküman görmedim. Gerçi türkçe döküman hiç aramadım, yoksa kesin birileri yazmıştır. Amazon Web Services, biz kısaca AWS diyelim. AWS benim için atıl kapasiteye giden...

The post Amazon Web Services appeared first on Bahri Meriç CANLI Kişisel Web Sitesi.



21 January 2015

SPF Kaydı ve all ibaresi


Emailleriniz SPAM’e düşmesin – DKIM – SPF ve DMARC Ayarları başlıklı yazımda gönderdiğiniz epostaların spam’e düşmemesi için yapılabilecek ayarlardan bahsettim. SPF kaydında bir konudan daha bahsedilmesi gerektiğini farkettim. SPF kaydındaki […]

31 December 2014

Socks Vekil Sunucu (Proxy) ile Git Kullanımı


Öncelikle yazımdaki araya sıkışıp kalan İngilizce kısımlar için anlayış göstereceğinizi umarak başlamak istiyorum.  Bu yazımda, socks vekil sunucu kullanarak uzaktaki bir git sunucusuna (ssh protokolünü kullanarak) bağlanmak için izlediğim birkaç küçük adımı paylaşmak istiyorum.

Gelelim asıl konumuza. Vekil sunucu olarak “ssh-tunneling” [2] yardımıyla kendi yerel makinamı kullanmaktayım ve hedef git sunucu olarak github.com’u ele almak istiyorum. İnternette `git clone [email protected]:repo.git` şeklinde gördüğümüz ifadeler sadece ssh protokolünün kısa yazımıdır ve `ssh://[email protected]:repo.git` ifadesi ile aynı anlama gelmektedir [1].

Örnek olarak aldığımız github.com adresi için ~/.ssh/config dosyasına birkaç ekleme yapmamız gerekiyor. Kendi kullanıcı dizininizde bu dosya mevcut değilse oluşturup düzenlemeye devam edebilirsiniz. ~/.ssh/config dosyasına aşağıdakine benzer şekilde eklemelerinizi yapabilirsiniz.

Host github.com
    User                    git
    ProxyCommand            nc -x localhost:1080 %h %p

İlk olarak burada kullandığımız `nc` (netcat) aracı sisteminizde yoksa bunu kurmanız gerekmekte. Kendi sistemim Debian olduğundan dolayı aşağıdaki komutla bu paketi kuruyorum.

apt-get install netcat-openbsd

Daha sonra, Host ile belirttiğimiz alana git sunucumuzun adresini giriyoruz (github.com yerine kendi sunucumuz olabilir). User alanı ise git sunucusu üzerinde size açılan kullanıcı adı olacaktır. ProxyCommand bağlantı sırasında vekil sunucumuzu kullanmamızı yarayacak temel alanımızdır. `-x` parametresi ile vekil sunucu adresimizi ve port numarasını belirttikten sonra `%h` ile hedef adresimizi (git sunucumuzu) ve `%p` hedef portumuzu belirtmiş oluyoruz.

Ayrıca

Port 444

alanı ile öntanımlı 22 yerine başka bir port kullanmamız (444 gibi) mümkün. Parola yerine ortak anahtar kullanarak giriş yapmak istiyorsak aşağıdaki eklemeyi (github.key yerine tabi ki kendi ortak anahtar dosyamızı belirterek) yaparak bu sorunu da halletmemiz mümkün.

IdentityFile ~/.ssh/github.key

Tüm bu adımlardan sonra uzaktaki git sunucumuza vekil sunucumuz üzerinden bağlanmaya hazırız. Yazının başında belirttiğim gibi bu adımlar ssh ile yapılan bağantıları kapsamaktadır. HTTP(S) için [3] adresindeki bilgilere göz atmanızı öneririm. Yazımın işinize yaraması dileğiyle.

[1] http://git-scm.com/book/tr/v1/Uzak-Serverda-Git-Protokoller

[2] http://www.revsys.com/writings/quicktips/ssh-tunnel.html

[3] http://cms-sw.github.io/tutorial-proxy.html



18 November 2014

Haydi sifreleyelim girisimi (let's encrypt initiative)


EFF bugun internetin gelecegini degistirme potansiyeli olan let's encrypt adini verdikleri projeyi duyurdu. Mozilla, Cisco, Akamai gibi devlerin yani sira IdenTrust ve Michigan Universitesi arastirmacilarinin da katkilariyla olusturduklari yeni bir sertifika otoritesi olan let's encrypt, web'in http'den https'ye gecisi onunde kalan son engelleri de kaldirmayi amacliyor. Bu yazida https'nin http'ye gore artilarini siralamaktansa let's encrypt otoritesini, girisimin kurmayi planladigi sistemi ve su anda gelistirmekte olduklari ACME protokolunu anlatacagim.

Internet guvenligi arastirma grubu, ISRG, ismiyle yeni olusturulan ve kar amaci gutmeyen bir organizasyon tarafindan isletilecek let's encrypt sertifika otoritesinin hangi problemi cozmeye calistigini aciklayarak baslamak yerinde olacaktir diye dusunuyorum. SSL/TLS'in genis capta uygulanabilmesinin onundeki en buyuk engellerden en onemlileri kurulum karmasikligi, burokrasi ve sertifikalarin yuksek ucretleri olarak goruluyor. 2015 yazindan itibaren ucretsiz olarak sertifika dagitmaya baslayacak olan yeni otoritemiz su siralar tek bir komut calistirilarak, hazirda sunulmakta olan sitelerin alan adi dogrulamasini yaptiktan sonra https'ye gecirilmesi islemini yapacak bir istemci yazilimi ve bu yazilimin insa edilerken temel alindigi protokol uzerinde calisiyor. Let's encrypt bu surecte gozetecegi ana prensipleri ise soyle siraliyor;

Bedelsiz: Alan adi sahipleri kontrol ettikleri alanlar icin hicbir ucret odemeden sertifika sahibi olabilecekler

Otomatik: Sertifika alim sureci ve yenilenmesi ve sunucuda konfigure edilmesi gibi islemler tamamen otomatiklestirilerek minimum operator mudahalesi gerektirecek

Guvenli: Let's encrypt modern guvenlik tekniklerinin ve alandaki en iyi uygulamalarin implemente edilebilecegi bir platform olacak

Seffaf: Verilen ya da gecersiz kilinan tum sertifikalar incelemek isteyen herkese acik olacak

Acik: Gelistirilen protokol herkese acik bir standart olacak, gelistirilen yazilimlar ise elverdigince acik kaynak olarak sunulacak

Katilimci: Tek bir organizasyonun kontrolunde olmaktansa her acik standartta oldugu uzere topluluktan katilimcilarin fayda saglayacagi tumlesik bir girisim olmayi amaclayacak

Gelelim nasil calistigina. Altyapi ve istemci yazilimi tamamlandiginda kendi ifadeleriyle

sudo apt-get install lets-encrypt  
sudo lets-encrypt ornek.com  

komutlarini calistirmak tum ayarlari ve sertifika surecini halletmek icin yeterli olacak. Peki arkaplanda neler oluyor? Aslinda bunun icin istemci yazilimin ne yaptigina bakmadan once ACME protokolune bakmakta fayda var. Taslak halindeki RFC'ye gore genel hatlariyla protokol soyle.

Istemci yazilimi operatore hangi alan adlari icin sertifika istedigini soracak. Bu islemin ardindan sertifika otoritelerinin bir listesi gelecek. Eger secilen otorite ucretsiz sertifika saglayan bir otorite degilse odeme bilgisi bu asamada istenecek. Daha sonra yazilim operatore kisa bir sure icinde sertifikanin verilecegini bildirecek. Arkaplanda sunucu, sertifika otoritesi ile ACME kullanarak operatorun belirttigi alan adlari icin sertifika isteginde bulunacak. Sertifika otoritesinin verilen sertifikanin tipine gore belirledigi gereksinimler yerine getirildiginde verilen sertifika otomatik olarak indirilecek ve web sunucu sertifikayi kullanacak sekilde yapilandirilacak. Tercihen operatore e-posta, sms vb. gibi bir yontemle haber verilecek. Normal web hizmeti surecinde web sunucu sertifika otoritesi ile gerektigi taktirde konusarak OCSP (cevrimici sertifika durum protokolu) cevaplari, sertifika listeleri gibi bilgileri almaya devam ederek sorunsuz bir web sunma isinin yururlugunu saglamaya devam edecek.

Burada araya girip bir iki konuya acikliga kavusturayim. Yukarida web sunucu olarak bahsedilse de e-posta, xmpp vs. gibi sertifika kullanabileceginiz her hizmette ACME protokolunu ve bu protokol uzerinden calisan istemciyi kullanabileceksiniz. Su asamada organizasyon dogrulamasi(organization validation) ya da kapsamli dogrulama(extended validation) surecleri nasil isleyecek cok net olmasa da alan adi dogrulama icin(domain validation) bir sorun yok gibi gozukuyor. Protokole doneyim.

Standardimizda uc adet anahtar/anahtar cifti tanimi bulunuyor.

Ozne acik anahtari (subject public key): Sertifikaya konu olan alanlar icin dahil edilecek acik anahtar

Yetkilendirilmis anahtar cifti (authorized key pair): Sertifika otoritesinin herhangi bir kimligin yonettigi/yonetebilecegi sertifikalar icin iletisimde kullanacagi anahtar cifti. Bu cift birden fazla kimlik icin kullanilabiliyor.

Sifirlama anahtari (recovery token): Diger anahtarlarin ya da anahtar ciftlerinin kaybedilmesi durumunda sertifika otoritesine kimlik kanitlamak icin kullanilabilecek gizli anahtar

Butun iletisim https uzerinden json ile saglaniyor. Kimlikler ACME'de anahtar ciftleri ile ifade ediliyor. Bir alan adi icin istek yapilmadan once gecerli bir anahtar ciftinin ozel anahtarinin o alan adini kontrol eden tarafindan sahipliginin gosterilmesi gerekiyor. Bu kisim bildigimiz acik anahtarli sifrelemenin aynisi oldugundan uzerinde cok durmaya gerek yok. Alan adinin ya bir DNS kaydi ile ya da sunulan bir dosya ile bir ozel anahtar tarafindan kontrol edildigi kanitlaniyor. Sertifika otoritesi bu kanitlama basarili olursa basarili mesaji ve sifirlama anahtari donuyor istemciye.

Kimlik kanitlama isleminin ardindan istemci, belirtilen alan icin bir sertifika imzalama istegi olusturuyor(CSR) ve bu istegi ozel anahtari ile imzalayip sunucuya gonderiyor. Sunucu gelen istegin daha once dogruladigi anahtar ciftine ait olduguna emin olduktan sonra sertifikayi olusturuyor ve istemciye gonderiyor. Bu cevapta sertifika yenilemenin tekrar bir dogrulama gerektirmedigi durumlarda, istemci tarafindan yenileme icin kullanilabilecek adres de gonderilebiliyor. Sertifikanin iptali icin istemci basitce, ozel anahtariyla imzaladigi iptal istemini sunucuya gonderiyor ve sunucu bu istegi aldiginda sertifikayi iptal ediyor. Istemci ya da sunucu yazacaklar icin taslak standardin burada atladigim teknik detaylarina yukarida paylastigim protokol adresinden ulasmak mumkun.

Sistem 100 metre yukaridan bakildiginda aciklamaya calistigim sekilde isliyor. Ucretsiz sertifikalarin edinilebilmesine olanak taniyacagi ve TLS implementasyonu onundeki teknik engelleri kaldirma potansiyeli oldugu icin interneti degistirebilecek bir proje olarak goruyor ve heyecanlaniyorum. Umarim Postfix, Nginx, ejabberd gibi projeler de ACME'yi ve dolayisiyla let's encrypt sertifika otoritesini otomatik olarak kullanabilmek ve yapilandirabilmek icin gereken adimlari en kisa surede atarlar. Bu sayede gorece daha guvenli bir internet deneyimi icin gereken en temel adimlardan birini atmis oluruz.



03 November 2014

Teknolojinin Kadınları Etkinliği Sunumum


Geçtiğimiz günlerde Kadın Yazılımcı topluluğu ile birlikte İstanbul Hackerspace'de Ada Lovelace Day ve Grace Hopper Celebration'ı Türkiye'de de kutlamak için bir etkinlik düzenledik, bu etkinlik için ben de bir sunum hazırladım.

Etkinlik ile ilgili Cansu Uludağ'ın değerlendirme yazısı hayli kapsamlı olmuş, okumanızı tavsiye ederim. Hem vesileyle benim bu blog yazısında (zaman sıkıntısından) bahsedemediğim diğer arkadaşlarımın şahane sunumlarını da okumuş olursunuz.

Bu blog yazısında, yoğunluktan ertelediğim bir işi yapmaya hazırlanıyorum. Etkinlikte yaptığım, hazırladığım sunumu paylaşıyorum. 

 Dünyada yazılım, bilişim ve teknoloji alanında kadınları teşvik etme amacıyla düzenlenen etkinlikler, programlar ve bu konuda kadınlara fon ayıran vakıflar hakkında bilgi verdiğim sunumuma buradan ulaşabilirsiniz.

Çoğunlukla kadınların yer aldığı özgür yazılım, açık kaynak projeleri, organizasyonlarının yer aldığı (içerisinde yer almamla bildiğim, takip ettiklerim nedeniyle) bu sunumu peyderpey de olsa güncellemek yapılacaklar listeme girdi bile! :)
                    



14 July 2014

LaborComm 2014’te Düzenlediğimiz Paneldeki Sunuşum


Uluslararası İşçi ve İletişim Konferansı (LaborComm) [1], 2010 yılından bu yana Ankara Üniversitesi İletişim Fakültesi’nin [2] yürütücülüğünde düzenlenen ve bence oldukça önemli tartışmaların yürütüldüğü, dolu dolu geçen bir konferans. Bu yıl 5. kez düzenlendi. İlk kez geçen yıl dinleyici olarak katılabilmiştim LaborComm’a ve birçok oturumda epey bilgi edinmiş, tartışmalardan faydalanmıştım.

LaborComm 2014’ün teması, geçtiğimiz birkaç yılda dünyada ve Türkiye’de ortaya çıkan direniş hareketlerinin etrafında şekilleniyordu. Çağrı metninden [3] alıntılayacak olursam:

“Geçtiğimiz birkaç yıl tüm dünyada ve Türkiye’de toplumsal hareketlerin yükseldiği ve bu çerçevede iletişim ve iletişim ağlarının önem kazandığı bir dönem oldu. Egemenler interneti artık sadece yeni birikim stratejilerinin ayrılmaz bir parçası olarak değil, aynı zamanda kendi egemenliklerine yönelen büyük bir tehdit olarak da görmeye başladılar. Bu çerçevede internet üzerindeki izleme faaliyetlerinin giderek tırmandığı açığa çıkarken, internetin sınırlandırılmasına yönelik düzenlemeler de giderek daha fazla gündeme geliyor. Ancak diğer yandan internet üzerindeki görece özgür alanların sınırları genişliyor ve buralardaki iletişim ve örgütlenme kent meydanlarında somutlaşıyor. LaborComm 2014, bu alanda yaşanan deneyimlerin bilgisini üretmeyi ve ileriye dönük olarak emeğin ve iletişimin özgürleşim olanaklarını değerlendirmeyi amaçlamaktadır. Bunun yanı sıra düzenlenme amacına uygun olarak iletişim ve emeğin kesiştiği tüm alanlara ilişkin çalışmaları beklemektedir.”

Tahmin edilebileceği gibi, Gezi Direnişi ile ilgili epeyce bildiri vardı, programdan da görülebilir. Biz de, hem Gezi Direnişi’ni, hem de özgür yazılımı, özgür İnternet’i ve özgür iletişimi önemseyen 4 bilişim emekçisi (İzlem Gözükeleş, Taylan Özgür Yıldırım, Oktay Dursun ve ben) olarak bu yıl konferansta bir panel düzenlemeyi önerdik. Konferans yürütücüleri fikre olumlu yaklaştılar ve böylelikle konferansın kapanış oturumunu kapmış olduk. Oturum başkanımızın da şu an iletişim alanında akademik çalışmalarını yürüten ama özünde bizler gibi bilgisayar mühendisi olan Doç. Dr. Funda Başaran Özdemir olmasıyla biraz daha rahatladık 🙂

Panelimizin başlığını “Direniş Kendi İletişim Kanallarını Oluştururken; Özgürlük, Yazılım, İnternet ve Emekçiler” olarak belirledik, her birimiz konunun farklı birer boyutunu ele almaya çalıştığımız birer sunuş yaptık. Sunuşların ardından salondan gelen soru ve katkılarla da tartışmayı genişlettik. Hem bizlerin izlenimi, hem de panel sonrası dinleyicilerden gelen geri bildirimlere dayanarak söyleyebilirim ki güzel bir panel oldu.

Konferansın bildiri kitapçığı şu anda hazırlanma aşamasında. Önümüzdeki birkaç hafta içinde yayımlanmış olacak sanırım, konferans web sitesinden e-kitap olarak da indirilebilecek. Bizim paneldeki sunuşlarımız konferansın diğer oturumlarındaki gibi akademik bildiri niteliğinde değildi, ama yine de panelde konuşulanların da bildiri kitapçığında yer almasının güzel olacağını söylediler bize. Ben de toparlayabildiğim kadarıyla yaptığım sunuşu genel hatlarıyla kısa bir metinde aktarmaya çalıştım. Aşağıda o metni bulabilirsiniz.

Panelde ilk sunuşu ben yapmıştım ve özgür yazılımı neden bu kadar önemsediğimizi kısıtlı zamanda hızlı biçimde anlatmaya çalışmıştım. Yaptığım sunuşun içeriğinin büyük bir kısmı, bir süredir farklı etkinliklerde yaptığım “Her Yer Linux Her Yer Özgür Yazılım” sunumumla[4] çakışmakla birlikte, o sunumda yer verip burada anlatmadığım ve burada olup onda olmayan bazı kısımlar da var.

Özgür Yazılımı Neden Bu Kadar Çok Önemsiyoruz?

Richard Stallman’ın bundan yaklaşık 30 yıl önce başlattığı özgür yazılım hareketi, artık başladığı noktanın çok ilerisinde. İnternet’in sağladığı yayılma olanağının da katkısıyla bugün dünyanın her yerinde çeşitli özgür yazılımları geliştiren, yaygınlaştıran, yerelleştiren, paylaşan ve kullanan insanlar, şirketler ve hatta devletler bulunuyor. İnternet’e bağlı herhangi bir cihazı kullanan bir kişi, kendi kullandığı yazılımlar özel mülk yazılım olsa bile bağlandığı web sitesi özgür yazılımlar aracılığıyla hazırlandığı ve sunulduğu için dolaylı yoldan da olsa özgür yazılımları kullanmış oluyor. Teknik yeterlilikleri ve üstünlükleriyle özgür yazılımlar bilişim alanında kolaylıkla vazgeçilemeyecek bir yer edinmiş durumdalar.

Öte yandan, özgür yazılımı bu kadar çok önemsememizin ve her fırsatta öne çıkarmamızın sebebi sadece sunduğu teknik olanaklardan kaynaklanmıyor. Tarihçesi, ortaya çıkış gerekçeleri ve gelişim süreci ele alındığında özgür yazılım meselesi, teknik bir tartışma olmanın çok ötesinde, politik bir mesele olarak karşımızda duruyor. Özgür yazılım hareketini başlatan ve günümüzdeki en önemli temsilcilerinden biri olan Richard Stallman, çeşitli söyleşilerinde bu durumu şöyle dile getiriyor:

“Özgür yazılım, sadece teknik bir mesele değildir. Aynı zamanda etik, sosyal ve politik bir meseledir. Sadece bilişim alanında çalışanları değil, toplumun her kesimini ilgilendirir. Düşünce özgürlüğü, ifade özgürlüğü, kişisel bilgilerin gizliliği gibi konularla doğrudan ilgilidir. ”

Richard Stallman’ın çizdiği bu çerçeve, aslında epey geniş bir alanı tarifliyor olsa da, politik bir mesele olarak özgür yazılımı bireysel ve toplumsal özgürlükler bağlamında tartışmanın tek başına yeterli olmadığını düşünüyoruz. Elbette özgür yazılımların yazılım alanında üretici ve tüketiciler olarak bizlere sağladığı özgürlükler çok büyük önem taşıyor, özellikle de çokuluslu yazılım ve donanım tekelleri ile devletlerin bu özgürlüklerimize saldırılarını yoğunlaştırdıkları bir dönemde olduğumuzu göz önünde bulundurduğumuzda var gücümüzle savunmamız gereken bir mevkide bulunuyorlar. Fakat özgür yazılımı politik bir mesele olarak tartışırken, çok daha temelde olan ve aslında bu özgürlüklerin de kaynağını oluşturan, özgür yazılımların hem üretim hem de tüketim süreçlerini de doğrudan etkileyen bir noktayı ele almak istiyoruz: Kamusal mülkiyet. Eğer özgür yazılımlarla özel mülk yazılımları birbirinden net bir şekilde ayırt edebiliyorsak bunu sağlayan şey teknik özellikler değil, üretilen yazılımın ve kaynak kodunun mülkiyetinin kime ait olduğudur. Özgür yazılım hareketi, hem üretilen bir ürün olarak yazılımın, hem de o yazılımın üretilmesini sağlayan üretim aracı olarak kaynak kodlarının mülkiyetini topluma vermesiyle bir devrim yapmıştır. Yazılımın ve kaynak kodunun mülkiyetinin toplumsallaştırılması; yazılım geliştirme pratiklerinden paylaşım yöntemlerine, yazılımların çoğaltılma (kopyalanma) özgürlüğünden istenilen amaç doğrultusunda özelleştirilebilme ve kullanılabilme özgürlüğüne kadar tüm üretim ve tüketim süreçlerinin piyasa ekonomisi koşullarından bambaşka koşullarda şekillendirilebilmesine olanak sağlamıştır. Böylelikle hem bireysel ve toplumsal özgürlüklerimiz korunabilmiş, hem de özgür yazılımlar özel mülk yazılımlar karşısında birçok teknik üstünlüğe sahip olabilmişler ve yaygınlıklarını artırabilmişlerdir.

Politik bir mesele olarak özgür yazılımı ele alırken dikkate aldığımız önemli noktalardan bir başkasını da özgür yazılım hareketinin ortaya çıkış süreci bize anlatıyor. Bu nokta, özgür yazılım hareketinin, yazılımın metalaşmasına karşı geliştirilmiş bir hareket olmasıdır. 1970’li yıllara kadar, Richard Stallman’ın da aralarında bulunduğu yazılım geliştiriciler (hacker’lar) geliştirdikleri tüm yazılımları birbirleriyle paylaşmakta, böylelikle hem birbirlerinden öğrenmekte hem de çözülmüş bir sorunu tekrar çözmekle uğraşmak (“tekerleği yeniden keşfetmek”) zorunda kalmamaktadırlar. Yazılımların ticari olarak alınıp satılması yaygın değildir, bilişim alanında sadece donanım bir masraf kalemi olmaktadır. Ancak 1970’li yıllardan itibaren bu durum değişmeye başlar, yazılımın da parayla alınıp satılabileceği fikri yaygınlaşır ve birçok yazılım firması kurulur. Bunun yanı sıra, bu firmalar ürettikleri yazılımların kaynak kodlarını “ticari sır” oldukları gerekçesiyle paylaşmamaktadırlar. Bütün bunlara duyulan tepki, özgür yazılım hareketinin başlatılmasında tetikleyici olmuştur.

Özgür yazılım hareketinin uygulamaya koyduğu önemli özelliklerden birisi, hem kamusal mülkiyetle hem de hareketin metalaşma karşıtı niteliğiyle bağlantılı olan, “üretimde özgürlük, tüketimde eşitlik” ilkesidir. Özgür yazılımların mülkiyeti topluma ait olduğu için toplumun her bireyi özgür yazılımlar üzerinde aynı haklara sahiptir ve onları dilediği şekilde kullanma (tüketme) özgürlüğü vardır. Dolayısıyla tüketimde eşitlik sağlanmıştır. Öte yandan, yazılımı kullanma karşılığında bireylerden herhangi bir karşılık beklenmez. Üretim sürecine katılıp katılmama konusunda her birey kendisi karar verebilir ve üretime katılmayan bireyler, tüketim haklarını kaybetmezler; üretime katılan bireylerle hâlâ eşit tüketim hakkına sahip olurlar. Üretime katılmak isteyen bireyler ise bu özgürlüklerini istedikleri zaman kullanabilirler çünkü üretim aracı olan kaynak kodlarının mülkiyeti topluma aittir, onlar da bu kaynak kodlarını kullanarak istedikleri şekilde yazılım geliştirebilirler.

Özgür yazılım üzerine bugüne kadar yapılan sosyal araştırmaların bir kısmı, üretime katılan yani özgür yazılımları geliştiren ve diğer yollarla (çeviri, test, hata bildirimi vs.) bunlara katkı sağlayan bireylerin neden bu sürece katıldıkları sorusuna odaklanmıştır. Piyasa ekonomisi şartlarının geçerli olmadığı bir ortamda, bireyleri çalışmaya ve üretime yönlendiren sebepler birçok kez sorgulanmıştır. Bu araştırmalar sonucunda ortaya konan birkaç sonuca kısaca değinelim. Bunlardan biri, özgür yazılım toplulukları arasında bir “hediye ekonomisi” oluşmasıdır. Bir başka sonuç, bazı bireylerin “kendilerini kanıtlama” güdüsüyle üretim sürecine katıldıklarıdır; özgür yazılımlar kamusal alanda (İnternet) geliştirildiği için bu bireyler burada bireysel teknik becerilerini sergilemekte ve piyasa ekonomisinin geçerli olduğu yazılım geliştirme süreçlerinde (özel mülk yazılım üreten şirketlerde) iş bulma şanslarını artırmaktadırlar. Bir grup yazılım geliştirici ise, öğrenme ve merak güdülerini tatmin etmek amacıyla üretim sürecinde yer almaktadırlar; zihinsel emeğin ortaya konduğu yazılım geliştirme pratiğinde sıklıkla çeşitli “bulmaca”larla karşılaşılmakta, bireyler bu bulmacaları çözmekten zevk almaktadırlar. Tüm bunların yanı sıra, bazı bireyler de toplumsal çıkarları gözeterek özgür yazılımların geliştirilmesine katkı sağlamaktadırlar. Elbette saydığımız bu gruplar birbirlerinden homojen olarak ayrışmamakta, üretime katılan bir birey bu gerekçelerden birkaç tanesini sahiplenebilmektedir.

Özgür yazılımların geliştirilmesi aşamalarında kullanılmakta olan ve zamanla çeşitli gelişmeler göstermiş olan üretim pratikleri, ağırlıklı olarak meselenin teknik yönü ile ilgiliymiş gibi görünse de, esasen özgür yazılımın politik yanıyla doğrudan ilişkilidir. Özgür yazılımların tamamına yakını İnternet üzerinde, kamuya açık platformlarda geliştirilmektedir. Sadece geliştirilen yazılım ve yazılımın kaynak kodları değil, aynı zamanda tartışma ve karar alma süreçleri de kamusal erişime açık olarak yürütülmektedir. Bir özgür yazılımın geliştirilmesine katkı veren, yani üretim sürecine katılan bireyler, e-posta listesi ya da forum benzeri iletişim ortamlarında yazılım geliştirme süreci ile ilgili fikir alışverişinde bulunurlar ve bu iletişim ortamlarının arşivleri kamusal erişime açık olarak İnternet ortamında saklanır. Böylelikle üretim sürecine katılmayan bireyler de yürütülen tartışmaları izleyebilir, zaman zaman da çeşitli şekillerde kendi görüşlerini ifade edebilirler. Tüm bu özellikleriyle özgür yazılım geliştirme sürecinin oldukça verimli işleyen bir kolektif üretim süreci olduğu söylenebilir.

Özgür yazılımın, burada kısa kısa ele almaya çalıştığımız bu özellikleri, bu hareketin 30 yılı aşkın süredir adım adım ilerleyen ve büyük başarılar kazanan bir hareket olmasını sağlamıştır. Etkileri sadece bilişim alanıyla sınırlı kalmamış, özgür yazılımın başarısından etkilenen başka birçok alanda benzeri özellikleri taşıyan örnekler ortaya çıkmıştır. En basit ve akla gelen ilk örneği, özgür yazılım geliştirme sürecine benzer bir üretim süreciyle kolektif bilgi birikiminin oluşturulduğu Wikipedia projesidir. Benzer şekilde sinema, müzik, edebiyat gibi alanlarda çeşitli yansımaları olmasının yanı sıra, bilişim sistemlerinde kullanılan çeşitli donanımların kolektif biçimde üretilmesini ve bu alandaki tekellerin ortadan kaldırılmasını amaçlayan hareketler de ortaya çıkmaya başlamıştır.

Altını çizmeye çalıştığımız şekilde, özgür yazılım meselesi bir “politik mesele” olmayıp sadece bir “teknik mesele” olsaydı, tahminimizce şimdiye kadar çoktan sonlanmış bir durumda olurdu ve hepimiz özel mülk yazılımlara muhtaç olurduk. Bilişim ve iletişim teknolojileri hayatımızın her alanına nüfuz ederken, birer bilişim ve iletişim tüketicisi ve üreticisi olarak bugün sahip olduğumuz bazı bireysel ve toplumsal özgürlüklerimizi de çoktan kaybetmiş, ya da tıpkı Gezi Direnişi’nde olduğu gibi bunları savunmaya çalışıyor olabilirdik. Panelimizin ana konusuyla özgür yazılımın birbiriyle ne kadar içli dışlı olduğunu anlamak için, özgür yazılımı anlatırken sıklıkla kullandığımız bazı anahtar sözcüklere bitirirken değinmekte fayda var: “Özgürlük”, “Paylaşmak”, “Dayanışma”, “Kamusallılk”, “Kolektif üretim”, “Eşit tüketim”. Gezi Direnişi’ne baktığımızda, aynı anahtar sözcüklerin orada da meselenin kalbinde olduğunu görebiliyoruz.

adilga

[1] http://laborcomm.org/

[2] http://ilef.ankara.edu.tr/

[3] http://laborcomm.org/cagri-metni-2014/

[4] İlgilenenler LKD Seminer Çalışma Grubu sitesindeki Seminer Notları sayfasında bulabilirler:

http://seminer.linux.org.tr/seminer-notlari/



01 July 2014

Bir Takım Geçişken Şeyler



İnsanın hayatında pis rezil olduğu durumlar vardır. Gavur bunu WTF moment olarak havalı bir biçimde söylese de yurdum insanı "astir bea" olarak daha net anlaşılır hale getirmiştir bu olguyu.

Neyse efendim, bendeniz de dün itibariyle benzer bir anı yaşadım ve bu girdiyi yazmak şart oldu kendime ceza kabilinden. Burada resim puslanır sahne siyah beyaza döner ve olaylar şöyle gelişir;

Doktora aday adayımız giriş mülakatına girmek üzere 12 saatlik bir yolculuğun ardından ülkemizin tanınmış üniversitelerinden birine ulaşır. Mülakat saatine kadar araştırma konusu ile ilgili jüri hocalarının yazdığı makaleleri ve kitap bölümlerini okuyarak kendince özgüven depolamaktadır, gelişecek olaylara pek bir hazır olduğunu sanmaktadır.

Derken, mülakat saati gelir lakin, her toplumsal sıralama olayında olduğu gibi olay olması gereken vakitte cereyan etmemekte ısrarlıdır. Mülakat salonu önünde beklemekten sıkıldığı bir anda telefonla konuşmaktadır ki, adı okunur ve kahramanımız telefonunu aceleyle kapatıp olay mahalline intikal eder.

Salona girdiğinde karşısında 6 kişilik bir jüri vardır (WTF moment 1). 6 ya 1 eşitsizliği ilk başta kahramanımızın gözünü korkutsa da, çocukluğu "Kara Murat" serisini izleyerek geçmiş esas oğlanı yıldırmaz bu durum.

Yüksek lisans çalışmalarını kısaca özetlemesinin ardından bir South Park sessizliği oluşmuşken, yüksek lisans jürisinde bulunan bir hoca malum soruyu sorar;

"Sana yüksek lisans jürisinde bir soru sormuştum, hatırladın mı ?"

(Hatırladım lakin hatırlamak istemiyorum, çünkü bildiğin cevaplayamayıp mal gibi kalmıştım)

"Hatırladım hocam" der kahramanımız. Hoca işin peşini bırakmamaktadır;

"Baktın mı sınavdan sonra çözümüne sorunun ?"

"Baktım hocam" der esas oğlan.

(Baktın ama yetmez) der hoca içinden ve bu ses dışarı şöyle yansır;

"Anlat bakalım o zaman, difüzyon denklemlerinde neden ikinci derece türev kullanılır !!! "

"Bakın şimdi hocam, basitçe anlatmak gerekirse geçişen (diffuse) eden maddemizin ilgilendiğimiz bölümünü bir araba gibi düşünelim. Biliyoruz ki bir arabanın hareketini hesaplarken birinci derece türev bize hızı , ikinci derece türev ise hızdaki değişimi (hızlanma/acceleration) verir. Bizim derdimiz t anında x konumunda olduğunu bildiğimiz arabanın t+1 anında nerede olduğunu bulabilmekse eğer, hız ki, biz buna halk arasında birinci dereceden türev deriz bizim için tek başına birşey ifade etmez çünkü; arabamız t anından t+1 anı arasında hızlanmış veya yavaşlamış olabilir, arabanın hızının bu zaman aralığında nasıl değiştiğini bulmak için Anadolu'da ikinci dereceden türev olarak adlandırılan matematiksel işleme ihtiyaç duyarız."

Bu konu aşağıdaki videoda detaylı olarak açıklanmıştır ve dahi tam ekran olarak izlemeniz tavsiye edilir;




"Aslında bu konuyu matematiksel olarak Fick kanunları (ki onlar iki tanedir) ile açıklayabiliriz. Moleküllerin bir bölgeden diğer bölgeye geçişine akı der ve bunu J ile gösterirsek akıyı zamandan bağımsız olarak

  

şeklinde ifade edebiliriz. Burada D ilgilendiğimiz molekülün difüzyon katsayısı C derişim ve x molekülün katettiği mesafeyi gösterir. Bu kanun zamandan bağımsız olarak, derişimi farklı, iki bölge arasındaki geçişi ifade eder ve bu geçiş çok yoğun bölgeden az yoğun bölgeye doğru derişimler eşitlenene kadar devam eder."

"Fick birinci kanununda zaman mefhumunu ihmal edip benim bu soruya sonsuza kadar cevap verebilme şansım varmış gibi davranırken, gerçek durum böyle değildir. Aslında bu soruyu hiç cevaplamayıp doktora yeterlilikte bu soruyu sormanızı garanti altına almak ve daha sınava girmeden bir soru fazla cevaplayarak zamanı bükmek istesem de bunun evrende yol açacağı kaostan korktuğumdan bu ihtimali hızla eliyor ve konuya kaldığım yerden devam ediyorum"

"Neyse, yaptığı eşşekliğin farkına varan Fick "Achtung" der yani "Ben ne yaptım". Bunun üzerine ikinci kanununu yazar,

  

bu noktada akının kendisi hesaplanmaya muhtaç bir dede kaldı ki gayrıya himmet ede diye düşünen Fick bruder J yi birinci denklemden getirip yerine koyarak

  

denklemini elde eder. Bu da neden 2. dereceden türev sorusunun daha kitabi bir açıklamasını sunar bize"


Diyemedim ya la...




17 June 2014

Pardus'a Göç Etmiş Kamu Kurumları


Takip edenlerin bildiği gibi Pardus projesi 2011 yılı sonunda teknolojik ve idari olarak sona erdirilmişti. Tübitak 2012 yılında yine Pardus adıyla  farklı bir proje geliştirmeye başladı. O yıllarda yeni projenin ilk idarecilerinin basına verdiği röportajlardan hatırladığım kadarıyla kamuda yaygın kullanım, ileri teknoloji gibi ilkelerden heyecanla bahsediliyor kulağa çok hoş geliyordu.

Aradan geçen yıllarda proje nereden nereye geldi hiç takip etmedim. Zaten artık gelinen noktada Pardus projesinin ne kadar kallavi bir teknoloji olduğunun/olmadığının bir önemi yok. Önemli olan kamu kurumlarının ve kamu idaresinin Linux ve özgür yazılımları tercih etme konusundaki iradesi. Maalesef  böyle bir irade göremedik. Tıpkı 2012 öncesinde olduğu gibi.

Ben yine de tarihe not düşme açısından BİMER aracılığı ile Tübitak'tan Pardus'a göç eden kurumların listesini istedim, gelen cevap aşağıda;


06.06.2014 tarih ve .... sayılı başvurunuz, BİMER sistemi üzerinden 
Kurumumuza yönlendirilmiş, Kurumumuz  tarafından incelenmiştir.

Pardus aşağıdaki Kamu Kurumlarında kullanılmaktadır:

- Milli Savunma Bakanlığı
- İSKİ
- Jandarma Genel Komutanlığı
- Gaziantep Halk Sağlığı Merkezi

Bu kurumlarda Pardus'a Göç yapmış toplam kullanıcı sayısı 
11 bin civarındadır.

Bilginize sunarız.

Zaten bu konu kamu idaresinin öncelikleri arasında zurnanın son deliği bile olmadığından kısa ve orta vadede pek umutlanmamak ve vatandaşların çocuğunun rızkından arttırıp ödediği vergilerin bir kısmının lisans anahtarları karşılığında ABD bankalarına aktarılmasını içimize sindirmek lazım.


02 April 2014

Zpanel'da Roundcube WebMail Kullanıcı Şifre Değiştirme Plugin ayarları


Açık kaynaklı sunucu panelleri arasında zpanel en çok hoşuma giden oldu. Bir dostuma kurduğum sunucuda açılan maillerin kullanıcılarının WebMail üzerinde şifrelerini değiştiremediklerini öğrendim. Küçük bir araştırmadan sonra bir plugin aktifleştirmem gerektiğini anladım. Panelden panele epeyce farklı çözümler var ancak en güzel çözüm doğrudan sql çözümünü kullanmak.

Öncelikle /etc/zpanel/panel/etc/apps/webmail/config altında main.inc.php dosyasını editörümüzle açıyoruz.
$rcmail_config['plugins'] = satırını bulup aşağıdaki gibi düzeltiyoruz.

$rcmail_config['plugins'] = array('password');

daha sonra /etc/zpanel/panel/etc/apps/webmail/config altında db.inc.php dosyasını editörle açıp aşağıdaki satırı bulup tırnak işaretleri arasındaki bağlantı cümleciğini kopyalıyoruz.


$rcmail_config['db_dsnw'] = 'mysql://root:<şifreniz>@localhost/zpanel_roundcube';


sonra  /etc/zpanel/panel/etc/apps/webmail/plugins/password altında config.inc.php.dist dosyasını bulup 

#cp config.inc.php.dist config.inc.php

komutu ile kopyalıyoruz ve editörle açıyoruz.

1- Driver olarak sql kullanacağız.

$rcmail_config['password_driver'] = 'sql';

2. db.inc.php dosyasından kopyaladığımız cümleciği aşağıdaki kısma yapıştırıyoruz ancak sonunu zpanel_postfix olarak değiştiriyoruz. !önemli

$rcmail_config['password_db_dsn'] = 'mysql://root:<şifreniz>@localhost/zpanel_postfix';

3.query kısmınıda aşağıdaki gibi düzenliyoruz

$rcmail_config['password_query'] = 'UPDATE `mailbox` SET `password` = %c WHERE `username` = %u';

Kullanıcılar Kişisel ayarlar kısmında parolalarını değiştirebilirler.