<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>Yiğit Güneli</title>
	<link>http://gro.tiiy.yiit.org</link>
	<description>Just another WordPress weblog</description>
	<pubDate>Wed, 03 Oct 2007 14:15:33 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.2</generator>
	<language>en</language>
			<item>
		<title>FFMPEG rehberi (Nasıl online video çevirebilirim ya da thumbnail yaratabilirim?)</title>
		<link>http://gro.tiiy.yiit.org/yazi/ffmpeg-rehberi-nasil-online-video-cevirebilirim-ya-da-thumbnail-yaratabilirim.html</link>
		<comments>http://gro.tiiy.yiit.org/yazi/ffmpeg-rehberi-nasil-online-video-cevirebilirim-ya-da-thumbnail-yaratabilirim.html#comments</comments>
		<pubDate>Wed, 03 Oct 2007 13:27:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gro.tiiy.yiit.org/yazi/ffmpeg-rehberi-nasil-online-video-cevirebilirim-ya-da-thumbnail-yaratabilirim.html</guid>
		<description><![CDATA[Youtube gibi flv tabanlı video siteleri gönderdiğimiz videoları online çevirmek için ffmpeg veya mencoder programlarından birini kullanır. İkisi de aynı koddan doğmuş olsa da şu anda aralarında büyük farklar bulunuyor.
FFMpeg ile Video Dönüştürmek
Komut satırından kullanılan ffmpeg ile şu şekilde ilk videomuzu çevirebiliriz:
ffmpeg -i girdi.avi cikti.flv
oldukça basit dursa da bu şekilde kullanınca frame rate&#8217;i, görüntü kalitesi [...]]]></description>
			<content:encoded><![CDATA[<p>Youtube gibi <strong>flv</strong> tabanlı video siteleri gönderdiğimiz <strong>videoları online çevirmek</strong> için <strong>ffmpeg</strong> veya <strong>mencoder</strong> programlarından birini kullanır. İkisi de aynı koddan doğmuş olsa da şu anda aralarında büyük farklar bulunuyor.</p>
<h3>FFMpeg ile Video Dönüştürmek</h3>
<p>Komut satırından kullanılan ffmpeg ile şu şekilde ilk videomuzu çevirebiliriz:</p>
<pre>ffmpeg -i girdi.avi cikti.flv</pre>
<p>oldukça basit dursa da bu şekilde kullanınca frame rate&#8217;i, görüntü kalitesi ve ses kalitesi öntanımlı değerlerle değişecek. Bunları kendimiz belirlemek için parametreleri kullanmamız lazım.</p>
<p><strong>FFmpeg Parametreleri</strong></p>
<p>-i : Girdi dosyasını belirtmek için<br />
-f : Çıktı formatını belirlemek için<br />
-vcodec: Videonun işleneceği codec<br />
-acodec: Videodaki sesin işleneceği codec<br />
-b : Videonun bitrate&#8217;i<br />
-a : Videodaki sesin bitrate&#8217;i<br />
-r : Frame rate<br />
-s : Boyut</p>
<p><strong>Örnek Kullanım:</strong></p>
<pre>ffmpeg girisParametreleri -i girdi.avi cikisParametreleri cikti.avi</pre>
<pre>ffmpeg -f avi -i girdi.avi -f flv -ab 96k -b 500k -s 320x240 cikti.flv</pre>
<p>bu kod girdi.avi&#8217;yi 500kbit/sn bitrate&#8217;li, 320&#215;240px boyutlu, 96kbit/sn ses bitrate&#8217;li cikti.flv dosyasına dönüştürür. Frame rate belirtilmezse 25 kabul edilir.</p>
<h3>Thumbnail Oluşturmak</h3>
<p>Thumbnail&#8217;i ffmpeg ile oluşturmak yerine mencoder ile oluşturmak daha hızlı olacaktır.</p>
<pre>mplayer girdi.avi -ss 40 -nosound -vo jpeg -frames 1 -o girdi.jpg</pre>
<p>bu kod girdi.avi&#8217;nin 40. saniyesini girdi.jpg&#8217;e kaydedecektir.</p>
none]]></content:encoded>
			<wfw:commentRss>http://gro.tiiy.yiit.org/yazi/ffmpeg-rehberi-nasil-online-video-cevirebilirim-ya-da-thumbnail-yaratabilirim.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>mod_rewrite kılavuzu (nasıl 404 yönlendirme yapabilirim?)</title>
		<link>http://gro.tiiy.yiit.org/yazi/mod_rewrite-klavuzu-nasil-404-yonlendirme-yapabilirim.html</link>
		<comments>http://gro.tiiy.yiit.org/yazi/mod_rewrite-klavuzu-nasil-404-yonlendirme-yapabilirim.html#comments</comments>
		<pubDate>Mon, 24 Sep 2007 11:42:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gro.tiiy.yiit.org/yazi/mod_rewrite-klavuzu-nasil-404-yonlendirme-yapabilirim.html</guid>
		<description><![CDATA[mod_rewrite&#8217;ı veya htaccess dosyaları ile yönlendirme yapmayı duymayan kalmamıştır. standart bir htaccess dosyasına bakacak olursak:

1
2
3
4
5
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

bu kurallar wordpress&#8217;in rewrite kuralları.
1. satırda Rewrite motorunun kullanılacağını belirtiyoruz.
2. satırda bu kuralların bütün kök ve alt dizinlerde geçerli olduğunu söylüyoruz.
3. satırda REQUEST_FILENAME değişkeninde tutulan isimde bir dosya eğer yoksa diyoruz
4. satırda [...]]]></description>
			<content:encoded><![CDATA[<p>mod_rewrite&#8217;ı veya htaccess dosyaları ile yönlendirme yapmayı duymayan kalmamıştır. standart bir htaccess dosyasına bakacak olursak:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre>RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]</pre></td></tr></table></div>

<p>bu kurallar wordpress&#8217;in rewrite kuralları.</p>
<p>1. satırda Rewrite motorunun kullanılacağını belirtiyoruz.<br />
2. satırda bu kuralların bütün kök ve alt dizinlerde geçerli olduğunu söylüyoruz.<br />
3. satırda REQUEST_FILENAME değişkeninde tutulan isimde bir dosya eğer yoksa diyoruz<br />
4. satırda REQUEST_FILENAME değişkeninde tutulan isimde bir klasör eğer yoksa diyoruz<br />
<5. satırda bütün istekleri index.php'ye gönder deyip L (LAST) bayrağı ile bu conditionları sağlayan durumlarda yapılacak son rewrite'ın bu olduğunu belirtiyoruz.</p>
<h3>Detaylı İnceleme</h3>
<h4>RewriteEngine on|off</h4>
<p>Apache&#8217;de , öntanımlı olarak rewrite motoru kapalı olarak geliyor. mod_rewrite ile yönlendirme yapacaksak eğer ilk satırda RewriteEngine On&#8217;a ihtiyacımız var.</p>
<h4>RewriteOptions Seçenek</h4>
<p>Burada Kullanabileceğimiz iki seçenek var. MaxRedirects değeri ve inherit opsiyonu. MaxRedirects aynı isteğin kaç kere yeniden yazılacağını belirliyor. inherit ise MaxRedirets&#8217;in değerinin bir üst klasörde geçerli olan değer olmasını söylüyor. Öntanımlı olarak MaxRedirects=10, inherit ise kapalı.</p>
<h4>RewriteBase URL</h4>
<p>Fiziksel yer ile sanal yer farklı ise RewriteBase ile isteklerin nereye geldiğini belirtmemiz gerekiyor. Örneğin sunucuda /home/yiit/ahmet/mehmet klasöründe bulunan dosyalarımız url olarak www.site.com/cenk yolu ile çağırılıyorsa /home/yiit/ahmet altındaki .htaccess&#8217;de</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre>RewriteBase /cenk</pre></td></tr></table></div>

<p>bulundurmamız gerekiyor.</p>
<h4>RewriteCond var1 var2</h4>
<p>RewriteCond&#8217;u eğer var1 var2&#8242;ye uyuyorsa bir sonraki satıra geç şeklinde bir if yapısı olarak düşünebiliriz. şöyle örnekler sunabiliriz:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre>RewriteCond %{REQUEST_URI} yiit.php</pre></td></tr></table></div>

<p>bu satır, eğer %{REQUEST_URI} yiit.php ise diyor. yiit.php&#8217;nin başına ünlem koyarak (!yiit.php) REQUEST_URI yiit.php değilse diyebilirdik.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre>RewriteCond %{HTTP_HOST} gro.tiiy.yiit.org</pre></td></tr></table></div>

<p>burada ise eğer HTTP_HOST gro.tiiy.yiit.org ise diyoruz. .htaccess dosyasında düzenli ifadeler (regular expressions - regex) de kullanabiliriz. Aynı örneği geliştirelim:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre>RewriteCond %{HTTP_HOST} !www.yiit.org
RewriteCond %{HTTP_HOST} ([^.]+).yiit.org</pre></td></tr></table></div>

<p>burada subdomain eğer www dışında bir şeyse dedik. ileride subdomain ismine erişmek istersek %1 değişkenini kullanabiliriz. burada dikkat edilmesi gereken şey iki rewritecond arasında bir and olduğu. yani sadece bu ikisini de sağlayan durumlar rewriterule&#8217;a geçebilecek. eğer ikisinden birini sağlamasını isteseydik OR bayrağını kullanacaktık:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre>RewriteCond %{HTTP_HOST} !www.yiit.org [OR]
RewriteCond %{HTTP_HOST} ([^.]+).yiit.org</pre></td></tr></table></div>

<h4>Kullanabildiğimiz Değişkenler</h4>
<p>RewriteCond ile oluşturduğumuz değişkenlere %n şeklinde ulaşabiliyoruz. örneğin</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre>RewriteCond %{HTTP_HOST} ^(.*).(.*)</pre></td></tr></table></div>

<p>böyle bir kuralımız varsa birinci (.*) yani HTTP_HOST&#8217;un ilk noktadan önceki kısmı %1,ilk noktadan sonraki kısmı %2 oluyor.</p>
<p>RewriteRule değişkenleri ise $n şeklinde. rewritecond ve rewriterule değişkenlerini aynı kuralın içinde kullanmak mümkün:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre>RewriteCond %{HTTP_HOST} ([^.]+).yiit.org
RewriteRule ^(.*)$ yok.php?adres=$1⊂=%1</pre></td></tr></table></div>

<p>bu durumda gro.tiiy.yiit.org/ahmet.php aslında yiit.org/yok.php?adres=ahmet.php⊂=gro.tiiy olarak işlem görecek.</p>
<p>Sunucu değişkenleri ise %{SUNUCU_DEGISKENI} şeklinde kullanılıyorlar. tam listesini yazının sonuna ekliyorum.</p>
<p>RewriteCond&#8217;da kullanabileceğimiz iki bayrak var. bunlar NC ve OR. NC büyük-küçük harf duyarsız işlem yapılmasını söylüyor. OR ise daha önce söylediğim gibi iki rewritecond&#8217;u öntanımlı olan and yerine or ile bağlamasını söylüyor.</p>
<p>bunların dışında RewriteCond parametreleri var. Wordpress örneğinde gördüğümüz -f ve -d dışında -s ve -l var. -s&#8217;nin işlevi -f gibi, fakat yaratılmış bir dosyanın var olup olmadığından fazla olarak bu dosyanın boyutunun 0&#8242;dan büyük olup olmadığına da bakıyor. -l ise böyle bir symlink olup olmadığına bakıyor. bu dört parametre de ünlem işareti ile birlikte anlamlarının tersine kullanılabilir. (!-f)</p>
<h4>RewriteRule</h4>
<p>Örnekle başlayalım:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre>RewriteRule ^(.*)$  yok.php?adres=$1 [L]</pre></td></tr></table></div>

<p>Bu kural gelen bütün istekleri yok.php&#8217;de $_GET[&#8217;adres&#8217;] değişkeninin içine atar. yani /index.php&#8217;ye girmek istedi diyelim ki kullanıcı, sunucu ona aslında yok.php?adres=index.php&#8217;yi gösterir. Ama bu bir yönlendirme şeklinde olmaz, adres aynı kalır.</p>
<h4>RewriteRule bayrakları</h4>
<p>[bayrak] şeklinde kullanılıyorlar.</p>
<p>R=301: Belirttiğiniz adrese 301 yönlendirmesi yapar.<br />
F: Forbidden belirttiğiniz adres 403 döndürür. Kullanıcılara sayfayı görmesi için izin verilmez. RewriteCond ile birlikte kullanılıp toplu adres engellemesi yapılabilir.<br />
L: Bu rewriterule&#8217;ın son yönlendirme olduğunu söyler. Eğer bu bayrak olmazsa mod_rewrite maxredirects değişkeniniz doğrultusunda sürekli yönlendirme yapacaktır.<br />
NC: büyük küçük ayrımı yapmadan rewrite yapar.<br />
QSA: GET ile gelen isteği de adrese ekler.</p>
<h4>Server Değişkenleri</h4>
<p> <a href="http://gro.tiiy.yiit.org/yazi/mod_rewrite-klavuzu-nasil-404-yonlendirme-yapabilirim.html#more-11" class="more-link">(more&#8230;)</a></p>
none]]></content:encoded>
			<wfw:commentRss>http://gro.tiiy.yiit.org/yazi/mod_rewrite-klavuzu-nasil-404-yonlendirme-yapabilirim.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Wireshark (Ethereal) Kullanımı ya da Msn Konuşmalarını Nasıl Dinlerim? - Bölüm 1</title>
		<link>http://gro.tiiy.yiit.org/yazi/wiresharkethereal-kullanimi-ya-da-msn-konusmalarini-nasil-dinlerim-bolum-1.html</link>
		<comments>http://gro.tiiy.yiit.org/yazi/wiresharkethereal-kullanimi-ya-da-msn-konusmalarini-nasil-dinlerim-bolum-1.html#comments</comments>
		<pubDate>Mon, 20 Aug 2007 20:45:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gro.tiiy.yiit.org/yazi/wiresharkethereal-kullanimi-ya-da-msn-konusmalarini-nasil-dinlerim-bolum-1.html</guid>
		<description><![CDATA[Wireshark Nedir?
Wireshark, ya da daha çok bilinen önceki ismiyle Ethereal,  GPL lisansıyla dağıtılan bir paket dinleyicisidir. Linux, Mac Os X, Windows ve diğer Unix, BSD tabanlı sistemlerde çalışabilir. Promiscuous mode (Yaramaz mod*) özelliği sayesinde ağ kartına gelen paketleri ait olduğu adres yerine önce işlemciye aktarıp başkalarının trafiğini dinlememizi sağlar. Kendi sitesinden programı indirip kurabilirsiniz.
Wireshark [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Wireshark Nedir?</strong></p>
<p>Wireshark, ya da daha çok bilinen önceki ismiyle <strong>Ethereal</strong>,  GPL lisansıyla dağıtılan bir paket dinleyicisidir. Linux, Mac Os X, Windows ve diğer Unix, BSD tabanlı sistemlerde çalışabilir. Promiscuous mode (Yaramaz mod*) özelliği sayesinde ağ kartına gelen paketleri ait olduğu adres yerine önce işlemciye aktarıp başkalarının trafiğini dinlememizi sağlar. <a href="http://www.wireshark.org" title="Wireshark" target="_blank">Kendi</a> sitesinden programı indirip kurabilirsiniz.</p>
<p><strong>Wireshark Ayarları </strong></p>
<p>Wireshark ilk açıldığında korkutucu bir arayüz bizi bekliyor, kabul etmek lazım.  Edit&gt;Preferences altından ulaşabileceğiniz ayarlarda arayüz görünümü, paket yakalama, isim çözümleme, yazdırma ve çeşitli protokollerin kendine özgü ayarlarını değiştirebilirsiniz. Burada önemli olan ayarlar capture (paket yakalama) sekmesi altında <em>capture packets in promiscuous mode</em> ve update list of packets in real time kutularının işaretlenmiş olması.</p>
<p><strong>İlk Paketimizi Yakalamak </strong></p>
<p>Preferences penceresini kapattıktan sonra ana programa geri dönüp ilk paketimizi yakalayalım. Capture menusu altındaki interfaces&#8217;den ethernet kartımızın yanındaki start&#8217;a basalım. Eğer açıkta çalışan msn gibi, internet tarayıcısı gibi interneti kullanan programlar varsa onların aktivitelerini görmeye başlayabilirsiniz.</p>
<p>Şimdi ilk paketimizi incelemek için basit bir örnekle başlayalım. Terminali veya komut satırını açıp <em>ping google.com </em>komutunu verin.</p>
<p><a href="http://gro.tiiy.yiit.org/wp-content/uploads/2007/08/wireshark1.png" title="Wireshark 1 - Ping"><img src="http://gro.tiiy.yiit.org/wp-content/uploads/2007/08/wireshark1.png" alt="Wireshark 1 - Ping" height="72" width="434" /></a></p>
<p>(Resmi büyütmek için üzerine tıklayın.)</p>
<p>ping google.com komutunu çalıştırdıktan sonra ilk önce dns çözümlemesi yapılır.</p>
<ol>
<li>İlk satırda DNS protokolunde kendi makinamızın routera google.com&#8217;a denk gelen ip&#8217;yi sorduğunu görebiliriz.</li>
<li>İkinci satırda ise router bize google.com&#8217;a ait olan 64.233.167.99 ve 64.233.187.99 ip&#8217;lerini cevap olarak veriyor.</li>
<li>Üçüncü satırda kendi makinamız (10.0.0.4) 64.233.167.99&#8242;a icmp paketleri halinde ping isteği gönderiyor.</li>
<li>Dördüncü satırda ping cevabı gelmediği için tekrar bir ping isteği gönderiliyor.</li>
<li>Beşinci satırda 64.233.167.99 bizim makinamıza gene icmp paketleri halinde ping cevabı gönderiyor.</li>
<li>Bundan sonra işlem tekrarlanıyor.</li>
</ol>
<p>Bu durumda 4 ping isteğine 2 cevapla ping isteğimiz sona eriyor.</p>
<p>Artık paket toplamayı durdurabilirsiniz. Capture menusu altındaki stop işimizi görecektir.</p>
<p>Bugün için bu kadar, şu ana kadar fazla bir şey anlatmasam da programı kurcalamaya başlamanız için bu kadar bilgi yetecektir.</p>
none]]></content:encoded>
			<wfw:commentRss>http://gro.tiiy.yiit.org/yazi/wiresharkethereal-kullanimi-ya-da-msn-konusmalarini-nasil-dinlerim-bolum-1.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>En basit sıralama algoritması</title>
		<link>http://gro.tiiy.yiit.org/yazi/en-basit-siralama-algoritmasi.html</link>
		<comments>http://gro.tiiy.yiit.org/yazi/en-basit-siralama-algoritmasi.html#comments</comments>
		<pubDate>Fri, 17 Aug 2007 17:52:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gro.tiiy.yiit.org/yazi/en-basit-siralama-algoritmasi/</guid>
		<description><![CDATA[En basit sıralama algoritması hangisidir? Okullarda genel olarak bubble-sort gösteriyorlar, fakat ben insertion sort&#8217;u tercih ediyordum. Bugün ise gnome-sort diye bir algoritmayla karşılaştım. Neredeyse insertion-sort kadar hızlı çalışıyor, ve anlaması hem bubble-sort&#8217;tan hem de insertion-sort&#8217;tan daha kolay.
Verdiğim linkte c ile örnek bir kod yazılmış, ruby ile yazmak gerekirse de şöyle bir şeyler oluyor:

1
2
3
4
5
6
7
8
9
10
def gnomesort!&#40;a&#41;
  [...]]]></description>
			<content:encoded><![CDATA[<p>En basit sıralama algoritması hangisidir? Okullarda genel olarak <a href="http://en.wikipedia.org/wiki/Bubble_sort">bubble-sort</a> gösteriyorlar, fakat ben insertion sort&#8217;u tercih ediyordum. Bugün ise <a href="http://www.cs.vu.nl/~dick/gnomesort.html">gnome-sort</a> diye bir algoritmayla karşılaştım. Neredeyse <a href="http://en.wikipedia.org/wiki/Insertion_sort">insertion-sort</a> kadar hızlı çalışıyor, ve anlaması hem bubble-sort&#8217;tan hem de insertion-sort&#8217;tan daha kolay.</p>
<p>Verdiğim linkte c ile örnek bir kod yazılmış, ruby ile yazmak gerekirse de şöyle bir şeyler oluyor:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="ruby"><span style="color:#9966CC; font-weight:bold;">def</span> gnomesort!<span style="color:#006600; font-weight:bold;">&#40;</span>a<span style="color:#006600; font-weight:bold;">&#41;</span>
    i=<span style="color:#006666;">1</span>
    <span style="color:#9966CC; font-weight:bold;">while</span> i
        i+=<span style="color:#006666;">1</span>  <span style="color:#9966CC; font-weight:bold;">if</span> a<span style="color:#006600; font-weight:bold;">&#91;</span>i<span style="color:#006666;">-1</span><span style="color:#006600; font-weight:bold;">&#93;</span>&lt;=a<span style="color:#006600; font-weight:bold;">&#91;</span>i<span style="color:#006600; font-weight:bold;">&#93;</span>
        <span style="color:#9966CC; font-weight:bold;">else</span>
            a<span style="color:#006600; font-weight:bold;">&#91;</span>i<span style="color:#006600; font-weight:bold;">&#93;</span>, a<span style="color:#006600; font-weight:bold;">&#91;</span>i<span style="color:#006666;">-1</span><span style="color:#006600; font-weight:bold;">&#93;</span> = a<span style="color:#006600; font-weight:bold;">&#91;</span>i<span style="color:#006666;">-1</span><span style="color:#006600; font-weight:bold;">&#93;</span>, a<span style="color:#006600; font-weight:bold;">&#91;</span>i<span style="color:#006600; font-weight:bold;">&#93;</span>
            i-=<span style="color:#006666;">1</span> <span style="color:#9966CC; font-weight:bold;">if</span> i&gt;<span style="color:#006666;">1</span>
        <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></td></tr></table></div>

<p>ruby&#8217;deki a,b=b,a yöntemi ne kadar müthiş değil mi? increment ve decrement operatörlerinin eksikliği ise hemen göze çarpıyor.</p>
none]]></content:encoded>
			<wfw:commentRss>http://gro.tiiy.yiit.org/yazi/en-basit-siralama-algoritmasi.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>ssh tüneli ile yasak içeriğe ulaşmak(okulda veya kampüste torrent, emule ve diğer p2p programlarını kullanmak)</title>
		<link>http://gro.tiiy.yiit.org/yazi/ssh-tuneli-ile-yasak-icerige-ulasmakokulda-veya-kampuste-torrent-emule-ve-diger-p2p-programlarini-kullanmak.html</link>
		<comments>http://gro.tiiy.yiit.org/yazi/ssh-tuneli-ile-yasak-icerige-ulasmakokulda-veya-kampuste-torrent-emule-ve-diger-p2p-programlarini-kullanmak.html#comments</comments>
		<pubDate>Sun, 12 Aug 2007 00:44:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gro.tiiy.yiit.org/?p=3</guid>
		<description><![CDATA[Bu yazıyı okulumun cinnet geçirttiren bir akşamının ardından yazıyorum.
Pek çok yerde olduğu gibi bizim okulda da p2p programlarının kullanımı engellenmiş durumda. 2 yıldır ağda çalışan bir dc sunucusu kurulacağı söyleniyor, fakat ağ yöneticileri okul yurtlarını tek bir ağda toplamaktan bile aciz durumda.
Burada anlatacağım yöntem sadece p2p programları için değil, bütün engellenmiş sayfalar, programlar, vs. için [...]]]></description>
			<content:encoded><![CDATA[<p>Bu yazıyı okulumun cinnet geçirttiren bir akşamının ardından yazıyorum.</p>
<p>Pek çok yerde olduğu gibi bizim okulda da p2p programlarının kullanımı engellenmiş durumda. 2 yıldır ağda çalışan bir dc sunucusu kurulacağı söyleniyor, fakat ağ yöneticileri okul yurtlarını tek bir ağda toplamaktan bile aciz durumda.</p>
<p>Burada anlatacağım yöntem sadece p2p programları için değil, bütün engellenmiş sayfalar, programlar, vs. için kullanabilirsiniz.</p>
<p><strong>1. Adım: SSH Hesabı</strong><br />
Bu yöntem için öncelikli olarak bir ssh hesabına ihtiyacınız var. <a href="http://www.bylur.net/free/">buradaki</a> adreste ücretsiz olarak ssh hesabı veren siteleri bulabilirsiniz. bunların arasında <a href="http://www.rootshell.be/">rootshell.be</a> güzel. internette alanınız varsa anlaştığınız firma size ssh hesabı sağlıyor olabilir, onu kullanabilirsiniz. eğer gene de bulamıyorsanız, benimle iletişime geçerseniz size hesap sağlayabilirim.</p>
<p><strong>2. Adım: SSH istemcisi </strong><br />
Linux, Os X ve unix türevleri kullananların ayrı bir program yüklemesine gerek yok, windows kullanıcıları ise <a href="http://the.earth.li/%7Esgtatham/putty/latest/x86/plink.exe">putty - plink</a> programını indirebilir.</p>
<p><strong>3. Adım: Port Yönlendirme</strong><br />
Linux, Os X ve unix türevlerinde şu iki komuttan biri işimizi görecektir:</p>
<p><em>$ ssh -D 1080 sunucuadresi.com:443 </em><br />
veya<br />
<em>$ ssh -D 1080 sunucuadresi.com -P 443</em></p>
<p>özetle, bu komut bir çeşit socks proxy vazifesi görüp kendi makinamızın 1080. portuna gelen istekleri sunucuadresi.com makinasının 443. portuna iletir. 443. port http portunun ssl ile şifrelenmişidir. internet bankaları gibi sunucu ile iletişimin şifreli olarak yapıldığı https protokolu bağlantılarını bu port üzerinden gerçekleştirir.</p>
<p>Windows üzerinde ise cmd ile indirdiğimiz programın klasörüne gidip şu iki komuttan birini vermemiz yeterli:</p>
<p><em>plink.exe -D 1080 sunucuadresi.com:443 </em><br />
veya<br />
<em>plink.exe -D 1080 sunucuadresi.com -P 443</em></p>
<p>kullanıcı adı ve şifremizi de girdikten sonra artık 1080. portumuz socks proxy’si olarak çalışmak üzere ayarlanmış durumda.</p>
<p><strong>4. Adım: P2P programının ayarlanması</strong><br />
p2p programının varsa protokol şifrelemesinin açık olduğuna emin olduktan sonra proxy ayarlarına girip socks5 proxy adresini 127.0.0.1, port’u da 1080 olarak girdikten sonra programı kapatıp açıp istediğimiz her şeyi indirebiliriz. eğer programda port değil de sadece adres girmek için yer varsa adresi 127.0.0.1:1080 şeklinde girebiliriz. Aynı ayar internet tarayıcımız için de geçerli.</p>
<p><strong>5. Adım </strong><br />
Buraya kadar artık her şeyin çalışıyor olması lazım. Yanlız, örneğin bizim okulda herhangi bir websitesi üzerinde bulunan .torrent uzantılı dosyaları indiremiyoruz. bunun için tarayıcımızın proxy ayarlarını 127.0.0.1:1080 olarak değiştirebileceğimiz gibi daha basit yöntemler de var. .torrent dosyasının adresini cgi-proxy olarak geçen sitelere yapıştırırsak sitede login olduktan sonra dosyamız inmeye başlayacaktır.</p>
<p>Cgi-proxy site adresleri için <a href="http://www.privax.us/">buraya</a> bakabilirsiniz.</p>
<p><strong>Yöntemi Engellemek</strong><br />
eğer servis sağlayıcınız açısından sorun çıkabileceğini düşünüyorsanız, asla bu yöntemi uygulamayın. şifrelenmiş paketleri inceleyebilen yazılımlar yok değil, ama sisteme bindirdiği ek yük gibi sorunlar yüzünden fazla tercih edilmiyorlar. SSH erişimini sağlayan adresin bloklanması söz konusu olabilir, bu durumda da başka bir siteden ssh hesabı alabilirsiniz.</p>
none]]></content:encoded>
			<wfw:commentRss>http://gro.tiiy.yiit.org/yazi/ssh-tuneli-ile-yasak-icerige-ulasmakokulda-veya-kampuste-torrent-emule-ve-diger-p2p-programlarini-kullanmak.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>ruby ceasar cipher</title>
		<link>http://gro.tiiy.yiit.org/yazi/ruby-ceasar-cipher.html</link>
		<comments>http://gro.tiiy.yiit.org/yazi/ruby-ceasar-cipher.html#comments</comments>
		<pubDate>Thu, 12 Jul 2007 11:22:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://gro.tiiy.yiit.org/?p=4</guid>
		<description><![CDATA[geçen gün ruby dökümanlarını karıştırmıştım. kendimi biraz yeterli hissetmeye başladım. bugun lab’da kubilay metine ruby’i anlatırken ceasar şifresini tek satır kod ile yazdım dedi, ben de özendim uğraştım eve gelince. ufak bi hile ile de olsa tek satırda şöyle bir şey oluyor:

gets.chop!.each_byte&#123;&#124;i&#124; i=&#40;i+29&#41;.modulo&#40;29&#41;+97; print i.chr&#125;

gets kullanıcıya metin girişi yaptırtıyor.
chop string’in sonundaki satırsonu siliyor.
each_byte stringler için [...]]]></description>
			<content:encoded><![CDATA[<p>geçen gün ruby dökümanlarını karıştırmıştım. kendimi biraz yeterli hissetmeye başladım. bugun lab’da kubilay metine ruby’i anlatırken ceasar şifresini tek satır kod ile yazdım dedi, ben de özendim uğraştım eve gelince. ufak bi hile ile de olsa tek satırda şöyle bir şey oluyor:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby"><span style="color:#CC0066; font-weight:bold;">gets</span>.<span style="color:#CC0066; font-weight:bold;">chop</span>!.<span style="color:#9900CC;">each_byte</span><span style="color:#006600; font-weight:bold;">&#123;</span>|i| i=<span style="color:#006600; font-weight:bold;">&#40;</span>i<span style="color:#006666;">+29</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">modulo</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">29</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006666;">+97</span>; <span style="color:#CC0066; font-weight:bold;">print</span> i.<span style="color:#9900CC;">chr</span><span style="color:#006600; font-weight:bold;">&#125;</span></pre></div></div>

<p>gets kullanıcıya metin girişi yaptırtıyor.<br />
chop string’in sonundaki satırsonu siliyor.<br />
each_byte stringler için bir yineleyici. burda her seferinde her karakteri  i’ye atıyor.<br />
modulo mod alma methodu.<br />
i.chr ise i tamsayısının karşılık geldiği karakteri temsil ediyor.</p>
<p>bu satırın içinde metnin kaç harf kaydıralacağını almayı beceremedim, 29′a eşitledim şimdilik, ama uğraşmaya devam ediyorum. <img src='http://gro.tiiy.yiit.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
none]]></content:encoded>
			<wfw:commentRss>http://gro.tiiy.yiit.org/yazi/ruby-ceasar-cipher.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
