<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dubluve.net</title>
	<atom:link href="http://dubluve.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://dubluve.net</link>
	<description>Biz de yazılımcıyız</description>
	<lastBuildDate>Sat, 19 May 2012 18:29:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Java Immutable (Değişmez) Sınıflar</title>
		<link>http://dubluve.net/2012/05/19/java-immutable-degismez-siniflar/</link>
		<comments>http://dubluve.net/2012/05/19/java-immutable-degismez-siniflar/#comments</comments>
		<pubDate>Sat, 19 May 2012 18:29:37 +0000</pubDate>
		<dc:creator>Ahmet Orsorlu</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[final class]]></category>
		<category><![CDATA[final sınıf]]></category>
		<category><![CDATA[java immutable class]]></category>
		<category><![CDATA[java immutable nesne]]></category>
		<category><![CDATA[java immutable object]]></category>
		<category><![CDATA[java immutable sınıf]]></category>
		<category><![CDATA[thread-safe]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=1388</guid>
		<description><![CDATA[Immutable (değişmez) sınıflar, nesneleri bir kez oluşturulduktan sonra nesne içeriği değiştirilemeyen sınıflardır. Bir nevi sabit sınıflardır diyebiliriz. Örneğin, Java&#8217;da String sınıfı değişmez sınıflardan bir tanesidir. Diğer bilinen değişmez sınıflardan bazıları, Integer, Double, Boolean, BigDecimal sınıflarıdır. Gelin şimdi hem değişmez sınıfların özelliklerini görmek adına hem de değişmez bir sınıf nasıl yaratılır onu görmek adına bir sınıf [...]]]></description>
			<content:encoded><![CDATA[<p>Immutable (değişmez) sınıflar, nesneleri bir kez oluşturulduktan sonra nesne içeriği değiştirilemeyen sınıflardır. Bir nevi sabit sınıflardır diyebiliriz. Örneğin, Java&#8217;da <strong>String</strong> sınıfı değişmez sınıflardan bir tanesidir. Diğer bilinen değişmez sınıflardan bazıları, <strong>Integer</strong>, <strong>Double</strong>, <strong>Boolean</strong>, <strong>BigDecimal</strong> sınıflarıdır.</p>
<p>Gelin şimdi hem değişmez sınıfların özelliklerini görmek adına hem de değişmez bir sınıf nasıl yaratılır onu görmek adına bir sınıf yazalım.</p>
<pre name="code" class="java">public final class ImmutableMutant {
    
    private final String name;
    private final int numberOfArms;
    private final int numberOfLegs;
    
    public ImmutableMutant(final String name, final int numberOfArms,
                            final int numberOfLegs) {
        this.name = name;
        this.numberOfArms = numberOfArms;
        this.numberOfLegs = numberOfLegs;        
    }
    
    public String getName() {
        return name;
    }
    
    public int getNumberOfArms() {
        return numberOfArms;
    }
    
    public int getNumberOfLegs() {
        return numberOfLegs;
    }
}</pre>
<p>Kodu incelediğimizde sınıfın <strong>final</strong> bir sınıf olduğunu görüyoruz. Sınıfı <strong>final</strong> olarak tanımlamanın amacı, sınıfın başka sınıflar tarafından <strong>extend</strong> edilmesini (türetilmesini) engellemek. Yani, <strong>final</strong> sınıfların alt sınıfları olmaz. Dolayısıyla değişmez sınıflardan herhangi bir şekilde başka sınıflar türetilemez.</p>
<p>İkinci olarak, sınıfın tüm elemanları <strong>private</strong> ve <strong>final</strong>&#8216;dır. Yani, sınıf içinden veya dışından herhangi bir şekilde değiştirilemez.</p>
<p>Üçüncü olarak, sınıfın tüm elemanları sadece constructor vasıtasıyla ilklendirilebilir.</p>
<p>Ve son olarak, sınıf elemanlarını dışardan değiştirebilecek metodlar (setter metodları) yoktur.</p>
<p>Şimdi de değişmez sınıfların özellikleri ve avantajlarından bahsedelim. Değişmez sınıf nesneleri kesinlikle thread korumalıdır (thread-safe). Çünkü, bir kez oluşturulduktan sonra içeriği değiştirilemez bu da threadlerde kullanımda ortaya çıkabilecek senkronizasyon sorunlarını ortadan kaldırır. Değişmez sınıf nesnelerinin içerikleri değişmeyeceği için program akışı içerisinde içerikte istenmeyen değişikliklerin olmasının önüne geçilebilecektir. Değişmez sınıf nesnelerini gönül rahatlığıyla başka referanslara atayabilirsiniz. Örneğin, bir metoda yolladığınızda o metod içerisinde nesnenin değişmeyeceğini garanti etmiş olursunuz.</p>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2012/05/19/java-immutable-degismez-siniflar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux process sonlandırma</title>
		<link>http://dubluve.net/2012/05/18/linux-process-sonlandirma/</link>
		<comments>http://dubluve.net/2012/05/18/linux-process-sonlandirma/#comments</comments>
		<pubDate>Fri, 18 May 2012 17:26:29 +0000</pubDate>
		<dc:creator>Gökhan Tunçkale</dc:creator>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[kill process on ubuntu]]></category>
		<category><![CDATA[linux ps aux]]></category>
		<category><![CDATA[ubuntu firefox kill]]></category>
		<category><![CDATA[ubuntu program sonlandır]]></category>
		<category><![CDATA[ubuntu ps aux]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=1380</guid>
		<description><![CDATA[Ubuntu&#8217;da çalışırken ilk defa bir program kilitlendi, Firefox. Çok fazla sekme açtığım ve aynı anda firefox üzerinden bir kaç şey download ettiğim için olduğunu düşünsem de, kilitlendiği zaman ne yapacağımı bilmiyordum. Windows kullanırken herhangi bir program yanıt vermediğinde ctrl+alt+delete (ctrl+shift+esc) yaparak görev yöneticisine ulaşıp oradan programı sonlandırmak ilk olarak yaptığımız iştir. Linux&#8217;ta ne yapacağız peki? [...]]]></description>
			<content:encoded><![CDATA[<p>Ubuntu&#8217;da çalışırken ilk defa bir program kilitlendi, Firefox. Çok fazla sekme açtığım ve aynı anda firefox üzerinden bir kaç şey download ettiğim için olduğunu düşünsem de, kilitlendiği zaman ne yapacağımı bilmiyordum.</p>
<p>Windows kullanırken herhangi bir program yanıt vermediğinde <strong>ctrl+alt+delete (ctrl+shift+esc)</strong> yaparak görev yöneticisine ulaşıp oradan programı sonlandırmak ilk olarak yaptığımız iştir. Linux&#8217;ta ne yapacağız peki?</p>
<p>İlk önce terminali açıyoruz ve <strong>ps aux</strong> yazarak çalışan  processleri buluyoruz.</p>
<pre name="code" class="php">
ps aux
</pre>
<p>Çıkan listeden sonlandırmak istediğimiz processi buluyoruz. </p>
<pre name="code" class="php">
khantunckale     5609  0.0  3.8 713568 151400 ?       Sl   18:03   0:05 /usr/lib/firefox
</pre>
<p>Sonlandıracağımız processin olduğu satırın başında, o processin numarası bulunmaktadır. (Burada 5609)</p>
<p>Sonlandırmak için yapmamız gereken işlem ise <strong>sudo kill -9 <em>proccessNumarası</em></strong> yazmak. Yani örneğimizde;</p>
<pre name="code" class="php">
sudo kill -9 5609
</pre>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2012/05/18/linux-process-sonlandirma/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>linux foreground(fg) komutu (command)</title>
		<link>http://dubluve.net/2012/05/17/linux-foregroundfg-komutu-command/</link>
		<comments>http://dubluve.net/2012/05/17/linux-foregroundfg-komutu-command/#comments</comments>
		<pubDate>Thu, 17 May 2012 20:32:08 +0000</pubDate>
		<dc:creator>Emre Macit</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ctrl z linux]]></category>
		<category><![CDATA[fg command]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[linux fg komutu]]></category>
		<category><![CDATA[linux foreground]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=1372</guid>
		<description><![CDATA[Linuxta bir komut çalıştırdığınızda belki de yanlış bir şey yaptığınızda, CTRL + Z ile o komutu durdurduğunuzu zannediyorsanız, yanılıyorsunuz. Sadece Pause etmiş oluyorsunuz. (Aslında yapmanız gereken CTRL + C kombinasyonudur.) CTRL + Z ile durdurduğunuzu sandığınız bir komuta devam etmek için ise fg komutunu yazabilirsiniz. Komut kaldığı yerden çalışmaya devam edecektir. denemek için sleep 10 [...]]]></description>
			<content:encoded><![CDATA[<p>Linuxta bir komut çalıştırdığınızda belki de yanlış bir şey yaptığınızda, CTRL + Z ile o komutu durdurduğunuzu zannediyorsanız, yanılıyorsunuz. Sadece Pause etmiş oluyorsunuz. (Aslında yapmanız gereken CTRL + C kombinasyonudur.)</p>
<p>CTRL + Z ile durdurduğunuzu sandığınız bir komuta devam etmek için ise fg komutunu yazabilirsiniz.<br />
Komut kaldığı yerden çalışmaya devam edecektir.</p>
<p>denemek için sleep 10 yazın ve sonra 4-5 saniye sonra ctrl + z e basın. Sonra da fg yazıp enter&#8217;a basın.<br />
göreceksiniz ki 5-6 saniye sonra komutunuz bitmiş olacaktır. </p>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2012/05/17/linux-foregroundfg-komutu-command/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>network &#8211; genel Telnet komutları</title>
		<link>http://dubluve.net/2012/05/14/network-genel-telnet-komutlari/</link>
		<comments>http://dubluve.net/2012/05/14/network-genel-telnet-komutlari/#comments</comments>
		<pubDate>Sun, 13 May 2012 22:40:40 +0000</pubDate>
		<dc:creator>Gökhan Tunçkale</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[genel telnet komutları]]></category>
		<category><![CDATA[telnet komutları]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=1357</guid>
		<description><![CDATA[?/help Yardım bilgilerini görüntüler close veya c Mevcut bağlantıyı kapatır display Telnet istemcisine ait ayarları görüntülemeye yarar. open veya o bir Web sitesini bağlanmak için kullanılır quit veya q Telnet&#8217;ten çıkış yapmak için set Ayarlar üzerinde değişiklik yapmak için kullanılır. status Telnet İstemcisinin bağlanıp bağlanmadığını görüntüler unset Oturum açmayı ya da parola istemini kapatır. CTRL [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><strong>?/help</strong> Yardım bilgilerini görüntüler</li>
<li><strong>close</strong> veya <strong>c</strong> Mevcut bağlantıyı kapatır</li>
<li><strong>display</strong> Telnet istemcisine ait ayarları görüntülemeye yarar. </li>
<li><strong>open</strong> veya <strong>o</strong> bir Web sitesini bağlanmak için kullanılır </li>
<li><strong>quit</strong> veya <strong>q</strong> Telnet&#8217;ten çıkış yapmak için</li>
<li><strong>set</strong> Ayarlar üzerinde değişiklik yapmak için kullanılır.</li>
<li><strong>status</strong> Telnet İstemcisinin bağlanıp bağlanmadığını görüntüler</li>
<li><strong>unset</strong> Oturum açmayı ya da parola istemini kapatır.</li>
<li><strong>CTRL + ]</strong> Bağlı olunan oturumdan Telnet komut satırına geçiş yapar.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2012/05/14/network-genel-telnet-komutlari/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>network &#8211; Telnet nedir?</title>
		<link>http://dubluve.net/2012/05/14/network-telnet-nedir/</link>
		<comments>http://dubluve.net/2012/05/14/network-telnet-nedir/#comments</comments>
		<pubDate>Sun, 13 May 2012 22:32:50 +0000</pubDate>
		<dc:creator>Gökhan Tunçkale</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[ftp http telnet farkı]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[Telnet]]></category>
		<category><![CDATA[telnet login olma]]></category>
		<category><![CDATA[telnet protokolü]]></category>
		<category><![CDATA[telnet windows 7]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=1353</guid>
		<description><![CDATA[Telnet, İnternet ve ya özel bir ağ ile ulaşılabilen bir makineye bağlanmak için gerçekleştirilen TCP/IP protokolü ve bu işi yapan programlara verilen genel isimdir. Bağlanılan makinede login olabilmek için orada bir username&#8217;e sahip olmanız ve bir telnet erişim programının olması gerekir. Telnet erişimli bazı web servisleri, bağlantı sırasında username istemeyebilirler, ya da girmemiz gereken username [...]]]></description>
			<content:encoded><![CDATA[<p>Telnet, İnternet ve ya özel bir ağ ile ulaşılabilen bir makineye bağlanmak için gerçekleştirilen TCP/IP protokolü ve bu işi yapan programlara verilen genel isimdir. </p>
<p>Bağlanılan makinede <strong>login</strong> olabilmek için orada bir username&#8217;e sahip olmanız ve bir <strong>telnet erişim programı</strong>nın olması gerekir. Telnet erişimli bazı web servisleri, bağlantı sırasında username istemeyebilirler, ya da girmemiz gereken username bağlantığımızda otomatik olarak karşımıza çıkabilir.<br />
Telnet erişim programları genellikle işletim sistemi ile birlikte gelmektedir <strong>(Windows 7 işletim sisteminde güvenlik nedeni ile Telnet pasif haldedir. Aktifleştirmek için <em>Program Ekle/Kaldır</em> -><em> Windows özelliklerini aç ve ya kapat</em> tıklayarak Telnet bileşenlerini aktifleştirebiliriz.)</strong>. Telnet işlemleri genellikle komut satırından gerçekleşir.</p>
<p>Telnet protokolü girdiğimiz username ve password&#8217;u, bağlı olduğumuz ağda rahatlıkla görülebilecek şekilde <strong>düz metin (plain text) formatında</strong> gönderir. Bu yüzden telnet güvensizdir. Çünkü ağa erişebilen herkes girdiğimiz username ve password&#8217;u görebilir. </p>
<p>Windows ortamında Telnet istemcisini Başlat -> çalıştır -> telnet.exe yazarak çalıştırabiliriz. Daha sonra telnet komutu ardından da bağlanmak istediğimiz makinenin IP adresini yazarız (yazdıktan sonra Enter) ve karşımıza komut satırı gelir. Buraya username ve password yazdıktan sonra karşıdaki makineye bağlanmış oluruz. Komut satırından çalıştırabileceğimiz genel telnet komutlarından <a href="http://dubluve.net/2012/05/14/network-genel-telnet-komutlari" title="network - genel Telnet komutları" target="_blank">burada</a> bahsettim.</p>
<p>Telnet karşıdaki makinaya bağlanmak için bir protokol dedik. Http ve Ftp&#8217;de karşıdaki makinaya bağlanmak için olan protokollerden bazıları. Özellikle internette uzaktaki bilgisayara bağlanmak ve protokoller izin verdiği ölçüde karşıdaki bilgisayarı kullanmak bu saydığım protokoller için geçerli.</p>
<h3>Telnet&#8217;in farkı nedir?</h3>
<p>Web üzerinde <strong>Http</strong> protokolünü kullanarak bilgisayarlar arasında gezinebiliyoruz. Genel mantığı, biz browser üzerinden sunucuya bir istekte bulunuruz ve sunucu bize isteğimiz doğrultusunda bir yanıt verir. Aynı şekilde <strong>Ftp</strong> protokolünde de bilgisayarımızdan sunucuya dosya alış-verişi konusunda istekte bulunuruz, sunucu da bize gerekli dosyayı verir ya da biz oraya dosyayı yükleriz. İki durumda da karşı makineye herhangi bir <strong>giriş (login olma) işlemi yok, sadece istekte bulunuyoruz.</strong></p>
<p>Telnet kullandığımızda ise uzaktaki makineye giriş yaparız, yani <strong>login oluruz</strong>. Konsol sayesinde sanki o makinenin başındaymış gibi işlem yapabiliriz. Bu olaya <strong>Remote Login</strong> denir. </p>
<p>Ayrıca, Http ve Ftp protokollerini kullandığımızda uzaktaki bilgisayarın hangi işletim  sistemi ile çalıştığı önemli değildir. Telnet kullandığımızda ise sunucunun sahip olduğu işletim sistemi bize sunulur. Dolayısıyla kullanılan işletim sistemi ve yazdığımız telnet komutları sonunca ortaya çıkan sonuç bize aynen yansır.</p>
<p>Günümüzde Telnet kullanımı uzaktaki sunucuya erişmek adına pek yaygın değildir. Fakat yine de sunucuya komut yollamak, gelen cevapları kontrol etmek ve <strong>SMTP, IRC, HTTP, FTP veya POP3</strong> gibi servislerdeki sorunların tespitinde kullanılmaktadır.</p>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2012/05/14/network-telnet-nedir/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Bozulmaktaki Türkçe&#8217;miz..</title>
		<link>http://dubluve.net/2012/05/12/bozulmaktaki-turkcemiz/</link>
		<comments>http://dubluve.net/2012/05/12/bozulmaktaki-turkcemiz/#comments</comments>
		<pubDate>Fri, 11 May 2012 22:30:36 +0000</pubDate>
		<dc:creator>Emre Macit</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[türkçe]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=1348</guid>
		<description><![CDATA[Gün geçtikçe dilimiz ne yazık ki içler acısı bir hal alıyor. Sokağa çıktığımızda, etrafta tabelalar, konuşulan şeylerin, şehrin neredeyse yarısı yabancı dilde. Çay bahçesi veya Kahve yok artık hiçbir yerde. Café var. Pub var, bar var.. 40 yıllık pastanelerimiz bile &#8220;patisserie&#8221; olmuş durumda. Kuaförlerimiz Coiffeur oldu. Araçlarımız doğan, şahindi eskiden şimdi hepsi ultra mega thunder [...]]]></description>
			<content:encoded><![CDATA[<p>Gün geçtikçe dilimiz ne yazık ki içler acısı bir hal alıyor. Sokağa çıktığımızda, etrafta tabelalar, konuşulan şeylerin, şehrin neredeyse yarısı yabancı dilde. Çay bahçesi veya Kahve yok artık hiçbir yerde. Café var. Pub var, bar var.. 40 yıllık pastanelerimiz bile &#8220;patisserie&#8221; olmuş durumda. Kuaförlerimiz Coiffeur oldu. Araçlarımız doğan, şahindi eskiden şimdi hepsi ultra mega thunder oldu. Televizyondaki reklamlar ingilizce olunca daha bir ilgi çekici ve karizmatik oluyor. Halkla ilişkiler ve pazarlama uzmanlarının umrunda değil ki Türkçemiz bozulmuş! Önemli olan müşteri toplamak.. Daha da önemlisi karizma yapmak.</p>
<p>Bir yazılımcı olarak bilgisayar kavramları arasında boğuşup dururken elbet ki Türkçe-İngilizce birbirine çok karışıyor ve tarzanca diye nitelendirdiğim bir garip dil ortaya çıkıyor. Fakat günlük dilde konuşurken biraz da olsa dikkat etmeye çalışıyorum. Elimdeki A ürününü B ürünüyle &#8220;change&#8221; yapmıyorum örneğin. Ama dediğim gibi ; Bir projede milestone yerine &#8220;mihenk taşı&#8221; diyorum, ne yazık ki derdimi anlatamıyorum. Mecburen ben de milestone diyorum dilimi yuvarlaya yuvarlaya.. Günlük konuşmamız içinde de Türkçe sözlüğümüzde olmayan o kadar çok kelime var ki&#8230; Hangisini söyleyeyim?</p>
<p>Türkçemize sahip çıkmalıyız, durum git gide kötüleşiyor yoksa&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2012/05/12/bozulmaktaki-turkcemiz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache Performans Ayarları (Performance tuning) Önerileri</title>
		<link>http://dubluve.net/2012/05/11/apache-performans-ayarlari-performance-tuning-onerileri/</link>
		<comments>http://dubluve.net/2012/05/11/apache-performans-ayarlari-performance-tuning-onerileri/#comments</comments>
		<pubDate>Fri, 11 May 2012 15:09:59 +0000</pubDate>
		<dc:creator>Emre Macit</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache önerileri]]></category>
		<category><![CDATA[apache performance tuning]]></category>
		<category><![CDATA[apache performans ayarları]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=796</guid>
		<description><![CDATA[Apache&#8217;de Performans ayarını yapmaya yeltenmişseniz, öyleyse bazı terimleri biliyor, bazı sorunlarla karşılaşmış, bazı sıkıntılar yaşıyor olduğunuz manasını çıkarıyorum çok rahatlıkla. Öyle değilse de, bilgi iyidir, okuyunuz. &#160; Apache, güzel(!) bir web serveri. Bir sürü de ayarı mevcut. Burada bahsetmek istediğim konu, genel olarak hangi 3 ü 5 yapacağınız, hangi 200 yerine 50 yazacağınız ile ilgili [...]]]></description>
			<content:encoded><![CDATA[<p>Apache&#8217;de Performans ayarını yapmaya yeltenmişseniz, öyleyse bazı terimleri biliyor, bazı sorunlarla karşılaşmış, bazı sıkıntılar yaşıyor olduğunuz manasını çıkarıyorum çok rahatlıkla.</p>
<p>Öyle değilse de, bilgi iyidir, okuyunuz. <img src='http://dubluve.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>Apache, güzel(!) bir web serveri. Bir sürü de ayarı mevcut.</p>
<p>Burada bahsetmek istediğim konu, genel olarak hangi 3 ü 5 yapacağınız, hangi 200 yerine 50 yazacağınız ile ilgili değil. Yani hesapsal ayarlardan bahsetmeyeceğim. O apayrı ve ihtiyaca yönelik bir konu çünkü.</p>
<p><strong>Peki bunlardan bahsetmeyeceksemne manası kaldı bu yazının? </strong><br />
Şöyle ki, Apache de performans ayarı yapmak istiyorasnız, hali hazırda yoğun çalışan bir veya birkaç apache web serveriniz olduğu yorumunu çıkarıyorum. Burada Sayısal değerler sistemden sisteme değişiklik göstermekte. Benim bir uygulamam session ve mysql bağlantısı bile kullanmadan, yoğun çalışıyorsa bu ayrı bir durum ve ayrı bir optimizasyon gerekiyor, veya veya veritabanı ve statik içerik durumu yoğun ise bu ayrı bir optimizasyon gerektiriyor.</p>
<p>Ben burada sadece bakış açısını izah etmeye çalıaşcağım.</p>
<p>Bu noktada bazı denemelerimiz oldu bunları paylaşmak isterim.</p>
<p>Apache istekleri karsılarken statik veya php isteklerinde, gelen isteklerin sayısıyla birlikte parabolik olarak artan bir grafik çiziyor. gelen istek arttıkça, makina load&#8217;u artarak artıyor ve bir süre sonra sistemi kitleyebiliyor. (%95 kitliyor emin olun.) </p>
<h3>Statik dosyalar (Resimler, css, js, vb..)</h3>
<p>Apache php isteklerini normal bir şekilde verirken, statik içerik devreye girdiğinde içeride açtığı portları iyi yönetemiyor. Bir web sitesinin bir sayfasında genelde 1 php isteği, 40-50 tane de statik içerik isteği oluyor. Bu noktada apache den dolayı saçlarımız dökülmeye başlıyor.</p>
<p>Statik içerik ile ilgili noktada cache için EXPIRES headeri göndermek ilk yapılacak şey olabilir.<br />
Browser bir içeriği cachelese bile o dosya değişmiş mi diye server a soruyor. Bu noktada bu sorgu da request olarak bir maliyet oluşturuyor. Expıre cache i ile server browser a bu dosyaya verdiğiniz süre kadar değişmeyeceğinin garantisini veriyor, ve dosyalarınız değişmeyeceğinin teyidi alındığından browser o dosya cacheinde varsa, server a hiç sormuyor.</p>
<p>Bir değişiklik durumu için ise, statik dosyalarınızın sonuna ?time=2938748292 şeklinde bir timestamp koyarak çekmesini sağlyabilirsiniz. Örneğin bir dosyanız var ve normalde adı header.jpg . Siz bubunu EXPIRES ile cachelemesini söylerseniz, değiştirseniz bile browser eski dosyayı yeni gibi gösterecektir. Bu noktada siz isteği header.jpg?t=23984729493 şeklinde gönderirseniz, ve dosyanızı değiştirdiğinizde , bu timestampı da değiştirirseniz, veya dosya ismine bu timestampı kaydederseniz, browser cachelediği eski dosyayı bulamayacağından, yeni dosyayı çekmiş olacaktır.</p>
<p>Anlatmak istediğim, siz bir dosya değiştirmedikçei sayfanıza bir kere gelen kişi, 2. sorgudan itibaren gereksiz request göndermemeye başlayacak. 1 sayfa ilk açılışta 45 statik + 1 php = 46 request dersek,2. requestten itibaren 1 requeste inecektir. Bu da CİDDİ avantaj olacaktır. </p>
<h3>Apachedeki gereksiz modüller</h3>
<p>Apachenizde kullanmadığınız yani gereksiz modüller açık olabilir. Bunları kapatın. Neyi kullanıp neyi kullanmadığınızı araştırmanız biraz zzaman alabilir, ama bunların da küçük de osla bir miktar etkisini görürsünüz.</p>
<h3>Apache .htaccess desteğini kapatın</h3>
<p>.htaccess dosyaları çeşitli server ayarlarını yapabildiğiniz dosyadır. Buna ihtiyacınız yoksa, htaccess desteğini direkt kapatın. İhtiyacınız varsa da httpd.conf seviyesinden genel olarak yapmaya özen gösterin. Yani imkan varsa hiç kullanmayın. Ama zend framework gibi frameworkler mod_rewrite vb modüllerine ihtiyaç duyuyor diyorsanız da httpd.conf seviyesinden de ihtiyazınıcı görebiirsiniz. (Tabi ki yönetimi daha zor oluyor haliyle)</p>
<p>Apache htaccess desteği varsa, her requestte isteğin gittiği php dosyasına kadarki klasör ailesinde (örneğin /usr/local/php/deneme/example/html/index.php php sayfasına gelen requestte, sırasıyla usr, sonra local sonra php sonra deneme sonra example sonra html klasörlerinin içinde) .htaccess dosyası var mı? varsa load et kuralları çalıştır işlemini  yapıyor. bu da tekil bir isteğin gecikmesine sebep olabiliyor. Bunu da kapatmanız sizi pembe bir gökyüzüne kavuşturmayacak ama bir miktar avantaj sağlayacaktır.</p>
<p>Bahsetmek istediğim daha çok şey var fakat, amaç burada bakış açısı olarak, kendinizi bilgisayar yerine koyarak düşünmektir. Böyle yaparsanız, belirli seviyeye kadar performansı artırabiirsiniz. Belirli seviye dememin sebebi ise, ileride bazı performans ihtiyaçlarınıza apachenin yeterli olmayacağını farkedeceksiniz. Bu zaman ise, apache&#8217;nin yerine ne koymamız gerektiğini konuşuruz. <img src='http://dubluve.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2012/05/11/apache-performans-ayarlari-performance-tuning-onerileri/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>midnight commander &#8211; mc &#8211; konsol tabanli klasor-dosya yoneticisi</title>
		<link>http://dubluve.net/2012/05/11/midnight-commander-mc-konsol-tabanli-klasor-dosya-yoneticisi/</link>
		<comments>http://dubluve.net/2012/05/11/midnight-commander-mc-konsol-tabanli-klasor-dosya-yoneticisi/#comments</comments>
		<pubDate>Fri, 11 May 2012 14:41:41 +0000</pubDate>
		<dc:creator>Emre Macit</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Uygulama]]></category>
		<category><![CDATA[console file explorer]]></category>
		<category><![CDATA[mc]]></category>
		<category><![CDATA[midnight commander]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=1318</guid>
		<description><![CDATA[Midnight commander linux sistemlerde çalışabilen konsol tabanlı bir programdır. dosya ağacını daha görsel bir ortamda gezebilmenize olanak sağlar. Sağ ve Sol 2 ekranda ayrı klasörleri gezip, dosya kopyalama klasör kopyalama vb gibi işlemleri yapmanıza olanak sağlar. MC nasıl yüklenir? redhat tabanlı sistemler için YUM paketi ile yum install mc diyerek, debian ubuntu tabanlılar için APT [...]]]></description>
			<content:encoded><![CDATA[<p>Midnight commander linux sistemlerde çalışabilen konsol tabanlı bir programdır. dosya ağacını daha görsel bir ortamda gezebilmenize olanak sağlar. Sağ ve Sol 2 ekranda ayrı klasörleri gezip, dosya kopyalama klasör kopyalama vb gibi işlemleri yapmanıza olanak sağlar. </p>
<h3>MC nasıl yüklenir?</h3>
<p>redhat tabanlı sistemler için YUM paketi ile</p>
<pre>yum install mc</pre>
<p>diyerek, debian ubuntu tabanlılar için APT paketi ile</p>
<pre>apt-get install mc</pre>
<p>diyerek sisteminize yükleyebilirsiniz.</p>
<p>Centos ta yüklediğinizde her tarafın garip karakterler ile dolduruğunu görürseniz , muhtemelen putty üzerinden iletişim kuruyorsunuzdur. (<a href="http://www.andremiller.net/content/getting-midnight-commander-line-drawing-work-putty" target="_blank">şu link</a>te olduğu gibi)Böyle ise encoding ile ilgili bir problem var demektir. Bunu da putty ayarlarınızdan Traslation kısmında encoding&#8217;inizi UTF-8 yaparak düzeltebilirsiniz.</p>
<p>Ayrıca programın search, copy paste,vb gibi konsol tabanlı olmasına rağmen bir çok özelliğinin bulunduğunu da belirteyim. Bunları da kurcalayıp bulabilirsiniz. (programı açtığınızda f1,f2 gibi function tuşlarıyla ulaşabilirsiniz)</p>
<p>Bir de aynı şekilde mcedit programı var. Bunu da ayrı bir yazıda yazmak isterim.</p>
<p>Bu programı uzak bağlantı ve server ortamında bir şeyler ile uğraşan herkese tavsiye ederim.</p>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2012/05/11/midnight-commander-mc-konsol-tabanli-klasor-dosya-yoneticisi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>network &#8211; Port Yönlendirme (Port Forwarding) nedir?</title>
		<link>http://dubluve.net/2012/05/10/network-port-forwarding-nedir/</link>
		<comments>http://dubluve.net/2012/05/10/network-port-forwarding-nedir/#comments</comments>
		<pubDate>Thu, 10 May 2012 21:02:59 +0000</pubDate>
		<dc:creator>Gökhan Tunçkale</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[Port]]></category>
		<category><![CDATA[port forwarding]]></category>
		<category><![CDATA[port yönlendirme]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=1342</guid>
		<description><![CDATA[İnternete her bağlandığımızda bir adet IP adresine sahip olduğumuz biliyoruz. Bu IP adresi internete bağlandığımız bilgisayarın internet üzerindeki adresine denk gelmektedir. Ama aslında internete giren bilgisayarımız değil, modemdir. İnterneti bilgisayarla paylaşan modem olduğu için, bilgisayarla modem arasında da bir ağ (network) olması gerekir. Ortada bir ağ varsa her iki tarafın da IP adresi var demektir. [...]]]></description>
			<content:encoded><![CDATA[<p>İnternete her bağlandığımızda bir adet IP adresine sahip olduğumuz biliyoruz. Bu IP adresi internete bağlandığımız bilgisayarın internet üzerindeki adresine denk gelmektedir. Ama aslında <strong>internete giren bilgisayarımız değil, modemdir.</strong> İnterneti bilgisayarla paylaşan modem olduğu için, bilgisayarla modem arasında da bir ağ (network) olması gerekir. Ortada bir ağ varsa her iki tarafın da IP adresi var demektir. Bilgisayarın, modemle kurduğu LAN için bir adet IP adresi, modemin ise hem bilgisayarla kurduğu LAN için bir IP adresi, hem de internetteki IP adresi vardır.</p>
<p>Bilgisayar ile internet arasındaki iletişimin modem üzerinden olduğunu, yani bilgisayar ile modem arasındaki <strong>yerel IP</strong>’ler üzerinden olduğunu artık biliyoruz. </p>
<p>Port Yönlendirme (Port forwarding) işlemi biz internete girerken genellikle gerekmeyebilir. Çünkü biz erişmek istediğimiz yere kendi IP adresimizi veriyoruz. Eğer bilgisayarımıza dışardan erişmek istiyorsak, karşı tarafa hangi IP adresine sahip olduğumuzu ve hangi <strong>portu</strong> kullandığımızı bildirmemiz gerekir. Verdiğimiz IP adresi ile ancak modeme erişilebilir, çünkü az önce de söylediğim gibi internete erişen aslında modemdir. </p>
<p>Uzaktaki bilgisayarın erişmek istediği bizim bilgisayarımız ise, modemin yapması gereken, dışarıdan gelen isteği bizim bilgisayarımıza yönlendirmektir. Örnek vermek gerekirse, modem, kendisine uzaktaki bilgisayardan, internet üzerindeki IP adresi ve A portuyla gelen bir isteği, bilgisayarımızın <strong>ilgili portuna yönlendirir.</strong> Modem yönlendirir diyorum fakat bu işlemi de biz gerçekleştiririz. Gerçekleşen bu işleme port yönlendirme denir. </p>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2012/05/10/network-port-forwarding-nedir/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>network &#8211; Bridge nedir?</title>
		<link>http://dubluve.net/2012/05/08/network-bridge-nedir/</link>
		<comments>http://dubluve.net/2012/05/08/network-bridge-nedir/#comments</comments>
		<pubDate>Mon, 07 May 2012 23:13:06 +0000</pubDate>
		<dc:creator>Gökhan Tunçkale</dc:creator>
				<category><![CDATA[Network]]></category>
		<category><![CDATA[bridge]]></category>
		<category><![CDATA[bridge lan]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[network lan]]></category>

		<guid isPermaLink="false">http://dubluve.net/?p=1337</guid>
		<description><![CDATA[Aynı protokolü kullanan alt ağları birbirine bağlamaya yararlar. Nasıl çalışırlar? Şöyle; birbirine LAN ile bağlı 4 bilgisayar düşünelim, bunlardan bağımsız ama yine birbiriyle LAN ile bağlı 4 bilgisayar daha düşünelim. Bu iki LAN’ı birbirleriyle (bridge kullanarak) bağladığımız zaman mantıken ortaya bir LAN çıkar. Bridge burda ne işe yarar, ne yapar kısmına gelelim. Bu bahsi geçen [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Aynı protokolü</strong> kullanan alt ağları birbirine bağlamaya yararlar. </p>
<p>Nasıl çalışırlar? Şöyle; birbirine LAN ile bağlı 4 bilgisayar düşünelim, bunlardan bağımsız ama yine birbiriyle LAN ile bağlı 4 bilgisayar daha düşünelim. Bu iki LAN’ı birbirleriyle (<strong>bridge</strong> kullanarak) bağladığımız zaman mantıken ortaya bir LAN çıkar.</p>
<p><strong>Bridge</strong> burda ne işe yarar, ne yapar kısmına gelelim. Bu bahsi geçen 2 LAN’ın kendi içlerinde oluşturduğu bir <strong>veri akış trafiği</strong> vardır. Bir LAN’dan diğerine veri aktarmak istediğimizde doğal olarak trafik artışı olacaktır. Bu iki bağımsız ağ arasına konulan köprü, iki tarafa da aktarılmak istenen verileri inceler. Eğer verinin gitmesi gereken adres diğer ağda değilse, onu diğer ağ tarafına geçirmez ve böylece <strong>diğer tarafın trafiği boş yere artmaz</strong>. Yani bridge verilerin gideceği adresleri tutar diyebiliriz. </p>
<p>Bunlara ek olarak <strong>bridge</strong> süzme işlemi yaptığı için, yani bir LAN’dan diğerine verileri kontrol ederek geçirdiği için, LAN’lardan herhangi birinde oluşan hatalar ya da arızalar diğer LAN’ı etkilemez. </p>
]]></content:encoded>
			<wfw:commentRss>http://dubluve.net/2012/05/08/network-bridge-nedir/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  dubluve.net/feed/ ) in 2.36057 seconds, on May 20th, 2012 at 1:45 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on May 20th, 2012 at 2:45 am UTC -->
