November 23, 2017

Dijitalleşme ve Kullanıcıların Mülksüzleştirilmesi

Eylül ayının üçüncü cumartesi günü yazılım özgürlüğü günü (https://www.softwarefreedomday.org/) olarak kutlanıyor. Etkinliğin amacı özgür yazılım ve yararları hakkındaki farkındalığı artırmak ve özgür yazılım kullanımını yaygınlaştırmak. Yazılımdaki özgürlüğü, hem özgür yazılım hareketinin içinden hem de dışından birçok insanın yaptığı gibi GNU/Linux işletim sistemine indirgememek gerekiyor. Yıllar önce bilgisayar denilince akla ilk gelen sadece ev kullanıcılarının kişisel bilgisayarlarıydı. Kişisel bilgisayarları, dizüstü bilgisayarlar, akıllı telefonlar ve tabletler izledi. Bu süreçte, kullanıcıların bilgisayarla yaratıcı etkileşimi, bir diğer deyişle bilgisayarı, üreticinin öngörmediği veya öngöremediği biçimlerde kullanma olanağı zayıfladı. Günümüzde ise gündelik hayatta kullandığımız nesnelerin bilgisayarlaşmasına şahit oluyoruz. Artık “arabanız tekerlekli bir bilgisayardır; uçak kanatları olan bir bilgisayardır; saatiniz, çocuğunuzun oyuncağı, hatta kalp piliniz özünde bir bilgisayardır” (Perzanowski ve Schultz, 2016). Nesnelerin interneti bağlamında gündeme gelen akıllı cihazlar yine birer bilgisayardır. Bu nedenle bilgisayarlardaki yazılımın özgürlüğü, 27 Eylül 1983’te Richard Stallman’ın GNU (GNU is Not Unix) projesini duyurarak özgür yazılımın fitilini ateşlediği dönemden daha vazgeçilmezdir. Kişisel bilgisayarlarda kullandığımız yazılımların özgürlüğünü düşünmek GNU/Linux, LibreOffice, Mozilla gibi yazılımların başarısı dikkate alındığında artık daha anlaşılırdır. Buna karşın, araba, kalp pili, giyilebilir teknoloji ve mobil cihazlar gibi günümüz bilgisayarlarındaki yazılımların kaynak koduna sahip olunabileceğine, nasıl çalıştığının öğrenilebileceğine ve kodda değişiklikler yapılabileceğine ihtimal vermeyiz. Hatta çoğu insan bu cihazların içinde yazılım bulunduğunu bile unutmuştur. Ama aynı teslimiyet 27 Eylül 1983 için de geçerlidir ve o zaman da özgür bir işletim sisteminin olabileceğine pek ihtimal verilmemektedir.

Bilişim teknolojilerini tartışırken çoğu zaman özgür yazılımdan yardım almak zorunda kalıyorum. Bunun temel nedeni, özgür yazılımın sunduğu alternatifler, açılımlar ve çelişkileriyle birlikte bilişim teknolojilerini ekonomi politik bir yaklaşımla tartışmayı daha anlaşılır ve somut kılması. Örneğin, nesnelerin interneti ve dördüncü endüstri devrimi gibi moda ifadelerin ve bulut bilişim gibi masalların peşine takılmadan önce bu teknolojilerin içinde geliştiği toplumsal ilişkileri, kimin kazanıp kimin kaybettiğini, bu sürece nasıl müdahale edilebileceğini tartışmak gerekir ve bu tartışmada, mülkiyet ilişkileri kritik bir rol oynar. Özgür yazılımcılar, son derece basit ama temel sorularla bu tartışmaya katılmaktadır: Kullandığınız bilgisayarların sahibi miyiz? Değilsek bunu nasıl başarabiliriz? Bu sorulardan sonra, o moda teknolojilerin cilası dökülmeye başlar.

Ayrıca Geray’ın (2016) belirttiği gibi ekonomi politik yaklaşım, neo-klasik iktisatta olduğu gibi toplumsal değer yargılarını dışarıda bırakmaz: “Eşitlik, hakkaniyet, adalet, toplumun/kamunun genel çıkarı gibi değer yargıları çözümlemelere katılır” (age). Fikri mülkiyet haklarına, özellikle de patentlere yöneltilen en büyük eleştirilerden biri araştırmaların kamudan alınan vergilerle finanse edilmesi ama araştırmaların meyvelerinin şirketler tarafından toplanmasıdır. Avrupalı özgür yazılım kuruluşları sürekli bunun gibi adaletsizlikleri sorgulamaktadır. Eylül ayında başlattıkları “kamunu parası, kamunun kodu” (https://publiccode.eu/) adlı kampanyada da sorgulanan yine çok basit ama sürekli görmezden gelinen bir konudur: İnsanların vergileriyle geliştirilen yazılımlar neden özgür yazılım olarak kamuyla paylaşılmaz? Aynı yazılıma tekrar tekrar para ödeyen bir hükümet kamunun çıkarı yerine şirketlerin çıkarını düşünmüyor mudur?

Eleştirel olmayan bir bakış açısı gözetimi ve sansürü de teknolojik gelişmelerin kaçınılmaz sonucu olarak değerlendirir. Özgür yazılım için bunlar yeni teknolojilerin bir özelliği değil kusurudur ve hiç de kaçınılmaz değildir; özel hayatın gizliliği ve ifade özgürlüğü savunulması gereken değerlerdir. Özgür yazılım, yazılım dünyasının dışına taşmış ve Wikipedia gibi projelere ilham vermiş, neoliberalizmin piyasa toplumu dışında başka bir alternatifin olduğunu göstermiştir.

Ancak tam da bu noktada durmak gerekiyor. Özgür yazılım, kapitalizmde sadece (ve son derece ufak) bir çatlaktır. Şimdi sesleri daha az çıksa da ikibinli yılların başında müştereklerden ve ortaklaşa çalışmanın potansiyelinden, bilişim teknolojilerinin toplumsal ilişkilerde yarattığı değişimden etkilenen birçok insan kapitalizmin aşıldığını iddia edecek kadar ileri gitmiştir. Fakat özgür yazılım, başka alanlardaki benzer girişimler gibi, her zaman tehlike altındadır:

Oluşturulan her müşterek, zamanla iki gücün saldırılarına maruz kalacaktır. Birincisi, müşterekleri hiçe sayarak kendi gelirlerini maksimize etmek için açık arayan bireylerin ve şirketlerin kurnazlığı. İkincisiyse, hükümetlerin ekonomik darboğaz zamanlarında (veya piyasa ideolojisinin güdümünde) müşterekleri besleyen kaynakları kurutma, müştereklerinin etkilerini azaltarak kamuoyu desteğini baltalama eğilimi.

Özgür yazılım hareketi, başta FSF (Free Software Foundation) ve FSFE (Free Software Foundation Europe) olmak üzere, patent, DRM (Digital Restrictions Management – Sayısal Kısıtlamalar Yönetimi), bulut bilişim vb kampanyalarından da görülebileceği gibi tehlikenin farkındadır. Bin yılın başında müştereklerden, eşitlik ve özgürlükten bahsedip, sözüm ona enformasyon toplumunu selamlarken günümüzde dijitalleşmeyle gelişen mülksüzleştirmeyle karşı karşıyayız. Özgür yazılım hareketinin yıllardır sorduğu soruları şimdi daha yüksek sesle sormanın zamanı: Bilgisayarlarımızın gerçekten sahibi miyiz? Bilgisayarlarımızın gerçek sahibi olabilmemiz için ne yapmamız gerekiyor?

Bu yazıda, tüketiciler ve satın aldıkları (ya da satın aldıklarını sandıkları!) ürünler arasındaki ilişkinin nasıl değiştiğini göreceğiz. Yazının devamında, sahip olunan nesneye göre değişen farklı mülkiyet biçimleri yer alıyor. Daha sonraki bölümde dijitalleşmeyle beraber kitap, film ve müzik endüstrisindeki yaşanan değişimleri ve bu değişimleri olanaklı kılan biri hukuksal diğer teknik iki aracı, lisansları ve DRM’yi aktarıyorum. Son olarak, aynı araçlarla günümüz bilgisayarlarında uygulanan mülksüzleştirme örneklerini göreceğiz.

Gayrimenkul Mülkiyeti, Bireysel Mülkiyet ve Fikri Mülkiyet

Dijitalleşmeyle beraber fikri mülkiyet haklarının kapsamında toplumun aleyhine, şirketlerin lehine bir genişleme vardır. Ama bu genişleme aynı zamanda kullanıcıların mülksüzleştirilmesiyle beraber gelişmektedir. Bunun örneklerine geçmeden önce mülkiyetin ne olduğunu ve dijitalleşmeyle beraber nasıl bir değişim yaşandığını tartışmak gerekiyor.

Önce mülkiyetin ne olmadığıyla başlayalım. Mülkiyet insanla nesne/kaynak arasındaki bir ilişki değildir. “A, x’e sahiptir” ifadesi mülkiyet ilişkisini tanımlamak için yetersiz kalacaktır. Mülkiyet toplumsal bir ilişkidir. Çünkü A, B’ye karşı x’e sahiptir ve A x’ten yararlanmakla kalmaz kendisi dışındakilerin x ile olan ilişkisini de kontrol eder. Bir diğer deyişle mülkiyet asıl olarak A ve B arasında bir ilişkidir. Fakat bu ilişkinin gerçekleşebilmesi için A ve B’nin x üzerindeki ilişkisi hukuksal olarak tanınmalıdır. B, A’nın izin vermediği biçimde x’e eriştiğinde bunun bir yaptırımının olması gerekir. Bunun yanında, x’e sahip olan A’nın mutlak güç sahibi olduğu yanılgısına düşülmemelidir. A, keyfi biçimde hareket edemez; B’nin de hakları vardır. Ancak her iki tarafın hakları da mutlak değildir. Haklar ve denge, sosyoekonomik koşullar ve teknolojik yeniliklerle yeniden şekillenir.

A ve B arasındaki mülkiyet ilişkisi x’in ne olduğuyla ilişkili olarak farklı biçimlerde karşımıza çıkabilir. Perzanowski ve Schultz (2016), x’in durumuna göre mülkiyeti dörde ayırır: Gayrimenkul mülkiyeti, bireysel mülkiyet, fikri mülkiyet, maddi olmayan şeylerin mülkiyeti [1].

Mülkiyet denilince ilk akla gelen gayrimenkul mülkiyetidir. Gayrimenkul, fiziksel bir alanla tanımlanır. Deprem, toprak kayması veya nehir yatağının değişmesi gibi durumlar olmadığı sürece sabittir, bıraktığınız yerde kalır. x’in gayrimenkul olduğu durumlarda A’nın B’ye göre ilişkisi çeşitli biçimler alabilir. Gayrimenkul sahibi, toprağı kullanma, diğerlerini dışlama, satma, bağışlama veya ondan kâr elde etme hakkına sahiptir. A, x’e sadece ömrü boyunca sahip olabilir (miras bırakamaz) veya devre mülkte olduğu gibi x’i yılın belirli zamanlarında kullanabilir. Bu haklar açık uçludur ve tartışmaya açıktır. Örneğin belediyenin kat sınırlaması olabilir, dairenin işyeri olarak kullanımı yasaklanmış olabilir, arazi sahibi arazisini süpermarket yapmamak kaydıyla kullandırmak isteyebilir veya bir üniversite arazisindeki ağaçların zarar görmemesi şartıyla arazisinden yol geçmesine izin verebilir. Gayrimenkulün hem daha pahalı hem de kullanımı hakkındaki sınırlamaların açık uçlu olması nedeniyle herhangi bir satın almadan önce oldukça ayrıntılı bir araştırma yapılması gerekir. Normal vatandaşlar az sayıda gayrimenkul aldıklarından daha ince eleyip sık dokurlar.

Bireysel mülkiyette ise haklar daha nettir. A, x’e sahipse bununla ne yapacağı ve B’ye karşı hakları daha nettir. B, A’dan Mavi kazak satın aldığında A, B’ye “bunu turuncu pantolonun üstüne giyemezsin” diyemez. Bireysel mülkiyete konu nesneler gayrimenkule göre çok daha ucuzdur ve satın alma sonrası oluşan hakların sınırları daha belirlidir. Bir kitap, buzdolabı, kazak vb satın alan kişi bunu kendisi kullanabilir, satabilir, kiralayabilir, ödünç verebilir veya hediye edebilir. Satış sonrasında A’nın x üzerindeki hakları sona erdiğinden x’i satın alan kişi A’nın yerine geçer. Bireysel mülkiyet, gündelik hayatta o kadar sık deneyimlediğimiz bir ilişkidir ki okuyucu yukarıdaki örnekleri gereksiz olarak değerlendirecektir; başka türlüsünü düşünmek zaten mümkün değildir. Ama sorun da zaten bu açık seçik olan hakların kaybediliyor olmasıdır.

Fikri mülkiyette x, gayrimenkul ve bireysel mülkiyette olduğu gibi maddi bir varlığa sahip olmaması nedeniyle farklıdır. Gayrimenkul ve bireysel mülkiyette x maddi varlığa sahip olduğundan nesnenin ve kaynağın kullanımında kıt kaynak sorunu vardır. Gayrimenkul ve bireysel mülkiyet ilişkileri bu kıt nesne ve kaynakların kullanımını düzenler. Fikir ürünleri için kendiliğinden bir kıtlık söz konusu değildir. Fikri ürünlerinin kullanımı onları azaltmaz, tam tersine artırabilir de. Fikirlerin de bir kullanım değeri vardır; bunların artması ve yayılması arzulanır. Buna karşın, fikir ürünlerini üretenlerin bu çalışmalarının karşılığını alamazlarsa üretmeyecekleri (ya da üretemeyecekleri) savunularak asıl kıtlığın fikir ürünlerinde değil bunun üretimi için gerekli emek gücünde olduğu belirtilir. Fikir ürünlerinin bir diğer farklılığı da bir kere ifşa edildikten sonra kontrol edilmelerinin zorluğudur. Bir araziyi çitleyebilir, özel ve değerli eşyalarınızı kasaya koyabilirsiniz. Ama fikir ürünleri için böyle bir durum söz konusu değildir. Patent, telif, marka yasaları bu korumayı gerçekleştirmek için vardır. Bireysel mülkiyette A, x’i sattığında satın alan kişi A’nın yerine geçer. Fikri mülkiyette ise durum farklıdır. Bir film DVD’si satın aldığınızı varsayalım. Bu sizi filmin sahibi yapmaz; sadece filmin kaydedildiği DVD’nin sahibisinizdir. Normal şartlarda (kopyalama hakkına sahip şirket size bu yetkiyi vermemişse) bu filmi kopyalayıp dağıtamazsınız veya bir oda dolusu izleyiciye gösterim yapamazsınız. Hatta fikri mülkiyetin en saf halinde DVD’yi satın alan kişi bunu başkasına satamaz, kişisel kullanım için yedekleyemez, bir arkadaşına hediye edemez vs. Fakat fikri mülkiyet hakları, A’nın x üzerinde satış öncesinde ve sonrasında tüm haklara sahip olduğu bir ilişki değildir. A’dan x’i satın alan kişi A’nın yerine geçemese de x’i satın alan (B’) ile satın almayan (B) arasında bir fark vardır. A, x’te yayma hakkına sahiptir. Yayma hakkı, “bir eserin aslını veya çoğaltılmış nüshalarını, kiralamak, ödünç vermek, satışa çıkarmak veya diğer yollarla dağıtmak hakkı”dır. Yasa, x’in DVD’sini satın alan B’nin yeniden satış hakkı için şunları söylemektedir:”kiralama ve kamuya ödünç verme yetkisi eser sahibinde kalmak kaydıyla, belirli nüshaların hak sahibinin yayma hakkını kullanması sonucu mülkiyeti devredilerek ülke sınırları içinde ilk satışı veya dağıtımı yapıldıktan sonra bunların yeniden satışı eser sahibine tanınan yayma hakkını ihlal etmez” (Aksu, 2016). Bu durum, “tükenme ilkesi” olarak adlandırılır. Yasa, tükenme ilkesini tanıdığı için satın aldığımız DVD veya kitap bireysel mülkiyete göre değerlendirilebilir.

Kısacası, bir fikir ve sanat ürünündeki telif hakkı ile onun kopyasının mülkiyeti hakkında bir ayrım vardır. İnternet öncesi dönemde de radyo ve televizyon yayınları da telif haklarını etkilemiştir ama yine de asıl gelir kaynağı fiziksel kopyalar olmuştur. Reklam ve kablo aboneliği bile kopyaların önemini azaltmamıştır. “Tükenme ilkesi” ikinci el pazarını ortaya çıkarmış, ikinci el ürünler birinci el ürünlere rakip olmuş ve bu da tüketicinin lehine olmuştur. Tükenme ilkesi, kopyalama hakkına sahip şirketler için satacakları kopya sayısını azalttığı için istenmeyen bir durumdur. Dijitalleşme ile beraber eski kopya biçimlerinin yavaş yavaş ortadan kalkması yeni bir döneme kapı aralamıştır. Dijitalleşmeyle mülkiyet ilişkilerinde yaşanan dönüşüme geçmeden önce kopyalama hakkına sahip şirketlerin tükenme ilkesine düşmanlıklarının tarihte ilginç örneklerinin olduğunu belirtmek isterim. Günümüzde bazı okullar ve kurumlar, kütüphane kullanımını teşvik etmek için kütüphaneden en çok yararlananların isimlerini duyururlar. Vaktini kütüphanede geçirenlere saygı duyarız. Fakat kopyalama hakkı sahibi şirketlerin en büyük düşmanlarından biri kütüphaneler ve buralardan yararlananlardır. İnsanların yeni kitap almak yerine kütüphaneden kitap ödünç almalarını kendi işlerinin baltalanması olarak değerlendirirler. Bunun en çarpıcı örneklerinden biri 1931’de bir grup yayıncının “kitap ödünç verme” sorununu çözmesi için halkla ilişkilerin öncülerinden olan Edward Bernay’i tutmasıdır. Bernay, kitap ödünç alanları aşağılayan bir lakap bulma kampanyası düzenler. Yarışmayı booksneak kazanır (Önerilen diğer lakaplar book weevil, greader, libracide, booklooter, bookbum, culture vulture, bookbummer, bookaneer, biblioacquisiac ve book buzzard.)

iTunes Music Store, Bulut Bilişim ve Dijital Abonelik

Son 15 yılda içeriğe erişim biçimimizde önemli değişiklikler yaşanmıştır. İkibinli yıllara kadar kitap, müzik ve filmler elimizde tuttuğumuz, kitaplığımızda sakladığımız ve birbirimize hediye ettiğimiz fiziksel nesnelerdir ve tüketiciler, tükenme ilkesinin tanıdığı hakla hareket etmektedir. Bu bağlamda, 2003 yılında Apple’ın iTunes Music Store’ı ve yeni iş modelini duyurması bu hakka

önemli bir darbedir. İnternetten müzik eserlerini ücretsiz indirmenin oldukça yaygın olduğu bir dönemde Steve Jobs, insanların hala müzik eserleri için ödeme yapmaya gönüllü oldukları, ama birkaç hit parça için tüm albümü satın almak istemedikleri tespitini yapmaktadır. Jobs’a göre sorun insanların korsan müziğe kaymasını engelleyebilecek bir alternatifin olmamasıdır. Jobs, Müzik şirketleri ve internet kullanıcılarını ‘adil’ bir iş modelinde bir araya getirir. Jobs’a göre herkes kazanacaktır (https://tr.0wikipedia.org/wiki/İTunes_Store):

Müzik çalan insanların % 80’inin bunu istemediğine inanıyoruz, sadece yasal bir alternatif yok. Bu yüzden, ‘buna yasal bir alternatif yaratalım’ dedik. Herkes kazanır. Müzik şirketleri kazanır. Sanatçılar kazanır. Apple kazanır. Kullanıcı kazanır, çünkü daha iyi bir hizmet alır ve bir hırsız olmak zorunda değildir.

iTunes Music Store’a yalnızca Apple cihazlarından erişilebilmekte ve şarkılar başlangıçta DRM (Sayısal Kısıtlamalar Yönetimi) ile korunmaktadır. Kullanıcılar albümün tamamını satın almadan (çoğunlukla 99 sente) tek bir müzik eserini satın alabilmektedir. Apple’ın yeni iş modeli, kendi beklentilerinin de ötesinde büyük ilgi toplar. Jobs’ın öngörüsü doğru çıkmış ve insanlar korsan müziktense dinlediği eser için para ödemeyi tercih etmiştir. Apple’ın öncülüğünü yaptığı bu iş modeli hızla yaygınlaşır. Ancak diğer yandan bireysel mülkiyet için bir dönüm noktasıdır. Artık elinizde arkadaşınıza ödünç verebileceğiniz bir DVD yoktur. Ayrıca tüketiciler DRM’li müziklerini ancak ve ancak bir Apple bilgisayarı kullandıkları sürece çalabileceklerdir. O an için ufak bir ayrıntıdır. Apple kullanıcıları bu ayrıcalıklarının keyfini sürerken DRM ile telif haklarının içerdiği bir hak ortadan kalkmaktadır (Perzanowski ve Schultz, 2016).

Dijital ürünlerde tükenme ilkesi nasıl uygulanacaktır? Fiziksel bir ürünü arkadaşınıza ödünç verdiğinizde sizde bir kopyası bulunmaz. Ama bir müzik dosyasını arkadaşınıza farklı yollarla (taşınabilir bellek, e-posta, Dropbox’a koymak vb yollarla) dosyayı kopyalayarak iletebilirsiniz. Ama her hâlükârda dosyanın telif haklarındaki tükenme ilkesine aykırı hareket etmiş olursunuz. Telif yasaları bu yeni duruma ayak uyduramadan bulut bilişimle [2] ikinci bir dönüşüm yaşanır. 160 GB diske sahip bir iPod alıp tüm müzik koleksiyonunuzu buraya aktarmanız mümkündür. Fakat bir süre sonra iPod yerini akıllı telefon, tablet ve çok amaçlı diğer mobil cihazlara bırakır. Bu cihazlarda üreticiler, yer, ağırlık ve pil ömründen tasarruf edebilmek için yüksek saklama kapasiteli ve ucuz diskler yerine daha düşük saklama kapasiteli ve yüksek fiyatlı disklere yönelmişlerdir. Bulut bilişim, depolama kapasitesi sorununu giderek yaygınlaşan yüksek hızlı mobil veri ağlardan yararlanarak çözecektir. Artık tüm dijital dosyalarımızı bulutta saklayabileceğimiz ve cihazlarımız arasında senkronize edebileceğimiz söylenmektedir (age).

iTunes Music Store’dan satın alınan bir dosya tüketicinin bilgisayarında saklanmaktadır. Elde bir kaset veya DVD yoktur, ama (kimi zaman DRM’li de olsa) bir dosya bilgisayarınızda tutulmaktadır. Bulut iş modelleri ise bunu bir adım daha öteye götürebilmenin yolunu açmıştır. Bilgisayarınızda dosya saklamanın şart olmadığı, bir film izleyeceğiniz veya müzik dinleyeceğiniz zaman buluta erişerek bunu yapabileceğiniz anlatılmaktadır. Bilgisayarınıza indirmeden kullanmayı tercih ettiğinizde dijital dosyaya gerçekten sahip olma şansınız da ortadan kalkmaktadır. Bulut sağlayıcısı şirket, çeşitli gerekçelerle dijital dosyaya erişimizi engelleyebilir veya dosyayı silebilir. Nitekim Apple Medya Hizmetleri Hüküm ve Koşulları’nda bu hak açıkça belirtilmektedir (https://www.apple.com/legal/internet-services/itunes/tr/terms.html):

“Apple size bildirimde bulunarak ya da bulunmaksızın ve dilediği zamanda Hizmetleri (ya da bunların herhangi bir parçasını ya da İçeriğini) değiştirme, geçici olarak durdurma ya da sona erdirme hakkını saklı tutar ve Apple söz konusu haklarını gerçekleştirdiğinde size ya da üçüncü taraflara karşı sorumlu olmayacaktır.” Amazon Kindle kullanıcılarının da deneyimlediği gibi sanal kitap rafınızda duran bir kitap aniden silinebilir. Bunun dışında teknik sorunlar nedeniyle dosyalara erişim olanağınızın geçici veya kalıcı olarak ortadan kalktığı durumlar da olabilmektedir. Eskiden bir kitap yıllarca saklanıp kuşaktan kuşağa aktarılabilirken şimdi kitabın raf ömrü en iyi ihtimalle şirketin ömrü kadardır. Perzanowski ve Schultz (2016), Amazon ve Apple’sız bir dünya hayal edemeyenlere Lehman Brothers, Enron ve Woolworth’ın akıbetini hatırlatmaktadır.

Telif hakları ve tükenme hakkı açısından değerlendirdiğimizde yine belirsiz bir durum vardır. Buluttaki dosyaların tekrar satışı veya ödünç verilmesi belirsizdir. Bazı durumlarda dosya bulut üzerinden kullanılabilmekte bazen de dosyanın bir kopyasının bilgisayara indirilmesi gerekmektedir. Perzanowski ve Schultz’a (2016) göre bulut farklı biçimlerde yorumlanabilir. Birincisi bulutu evinizdeki bir film makarası gibi değerlendirebilirsiniz. Salonunuzda, televizyonun sizin, ama film makarasının film şirketinin olduğu bir düzenek vardır. Filmi izlemek veya bir şarkıyı dinlemek için bir ödeme yaparsınız, ama filme sahip olamazsınız. İkincisi bulut, raflarında kitapların olduğu bir kütüphanedir ve siz kitaplardan birini ödünç alırsınız. Üçüncüsü bulut, bankada kiralık bir kasa gibidir. Şu anda yanınızda olmasa da kasanın içindekiler sizindir ve istediğiniz zaman kasadan evinize getirebilirsiniz. Her üç durum da telif hakları açısından yeni soru(n)lar yaratmaktadır. Fakat ilk iki durum abonelik üzerine kurulu yeni bir iş modeli olarak karşımıza çıkacak ve kullanıcının mülksüzleştirilmesinde üçüncü aşamaya gelinecektir.

Bulutta sakladığınız dosyaların gerçekten sahibi olamazsınız. Bazı durumlarda bu dosyaları bilgisayarınıza da kaydedebilirsiniz. Şirketler indirilen dosyaları, kullanıcı cihazlarını kontrol edebildikleri taktirde DRM ile denetleyebilmektedir. Ama bulutun asıl önemi tüketicilere akıtmalı servisleri (streaming service) tanıtarak, onları abonelik sistemlerine hazırlamak olmuştur.

Klasik abonelikte bir dergiye 2017 yılı için abone olduğunuzda 2018 yılında aboneliğinizi yenilemeseniz de 2017 yılına ait sayılar elinizdedir ve kimse bu hakkınızı elinizden alamaz. Akıtmalı abonelik servislerinde ise aboneliğinizi yenilemediğinizde haklarınızı kaybedersiniz. Buna rağmen, tüketicilere sunduğu avantajlar nedeniyle bu dezavantajlar atlanmaktadır. Abonelik servisleri satın almayla karşılaştırıldığında daha makul bir ücret talep etmekte ve çok sayıda içerik arasından seçim yapabilme olanağı sunmaktadır. Şirketler için oldukça kârlı bir iş modelidir. Farklı müşterilere farklı fiyatlandırma yapabilmektedirler. Yeni iş modelinin önceki dönemlerden en büyük farkı da şirketlerin servisi kullananlar hakkında çok ayrıntılı bilgiye sahip olmalarıdır. Bu da şirketlerin daha hedefli reklamlar yapabilmelerini sağlamaktadır. Akıtmalı servisin kopyalanması ve çoğaltılması olanaksız olmasa da daha zordur. Servis aboneliği kitap ve DVD almayla kıyaslandığında çok daha ucuz görünmektedir. Ama elde satılabilecek bir kopyanın bulunamaması birinci el satışlara rakip olabilecek ikinci el piyasasını da yok etmektedir.

Mülkiyet ilişkilerindeki bu değişim iki önemli araçla gerçekleştirilmiştir: Lisanslar ve DRM.

Okunmayan ve Anlaşılamayan Lisanslar

Perzanowski ve Schultz (2016) lisansların nasıl bir dünya yarattığını göstermek amacıyla almak istediğimiz 100 dolarlık bir şapkanın üzerinde aşağıdaki uyarıyı gördüğümüzde ne yapacağımızı hayal etmemizi ister:

BU ŞAPKA LİSANSLANMIŞ, SATILMAMIŞTIR. ÜZERİNDEKİ ÜCRETİ ÖDEDİĞİNİZDE BU ŞAPKAYI İSTEDİĞİNİZ SIKLIKTA GİYME HAKKINA SAHİPSİNİZ. ŞAPKAYI SÜRESİZ OLARAK ELİNİZDE BULUNDURABİLİRSİNİZ ANCAK ÜRETİCİNİN AÇIK İZNİ OLMAKSIZIN ONU YENİDEN SATMA, ÖDÜNÇ VERME VEYA BAŞKA BİR ŞEKİLDE AKTARMA HAKKINA SAHİP DEĞİLSİNİZ.

Bu mesajı nasıl yorumlayabiliriz? Birincisi, şapka sahibi, şapkaya 100 dolar vermemize rağmen onun sahibi olmadığımızı vurgulamak istemiş olabilir. Onu sadece elimizde bulundurma ve kullanma hakkına sahibiz. İkinci yorum, mülkiyet yasalarının bize tanıdığı hakla onu satabileceğimiz ama bu satışın üreticiye ispatlanabilir bir zararı olduğunda üreticinin zararını karşılamak zorunda olduğumuzdur. Üçüncüsü, uyarının yasal bir belge niteliğine sahip olmadığıdır. Amaç sadece bazı alıcıların gözünü korkutarak şapkayı ödünç vermelerini veya satmalarını engellemektir. Ama yasal olarak hiçbir zorlayıcılığı yoktur.

Bu yorumlardan herhangi biri doğru olabilir. Satış görevlisinden daha ayrıntılı bir açıklama isteyebilir veya böyle alengirli bir alışverişe hiç girmek istemeyebiliriz. Lisans, kişi ve kuruluşlara normal şartlarda sahip olunmayan bir hakkı verir. Örneğin sürücü lisansı, bize trafik araçlarını kullanma hakkı verir. Ama dijital ürünleri kullanırken “Kabul Ediyorum” deyip geçtiğimiz birçok lisans tüketiciye bir hak tanımlamaz, yasalarca verilmiş bir hakkı keyfi olarak sınırlar. Örneğin, özgür yazılım projelerinde kullanılan GPL’de (General Public License – Genel Kamu Lisansı), yazılım sahibi bazı şartlar öne sürerek telif haklarının kendisine tanıdığı hakları kullanıcıya verdiğini belirtir. Özel mülkiyetli yazılımlarda ise lisans, telif haklarının tanımladığı bazı hakların geri alınması için vardır.

Lisanslar çoğunlukla okunmaz; 99 sentlik bir şarkı için iTunes’un Macbeth’ten uzun kullanım şartlarını okumak pek akıllıca değildir. PayPal’inki ise Hamlet’ten de fazladır. Bu lisansların uzunlukları bir yana anlaşılmaları da zordur. Çünkü şirketin yasal haklarını tanımlayan lisanslar sıradan insanların anlaması için yazılmış basit metinler değildir. Çoğu zaman karşımıza uzunca ve anlaşılmaz bir metin çıkar; ya lisansı kabul edip yolumuza devam ederiz ya da reddedip işlemden vazgeçeriz. Başka seçeneğimiz yoktur. Lisansların uzunluğu ve karmaşıklığı dikkate alındığında bunu okuyup anlamanın da bir maliyeti olacağından kabul ettiğimizi belirtip geçeriz. Casus yazılımlara karşı yazılım üreten PC Pitstop adlı şirket EULA’sındaki (End User License Agreement – Son Kullanıcı Lisans Sözleşmesi) bir cümlenin farkına varan ve kendisine e-postayla bunu bildirecek ilk kullanıcıya 1000 dolarlık bir ödül vereceğini yazar. Beklenen e-posta ancak dört ay sonra, yazılım 3000’den fazla indirildikten sonra gelir!

Lisanslamanın öncüsü IBM’dir. Telif hakkı ve patentlerin henüz zayıf olduğu bir dönemde bu yolu tercih etmesi anlaşılır bir durumdur. Fakat lisanslama yazılımı belirsizlik ve ihlallere karşı korumaktan çok yazılımın sonraki kullanımlarını kontrol edebilmek ve rekabeti azaltmak için kullanılmaktadır. Kitap, film ve müzik endüstrisi de yıllardır bunu arzulamış ama başarılı olamamıştır. Şimdi şirketler dijital kitapların ödünç verilme sayısını kısıtlayarak kütüphanelerden adeta intikam almaktadır. Örneğin bu sınır yirmiyse yirminci ödünç verme işleminden sonra kütüphanenin aynı kitaba tekrar ödeme yapması gerekmektedir. Böylece kütüphanelerin, bilgi birikimini gelecek kuşaklara aktarabilme misyonu da yok edilmektedir. Artık herhangi bir kitap sansür veya ekonomik gerekçelerle kütüphanelerden silinebilir, o kitap hiç yayınlanmamış gibi davranılabilir. Daha da kötüsü bu tip lisanslar dijital kitap, film ve müzikle sınırlı değildir; son yıllarda evlerde kullanılan cihazlarda, tüketici elektroniğinde, tarım makinelerinde, kısaca bilgisayar içeren ya da bilgisayarlaşan her alanda karşımıza çıkmaktadır.

Perzanowski ve Schultz (2016) lisansların taraflar arasında yapılan bir sözleşme veya mülkiyet ilişkileri çerçevesinde değerlendirilebileceğini belirtmektedir. Mahkemeler, hemen onaylayıp geçtiğimiz lisansları sözleşme olarak değerlendirmeye meyillidir. Fakat insanlar neyi imzaladıklarını bilebildiklerinde sözleşmenin bir anlamı vardır. Lisanslar, iki tarafın özgür iradesiyle imzalanan sözleşmeler değildir. Kopyalama hakkı sahibinin dayattığı kısıtlamalardır. Lisansları, mülkiyet ilişkileri çerçevesinde değerlendirdiğimizde, lisansların GPL’de olduğu gibi önceden tanımlanmış mülkiyet haklarına dayanması gerektiği ortaya çıkar. Geçerli bir lisansın ortaya konabilmesi için kimin neye sahip olduğuna önceden karar verilmesi gerekir.

Kopyalama hakkı sahibi, ürünü kendine saklayabilir, kiralayabilir veya satabilir. Eğer bir servis, abonelik olarak ilan edilmişse yapacak bir şey yoktur. Fakat reklamlar çoğu zaman aboneliği bir satış gibi göstermekte, kimin neye sahip olduğu belirsiz bırakılmakta, lisanstaki satır aralarında alıcının haklarını kısıtlamaktadır. Yapılan araştırmalar alıcının dijital bir ürünü gerçekten satın almadığını fark ettiğinde başka türlü davranmaya eğilimli olduğunu göstermektedir (age).

DRM (Sayısal Kısıtlamalar Yönetimi)

DRM, dijital içeriğin satış sonrasında da kullanımını kısıtlamayı ya da kontrol etmeyi hedefleyen teknolojilerin genel adıdır. Garip bir güvenlik aracıdır. Evinizdeki kilit, değerli eşyalarınızı dışarıdakilerden korur. DRM ise içeridekilere karşı bir korumadır. Çünkü kullandığınız şeyin gerçekten sizin olmadığı iddiasını taşır.

Dijitalleşme öncesinde ortaya çıkan VCR (videocassette recorder – video kaydedici) teknolojisi tüketiciyi güçlendiren, kopyalama hakkı sahibi şirketlerin tüketici üzerindeki baskısını zayıflatan bir gelişmedir. Bu nedenle Universal, Sony’yi korsan kullanıma yol açmakla suçlamıştır. Sony ise geliştirdiği teknolojinin korsanlık için kullanılabileceği gibi meşru amaçlar için de kullanılabileceğini savunur. Mahkeme, Sony’nin savunmasını haklı bulur ve stüdyoların VCR teknolojisini kontrol altına alma talebini geri çevirir. Bu karar, yalnız Sony için değil, tüketiciler için de önemlidir. Çünkü VCR’de yapılmak istenen tüketicilerin evlerinde gözetlenmesidir.

Hollywood, VCR olayından dersini almıştır. DVD teknolojisinin geliştirilmesine en başından müdahil olur ve CSS koduyla izinsiz kopyalamanın önüne geçmeyi dener. Cihazlarımızın izinsiz film oynatımlara karşı kontrol altına alınması için büyük çaba gösterir. Ama her DRM, er ya da geç, kırılmaya mahkumdur. DRM’li bir sistemi kırmak zordur; bunu ancak en ileri düzeydeki kullanıcılar başarabilecektir. Ama bir hacker DRM’nin açıklarını keşfettiğinde bu bilgi hızla yayılmaktadır ve kırma işlemini kolaylaştıran araçlar teknik bilgisi daha az olan kullanıcılara da ulaşmaktadır. Bu nedenle DRM tek başına yeterli olmayacak, hem hackerların hem de onların açtığı gedikten ilerleyen diğer tüketicilerin durdurulabilmesi için yasalarla kontrol altına alınmaları, tersine mühendisliğin yasadışı ilan edilmesi gerekecektir.

DRM tüketicilerin güvenliğini de tehlikeye atmaktadır. VCR tartışmasında iyi adam olan Sony, bu sefer kötü adamdır. CD’lerinin kopyalanmasını engellemek için kullanıcıların bilgisayarına, onların haberi olmadan bir rootkit yazılımı kurmayı dener. Sony, rootkit yazılımıyla kullanıcıların CD kopyalamasını engelleyebileceğini düşünmektedir. İzinsiz kurduğu rootkit, başında $sys$ ile başlayan her dosya ve süreci bilgisayar kullanıcılarından gizlemektedir. Sony kendi mülkiyet hakkını korumak için açtığı arka kapıyla büyük bir güvenlik açığına neden olur; herhangi bir saldırganın aynı açığı kullanmasının önünde bir engel yoktur. Bu fark edildiğinde ise yaptığını “insanlar rootkit’in ne olduğunu bile bilmiyor, neden buna takılsınlar ki?” diyerek örtbas etmek ister. Fakat tepkiler dinmeyince CD’lerini geri çağırmak zorunda kalmıştır. Sony, DRM’ye başvuran birçok şirketin yaptığı gibi, insanlardan kendi mülkiyet haklarına saygı göstermesini isterken izinsiz olarak onların bilgisayarına girmiş, güvenliklerini tehlikeye atmış ve mahremiyetlerine zarar vermiştir (age).

Lisanslar, DRM ve Gündelik Hayati [3]

Edison’un İki Davası

ABD’de fikri mülkiyet haklarının gelişimi üzerine bir film çekilse filmin baş kötülerinden biri sanırım Thomas Edison olurdu. Edison defalarca yasal boşluklardan yararlanmaya çalışarak her fırsatta rakiplerini saf dışı bırakmak istemiştir. Bazen bunda başarılı olmuş bazen de mahkemeler Edison’un hırslarına geçit vermemiştir. Edison’un en ilginç ve öğretici davalarından ikisi tükenme ilkesi üzerinedir. Doğru akımı destekleyen Edison ile Nikola Tesla’nın alternatif akımına yatırım yapan milyoner George Westinghouse arasında bir mücadele vardır. Edison, alternatif akımın tehlikelerini öne çıkararak doğru akımı teşvik etmek istemektedir. Alternatif akımın elektrikli sandalyede kullanılacağını öğrenmesi ile alternatif akımın tehlikesini anlatmak için eşsiz bir fırsat yakalamıştır: Alternatif akım, öldüren teknoloji!

Westinghouse, patentlerinin elektrikli sandalyede kullanılmasına izin vermez. Fakat Edison’un adamları, alternatif akımın kullanıldığı dinamoların satışından sonra patent sahibinin hakkının tükendiğini, satın alınan bireysel mülkiyetindeki dinamoların kullanımına karışamayacağını savunur ve tarihteki ilk üç elektrikli sandalye Westinghouse’un patentleriyle yapılır. Böylece Edison alternatif akımın insanları öldürdüğünü söylemeye devam eder.

Edison ikinci macerasında ise tükenme ilkesinin karşısında yer almaktadır. Edison’un film projektörü yaygın olarak kullanılmaktadır. Projektör piyasasının doymasından sonra Edison patenti yine kendisine ait olan film makaralarının satışının daha kazançlı olacağını fark eder. Projektöre, kendi film makaraları dışında bir makara kullanamayacağını yazar. Edison’un film makaralarındaki patenti biter bitmez tüketiciler kendi makaralarını yapar. Edison bunun üzerine projektördeki uyarıyı göstererek sadece kendisinin uygun gördüğü (kendi) makaraların kullanılabileceğini iddia eder. Mahkeme, yine tükenme ilkesine göre Edison’un itirazını reddeder ve tarihe de bir not düşer: Patent yasasının amacı bilimin ve yararlı zanaatin ilerlemesini desteklemektedir; patent sahiplerine özel servet sağlamak değil.

Fikri Mülkiyet, Bireysel Mülkiyete Karşı

Şirketler hiçbir zaman pes etmezler. Ama mahkemeler, Edison’dan sonra da uzunca bir süre bireysel mülkiyet lehine benzer kararlar vermeye devam ederler. Özellikle elektronik şirketleri DRM’i her fırsatta kullanmaya çalışmaktadır. Temel stratejileri, Edison’un film makarasındakiyle aynıdır: Bir ürünü sattıktan sonra, tüketicilerin onunla ilgili olabilecek parçalar için de kendilerine gelmelerini sağlamak.

Bu stratejiye başvuran şirketlerden biri de garaj kapısı açacağı üreten Chamberlain’dir. Uzaktan kumandasını kaybeden veya birden fazla arabası olan tüketiciler ek uzaktan kumandayı Chamberlain’den satın almak zorundadır. Skylink ise asıl üretici firmalardan çok daha ucuza yedek uzaktan kumanda satan bir şirkettir. Chamberlain, uzaktan kumandalarının yalnızca kendisinden satın alınmasını sağlamak için, kapı açılmadan önce kumandanın kapıya bir kod göndermesini sağlayan bir DRM tasarlar. Skylink bu kodu çözerek, Chamberlain için uzaktan kumanda üretmeye devam eder. 2002 yılında Chamberlain, fikri mülkiyet hakkının ihlal edildiği gerekçesiyle mahkemeye gider. Mahkeme, tüketicinin Chamberlain’den bir garaj kapısı açacağı satın aldığını ve bunun tüm kullanım haklarına sahip olduğununu belirterek Chamberlain’in başvurusunu reddeder.

Yazıcı kullanıcılarının en büyük sorunlarından biri kartuş bittiğinde doldurulan kartuşların çok pahalı olması ve doldurulduğunda tam verim alınamamasıdır. Kartuş satışı, yazıcı satıcıları için önemli bir gelir kaynağıdır. SCC (Static Control Components, Inc) adlı şirket, Lexmark’a uygun, daha ucuz kartuşlar ürettiğinde Lexmark, DRM’e başvurarak yazıcılarının Lexmark dışındaki kartuşlarla çalışmasını engeller. Lexmark, Edison’un bir zamanlar projektör üzerindeki bir uyarıyla yapmak istediğini teknik olarak gerçekleştirmiştir. Buna karşı SCC, ters mühendislikle DRM’i atlatmayı başarır ve Lexmark yazıcılarla uyumlu kartuşlar satmaya devam eder. DRM’sinin kırılması üzerine Lexmark mahkemeye gider. Mahkeme 2004 yılındaki kararında davayı fikri mülkiyet değil bireysel mülkiyet kapsamında değerlendirir ve “bir Lexmark yazıcı alan tüketici içindeki yazılımla beraber yazıcının kullanım hakkına sahiptir” der.

Bizim Olmayan Nesnelerin İnterneti

Mahkemelerin bireysel mülkiyetten yana olan bu kararlarına rağmen tüketicinin satış sonrasında kısıtlanmasında büyük artış vardır. Dijital kitap, müzik ve filmdeki lisans ve DRM stratejisi, günümüzün bilgisayarlaşan nesnelerine uyarlandığında daha büyük bir tehlike ortaya çıkmaktadır. Etrafımızı bizim olmayan nesnelerin interneti ile sarılmaktadır. Son birkaç yıldaki örnekler önemli dersler içermektedir.

Revolv adlı dağıtım kutusu (hub) çeşitli uygulama ve ev otomasyon sistemlerini kontrol etmek amacıyla geliştirilmiş bir cihazdır. Bir internet bağlantısıyla, evin güvenlik sistemleri, garaj kapıları ve eğlence sistemlerini kontrol edilebilmektedir. Cihazlar 300 dolara, güncellemeler ve yeni özellikler için ömür boyu abonelik vaadiyle satılmaktadır. Revolv Hub’ı üreten şirket 2014 yılında Google’ın nesnelerin interneti şirketi, Nest tarafından satın alınır. Nest, 2016 yılının nisan ayında Revolv’u artık desteklemeyeceğini ve yazılımla çalışan uzaktan kumandalarını çalışamaz hale getireceklerini duyurur. 15 Mayıs’taki yazılım güncellemesiyle Revolv uygulaması artık açılmamakta ve dağıtım kutusu çalışmamaktadır (http://www.businessinsider.com/revolv-smart-home-hubs-lifetime-subscription-bricked-nest-google-alphabet-internet-of-things-2016-4). Şirketler iflas edebilir veya belirli bir sektörden çekilebilir. Bunun satın aldığınız ürünü etkilememesi gerekir. Ama dijital nesnelerde yazılıma sahip olunmadığında satın aldıklarınız da şirketle beraber batıp gider. Lisanslar iki taraflı sözleşmeler olsaydı Google böyle bir karar veremeyecekti. Perzanowski ve Schultz (2016) ileride Google’dan araba satın alırken tekrar düşünmemizi öneriyor!

Ama Google’a da haksızlık etmemek gerekir, bu stratejisinde yalnız değildir. Meşhur traktör üreticisi John Deere’ın yeni traktörleri, motorun çalışmasından kol dayama yerine kadar traktörün çeşitli fonksiyonlarını kontrol edebilen en az sekiz yazılım ve donanım bileşeni içermektedir. Geçmişte, traktörlerin tamamen mekanik olduğu zamanlarda çiftçiler ihtiyaç halinde bakım, parça değiştirme ve tamir işlerini kısmen veya tamamen kendileri de yapabilmekteydi. Şimdi ise traktörleriyle aralarında bir yazılım katmanı vardır ve daha önce kendilerinin veya yakınlarındaki tamircilerin yaptığı işlemler için John Deere’nin yetkilendirildiği servislere gitmeleri gerekmektedir. Yüksek soğutma suyu sıcaklığından düzgün çalışmayan frene veya basit bir koltuk arızasına kadar Deere’e başvurmak ve yüksek paralar ödemek zorunda bırakılırlar. Çiftçiler bunun üzerine Telif Hakları Bürosu’na başvurarak kendi traktörlerini onarma, iyileştirme ve değiştirme hakkı talep ederler. John Deere, sorun ne kadar basit olursa olsun çiftçilerin dijital kaputu açmaya haklarının olmadığını, lisans sözleşmesi gereği sadece traktöre fiziksel olarak sahibi olduklarını ama yazılıma herhangi bir biçimde müdahale etme haklarının olmadığı yanıtını verir. John Deere böylece hem traktörlerinin fiyatını efektif olarak yükseltmiş olmakta hem de tamir sektörüne yaşama alanı vermemektedir (https://modernfarmer.com/2016/07/right-to-repair/). Perzanowski ve Schultz (2016), benzer sorunun nesnelerin internetine de içsel olduğunu belirtmektedir. Birçok durumda nesneleri dijitalleştiren yazılım ve nesneyi satın aldığımızda bu yazılıma da sahip olup olmadığımız sıklıkla ihmal edilen bir konudur.

Ferrari, Ford, General Motors ve Mercedes-Benz gibi ünlü otomobil üreticileri de John Deere’le aynı çizgidedir. Aracın sahipliğiyle yazılımın sahipliğinin karıştırılmaması gerektiği, şirketin yazılımın tek sahibi olduğu öne sürmektedirler. Ayrıca lisanslarında otomobildeki yazılımlara (uzaktan erişim de dahil) her türlü müdahale hakkına sahip oldukları da belirtilmektedir. Aracınızdaki yazılımlar güncellenebilir veya araçtaki dijital veri rızanıza gerek kalmadan silinebilir. Daha da kötüsü aracınız hiçbir mekanik arızası olmadığı halde çalışmayabilir. Kızını doktora yetiştirmeye çalışan Mary Bolender’in başına geldiği gibi araba taksitini üç gün geciktirdiğinizde aracınızın çalışması, ona en ihtiyaç duyduğunuz anda içindeki yazılımla engellenecektir (https://dealbook.nytimes.com/2014/09/24/miss-a-payment-good-luck-moving-that-car).

Bu örneklerden de görülebileceği gibi nesnelerin internetinde çalışan yazılıma sahip olmadığımızda çoğu insanın korktuğu yapay zekalı robotların saldırısından daha tehlikeli bir durumla karşı karşıya kalırız. Etrafımız bizim olmayan nesnelerle sarıldığında şirketler ilişkilerimizin kontrolünü de ele geçirmektedir. Nesnelerin internetini anlatmak için sık sık başvurulan akıllı buzdolabımız geleceğimize sahip çıkamazsak ne yiyeceğimiz konusunda da belirleyici olacak. Bu gücün, bizi daha sağlıklı beslenmeye yöneltmek amacıyla kullanılmayacağını tahmin etmek güç olmasa gerek…

Alternatif?

Dana Lewis ve kocasının yaptıkları, kullanıcılar ellerindeki nesnelerin gerçekten sahibi olduğunda neler yapılabileceğini göstermektedir. Lewis, Seattle’da glikoz monitörüne bağlı yaşayan bir şeker hastasıdır. Elinde taşıdığı kablosuz cihaz Lewis’in kan şekeri çok düştüğünde ya da yükseldiğinde uyarmaktadır. Lewis, uyarı sesini duyamadığından eşiyle beraber programı değiştirerek daha yüksek sesle uyarı vermesini ve sonrasında da bu bilginin diğer mobil cihazlara ulaştırılmasını sağlarlar. Bundan sonra Lewis’in insulin rejimine yoğunlaşırlar. Normal şartlarda hastalar insulin düzeylerini elle düzenlemektedir. Ellerindeki verileri analiz ederek geliştirdikleri algoritmayla insulin düzeyinin ayarlanmasını otomatize etmeyi başarırlar. Ayrıca Lewis’in 30, 60 ve hatta 90 dakika sonraki insulin ihtiyacı tahmin edilebilmektedir. Hatta şimdilerde bu süreci tamamen otomatize etmek için yapay bir pankreas geliştirmeyi de düşünmekteler. Kullanıcılar nesnelerin gerçekten sahibi olduklarında yapabileceklerinin sınırı yoktur: nesneleri istedikleri gibi değiştirebilir, ihtiyaçlarına uyarlayabilir ve yenilikçi çözümler geliştirebilirler.

Sonuç

Son yıllarda ücretlerdeki düşüş ve işsizlik insanları farklı seçeneklere yöneltiyor. Perzanowski ve Schultz’un (2016) belirttiği gibi insanlar alım güçleri düştüğü için Uber gibi alternatifler cazip geliyor. Netflix ve Spotify için de durumun pek farklı olmadığını söylüyor. Dolayısıyla, “müzik eserlerine sahip olmak her zaman iyidir, abonelik her zaman kötüdür” diyerek kestirip atamayız. Ama tüketicilerin, yaptıkları işlemler hakkında bilgilendirilmesi, kabul ettiği sözleşmenin (reklamlarda Buy! yazmasına rağmen) bir abonelik sözleşmesi olduğunu bilmesi lazım. Ayrıca, insanların birbirleriyle paylaşabileceği bireysel mülkiyetinin olmaması kültürel yapıda önemli değişimlere neden olabilir.

En önemlisi de “dijital bir nesne satın aldığınızda, neyi satın olmuş oluyoruz?” sorusunun net olarak yanıtlanması gerekiyor. Lambalarımız, termostatımız, fırınımız, kahve makinemiz, buzdolabımız elimizden uçup gidiyor. Bizim olmayan nesnelerin internetinde ve dijitalleşen nesnelerde şirketlerin temel tezi nesneyi sattıkları, ama yazılımı satmadıkları.

O zaman yazılımı ve onun ürettiği veriyi de talep etmek gerekiyor…

Notlar:

[1] İlk üçü arasındaki ayrım dijitalleşmeyle yaşanan değişimin anlaşılabilmesi için önemlidir. Dördüncüsü, güvenlik, taksi plakası ve hükümet tarafından tanınan bir işi yapabilme lisanslarında olduğu gibi fiziksel bir varlığı olmayan, ama fikri mülkiyet kapsamına alınamayacak alanları kapsamaktadır.

[2] Bulut bilişim, TSE’nin tanımına göre “işlemci gücü ve depolama alanı gibi bilişim kaynaklarının ihtiyaç duyulan anda, ihtiyaç duyulduğu kadar kullanılması esasına dayanan, uygulamalar ile altyapının birbirinden bağımsız olduğu ve veriye izin verilen her yerden kontrollü erişimin mümkün olduğu, gerektiğinde kapasitenin hızlı bir şekilde arttırılıp azaltılabildiği, kaynakların kullanımının kolaylıkla kontrol altında tutulabildiği ve raporlanabildiği bir bilişim türüdür.”

[3] Buradaki örnekler, Perzanowski ve Schultz’dan (2016) alınmıştır.

Kaynaklar

Aksu, M. (2016). İnternet Üzeri̇nden Yayılan Eserlerde Tükenme İlkesi̇? (Di̇ji̇tal Tükenme İlkesi̇?). Ticaret ve Fikri Mülkiyet Hukuku Dergisi, 2(1).

Geray, H. İletişim, İktisat ve Kamusal Düzenleme Üzerine, İletişim Ağlarının Ekonomisi, Der: Başaran F. ve Geray H., Ankara: Ütopya, 2016.

Morris, D. (2014). Sağlık Hizmetlerinde Topyekun Reform Nasıl Kazanılır?, J. Walljasper, Müştereklerimiz: Paylaştığımız Herşey, Metis Yayınları

Perzanowski, A. ve Schultz, J. (2016). The end of ownership: Personal property in the digital economy. MIT Press.

 

 

November 19, 2017

Linux Network Commands Used In Network Troubleshooting

In the previous post, we talked about Linux process management. In this post, we will talk about Linux network commands and how to troubleshoot your network. Once you have confirmed that the physical network is working, the next step is to troubleshoot your network and here we come to our topic which is Linux network commands and how to use them to troubleshoot your network. We are going to cover the most used Linux network commands. The ping command is one of the most used Linux network commands in network troubleshooting. It is used to check whether or not a specific IP address can be reached. The ping command works by sending an ICMP echo request to check the network connectivity.

$ ping google.com

ping linux network commands

These results are showing a successful ping, and it can be described as the trip of an echo request issued by our system to google.com.

This command measures the average response. If there is no response, then maybe there is one of the following:

  • There is a physical problem on the network itself.
  • The location might be incorrect or non-functional.
  • The ping request is blocked by the target.
  • There is a problem in the routing table.

If you want to limit the number of echo requests made to 3, you can do it like this:

$ ping -c 3 google.com

ping -c Linux network commands

Here ping command stops sending echo requests after 3 cycles.

There are some issues that you should consider about ping command. These issues may not necessarily mean that there is a problem like:

Distance to the target: so if you live in the U.S. and you ping a server on Asia, you should expect that this ping will take much time than pinging a server in the U.S.

The connection speed: if your connection is slow, ping will take longer time than if you have a fast connection.

The hop count: this refers to routers and servers that the echo travels across till reaching its destination.

The important rule about ping is that the low ping is always desirable.

Get DNS Records Using dig and host Commands

You can use the dig command to verify DNS mappings, host addresses, MX records, and all other DNS records for a better understanding of DNS topography.

The dig command was developed to replace nslookup command.

$ dig google.com

dig linux network commands

The dig command by default searches for A records, you can obtain information for specific record types like MX records or NS records.

$ dig google.com MX

dig mx linux network commands

You can get all types of records by using ANY query.

$ dig google.com ANY

dig ANY linux network commands

The dig command makes a reverse lookup to get DNS information like this:

$ dig –x 8.8.8.8

dig -x linux network commands

dig command does its query using the servers listed on /etc/resolv.conf.

The host command is similar to dig command.

$ host –a google.com

host linux network commands

Also, you can perform reverse lookups using host command.

$ host 8.8.8.8

So both commands work in a similar way but dig command provides more advanced options.

Diagnose Network Latency Using traceroute Command

The traceroute command is one of the most useful Linux network commands. It is used to show the pathway to your target and where the delay comes from. This command helps basically in:

  • Providing the names and the identity of every device on the path.
  • Reporting network latency and identify at which device the latency comes from.

$ traceroute google.com

traceroute linux network commands

The output will provide the specified host, the size of the packet that will be used, the IP address, and the maximum number of hops required. You can see the hostname, IP address, the hop number, and packet travel times.

To avoid reverse DNS lookup, use the -n option.

$ traceroute -n google.com

traceroute -n linux network commands

By using traceroute command, you can identify network bottlenecks. The asterisks shown here means there is a potential problem in routing to that host, as the asterisks indicate packet loss or dropped packets.

The traceroute command sends a UDP packet, traceroute can send UDP, TCP, and ICMP.

If you need to send ICMP packet, you can send it like this:

$ sudo traceroute -I google.com

traceroute -I linux network commands

To use a TCP variation, it can be used like this:

$ sudo traceroute -T google.com

traceroute -T linux network commands

This is because some servers block UDP requests, so you can use this method.

In this case, you can send UDP, ICMP, or TCP to bypass these issues.

mtr Command (Realtime Tracing)

This command is an alternative to traceroute command.

$ mtr google.com

mtr linux network command

The best thing about mtr command is that it displays real-time data unlike traceroute.

Furthermore, you can use the mtr command with –report option, this command sends 10 packets to each hop found on its way like this:

$ mtr --report google.com

mtr report linux network command

This command gives a huge amount of details better than traceroute.

If this command doesn’t run using a normal user account, you should use root, since some distros adjust the permission of this binary for root users only.

Checking Connection Performance Using ss Command

The socket statistics command ss is a replacement for netstat, it’s faster than netstat and gives more information.

The ss command gets its information directly from the kernel instead of relying on /proc directory like netstat command.

$ ss | less

ss linux network command

This command outputs all TCP, UDP, and UNIX socket connections and pipes the result to the less command for better display.

You can combine this command with either the -t to show TCP sockets or -u to show UDP or -x to show UNIX sockets. And you should use -a option combined with any of these options to show the connected and listening sockets.

$ ss -ta

ss -ta linux network command

To list all established TCP sockets for IPV4, use the following command:

$ ss -t4 state established

ss established connections

To list all closed TCP states:

$ ss -t4 state closed

You can use the ss command to show all connected ports from a specific IP:

$ ss dst XXX.XXX.XXX.XXX

And you can filter by a specific port like this:

$ ss dst XXX.XXX.XXX.XXX:22

Install and Use iftop Command For Traffic Monitoring

iftop utility or iftop command is used to monitor the traffic and display real-time results.

You can download the tool like this:

$ wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz

Then extract it:

$ tar zxvf iftop-0.17.tar.gz

Then compile it:

$ cd iftop-0.17

$ ./configure

$ make

$ make install

If you got any errors about libpcap, you can install it like this:

$ yum install libpcap-dev

And you can run the tool as a root user like this:

$ sudo iftop -I

iftop command

And you will see this table with a real-time data about your traffic.

add P option with iftop to show ports.

$ sudo iftop -P

iftop -P linux network commands

You can use the -B option to display the output in bytes instead of bits which is shown by default.

$ iftop -B

iftop -B linux ntwork command

There a lot of options, you can check them man iftop

arp Command

Systems keep a table of IP addresses and their corresponding MAC addresses, this table is called ARP lookup table. If you try to connect to an IP address, your router will check for your MAC address. If it’s cached, ARP table is not used.

To view the arp table, use the arp command:

$ arp

arp linux network command

By default, arp command shows the hostnames, you can show IP addresses instead like this:

$ arp -n

arp -n linux network command

You can delete entries from the arp table like this:

$ arp -d HWADDR

Packet Analysis with tcpdump

One of the most important Linux network commands is The tcpdump command. tcpdump command is used to capture the traffic that is passing through your network interface.

This kind of access to the packets which is the deepest level of the network can be vital when troubleshooting the network.

$ tcpdump -i <network_device>

tcpdump linux network command

You can also specify a protocol (TCP, UDP, ICMP and others) like this:

$ tcpdump -i tcp

Also, you can specify the port:

$ tcpdump -i port 80

tcpdump will keep running until the request is canceled; it is better to use the -c option in order to capture a pre-determined number of events like this:

$ tcpdump -c 20 -i

You can also specify the IP to capture from using src option or going to using dst option.

$ tcpdump -c 20 -i src XXX.XXX.XXX.XXX

You can obtain the device names like this:

$ ifconfig

ifconfig linux network command

You can save the traffic captured from tcpdump to a file and read it later with -w option.

You can save the traffic captured from tcpdump to a file and read it later with -w option.

$ tcpdump -w /path/ -i

And to read that file:

$ tcpdump -r /path

I hope that Linux network commands we’ve discussed in this post could help you troubleshoot some of your network problems and take the right decision.

Thank you.

likegeeks.com

Linux’te Kullanabileceğiniz En İyi 2 Tema [Vertex & Ceti-2]

Yıllardır Linux kullanıcısıyım. Bu süre zarfından birçok farklı tema denedim. Görsellik açısından içime sinen ve Windows’ta yıllar önce kullandığım Stardock’un WindowBlinds temalarındaki gibi profesyonel görünüme sahip en iyi temalar, Vertex ve Ceti-2 oldu. Manjaro kullanıcıları, varsayılan olarak geldiği için Vertex temasını zaten kullanıyorlar. Birçok dağıtımda da varsayılan olarak ya da

November 18, 2017

Performance Tuning Using Linux Process Management Commands

In server administration, it is very important to understand how the running processes work in detail, from high load to slow response time processes. When your server becomes so slow or fails to respond, you should understand the process management or Linux process management in specific to an action. When it is the time to kill a process or renice it and how to monitor the currently running processes and how these processes affect the system load. Let’s see how Linux process management will help us tune the system.

Process Types

Before we start talking about Linux process management, we should review process types. There are four common types of processes:

  • Parent process
  • Child process
  • Orphan Process
  • Daemon Process
  • Zombie Process

Parent process is a process which runs the fork() system call. All processes except process 0 have one parent process.

Child process is created by a parent process.

Orphan Process it continues running while its parent process has terminated or finished.

Daemon Process is always created from a child process and then exit.

Zombie Process exists in the process table although it is terminated.

The orphan process is a process that still executing and its parent process has died while orphan processes do not become zombie processes.

Memory Management

In server administration, memory management is one of your responsibility that you should care about as a system administrator.

One of most used commands in Linux process management is the free command:

$ free –m

The -m option to show values in megabytes.

linux process managment free command

Our main concern in buff/cache.

The output of free command here means 536 megabytes is used while 1221 megabytes is available.

The second line is the swap. Swapping occurs when memory becomes to be crowded.

The first value is the total swap size which is 3070 megabytes.

The second value is the used swap which is 0.

The third value is the available swap for usage which is 3070.

From the above results, you can say that memory status is good since no swap is used, so while we are talking about the swap, let’s discover what proc directory provides us about the swap.

$ cat /proc/swaps

linux process managment swaps

This command shows the swap size and how much is used:

$ cat /proc/sys/vm/swappiness

linux process managment swappiness

This command shows a value from 0 to 100, this value means the system will use the swap if the memory becomes 70% used.

Notice: the default value for most distros for this value is between 30 and 60, you can modify it like this:

$ echo 50 > /proc/sys/vm/swappiness

Or using sysctl command like this:

$ sudo sysctl -w vm.swappiness=50

Changing the swappiness value using the above commands is not permanent, you have to write it on /etc/sysctl.conf file like this:

$ nano /etc/sysctl.conf

vm.swappiness=50

linux process managment persist swappiness

Cool!!

The swap level measures the chance to transfer a process from the memory to the swap.

Choosing the accurate swappiness value for your system requires some experimentation to choose the best value for your server.

Managing virtual memory with vmstat

Another important command used in Linux process management which is vmstat. vmstat command gives a summary reporting about memory, processes, and paging.

$ vmstat -a

-a option is used to get all active and inactive processes.

linux process managment vmstat command

And this is the important column outputs from this command:

si:                           How much swapped in from disk.

so:                          How much swapped out to disk.

bi:                           How much sent to block devices.

bo:                         How much obtained from block devices.

us:                          The user time.

sy:                          The system time.

id:                           The idle time.

Our main concern is the (si) and (so) columns, where (si) column shows page-ins while (so) column provides page-outs.

A better way to look at these values is by viewing the output with a delay option like this:

$ vmstat 2 5

linux process managment vmstat delay

Where 2 is the delay in seconds and 5 is the number of times vmstat is called. It shows five updates of the command and all data is presented in kilobytes.

Page-in (si) happens when you start an application and the information is paged-in. Page out (so) happens when the kernel is freeing up memory.

System Load & top Command

In Linux process management, the top command gives you a list of the running processes and how they are using CPU and memory ; the output is a real-time data.

If you have a dual core system may have the first core at 40 percent and the second core at 70 percent, in this case, the top command may show a combined result of 110 percent, but you will not know the individual values for each core.

$ top -c

linux process managment top command

We use -c option to show the command line or the executable path behind that process.

You can press 1 key while you watch the top command statistics to show individual CPU statuses.

linux process management individual cpu status

Keep in mind that certain processes are spawned like the child processes, you will see multiple processes for the same program like httpd and PHP-fpm.

You shouldn’t rely on top command only, you should review other resources before making a final action.

Monitoring Disk I/O with iotop

The system starts to be slow as a result of high disk activities, so it is important to monitor disk activities. That means figuring out which processes or users cause this disk activity.

The iotop command in Linux process management helps us to monitor disk I/O in real-time. You can install it if you don’t have it:

$ yum install iotop

Running iotop without any options will result in a list all processes.

To view the processes that cause to disk activity, you should use -o option:

$ iotop -o

linux process managment iotop command

You can easily know what program is impacting the system.

ps command

We’ve talked about ps command before on a previous post and how to order the processes by memory usage and CPU usage.

Monitoring System Health with iostat and lsof

iostat command gives you CPU utilization report; it can be used with -c option to display the CPU utilization report.

$ iostat -c

linux process managment iostat command

The output result is easy to understand, but if the system is busy, you will see %iowait increases. That means the server is transferring or copying a lot of files.

With this command, you can check the read and write operations, so you should have a solid knowledge of what is hanging your disk and take the right decision.

Additionally, lsof command is used to list the open files:

linux process managment lsof command

lsof command shows which executable is using the file, the process ID, the user, and the name of the opened file.

Calculating the system load

Calculating system load is very important in Linux process management. The system load is the amount of processing for the system which is currently working. It is not the perfect way to measure system performance, but it gives you some evidence.

The load is calculated like this:

Actual Load = Total Load (uptime) / No. of CPUs

You can calculate the uptime by reviewing uptime command or top command:

$ uptime

linux process managment uptime command

$ top

The server load is shown in 1, 5, and 15 minutes.

As you can see, the average load is 0.00 at the first minute, 0.01 at the fifth minute, and 0.05 at fifteenth minutes.

When the load increases, processors are queued, and if there are many processor cores, the load is distributed equally across the server’s cores to balance the work.

You can say that the good load average is about 1. This does not mean if the load exceeds 1 that there is a problem, but if you begin to see higher numbers for a long time, that means a high load and there is a problem.

pgrep and systemctl

You can get the process ID using pgrep command followed by the service name.

$ pgrep servicename

linux process managment pgrep command

This command shows the process ID or PID.

Note if this command shows more than process ID like httpd or SSH, the smallest process ID is the parent process ID.

On the other hand, you can use the systemctl command to get the main PID like this:

$ systemctl status <service_name>.service

linux process managment systemctl command

There are more ways to obtain the required process ID or parent process ID, but this one is easy and straight.

Managing Services with systemd

If we are going to talk about Linux process management, we should take a look at systemd. The systemd is responsible for controlling how services are managed on modern Linux systems like CentOS 7.

You can start, stop and check the status like this:

$ systemctl status .service

$ systemctl stop .service

$ systemctl start .service

Instead of using chkconfig command to enable and disable a service during the boot, you can use the systemctl command:

$ systemctl enable .service

$ systemctl disable .service

Systemd also ships with its own version of the top command, and in order to show the processes that are associated with a specific service, you can use the system-cgtop command like this:

$ systemd-cgtop

linux process managment systemd-cgtop

As you can see, all associated processes, path, the number of tasks, the % of CPU used, memory allocation, and the inputs and outputs related.

This command can be used to output a recursive list of service content like this:

$ systemd-cgls

linux process managment systemd-cgls

This command gives us very useful information that can be used to make your decision.

Nice and Renice Processes

The process nice value is a numeric indication that belongs to the process and how it’s fighting for the CPU.

A high nice value indicates a low priority for your process, so how nice you are going to be to other users, and from here the name came.

The nice range is from -20 to +19.

nice command sets the nice value for a process at creation time, while renice command adjusts the value later.

$ nice –n 5 ./myscript

This command increases the nice value which means lower priority by 5.

$ sudo renice -5 2213

This command decreases the nice value means increased priority and the number (2213) is the PID.

linux process managment renice command

You can increase its nice value (lower priority) but cannot lower it (high priority) while root user can do both.

Sending the kill signal

To kill a service or application that causes a problem, you can issue a termination signal (SIGTERM). You can review the previous post about signals and jobs.

$ kill process ID

This method is called safe kill. However, depending on your situation, maybe you need to force a service or application to hang up like this:

$ kill -1 process ID

Sometimes the safe killing and reloading fail to do anything, you can send kill signal SIGKILL by using -9 option which is called forced kill.

$ kill -9 process ID

There are no cleanup operations or safe exit with this command and not preferred. However, you can do something more proper by using the pkill command.

$ pkill -9 serviceName

linux process managment pkill command

And you can use pgrep command to ensure that all associated processes are killed.

$ pgrep serviceName

linux process managment pkill -9

I hope you have a good idea about Linux process management and how to make a good action to make the system healthy.

Thank you.

likegeeks.com

November 17, 2017

Firefox Quantum Kurulumu Nasıl Yapılır?

Firefox Quantum’la birlikte Firefox daha az ram kullanıyor ve sayfalar daha hızlı yükleniyor.  Mozilla’nın geliştiricileri, bu yüklenme hızının 2 kat fazla olduğunu söylüyorlar. 2 kat hızlı olup olmadığını bilemiyorum. Fakat Firefox'un ciddi anlamda hızlandığı belli oluyor. Bana sunduğu hızdan ben memnun kaldım. Ayrıca benim gibi telefonunuzda da Firefox kullanan biriyseniz mobil sürümünün de

November 14, 2017

RedHat/CentOS/Ubuntu Sunucularda Var Olan Diskleri Reboot Etmeden Genişletme – SCSI Bus Rescan

Sanal sunucularda var olan diski hypervisor katmanında genişlettikten sonra değişikliklerin algılanması için Linux OS tarafında genelde reboot etmek zorunda kalınır. Şimdi biz burda reboot etmeden hypervisor tarafında var olan diskteki genişletilen o alanı, linux operation system katmanında scsi yolunu kullanarak disk aygıtlarını rescan ederek algılatacağız. Bu arada çalışmaları Vmware Esxi üzerinde yapacağım. * İlk örneği...

Continue Reading

November 13, 2017

Install, Configure and Use Linux NIS Server

The Linux NIS server (Network Information Service) is a server used for sharing critical data stored in flat files between systems on a network, it is often ideal to have a common repository (such as NIS) for storing user and group information that is traditionally stored in flat files like /etc/passwd. So what is the benefit of that? By making such files available via the NIS server, that would allow any remote NIS client machine to access or query the data in these shared files and use them as extensions to the local versions. NIS is not limited to sharing files. Any tabular file which at least has one column with a unique value can be shared via NIS like /etc/services file. The main benefit from using NIS server is that you keep your data and files, and if your data is updated, all updates be propagated to all users. Some users, especially windows users might think this is sort of Active Directory like service, but the Linux NIS server is older than Active Directory and not a replicate for it.

What is NIS?

The NIS is a database that contains a series of tables. Each table is created from text files like /etc/passwd, /etc/services and any other tabular files. Each table may contain one column or more with a unique key on each row.

You can think of it like any normal database.

You can query these tables in two ways:

  • Listing the entire table
  • Pulling a specific entry by searching

When a program makes a request to search for a user password details, the client checks the /etc/passwd file to check if the user doesn’t exist there; the client then asks the NIS server to search for it in the /etc/passwd table from the NIS server.

The following list is the list of services and tools that are used by NIS server:

ypserv: This service waits for queries and gives answers to NIS clients.

ypbind: This is client-side of NIS.

ypxfrd: This service is used for sending the NIS databases from master MIS servers to slave servers.

Linux NIS Servers

Linux NIS server types are:

  • Master server:: where all original files are stored.
  • Slave (secondary) server: it’s used for load balancing and helpful in case of master server failure.

You can have multiple secondary NIS servers if you need.

Primary and secondary NIS servers are kept synced and updated. This process is called server push.

NIS Domain Name

NIS domains are just like the domains of a domain controller in Windows, but the difference is that client can join the network without having to wait for admin acceptance.

Keep in mind that the names used for NIS domain names MUST be different from your DNS domain names.

Installing Master Linux NIS Server

On Red Hat based distros, you can install it like this:

$ dnf -y install ypserv

On Debian-based distros, you can install it like this:

$ apt-get -y install nis

After successful installation, you need to set the NIS domain name by using the domainname command.

Let’s name it nis.example.com

$ domainname nis.example.com

To persist our NIS domain name in Red hat based distros, we can create a variable called NISDOMAIN in the /etc/sysconfig/network file.

On Debian-based distros, you can achieve the same result by adding the domainname command with the correct value to one of the rc scripts which run at boot time.

Configuring NIS

As we mentioned earlier, the ypserv waits for queries and gives answers to NIS clients.

NIS is an RPC service, so you need to ensure that the rpcbind program is up and running before you attempt to start the Linux NIS server.

On new Linux distros that rely on systemd as the service manager, systemd will automatically take care of service intra-dependencies that exist between rpcbind and ypserv.

If your distro is not one of them, you can start rpcbind like this:

$ systemctl start rpcbind

On our distro which has systemd, we can start the service like this:

$ systemctl start ypserv

To confirm that the service is running, you can use the rpcinfo command.

$ rpcinfo -p | grep ypserv

Editing the Makefile

The make command is responsible for preparing the list of files that need compilation and the needed program for compilation for each of them.

The make command compiles a file called Makefile.

Taking this concept to work on NIS is straightforward. In this case, a series of text files need to be converted into database format. We want a tool that will re-convert any files that have been changed, we can use the make command.

The Makefile is in /var/yp directory. This file contains all the shared files by NIS server.

Let’s discuss the options in the Makefile.
NOPUSH Option

If you plan to have NIS slave servers, you will need to tell the master Linux NIS server to push the resulting maps to the slave servers. Change the NOPUSH variable to false if you want to have support for slave servers.

NOPUSH=true

Keep in mind that you need to list the hostnames of your slave servers in /var/yp/ypservers file and ensure to list a corresponding entry in the /etc/hosts file.

Min UIDs GIDs

Every user on Linux has a user id and group id, you can get your id by typing the id command and gid command respectively.

You can set the minimum permissions for the files that will be shared via NIS using MINUID and MINGID like this:

MINUID=500

MINGID=500

Merging Shadow Passwords with Real Ones

The Linux NIS server can be used to authenticate their users, NIS server will automatically take the encrypted field from the /etc/shadow file and merge it into the NIS shared copy of /etc/passwd.

This is done using MERGE_PASSWD option:

MERGE_PASSWD=true

Merging Group Shadow Passwords with Real Ones

The /etc/group file allows passwords to be applied to group settings. Since the /etc/group file needs to be publicly readable, most distros have taken to support shadow group files /etc/gshadow.

The option is called MERGE_GROUP:

MERGE_GROUP=true

Shared Entries

In Makefile, there is an option that specifies what is shared, it is (all) option

all: passwd group hosts services shadow networks

The option YPPWDDIR specifies the location of the passwd, group, and shadow files, so you don’t need to type the full path.

Initialize NIS Server Using ypinit

Once you’ve finished editing options in Makefile, you can initialize the NIS server like this:

$ /usr/lib64/yp/ypinit -m

The -m option is used to initialize the server as a master server.

Or if you are using a 32bit system the command will be:

$ /usr/lib/yp/ypinit

This tool will ask about the secondary NIS servers if you have any.

These entries will be stored in the /var/yp/ypservers file.

Congratulations, now your NIS server should work OK and your map will be on the secondary servers if you have any.

Configuring NIS Client

On Red Hat based distros, you can install NIS client like this:

$ dnf -y install ypbind

On Debian-based distros, you can install it like this:

$ apt-get install nis

The /etc/yp.conf file is the configuration for the client-side daemon.

You can start ypbind now:

$ systemctl start ypbind

$ systemctl enable ypbind

The/etc/nsswitch.conf File

This file contains entries of facilities and their corresponding files and services that the system will use for searching.

passwd: files nis

This entry means that search requests for password entries will first be done in the /etc/passwd file. If the requested entry isn’t found there, check NIS server.

NIS Tools

To work better with the Linux NIS server, there are some useful tools that can help you manage the information in the database.

ypcat: This tool is used to get data from the NIS server by extracting it from NIS map.

ypwhich: gets the name of the Linux NIS server that is responding to your requests.

ypmatch: rather than grabbing the entire map, or you can search by key to get a specific entry.

I hope you find the post useful and interesting. Keep coming back.

Thank you.

likegeeks.com

November 12, 2017

Bash Scripting Part2 – For and While Loops With Examples

In the previous post, we talked about how to write a bash script, and we saw how bash scripting is awesome. In this post, we will look at the for command, while command, and how to make loops to iterate over a series of values. The for command enables you to perform a loop on a list of items. This is often the fundamental format of the for command.

 

for myvar in vars

do

Code Here

done

In every loop, the variable myvar holds one of the values of the list. The loop iterates until the list is finished.

Iterating Over Simple Values

You can iterate over simple values like this:

#!/bin/bash

for var in first second third fourth fifth

do

echo The $var item

done

Check the results:

bash scripting for loop

Iterating Over Complex Values

Your list maybe contains a comma or two words, and you want to deal with them as one item on the list.

Check the following example:

#!/bin/bash

for var in first "the second" "the third" "I’ll do it"

do

echo "This is: $var"

done

We quote our strings with double quotations.

We play nice till now, we always do. Just keep reading and practicing.

bash scripting compelx for loop

Command Substitution

By using command substitution using this format $(Linux command) you can store the result in a variable for later use.

#!/bin/bash

my_file="myfile"

for var in $(cat $my_file)

do

echo " $var"

done

Here we get the file content using cat command. Notice that our file contains one word per line, not separated by spaces.

bash scripting loop from command

Here we get the content of the file using command substitution then iterate over the result, assuming that each line has one word.

What about having spaces in one of these lines?

In this case, every word will be considered a field. You need to tell the shell to consider new lines as a separator instead of spaces.

The Field Separator

By default, the following characters treated as fields.

  • Space
  • Tab
  • newline

If your text includes any of these characters, the shell will assume it’s a new field.

Well, you can change the internal field separator or IFS environment variable. like this:

IFS=$'\n'

It will consider new lines as a separator instead of spaces.

#!/bin/bash

file="/etc/passwd"

IFS=$'\n'

for var in $(cat $file)

do

echo " $var"

done

You got it. Bash scripting is easy.

bash scripting passwd file

The separator is colons in /etc/passwd file which contains the user’s information, you can assign it like this:

IFS=:

Bash scripting is awesome, right?

Iterating Over Directory Files

If you want to list the files in /home directory, you can use the for loop like this:

#!/bin/bash

for obj in /home/likegeeks/*

do

if [ -d "$obj" ]

then

echo "$obj is a folder"

elif [ -f "$obj" ]

then

echo "$obj is a file"

fi

done

From the previous post, you should know the if statement and how to check for files and folders, so if you don’t know, I recommend you to review it bash script step by step.

bash scripting directory iteration

Here we use wildcard character which is the asterisk * and this is called in bash scripting file globbing which means All files with all names.

Notice that in the if statements here we quote our variables with quotations because maybe the file or the folder name contains spaces.

As you see the result, all files and directories in that folder are listed.

for Command C-Style

If you know C language, you may find that the for loop here is some weird because you are familiar with this syntax:

for (var= 0; var < 5; var++)

{

printf(“number is %d\n”, var);

}

Well, you can use the same syntax but with a little difference, here’s the syntax.

for (( variable = start ; condition ; iteration step))

So it looks like this:

for (( var = 1; var < 5; var++ ))

And this is an example:

#!/bin/bash

for (( var=1; var <= 10; var++ ))

do

echo "number is $var"

done

And this is the output:

bash scripting c-style

The while Command

The for loop is not the only way for looping in bash scripting. The while loop does the same job but it checks for a condition before every iteration.

The while loop command takes the following structure:

while condition

do

commands

done

and here is an example:

#!/bin/bash

number=10

while [ $number -gt 4 ]

do

echo $number

number=$[ $number - 1 ]

done

The script is simple; it starts with the while command to check if number is greater than zero, then the loop will run and the number value will be decreased every time by 1 and on every loop iteration it will print the value of number, Once the number value is zero the loop will exit.

bash scripting while loop

If we don’t decrease the value of var1, it will be the same value and the loop will be infinite.

Nesting Loops

You can type loops inside loops. This is called the nested loop.

Here’s an example of nested loops:

#!/bin/bash

for (( v1 = 1; v1 <= 5; v1++ ))

do

echo "Start $v1:"

for (( v2 = 1; v2 <= 5; v2++ ))

do

echo " Inner loop: $v2"

done

done

The outer loop hits first, then goes into the internal loop and completes it and go back to the outer loop and so on.

bash scripting nested loops

Iterate Over File Content

This is the most common usage for the for loop in bash scripting.

We can iterate over file content, for example, iterate over /etc/passwd file and see the output:

#!/bin/bash

IFS=$'\n'

for text in $(cat /etc/passwd)

do

echo "This line $text ++ contains"

IFS=:

for field in $text

do

echo " $field"

done

done

Here we have two loops, the first loop iterate over the lines of the file and the separator is the newline, the second iteration is over the words on the line itself and the separator is the colon :

bash scirpting file data

You can apply this idea when you have a CSV or any comma separated values file. The idea is the same; you just have to change the separator to fit your needs.

Controlling the Loop

Maybe after the loop starts you want to stop at a specific value, will you wait until the loop is finished? Of course no, there are two commands help us in this:

  • break command
  • continue command

The break Command

The break command is used to exit from any loop, like the while and the until loop

#!/bin/bash

for number in 10 11 12 13 14 15

do

if [ $number -eq 14 ]

then

break

fi

echo "Number: $number"

done

The loop runs until it reaches 14 then the break command exits the loop.

bash scirpting break command

And the same for the while loop:

#!/bin/bash

val=1

while [ $val -lt 5 ]

do

# Check number value

if [ $val -eq 4 ]

then

# The Code Breaks here <==

break

fi

# The Printed Message

echo "Iteration: $val"

val=$(( $val + 1 ))

done

The break command exits the while loop and that happens when the execution reaches the if statement.

bash scripting break while

The continue command

You can use the continue command to stop executing the remaining commands inside a loop without exiting the loop.

Check the following example:

#!/bin/bash

# The loop starts here

for (( number = 1; number < 10; number++ ))

do

# Check if number greater than 0 and less than 5

if [ $number -gt 0 ] && [ $number -lt 5 ]

then

continue

fi

# The printed message

echo "Iteration number: $number"

done

When the if condition is true, the continue command runs each iteration, and lines after the continue command never run until the condition becomes false.

bash scripting continue command

Redirecting the Loop Output

You can use the done command to send the loop output to a file like this:

#!/bin/bash

for (( var = 1; var < 10; var++ )) do echo "Number is $var" done > myfile.txt

echo "finished."#!/bin/bash

for (( var = 1; var < 10; var++ )) do echo "Number is $var" done > myfile.txt

echo "finished."

The shell creates the file myfile.txt and the output is redirected to the file, and if we check that file we will find our loop output inside it.

bash sciprintg process output

Let’s employ our bash scripting knowledge in something useful.

Useful Examples

Finding executables

To get all executable files on your system, you can iterate over the directories in the PATH variable. We discussed for loop and if statements and file separator so our toolset is ready. Let’s combine them together and make something useful.

#!/bin/bash

IFS=:

for dir in $PATH

do

echo "$dir:"

for myfile in $dir/*

do

if [ -x $myfile ]

then

echo " $myfile"

fi

done

done

This is just awesome. We were able to get all the executables on the system that we can run.

bash scripting finding executables

Now nothing stops you except your imagination.

I hope you learn a new thing or at least review your knowledge if you forget it. My last word for you, keep reading and practicing.

Thank you.

likegeeks.com

November 11, 2017

Bash Script Step By Step, You will love it

Today we are going to talk about bash scripting or shell scripting and how to write your first bash script. Actually, they are called shell scripts in general, but we are going to call them bash scripts because we are going to use bash among the other Linux shells. There are zsh, tcsh, ksh and other shells. In the previous posts, we saw how to use the bash shell and how to use Linux commands. The concept of a bash script is to run a series of Commands to get your job done. To run multiple commands in a single step from the shell, you can type them on one line and separate them with semicolons.

In the previous posts, we saw how to use the bash shell and how to use Linux commands.

The concept of a bash script is to run a series of Commands to get your job done.

To run multiple commands in a single step from the shell, you can type them on one line and separate them with semicolons.

pwd ; whoami

Actually, this is a bash script!!

The pwd command runs first, displaying the current working directory then the whoami command runs to show the currently logged in users.

You can run multiple commands as much as you wish, but with a limit. You can determine your max args using this command.

getconf ARG_MAX

Well, What about putting the commands into a file, and when we need to run these commands we run that file only. This is called a bash script.

First, make a new file using the touch command. At the beginning of any bash script, we should define which shell we will use because there are many shells on Linux, bash shell is one of them.

Bash Script Shebang

The first line you type when writing a bash script is the (#!) followed by the shell you will use.

#! <=== this sign is called shebang.

#!/bin/bash

If you use the pound sign (#) in front of any line in your bash script, this line will be commented which means it will not be processed, but, the above line is a special case . This line defines what shell we will use, which is bash shell in our case.

The shell commands are entered one per line like this:

#!/bin/bash

# This is a comment

pwd

whoami

You can type multiple commands on the same line but you must separate them with semicolons, but it is preferable to write commands on separate lines, this will make it simpler to read later.

Set Script Permission

After writing your bash script, save the file.

Now, set that file to be executable, otherwise, it will give you permissions denied. You can review how to set permissions using chmod command.

bash script permission

chmod +x ./myscript

Then try run it by just typing it in the shell:

./myscript

And Yes, it is executed.

bash script first run

Print Messages

As we know from other posts, printing text is done by echo command.

Edit our file and type this:

#!/bin/bash

# our comment is here

echo "The current directory is:"

pwd

echo "The user logged in is:"

whoami

Look at the output:

bash script echo command

Perfect! Now we can run commands and display text using echo command.

If you don’t know echo command or how to edit a file I recommend you to view previous articles about basic Linux commands

Using Variables

Variables allow you to store information to use it in your script.

You can define 2 types of variables in your bash script:

  • Environment variables
  • User variables

Environment Variables

Sometimes you need to interact with system variables, you can do this by using environment variables.

#!/bin/bash

# display user home

echo "Home for the current user is: $HOME"

Notice that we put the $HOME system variable between double quotations, and it prints the home variable correctly.

bash script global variables

What if we want to print the dollar sign itself?

echo "I have $1 in my pocket"

Because variable $1 doesn’t exist, it won’t work. So how to overcome that?

You can use the escape character which is the backslash \ before the dollar sign like this:

echo "I have \$1 in my pocket"

Now it works!!

bash script escape dollar sign

User Variables

Also, you can set and use your custom variables in the script.

You can call user variables in the same way like this:

#!/bin/bash

# User variables

grade=5

person="Adam"

echo "$person is a good boy, he is in grade $grade"

chmod +x myscript

./myscript

bash script user variables

Command Substitution

You can extract information from the result of a command using command substitution.

You can perform command substitution with one of the following methods:

  • The backtick character (`).
  • The $() format.

Make sure when you type backtick character, it is not the single quotation mark.

You must enclose the command with two backticks like this:

mydir=`pwd`

Or the other way:

mydir=$(pwd)

So the script could be like this:

#!/bin/bash

mydir=$(pwd)

echo $mydir

The output of the command will be stored in mydir variable.

bash script command substitution

Math calculation

You can perform basic math calculations using $(( 2 + 2 )) format:

#!/bin/bash

var1=$(( 5 + 5 ))

echo $var1

var2=$(( $var1 * 2 ))

echo $var2

Just that easy.

bash script math

if-then statement

You bash scripts will need conditional statements. Like if the value is smaller than 10 do this else do that. You can imagine any logic you want.

The most basic structure of if-then statement is like this:

if command

then

do something

fi

and here is an example:

#!/bin/bash

if whoami

then

echo "It works"

fi

Since the whoami command will return my user so the condition will return true and it will print the message.

Let’s dig deeper and use other commands we know.

Maybe searching for a specific user in the user’s file /etc/passwd and if a record exists, tell me that in a message.

#!/bin/bash

user=likegeeks

if grep $user /etc/passwd

then

echo "No such a user $user"

fi

bash script if-else

We use the grep command to search for the user in /etc/passwd file. You can check our tutorial about the grep command.

If the user exists, the bash script will print the message.

What if the user doesn’t exist? The script will exit the execution without telling us that the user doesn’t exist. OK, let’s improve the script more.

if-then-else Statement

The if-then-else statement takes the following structure:

if command

then

do something

else

do another thing

fi

If the first command runs and returns zero; which means success, it will not hit the commands after the else statement, otherwise, if the if statement returns non-zero; which means the statement condition fails, in this case, the shell will hit the commands after else statement.

#!/bin/bash

user=anotherUser

if grep $user /etc/passwd

then

echo "The user $user Exists"

else

echo "The user $user doesn’t exist"

fi

bash script if-else

We are doing good till now, keep moving.

Now, what if we need more else statements.

Well, that is easy, we can achieve that by nesting if statements like this:

if condition1

then

commands

elif condition2

then

commands

fi

If the first command return zero; means success, it will execute the commands after it, else if the second command return zero, it will execute the commands after it, else if none of these return zero, it will execute the last commands only.

#!/bin/bash

user=anotherUser

if grep $user /etc/passwd

then

echo "The user $user Exists"

elif ls /home

then

echo "The user doesn’t exist"

fi

You can imagine any scenario here, maybe if the user doesn’t exist, create a user using the useradd command or do anything else.

Numeric Comparisons

You can perform a numeric comparison between two numeric values using numeric comparison checks like this:

number1 -eq number2 Checks if number1 is equal to number2.

number1 -ge number2 Checks if number1 is bigger than or equal number2.

number1 -gt number2 Checks if number1 is bigger than number2.

number1 -le number2 Checks if number1 is smaller than or equal number2.

number1 -lt number2 Checks if number1 is smaller than number2.

number1 -ne number2 Checks if number1 is not equal to number2.

As an example, we will try one of them and the rest is the same.

Note that the comparison statement is in square brackets as shown.

#!/bin/bash

num=11

if [ $num -gt 10]

then

echo "$num is bigger than 10"

else

echo "$num is less than 10"

fi

bash script numeric compare

The num is greater than 10 so it will run the first statement and prints the first echo.

String Comparisons

You can compare strings with one of the following ways:

string1 = string2 Checks if string1 identical to string2.

string1 != string2 Checks if string1 is not identical to string2.

string1 < string2 Checks if string1 is less than string2.

string1 > string2 Checks if string1 is greater than string2.

-n string1 Checks if string1 longer than zero.

-z string1 Checks if string1 is zero length.

We can apply string comparison on our example:

#!/bin/bash

user ="likegeeks"

if [$user = $USER]

then

echo "The user $user is the current logged in user"

fi

bash script string compare

One tricky note about the greater than and less than for string comparisons, they MUST be escaped with the backslash because if you use the greater-than symbol only, it shows wrong results.

So you should do it like that:

#!/bin/bash

v1=text

v2="another text"

if [ $v1 \> "$v2" ]

then

echo "$v1 is greater than $v2"

else

echo "$v1 is less than $v2"

fi

bash script string greater than

It runs but it gives this warning:

./myscript: line 5: [: too many arguments

To fix it, wrap the $vals with a double quotation, forcing it to stay as one string like this:

#!/bin/bash

v1=text

v2="another text"

if [ $v1 \> "$v2" ]

then

echo "$v1 is greater than $v2"

else

echo "$v1 is less than $v2"

fi

bash script string fix

One important note about greater than and less than for string comparisons. Check the following example to understand the difference:

#!/bin/bash

v1=Likegeeks

v2=likegeeks

if [ $v1 \> $v2 ]

then

echo "$v1 is greater than $v2"

else

echo "$v1 is less than $v2"

fi

bash script character case

sort myfile

likegeeks

Likegeeks

bash script sort order

The test condition considers the lowercase letters bigger than capital letters. Unlike the sort command which does the opposite.

The test condition is based on the ASCII order, while the sort command is based on the numbering orders from the system settings.

File Comparisons

You can compare and check for files using the following operators:

-d my_file Checks if its a folder.

-e my_file Checks if the file is available.

-f my_file Checks if its a file.

-r my_file Checks if it’s readable.

my_file nt my_file2 Checks if my_file is newer than my_file2.

my_file ot my_file2 Checks if my_file is older than my_file2.

-O my_file Checks if the owner of the file and the logged user match.

-G my_file Checks if the file and the logged user have the idetical group.

As they imply, you will never forget them.

Let’s pick one of them and take it as an example:

#!/bin/bash

mydir=/home/likegeeks

if [ -d $mydir ]

then

echo "Directory $mydir exists"

cd $mydir

ls

else

echo "NO such file or directory $mydir"

fi

bash script file checking

We are not going to type every one of them as an example. You just type the comparison between the square brackets as it is and complete you script normally.

There are some other advanced if-then features but let’s make it in another post.

That’s for now. I hope you enjoy it and keep practicing more and more.

Thank you.

likegeeks.com

November 10, 2017

Football Manager 2018 Linux Desteğiyle Geldi

Football Manager 2018, en çok satan, oldukça ses getiren serinin en yeni oyunudur. Sizi dünya çapında 50'den fazla ülkedeki futbol kulübünün başına geçiren Football Manager 2018, gerçek hayatta futbol menajerliği yapmaya en yakın deneyimdir. Football Manager 2018, Windows ve Mac ile aynı anda Linux desteğiyle birlikte çıktı. Oyunun Steam'deki satış fiyatı 119 TL Football Manager 2018

November 09, 2017

16 Useful Linux Command Line Tricks

We use the Linux command line every day, and due to the little practicing, we may forget some of the Linux command line tricks. In this post, I’m going to show you some of these Linux command line tricks that you might forget or maybe new to you, so let’s get started. Sometimes it’s painful to read the output well due to the overcrowded strings, for example, the result of the mount command, what about viewing the output like a table? It is an easy job.

mount | column –t

mount table view

OK, in this example, we see the output is well formatted because the separator between them is spaces.

What if the separators are something else, like colons :

The /etc/passwd file is a good example.

Just specify the separator with -s parameter like this:

cat /etc/passwd | column -t -s :

users tabular view

 Run Until Success

If you search google about that trick, you will find a lot of questions about people asking how to repeat the command till it returns success and runs properly, like ping the server till it becomes alive or check if a file with a specific extension is uploaded at specific directory or maybe check if a specific URL becomes available or maybe any geeky thing, the list is very long.

You can use the while true loop to achieve that:

repeat till success

We use > /dev/null 2>&1  to redirect normal output and errors to /dev/null.

Actually, this is one of coolest Linux Command Line Tricks for me.

Sort Processes by (Memory – CPU) Usage

To sort by memory usage:

sort by memory usage

To sort by CPU usage:

sort by cpu usage

Check Your Architecture

getconf  LONG_BIT

Monitor Multiple Log Files Concurrently

You can use the tail command to watch your logs and that’s fine, but sometimes you may need to monitor multiple log files simultaneously to take some actions.

Using multitail command which supports text highlighting, filtering, and many other features that you may need.

multitail command

You can install it if it is not found on your system like this:

aptget install multitail

Return to Your Previous Directory

It’s not a trick but some people forget it, others use it every minute.

Just type cd  and you will return back to the previous directory.

Make Non-Interactive as Interactive Shell Session

To do this, put our settings in ~/.bashrc  from ~/.bash_profile.

Watch Command Output

By using watch command, you can watch any output of any command, for example, you can watch the free space and how it is growing:

watch dfh

You can imagine what you can do with any variant data that you can watch using watch command.

Run Your Program After Session Killing

When you run any program in the background and close your shell, definitely it will be killed, what about if it continues running after closing the shell.

This can be done using the nohup command which stands for no hang up.

nohup wget site.com/file.zip

This command is really one of the most useful Linux command line tricks for most webmasters.

nohup command

A file will be generated in the same directory with the name nohup.out contains the output of the running program.

nohup output

Cool command right?

Answer bot Using Yes & No Commands

It’s like an answer bot for those commands whose require the user to say yes.

That can be done using the yes command:

yes | aptget update

Or maybe you want to automate saying no instead, this can be done using the following command:

yes no | command

yes command

Create a File With a Specific Size

Use the dd command to create a file with a specific size:

dd if=/dev/zero of=out.txt bs=1M count=10

This will create a file with 10-megabyte size filled with zeros.

dd command

Run Last Command as Root

Sometimes you forget to type sudo before your command that requires root privileges to run, you don’t have to rewrite it, just type:

sudo !!

sudo command

Record your Command Line Session

If you want to record what you’ve typed in your shell screen, you can use the script command which will save all of your typings to a file named typescript.

script

Once you type exit, all of your commands will be written to that file so you can review them later.

Replacing Spaces with Tabs

You can replace any character with any other character using tr command which is very handy.

cat geeks.txt | tr ‘:[space]:’ ‘\t’ > out.txt

This command will replace the spaces with tabs.

tr command

Convert Character Case

cat my_file | tr az AZ > output.txt

This command converts the content of the file to upper case using the tr command.

Powerful xargs Command

We can say that xargs command is one of the most important Linux command line tricks, you can use this command to pass outputs between commands as arguments, for example, you may search for png files and compress them or do anything with them.

find . name “*.png” type f print | xargs tar cvzf pics.tar.gz

Or maybe you have a list of URLs in a file and you want to download them or process them in a different way:

cat links.txt | xargs wget

xargs command

The cat command result is passed to the end of xargs command.

What if your command needs the output in the middle?

Just use {} combined with –i parameter to replace the arguments in the place where the result should go like this:

ls /etc/*.conf | xargs i cp {} /home/likegeeks/Desktop/out

This is only some of the Linux command line tricks, but there are some more geeky things that you can do using other commands like awk command and sed command.

If you know any geeky command I didn’t mention, you can type it in a comment and share it with others.

I’m going to make another post about those Linux command line tricks so we can remember all what we’ve forgotten.

Thank you.

likegeeks.com

November 08, 2017

Arch Linux 32-Bit Desteği Sona Erdi

2017’nin ocak ayında i686 ile ilgili yapılan açıklamada geliştiriciler ve topluluk arasında i686’nın popülaritesi azaldığı için desteğin biteceğini ve şubat ayında çıkan ISO’nun 32-bit Arch Linux kurmak için kullanılabilecek son ISO olacağını belirtmişlerdi. Dün paylaştıkları yazıyla birlikte Arch Linux için 32-bit desteği sona erdi. Kasım ayının sonuna kadar i686 paketleri kaldırılacak.

Learn Linux Environment Variables Step-By-Step Easy Guide

In the previous posts, we talked about some of the basic Linux commands, today we continue our journey, and we will talk about something very important in Linux which is Linux Environment Variables. So what are Environment Variables and what is the benefit of knowing them? Environment Variables are used to store some values which can be used by scripts from the shell. You are not limited to the shell environment variables, you can create your own. The bash shell has two types of environment variables: 1.Local variables, 2.Global variables. The local variable is visible in the shell where it was defined only. The global variable is visible for any running process that runs from the shell.

Global variables

The Linux system sets some global environment variables when you log into your system and they are always CAPITAL LETTERS to differentiate them from user-defined environment variables.

To see these global variables, type printenv command:

printenv command

As you can see, there are a lot of global environment variables, to print only one of them, type echo command followed by $VariableName. Ex: to print HOME variable type echo $HOME.

home variable

Local variables

Actually, the Linux system also defines some standard local environment variables for you by default.

To view the global and local variables for the shell you are running and available to that shell, type the set command.

Setting Local Environment Variables

To declare your own environment variables directly from the shell, type variableName you want, followed by an equal sign and the variable value WITHOUT any spaces:

mysite=likegeeks

And to print the variable value, use the echo command:

echo $mysite

Sure enough, it prints likegeeks.

local environment variables

OK, what if your variable is more than one word; may be a long string, you can put the string between single quotations:

mysite=’likegeeks is a website that offers tech tutorials for geeks’

And if we type echo $mysite

set environment variables

If you forget the single quotation, the shell will assume that the second word is another command and will show an error.

As you can see, I use lower case characters for my variable not upper case and this is recommended  NOT required, this helps you distinguishing your environment variables from the system environment variables.

Once you have set your local variable, it will be visible in the currently running shell scope and that means if you start another shell window the variable will not be available in that new window.

Declare Global Environment Variables

To declare a global environment variable, you have to declare a local environment variable then use the export command like this:

myvar=’I will do it likegeeks’

echo $myvar

export myvar

global enviroment variables

As you can see I don’t use dollar sign with the export command so make sure of that.

But there is something, when I close the shell and open it again the variable is gone, so how to make it persistent?

Persisting Environment Variables

Just edit $HOME/.bashrc  and type   export myvar=‘welcome to likegeeks’  and save the file:

print persistent enviroment variable

Removing Environment Variables

This can be done by using the unset command:

unset enviroment variable

Default Environment Variables

As we know, the system defines some variables for us, one of those variables is the PATH variable, this variable holds some paths.

These paths are the default paths that the shell uses to look for a command when you type it in the shell.

Modifying the PATH Environment Variable

If you add a folder path to the PATH variable, the shell will look in that folder for any executable to run when you type any command.

Just append the path variable followed by a colon and the new directory like this:

add path to enviroment variable

And if you want to persist the PATH variable, you have to edit the .bashrc file and add type it like this:

persistent path variable

There is a useful trick but RISKY that some sysadmins do which is adding a period . to the path variable. By doing this, the shell will search for executables in the current directory you are in wherever you are.

This is relatively risky, you might give the attacker the opportunity to run a malicious script or malware in his current directory, so if you do this trick, you should know what you are doing.

System Environment Variables Paths

You can start a bash shell with one of the following ways:

  • Login shell.
  • The interactive shell.
  • The non-interactive shell.

login shell

When you log onto the system, the search for those startup files to process the commands from them:

  • /etc/profile
  • $HOME/.bash_login
  • $HOME/.bash_profile
  • $HOME/.profile

/etc/profile runs on every startup with every user, the other 3 files run for every specific user, you can call them user specific environment variables.

Interactive shell

When you go to the rescue mode, this is the interactive shell.

If you start an Interactive shell, the system will not look for /etc/profile but instead will look for .bashrc in your HOME directory.

Non-interactive shell

This shell runs by the system itself to run a shell script.

Users can customize the above-mentioned files to include environment variables, just edit the desired file and type the variable you want and save it.

Variable Arrays

You can store many values as you want in one environment variable which is called array.

myvar=(first second third fourth)

Now if you check the value of that array using echo command, you will find it returns the first element only.

To get a specific element, just reference it by its position, and the positions start from zero so to get the third one, type it like this:

echo ${myvar[2]}

To display the entire array type asterisk instead of a number:

echo ${mytest[*]}

variable array

You can remove an element of the array using unset command:

unset mytest[2]

Or you can remove the whole array:

unset myvar

likegeeks.com

November 06, 2017

Basic Linux Commands Made Easy Part2

In the previous post, we discussed some Linux commands and we saw how to show files, traverse directories, make them, and much more. Now, that was just the first level of the basic Linux commands. Let’s take one more step and see more of the basic Linux commands that you will use. We talked about the ls command in the previous post and we’ve discussed only 2 parameters. Let’s dig deeper and see more parameters that can make you more powerful. ls -R to recursively list all files in a directory. The -R parameter will traverse deeply till it finishes all directories.

ls -R command

lsr  Reverses the sorting order for the displayed files and directories.

ls -r- command

ls S  Sorts the output by file size.

ls -lt command

Filter ls Command Output

ls l myfile?

A question mark is used to represent one character.

ls l myprob*

An asterisk is used to represent zero or more characters.

The question mark and asterisk are called wild characters.

ls wild character

Create Files

touch test1

The touch command is used to create an empty file.

touch command

If you use it against an existing file, it will change the access time, if the file doesn’t exist, it will create it.

You can use the same command to change the modification time for an existing file,  just type it with -t followed by the time with the following format YYYYMMDDHHMM

touch t 202012011200 test1

touch existed file

Create Shortcuts (Links)

We know from the previous post that cp command is used to copy files.

In Linux, You can create:

  • Hard link.
  • Symbolic, or soft link.

cp l file1 file2

Hard Links

The hard link makes a separate file which contains information about the original file and where it is located.

Keep in mind that hard link only created between files on the same physical drive.

If you need to create links on a different physical drive, you’ll have to create a soft link instead.

cp hardlink

Symbolic Links

To create a symbolic or soft link, use the -s parameter:

cp s file1 file2

cp softlink

Here we should mention also another command that makes links other than cp which is ln command, you can create hard and soft links with it like this:

ln myfile myfile2

This command creates a hard link.

ln command

ln s myfile myfile2

This command creates a soft link.

ln softlink

Viewing the File Type

file myfile

Determines the kind of the file.

file command

Viewing End of File

The tail command is used to view the last 10 lines of a file. This command is useful when working with big files.

-n parameter to specify the number of lines.

-f parameter to stay on the file and continue to watch the last lines you specified like monitoring, and this is very important when looking at log files.

tail command

View Top of File

The head command is used to view the first 10 lines of a file.

head command

List Running Processes

The ps command lists the currently running process.

$ ps aux

ps aux

The top command does the same thing.

-You can use the top command with -c option to view the executable path for the running process.

top command

Kill a process

To kill a process:

pkill processName

kill command

type xkill and press Enter to kill any nonresponsive window.

xkill command

Disk Free Space

df command shows the disk free space.

df h

-h for human readable value

df command

That was some of the basic Linux Commands. I hope you enjoy it. Keep coming back.

likegeeks.com

November 05, 2017

Main Linux Commands Easy Guide

In the previous post, we discussed how to install Linux, now we are going to talk about the most powerful features in Linux which is Linux commands or shell commands. For the whole documentation of Linux Commands, you can check Linux Documentation. The power of Linux is in the power of commands that you can use. I’m going to talk about the main Linux commands with their main parameters that you might use daily.

 

ls Command

List file and folders of the current directory.

Parameters

–l

to list the content as a detailed list.

-a

Display all files (hidden + non-hidden).

You can combine parameters like this:

ls -la

linux ls command

cd Command

Change directory from the current directory to another one.

cd /home

Will go to home directory

linux cd command

cp Command

Copy the source to target.

Parameters

-i

Interactive mode means wait for the confirmation if there are files on the target will be overwritten.

-r

Recursive copy means include subdirectories if they found.

Example

cp –ir sourcedir targetdir

linux cp command

mv Command

Move the source to target and remove the source.

Parameters

-i

Interactive mode means wait for the confirmation if there are files on the target will be overwritten.

Example

mv –i sourceFile targetFile

linux mv command

rm Command

Delete file or directory and you must use –r in case you want to delete a directory.

Parameters

-r

Recursive delete means delete all subdirectories if found.

-i

Interactive means wait till confirmation

linux rm command

mkdir Command

Create a new directory.

mkdir newDir

linux mkdir command

rmdir Command

Delete a directory

linux rmdir command

chown Command

Change the owner of a file or directory.

Parameters:

-R

Capital R here means to change ownership of all subdirectories if found and you must use this parameter if you use the command against a directory.

chown –R root:root myDir

linux chown command

chmod Command

Change the permission of a file or directory.

Parameters

The mode which consists of 3 parts, owner, group, and others means what will be the permissions for these modes, and you must specify them.

The permission is one of the followings:

Read =4

Write = 2

Execute =1

Every permission represented by a number as shown and you can combine permissions.

Example

chmod 755 myfile

That means set permission for the file named myfile as follows:

owner: set it to 7 which means 4+2+1 means read+write+execute.

group: set it to 5 which means 4+1 means read+execute.

other: set it to 5 which means 4+1 means read+execute.

Note: execute for a folder permission means opening it.

linux chmod command

locate Command

To find a file in your system, the locate command will search the system for the pattern you provide.

locate myfile

linux locate command

updatedb Command

updates the database used by the locate command.

date Command

Simply prints today’s date. Just type date on the shell.

tar Command

Combines several files into archive and compression if you want.

Parameters

-c

Create new archive.

-z

Compress the archive using gzip package.

-j

Compress the archive using bzip2 package.

-v

Verbose mode means show the processed files.

-f

Write the output to a file and not to screen.

-x

Unpack files from archive.

Example

tar –czvf myfiles.tar.gz myfiles

linux tar command create

This command will pack and compress all files in folder myfiles to a compressed archive named myfiles.tar.gz.

tar-xzvf myfiels.tar.gz

linux tar command extract

This command will decompress the archive.

cat Command

Display file content to screen without limits.

Example

cat myfile.txt

linux cat command

less Command

Displays file content with scroll screen so you can navigate between pages using PgUp, PgDn, Home, and End.

less myfile

grep Command

Searches for a string in the specified files and displays which line contains the matched string.

Parameters

-R

Recursive search inside subdirectories if found.

-i

Insensitive search and ignore case.

-l

Display file name, not the text lines.

Example

grep –Ril mystring /home

linux grep command

passwd Command

Used to change your user password.

linux passwd command

du Command

Calculates the disk usage of a file or a directory.

Parameters

-h

Display human readable form.

-s

Summarize the output total size.

Example

du –hs /home

linux du command

reboot Command

Reboot the system immediately. Just type reboot.

halt Command

Shuts down the system, but make sure to close all of your files to avoid data loss.

That was just some of the main Linux commands.

Notice that, if you forget any command parameters,  just type the command with – -help as a parameter and it will list the used parameters so you don’t have to remember all those parameters at the beginning.

cat --help

likegeeks.com

November 04, 2017

How To Install Linux Step-By-Step

After you’ve chosen the Best Linux Distro, now it’s the time to know how to install Linux. If you want to install Linux, there are 2 ways to do that: The first way is to download the Linux distribution you want and burn it into a DVD or USB stick and boot your machine with it and complete the installation process. The second way is to install it virtually on a virtual machine like VirtualBox or VMware without touching your Windows or Mac system, so your Linux system will be contained in a window you can minimize and continue working on your real system. For me, I prefer VirtualBox, it’s free and runs very fast on my PC than VMware, and support installing Windows, Linux and Mac OS with all versions. Let’s choose any Linux distro and install it using both 2 ways. I’m going to choose Linux mint, they call it the Mac OS of Linux. It is a good distro for personal use. The version we are going to install is 18.1 “Serena” at the time of writing that article.

Go to this link and download it:

https://www.linuxmint.com/download.php

I prefer the Cinnamon desktop version it is promising and elegant.

Once you download the ISO file, you will have to burn it on DVD or the easy way, copying it on a USB stick using a program called universal USB installer, you can download this program from this link:

https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/

After downloading the program, open it and choose from the list the distro you want to install, in our case we will choose Linux mint.

Make sure that you put your memory stick on the computer and click next and wait till the copying process is finished.

how to install linux using usbhow to install Linux using USB

how to install linux mint

install linux choose iso

Now Finally we click create to create bootable USB

create bootable usb install linux

And now you can boot with this memory stick.

Then Restart your PC and go to BIOS settings and select boot options and make sure that the USB is the first option, then save your BIOS settings and reboot.

boot linux

Then it will show the installation screen, press Enter and it will load the live CD content.

install linux boot menu

Now the desktop should appear like that:

linux boot complete

Click install Linux mint

Then choose the language used for installation.

choose language

install third party

Then choose the installation type, and TAKE CARE if you are installing Linux on a disk that contains other operating systems, you MUST choose the option called something else.

delete partitions

If you are installing it on a new disk, choose the option Erase disk.

Linux requires 2 partitions to work, the root partition and the swap partition.

Now we will create them by clicking the plus button and choose about 12 GB or more as you need but not less than that for root partition, and choose mount type as / which stands for root and of course format will be Ext4.

linux create partitions

Now we create a swap partition, choose the remaining free space and click the plus button and choose swap area as shown:

create root partition

choose free space

Then Create the swap area:

create swap area

Then click install now and agree about writing changes to disk:

click install linux

confirm install

Now you choose the time zone and click continue the choose the language:

choose timezone

choose linux language

Now you write your username and password and click continue:

choose username

Finally, installation started:

linux installlation started

After finishing the installation, it will prompt you to reboot the machine and remove the installation media whether it is a DVD or USB.

linux installation finished

And yes, this is how to install Linux on Physical machine.

linux welcome screen

linux start menu

The second way it to install Linux is to install it on VirtualBox First download VirtualBox from here:

https://www.virtualbox.org/wiki/Downloads

There are 2 ways to use Linux on VirtualBox:

The first way is easy, it like the normal installation process

Open VirtualBox and click new and choose Linux and Ubuntu 64:

linux virtualbox create vm

Then choose the RAM required not less than 1 GB and choose the disk file type or leave it as VDI and dynamically allocated and the size not less than 12 GB and hit ok.

linux virtualbox assign ram

linux virtualbox hdd type

linux virtualbox hdd file

linux virtualbox dynamic allocatedThen file location for disk to be used

linux virtualbox hdd size

So now the VirtualBox is created, we just need to make it boot from the DVD that we’ve downloaded.

Choose from settings > Storage and choose the ISO image and click OK.

linux virtualbox settingsThen choose the iso image
linux virtualbox boot isoThen Click start

linux virtualbox start

After loading the desktop, click install Linux mint and the rest of the steps are the same as the above mentioned without any change, And this is how to install Linux on a virtual machine.

likegeeks.com

Slax Geri Dönüyor

Slax ile ilgili kısa bir bilgi vermek gerekirse, Slackware tabanlı, KDE masaüstü ortamını kullanan ve CD/USB’den kullanabileceğiniz, modüler özelliğe sahip bir dağıtım. Küçük boyutlu (220MB civarı) ve günlük kullanımınız için ihtiyaç duyabileceğiniz birçok yazılımı içinde barındırıyor. Son yayınlanan Slax 7.0.8 sürümü 2013 yılında çıkmıştı. Dün paylaştıkları blog yazısında Slax’ın yeni

November 02, 2017

BIND Servisi Sorgu Logları Nasıl Aktif-Pasif Edilir.

Bunun için kontrol etmemiz gereken değişken query logging parametresidir. Yani bu parametre On ise sorgu log’u düşüyor, Off ise düşmüyor. İlk önce durumunu kontrol edelim. Bunun için çalıştıracağımız ilk komut rndc status komutudur. Ve bu komutu çalıştırıdığımızda aşağıdaki gibi query logging is OFF olduğunu görünüyoruz. > rndc status Aktif etmek için, yani log’ları alabilmek için...

Continue Reading

IBM Power Sunucularda IPMITOOL Kullanımı

IBM sunucular donanımsal olarak uzaktan kontrol edilebilir yapıdadır. Sunucunun fiziksel olarak yeniden başlatılması, kapatılması, açılması gereken durumlarda Web Konsol yerine ipmitool komutları kullanılabilinir. Hatta bağlantığınız konsoldan işletim sistemi seviyesine konsoluna geçip işlemler yapabilirsiniz. Bu işlemi öncesinde sunucuya IPMITOOL IP SET ile atadığımız ip’yi kullanarak yapacağız. Kullanıcı tarafında ipmitool paketini kurmalısınız. IPMITOOL default kullanıcı adı ve...

Continue Reading

November 01, 2017

Feathergun in the Garden of the Sun

 

Yine gündemin midemi bulandırdığı bir sabah Twitter‘da denk gelmiştim.

Bizden gittiğine en çok üzüldüğümüz şey milyon dolarlar değildi, Ali İsmail’di.

Benim için hepsinin sevgisi de acısı da aynıdır.Ve ne zaman umudumu kaybedecek gibi olsam düşmana inat bir gün fazla yaşamak borcu yakama yapışıyor.

Bir zamandır koşuyorum. Bahsetmiştim. Çok lazım değil gibiydi ama ihtiyacım varmış hayata karışmaya. Bir de negatifliklerden kurtulmaya.. Koştukça uzaklaştım, geride bıraktım, yakınlaştım.

İyi ki diye başlayan cümlelerimiz var şimdi.

Arada parasız kaldığımda söylerim, piyasadan alacaklarımı toplayabilsem:)

Kendim için bir şey istemek pek adetim sayılmaz, fakat mesele bu sefer başka..

Bu sene 12 Kasım İstanbul Maratonu’nda kaybettiğimiz tüm dostlarımızın anısına, Ali İsmail Korkmaz kardeşimin ailesinin kurduğu ALİKEV‘in Burs Fonu projesini desteklemek istedim.
YARA İZİni YAŞAM İZİne dönüştürmeye, bir gencin ışığı olmaya, birlikte destek olalım mı?
Ben Alikev Burs Fonu için koşarken sen de bu güzel amaca ortak olarak destek verip 5, 10, 50, 100, 500, 1.000TL hiç fark etmez bağışınla katkıda bulunursan beni, Ali Ismail‘in düşlerine ortak olan herkesi ve desteğinle eğitim hayatına devam edebilecek üniversite öğrencilerini çok mutlu edersin.
Çok güvenli ve basit bir sistemle aracısız ve direkt vakfın hesabına gönderilecek şekilde
bağlantısındaki Online Bağış Yap kısmına tıklayarak kampanyama destek olabilirsin.
Dayanışma ile güçlüyüz
Düşlere güç verelim

October 30, 2017

SuperTuxKart Android’e Geldi

Sizlere daha önce bahsettiğim SuperTuxKart oyunu Android’e geldi. SuperTuxKart, gerçekçiliğin üzerinde eğlenme odaklı ücretsiz 3B kart yarış oyunudur. Bir bilgisayarda 4 arkadaşla, birbirinize karşı oynayabileceğiniz gibi, tek oyunculu kipte bilgisayara karşı da yarışabilirsiniz. Android telefonunuzda oyunu ilk çalıştırdığınızda varsayılan olarak dili İngilizce geliyor. Ayarlardan Türkçe’yi

October 29, 2017

Kernel 4.14 RC6 nasıl yüklenir?

Aslında Debian, Ubuntu ve tüm türevleri ile Linux Mint sürümleri için güncel Linux çekirdeğine nasıl yükseltme yapılacağını irdeleyen bir yazı yazmış olduğumuz için bu tür özel yazılar yazmamıza gerek olmamasına karşın, kullanıcılardan gelen beklentiler nedeniyle hâlâ böyle yazılar yazıyoruz. Linux’un en son yayınlanan kararsız (geliştirme) sürümü 4.14 RC6; 23 Ekim 2017 tarihi itibariyle duyuruldu. Kernel 4.14 RC6’nın resmi duyurusunu Linus Torvalds yaptı. Bu yazıda, 4.14 RC6 Linux çekirdeğinin nasıl yükleneceğine değineceğiz. Bilindiği gibi, bir Linux çekirdeğini derlemek çok zor olduğundan, Canonical, tüm çekirdek sürümlerini .deb paketleri olarak paketliyor ve bunları kernel.ubuntu.com deposu aracılığıyla Ubuntu veya Ubuntu tabanlı sistemleri kullananların kullanımına sunuyor. Bunun için, Canonical’ın kernel.ubuntu.com deposu aracılığıyla kullanıma sunduğu .deb paketlerini kullanacağız. Söz konusu işlemleri yaparken; temel olarak Ubuntu ile Linux Mint, Elementary OS, Pinguy OS, Deepin, Peppermint, LXLE, Linux Lite, Voyager gibi Ubuntu türevi dağıtımları hesaba kattığımızı hatırlatalım.

32 bit sistemler için: 4.14 RC6 Linux çekirdeği 32 bit sistemlere aşağıdaki gibi yüklenir. İlkin gerekli paketleri indiriyoruz:

cd /tmp

wget \kernel.ubuntu.com/~kernel-ppa/mainline/v4.14-rc6/linux-headers-4.14.0-041400rc6_4.14.0-041400rc6.201710230731_all.deb \

wget \kernel.ubuntu.com/~kernel-ppa/mainline/v4.14-rc6/linux-headers-4.14.0-041400rc6-generic_4.14.0-041400rc6.201710230731_i386.deb \

wget \kernel.ubuntu.com/~kernel-ppa/mainline/v4.14-rc6/linux-image-4.14.0-041400rc6-generic_4.14.0-041400rc6.201710230731_i386.deb

Şimdi 4.14 RC6 Linux çekirdeğini yükleyelim:

sudo dpkg -i linux-headers-4.14*.deb linux-image-4.14*.deb

Eğer gerek duyarsanız daha sonra çekirdeği kaldırmak için bu sayfadan yararlanabilir ya da aşağıdaki komutu verebilirsiniz.

sudo apt-get remove linux-headers-4.14* linux-image-4.14*

64 bit sistemler için: 4.14 RC6 Linux çekirdeği 64 bit sistemlere aşağıdaki gibi yüklenir. İlkin gerekli paketleri indiriyoruz:

cd /tmp

wget \kernel.ubuntu.com/~kernel-ppa/mainline/v4.14-rc6/linux-headers-4.14.0-041400rc6_4.14.0-041400rc6.201710230731_all.deb \

wget \kernel.ubuntu.com/~kernel-ppa/mainline/v4.14-rc6/linux-headers-4.14.0-041400rc6-generic_4.14.0-041400rc6.201710230731_amd64.deb \

wget \kernel.ubuntu.com/~kernel-ppa/mainline/v4.14-rc6/linux-image-4.14.0-041400rc6-generic_4.14.0-041400rc6.201710230731_amd64.deb

Şimdi 4.14 RC6 Linux çekirdeğini yükleyelim:

sudo dpkg -i linux-headers-4.14*.deb linux-image-4.14*.deb

Eğer gerek duyarsanız daha sonra çekirdeği kaldırmak için bu sayfadan yararlanabilir ya da aşağıdaki komutu verebilirsiniz.

sudo apt-get remove linux-headers-4.14* linux-image-4.14*

October 27, 2017

Linux Mint KDE Kullanıcıları İçin Kötü Haber

Linux Mint ekibi, yaptıkları açıklamayla KDE sürümünün devam etmeyeceğini doğruladı. Linux Mint 18.3'le birlikte KDE sürümü son kez bizlerle birlikte olacak. Yaptıkları açıklamada KDE'nin harika ama farklı bir dünya olduğunu, uygulamalar, ekosistem ve QT toolkit açısından bakıldığında ortak yanlarının çok az olduğunu, iyi yaptıkları ve sevdikleri şeye odaklanmak istediklerini dile

Ubuntu 18.04’ün Kod Adı ve Çıkış Tarihi Belli Oldu

Artful Aardvark’tan sonra çıkacak olan Ubuntu 18.04’ün kod adı belli oldu. Mark Shuttleworth yaptığı açıklamayla Ubuntu 18.04’ün kod adının Bionic Beaver (Biyonik Kunduz) olduğunu açıkladı. Kunduz, kunduzgiller (Castoridae) familyasından Castor cinsini oluşturan ağaçları kemirerek beslenen, su kıyılarında yaşayan kemiricilerin ortak adıdır. Yaptıkları yuvalar çok soğuk havalarda bile

F1 2017 Linux’e Gelecek

Feral Interactive, F1 2017’nin önümüzdeki hafta Linux’e geleceğini duyurdu. F1 2017, Windows için Ağustos ayında EGO Motoru 4.0 ile çıkmıştı. Linux kullanıcıları için oyun 2 Kasım’da çıkacak. Oyunda çapraz platform multiplayer desteği çalışıyor. Linux için sistem gereksinimleriyse henüz paylaşılmadı. F1 2017’nin şu anda Steam’deki fiyatı 89 TL

October 24, 2017

ReactOS 0.4.6 İncelemesi

ReactOS, ücretsiz ve açık kaynak Windows NT mimarisini temel alan bir işletim sistemi. Linux tabanlı bir sistem değil ve UNIX mimarisini kullanmıyor. ReactOS’un amacı, Windows ile uyumlu, Windows uygulamalarını ve sürücülerini sanki Windows’taymış gibi çalıştırabilmesi. Görünüş ve verdiği his anlamında da Windows işletim sistemine benzetilmeye çalışılmış. Amaç Windows kullanıcıları zorluk

Ubuntu Studio 17.10 İncelemesi

Ubuntu Studio’nun diğer dağıtımlardan farkı, isminden de anlaşılacağı gibi stüdyo ile ilgili yazılımlarla birlikte geliyor. Bu nedenle kurulum için indirmeniz gereken iso dosyasının boyutu neredeyse 3 GB civarında. Ubuntu Studio [İlk İzlenim] Bildiğiniz gibi Linux dağıtımlarını bellekten çalıştırdığınızda ilk ekranda, "kurulum yapmadan sadece deneme" ya da "kurulum yapma" gibi seçenekler

October 23, 2017

Ubuntu Budgie 17.10 İncelemesi

Ubuntu Budgie (eski adıyla budgie-remix) Ubuntu tabanlı ve Solus projesi tarafından geliştirilen Budgie masaüstünü kullanıyor. Basitlik ve şıklığı bir arada sunmayı amaçlıyor. Ubuntu Budgie [Türkçe & Donanım Desteği] Söz konusu Ubuntu olunca Türkçeleştirme ve donanım konusunda dert etmeye gerek kalmıyor.  Herhangi bir sıkıntı yaşamadım. Ubuntu Budgie [İlk İzlenim] USB bellekten

October 22, 2017

ZEN LOAD BALANCER SSL SERTİFİKA ve HTTPS(443) REQUEST FARM OLUŞTURMA – BÖLÜM 6

Loadbalancer arkasında birden fazla web sunucusu çalıştığını var sayalım ve bunların https(443) protokolü ile çalışmasını sağlayalım. Bunun için yük dengeleyici sunucumuza web server domainimiz için satın aldığımız sertifikayı yükleyeceğiz ardından https farm’ı oluşturacağız. Zaten önceki yazılarımızda farm oluşturmayı görmüştük, şimdi bir kaç yapılandırma ile https(443) olarak farm’ı yapılandıracağız. İlk olarak Manage-Certificates sekmesine geliyoruz. Ardından aşağıdaki...

Continue Reading

Linux Sunuculara Şifresiz Olarak SSH ile Bağlanma – SSH Copy ID

Normalde client makinenizden linux sunuculara ssh bağlantısı için komut satırana ssh kullanıcıadı@remoteip tıkladıktan sonra şifre istenir ve şifreyi girdikten sonra sunucuya başarılı bir şekilde login olabilirsiniz. SSH Copy ID ile sunuculara bağlanırken şifre sormadan login olabileceğiz. Bu işlemin gerekli olduğu durumlar, oluşturduğunuz script’lerde parola sorunu yaşamadan yada dosya çekip, atarken şifre problemi yaşamamak için lazım...

Continue Reading

ZEN LOAD BALANCER CLUSTER OLUŞTURMA – BÖLÜM 5

Bu bölümde servis kesintisi yaşamamak için kullanılan yöntem olarak istekleri karşılayıp yönlendiren Zen Load Balancer için de High Available yapacağız. Bu işlemi çok basit olarak Cluster yöntemi ile gerçekleştireceğiz. Bunun için interface yapılandırması önemli. Şöyle ki, iki loadbalancer için yapılandırma yapacağız. Yani iki yük dengeleyici arasında kümeleme yapacağımız için, Loadbalancer01; eth0 10.10.10.100 eth0:1 10.10.5 Loadbalancer02;...

Continue Reading

October 19, 2017

Büyük Beşli: Apple, Microsoft, Alphabet, Facebook ve Amazon

Teknoloji firmalarını heyecanla takip ediyoruz. Bill Gates’in söylediği gibi iki yılda neler yapılabileceği hakkında abartılı tahminler yapılsa da gelecek on yıl için hep düşük tahminlerde bulunuluyor. Dünya için birkaç bilgisayarın yeterli olacağını veya insanların evlerinde bir bilgisayar istemeleri için herhangi bir neden olmadığını düşünenler yanıldılar. On yıl sonra büyük veri, yapay zeka ve diğer alanlardaki araştırmaların sonuçlarının gündelik yaşamı nasıl etkileyeceği sorusuna yanıt vermek güç. Büyülenmiş gibi izliyoruz ve biz izlerken dünya değişiyor. Bir zamanlar internetin “Büyük Beşli”si olarak bilinen Apple, Microsoft, Alphabet (Google’ın ana şirketi), Facebook ve Amazon artık kapitalizmin Büyük Beşli’si olarak anılıyor. Büyük Beşli’yi takip eden IBM, Intel, Cisco gibi eski devlerin yanı sıra Airbnb, Tesla ve Uber gibi hızla büyüyen yeni şirketler de yenilikçi teknolojiler geliştirmede iddialı.

Evet, kapitalizm tüm görkemiyle ayakta. Büyük Beşli’den önce de tekel gücüne sahip büyük şirketler vardı. Fakat Rotman (2017) bu sefer durumun biraz daha farklı olduğuna dikkati çekiyor. Bazı iktisatçıların süperstar şirketler olarak adlandırdığı bu şirketler çok geniş iş alanlarında faaliyet gösteriyorlar ve birkaç kazananın her şeyi aldığı koşulları teşvik eden dijital teknolojiler kullanıyorlar. The New York Times’da yayımlanan bir anket bu şirketlerin ne kadar vazgeçilemez görüldüğünü gösteriyor. Ankette, kötü bir hükümdar sizi teknolojinin kaçınılmaz devlerinden vazgeçmeye zorlasaydı aşağıdaki listeyi nasıl sıralayacağınız soruluyor (https://www.nytimes.com/interactive/2017/05/10/technology/Ranking-Apple-Amazon-Facebook-Microsoft-Google.html, son erişim 01/07/2017):

Büyük Beşli

Benim için ilk dört sıralama önemli değil ama Google’dan (dolayısıyla Alphabet’ten) en son vazgeçerdim. Ankete Türkiye’den katılanların çoğu için ilk vazgeçilecek büyük ihtimalle Amazon olacaktır. Fakat son dört sıra için yorum yapmak zor. Telefonuna tapan Apple hayranları, işyerinde Windows’a mecbur olup başka bir işletim sistemi düşünemeyenler, Facebook bağımlıları, YouTube (Alphabet’in) izleyicileri Türkiye için bir sıralama tahmini yapmayı zorlaştırıyor.

Fakat anket sonuçları, muhtemelen katılımcıların çoğunun ABD’den olması nedeniyle çok farklı. İlk olarak Amazon’dan vazgeçebileceğini söyleyenlerin oranı sadece %6! Amazon, tüketici alışkanlıkları bağlamında önemli bir yere sahip ve bu da onu vazgeçilmez yapıyor. Ankete göre ilk vazgeçilebileceklerin sırası şöyle:

  • %56 Facebook
  • %22 Microsoft
  • %10 Apple
  • %6 Alphabet
  • %6 Amazon

En son vazgeçilebileceklerin sırası ise:

  • %38 Alphabet
  • %34 Apple
  • %13 Amazon
  • %11 Microsoft
  • %1 Facebook

Geçmişin tekelleri pek sempatik değildi. Ama Büyük Beşli’den en az birine sempati duyan çok sayıda insan var. En başta hayatı kolaylaştırıyorlar ve onlarsız bir hayat düşünmek zorlaşıyor. Kimi zaman ağ tarafsızlığı tartışmalarında olduğu gibi ifade özgürlüğünü savunucularının yanında yer almaları veya Trump’un göçmen politikasına karşı çıkmaları onları daha sempatik kılıyor (https://www.theverge.com/google/2017/1/30/14446466/google-immigration-protest-walkout-trump-googlers-unite, https://www.theguardian.com/technology/2017/jan/31/amazon-expedia-microsoft-support-washington-action-against-donald-trump-travel-ban). Bu sempati kendiliğinden oluşmuyor da olabilir; Google’ın siyaset ve iş dünyası üzerinde etkili olmak için akademisyenleri kullandığı hakkında haberler de var (http://www.cnnturk.com/bilim-teknoloji/googlea-buyuk-suclama).

Büyük Beşli’nin oldukça sıradan gelir kaynakları var (http://www.businessinsider.com/how-google-apple-facebook-amazon-microsoft-make-money-chart-2017-5). Alphabet’in gelirinin %88’i reklamlardan oluşuyor. Bu oran Facebook’ta çok daha fazla, %97. Apple, daha çok donanımdan gelir sağlıyor: %63 iPhone, %11 iMac, %10 iPad ve %11 hizmetler. Microsoft’un gelir kaynakları ise daha çeşitli. Microsoft’un en önemli gelir kaynağı %28 ile Ofis yazılımı. Ofis’i %22 ile Windows Sunucu ve Azure adlı bulut bilişim platformu takip ediyor. Bunlar dışında Xbox oyun konsolu %11, Windows %9, reklamlar %7 ve Surface %5 paya sahip. Amazon’un gelir kaynakları diğer dört şirketten daha farklı. 1994 yılında kurulan şirket, 1995 yılında amazon.com sitesinden kitap satışına başladı. Daha sonra elektronik cihazlardan gıdaya her türlü ürünün satıldığı bir perakende satış devine dönüştü. Böylece ABD’lilerin yaşamının vazgeçilmez bir parçası oldu. Gelirinin %72’sini ürün ve %18’ini medya satışından elde ediyor. Amazon denilince akla ilk gelen hızla büyüyen bir perakende satış devi olsa da Amazon aynı zamanda bulut bilişim platform sağlayıcılarının başında geliyor. Müşterileri arasında Netflix, Adobe, Airbnb, Expedia, Comcast, Vodafone gibi dünyanın önde gelen şirketleri ve CIA var. Bulut bilişim, Amazon’un gelirinin %9’unu oluşturuyor ama Amazon’un bulut pazarındaki yeri stratejik olarak da önemli.

Ancak son zamanlarda şirketlerin, özellikle de Büyük Beşli’nin, giderek artan gücü hakkındaki kaygıları ifade eden haber ve yazılara daha sık rastlıyoruz. Sorun yalnızca bir zamanlar Microsoft’un deneyip başarısız olduğu ama şimdi Google, Facebook ve Apple tarafından daha cüretkarca denenen internete hakim olma ya da onu balkanlaştırma ile de sınırlı değil. Büyük şirketler her yerde: sürücüsüz arabalar, roketler, insansız hava araçları, sesli yardımcılar, artırılmış sanal gerçeklik cihazları… Bir zamanlar bilim kurgu öykülerinde yer alan çeşitli teknolojiler birer birer gerçek oluyor. Sorun, geleceğin seçilmiş, toplumun gereksinimleri doğrultusunda teknolojik gelişmeye müdahale edebilen hükümetler tarafından değil de şirketler tarafından inşa ediliyor olması (Manjoo, 2017). Bill Gates, Mark Zuckerberg vb kişilerin hayırseverlikleri ve yaptıkları bağışlar hakkındaki haberlere çok sık rastlıyoruz. Ama şirketler, doğaları gereği kârı en çoklaştırma güdüsüyle hareket ediyorlar ve eğer toplumsal bir müdahale olmazsa “nesnelerin interneti”, “dördüncü endüstri devrimi” vb adlarla pazarlanan geleceğe de bu yön verecek.

Sosyal devlet, 20. yüzyılın özgün koşullarında, emekçi sınıfların güç kazanmasıyla ortaya çıktı ve emekçi sınıfların güç kaybetmesiyle de geriledi. Bu süreçte sosyal hizmetler kâr amacı güden hizmetlere dönüştü ve piyasaya yapılan müdahalelerde toplum yararı değil sermayenin çıkarları gözetildi. Büyük Beşli de bu koşullarda büyüyüp gelişti; hükümetler, Büyük Beşli’nin topluma zarar veren hamlelerini görmezden geldiler ve çoğu zaman müdahaleden kaçındılar. Fakat son zamanlarda, teknoloji şirketlerinin tekelleşmesi, satın almalar, sansür ve gözetim kaygıları ve ABD seçimlerinde yoğun olarak tartışılan ‘sahte haberler’de Facebook ve Google’ın rolü düzenleme ve hatta şirketlerin parçalanmasından söz edenlerin sayısını artırdı.

Bu bağlamda, Avrupa Birliği’nin (AB) Google’a “rekabet kurallarını ihlal ettiği gerekçesiyle 2.42 milyar avro ceza” (https://www.washingtonpost.com/news/the-switch/wp/2017/06/27/heres-what-you-need-to-know-about-the-google-e-u-fine/?utm_term=.f22a1a700334) vermesi önemli bir gelişmeydi. Google, arama sonuçlarını gösterirken aramada hakim konumundan yararlanıp kendi sunduğu alışveriş hizmetini üst sıralara taşıyarak rakiplerinin görünürlüğünü azaltmakla suçlanıyordu. Bu, Avrupa’da bir şirkete verilmiş en büyük cezaydı ve sonrasında Google’ın Android işletim sistemindeki konumundan yararlanarak rekabeti engellediği gerekçesiyle de cezalandırılabileceği yazıldı (http://www.hurriyet.com.tr/googlea-ikinci-buyuk-ceza-gelebilir-40511684).

AB’nin bu hamleleri ne kadar etkili olacak? Diğer şirketlerin tekelci girişimlerine karşı da harekete geçilecek mi? ABD’den de benzer bir hamle gelebilir mi? Son zamanlarda Facebook, Google ve Amazon hakkında yazılanlara göz atmak yararlı olabilir.

Facebook ve Sahte Haberler

Televizyon ABD’de 1950’lerden sonra yaygınlaşmış ve televizyon endüstrisi büyük kârlar elde etmeye başlamıştır. Her şey yolunda gibidir ama 1961’de FCC (Federal Communications Commission – Federal İletişim Kurulu) Başkanı Newton Minow, yayıncıların katıldığı bir toplantıda ilginç bir konuşma yapar. Televizyon endüstrisinden iyi para kazanılmaktadır. Fakat Minow, bu kârların kamu hizmetiyle ilgisinin olmadığını, yayınların aptalca programlar ve aldatıcı reklamlarla dolu olduğunu söyler. Minow televizyon yayınlarını ‘büyük çorak toprak’ olarak tanımlamaktadır. Televizyon, Amerika’nın en güçlü sesidir ve Amerikan toplumu üzerinde çok etkilidir. Minow, yayıncıların bu durumu önemseyerek insanları kendi dünyalarından haberdar etmelerini ister (Bergstein, 2017).

Bergstein (2017), Facebook’un son yıllardaki yaygınlığı ve toplumu biçimlendirme hırsı üzerine bu tarihsel konuşmayı hatırlatır. 16 Şubat 2017 yılında yayınladığı manifestoda (https://www.facebook.com/notes/mark-zuckerberg/building-global-community/10154544292806634/), “insanlara dünyanın daha eksiksiz bir resmini görmelerine yardımcı olmak için var olmalıyız” diyen Mark Zuckerberg bir zamanlar Minow’un televizyonculardan istediği şeyi mi yapmaktadır? Zuckerberg ağı sadece eğlence amaçlı görmemekte ve kamu hizmeti yaptığını, bunu geliştirmek istediğini savunmaktadır. Bergstein (2017), Zuckerberg’in “küresel topluluk” olarak adlandırdığı Facebook’un gerçekte tam tersini, kutuplaşmayı ve grupçuluğu artırdığını belirtmektedir. Zuckerberg de bu sorunların farkındadır, fakat bunların birkaç ince ayarla aşılabileceğini savunmaktadır. Şubat ayında yayımladığı manifestoda Facebook’taki sansasyonalizmi azaltmaya çalışacaklarını ve insanların daha iyi bilgilenmesi ve demokratik katılım sağlaması için gerekli diğer adımları atacaklarını duyurmaktadır.

Bergstein (2017), sorunun Facebook’un daha iyileştirilmesi olmadığının altını çizer. Sorun 400 milyar dolarlık bir şirketin hayatımızın her bir alanını yutarak her geçen gün daha güçlü hale gelmesidir. Minow, televizyon yayıncılığındaki sorunu rekabet yokluğuna ve gücün yoğunlaşmasına bağlamaktadır. Şimdi de iki milyar civarında aktif kullanıcısıyla Facebook tek bir sosyal ağda yoğunlaşan gücün olası sonuçlarını gösteren güzel bir örnektir. Uzun zamandır, özellikle de PRISM skandalından sonra Facebook’un gözetim uygulamaları ve mahremiyet ihlalleri eleştirilmektedir. Ancak toplumun daha geniş kesimleri, tek bir şirketin elinde yoğunlaşan sosyal ağın oluşturduğu tehdidi asıl ABD seçimlerindeki sahte haberlerden sonra fark eder. Seçim döneminde kullanıcılar Facebook hesaplarını açtıklarında aşağıdaki gibi sahte, sansasyonel haberlerle karşılaşırlar:

“Papa, Trump’u destekliyor.”

“Hillary, IŞİD’e silah sattı.”

“Hillary’nin e-postalarını sızdırdığından şüphelenilen FBI ajanı ölü bulundu.”

“Obama, Twitter’da Clinton’ı takip etmeyi bıraktı.”

Sosyal medyada yayılan sahte ve daha çok Donald Trump’u desteleyici haberlerin ABD seçiminde etkili olduğu savunulmaktadır. Özellikle Google ve Facebook’un sahte haberlerdeki rolüne dikkat çekilmektedir. Her iki şirket de sahte haber sorununu kabul etmekle beraber seçimlerde belirleyici bir etkilerinin olduğunu reddetmektedir. Ama hem Google hem de Facebook sahte haber sorununu kabul ederek algoritmik çözümler üzerinde çalışıyorlar. Bergstein (2017) Facebook’un bu çalışmasını olumlu karşılamakla beraber Zuckerberg’in “bilgilendirilmiş topluluk” hedefinin Facebook’un yapısına aykırı olduğunu savunmaktadır. Facebook’un iki milyar civarında aktif kullanıcısı vardır ama insanlar çoğunlukla gerçek hayatta tanıdıkları ve ortak yanları olan kişilerle bağlantı kurarlar. Facebook’un haber akışı (News Feed), daha sık tıklayabileceğiniz, Facebook’ta bulunmaktan mutluluk duyup gün içinde ağı tekrar ziyaret etme isteği duyacağınız ve dolayısıyla duygusal ve sansasyonel haberler göstermeye meyilli. Doğrusu, Facebook’ta kendini daha çok arkadaşların aralarında eğlenceli paylaşımlar yaptığı, farklı şehirlerdeki aileleri birbirine bağlayan bir ağ olarak görüyor. Fakat Bergstein’in (2017) da belirttiği gibi Facebook’un kendini politik katılımı destekleyen, modern zamanın agorası olarak da göstermeye çalışması kullanıcıları olabildiğinde sitede tutma hedefleriyle çelişiyor. Ayrıca, “aynı düşünce etrafında birleşen insanlara sunulan bilginin o düşüncenin etrafında bulunan sınırlı alanda kalması, aynı görüşteki düşüncenin pekiştirilerek hiç sorgulanmadan benimsenmesi ve gerçeğin kendisinin inanılmaz bir haline dönüşmesi” (http://turk-internet.com/portal/yazigoster.php?yaziid=56631) olarak tanımlanan yankı odası etkisi nedeniyle Facebook’un işi hiç de kolay görünmüyor.

Facebook kullanıcıları hakkında çok şey bilmektedir (https://www.washingtonpost.com/news/the-intersect/wp/2016/08/19/98-personal-data-points-that-facebook-uses-to-target-ads-to-you). Kullanıcının yaşadığı yer, yaşı, soyu, cinsiyeti, dili, eğitim düzeyi, çalışma alanı, etnik yakınlığı, geliri, ev sahipliği ve evinin özellikleri (tipi, değeri, metrekaresi, inşa tarihi), ev halkının kompozisyonu bilinmekte veya tahmin edilebilmektedir.

Yakın zamanda yıl dönümü olan, evinden veya ailesinden uzakta yaşayan, yeni evlenen, nişanlanan veya doğum günü yaklaşan arkadaşları olan, uzun mesafeli ilişkisi olan, yeni bir ilişkiye başlayan, yeni nişanlanan, evlenen veya taşınan, çocuk sahibi olan ve/veya bebek bekleyen, okul çağında çocuğu olan, politikayla ilgilenme olasılığı yüksek olan, muhafazakar veya liberal olan kullanıcılar listelenebilir.

Facebook, kullanıcının iş hayatı hakkında temel bilgilere sahiptir. Kullanıcının işvereni, çalıştığı endüstri, iş unvanı, ilgi alanları, çalıştığı şirketin kaç çalışanı olduğu, yönetim kademesinde yer alıp almadığı bilinebilir. Ayrıca Facebook, motosikleti olan, araba almayı düşünen (istediği marka ve modelle beraber), son zamanlarda araba parçası ya da aksamı alan, araba parçası ya da servisine ihtiyaç duyan kişileri listeleyebileceği gibi yalnızca bu kişilerin kullanmakta olduğu arabanın bilgisine (marka, model, yaş) sahip olmakla kalmaz, yeni bir araba için ne kadar harcama yapabileceklerini ve nasıl bir araba almak istediklerini de tahmin edebilir. Daha kişisel bilgileri de elde edebilmektedir. Hayır kuruluşlarına bağış yapanlar ve hayır kuruluşu tipi, kanvas oyunları oynayanlar, oyun konsolu olanlar, Facebook etkinliği yaratanlar, Facebook ödemelerini kullananlar, bir Facebook sayfası yönetenler, son zamanlarda Facebook’a fotoğraf yükleyenler, yabancı bir ülkede yaşayanlar (anavatanına göre sınıflandırarak), yeni teknolojileri benimsemekte erkenci olanlar, yatırım tipine göre yatırımcılar, kredi limitleri, bankamatik kartı kullananlar, radyo dinleyenler, yakın zamanda akıllı telefon veya tablet satın alanlar, bira, şarap veya sert içkiler satın alanlar, kıyafet alanlar, market alışverişi yapanlar, güzellik ürünü alanlar, ev ürünleri üzerine harcama yapanlar, çevrimiçi veya çevrimdışı alışverişi tercih edenler, iş veya zevk için sık sık seyahat edenler, yakın zamanda seyahat etmeyi veya taşınmayı planlayanlar listelenip reklamcılara satılır.

ABD’lilerin %64’ü Facebook kullanmaktadır. Bu oran yine Facebook’un olan Instagram için %28, Pinterest için %26, Linkedin için %28 ve Twitter için %21’dir. Bergstein (2017) hiçbirinin halkın her şeyi olmaya çalışmadığını belirtmektedir ve Minov televizyon yayıncılığı için düşündüğü gibi sosyal medyada rekabeti ve çeşitliliği savunmaktadır. Bergstein’e (2017) göre ticari olmayan alternatiflere gereksinim vardır. Ticari olmayan sosyal ağlar, kullanıcılar hakkında olabildiğince bilgi toplamak için çabalamayacaktır ve kullanıcılar arasında yeni etkileşim biçimlerini deneyimlemeye daha açık olacaklardır.

Kısacası, ABD seçimleri ve sahte haberler hakkındaki tartışmalar merkeziyetçi bir ağın içerdiği tehlikeleri gözler önüne sermektedir. ABD seçimlerinde sahte haberlerin seçimi etkilemek amacıyla, bilinçli olarak kullanıldığını düşünmüyorum. Daha çok bir algoritma kazası söz konusu gibi. Ama biz kullanıcılar bu algoritmayı bilmiyoruz ve değiştiremiyoruz. Farklı bir zamanda, farklı bir yerde bilinçli müdahaleler de söz konusu olabilir. Bergstein’in (2017) önerisini, alternatif sosyal ağların neden kurulmadığını veya kurulamadığını da ayrıca tartışmak gerekiyor.

Google ve Kamu Hizmeti Olarak Bilişim

Tekelleşme hakkındaki görüşleri tarihin tozlu sayfalarından çıkaran yalnız Bergstein (2017) değildir. Taplin (2017) de New York Times’daki yazısında ABD Başkanı Woodrow Wilson’un danışmanı olan Louis Brandeis’in büyük şirketlerin demokratik toplum için yarattığı tehlike ve sektörlerin düzenlemesi hakkındaki görüşlerini aktarır. Brandeis, düzenlemenin, eninde sonunda düzenleyicinin çürümesiyle sonuçlanacağını düşündüğünden düzenleme fikrine genel anlamda karşı durmaktadır. Bunun yerine büyük şirketlerin parçalanmasını daha akla yatkın bulmaktadır. Fakat doğal tekelleri bir istisna olarak görür. Telefon, su, elektrik ve demiryolu taşımacılığında olduğu gibi bir ya da birkaç şirketin endüstriyi kontrol etmesi daha anlamlı olabilmektedir.

Taplin (2017), bugün tartışığımız büyük şirketlerin, en başta da Google’ın, pazarın talebini iki firmanın rekabeti sonucu oluşan fiyata kıyasla daha düşük bir fiyata karşılayarak doğal tekel haline gelip gelmediğini sorgular. Eğer doğal tekel durumu söz konusuysa bunu kamu hizmeti olarak düzenlenme zamanı gelmiş midir? Taplin (2017), günümüzdeki gelişmeleri telekom sektörünün ilk günleriyle karşılaştırır. Ağı kullanan kişi sayısı arttıkça ağın kullanım değerinin artması olarak tanımlanan ağ etkisi olmadan ağ tam anlamıyla kullanışlı olmamaktadır. Nitekim binalardan farklı telefon şirketlerine ait telefon hatlarının sarktığı 1895’in ABD’sinde de bu durum yaşanmaktadır. Çünkü ortada farklı telefon şirketlerine ait ve birbiriyle uyumsuz telefon hatları vardır.

AT&T’nin (American Telephone and Telegraph) küçük operatörleri birer birer satın almasıyla, tek bir ağ kalır ve doğal tekel oluşur. Hükümet önce bu sürece göz yumar ama sonrasında FCC ile tekeli düzenler. Düzenleme, AT&T’nin kârının belirli bir oranını araştırma geliştirme faaliyetlerine ayırmasını da içermektedir. Daha sonra AT&T’nin bir alt kuruluşu olarak kurulan Bell laboratuvarları, dijital çağın temellerini oluşturan transistör, mikro çip, lazer gibi teknolojileri gelişiminde önemli bir rol oynayacaktır. Hükümet, AT&T’nin telefon tekeline izin verir ama karşılığında da şirketin elindeki tüm patentlerin Amerikan firmaları tarafından ücretsiz kullanılabilmesini sağlar ve gelecekteki patentler de cüzi bir ücretle kullanılabilecektir. Texas Instruments, Motorola ve Fairchild Semiconductor bu haktan yararlanarak ortaya çıkarlar.

Taplin (2017), AT&T ile günümüzdeki büyük BT şirketlerinin durumunun birebir aynı olmadığını kabul etmekle beraber, ortak yönlerinin kamu hizmeti sağlamak olduğunu ifade etmektedir. Telefon örneğinde olduğu gibi çok sayıda firmanın kendi altyapısını düzenlemek için yatırım yapması kaynak israfı olmaktadır. Bu nedenle, telefon gibi su, elektrik ve yol hizmetleri de kamu hizmeti olarak sunulur. Mosco’nun (2014) da belirttiği gibi bu hizmet, kamu kuruluşu veya bir şirket tarafından sunulabilir. Ancak ikinci durumda bile hizmet, kamu kuruluşları tarafından düzenlenir. 1950’lerden itibaren bilişimin bir kamu hizmeti olarak değerlendirilmesi gerektiği hakkında görüşler öne sürülmektedir. Douglas Hill The Challenge of the Computer Utility adlı kitabında bilgisayar sistemlerinin bir hizmet olarak düzenlenmesi düşüncesini daha da somutlaştırmıştır. Hill’e göre bilgisayarın veya enformasyon hizmetinin beş temel bileşeni vardır (aktaran Mosco (2014)):

  1. Sistemin temel olarak çok sayıda uzak kullanıcı tarafından aynı anda kullanılması
  2. Birçok programın eş zamanlı çalışması
  3. Kullanıcın özel bir bilgisayardan bekleyeceği gibi uzak istasyonlarda en azından aynı yelpazede yer alan olanak ve kapasitelerin kullanılabilmesi
  4. Sabit ücretli bir hizmet ve kullanıma bağlı değişken fiyatlandırma üzerine kurulu bir sistemin olması
  5. Sonsuz büyüme kapasitesi, böylece müşteri yükü arttıkça sistem çeşitli araçlarla sınırsız olarak genişleyebilmesi

Aslında dünyada birkaç bilgisayarın yeterli olacağı öngörüsü o kadar da yanlış değildir. Bulut bilişim ve tekelleşme ile çok sayıda bilgisayarın bir araya gelerek sunduğu hizmetleri tek bir bilgisayardan sunuluyormuş gibi de ele alabiliriz. Dünya sadece bir avuç şirketin elinde olan sistemlere erişen akılsız bilgisayarlarla bağlı bir ağa doğru evrilmektedir. Bu şirketler bir yandan büyük kârlar elde ederken diğer yandan 2001’den itibaren rekabeti azaltmakta ve yeni firmaların sektöre girişini zorlaştırmaktadır. Bu tekelleşme sürecine karşı Taplin’in üç temel önerisi vardır. Birinci önerisi büyük şirketlerin küçük şirketleri yutmasının önüne geçilmesidir. Google, AdMob ve DoubleClick’i, Facebook Instagram ve WhatsApp’ı, Amazon Audible, Twitch, Zappos ve Alexa gibi şirketleri satın alarak gücüne güç katmıştır. Bunun engellenmesi gerekmektedir. İkinci önerisi, Google’ın bir kamu hizmeti olarak düzenlenmesi, arama algoritması ve diğer yeniliklere ait patentlerin uygun bir fiyatla kullanıma açılmasıdır. Üçüncü önerisi ise Facebook ve Youtube gibi sitelerin kullanıcı emeğinin ürünlerini ücretsiz olarak kullanmalarına olanak veren 1998 Dijital Binyıl Telif Hakkı Yasası’ndaki ‘güvenli liman’ maddesinin kaldırılmasıdır.

Ancak Taplin (2017), Trump’ın yakın çevresinde Peter Thiel gibi teknoloji patronlarının olduğunu, ve tröst karşıtı düzenleme için dört yıl daha beklemek gerekeceğini; dört yıl sonra ise tek çözümün muhtemelen bu şirketlerin parçalanması (Google’ın DoubleClick’i ve Facebook’un WhatsApp’ı satmaya zorlanması) olacağını yazmaktadır.

Her Şeyin Dükkânı Amazon

Haziran’da Amazon, üst segment süper market zinciri Whole Foods’u almayı planladığını duyurdu. ABD’li yetkililer anlaşmayı onaylarsa Amazon 400 mağaza, kapsamlı bir tedarik zinciri ve yeni bir tüketici verisi kaynağına sahip olacak. Bileşik varlığın Amerikan pazarındaki payı yüzde 5’in altında olacak ama Khan (2017) bu satın almayla Amazon’un online pazarlarda ve dağıtımda sahip olduğu olağanüstü gücün etkisini arttıracağını belirtiyor.

Amazon hızla büyüyor ve yaşamı kaplıyor. Amazon, Walmart gibi bir mega mağaza, Apple gibi bir donanım üreticisi, Con Edison gibi bir hizmet sağlayıcı, Netflix gibi bir video dağıtıcısı, Random House gibi bir yayıncı, Paramount gibi bir prodüksiyon stüdyosu, The Paris Review gibi bir edebiyat dergisi, FreshDirect gibi bir market dağıtıcısıdır. Amazon’un kurucusu ve CEO’su Jeff Bezos aynı zamanda Washington Post’un da sahibidir. Elbette ki Amazon bu faaliyetlerinin hiçbirinde sıradan bir oyuncu değildir. Walmart’ın kurucusu Sam Walton’un hedefinde sadece dünyanın en büyük perakendecisi olmak vardır. iPod’u piyasaya sürdükten sonra Steve Jobs şarkıcılarla kayıt sözleşmesi yapmamıştır ve AT&T, iletişim kuleleri inşa edip bunları küçük telefon şirketlerine kiralamamıştır. Ama Amazon bunların hepsini yapmaktadır. Örneğin, AWS (Amazon Web Services) ile yeni kurulan firmalar için altyapı desteği sağlamaktadır (Packer, 2017). Amazon, internetteki perakende satışların %43’ünü elinde tutuyor. 2016’da ABD’deki çevrimiçi satışlarından 63 milyar dolar gelir elde etti. Bu miktar, çevrimiçi satış yapan, Amazon’dan sonraki ilk on şirketin gelirinden daha fazla. E-kitap satış piyasasının %74’ünü kontrol ediyor. ABD’de çevrimiçi giysi satışı yapan şirketlerin en büyüğü ve ülkenin en büyük konfeksiyon perakendecisi olma yolunda. Dünyanın en büyük lojistik ağına ve piyasa platformuna sahip ve bulut bilişim piyasasın en önemli şirketlerinden biri. Amazon Echo (https://www.youtube.com/watch?v=WQqxCeHhmeU) gibi yenilikçi teknolojiler üretiyor, film ve diziler yapıyor ve 20 şehirde restoranlardan yiyecek servisi yapıyor. Çizgi filmlerdeki dev ahtapotlar gibi kollarıyla her an herhangi bir yere saldıracakmış gibi duruyor. Packer’in (2016) vurguladığı gibi Amazon her şeyin dükkanı olmanın ötesine geçerek her şey olabilmek yolunda ilerliyor.

Khan (2017) şirketin bugünkü güçlü konumunu mevcut tröst karşıtı yasalarının etkisizliğine bağlıyor. Amazon rakiplerine göre daha hızlı ve ucuz ürün dağıtabilmektedir. Bu da yazının başındaki ankette görüldüğü gibi Amazon’un neden kolay vazgeçilemez ve yaygın olduğunu göstermektedir. Fakat Amazon’un rakipleri ve üreticiler için durum o kadar parlak değildir. Amazon’un genel stratejisin ilk adımı temel mal ve hizmetleri maliyetinin aşağısına satarak rakiplerinin rekabet etmesini zorlaştırmak ve oyundan çekilmeye zorlamaktır. Sonrasında fiyatları tekrar yukarı çekmektedir. Üreticiler için de durumun parlak olduğu söylenemez. Khan (2017), Amazon’u, 19. yüzyıldaki tren yollarına benzetmektedir. 19. yıllarda tren yollarını ellerinde bulunduranlar, üretici ile tüketici arasındaki ilişkiyi denetliyor, bazı üreticilere kayırarak daha avantajlı olmasını sağlayabiliyordu. Bu gücü elinde bulunduran aracılar, kendi demiryollarına bağımlı olan çiftçileri ve petrol üreticilerini vergilendiriyor; onları ulaşım araçlarından mahrum bırakarak batmalarını neden olabiliyorlardı. Amazon da farklı işkollarını birbirine bağlayarak demiryollarının bir zamanlar yaptığını yapmakla kalmıyor aynı zamanda platformuna bağımlı şirketlerle rekabet de ediyor. Hachette’le yaşadığı e-kitap fiyatlandırması tartışmasında olduğu gibi bir gecede binlerce kitabın satışını engelleyebiliyor. Ayrıca sitede kullanılan algoritmalar belirli ürünleri önceliklendirebiliyor. Günümüzde veri deyince ilk akla gelen Google ve Facebook olmaktadır. Oysa Amazon da en başından itibaren verinin öneminin farkındadır. Tüketiciler hakkındaki veriler Amazon’un en büyük gücüdür. Bu güç ve Büyük Beşli’de yer alan diğer şirketlere göre ‘gerçek dünya’yla daha doğrudan bağlantılara sahip olması Amazon’u nesnelerin internetinde öne çıkarabilir.

Khan (2017), Amazon’un Whole Foods’u satın alarak pazardaki hakimiyetini ve çıkar çatışmalarını artıracağını belirtiyor. Böylece Amazon hem fiziksel perakende pazarına doğru genişlemiş hem de çevrimiçi dünyadaki hakimiyetini artırmış olacak. Üretim ve dağıtım sürecini bir bütün olarak içinde barındıran Amazon’a karşı koymak zorlaşacak, özellikle yeni firmalar için. Khan (2017), Amazon’un tröst karşıtı yasalardaki boşluklardan yararlandığını yazıyor. Özellikle fiyatların tüketici yararına, düşük olması tröst suçlamasına karşı Amazon’un savunması oluyor. Fakat düşük fiyat geçici bir durum; Amazon’un bulut bilişim stratejisinde olduğu gibi sadece rakibi saf dışı bırakana kadar geçerli (Mosco, 2014).

Temmuz ayında internette, kısmen Amazon’un Türkiye’deki muadili diyebileceğimiz hepsiburada.com sitesinin satılabileceği hakkında haberler vardı (https://www.trendcadde.net/blog/hepsiburada-com-sirketi-satiliyor-mu/). Birkaç yıl sonra, Amazon veya benzer bir şirket Türkiye pazarına girebilir. Nesnelerin interneti rüzgarını da arkasına alarak ABD’deki gibi tüketicilerin vazgeçilmezi olabilir.

Çemberin Dışına Çıkabilmek

Bergstein (2017), alternatif sosyal ağların inşa edilmesiyle Facebook’un hakimiyetinin zayıflatılabileceğini iddia etmektedir. Taplin (2017) ise Google’un bir hizmet olarak düzenlenmesini, bu yapılmadığı taktirde birkaç yıl sonra parçalanmasının kaçınılmaz olacağını savunmaktadır. Amazon’un Whole Foods’u satın alma girişiminden sonra yazılanlarda ise tröst karşıtı yasalara vurgu vardır. Her biri sistem içi ve geçici çözümlerdir. Ama teknoloji şirketlerinin durumu biraz daha çetrefillidir.

Morozov’a (2017) göre teknoloji şirketlerinin düzenlenmesi zordur. Teknoloji şirketleri, henüz düzenlenmemiş teknolojilere başvurarak düzenlemeyi başka yollardan atlatabilmektedirler. Düzenleyicilerin taleplerine uyarak yenilgiyi kabullenmek yerine yeni iş modellerine yönelmeyi tercih etmektedirler. Google, yedi yıllık uzun bir soruşturma sonrasında, hakim konumundan yararlanarak kendi çevrimiçi alışveriş servisini aramalarda üst sıralara taşıdığı için 2.42 milyar avro ceza ödemeye mahkum edilmiştir. Bundan zarar gören küçük perakendecilerin durumu düşünüldüğünde Avrupa Komisyonu’nun kararı yerinde görünmektedir. Fakat Morozov (2017) Komisyon’un bu kararının, sorunun temeline inmekten çok uzak olduğunu belirtmektedir. Çünkü Komisyon sorunu veri platformlarının gücünün sınırlandırılması olarak algılamamaktadır. Facebook ve Google vb şirketlerin temel stratejisi elde ettikleri, işledikleri ve yapay zekaya aktardıkları veri hazinesini daha kazançlı kullanım yollarını bulmaktır. Google da geleceğini arama motoruyla elde edeceği reklamlarda değil enformasyon yoğun hizmetlerde görmektedir. Google’ın stratejisi iki yönlüdür. Birincisi, her bir kullanıcı hakkında olabildiğince bilgi toplamaya çalışmaktadır. Bunun için de doğrudan kârı ikinci plana atarak, kullanıcılardan daha çok veri sağabileceği uygulamalar sunmaktadır. Böylece yakın zamanda arama yapmadan, nerede olursak (akıllı telefonda, akıllı televizyonda veya akıllı evde) olalım Google ne arayacağımızı tahmin ederek bizim elimiz ayağımız olacaktır. Ayrıca Google, elde ettiği verilerden yararlanarak, çoğu yapay zeka üzerine kurulu ileri hizmetler geliştirmek ve bunları hükümet ve şirketlere satmak istemektedir. Böylelikle, siber saldırıları belirleme, kansere çare bulma veya yaşlanmayı yavaşlatma yarışında bir adım önde olacaktır.

Bunun yanında Morozov (2017), şirketin kullanıcılara reklam göstermeye devam edeceği ama artık bunun için e-postaları taramayacağı hakkında yaptığı duyuruya (https://www.bloomberg.com/news/articles/2017-06-23/google-will-stop-reading-your-emails-for-gmail-ads) işaret ederek Google’ın strateji değişikliğine gittiğini ifade etmektedir. Morozov’a (2017) göre bunun en önemli nedeni, artık e-postalardan elde edilen verimin azalmasıdır. Şu anda zaten çok fazla bilgiye sahiptir. Bunun yerine artık muhteşem yapay zekasından yararlanacak. Dolayısıyla arama sonuçlarındaki çevrimiçi alışveriş sitelerinin üst sıralarda çıkıp çıkmaması artık sorun olmayacak. Google arama eyleminin kendisini ortadan kaldıracak. Bu nedenle, arama ve reklamcılık işinden gelir sağlama Google’ın evriminin ilk adımıdır. Şu anki iş modeli gelecekte de kısmen devam edebilir ama yapay zeka destekli uygulamalardan elde edeceği gelir Google için daha önemli olacak (age).

Morozov (2017) bu nedenle Google’a verilen cezanın sadece 2010’ların Google’nı kontrol etmek için uygun olabileceğini, ama ne 2017’deki Alphabet ne de 2020 için yeterli olacağını savunuyor. Bu karar, Google’ın dönüşümünü hızlandırıcı bir etkiye de sahip olabilir. Avrupa Komisyonu, Google’ın asıl gücünün ve tehlikenin kaynağının veri olduğunu fark edememiştir. Veri, yapay zeka çalışmalarının yakıtı haline geliyor ve Simonite’in (2017) de vurguladığı gibi daha fazla veriye sahip şirketler, rekabette çok daha avantajlı ve alt edilmeleri oldukça zor.

Pazarın %80’ininin bir şirketin elinde olmasındansa pazar payı %20 olan beş şirketin bulunması daha iyi sonuç doğurabilir. Ama veri piyasasında durum farklıdır. Verinin %100’üne sahip bir şirket, %20’sine sahip şirketlerin yapamayacaklarını da yapabilir. Bu noktada, Morozov (2017), Taplin (2017) gibi Google’ın faaliyetlerinin bir hizmet olarak düzenlenmesi gerektiğini savunuyor gibi görünmektedir. Ama Taplin (2017) kendini AT&T örneğiyle sınırlamaktadır. Morozov (2017), bir adım daha atarak çemberin dışına çıkar ve bunun rekabet kurallarını yok saymanın ve tüm veriyi Google’a vermenin bir gerekçesi olamayacağını ekler. Morozov’a (2017) göre bir ülkenin verisi, tüm vatandaşların ortak mülkiyeti olmalıdır. Bunu kullanmak isteyenler, izlenmeli ve vergisini ödemelidir. Firmaları asıl korkutan bu olacaktır. Diğer çözüm, ceza son derece zararsız ve dönüşümü hızlandırıcı olacaktır.

Kaynaklar

Bergstein, B. (2017). We Need More Alternatives to Facebook, https://www.technologyreview.com/s/604082/we-need-more-alternatives-to-facebook/, son erişim 01/07/2017

Khan, L. M. (2017). Amazon Bites Off Even More Monopoly Power, https://www.nytimes.com/2017/06/21/opinion/amazon-whole-foods-jeff-bezos.html, son erişim 18/07/2017

Manjoo, F. (2017). Google, Not the Government, Is Building the Future, https://www.nytimes.com/2017/05/17/technology/personaltech/google-not-the-government-is-building-the-future.html , son erişim 01/07/2017

Morozov, E. (2017). To tackle Google’s power, regulators have to go after its ownership of data, https://www.theguardian.com/technology/2017/jul/01/google-european-commission-fine-search-engines, son erişim 18/07/2017

Mosco, V. (2014). To the cloud: Big data in a turbulent world. Routledge.

Packer, G. (2017). Cheap Words,Amazon is good for customers. But is it good for books?, http://www.newyorker.com/magazine/2014/02/17/cheap-words, son erişim 18/07/2017

Rotman, D. (2017). It Pays to Be Smart, https://www.technologyreview.com/s/608095/it-pays-to-be-smart/, son erişim 01/07/2017

Simonite, T. (2017). AI and ‘Enormous Data’ Could Make Tech Giants Harder To Topple, https://www.wired.com/story/ai-and-enormous-data-could-make-tech-giants-harder-to-topple, son erişim 18/07/2017

Taplin, J. (2017). Is It Time to Break Up Google?, https://www.nytimes.com/2017/04/22/opinion/sunday/is-it-time-to-break-up-google.html, son erişim 18/07/2017

 

Ubuntu 17.10 [Artful Aardvark] Çıktı

Ubuntu kullanıcıları için beklenen gün geldi. En son sürüm olan Ubuntu 17.10 Artful Aardvark çıktı. Ubuntu’nun önceki sürümleri hem 32-bit hem de 64-bit kurulum dosyalarına sahipti. Ubuntu 17.10 ile birlikte sadece 64-bit ISO’ları indirebilirsiniz.Ubuntu kullanıcılarının çoğu 64-bit sürümünü kullanıyor. 32-bit sürümünü kullananlar da genellikle 64-bit uyumlu işlemcilere sahip

October 16, 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.

October 14, 2017

Porteus Kiosk İncelemesi

Porteus Kiosk, sadece web tarayıcısı kullanmanıza izin veren, hafif bir Linux dağıtımıdır. Tarayıcının ayarları, kullanıcının yazılım indirme ve kurma işlemleri yapılmaması için ayarlanmıştır. Kiosk’u çalıştırdığınızda, seçiminize göre otomatik olarak Firefox veya Google Chrome açılır. Geçmiş kaydı tutulmaz, parolalar kaydedilmez ve güvenlik nedeniyle menüdeki çoğu ayar kapatılmıştır.

Mageia 6 İncelemesi

Mageia’nın sitesinde Türkçe dil seçeneği mevcut. Bazı yerler sanki Google Translate ile çevirilmiş gibi duruyor ama hiç olmamasından iyidir. Ayrıca Mageia 6’nın destek süresi 16 Ocak 2019’a kadar devam edecek. Mageia’nın Sistem Gereksinimleri: İşlemci: herhangi bir AMD, Intel veya VIA işlemci; Hafıza (RAM): 512MB en az, 2GB önerilen Depolama (HDD veya SDD): En ufak kurulum için 5GB,

October 12, 2017

PhpIpam Versiyonu Nasıl Yükseltilir – How to Upgrade PhpIpam

Php Ipam’ı git üzerinden indirip kurmuştum, upgrade işlemi de git ile daha basit olacağı için aşağıdaki şekilde upgrade gerçekleştirebiliriz. Tabi panele bağlandığımızda versiyonu yükseltmemiz gerektiği uyarısını önceden alıyorduk. Sunucuya login olduktan sonra aşağıdaki komutla “/var/www/phpipam/” gidiyoruz. > cd /var/www/phpipam/ Daha sonra git komutu ile hali hazırdaki phpipam versiyonunu kontrol edelim. > git describe –tags Ardından...

Continue Reading

GNOME Twitch Nedir? Nasıl Kurulur?

Linux’te Twitch yayınlarını kolay bir şekilde izlemek istiyorsanız ihtiyacınız olan yazılım GNOME Twitch. Uyarı: Manjaro’da GNOME Twitch’in en son sürümü var. Çökme gibi bir sorunla karşılaşmadım. Fakat Linux Mint’e kurulan sürüm eski olduğundan çökme sorunları var. GNOME Twitch Kurulumu Nasıl Yapılır? GNOME Twitch’i resmi depodan kurmak için aşağıdaki komutu kullanın. sudo apt

October 11, 2017

Zorin OS 12.2 [Lite & Core] İncelemesi

Zorin OS’un birkaç farklı sürümü bulunuyor. Bunlar Core, Lite, Business, Education ve Ultimate. Ultimate sürümü için ücret ödemeniz (€19) gerekiyor. Ultimate sürümünün içerisinde 20’den fazla oyun, arkaplanlar, macOS, Unity ve Gnome 2 gibi farklı masaüstü şablonları, en iyi iş ve medya uygulamaları ve Zorin’in sağladığı destek bulunuyor.  Ben uzun uzun yazdım ama kısacası değmez. :) Zorin OS

October 10, 2017

Ubuntu Kylin 17.04 İncelemesi

Ubuntu Kylin, denemeyi istediğim Linux dağıtımlarından biriydi. Daha önce Ubuntu Kylin ile ilgili yazılar da yazmıştım. Fakat ne yazık ki umduğum gibi çıkmadı. Not: Bu yazıyla birlikte, bundan sonra Linux dağıtımlarıyla ilgili inceleme yazıları da yazmaya çalışacağım. İşletim sistemlerinin nasıl kurulacağıyla ilgili resimli anlatımlar olmayacak. Zaten Linux dağıtımlarının kurulum aşamaları

Knoppix 8.1 İncelemesi

Eskiden Knoppix, dergilerle birlikte verilirdi. Uzun zamandır dergi almadığım için hâlâ veriliyor mu bilemiyorum. O zamanlar hep CD’lerden kullanıyorduk. Bu yüzden Knoppix’in benim için ayrı bir yeri vardır. Neyse konumuza dönelim. 4.2 GB’lık Knoppix’i USB belleğe kurulumunu yaptıktan sonra, bilgisayarı bellekten başlatılırken açılışta knoppix64 lang=tr yazarak çalıştırmanız gerekiyor. Aksi

Cacti LDAP(FreeIPA) Yapılandırması

Cacti’yi opensource LDAP ortamına dahil etmek için internal admin user‘ı ile login olduktan sonra Console/Configuration/Settings/Authentication sekmesine gidip aşağıdaki görseldeki gibi yapılandırıyoruz. Yani LDAP server IP bilgisi yada Domain name ile port bilgileri giriyoruz. Ardından Group Distingished Name (DN), Search Base, Search Filter, Search Distingished Name (DN), Search Password bilgilerini doğru girdiğimizden emin olup Save butonuna...

Continue Reading

Pfsense LDAP(FreeIPA) Yapılandırması

System/User Manager/Authentication Servers menüsünden aşağıdaki gibi Add butonuna basıyoruz. Ardından Descriptive name, Type, Hostname or IP Address, Port value, Base DN, bilgileri aşağıdaki screenshottaki gibi yapılandırın. Daha sonra sayfanın alt kısmında kalan uid, cn, dc, bind user ve şifre kısmını yine aşağıdaki gibi yapılandırıp Save tıklayın. Artık Pfsense ile başta vpn olmak üzere Authentication için...

Continue Reading

October 08, 2017

Yarock Nedir? Nasıl Kurulur?

Yarock, albüm kapağı olan müzik koleksiyonunuz için oluşturulmuş, müziklerinizi dinleyebileceğiniz Qt tabanlı bir yazılımdır.  Yarock Player Kurulumu Nasıl Yapılır? Linux Mint ve Ubuntu tabanlı dağıtımlarda kurulum yapmak için aşağıdaki komutları terminalde çalıştırın. sudo add-apt-repository ppa:ubuntuhandbook1/apps sudo apt-get update sudo apt-get install yarock Manjaro ve Arch

October 04, 2017

C++ Smart Pointers - Akıllı İşaretçiler

C++'da new ile atanan alanların yönetimini manuel olarak yapmamız gerekiyor.
Garbage collector olmadığı için üretilen nesnelerin delete ile silinmesi gerekiyor.
Bu durum gözden kaçırmalarla dangling pointer, memory leak vb. bellek problemlerine sebep olabilir.

Bellek atamaları konusunda daha temkinli olmak için C++ tarafından önerilen yöntem ise smart pointers (akıllı işaretçiler). Bu işaretçiler aslında bir sınıfın nesneleri olarak üretiliyor ve etki alanlarının dışına çıktıklarında sınıflarında bulunan yıkıcılar (destructor) tarafından otomatik olarak siliniyor. Bu sebeple ürettiğimiz objeleri endişe duymadan kullanabiliriz :). Smart pointer'ların bir diğer amacı ise ham (raw, built-in) işaretçilerle aynı söz dizimine sahip olarak kullanılmaktır (-> ve * operatörleri).

Smart pointer'ları std kütüphanesinden alacağımız için #include <memory> 'yi eklemek yeterli.
Bu yazıda auto_ptr artık kullanılmadığı için shared_ptr, weak_ptr ve unique_ptr 'den bahsedeceğim.

== shared_ptr == 
En kapsamlı akıllı işaretçidir. Kullanımı ham işaretçilere en çok benzeyendir. Bir shared_ptr oluşturulduğunda içerisinde referenced-counter adında iki farklı sayaç tutan bir yapı oluşur. Bu sayaçlardan birisi weak_ptr'leri, diğeri ise shared_ptr'leri tutar.

class Foo { ...... };
shared_ptr<Foo> sp1(new Foo);

Buradaki gibi üretildiğinde; shared_ptr, manager obj. ve managed obj. olmak üzere üç tane nesne oluşur.
Bu shared_ptr'ye yeni spr'ler (shared pointer) eklendikçe share sayacı, weak_ptr'ler eklendikçede weak sayacı artar. Aynı şekilde silindikçe de azalır. Ortamda en az bir spr varsa, managed object hayatta kalır. manager objenin ayakta kalması için ise en az bir wpr (weak pointer) ya da spr'nin olması yeterlidir. Eğer ortamda hiç spr yok ama wpr var ise managed obj. silinir, bu objeye spr eklendiğinde yeninden managed obj. oluşur.
shared_ptr'ler, ham işaretçiler gibi dereference edilebilir (*) ve -> ile fonksiyonlarına erişilebilir.

Bir shared_ptr'ye başka shared pointer'lar ve weak pointer'lar eklendikçe durumu aşağıdaki gibi olacaktır:

class Thing {
public:
void defrangulate();
};
shared_ptr<Thing> find_something();
shared_ptr<Thing> do_something_with(shared_ptr <Thing> p);
void foo() {
shared_ptr<Thing> spr1(new Thing);
shared_ptr<Thing> spr2 = spr1;
shared_ptr<Thing> spr3(new Thing);
spr1 = find_something();
do_something_with(spr2);
spr3->defrangulate();
cout << *spr2 << endl;
spr1.reset(); // decrement count, delete if last
spr2 = nullptr; // convert nullptr,  to an empty shared_ptr and decrement count
}
Yukarıdaki örnekteki gibi shared_ptr'yi başka bir spr'ye kopyalarak sayacı bir artırabiliriz. Smart pointer'ları delete ile silmeye çalışmak derleme hatasına neden olacaktır ancak .reset() ile sayacı bir azaltabilir ya da başka bir spr olarak atayabiliriz. .use_count() ise aynı managed obj.'ye kaç tane shared_ptr'nin işaret ettiğini gösterir.

Bir smart pointer'ı, direkt olarak raw pointer'a atayamayız.
shared_ptr<Thing> sp;
Thing *raw_ptr = new Thing;
sp = raw_ptr; // compile error!!!!!!!!
Shared pointer'dan, raw ptr'yi elde etmenin tek yolu .get() kullanmaktır.
Kalıtımda da herhangi bir problem olmadan aşağıdaki gibi kullanabiliriz:

class Base {};
class Derived: public Base {};
….
shared_ptr<Derived> dp1(new Derived);
shared_ptr<Base> bp1 = dp1;
shared_ptr<Base> bp2(dp1);

shared_ptr<Base> bp3(new Derived);

pointer'lar arasında dönüştürme işlemini static_pointer_cast kullanarak yapabiliriz.
shared_ptr <Base> baseptr(new Base);
shared_ptr<Derived> derived_ptr;
derived_ptr = static_pointer_cast<Derived>(base_ptr);
Artık derived_ptr, base_ptr oldu.

İki shared_ptr'yi ==, != operatörleri ile karşılaştırabiliriz. Aynı şekilde if (spr) {..} true dönerse, spr bir objeye işaret ediyor demektir.

Örn. spr3.reset(); dedikten sonra .use_count() sıfır döndürmeye başladıysa, if (spr3) {...} false dönecektir.

Not1: Aynı nesneye işaret eden raw ve smart pointer'ı aynı anda kullanmak tavsiye edilmez, aynı nesneyi iki kez silmeye ya da dangling pointer'a sebep olabilir.

Not2: shared pointer üretirken new ile üretmek iki kere alan tahsisi yapmaya neden olacak ve daha maliyetli olacaktır (İlki new için, ikincisi shared pointer için). Bunun yerine make_shared ifadesini kullanarak bu büyük alan tahsisini tek seferde yapmaya indiregeyebiliriz.

shared_ptr <Thing> spr(new Thing); // two allocations
shared_ptr <Thing> sp(make_shared<Thing>()); // only one allocation

== weak_ptr ==
weak_ptr'ler ancak başka bir weak_ptr ya da shared_ptr sayesinde var olabilirler. Ait oldukları nesnenin yaşam süresine etki etmezler. Dereference (*) etme ve -> operatörü weak_ptr için tanımlı değildir. Bu sebeple weak_ptr'ler zayıf referanslardır (weak reference), genelde ait oldukları shared_ptr'nin hala geçerli olup olmadığını kontrol etmek ya da shared_ptr'ler arasında döngü oluşturan referansları (cycle reference) kaldırmak için kullanılırlar.
.reset() ile içi boşaltılabilir ancak nullptr ataması yapmak mümkün değildir.
weak_ptr'den shared_ptr elde etmek için .lock() kullanılır.
shared_ptr<Thing> sp2 = wp2.lock();
shared_ptr<Thing> sp(new Thing);
weak_ptr<Thing> wp1(sp); // construct wp1 from a shared_ptr
weak_ptr<Thing> wp2; // an empty weak_ptr - points to nothing
wp2 = sp; // wp2 now points to the new Thing
weak_ptr<Thing> wp3(wp2); // construct wp3 from a weak_ptr
weak_ptr<Thing> wp4 = wp2; // wp4 now points to the new Thing

shared_ptr konusunda gördüğümüz shared pointer'ları birbirine atama işlemi döngü referanslarına sebep olmaz. Bu sebeple weak_ptr kullanmak gerekmez.
shared_ptr<Thing> p1(new Thing);
shared_ptr<Thing> p2 = p1;
shared_ptr<Thing> p3 = p2;
shared_ptr<Thing> p4 = p3;

Yukarıda oluşan sadece aynı nesneye referans eden birden çok pointer olmasıdır. Döngü referansları için buradaki örneği inceleyebilirsiniz. Burada örnek çok açık ve temel görünüyor. Muhtemelen çok daha büyük kod bloklarında daha karmaşık bir şekilde döngülerin oluşmasına sebep olunuyordur diye düşünüyorum :). Bu sebeple smart pointer'ları kullanırken dikkatli olmak gerek.

weak_ptr'ler ile dangling pointer'lara engel olma:
shared_ptr<int> sptr;
*sptr = 10;
weak_ptr<int> wptr;
wptr = sptr;
sptr.reset();
.....
..
if (wptr.lock()) { ... }
 // burada direkt olarak sptr üzerinden
 //kullansaydık içeriği boş olan bir pointer kullanmış olacaktık

weak pointer'larda önemli durumlardan bir diğeri ise this objesinin kullanımı. Tamamen ham işaretçilerle kullanımında bir problem çıkmazken, akıllı işaretçilerde problem oluşabilir.
class Thing
{
    public:
        Thing() {cout << "Thing....\n";}
        ~Thing() {cout << "~Thing....\n";}
        void foo();
};

void set_x(shared_ptr<Thing> ptr) {
   ....
}

void Thing::foo()
{
    cout << "Thing::foo() ... \n";
    shared_ptr<Thing> sp(this);
    set_x(sp);
}

int main()
{
  shared_ptr<Thing> t2(new Thing);
  t2->foo();
 ...
}
Burada this raw objesinden yeni bir shared_ptr daha üretiliyor ve bu raw obje aslında daha önceden başka bir shared pointer için kullanılmış. Bu durumda this'in shared_ptr'si silindiğinde, t2 de silinmiş olacak ve t2 silinmeye çalışıldığında zaten silinmiş bir obje tekrar silinmeye çalışılıyor olacak..
Bunu önlemek için kullanılan ifade ise: enable_shared_from_this
class Thing: public enable_shared_from_this()
{
    public:
        Thing() {cout << "Thing....\n";}
        ~Thing() {cout << "~Thing....\n";}
        void foo();
};
...
void Thing::foo()
{
    cout << "Thing::foo() ... \n";
    shared_ptr<Thing> sp = shared_from_this();
    set_x(sp);
}
...

== unique_ptr ==
unique_ptr'de etki alanının dışına çıkıldığında işaret edilen obje silinir. shared_ptr'ye biraz benziyor ancak referenced-counter yok, bu sebeple daha az maliyetli. Sahiplik hakkı ise objeye özel, paylaşımlı bir yapı yok. Copy construction ve copy assignment olmadığı için bir unique_ptr'yi başka bir unique_ptr'ye atayamayız ya da kopyalamayız ancak sahipliği fonksiyondan geri döndürerek bir başka işaretçiye taşıyabiliriz.
unique_ptr<Thing> p1(new Thing);
unique_ptr<Thing> p2(p1); // error, copy construction not allowed
unique_ptr<Thing> p3;
p3 = p1; // error, copy assignment not allowed
..

unique_ptr<Thing> create_unique_ptr()
{
  unique_ptr<Thing> local_ptr(new Thing);
  return local_ptr;
}

unique_ptr<Thing> uptr;
uptr = create_unique_ptr();

Ya da move() fonksiyonu kullanarak da sahiplik hakkı taşıyabiliriz.

Kaynaklar:
http://umich.edu/~eecs381/handouts/C++11_smart_ptrs.pdf
https://cppturkiye.wordpress.com/2016/01/25/c11-zeki-akilli-gostericiler-smart-pointers/

October 02, 2017

Özgür Web Teknolojileri Günleri [2017]

Linux Kullanıcıları Derneği‘nin, Yeditepe Üniversitesi ev sahipliğinde düzenlediği Özgür Web Teknolojileri Günleri 2017, 11-12 Kasım’da yapılacak. Özgür Web Teknolojileri Günleri Nedir? Linux Kullanıcıları Derneği tarafından yılda bir kez düzenlenir. Özgür web teknolojileri ile ilgilenen herkesin buluşma yeridir. Toplumun her kesimine uygun düzeyde, tanıtıcı ve teknik seminerler yapılır.

October 01, 2017

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

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

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

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

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

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

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

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

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

September 29, 2017

Windows Ortamlarda MTU değerini Görüntüleme Ve Değiştirme

Herhangi bir Windows Sürümünde (7, 8, 10, Server 2008, Server 2012 vs.) Command Promt(Komut istemi) uygulamasını Administrator mod‘da çalıştırın. MTU değerini ilk önce görüntülemek için aşağıdaki komutu yazıp enter’a basın. > netsh interface ipv4 show subinterface Yada aşağıdaki komutu da kullanabilirsiniz. > netsh interface ipv4 show interface MTU değerini set etmek (değiştirmek) için aşağıdaki komutu...

Continue Reading

September 27, 2017

WallpaperDownloader Nedir? Nasıl Kurulur?

WallpaperDownloader, açık kaynak Java tabanlı bir arkaplan indirme yazılımıdır. Aynı zamanda indirdiğiniz arkaplanları yönetebilirsiniz. WallpaperDownloader ile Wallhaven, Devianart, Bing gibi sitelerden, belirlediğiniz anahtar kelimelere ve çözünürlüklerini de belirterek arkaplan indirebilirsiniz. İndireceğiniz arkaplanların süresini de belirleyebilirsiniz. Yani mesela “Her 10 dakikada 1

Microsoft, OSI’ye Premium Sponsor Oldu

Birkaç yıldır Microsoft’un Linux ve Açık Kaynak’a daha fazla destek verdiğini görüyoruz. Hatırlarsanız geçtiğimiz sene Microsoft, Linux Vakfı’na Platinum Üye olarak katılmıştı. OSI (Open Source Initiative) dün paylaştığı yazıyla Microsoft’un Premium Sponsor olduğunu duyurdu. OSI’e Premium Sponsor olanlar arasında Google, IBM, HP Enterprise, Facebook, GitHub gibi büyük isimler var.

Feeds