26 April 2019

Blokzinciri Uygulamaları


İnterneti icat edenlerin aklında bilgisayarları birbirine bağlayarak bir ağ oluşturmak vardır. Bunun için çalışan bilgisayar programcılarından biri olan Ray Tomlinson ise bambaşka bir dünyanın kapısını aralar. 1963’te Rensselaer Polytechnic Institute Elektrik Mühendisliği Bölümünden mezun olan ve eğitimine MIT’de devam eden Ray Tomlinson, 1965’te master derecesini aldıktan sonra bir süre doktora çalışmalarına devam eder. Daha sonra 1967’de BBN’de (Bolt, Beranek ve Newman) çalışmaya başlar. BBN’de internetin öncülü olan ARPANET (Advanced Research Projects Agency Network) için yazılım geliştirmektedir. Bir gün Tomlinson, iş arkadaşı Jerry Burchfiel’i çağırır ve eğlence amaçlı geliştirdiği “Mesaj Gönder” programını gösterir. Burchfiel, bunu kimseye göstermemesini, burada bununla uğraşmak için para almadıklarını söyler. Neyse ki ARPANET’i yöneten DARPA’nın (Defense Advanced Research Projects Agency) yöneticilerinden Larry Roberts’in bu yazılımdan haberdar olmasıyla beraber fazla endişelenmelerine gerek kalmaz. Mesaj gönderme programı Roberts’in çok hoşuna gider ve tüm iletişimini bu elektronik posta sistemini kullanarak yapmaya başlar (https://www.forbes.com/asap/1998/1005/126.html).

Bilgisayarları birbirine bağlamak üzere geliştirilmekte olan ağ, epostanın icadıyla beraber bilgisayarların kullanıcılarının da birbirine bağlandığı bir sosyal ağa evrilmeye başlar. Tomlinson interneti, insanlar arası etkileşime açmıştır. Epostayı, duyuru tahtası sistemleri (Bulletin Board System – BBS), tartışma grupları (USENET) ve web sayfaları ile takip eder. Etkileşimin biçimi ve içeriği zaman içinde değişir. İnternet kullanıcıları önce fotoğraf ve müzik paylaştıkları web sitelerinde etrafında bir araya gelirler. Daha sonra bu web siteleri sosyal medya platformlarına dönüşür. Fakat eposta hep var olur.

İnternetin gelişimine farklı bir yön veren, onu basitçe bilgisayarların birbirine bağlandığı bir ağın ötesine taşıyan bir diğer bilgisayar programcısı da Tim Berners-Lee’dir. Oxford’dan mezun olduktan sonra CERN’de yazılım mühendisi olarak çalışmaya başlayan Berners-Lee, enformasyon paylaşımındaki sıkıntılara bir çözüm bulmaya çalışır. Farklı bilgisayarlarda tutulan enformasyona ancak bu bilgisayarlara bağlanılarak erişilebilmektedir. Bu sorunu çözebilmek için Berners-Lee, webin temelini oluşturan HTML, URI ve HTTP teknolojilerini geliştirir. Ayrıca ilk web tarayıcısını (WorldWideWeb.app) ve sunucusunu (httpd) yazar. 1990 yılının sonunda ilk web sitesi internette yayımlanır ve 1991’de CERN dışındaki topluluklar da webe katılmaya davet edilir.

Webin mucidi Berners-Lee, web kullanıcılarını sınırlandırabilecek bir hak talep etmez; insanların ücret ödemeden veya bir izin istemeden webi kullanabilmesini istemektedir. Berners-Lee ve arkadaşları, bu konuda CERN’i de ikna ederler. 1993 Nisanında CERN, webi telifsiz olarak paylaşır. CERN’in bu kararını küresel düzeyde yaratıcılık, işbirliği ve inovasyon dalgası takip eder. Webin öncüleri, merkezsizleşme (decentralisation), ayrımcılık yapmama (non-discrimination), aşağıdan yukarı tasarım (bottom-up design), evrensellik (universality), oydaşma (consensus) ilkelerini savunmakta ve bu ilkelerin internete içsel olduğunu düşünmektedir. Merkezsizleşme, webe içerik koymak için merkezi bir otoritenin iznine gerek olmaması ve bir noktadaki kesintinin sistemi tamamen çalışamaz duruma getirememesi anlamına gelmektedir. Bu sansürden ve gözetimden muaflığı da ifade eder. Ayrımcılık yapmama ise ağları işletenlerin uygulamalar, içerik, web siteleri ve platformlar arasında ayrım yapmamasını ifade eden ağ tarafsızlığı ilkesine dayanmaktadır. Aşağıdan yukarı tasarım ilkesiyle ufak bir uzman grubu tarafından yazılan kod yerine herkese açık, en fazla katılımı ve deneylemeyi teşvik eden bir çalışma yöntemi savunulur. Evrensellik, webde yer alan tüm bilgisayarların donanımları veya kullanıcılarının yaşadığı yer, kültürel ve politik inançlarından bağımsız olarak aynı teknik dili konuşmasıdır. Böylece bir yandan farklılıkların gelişimine ortam hazırlanırken diğer yandan insanları birbirinden ayıran duvarların önüne geçilebilecektir. Fakat evrensellik, evrensel standartların yokluğunda uygulanamaz. Bu nedenle oydaşma ilkesi standartların oluşum sürecinin şeffaf, herkese söz hakkı veren ve katılımcı olmasını savunur.

Bu ilkeler, aktivistler tarafından yıllarca savunulmuş ve açık veri (open data), açık hükümet (open government), bilimde açık erişim (open access) ve özgür kültür (free culture) gibi hareketlere ilham kaynağı olmuştur. 2000’li yılların başından itibaren özellikle internetteki ticarileşme ve hükümetlerin artan kontrolü hakkındaki endişelerin de arttığı görülür. 2016 yılındaki ABD seçimleri sonrasında hem Büyük Beşli’nin (Apple, Microsoft, Alphabet, Facebook ve Amazon) açıkça görülebilen hakimiyeti hem de hükümetlerin internet üzerindeki baskısı bu ilkeleri günümüz koşullarında uygulamanın zor olduğunu göstermektedir.

Eposta da web de internet temelli uygulamalardır. Eposta, merkezsiz yapısını ve dolayısıyla şirketlerden bağımsız varlığını devam ettirir. Ama webde en başından beri kullanıcıyla site sahibi arasında asimetrik bir ilişki vardır. Merkezsizleşme savunulan (ve mutlaka savunulması) gereken bir ilkedir. Ama hem webin teknik tasarımı hem de günümüz koşulları dikkate alındığında webdeki merkezileşme (ticarileşme ve hükümetlerin artan kontrolü) kaçınılmazdır. Çevrimiçi metinleri yayımlamak amacıyla ortaya çıkan web, bir süre sonra enformasyonun akışının denetlenebildiği bir yapıya evrilir.

P2P (Peer to Peer – Eşler Arası İletişim) ya da istemci-sunucu tabanlı mimariler birer tasarımsal tercihtir. İnternet altyapısından yararlanan eposta da web de iyi niyetin veya iddialı ilkelerin ötesinde farklı tasarımsal tercihlerin sonucu olarak gelişir. Kleiner’in (2016) savunduğu gibi internet kaynaklarını P2P alternatifleriyle değiştirerek daha özgür bir internet yaratmak mümkündür. Bugün blokzincirinden övgüyle, özgürleştirici ve devrimci bir teknoloji olarak bahsetmemizin ardında bu teknolojinin P2P tabanlı mimarisi var. Fakat merkezi bir otorite tarafından kontrol edilen, sadece izin verilen kullanıcıların işlemleri okuyabildiği ve yazabildiği blokzincirleri de vardır. Bu nedenle blokzinciri, merkezsizleşme, ayrımcılık yapmama, aşağıdan yukarı tasarım, evrensellik ve oydaşma ilkelerini gerçekten uygulayabilen bir teknoloji de olabilir internetteki (ve çevrimdışı dünyadaki) merkezi yapıları güçlendiren bir teknoloji de. Ama her iki durumda da göz ardı edilemeyecek bir potansiyele sahip.

Blokzinciri hakkında yazılanları okurken insan webin ilk yıllarına gidiyor. Yine dünyanın bir devrimin eşiğinde olduğu iddia ediliyor. Mougayar (2016) gibi blokzincirinin webin yerini alacağını ya da web ve blokzinciri karışımı iş modellerinin yaygınlaşacağını savunan birçok girişimci var. 1950’lerde bilişim çalışanlarının dilinde büyük bilgisayarlar, veritabanları, ağlar, sunucular, yazılım, işletim sistemleri ve programlama dilleri vardı. 1990’larda weble beraber yeni bir döneme girildi. Bilişim çalışanlarının jargonuna web tarayıcısı, web sitesi, Java, TCP/IP, SMTP, HTTP, URLs ve HTML gibi kelimeler eklendi. Blokzinciri ise bu jargonu oydaşım algoritmaları, akıllı sözleşmeler, dağıtık defterler, dijital cüzdanlar ve işlem blokları ile daha da genişletti. Şimdi birçok uygulama bir zamanlar webe geçişte olduğu gibi blokzinciri teknolojisine uygun biçimde yeniden geliştirilecek.

Elbette ki sadece bilişim çalışanlarının jargonu değişmiyor. Geçmişte web ile ortaya çıkan haber siteleri bazı gazeteleri ortadan kaldırırken bazılarını da iş modellerini değiştirmeye zorladı. E-ticaretin ve yeni iş modellerinin tedarik zincirleri ve fiziksel satış mağazaları üzerinde yıkıcı bir etkisi oldu. İnsanlar arasındaki ilişkiler sosyal medyayla beraber farklılaştı. Mougayar (2016), Google gibi blokzincirinin de hayatımızın bir parçası olacağını savunuyor. Şimdi Google’ın ana arama aracı olması gibi gelecekte kimlikleri, sözleşmeleri veya dijital varlıkları doğrulamak için blokzincirlerine başvurmak yaygınlaşacak. Web bir çok alanda bir yandan aracıları ortadan kaldırırken diğer yandan yeni aracılar yaratmıştı. Daha da kötüsü web siteleri (platform kapitalizmi örneklerinde olduğu gibi) taraflar arasındaki ilişkinin merkezine oturmuştu. Blokzincirinin webin ortaya çıkardığı aracıları da ortadan kaldıracağı ve taraflar arasında doğrudan iletişime imkan sağlayacağı savunuluyor.

“Webin gelişiminde de böyle olmuştu” demeye hevesli bir uzmanlar topluluğu var. İtiraf etmek gerekirse bu uzmanların iddiaları bana fazla abartılı gelmişti. Ama blokzinciri uygulamalarını araştırdıkça ben de weble oluşan internetten farklı bir internete doğru yol aldığımızı düşünmeye başladım.

Webin ilk yıllarında olduğu gibi…

Webin ilk yıllarında olduğu gibi birçok girişimin başarısızlığa uğrayacağı ama daha ileri çözümler ve modeller geliştirilebileceği savunuluyor. Bu girişimleri, başarıları ve başarısızlıkları kriptoparalarda daha net görebiliyoruz. Kriptoparaların kullandığı blokzincirleri, aracıları ortadan kaldırıyor. Para transferlerinde bankaya pay vermemek güzel. Ama riskleri var.

Normal bankalara para yatırdığınızda banka sahibinin sağlık durumunu aklınıza getirmezsiniz. Banka sahibi aklını kaçırsa da ölse de istediğiniz zaman bankadan paranızı çekebileceğinizi bilirsiniz. Kriptopara dünyasında ise işler bu kadar garantili değil. Örneğin, Kanada’nın en büyük kripto para borsası Quadriga’nın kurucusu Gerald Cotten’ın 30 yaşında ani ölümünden sonra dizüstü bilgisayarında saklı yaklaşık 140 milyon dolar değerindeki dijital paraya ulaşılamadığı açıklandı. Cotten’ın eşi şirketin tüm işlerinin eşinin bilgisayarında olduğunu ve parolasını bilmediğini söylüyor (http://www.gazetevatan.com/140-milyon-dolar-kayiplara-karisti–1238338-dunya/).

İnternette, Cotten’in ölümünü şüpheli bulan ve düzmece olabileceğini iddia eden senaryolar dolaşıyor. Gerçek her ne olursa olsun aracı kurumların olmaması o kadar matah bir şey olmayabilir. Kriptoparalarınızı sakladığınız bankanın sahibi çok sağlıklı olabilir ya da paralarınızı bir bankada değil kendi bilgisayarınızda saklıyor olabilirsiniz. Ama her zaman parolanızı unutma ve kaybetme gibi bir risk vardır. Böyle bir sorunda başvurabilecek bir yer yok.

Kriptoparaların teknolojik sınırları da var. Ölçeklenebilirlik hâlâ büyük bir sorun. Bitcoinin blok boyutu 1 MB ile sınırlı ve on dakikada bir yeni blok üretiliyor. Bunun sonucunda saniyede yedi işlem doğrulanabiliyor. Uluslararası piyasalardaki işlem sayıları düşünüldüğünde bitcoinin saniyedeki işlem sayısı çok yetersiz kalıyor. Saniyedeki işlem sayısını artırmak için daha büyük bloklar tercih edilebilir. Ancak bu çözüm tercih edilirse hem diskte daha büyük depolama alanına gerek olacak hem de artan blok büyüklüğünün sonucunda blokların ağda dağıtımı yavaşlayacaktır. Ayrıca teoride bitcoin ağında çoğunluk olmadıkça ağın hakimiyetinin ele geçirilemeyeceği iddia edilir. Fakat Eyal ve Sirer’in (2018) gösterdiği gibi %51 çoğunluk sağlanmadan da ağdan haksız kazanç sağlamak mümkün. Normal şartlarda, ağın üyeleri, yeni blok yarattıktan sonra bunu ağla paylaşır ve karşılığını alır. Daha sonra bu bloğun özet değerini içeren yeni blok için bir yarış başlar. Fakat ağın bencil bir üyesi ürettiği bloğu paylaşmak yerine bunu üyesi olduğu özel bir ağda paylaşabilir ve bu ayrıcalıklı bilgi sayesinde sonraki bloğun üretiminde özel ağdaki üyelerinin avantajlı olmasını sağlayabilir. Eski blokların ardına yeni bloklar eklenir ve blok sayısı arttıktan sonra yeni blok zinciri bitcoin ağına gönderilir. Yeni zincir, en uzun zincir olacağından daha önceki zincirdeki blokları üreten dürüst kullanıcılara verilen ödüller geri alınır ve bencil üyelere verilir. Bunun yanında kriptopara ağlarında oydaşım için kullanılan algoritmaların da farklı sorunları var. Örneğin, iş kanıtı (PoW – proof of work) algoritması çok fazla elektrik tüketmekle, hisse kanıtı (PoS – proof of stake) ise zengini daha zengin yapmakla eleştiriliyor. Bir diğer eleştiri de mahremiyet korumasının yeterli olmaması hakkında. Bitcoinde sadece özel ve açık anahtar ikilisiyle işlem yapılmasına karşın herkese açık olan işlem kayıtlarının mahremiyet sorunu yarattığı, hatta IP adreslerinin takip edilebileceği savunuluyor. Bu eleştiriler, kriptoparaların yaygınlaşmasının ve ekonomide belirleyici bir konuma gelmesinin önünde hâlâ önemli engeller olduğunu gösteriyor (Zheng, Xie, Dai, Chen, Wang, 2018) .

Bu türden eleştirilere karşı webin geçmişi hatırlatılıyor; e-ticaretin ve webde kredi kartı kullanımının ilk günlerine dikkat çekiliyor. Bitcoin ve diğer kriptoparalardaki sorunlara karşı getirilmiş çeşitli çözüm önerileri ve yeni kriptopara girişimleri var. Bitcoin, bir kapı açtı ama belki bir süre sonra yerini bir başka kriptoparaya devredecek. Ama önümüzdeki yıllarda blokzincirinin kriptoparalar dışındaki kullanım alanlarını daha sık duyacağız. Bu farklı alanlara geçmeden önce blokzincirinin temel özelliklerini hatırlayalım. Blokzinciri, son kullanıcının alıp kullanabileceği bir teknoloji değil ve farklı blokzinciri tipleri var. Blokzincirinin geleceğinden söz ederken bu farklılıkları atlamamak gerekiyor.

Blokzincirinin Temel Özellikleri

Blokzincirinin temel özelliklerini dört maddede özetleyebiliriz. Birinci ve en önemli özelliği merkezsizlik. Merkezi sistemlerde her bir işlemin güvenilir merkezi bir kurum tarafından onaylanması gerekir. Bu da kaçınılmaz bir maliyete ve merkezdeki sunucularda darboğaza neden olur. Blokzincirindeki işlemlerde ise merkezdeki bir otoritenin yetkilendirmesine ya da onayına ihtiyaç yoktur. Merkezde bir sunucunun olmaması, sunucu, geliştirme ve işletme maliyetlerinden tasarruf sağlar. Ayrıca merkezde bir darboğaz oluşmaz. Blokzincirinin ikinci özelliği, kalıcılıktır. İşlemler ağdaki bilgisayarlar tarafından doğrulanır ve bloklara eklenir. İşlemler doğrulanıp bir bloğa eklendikten sonra işlemlerde bir değişiklik kolayca tespit edilebilir. Üçüncü ilke anonimliktir. Kullanıcıları tespit eden ya da özel verilerini tutan merkezi bir otorite olmadığından kişiler tamamen anonim olarak işlem yapabilirler. Fakat insanların blokzincirinde gerçek kimliklerini kullanmamaları ya da her işlemde farklı açık anahtarlar (adresler) yaratabilmeleri tam mahremiyet anlamına gelmez. Açık anahtarlarla yapılan tüm işlemler herkes tarafından takip edilebildiğinden bir açık anahtarın ne kadar parası olduğu bulunabilir. Ayrıca Biryukov, Khovratovich ve Pustogarov (2014), bir ateşduvarının arkasında olsalar bile istemcilerin IP adreslerinin belirlenebildiği bir yöntem sunmuşlardır. Biryukov vd.’nin (2014) yöntemine karşı yeni araçlar da geliştirilmiştir ama yine de anonimliğin yüzde yüz mahremiyet olmadığını akıldan çıkarmamak gerekir. Dördüncü ilke, denetlenebilirliktir. İşlemler doğrulandıktan sonra bir zaman damgasıyla bloklara eklenirler. Önceki kayıtlar kolayca doğrulanabilir ve takip edilebilir.

Tek tip blokzinciri yoktur. Blokzincirleri, kamusal, konsorsiyum ve özel diye üç gruba ayrılabilir. Bu gruplamada, oydaşım kararı ve süreci, okuma izni, değişmezlik, verimlilik ve merkezilik hakkındaki farklılıklar belirleyici olmaktadır. Örneğin kamusal blokzincirlerindeki oydaşımlarda her kullanıcının oy hakkı vardır. Konsorsiyumda, sadece seçilmiş bir kullanıcı grubu blokların doğrulanmasında söz sahibidir. Blokzinciri özel olduğunda ise kararlar blokzincirin sahibi olan kurum tarafından verilir. Kamusal blokzincirlerinde gerekli yazılımı bilgisayarınıza kurduğunuz anda oydaşma sürecinin bir parçası olursunuz. Diğer blokzincirlerinde ise oydaşma sürecine katılım bir otoritenin onayına bağlıdır. Sadece kamusal blokzincirlerinde herkesin okuma izni vardır. Diğer blokzincirlerinde okuma, yine konsorsiyumun ya da kurumun iznine bağlıdır. Kamusal blokzincirlerini değiştirmek zor, çoğu zaman olanaksızdır. Kamusal blokzincirleri buna göre tasarlanmıştır. Konsorsiyum veya özel tipteki blok zincirlerinde ise değişiklik kararının alınması ve uygulanması daha az kişinin onayına bağlı olacağından kolaydır. Kamusal blokzincirlerinde, işlemleri doğrulayan kullanıcı sayısının fazla olması güvenliği artırmasına rağmen verimliliği düşürmektedir. Doğrulamak için gerekli kullanıcı sayısının azlığı nedeniyle diğer blokzincirlerinin işleyişi daha verimlidir. Tüm blokzincirleri dağıtık bir defter kullanır. Fakat blokzincirinin yönetimi dikkate alındığında farklı merkezilik düzeyleri vardır. Kamusal blokzincirleri tamamen merkezsizdir. Konsorsiyumda, kısmi bir merkezilik vardır. Özel olan blokzincirlerinde ise kararları alan ve uygulatan bir merkez vardır.

Kısacası blokzincirinden söz ederken hangi tipte blokzincirinden söz edildiği önemlidir. Kamusal blokzincirlerinin eşitlikçi ve özgürlükçü bir potansiyeli vardır. Başka bir internet ve başka bir yapay zeka yaratma potansiyeline sahiptir. Weble blokzincirlerini karşılaştıran ve blokzincirlerinin web gibi büyük bir dalga yaratacağını savunanlar ise daha çok konsorsiyum ve özel tipteki blokzincirlerinden söz ediyorlar. Sonraki bölümde anlatacağım Etherum hem kamusal blokzinciridir hem de konsorsiyum blokzinciri geliştirmek için çeşitli araçlar sunmaktadır. Hyperledger ise blokzincirinin dağıtık defter (veritabanı) özelliğini ön plana çıkararak işletmelerde kullanılabilecek konsorsiyum blokzincirleri için çerçeveler (frameworks) geliştirmektedir. Ayrıca birçok şirket, verimlilik ve denetlenebilirlik için kendi blokzincirlerini kullanmaktadır.

Ethereum ve Akıllı Sözleşmeler

Akıllı sözleşme fikri ilk kez 1994 yılında Nick Szabo tarafından ortaya atıldı (https://web.archive.org/web/20160324030400/http://szabo.best.vwh.net/smart_contracts_idea.html). Ama blokzinciri teknolojisi ortaya çıkana kadar akıllı sözleşme fikrini hayata geçirmek mümkün olmadı. Vitalik Buterin’in blokzinciri teknolojisi kullanarak geliştirdiği ve 2015’te ilk sürümünü yayımladığı Ethereum ise akıllı sözleşmelerin kullanılabilirliğini sağlamakla kalmadı merkezsiz, küresel bir bilgisayarın temelini atarak blokzinciri teknolojisinde yeni bir dönem başlattı. Serkan Doğantekin’in özetlediği gibi akıllı sözleşmeler,

  • içinde mantıksal akışların (“eğer bu olursa şunu yap” gibi) önceden yazılmış olduğu,
  • dağıtık, merkezi olmayan bir platform üzerinde saklanıp çoğaltılan,
  • bir bilgisayar ağı tarafından çalıştırılan/işletilen,
  • güvenilirliği bir bilgisayar ağı tarafından doğrulanan,
  • üzerinde bulunduğu yapı/platform üzerinde kripto para ödemeleri/transferleri, yeni akıllı sözleşmelerin yaratımı gibi güncellemelere yol açabilen

ufak programlardır. (https://bit.ly/2BDsOYY)

Ethereum, blokzincirinin programlanabilirliğini, merkezsiz mimaride çeşitli uygulamaların geliştirilmesini ve kullanımını sağladı. Bu uygulamaların tipik bir örneği Etherisc’in (https://etherisc.com/) Ethereum akıllı sözleşmelerine dayanan sigorta poliçeleri. Uçak yolculuğu öncesi bir uçuş sigortası yaptığınızı varsayalım. Eğer uçuş gerçekleşirse size herhangi bir geri ödeme yapılmıyor. Ama uçuş, havayolu şirketinden kaynaklı bir sorun nedeniyle planlanan zamanda gerçekleşmediğinde akıllı sözleşme harekete geçiyor ve müşterinin uçuş sigortası otomatik olarak hesabına iade ediliyor (Lipovyanov, 2019).

BAT (Basic Attention Token – Temel Dikkat Jetonu) ise blokzincirinin en ilginç uygulamalarından biri. Televizyonlar ve radyolar, bir programın ortasında reklam yayınlamayı hakları olarak görür. Ücretsiz izlediğimiz ya da dinlediğimizin programın karşılığını dikkatimizle öderiz. Webde ise reklamların dikkatimize saldırısı hem daha fazladır hem de doğru kişiye doğru reklamı göstermek için toplanan kişisel verilerin miktarı sürekli artmakta ve Facebook/Cambridge Analytica skandalında görüldüğü gibi çeşitli sorunlara neden olmaktadır. BAT ise farklı bir reklamcılık modeli sunar. Javascript dilinin yaratıcısı, Mozilla Firefox’un kurucularından Brendan Eich’in geliştirdiği model, hem reklamcılar hem de kullanıcılar için yararlı olma iddiasında. Kullanıcılar, verilerinin reklamlar için kullanılmasından, yerli yersiz gösterilen reklamların dikkatlerini ve şarjlarını yemesinden rahatsızlar. Yayımcılar, Facebook ve Google’ın sektördeki hakimiyetinden rahatsızlar. Reklamcılar ise neye ödeme yaptıklarını bilmek istiyorlar.

BAT platformunu kullanabilmek için Brave adlı web tarayıcısını indirmek gerekiyor. Hızlı, açık kaynaklı ve mahremiyet odaklı bir tarayıcı olan Brave (https://brave.com/), üçüncü taraflara ait reklamları ve izleyicileri (tracker) engelliyor; gömülü ve şeffaf yapay öğrenme algoritmaları ile kullanıcının çevrimiçi içeriğe karşı dikkatini ölçüyor. BAT, hem kullanıcı profillerini anonimlik protokolleri ve özellikleri ile korumayı hem de platformdaki hedefli reklamcılık uygulamaları için yararlı veriyi sağlamayı vadediyor. Kullanıcı, kendisine gösterilen reklamları izledikçe BAT jetonlarından kazanıyor. Kazandığı BAT’leri daha sonra BAT platformundaki ayrıcalıklı içeriğe ve hizmetlere erişmek için kullanabiliyor. Platformda kullanıcı verilerini toplayan, tüketici profilleri oluşturan ve daha sonra bunları reklamcılara satan (dolayısıyla kullanıcı verisini metalaştıran) aracıların olmaması kullanıcıların, yayımcıların ve reklamcıların yararına bir ortam yaratıyor. BAT’nin akıllı sözleşmeleri değerin ekosistemdeki dağıtımını sağlıyor. Reklamcı, göstermek istediği reklamla beraber bir para fonunu BAT’ye yüklüyor. Kullanıcılar reklamları izledikçe akıllı sözleşmeler reklamcıların yüklediği fondan kullanıcılara, platforma ve yayıncılara para aktarıyor. Facebook ve Google’ın gelirlerinin büyük bir kısmının reklamcılığa dayandığı düşünülürse BAT’nin iş modelinin bu iki şirket için yıkıcı olabileceği söylenebilir.

DAO’lar (Decentralized autonomous organizations – Merkezsiz Özerk Örgütler), blokzinciri üzerinde çalışan, tamamen otomatikleştirilmiş, şeffaf ve kamu tarafından yönetilen özerk varlıklar olarak tanımlanıyor ve akıllı sözleşmelerin nerelere gidebileceğini gösteriyor. DAO’lar, yönetimi ve işlemleri blokzinciri üzerinde gerçekleşen merkezsiz uygulamalar. Örgüt, örgütün görevleri ve belirli kurallar kümesine göre oluşturulan akıllı sözleşmelerle yönetiliyor. Akıllı sözleşmeler, kaynak veya hizmet satın alma, insan veya makine kiralama, tedarikçilere ve çalışanlara ödeme yapma, pazarlama, satış ve dağıtım yapma gibi iş stratejilerini otomatik olarak uygulayabilir. Lipovyanov (2019), henüz bu noktada olmasak da bunun için gerekli koşulların neredeyse hazır olduğunu, yöneticisiz, sadece hissedarlardan, paradan ve yazılımdan oluşan işletmelerin ufukta olduğunu iddia ediyor. DAO’ları geleceğin işletmelerine dair bir vizyon olarak değerlendirebiliriz.

Bitcoinden beri tüm blokzincirlerinin birer DAO olduğu savunulabilir. Ama Lipovyanov’un (2019) altını çizdiği gibi ancak akıllı sözleşmelerden sonra taraflar arasındaki ilişki ve iş kuralları programlanabilir olmuştur. Gelecekte, tüm yönetim ve iş süreçleri akıllı sözleşmelerle kodlanabilir olabilir. İnsan müdahalesi sadece akıllı algoritmaların bakım ve işletmesinde gerekecek. Bu vizyonu daha da ileri taşıyabilir, yapay öğrenme algoritmaları içeren akıllı sözleşme biçiminde özerk ajanları hayal edebiliriz. Fakat Lipovyanov (2019) bu tip bir teknolojinin şimdilik daha çok bilim kurguyla ilgili olduğunu, ama yapay zekanın akıllı sözleşmelere karışması durumunda işlerin bir hayli ilginç olacağını düşünüyor. Akıllı sözleşmeler, belki insan müdahalesi olmadan kendi yazılımlarını ve donanımlarını güncelleyebilecekler.

Şirketler ve Blokzinciri

Blokzinciri, kullanıcıların doğrudan alıp kullanılabileceği bir teknoloji olmadığından son yıllarda, şirketlerin bu teknolojinin bazı özelliklerini törpüleyerek kendi ihtiyaçlarına uyarladıkları, ortak çalışmalar yaptıkları ve standartlar oluşturdukları görülüyor. Kamusal blokzincirleri herkes tarafından okunabilir. Ancak daha önce belirttiğim gibi mahremiyet nedeniyle bu şeffaflıktan rahatsız olanlar var ve birçok işletme, tedarikçilerle veya çalışanlarıyla olan ilişkilerinin herkese açık olmasını istemiyor. Bu nedenle, şirketler, kamu kurumları ve diğer örgütler kendi kurumsal blokzinciri ağlarını kurmayı tercih ediyorlar. Bu tip blokzincirlerinin yönetimi merkezi bir otoriteye dayandığından bitcoin veya diğer kamusal blokzincirlerinde olduğu gibi güvenin yerini alabilecek oydaşım algoritmaları daha geri planda kalıyor. Kurumsal blokzincirlerinde bilinmeyen aktörleri kontrol etmek yerine dağıtık bir defterin (veritabanının) avantajlarından yararlanmak ön planda.

Birçok banka ve finans kuruluşu kendi iş süreçlerine uygun blokzincirleri geliştirmeye çalışıyor. Bilişim teknolojileri sektöründen taşımacılık sektörüne kadar birçok sektörde benzer girişimler var. Bu nedenle, büyük kuruluşlar, blokzinciri projeleri geliştirmek ve bu alanda işbirliği yapmak için endüstriyel ittifaklar, konsorsiyumlar ve ortaklıklar kuruyorlar. R3, 2015 yılında, finans sektörü için bir blokzinciri platformu geliştirmek isteyen dokuz bankanın işbirliğiyle kurulmuş blokzinciri örgütlerinden biri. Bankalar çalışmaya başlarken blokzinciri teknolojisinin işlemleri daha hızlı, verimli ve şeffaf yapacağını düşünmüşler.

R3’ün en önemli projesi olan Corda, dağıtık defter teknolojisi (distributed ledger technology) olarak adlandırılıyor ve özellikle düzenlenmiş finans kuruluşları arasındaki sözleşmeler için tasarlanmış. İşlemler, sadece yetkilendirilmiş taraflarca doğrulandığından bitcoin gibi kamusal blokzincirlerinden daha hızlı gerçekleşiyor. Ayrıca Corda’nın tasarımında eski sistemlerle birlikte çalışabilirliği sağlayabilmek için Ethereum’da olduğu gibi yeni bir sanal makine değil 1994’ten beri kullanılan java sanal makinesi tercih edilmiş. Corda’nın ortaya çıkışında bitcoinin blokzincirinden nasıl esinlenildiğinin öyküsü oldukça öğretici.

R3’ün CTO’su Richard G Brown, blokzinciri teknolojisini kendi iş süreçlerine uyarlayabilmek için önce blokzincirinin hangi amaçlar için kullanıldığını incelediklerini anlatıyor. İnceleme sonrasında blokzincirinin,

  • birbirini tanımayan kişilerin belirli bir konuda fikir birliğine varabilmesi,
  • işlemlerin doğrulanması,
  • tekilliğin sağlanması (örneğin bir paranın ikinci kez harcanmasının önlenmesi ya da dijital bir varlığın sadece bir kişiye ait olmasının sağlanması),
  • değişmezliğin sağlanması (işlem tarihçesini değiştirme zor ve çoğu zaman olanaksız),
  • merkezi bir otorite olmadan kimliklerin doğrulanması

için kullanıldığını görmüşler. Kısacası blokzinciri, birbirini tanımayan aktörlerin ortak olguların varlığı ve değişimi hakkında fikir birliğine varabilmeleri için kullanılıyormuş. Daha sonra kendi iş süreçlerinde fikir birliği gerektiren ortak olguların varlığını ve varsa blokzincirinin bunun için bir çözüm olup olamayacağı üzerinde durmuşlar.

Sonra finansal kuruluşlar arasında gerçekleşen aşağıdaki tipten sözleşmelerin bu tip ortak olgulara örnek olabileceğini görmüşler:

  • A Bankası, B Bankası’ndan 1000000 dolar borç aldı ve istenildiğinde geri ödeyecek.
  • A Bankası ve B Bankası, kredi borcu takas sözleşmesini imzaladılar.
  • A Bankası ve B Bankası arasında yapılan sözleşmeye göre A Bankası, üç işgünü içinde, 150000 dolar karşılığında 1000 birim hisse senedi verecek.

Temel sorun ise bu tip sözleşme kayıtlarını A ve B’nin ayrı ayrı tutmasının kolay olması ama zamanla A ve B’nin kayıt defterleri farklılaşabilmesi. Örneğin, A’nın sistemindeki bir güncelleme hatası bankalar arasında anlaşmazlığa neden olabilir. Finansal kuruluşlar böyle sorunları çözebilmek için çok büyük paralar harcıyorlar. İşte Corda, bu sorunu çözmek için gündeme gelir. Corda’da finansal sözleşmeler, endüstri standartları, birlikte çalışabilirlik ilkeleri gözetilerek ve üçüncü taraflara bilgi sızdırmayacak biçimde bir blokzincirine kaydedilir. Böylece hem A ve B bir sözleşmeyi doğrulamak için aynı yere bakacak hem de düzenleyici kuruluşlar taraflar arasındaki ilişkileri kolayca izleyebilecektir.

Corda, 30 Kasım 2016’dan beri özgür yazılım (https://github.com/corda/corda) ve projenin gelecekte R3’ün de üyesi olduğu Hyperledger konsorsiyumuna taşınması planlanıyor. Hyperledger, farklı endüstrilerden üyeleri olan daha geniş ölçekli ve kapsamlı bir blokzinciri geliştirme konsorsiyumu.

Hyperledger, 2015 Aralığında Linux Vakfı tarafından kuruldu. Hyperledger, finans ve bankacılığın yanında nesnelerin interneti, tedarik zincirleri, sağlık, üretim vb birçok sektör için endüstriyel blokzinciri çözümleri üretmeye çalışıyor. IBM, Intel, American Express, Daimler, Airbus, Fujitsu, Hitachi, Cisco, Accenture, JPMorgan, SAP, NEC ve Baidu’nun da üye olduğu Hyperledger’in şu anda 190’dan fazla üyesi var. Hyperledger, aslında farklı endüstrilere yönelik blokzinciri projelerini içeren bir çatı proje.

Hyperledger kapsamındaki projelerin her biri farklı gereksinimlere yönelik blokzinciri çözümleri içeriyor. Hyperledger’in sağladığı özgür ve açık kaynaklı yazılımlar, farklı iş gereksinimlerine uyarlanabilir. Hyperledger’de yer alan projeler, işbirliği ve yazılımın kaynak kodu paylaşılarak geliştirilmesine rağmen geliştirilen blokzinciri çözümlerinin kamusal değil, Corda’da olduğu gibi sadece izin verilen kullanıcıların okuyup yazabildiği konsorsiyum veya özel tipteki blokzinciri çözümleri olduğunu atlamamak gerekiyor. Hyperledger, parçaların birlikte çalışabilirliği ve birbiriyle değiştirilebilirliği dikkate alınarak geliştiriliyor. Ayrıca Hyperledger’in hala kullanılmakta olan eski sistemlerin yanında bitcoin ve ethereum gibi kamusal blokzincirleriyle birlikte çalışabilirliğine de özen gösteriliyor.

Hyperledger’de farklı hedef ve yaklaşımlarla geliştirilmiş yazılım çerçeveleri var: Hyperledger Fabric, Hyperledger Sawtooth, Hyperledger Iroha, Hyperledger Burrow, Hyperledger Indy.

IBM’in önerisiyle geliştirilen Hyperledger Fabric, endüstriyel blokzinciri uygulamaları için modüler, ölçeklenebilir ve güvenli bir temel sağlamayı hedeflemekte. Hyperledger Sawtooth projesi Intel’in öncülüğünde, bitcoin ve ethereum projelerinden esinlenilerek başlamış. Sawtooth, dağıtık kurumsal uygulamalar için geliştiriliyor. Ağa bağlanmanın, işlem göndermenin ve oydaşım sürecinde yer almanın izne bağlı olduğu bir platform sunuyor. Hyperledger Iroha, mobil uygulamalar için araçlar içeriyor. Hyperledger Burrow, Hyperledger ve Ethereum’un birlikte çalışabilirliğini sağlıyor. Hyperledger Indy ise bir kimlik yönetim sistemi.

Hyperledger, blokzinciri çözümleri geliştiren tek uluslararası örgüt değil. Bir diğer örgüt, 2017 Martında, çeşitli blokzinciri girişimcilerinin, araştırma gruplarının ve Fortune 500 şirketlerinin öncülüğünde kurulan EEA (Enterprise Ethereum Alliance). EEA, 200’den fazla üyesiyle (Microsoft, Intel, Samsung, Cisco, Hewlett Packard, Mastercard, JPMorgan, UBS, Credit Suisse, Banco Santander, BNY Mellon, British Petroleum, Shell, Pfizer, Merck, Deloitte, Accenture, Thomson Reuters, Toyota vs) en büyük blokzinciri girişimi.

EEA, normalde kamusal blokzincirine sahip olan Ethereum’un özel izinli bir sürümünü geliştiriyor. EEA, kriptopara olarak Ethereum lehine bir karar vermemekte, sadece ona benzer bir blokzinciri altyapısı geliştirmekte. Bu Ethereum sürümü, açık kaynaklı olacak herhangi bir endüstriyel kullanımın temelini oluşturacak. Bu yeni Ethereum sürümünden yararlanarak bankalar bankacılık, taşımacılık firmaları taşımacılık iş süreçlerine uygun blokzincirleri geliştirebilecekler.

Geliştirilen blokzinciri platformları, başta finans ve perakende sektörü olmak üzere çeşitli sektörlerde deneniyor.

Blokzinciri Nasıl Kullanılıyor?

Blokzinciri teknolojisi akıllı sözleşmelerden sonra hızla yayılmaya başladı. Bitcoin, bankacılığı bitirmedi ama arkasındaki blokzinciri teknolojisi finans sektörüne yeni olanaklar sundu. Örneğin 2017 Eylülünde RBC (Royal Bank of Canada), ABD ve Kanada arasındaki banka anlaşmalarında Hyperledger kullanmaya başladı. 2017’de Filipinler Bankacılar Birliği de kimlik doğrulamak için Hyperledger Indy’yi kullanan bir prototip geliştirdi.

Blokzinciri, tarafların birbirine güvenmediği ticari ilişkileri de kolaylaştırabilir. Örneğin, Avrupa’daki bir perakendeci Çin’den 500000 euro değerinde giysi ithal etmek istiyor. Avrupalı, ilk kez çalışacağı bu Çinli’nin parayı aldıktan sonra giysileri göndereceğinden emin olamıyor. Çinli de aynı durumda. Parayı almadan giysileri gönderirse Avrupalı’nın parayı ödeyeceğini nereden bilecek? Günümüzde aracı kurumlar bu güven ilişkisini tesis ediyorlar ve komisyonlarını alıyorlar. Gelecekte akıllı sözleşmelere dayalı blokzinciri platformlarının aracıları devreden çıkarması planlanıyor.

Blokzincirinin kriptoparalar dışında da finans sektörü üzerinde yıkıcı etkileri olabilir. Bazen insanlar bankalara para yatırırlar ve faiz elde ederler bazen de bankadan borç alıp bunu faiziyle öderler. İki işlem arasındaki farktan bankalar kazanç elde ederler. Lipovyanov (2019), blokzinciri teknolojisinin parasını bankaya yatıran ve bankadan para çeken kişiler arasında banka olmadan, doğrudan ilişki kurulmasına yardımcı olabileceği senaryoları tartışıyor.

Blokzinciri, perakende sektörünün işleyişini de değiştirecek. Çipli bir ürün, bir blokzincire kaydedilerek değişmez ve sahtesi yapılamaz duruma getirilebilir. Tüketici bir ürünü taradığında onun hakkındaki tüm bilgileri görebilir: Ürünün gerçek üreticisi kimdir, ne zaman üretilmiştir, önerilen satış fiyatı nedir. Böylece ürünün orijinalliği ve üretimin koşullarının sağlığa uygunluğu hakkındaki bilgiler şeffaflaştırılabilir.

Gıda sektöründe de benzer pilot projeler geliştiriliyor. Blokzinciri, deniz ürünlerinde yaşanan yasadışı avlanma, yanlış etiketleme, gıdaların sağlığa uygun olmayan koşullarda saklanması, elle tutulan kayıtlardaki hata payının yüksek olması gibi sorunlara çözüm olabilir. Bu sorunlar yalnız tüketicileri değil üreticileri, perakendecileri ve doğal kaynakları da olumsuz etkiliyor. Intel’in Hyperledger Sawtooth projesiyle deniz ürünlerinin denizden tüketicinin masasına kadar takibi yapılabiliyor. Deniz ürünlerine takılan algılayıcılarla ürünlerin taşınması, sahipliğin değişimi, yer, sıcaklık, hareket, nem, sarsıntı gibi verileri blokzincirine yazılıyor. Ürün son alıcıya ulaştığında ürünün tüm tarihçesi blokzincirinden alınabiliyor.

IBM ve Pekin’deki Tsinghua Üniversitesi işbirliğinde geliştirilen pilot projede de Hyperledger teknolojisi kullanılarak Çin’de domuz etinin üreticilerden imalatçılara, dağıtıcılara, toptancılara ve tüketicilere doğru hareketi dijital olarak izleniyor. IBM’e göre bu girişim, ürünlerin barkod numaraları veya radyo sinyalleri ile izlenmesiyle karşılaştırıldığına önemli bir gelişme. Şimdi blokzinciri sayesinde şeffaf biçimde tüm taraflar ürünlerin hareketini izleyebiliyor. Herkes aynı deftere (veritabanına) bakıyor ve aynı şeyi görüyor.

Blokzinciri, fikri mülkiyet haklarının işleyişini de etkileyecek. Günümüzde aracı platformlar sanatçıların eserlerini tüketicilere satmakta ve bu satıştan elde edilen kazancın sadece bir kısmı sanatçılara gitmekte. Blokzinciri platformları, bu tip platform kapitalizminin işleyişini sarsabilir. Video her görüntülendiğinde veya müzik her dinlenildiğinde doğrudan ve anında tüketiciden sanatçıya mikro ödemeler yapılabilir. Örneğin Kodak’ın kurduğu blokzinciri tabanlı platform, çekilen fotoğrafı doğrudan kişi adına kaydediyor ve fotoğraf kullanıldığı zaman kişiye otomatik bir ödeme yapılmasını sağlıyor. Bu gibi çözümler, özellikle daha az tanınan sanatçıların haklarını koruyabilmelerine yardımcı olacaktır.

Amazon ve Netflix platformları, müşterilerden ne kadar alınacağına ve bunun ne kadarının içeriğin oluşturulmasına katkıda bulunanlara gideceğine karar verirler. Blokzincirine dayanan StreamSpace (https://www.stream.space/) projesi sanatçıların kendi ürünlerinin sahibi olmalarını ve istedikleri ticari stratejiyi uygulayabilmeleri için gerekli koşulları sağlıyor. Müşterilerden ne kadar alınacağına platform değil, sanatçılar karar veriyorlar.

Bir Fırsat Olarak Blokzinciri

Bir yanda şirketlerin geliştirdiği blokzinciri uygulamaları diğer yanda merkezsizlik ilkesine sıkı sıkıya bağlı kamusal blokzincirleri var. Şirketler daha çok blokzincirinin dağıtık defter özelliğine yoğunlaşıyorlar ve tamamlayıcı uygulamalarla iş modellerini iyileştiriyorlar. Bu kapsamdaki blokzinciri uygulamaları webin yerini almaktan çok onu tamamlayıcı bir işleve sahip.

Kamusal blokzinciri uygulamaları ise platform kapitalizminden kaynaklı sorunlara karşı alternatif bir yol örüyor. Günümüzde internet, kullanıcı verilerinin büyük bir kısmını kontrol eden dört teknoloji devi tarafından kontrol ediliyor: Google, Facebook, Amazon ve Apple. Bu şirketler, blokzincirindeki gelişmeleri uzaktan izlemiyor, diğer şirketler gibi onu kendi iş süreçlerine uyarlamaya çalışıyorlar. Yine de kamusal blokzincirleri, bu şirketlerin iş modellerini sarsabilir.

Google, elinde tuttuğu kullanıcı verileri sayesinde arama konusunda bir numara. Fakat mahremiyet ihlalleri nedeniyle eleştiriliyor. Normal şartlarda hem kullanıcıların mahremiyetine özen gösterip hem de Google’a meydan okuyabilmek çok zor. Daha iyi arama hizmeti için kullanıcı alışkanlıkları hakkında verilere gerek var. Daha önce bahsettiğim Brave ve BAT örneklerinden yararlanarak merkezsiz arama platformları geliştirilebilir. Google’ın arama motoru gibi Youtube da rakipsiz. Fakat içerik üreticileri, Google’dan aldıkları telif ücretlerini tatmin edici bulmuyorlar. Kullanıcılar, reklamları izledikleri için ödüllendirilmiyorlar; Youtube’daki içerik ve yorum yazma hakkı bir lütuf, reklamlar da bunun karşılığıymış gibi gösteriliyor. Steem blokzinciri üzerinde çalışan DTube, hem içerik üreticilerini hem de kullanıcıları ödüllendirerek bir çekim merkezi haline gelebilir. Reklamsız ve sansürsüz bir platform Youtube’un tahtını sarsabilir. Ayrıca DTube tek alternatif değil, Viuly (https://viuly.com/ ) de bir başka merkezsiz video paylaşım platformu.

Facebook, iki milyardan fazla kullanıcısıyla ağ etkilerinden yararlanıyor. Bu nedenle, kullanıcılar tüm rahatsızlıklarına rağmen başka platformlara geçmek istemiyorlar. Fakat Facebook’un en zayıf noktası içeriği üretenin kullanıcılar ama bundan gelir elde edenin sadece Facebook olması. Steemit (https://steemit.com/) sosyal ağı, mahremiyetin yanında içerik üreticilerini ödüllendirmesiyle Facebook’un aleyhine bir ortam yaratabilir. Bu tehlikenin farkında olan Facebook, blokzinciri teknolojisini kullanarak karşı bir hamle yapmak için araştırma yapıyor.

Amazon için en büyük tehlike ise e-ticaret modelinin karşısına çıkabilecek Openbazaar (https://openbazaar.org/) gibi merkezsiz platformlar. Fakat Amazon’un blokzinciri kendi iş süreçlerine uyarlaması daha büyük bir olasılık. Örneğin, bir diğer e-ticaret devi Alibaba, T-Mall platformunda blokzinciri teknolojisini sınır ötesi tedarik zincirinde ürünleri takip etmek ve ürünlerin orijinalliğini doğrulamak için kullanıyor.

Teknolojideki değişim, fikri mülkiyet ilişkilerindeki dengeleri de değiştiriyor. Sanatçının blokzinciri platformlarında izleyicilerle (dinleyicilerle) doğrudan buluşması iTunes gibi platformları etkileyebilir. Ya da Apple, blokzinciri teknolojisini ApplePay’e uyarlayabilir. Ama Lipovyanov’ın (2019) işaret ettiği gibi, Steve Jobs’tan beri her zaman merkezi bir ekosistemi ve kullanıcı deneyimi üzerinde tam kontrolü tercih eden Apple için blokzinciri ezber bozan bir teknoloji.

Kısacası teknoloji devleri blokzinciri teknolojisini özümseyerek konumlarını güçlendirebilirler veya teknolojileri tarihinde bazen gördüğümüz gibi bir uygulama teknolojik gelişmenin yönünü değiştirebilir. Belki teknolojik gelişmenin yönünü değiştirecek uygulama aşağıdakilerden biridir:

Kaynaklar

Biryukov, A., Khovratovich, D. and Pustogarov, I. (2014) ‘Deanonymisation of clients in bitcoin p2p network’, Proceedings of the 2014 ACM SIGSAC Conference on Computer and Communications Security, New York, NY, USA, pp.15–29.

Kleiner, D. (2016). Telekomünist Manifesto, çev. Ali Temizaşık. Alternatif Medya Derneği

Lipovyanov, P. (2019). Blockchain for Business 2019, Packt Publishing.

Mougayar, W. (2016). The business blockchain: promise, practice, and application of the next Internet technology. John Wiley & Sons.

Zheng, Z., Xie, S., Dai, H. N., Chen, X., & Wang, H. (2018). Blockchain challenges and opportunities: a survey. International Journal of Web and Grid Services, 14(4), 352-375.



26 January 2019

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Maalesef yanlış yoldayız!

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

22 January 2019

Python'da Kullanıcı Tanımlı Hatalar


Python projelerinde kullanıcılar hata tanımlayabilir ve aynı sistem tarafından tanımlı hatalar gibi try-except içinde kullanabilir.

    Ben pebble-remote projesini geliştirirken bu hata yakalama kısmında şöyle bir sorunla karşılaşmıştım. Kullanıcı tanımlı hata sınıflarım vardı ve bu sınıfların tanımlandığı dosyanın dışında bir yerde bu tanımlanan hataları yakalamak istiyordum. Hatanın tanımlandığı python dosyasını da import ettiğim halde bu hataları yakalayamıyordum.

   Daha iyi bir yöntemi de olabilir elbet ama benim deneyerek bulduğum çözüm hata sınıfının tam yolunu yazmak oldu.

Kullanmaya çalıştığım python modülünün yapısı aşağıda:

libpebble/pebble
├── __init__.py
├── LightBluePebble.py
├── pebble.py
└── stm32_crc.py

LightBluePebble.py dosyası içinde bir hata aşağıdaki gibi tanımlanmış:


LightBluePebbleError(Exception):
def __init__(self, id, message):
self._id = id
self._message = message
def __str__(self):
return "%s ID:(%s) on LightBlue API" % (self._message, self._id)

Bu hatayı yakalamak istediğim dosya içinde  içinde modülü aşağıda şekilde import ettim:


import pebble as libpebble

Bu haliyle aşağıdaki kod hatalıydı:


try:
...
except LightBluePebbleError as e
...

Doğrusu:


LightBluePebbleError = libpebble.LightBluePebble.LightBluePebbleError

try:
...
except LightBluePebbleError as e
...


10 January 2019

Stubby ile DNS-over-TLS nasıl yapılandırılır?


8.8.8.8 için DNS over TLS‘in duyurulmasının ardından, stubby kullanarak kullanıcı tarafında nasıl yapılandırılacağını inceliyoruz.

Öncelikle stubby‘yi Ubuntu 18 yazılım deposundan kuralım;

sudo apt install stubby

Stubby kendi içinde gelen ön tanımlı ayarlar ile doğrudan çalışmaya başlayacak. Google DNS 8.8.8.8’i eklemek için aşağıdaki satırları ayar dosyasına ekleyelim;

/etc/stubby/stubby.yml
# Google
- address_data: 8.8.8.8
  tls_auth_name: "dns.google"
- address_data: 8.8.4.4
  tls_auth_name: "dns.google"

Stubby‘nin 53 portunu dinlediğinden emin olduktan sonra ağ ayarlarımızdan DNS tanımını 127.0.0.1 olarak değiştirerek kriptolu DNS kullanmaya başlayabiliriz.

sudo netstat -lnptu | grep stubby


29 October 2018

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


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

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

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

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

yazarak başlatmanız

sudo f5fpc --stop 

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

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

Kolaylıklar dilerim.



Zemberek 0.16.0 Text Normalizasyonu ve gRPC sunucusu


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

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

Yrn okua gidicem
yarın okula gideceğim

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

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

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

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

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

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

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



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.



05 July 2017

Yansı sunucusu arızası


TÜBİTAK ULAKBİM tarafından donanım ve ağ bağlantısı sağlanan ftp.linux.org.tr yansı sunucumuzda donanım arızasından ötürü sorun yaşanmaktadır. Sorunun en kısa sürede giderilmesi için çalışmalarımız sürüyor.

Güncelleme: 2017-07-18 08:37 itibarıyla tüm dağıtımların yeniden yansılanması tamamlanmıştır.



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.



20 May 2016

Veri Bilimi Bülteni — 40


Her cuma yayın­ladığım ‘Veri Bil­imi Bül­teni’ ile son 1 haf­tada veri ve veri bil­imi konusuyla ilgili okuduk­larım­dan dikka­timi çeken­leri pay­laşıy­o­rum. Bu bül­ten her yayın­landığında hab­er­dar olmak istiy­or­sanız “Haf­talık Veri Bil­imi Bül­teni” linkedin grubuna üye ola­bilirsiniz. Küçük bir not: Önümüzdeki haftadan itibaren bülteni tamamen ingilizce olarak çıkarmayı (zaten içerikler ingilizce, ben bazen yorumlarımı türkçe Devamını Oku […]

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 yk@linux.org.tr 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.



27 February 2015

Gemalto – İstihbaratcılar İzin Almadan İstediklerini Dinleyebilecek


ABD istihbarat örgütü NSA ve ingiliz gizli istihbaratının (GCHQ) ortaklaşa yaptığı operasyonda, Dünyanın en büyük sim kart üreticisi Gemalto hacklendi. Gemalto senede 2 milyar sim kartı üreten ve dünya çapında […]

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.



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 user@git.example.com:repo.git` şeklinde gördüğümüz ifadeler sadece ssh protokolünün kısa yazımıdır ve `ssh://user@git.example.com: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! :)
                    



02 November 2014

PisiLinux 1.1 Yayınlandı


Pardus projesinin 2012 Ocak ayında sonlandırılmasından sonra yaşanan belirsizliğin ardından projenin teknik altyapı değişikliğiyle yoluna devam etmesine karar verildi. Normal şartlarda tamamladığım bu cümlenin ardından bir bağlantıya atıfta bulunurdum ama inanın İnternet’in derinliklerinde Pardus ile ilgili bu konudaki  bağlantıları aramak bile istemiyorum. Çünkü ben ve benim gibi pek çok kişi o süreçte çok üzüldü , kırıldı ve Pardus adını bile duymak istemedi ki hâlâ böyle hissedenlerin olduğunu biliyorum.

2012 Yılı bu belirsizlikle geçerken bazı Pardus severler başka dağıtımlara, bazıları da “yeni” Pardus’a geçiş yaptı geriye kalan kitle ise işimi göremeyecek duruma gelen kadar Pardus’ kullanmaya devam edeceğim derken çok az sayıdaki Pardus sever ise bir iddia ile ortaya çıktı “paketleri güncel tutacağız” Paketleri güncel tutma çalışmaları 2013 başlarında  Pardus’a özgü PİSİ , COMAR, YALI, KAPTAN gibi  teknolojileri kullanacak yeni bir Dağıtım oluşturmaya evrildi.

Tıpkı Pardus’un yıllar önce Gentoo’yu kuluçka dağıtım olarak kullanması gibi Özgün Pardus’un ardılı olan  bu yeni dağıtım da Pardus 2011.2 sürümünü kuluçka dağıtım olarak kullandı ve tıpkı ana rahmindeki bir cenin gibi bir süre sonra kalp atışları duyulmaya başlandı.

PisiLinux

PisiLinux

Yeni Dağıtımın Adı PisiLinux

Bir GNU/Linux dağıtımını diğerlerinden ayıran en önemli özelliği kuşkusuz kullandığı paket yönetim sistemidir.  Özgün Pardus’un en önemli özelliği de elbette diğer dağıtımlardan farklı olarak kendi paket yönetim sistemi olan PİSİ idi bundan dolayı yeni dağıtımın adı Pisi Linux oldu.

Çalışmalar sınırlı sayıda paketçinin çabalarıyla github üzerinde  sürdürüldü.  Paketler gözden geçirildi sürümleri güncel’e çıkarıldı, Pardus hata sistemine girilen yeni paket istekleri baz alınarak yeni paketler eklendi, Yalı içeriği güncellendi, Pisi’ye ihtiyaçlar gözönüne alınarak eklemeler yapıldı. Zahmetli ve uzun bir çalışmanın ardından geçtiğimiz Ağustos ayında ilk kararlı sürümü olan PisiLinux 1.0 yayınlandı.

29 Ekim 2014 günü yani Cumhuriyetimiz’in 91. Yıldönümünde ise güncellenen paketler 300 Mb geçtiği için ilk ara sürüm Pisilinux 1.1  sessiz sedasız yayınlandı. PisiLinux!u meydana getiren bu fedakâr ekip tıpkı iki yıldır yaptıkları gibi çalışmalarına sessiz sedasız devam ediyor…

Geçen iki yılda;

1- Kaderine terk edilen Pisi paketleri güncellediler.

2- Yeni paketleri depoya aldılar.

3- Yeni bir dağıtımı meydana getirdiler.

4- Pisi’ye yeni özellikler eklediler.

5- PisiLinux Topluluğunun temellerini attılar. Bu amaçla proje sayfası, Web Sitesi,  Forum, Hata Takip Sistemi,Yardım Kanalları‘nı hayata geçirdiler.

Bu tip blog yazıları genelde “etkin” destek çağrısı amacıyla yazılır ki ben de daha önce böyle birkaç yazı yazmıştım. Ancak bu sefer öyle değil.

Bu sefer sadece bir son kullanıcı olarak size PisiLinux’u sadece deneme amaçlı da olsa kurun kullanın demek için yazıyorum. PisiLinux 1.1 sürümünü indirin ve  önyargılarınızı bir kenara bırakarak kullanın. Bir bakın eğer işlerinizi yapamayacağınızı düşünürseniz de  kaldırın.  Bu seviyeye gelmiş olan Pisilinux artık sizden sadece kullanılmayı ve hak ettiği değeri görmeyi bekliyor.

Daha önce defalarca Linux dağıtımları kurdunuz kaldırdınız bir kez daha yapabilirsiniz haydi!

Sürüm Çıkış Târihi İndirme Bağlantısı
Pisi Linux 1.1 KDE  29.10.2014
Pisi Linux 1.0 KDE  14.08.2014
Pisi Linux 1.0 LXDE 14.08.2014
Pisi Linux 1.0 XFCE 14.08.2014
Pisi Linux 1.0 Minimal 14.08.2014


26 September 2014

Fedora 20 Adım Adım Laravel Kurulumu


Hepinizin malumu Laravel şu an en popüler php frameworklerinden biri. İnternette Ubuntu için oldukça fazla anlatım mevcut olmasına rağmen Fedora'da oldukça kısıtlı ve eksik. Böyle olunca lamp kurulumundan başlayarak adım adım anlatalım dedik. Hadi başlayalım.

1.LAMP KURULUMU

   1.1 Apache Kurulumu

      Paket Yöneticisi Güncellenir

      #sudo yum update

      Apache web sunucusu kurulur

      #sudo yum install httpd

      Web sunucusu çalıştırılıp kontrol edilir

      #sudo service httpd start

      Tarayıcı'ya http://localhost yazılırsa şöyle bir şey çıkması lazım


     1.2 Mysql Kurulumu

       Mysql Kurulur ve başlatılır

       #sudo yum install mysql mysql-server       #sudo service mysqld start       


       Mysql Güvenli Kurulum betiği çalıştırılır

      #sudo /usr/bin/mysql_secure_installation
     
      Aşağıdaki gibi sorulara cevap verilir.


/usr/bin/mysql_secure_installation: line 379: find_mysql_client: komut yok

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): Burada enter'a basıyoruz
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

     1.3 PHP Kurulumu

       Php ve gerekli modülleri yüklenir

       #sudo yum install php php-mysql php-mcrypt 
         (mcrypt paketi kurulmazsa laravel kurulumunda hata verebilir)    

     1.4 Sistem Açılış Ayarları

       Aşağıdaki komutları yazarak http ve mysql servislerinin sistem açıldığında otomatik açılmasını sağlıyoruz
        #sudo chkconfig httpd on
        #sudo chkconfig mariadb on



     1.5 Php Testi

       Nano Editörü yüklenir

       #sudo yum install nano
       #sudo nano /var/www/html/info.php

       Açılan editöre aşağıdaki kod kopyalanır

     
             <?php 
             phpinfo(); 
            ?>

        Kaydedilip çıkılır. Apache yeniden başlatılır

         #sudo service httpd restart

        Tarayıcı'ya http://localhost/info.php yazılırsa şöyle bir şey çıkması lazım



2.LARAVEL KURULUMU

  Terminalde şu komutu yazıyoruz

   #sudo curl -sS https://getcomposer.org/installer | php
  

  Composer.phar dosyasını çalıştırılabilir dosyalar klasörüne atıyoruz.

   #mv composer.phar /usr/local/bin/composer

  Html Klasörümüze gidiyoruz

   #cd /var/www/html
   #composer create-project laravel/laravel proje-isminiz
   #cd proje-isminiz
   #composer install
   #cd ..
   #sudo chmod -R 777 proje-isminiz
   
   Tarayıcı'ya http://localhost/deneme/public/ yazdığınızda aşağıdaki ekran gelmesi lazım. Gelmiyorsa SElinux engelliyordur. Kaldırmak için
    #nano /etc/selinux/config 
    Bu dosya içerisinde yer alan SELINUX=enforcing yazan satırı SELINUX=disabled veya permassive olarak değiştiriyoruz  ve dosyamızı kaydediyoruz.


   


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/