DNS, DPI ve VPN nedir?

AKP, pislikler ortaya saçılmasın diye twitter'ı yasaklamaya çalışıyor. Öyle görünüyor ki seçimlerden sonra da özgürlüklere baskı devam edecek. Ülkemizdeki herkes birer ağ uzmanı oldu neredeyse, ama gerçekte DNS, VPN ne anlama geliyor? Hükümetin son sansür yasası ile hazırlıklarını bitirdiği Deep Packet Inspection, yani DPI, neler getiriyor?

DNS Nedir?

Önce temelden başlayalım, ve basitleştirerek anlatayım. Google Chrome tarayıcısında adres çubuğuna www.google.com yazdığınızda bilgisayarınızın ilk yaptığı işlerden biri, DNS sunucusuna gidip bu web sayfasının bulunduğu bilgisayarın adresini almak olur. Bu adres, tahmin ettiğiniz üzere IP adresidir ve noktalarla ayrılan 4 tane rakamdan oluşur.

BTK'nın uzun zamandır yaptığı sansür DNS üzerinden çalışıyordu. Örnek olarak twitter.com adresine girmek istediğinizde varsayılan olarak TTNET DNS sunucularını kullanıyorsunuz. TTNET ise size twitter'ın gerçek IP adresi yerine mavi sansür sayfasının bulunduğu IP adresini bilgisayarınıza iletiyor. Bu yüzden siz twitter sayfası yerine sansür sayfasına ulaşmış oluyordunuz.

Bunu alt etmek çok zor değil. Zaten 2 seneden fazla devam eden youtube yasağı sırasında halkımız DNS uzmanı olmuştu. 8.8.8.8 veya 8.8.4.4 şeklindeki sansür yapmayan google DNS sunucuları kullanınca twitter'a erişebilir olduk.

Bu sabahtan itibaren Google DNS sunucuları da yasaklandı. Bizim bilgisayarımız twitter.com adresinin IP numaralarını isterken çeşitli paketler yolluyordu. BTK, bu sabahtan itibaren bu paketlerin geçmesini engellemeye başladı. Bundan dolayı tekrar twitter'a girememeye başladık.

OpenDNS, Yandex ve daha bir çok kurumun DNS'leri halen kullanılabilir. Ancak DNS adreslerini değiştirmesini bilmeyen pek çok insan var, bunun yanında mobil cihazlarda bazen DNS değiştirmek çok çok zor olabiliyor.

DPI Nedir?

Son çıkan yasa ile toptan site kapatmak yerine belirli adresleri hızlıca kapatmanın hukuku dayanağı yapıldı. Ancak adres bazlı yasaklar teknik açıdan çok zor ve mahremiyet yönünden çok sakıncalı. Adres bazlı filtreleme yapmak için kablodan geçen tüm paketlerin içeriğine bakmak ve eğer sansürlenmek istenen adres varsa o paketleri geçirmemek gerekiyor. Eğer herhangi bir şifreleme yöntemi kullanmıyorsanız kredi kart bilgilerinizden e-postalarınıza bir çok konuda devletin bizi gözetliyor olması anlamına geliyor bu. Aynı zamanda internetimizin de yavaşlaması demek bu ve ben son zamanlarda sıkça karşılaştığım bağlantı ve SSL hatalarının bundan olduğunu düşünüyorum.

VPN Nedir?

Bu noktada VPN sahneye çıkıyor. VPN özel bir ağ yazılımı sayesinde internete çıkışlarınızı belirli bir bilgisayardan gerçekleştirmeniz anlamına geliyor. Örnek olarak ABD'de bulunan bir VPN sunucusu kiraladığınızda internet bağlantınız o bilgisayar üzerinden gerçekleştiriliyor. Twitter'a ABD'den bağlanıyormuş gibi görünüyorsunuz ve dolayısıyla Türkiye'deki sansürden etkilenmiyorsunuz. Eğer kişisel bilgisayarınız ile VPN sunucusu arasında şifreleme yöntemi kullanıyorsanız, o zaman büyük biraderin gözlerinden kaçmış oluyorsunuz. Tabii yine kesin kurtuluş yok, eğer bir dava söz konusu olur ve VPN hizmeti aldığınız servise mahkeme kararı giderse bu şirket sizin bilgilerinizi devlete verebilir. Yine de yasaklardan kurtulmak için iyi bir seçenek.

İnternette bir çok VPN hizmeti sağlayan şirket var. Bunlara bir göz atmanızı öneriyorum. AKP'nin kasetleri çıkıp pislikler ortaya saçıldıkça özgürlüklerin üzerine daha fazla gideceklerdir diye düşünüyorum. "Hiçbir korkuya benzemez halkını satanların korkusu", değil mi?

Google IO ve Mobil Gelecek

Google her sene gelistiriciler icin bir konferans duzenliyor. Bu konferansin adi input/output'a yani girdi/cikti'ya gonderme yapmak icin Google IO konulmus. Yani Google gelistiriciler ile bir araya geliyor ve bu iki grup arasinda bir geri besleme oluyor. Tabi olay sadece Google ve gelistiriciler arasinda degil. Google dunyanin en etkili teknoloji sirketi ve "bu dunyada ben de varim" diyen tum sirketler bu konferansta boy gosteriyorlar. Buyukce bir alanda Amazon'dan tutun Facebook'a veya donanimcilardan HTC ve Samsung gibi firmalara kadar buyuklu kucuklu bircok firma en son urunlerini ve teknolojilerini tanitiyorlar. Bu sene ben de teknoloji dunyasinin bu en onemli bulusmasina katilma firsati buldum ve Mayis ayinin bir kismini San Francisco'da gecirdim.


Google IO'ya bu sene mobil sistemler ve HTML5 teknolojileri damgasini vurdu bence. Cep telefonlari giderek akilli telefonlara donusuyorlar; nerede oldugunuzu ve aliskanliklarinizi ogrenip size en iyi onerileri sunuyorlar. Zaten yeni akilli telefonlarin hepsi birer algilayici deposu. GPS'den accelerometer'a, pusuladan kablosuz baglanti yongalarina kadar her sey var. Buna bir de Nexus One'daki gibi 1GHz'lik islemciyi ekleyince birkac sene onceki dizustu bilgisayarlardan daha guclu ama cebinizde tasiyabileceginiz bir alet ortaya cikiyor.

Mobil sistemler alani cok buyuk, ileride cok fazla para edecek bir alan; ve tam da bu yuzden cok buyuk bir rekabet yasaniyor. Donanim alaninda Apple pazara ilk giren firma oldugu icin iPhone ve iPod Touch gibi urunleri ile lider konumunda. Google, Android isletim sistemini gelistirip bedava vererek bu ekosistemde yerini almak istiyor. HTC gibi eskiden OEM urunler ureten bir firma artik kendi orijinal tasarimlarini yapip kendi markasiyla satabiliyor.


Burada Nokia ve Microsoft gibi eskinin dev firmalarindan bahsetmek gerekiyor. Bu iki firma da geleneksel yollardan zengin oldu (ilki ozelliksiz cep telefonlarindan, ikincisi masaustu isletim sistemlerinden) ve halen bunlardan ekmek yiyorlar. Pazarin degisimi ise bu iki firmanin da degismesini gerektiriyor. Nokia akilli telefon uretmeye ve Intel ile Maemo'nun yerini alacak bir isletim sistemi gelistirmeye basladi bile. Microsoft da benzer bir sekilde web'den calisan ofis paketi sunmaya basladi ve cloud computing konularinda Azure gibi servisler acti. Ama bu iki firmanin da daha gidecek cok yolu var. Zaten zor durumda olduklarini patent davalarina bel baglamalarindan da gorebiliyoruz. Nokia, iPhone yuzunden Apple'a dava acti. iPhone'daki erken baslama avantajini kaybetmek istemeyen Apple da HTC firmasina (ve aslinda Android gelistiricisi Google'a) dava acti. Diger taraftan Microsoft da HTC firmasindan yuklu bir patent parasi almaya basliyor. Dunya cok ilginc gercekten; Microsoft Android isletim sisteminden, yaraticisi Google'dan fazla para kazaniyor.

Diger bir rekabet de tarayici alaninda yasaniyor. Google IO'da Chrome muhendislerinin ozet olarak soyledikleri sey su:

Biz Google Chrome'u diger tarayici ureticilerini uyandirmak, onlari hizlandirmak icin gelistiriyoruz. "Web'de su da olmali, tarayicilar sunu da yapabilmeli" diyorsaniz bize bir hata raporu yazin, eger mantikli bir istekse bunu tarayiciya ekleyebiliriz.

Apple Flash'i kendi platformunda istemediginden dolayi Safari ve Webkit'e cok buyuk onem veriyor. Firefox ve Opera da keza surekli kendilerini gelistiriyorlar. Burada esamesi okunmayan tek buyuk uretici Microsoft. Google IO'da ozellikle farkettigim konu Microsoft'un ve Internet Explorer'in mobil dunyada artik dikkate alinmamasi oldu. Internet Explorer'in geriligini dusununce bunun cok iyi bir gelisme oldugu gorulebilir. Bu ayni zamanda Microsoft'un geleceginin Steve Ballmer ile pek de parlak olmadigini gosteriyor. Yani MS teknolojilerini ogrenmeyi dusunuyorsaniz bir daha dusunun derim.

Google, Chrome ile web'i cok iyi anladigini gosteriyor. Otomatik ve sik guncellemeler bunun en iyi gostergesi. Chrome, tarayicilar arasinda "build number" ile gelen tek tarayici. Benim Ubuntu bilgisayarimda surum numarasi 5.0.375.55 diyor :) Diger tum tarayicilarin surum numaralari son kullaniciya yonelik kisaltilmis bir surum numarasindan ibaret. Bu sayidan gordugumuz diger bir nokta ise surumun ana numarasinin 5 olmasi. Chrome cikali 2 sene olmadi ama 5 tane ana surum cikardilar bile. Chrome'un diger bir ozelligi Windows'da size sormadan otomatik olarak kendini guncellemesi, bu da cok buyuk bir gelisme. Buna karsilik Microsoft ise daha ne zaman cikacagi belli olmayan bir Internet Explorer 9'u insanlara gosterip duruyor. Aradaki fark bu. Birisi web'i anlayip sik guncellemelerle tarayicisini gelistirirken digeri her seyin bitmesini bekliyor.


Google IO'da benim cok ilgimi cekmeyen bir diger gelisme (TV'den nefret ederim) ise Google TV oldu. Internet artik yatak odaniza kadar giriyor, internetteki icerigi (dizi/film/klip vs) buyuk ekranli televizyon setlerinizden izleyebileceksiniz. Turkiye'ye ne zaman gelir bir fikrim yok ama :)


Tarayicilar artik isletim sistemimiz oluyorlar. Cogu insan bilgisayarlarini sirf tarayicilarini calistirip internete baglanmak icin kullaniyor. Masaustu uygulamalar yerine cok daha zengin ve isabetli icerik sunabilen web uygulamalari tercih ediliyor. Teknoloji dunyasi bir devrimin esiginde, bu yuzden bu heyecan.

Web Teknolojileri Nereye?



Bugün dışarıdaki harika havaya rağmen ODTÜ Teknokent'teki sunumuma gelen herkese teşekkürler. Sunumumu yukarıya koyuyorum, ancak konuşma odaklı bir sunum olduğu için pek işinize yaramayabilir. Sunumumu yazılarla doldurmak istemedim :) insanları konuşmaya odaklanmaya zorlamak daha iyi sanırım.

Bir de şahsi fikrim, onca saçmalığa rağmen bu ülkede duruyorsak bir katkıda bulunmamızın gerekliliği. Bilgiyi paylaşmalı, biz de eğitimli kesim olarak katkıda bulunmalıyız. Web sektörünün gelişmesi herkesin işine gelecektir.

Google Chrome'da Arama Kısayolları

Bu yazıda Google Chrome kullanarak nasıl hızlı aramalar yapabileceğinizi anlatacağım. Örnek arama motoru olarak Türk Dil Kurumu'nun Güncel Türkçe Sözlüğünde nasıl arama yapabileceğinizi anlatacağım, ama yazımı başka arama motorları için de kolaylıkla uygulayabilirsiniz.

Önce şunu aradan çıkartayım, web tarayıcısı olarak Google Chrome kullanacağız (Google Chrome indirin). Eğer hala Internet Explorer kullanıyorsanız bilgisayarınızdaki virüsleri hak ediyorsunuz demektir, lütfen okumayı keserek başka bir siteye gidin ve virüslerle yaşamayı öğrenin :) (sert oldu ama gerçekler acıdır). Ve hayır, bilgisayarınızdaki virüsleri temizlemek istemiyorum.

Google Chrome çok hızlı ve güvenli bir tarayıcı, arama motorları ekleme özelliği ise bir diğer harika tarayıcı olan Firefox'dan daha da kolay. Öncelikle hızlı arama yapmak istediğimiz web sitesine gidip bir prova yapıyoruz. TDK kullanacağımızı söylediğime göre, önce TDK web sayfasına gidiyorum ve örnek bir arama yapıyorum, kullanacağım kelime "manifesto". Güncel Türkçe Sözlük'te kelimemi yazıp arama yapınca beni yeni bir sayfaya yönlendiriyor ve kelimenin anlamını açıklıyor. Web tarayıcınızın adres çubuğundaki yeni web adresini kopyalıyoruz, şuna benzer bir adres olmalı şimdi: http://www.tdk.gov.tr/TR/Genel/SozBul.aspx?F6E10F8892433CFFAAF6AA849816B2EF4376734BED947CDE&Kelime=manifesto. Sitenin böyle salak bir adrese sahip olması yeteneksiz çalışanlarının sayesinde bu arada, ama bu şu anki konumuz değil, devam edelim.

Adres çubuğundaki adresi kopyaladıktan sonra iş Chrome'a bu adresi tanıtmaya kalıyor. Menüden "Options" seçeneğine tıklıyoruz ve tarayıcı ayarları penceresini açıyoruz. Bu pencere şuna benzer olmalı:



Buradan "Default Search: Google" yazısının yanında bulunan "Manage" butonuna tıklıyoruz ve yeni bir pencere ile karşılaşıyoruz. Bu pencerede var olan bazı arama motorları var. Bazıları Google Chrome ile gelirken bazılarını ise Google Chrome bizim internet gezinimlerimizi inceleyerek akıllılık edip eklemiş.




Biz buraya TDK'nın sitesini ekleyeceğiz. Bu penceredeki "Add" butonuna basın. Name kısmına hatırlatıcı bir isim (ben "TDK GTS" yazdım), "keyword" kısmına hızlı arama yaparken kullanacağınız kısa bir anahtar kelime ("tdk" gibi)yazın ve URL kısmına da az önce kopyaladığınız web adresini yapıştırın. Şimdi burası önemli, URL'yi biraz değiştirmemiz gerekiyor, URL'nin en sonundaki arama yaptığımız kelimeyi silip onun yerine %s yazıyoruz. Kutudaki URL şuna benziyor yani: http://www.tdk.gov.tr/TR/Genel/SozBul.aspx?F6E10F8892433CFFAAF6AA849816B2EF4376734BED947CDE&Kelime=%s



Bu URL'yi baştan verebilirdim ama size balık tutmayı öğretmek istedim, hem TDK'nin pek zeki bilgisayarcıları bu salak URL'yi ileride bir gün değiştirirlerse bu yolu baştan takip edip arama motorunu tekrar oluşturabilirsiniz. Veya başka bir web servisini bu yöntemle ekleyebilirsiniz.

Peki bu kısayolu nasıl mı kullanacağız? Tabi bunu anlatmadan bu yazı bir işe yaramaz. Türkçe sözlükte bundan sonra kelime aramak istersek adres çubuğuna az önce girdiğimiz anahtar kelimemizi yazıyoruz (benimki "tdk" idi), boşluk bırakıp aramak istediğimiz kelimeyi yazıyoruz. Şuna benzer bir yazı çıkıyor ve "enter"a bastığımızda bizi istediğimiz kelimeye götürüyor. Ve bu yazı burada sona eriyor.

Kitap Yorumu: Dreaming in Code

Çalıştığım şirketin kitaplığında görüp okuma listeme aldığım kitaplardan biriydi, "Dreaming in Code". Programcılar arasında oldukça popüler olan ve birçok sitede iyi yorumlar alan bir eser bu. Kitap temel olarak önceki işlerinde oldukça başarılı olmuş bir grup teknoloji insanının Chandler isimli dünyayı değiştireceğine inandıkları yeni bir yazılım projesi üzerinde çalışmalarını anlatıyor.

Kitabın yazarı Salon.com kurucularından Scott Rosenberg. Salon.com'u takip ediyorsanız bilirsiniz, oldukça kaliteli bir haber/yorum sitesidir. Kitabın akıcılığını biraz da bu geleneğe bağlıyorum, 300 küsür sayfayı okurken pek sıkılmıyorsunuz. Scott Rosenberg yazılımın kaderinin tam olarak ne olacağını bilmemekle birlikte projeyi takip etmeye ve kitabını hazırlamaya başlıyor. Hemen hemen bütün yazılım projelerinde geri kalmalar, hatalar, başarısızlıklar olduğu için temkinli davranıyor ama o bile 3 sene sonra 1.0 sürümünün çıkamamasına biraz şaşırıyor ve belki de 1.0 ile kitabı bitirme planlarını değiştirip kitabı daha önce baskıya göndermeye karar veriyor.

Chandler büyük hedeflerle başlanan bir proje, birçok şeyi aynı anda yapmaya çalışıyor. Sağlam temellere dayanmıyor, devrimci olabilmek için yeni şeyler gerektiğini düşünüyor ve hepsini kendisi geliştirmek istiyor. Bu yüzden bir tarayıcı içinde yaşamak istemiyor, sonradan vazgeçilse de başlarda P2P modeli benimseniyor, Windows, Mac ve Linux'larda hepsinde çalışacak bir masaüstü uygulaması hedefleniyor. Sonuçta Chandler'ın ilk tüm sürümleri planlanandan daha geç, daha az özellik ve daha fazla hatayla, daha masraflı olarak yayınlanıyor.

Kitabın büyük bölümü projede yaşanan olayları anlatıyor. Teknik zorluklar, yönetimsel sorunlar, her yazılım projesinde olan planlama zorlukları, kesin olarak neyi nasıl yapacağını bilememek... Rosenberg kendisi de bilişim sektöründen olduğu için olayları anlıyor ve tam olarak programcı olmadığı için de akıcı bir biçimde farklı bir bakış açısıyla bizlere anlatabiliyor.

Scott Rosenberg arada birkaç bölüm Chandler'ın sıkıntılarını anlatmayı bırakıp bilgisayar mühendisliğinin nasıl bir mühendislik olduğundan, klasik mühendisliklerden örneğin inşaat mühendisliği gibi olgunlaşmamış olduğundan, tıp gibi çok karmaşık olmasından bahsediyor, bilgisayar bilimlerinin kısa bir tarihinden bahsediyor. Frederick Brooks'dan, Donald Knuth'dan, Alan Kay'den bolca bahsediyor, önemli eserlerden bolca alıntılar ve özetler veriyor. Bilgisayar bilimlerinin kendi metodolojilerinden, ilk zamanlardaki NATO konferanslarından tutun da CMM seviyelerine, Çevik Programlama'ya, ve Ruby on Rails'in açtığı yola, 37 Signals'a kadar o kadar çok noktaya değiniyor ki, bu bölümleri bitirince bilgisayar bilimlerinde emin olunan çok da konu olmadığını anlıyorsunuz. Yazarın farklı bakış açılarını kitapta eşit bir biçimde sunması da bunda etkili.

Sonuç olarak bilgisayar bilimlerini daha iyi anlamak istiyorsanız okumanızı önereceğim bir kitap bu. Bana inanmıyorsanız, belki Joel Spolsky sizi ikna edecektir (kitapta kendisinden de bahsediliyor).

Keyifli okumalar.