Tokens — Page 41

YouTube açıldı mı yoksa büyün bunlar kötü bir şaka mı?

YouTube Sorunu

YouTube açıldı mı, yoksa hala yasaklı mı? Bu sorunun cevabı bir süredir muallakta. Bazen denediğimde YouTube’a girebilirken bazen hiçbir şekilde giremiyorum. Bu konuyu biraz araştırdım, ve anladığım kadarıyla YouTube’un bazı sunucularına giden yollar halen kapalı. Turk Telekom halen YouTube.com sunucularından bazılarına giden paketleri engelliyor, bunlari belirli sınır yönlendiricilerinde düşürüyor. Dolayısıyla YouTube’a bizim bilgisayarlardan giden paketler hiçbir zaman ulaşmıyor ve cevap alamıyoruz. Yani sadece IP adresi yazarak bağlanmamız da mümkün değil, çünkü isim sorgulamada, yani DNS’lerde şu an için sorun yok. YouTube’un IP adreslerini sorgulayabiliyoruz. Aşağıda benim birkaç denemem ve açıklamalarım var.

Testler

olive:~# host youtube.com
youtube.com has address 208.117.236.69
youtube.com has address 208.65.153.238
youtube.com has address 208.65.153.251
youtube.com mail is handled by 10 sjl-mbox1.sjl.youtube.com.

Zeytin benim bilgisayarım. YouTube.com’un IP adreslerini sorduğumda benim kullandığım DNS’ler cevapları veriyorlar. Şimdi bu IP’lere ulaşıp ulaşamadığımızı traceroute programcığı yardımıyla öğrenelim:

olive:~# traceroute 208.65.153.238
traceroute to 208.65.153.238 (208.65.153.238), 30 hops max, 40 byte packets
1 X.X.X.1 (X.X.X.1) 1.379 ms 1.918 ms 2.435 ms
2 hai.sw.metu.edu.tr (144.122.2.1) 32.604 ms 32.597 ms 32.598 ms
3 193.140.0.209 (193.140.0.209) 35.479 ms 35.461 ms 35.468 ms
4 212.156.63.197 (212.156.63.197) 35.579 ms 35.570 ms 35.556 ms
5 ulus_t2_2-bilkent_t3_1.turktelekom.com.tr (212.156.117.241) 35.500 ms 35.482 ms 35.493 ms
6 ulus_t1_2-ulus_t2_2.turktelekom.com.tr (212.156.108.181) 35.311 ms 37.358 ms 33.962 ms
7 212.156.119.33 (212.156.119.33) 39.827 ms 39.806 ms 39.799 ms
8 gayrettepe_ebgp_1-gayrettepe_t1_2.turktelekom.com.tr (212.156.118.50) 43.348 ms 43.317 ms 43.297 ms
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *

Gördüğümüz üzere YouTube IP’lerinden olan 208.65.153.238’yi denediğimizde Turk Telekom’un gayrettepe isimli Router’larından birinde bizim paketler kayboluyor. Sıralamadaki 8. sunucudan sonra TTnet yönlendiricisi bizim paketleri /dev/null’a gönderiyor, yani tamamen çöpe atıyor. Paketlerden bir daha haber alamıyoruz. Ama ilginç olan şu ki bazı YouTube IP’lerine giden paketler geçiriliyor:

olive:~# traceroute 208.117.236.70
traceroute to 208.117.236.70 (208.117.236.70), 30 hops max, 40 byte packets
1 X.X.X.1 (X.X.X.1) 0.951 ms 1.495 ms 2.026 ms
2 hai.sw.metu.edu.tr (144.122.2.1) 49.595 ms 49.612 ms 49.624 ms
3 193.140.0.209 (193.140.0.209) 54.860 ms 54.862 ms 54.878 ms
4 212.156.63.197 (212.156.63.197) 50.972 ms 51.405 ms 54.400 ms
5 ulus_t2_2-bilkent_t3_1.turktelekom.com.tr (212.156.117.241) 50.587 ms 140.358 ms 142.418 ms
6 ulus_t1_2-ulus_t2_2.turktelekom.com.tr (212.156.108.181) 50.473 ms 33.338 ms 10.114 ms
7 212.156.119.33 (212.156.119.33) 17.024 ms 17.028 ms gayrettepe_t1_2-ulus_t1_2.turktelekom.com.tr (212.156.118.41) 20.660 ms
8 gayrettepe_ebgp_1-gayrettepe_t1_2.turktelekom.com.tr (212.156.118.50) 20.675 ms 20.536 ms 20.540 ms
9 so-0-1-3.par77.ip.tiscali.net (213.200.85.185) 73.809 ms 73.812 ms 73.841 ms
10 xe-1-0-0.par70.ip.tiscali.net (89.149.186.157) 73.213 ms 73.223 ms xe-2-0-0.par70.ip.tiscali.net (89.149.186.161) 73.225 ms
11 213.200.85.182 (213.200.85.182) 77.336 ms 77.642 ms gi9-44.232.ccr01.par05.atlas.cogentco.com (130.117.15.57) 77.329 ms
12 te1-1.mpd01.par02.atlas.cogentco.com (130.117.1.21) 76.947 ms te7-4.mpd02.par01.atlas.cogentco.com (130.117.1.69) 144.256 ms 144.576 ms
13 te2-1.ccr01.par04.atlas.cogentco.com (130.117.2.158) 131.754 ms * *
14 te3-8.mpd03.jfk02.atlas.cogentco.com (154.54.1.93) 210.876 ms te7-8.ccr01.jfk02.atlas.cogentco.com (154.54.1.157) 221.669 ms 220.991 ms
15 te3-1.mpd01.jfk01.atlas.cogentco.com (154.54.24.145) 216.255 ms te8-2.mpd01.jfk01.atlas.cogentco.com (154.54.1.210) 216.233 ms te3-1.mpd01.jfk01.atlas.cogentco.com (154.54.24.145) 216.227 ms
16 te4-4.mpd01.ewr03.atlas.cogentco.com (154.54.1.38) 222.253 ms vl3490.mpd01.ewr03.atlas.cogentco.com (154.54.1.30) 221.228 ms 221.368 ms
17 you-tube-llc.demarc.cogentco.com (38.101.84.66) 221.303 ms 221.381 ms 214.221 ms
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 www.youtube.com (208.117.236.70) 246.791 ms 247.029 ms 247.330 ms

Ve bingo! YouTube sunucularına ulaştık. TTnet’in gayrettepe’deki yönlendiricisi bu sefer paketimizi atmadı ve tiscali.net ağındaki bir sonraki yönlendiriciye ulaştırdı. Gerisi rutin şeyler ve 23. uçta istediğimiz sunucuya ulaşmış oluyoruz. traceroute uygulamasını DNS’den verilen 3. IP olan 208.117.236.69 için de kullandığımızda benzer bir şekilde YouTube.com’a ulaşabiliyoruz.

Sonuç?

Bütün bunlar ne anlama geliyor? Denediğimiz ikinci IP alan adı sorgulama sistemi tarafından bize verilen cevapta olmayan bir IP. Bu durum ilk olarak akıllara YouTube yasağının halen devam ettiğini getiriyor. Diğer taraftan DNS tarafından verilen 3. IP ile erişim mümkün. Türk Telekom görünüşe göre ne yaptığını bilmiyor, YouTube’a giden bazı yolları kapatırken bazıları halen açık. Eğer mahkemenin verdiği sansür kararı halen devam ediyorsa TTnet eksik bir şekilde bunu uyguluyor, eğer karar kalktıysa TTnet şu anda kendi sansürünü uyguluyor, kendi isteğiyle yurt dışı çıkışlarını engelliyor. Acaba TTnet yurt dışı ağ trafiğine daha az para ödemek için mi böyle bir yola başvuruyor? İlk 6 aylık karın 1 milyar dolar civarında olduğu düşünülürse bu uygulama çok saçma geliyor. Belki de TTnet yapması gerektiği fiber optik kablo yatırımlarını yapmadığı için veya bunları ertelemek için ağ trafiğini ülke içinde tutmaya, video servisleri gibi çok ağ trafiğine neden olan uygulamaları sınırlandırmaya çalışıyor.

Yapabileceklerimiz

Türkiye’de sıkça görülen saçmalıklardan biriyle karşı karşıyayız. Bu yüzden bir önceki paragrafta bir sürü varsayım yaptım. Medyadaki haberler çok bilgilendirici değil. Bazı haberlerde de sitenin açıldığı ama DNS güncellemesi nedeniyle gecikmeli olarak insanların girebileceği yazılıyor. Ama resmi bir açıklama yok. Bu haberlerin gerçekle uyuşmadığını yukarıdaki testlerimden anlayabiliyoruz, alan adı ile ilgili herhangi bir problem yok. Sorun TTnet’in halen paketleri atmasıyla ilgili.

Bu durumda yapabileceğim tek şeyi yapıyorum ve bilgi edinme hakkımı kullanarak mahkeme kararlarını, gerekçelerini ve ne zaman kaldırıldıkları bilgisini istiyorum. Bunu siz de yapabilirsiniz. Adres: http://www.bilgiedinme.adalet.gov.tr/ buradan gerçek kişiler için olan formu indirin, doldurup sorunuzu sorun ve bilgiedinme@adalet.gov.tr adresine e-posta ile iletin. Umarım cevap hızlı bir şekilde gelir.

Bilgi Edinme Hakkı

Bilgi Edinme Hakkı AB uyum paketlerinden biriyle geçmiş bir kanun. Birçok gelişmiş ülke uzun bir süredir (ABD: 1966, en eskilerden İsveç: 1776) bu türden yasalara sahipler. Bu konuda daha fazla bilgi için eski bir yazıma bakabilirsiniz. Kanunun tamamı burada, bağlı olan yönetmelik ise burada. Kanundaki 16. ve 17. maddeler hangi bilgi edinme isteklerinin rededilebileceğini açıkça anlatmış, bizim başvurumuz bunlara girmiyor. Olası bir red cevabında cevaptan itibaren 15 gün içinde itiraz ediliyor. Bunu da akılda tutmakta fayda var.

Bakalım nasıl bir sonuç ortaya çıkacak.

C/C++'da Ardışıklık Kuralları

Herhalde yaklaşık 6 senedir C/C++ kullanıyorum. Çok büyük ve uzun süreli projelere katılmamış olsam da kendimi bir miktar yetkin görürüm. Tez için bir projede çalışırken nedense daha önce pek detaylı araştırmadığım bir konunun farkına vardım: ardışıklık konusu.

Aşağıdaki kod parçalarının nasıl çalışacağından emin misiniz?
x = x++;
(x = 1) * (x = 2);
(x = 1) * x;
f(), g();
f() * g();

Bir değişkenin ne zaman değerinin alınacağı (“fetch” edileceği) veya değer atanacağı (“set” edileceği) tam olarak bilinmediğinde işlem belirsiz oluyor, etkilerin ne olacağı belirlenemiyor (“race condition” ortaya çıkıyor). Örneğin ilk örnek olan “x = x++”da x daha önce diyelim ki 1 iken, bu işlem sonunda ne olacaktır? Buradaki ++ operatörü sonra geldiği için değer x’in önceki değeri olacak, x artırılacak ve sonra bu değer x’e atanacak. Peki atanma ve artırma olaylarının sırası belirli mi? Cevap belirli olmadığı yönünde. Bu küçük kodu derleyicide derleyip birçok kez çalıştırdığımda cevap her seferinde 2 çıktı. Bu durumda sanki x değerinin arttırılması daha sonra yapılıyormuş gibi görünüyor. Ama bu yanıltıcı bir düşünce, çünkü daha mantıklı gelen (intuitive) başka kod parçalarında diğer düşünce doğru geliyor. Ne olursa olsun bu türden kodlar yazmamak gerekiyor.

İkinci ve üçüncü örneklerde çarpım yapılıyor. Sorun burada şu ki C/C++’da çarpım yapılırken değerlerin hangi sırayla belirleneceğı belirli değil. Standart bunu tanımlamıyor, dolayısıyla derleyici üreticileri bu konuda özgürler. Yani demek istediğim şu ki (x = 1)’in mi önce yoksa (x = 2)’nin mi önce çalışacağı belli değil. Kod yazarken bu türden işlemler yazmamak gerekiyor, yani hangisinin önce çalıştırılacağı üzerine varsayım yapmamak, bunun işlemi etkilememesi gerekiyor.

Kullandığım dördüncü örnek aslında sorunsuz. C’de virgül operatörü kullandığınızda sıra bellidir. Soldan sağa doğru çalıştırılır ve yalnızca sonuncunun değeri alınır. Dolayısıyla burada ne olacağı belirli.

Son örnek ise yine çarpım örneği ve fonksiyonları kullanıyor. Burada da çarpımdaki belirsizlik var. Ancak birşey daha var ki, C’de fonksiyon çağırma iç içe (interleaved) olamıyor. Dolayısıyla biri bittikten sonra diğeri başlayacak. Bir tür atomiklik (atomicity) var. Yine de bu hangisinin önce başlayıp biteceğini bize söylemiyor tabii ki. Dolayısıyla bu türden kod parçalarını da kullanmamalıyız.

Bu ardışıklık konusunda daha fazla bilgi için birçok makale var. İlginizi çekiyorsa bir bakın derim. Ama sadece sonuçlarla ilgiliyseniz fazla dalmayın bu konuya, oldukça detaylı çünkü. Bundan başka derleyicinin size bu konuda yardımcı olmasını istiyorsanız bu adresteki -Wsequence-point seçeneğine bir bakın derim. GCC’nin size ne kadar yardım edebileceğine şaşırabilirsiniz.

Şimdi ben bu konuya nereden dalmıştım… Elimde şöyle bir kod parçası var:
map<string, int>::iterator it;
for(it = myMap.begin(); it != myMap.end(); it++) {
if (it->second < threshold)
myMap.erase(it);
}

Burada bir map yapısındaki sınır değerinden düşük elemanlar silinmek isteniyor. Ama bu program segmentation fault verecektir. Sorun şu ki iterator’ı önce siliyoruz sonra da artırarak ilerlemeye çalışıyoruz. Bu durumda silinmiş bir objeye ulaşmaya çalıştığımız için de işletim sistemi kafamıza vuracaktır. Doğru kod şöyle olmalıydı:
map<string, int>::iterator it;
for(it = myMap.begin(); it != myMap.end(); ) {
if (it->second < threshold)
myMap.erase(it++);
else it++;
}

Böylece silmeden önce it objesi artırılıyor, silerken eski değerin gösterdiği yer siliniyor ve biz yolumuza devam ediyoruz. Mantıklı değil mi? :)

Belkıs Özener

Bu aralar eski şarkılar fena sardım. Dinlediklerim arasında Şevval Sam, Zeki Müren ve Belkıs Özener var. En sevdiklerimden biri Belkıs Özener. Yeşilçamın 60’lardan 80’lere kadarki filmlerinde her başrol oyuncusunun şarkı söylemesi kuralı vardı :) İşte o filmlerde başrol oyuncusu playback yaparken arkada şarkıları seslendiren kişi Belkıs Özener. Aşağıya “Sevemedim Karagözlüm”ü koyuyorum. Evet, çok güzel. Belkıs Özener’in resmi sayfası ise burada: BelkisOzener.com. Bir süre önce Belkıs Özener Kalan Müzik’ten Sahibinin Sesi isimli bir albüm çıkarmış. İlgilenenlere…

</embed>

Geleceğin İnternet'inin Önizlemesini Yapıyoruz!

Youtube aylardır kapalı durumda. Bundan başka hangi sitelerin kapatıldığını ancak o sitelere giremediğimizde öğreniyoruz. Daha önce kapatılan siteler arasında Wordpress blog sağlayıcısı (yani wordpress kullanan binlerce günlük) ve Flickr fotoğraf paylaşım sitesi de var. Yarın kendi sitenizin veya en çok kullandığınız sitenin de kapatılmayacağını kim garanti edebilir? Sansüre karşı olduğumuzu göstermek için, bu durumu protesto etmek için kendi sayfalarımızı kendi isteğimizle kapatıyoruz.

NTVMSNBC.com’da çıkan haberi buradan okuyabilirsiniz.

Blogger’dan almış olduğunuz bir günlük siteniz varsa şu anda bu sitede uygulanmakta olan kapatmayı şu şekilde gerçekleştirebilirsiniz:

<ol><li>Layout -> Edit HTML sayfasına ulaşın. İlk olarak şablonunuzu “Download Full Template” linkine tıklayarak indirin. Eğer herhangi birşey ters gidecek olursa, veya oto sansürünüzü kaldırmak isterseniz bu şablonu tekrar yükleyerek (“Upload a template…” diye başlayan link ile) sayfanızı eski çalışır haline döndürebilecekseniz. Dolayısıyla indirdiğiniz şablon dosyasını diskinizde iyi bir yere saklayın.</li>

<li>Aşağıdaki kodu kendi günlük şablonunuzda <body> gördüğünüz yerden hemen sonraya yerleştirin. Yani aşağıdaki kod, “body” bölümünün ilk kodu olmalı.</li></ol>
<!-- Sansure karsi protesto kodu BASLADI. -->
<b:if cond='data:blog.pageType == &quot;index&quot;'>

<div style='width:100%;background:#ffffff;'><div style='float:right;'><a href='2008_08_01_archive.html' style='font-size:12px;background:red; color:white;'>tayfunsen.com&#39;a devam etmek için t&#305;klay&#305;n&#305;z.</a></div><iframe frameborder='0' height='600' hspace='0' marginheight='0' marginwidth='0' scrolling='no' src='http://anafikir.com/sansur/iframe.php?site=blog.tayfunsen.com&amp;devam=2008_08_01_archive.html' vspace='0' width='100%'/></div>

<script type='text/javascript'>
function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != &#39;function&#39;) {
window.onload = func;
}
else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}

function removeOuter() {
outer = document.getElementById(&quot;outer-wrapper&quot;);
outer.style.display = &quot;none&quot;;
}

addLoadEvent(removeOuter);
</script>

</b:if>
<!-- Sansure karsi protesto kodu BiTTi. -->


Buradaki kodu yazarken taytenik.com’un sağlamış olduğu kodu biraz değiştirdim. Öncelikle sadece “index” sayfalarınız kapatılmış olacak (Buna arama sayfaları, etiket sayfaları ve anasayfa dahil). Bunun dışında ana içeriğin olduğu “outer-wrapper” bölümünü (yani div’ini) silmek istemediğimiz için, daha kolaylık olsun diye bir javascript kodu ile kaldırıyoruz. Sayfamızı gezmek isteyenlere üst sağ köşede bir link veriyoruz ve bu link arşiv sayfasına gidiyor. Arşiv sayfası olarak içinde bulunduğumuz ağustos ayını kullanıyoruz ki en son yazdıklarımız sayfaya gelebilsin. Artık her şey çalışır durumda olmalı. “Preview - Önizleme” butonuna basarak doğru çalışıp çalışmadığını kontrol edin ve şablonu kaydedin.

About "South of the Border, West of the Sun"

Well it has the same Murakami-san smoothness, the story runs well and you are always curious about what will happen to the characters, or why they are who they are right now. It is interesting from the cultural perspective for me too, because I don’t know much about the still kept-back Japanese culture. It seems that they are reserved when it comes to relationships, a bit like here. I can relate to the growing up presented in the book, like I guess, many boys. I mean that coming of adolescence feel, that same awkward relationships with girls, trying to discover the opposite sex. Not knowing what to do with life, nor the meaning of it. I think these two topics, girls and future plans are the summary of those years. I think Murakami-san portrays it well. As his characters get old (well he is narrating from the future but for the sake of the argument, or the books progress) they tie their acts to the past memories, experiences. So you think “Oh, that’s the reason he is this way” or maybe “so this is why she is hurt” etc. And it is interesting because you like to see your future, with respect to all your past experiences. You can relate to the story, and in a way its your future, or how your future could [have] be[en], that is told in the story.