<?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>Mert Kavi</title>
	<atom:link href="http://www.mertkavi.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.mertkavi.com</link>
	<description>Bilgisayar mühendisliği öğrencisi ve sıkı teknoloji takipçisi.</description>
	<lastBuildDate>Sat, 28 Jan 2012 16:40:29 +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>Torrent Finder v1.2 Çıktı</title>
		<link>http://www.mertkavi.com/torrent-finder-v1-2-cikti.html</link>
		<comments>http://www.mertkavi.com/torrent-finder-v1-2-cikti.html#comments</comments>
		<pubDate>Sat, 28 Jan 2012 16:40:29 +0000</pubDate>
		<dc:creator>Mert Kavi</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Bilgisayar Bilimleri]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Telefon]]></category>
		<category><![CDATA[torrent android app]]></category>
		<category><![CDATA[torrent android application]]></category>
		<category><![CDATA[torrent finder]]></category>
		<category><![CDATA[torrent finder android app]]></category>
		<category><![CDATA[torrent finder android application]]></category>
		<category><![CDATA[torrent finder apk]]></category>
		<category><![CDATA[torrent finder download]]></category>

		<guid isPermaLink="false">http://www.mertkavi.com/?p=519</guid>
		<description><![CDATA[Bir Android uygulaması olan Torrent Finder&#8217;ın 1.2 versiyonu çıktı.Bu yeni sürüm ile gelen  yenilikler şöyle: Artık torrent arama butonuna dokunulduğunda kullancıyı bilgilendiren bir Progress Dialog gösterilecek.Çünkü çok fazla torrent dosyası bulunduğunda,bu verileri çekerken geçen zamanda program sanki donmuş gibi davranıyordu,böylece bunun önüne geçilmiş oldu. Artık kullanıcı hangi torrent sitesinde arama yapacağını kendisi seçebilecek.Uygulamaya marketten verimli [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="https://lh6.ggpht.com/SasoYrpDphyg4OMrPxUL_f2P4pHisJlCST2Npc5Bztkaf5gVMEu-MBkMfgjz7eh_jLU=w124" alt="https://lh6.ggpht.com/SasoYrpDphyg4OMrPxUL_f2P4pHisJlCST2Npc5Bztkaf5gVMEu-MBkMfgjz7eh_jLU=w124" /></p>
<p>Bir Android uygulaması olan Torrent Finder&#8217;ın 1.2 versiyonu çıktı.Bu yeni sürüm ile gelen  yenilikler şöyle:</p>
<ul>
<li>Artık torrent arama butonuna dokunulduğunda kullancıyı bilgilendiren bir Progress Dialog gösterilecek.Çünkü çok fazla torrent dosyası bulunduğunda,bu verileri çekerken geçen zamanda program sanki donmuş gibi davranıyordu,böylece bunun önüne geçilmiş oldu.</li>
<li>Artık kullanıcı hangi torrent sitesinde arama yapacağını kendisi seçebilecek.Uygulamaya marketten verimli bir yorum geldi ona göre şekillendirdim.Şuan sadece 2 torrent sitesinde (Fenopy ve isoHunt) arama yapılabiliyor.Sadece 2 olmasının sebebi ben değil torrent sitelerinin suçu <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Çünkü çoğu bırakın doğru düzgün API&#8217;yı hiç API sunmuyor.</li>
</ul>
<p>Android Market&#8217;ten uygulamayı inceleyebilirsiniz:</p>
<p style="text-align: center;"><a href="https://market.android.com/details?id=com.kavi.torrentfinder" target="_blank" onclick="pageTracker._trackPageview('/outgoing/market.android.com/details?id=com.kavi.torrentfinder&amp;referer=');">Uygulamanın Market Linki</a><br />
<img src="http://qrcode.kaywa.com/img.php?s=5&amp;d=https%3A%2F%2Fmarket.android.com%2Fdetails%3Fid%3Dcom.kavi.torrentfinder" alt="qrcode" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mertkavi.com/torrent-finder-v1-2-cikti.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bir Android uygulaması: Torrent Finder Güncel Yazı</title>
		<link>http://www.mertkavi.com/bir-android-uygulamasi-torrent-finder-v2.html</link>
		<comments>http://www.mertkavi.com/bir-android-uygulamasi-torrent-finder-v2.html#comments</comments>
		<pubDate>Fri, 20 Jan 2012 01:18:49 +0000</pubDate>
		<dc:creator>Mert Kavi</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Bilgisayar Bilimleri]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Telefon]]></category>
		<category><![CDATA[android market]]></category>
		<category><![CDATA[torrent android app]]></category>
		<category><![CDATA[torrent android application]]></category>
		<category><![CDATA[torrent finder]]></category>
		<category><![CDATA[torrent finder android app]]></category>
		<category><![CDATA[torrent finder android application]]></category>
		<category><![CDATA[torrent finder apk]]></category>
		<category><![CDATA[torrent finder barcode]]></category>
		<category><![CDATA[torrent finder download]]></category>

		<guid isPermaLink="false">http://www.mertkavi.com/?p=512</guid>
		<description><![CDATA[Bloga en son 19 Haziran&#8217;da yazmışım,yani uzun zaman olmuş.1-2 ay önce yaptığım bi&#8217; Android uygulaması vardı Torrent Finder, hala Android Market&#8217;e koymadım Bari dedim bloga QR Code ile birlikte koyuyumda isteyen yüklesin diye düşünürek bu yazıyı yazıyorum.(Yazının sonunda indirme linkini de bulabilirsiniz) Teknik olarak biraz açıyım uygulamada neler olduğunu birilerine faydam olsun.Uygulama 2 Activity&#8217;den oluşuyor [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="https://lh6.ggpht.com/SasoYrpDphyg4OMrPxUL_f2P4pHisJlCST2Npc5Bztkaf5gVMEu-MBkMfgjz7eh_jLU=w124" alt="https://lh6.ggpht.com/SasoYrpDphyg4OMrPxUL_f2P4pHisJlCST2Npc5Bztkaf5gVMEu-MBkMfgjz7eh_jLU=w124" /></p>
<blockquote><p>Bloga en son 19 Haziran&#8217;da yazmışım,yani uzun zaman olmuş.1-2 ay önce yaptığım bi&#8217; <strong>Android uygulaması vardı Torrent Finder</strong>, hala Android Market&#8217;e koymadım <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Bari dedim bloga<strong> QR Code</strong> ile birlikte koyuyumda isteyen <strong>yüklesin</strong> diye düşünürek bu yazıyı yazıyorum.<strong>(Yazının sonunda indirme linkini de bulabilirsiniz)</strong></p>
<p><strong>Teknik</strong> olarak biraz açıyım uygulamada neler olduğunu birilerine faydam olsun.<strong>Uygulama 2 Activity&#8217;den oluşuyor</strong> ve sırasıyla şu işlemleri gerçekleştiriyor:</p>
<ul>
<li><strong>FirstActivity</strong> açılıyor bu activity&#8217;de <strong>1 textbox 1 button</strong> var</li>
<li>Textbox&#8217;a yazı girilip button&#8217;a basılıyor &#8211; &gt;textbox&#8217;a girilen kelimeyi bir işlemden geçiriyor bu işlem <strong>arada ki boşluğu &#8220;+&#8221; haline getiriyor</strong> (çünkü torrent arama api&#8217;si böyle işliyor) yani; &#8220;the big bang theory&#8221; yazıldıysa textbox&#8217;a bu &#8220;the+big+bang+theory&#8221; oluyor</li>
<li>Bu kelime bir<strong> intent&#8217;e putExtra aracılığı ile koyulup bir anahtar kelimeyle gönderiliyor</strong>. Böylece <strong>SearchActivity</strong> açılıyor</li>
<li>Intent&#8217;e koyulan kelime buraya getiriliyor</li>
<li>Bir <strong>ArrayList</strong> oluşturuluyor</li>
<li><strong>Http</strong> bağlantıları açılıyor</li>
<li><strong>JSON</strong> ile alınan veriler parse edilip,düzenleniyor ve bir <strong>JSONArray</strong> halinde geliyor</li>
<li>Bir list&#8217;e <strong>ListAdapter</strong> oluşturularak yazılıyor ve list&#8217;in her bir item&#8217;i için <strong>OnItemClickListener</strong> oluşturuluyor (böylece tıklandığında torrent dosyası indiriliyor)</li>
</ul>
<p>Bir çok aşamayı atlayıp sadece ana işlemleri anlatmaya çalıştım ancak bu kadar oluyor <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Yakında projeyi GitHub&#8217;a da koyacağım o zaman kodları da göreceğinizden dolayı daha iyi anlayacaksınız.</p></blockquote>
<p>Demişitim ve sonunda kafamı dinleme zamanı buldum ve hemen bir geliştirici hesabı açtım.Uygulamamı Android Market&#8217;e koydum.Böylece Android Market&#8217;e ilk uygulamam girmiş oldu.Başka başka uygulamalara inşallah <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: center;"><a href="https://market.android.com/details?id=com.kavi.torrentfinder" target="_blank" onclick="pageTracker._trackPageview('/outgoing/market.android.com/details?id=com.kavi.torrentfinder&amp;referer=');">Uygulamanın Market Linki</a><br />
<img src="http://qrcode.kaywa.com/img.php?s=5&amp;d=https%3A%2F%2Fmarket.android.com%2Fdetails%3Fid%3Dcom.kavi.torrentfinder" alt="qrcode" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mertkavi.com/bir-android-uygulamasi-torrent-finder-v2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu üzerine Apache Tomcat ve Play Framework kurulumu</title>
		<link>http://www.mertkavi.com/ubuntu-uzerine-apache-tomcat-ve-play-framework-kurulumu.html</link>
		<comments>http://www.mertkavi.com/ubuntu-uzerine-apache-tomcat-ve-play-framework-kurulumu.html#comments</comments>
		<pubDate>Mon, 26 Dec 2011 13:35:33 +0000</pubDate>
		<dc:creator>Mert Kavi</dc:creator>
				<category><![CDATA[Bilgisayar Bilimleri]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache tomcat]]></category>
		<category><![CDATA[play framework]]></category>
		<category><![CDATA[tomcat kurulumu]]></category>
		<category><![CDATA[ubuntu tomcat kurulumu]]></category>

		<guid isPermaLink="false">http://www.mertkavi.com/?p=473</guid>
		<description><![CDATA[Başlayalım Konsola giriyoruz: diyerek Tomcat&#8217;i kuruyoruz ve ayar yapabileceğimiz bir instance oluşturuyoruz. Play Framework 9000 portunu dinlediği için Tomcat&#8217;in default portunu 9000 yapmalıyız.(Tomcat default port 8080) Server.xml dosyasını açıp port alanlarını 9000 yapıyoruz. Tomcat Server&#8217;ı nasıl açarım/kaparım ? veya Play Framework&#8217;u sitesinden indiriyoruz. Home/kullanıci-adi yerine çıkartıyoruz.Ve sırada PATH ayarı,konsola giriyoruz: Test Sürüşü: Konsola giriyoruz: Diyoruz [...]]]></description>
			<content:encoded><![CDATA[<p>Başlayalım <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Konsola giriyoruz:</p>
<pre class="brush: plain; title: ; notranslate">sudo apt-get install tomcat7
sudo apt-get install tomcat7-docs
sudo apt-get install tomcat7-admin
sudo apt-get install tomcat7
sudo apt-get install tomcat7-user
tomcat7-instance-create my-instance</pre>
<p>diyerek Tomcat&#8217;i kuruyoruz ve ayar yapabileceğimiz bir instance oluşturuyoruz.</p>
<p>Play Framework 9000 portunu dinlediği için Tomcat&#8217;in default portunu 9000 yapmalıyız.(Tomcat default port 8080)</p>
<pre class="brush: plain; title: ; notranslate">cd my-instance/conf
vi server.xml</pre>
<p>Server.xml dosyasını açıp port alanlarını 9000 yapıyoruz.</p>
<p>Tomcat Server&#8217;ı nasıl açarım/kaparım ?</p>
<pre class="brush: plain; title: ; notranslate">cd my-instance/bin
sh shutdown.sh</pre>
<p>veya</p>
<pre class="brush: plain; title: ; notranslate">sh startup.sh</pre>
<p>Play Framework&#8217;u sitesinden indiriyoruz.</p>
<p>Home/kullanıci-adi yerine çıkartıyoruz.Ve sırada PATH ayarı,konsola giriyoruz:</p>
<pre class="brush: plain; title: ; notranslate">PATH=$PATH:/home/kullanici-adi/play
export PATH</pre>
<p>Test Sürüşü:</p>
<p>Konsola giriyoruz:</p>
<pre class="brush: plain; title: ; notranslate">play new testSurusu
play run testSurusu</pre>
<p>Diyoruz ve tarayıcımızda localhost:9000 sayfasını açıyoruz ki ne görüyoruz <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Play Framework default indexi.</p>
<p><strong>Not:</strong> Bilgisayarımız her yeniden başlattığımızda,Play Framework&#8217;u kullanmak için PATH ayarını yeniden yapmamız gerekiyor.Şimdilik buna bir çözüm bulamadım bulursam yazarım <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Düzenleme:</strong> Kadir Doğan&#8217;ın katkısıyla,notta söylediğim sorunun çözümünü bulmuş olduk.</p>
<p><strong>Çözüm:</strong></p>
<blockquote><p>Bilgisayarı her başlattığında PATH e eklediğin değerin silinmemesini istiyorsan; environment değişkenini bash dosyasına kaydetmelisin</p>
<p>$ vi ~/.bash_profile<br />
export PATH:/home/kullanici-adi/play</p>
<p><a href="https://help.ubuntu.com/community/EnvironmentVariables" rel="nofollow" onclick="pageTracker._trackPageview('/outgoing/help.ubuntu.com/community/EnvironmentVariables?referer=');">https://help.ubuntu.com/community/EnvironmentVariables</a></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.mertkavi.com/ubuntu-uzerine-apache-tomcat-ve-play-framework-kurulumu.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Vim Ayar Dosyası ve Ayarlamak</title>
		<link>http://www.mertkavi.com/vim-ayar-dosyasi-ve-ayarlamak.html</link>
		<comments>http://www.mertkavi.com/vim-ayar-dosyasi-ve-ayarlamak.html#comments</comments>
		<pubDate>Tue, 20 Dec 2011 12:15:26 +0000</pubDate>
		<dc:creator>Mert Kavi</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[vi ayar dosyası]]></category>
		<category><![CDATA[vi ayarlamak]]></category>
		<category><![CDATA[vi editor]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[vim ayar dosyası]]></category>
		<category><![CDATA[vim ayarlamak]]></category>
		<category><![CDATA[vim editor]]></category>
		<category><![CDATA[vim satır numaralarını göstermek]]></category>
		<category><![CDATA[vimrc]]></category>

		<guid isPermaLink="false">http://www.mertkavi.com/?p=469</guid>
		<description><![CDATA[Vim editörü kendi isteğinize göre ayarlamak istiyorsanız yapmanız gerekenler şunlar olacak: Konsola giriyoruz. Dediğimiz zaman vim&#8217;in kategorilere ayrılmış onlarca ayarı olduğunu görürüz.Bunlardan ayarlanacakları belirleyip şu şekilde devam ediyoruz: Yeni bir konsol açıyoruz: Yeni bir dosya açılacak biz buraya isteğimize göre ayarları yazıyoruz.Örneğin benim ayar dosyamın bir parçası: Bu ayarlar bana satır numaralarını göstermeyi ve her [...]]]></description>
			<content:encoded><![CDATA[<p>Vim editörü kendi isteğinize göre ayarlamak istiyorsanız yapmanız gerekenler şunlar olacak:</p>
<p>Konsola giriyoruz.</p>
<pre class="brush: plain; title: ; notranslate">vi
: options
</pre>
<p>Dediğimiz zaman vim&#8217;in kategorilere ayrılmış onlarca ayarı olduğunu görürüz.Bunlardan ayarlanacakları belirleyip şu şekilde devam ediyoruz:</p>
<p>Yeni bir konsol açıyoruz:</p>
<pre class="brush: plain; title: ; notranslate">cd
vi ~/.vimrc</pre>
<p>Yeni bir dosya açılacak biz buraya isteğimize göre ayarları yazıyoruz.Örneğin benim ayar dosyamın bir parçası:</p>
<pre class="brush: plain; title: ; notranslate">:set nu
:set ts=4</pre>
<p>Bu ayarlar bana satır numaralarını göstermeyi ve her tab tuşuna basıldığına 4 boşluk gitmesini söylüyor.Default ayarlarda satır numaraları yok ve 8 boşluk gidiyor örneğin.</p>
<p>Zaten <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_surprised.gif' alt=':o' class='wp-smiley' /> ptions dediğimizde ayarların nasıl bir syntax&#8217;ta olduğu anlaşılıyor <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Kolay gelsin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mertkavi.com/vim-ayar-dosyasi-ve-ayarlamak.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pardus&#8217;ta F.lux Kullanımı (Yükleme ve Ayarlama)</title>
		<link>http://www.mertkavi.com/pardusta-f-lux-kullanimi-yukleme-ve-ayarlama.html</link>
		<comments>http://www.mertkavi.com/pardusta-f-lux-kullanimi-yukleme-ve-ayarlama.html#comments</comments>
		<pubDate>Sat, 17 Dec 2011 01:33:06 +0000</pubDate>
		<dc:creator>Mert Kavi</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[f.lux]]></category>
		<category><![CDATA[flux]]></category>
		<category><![CDATA[flux kurulumu]]></category>
		<category><![CDATA[linux flux kurulumu]]></category>
		<category><![CDATA[pardus]]></category>
		<category><![CDATA[pardus f.lux kurulumu]]></category>
		<category><![CDATA[pardus flux kurulumu]]></category>

		<guid isPermaLink="false">http://www.mertkavi.com/?p=460</guid>
		<description><![CDATA[F.lux ne işe yarar ? F.lux&#8217;a bulunduğumuz yerin enlem ve boylamını veririz o bize ekran parlaklığını,rengini bulunduğumuz yerin saatine göre sessiz sakin ayarlar.Özellikle geceleri ekranı sarımsı bir renk yapar -ki bu renk gözleri yormaz- ama isterseniz değişedebilir. F.lux kurulumu: Programı kurmadan önce tabii ki indirmeliyiz.xflux.tgz buradan tgz halini indirelim.Sonra herhangi bir yere çıkartalıp.Konsolu açalım ve [...]]]></description>
			<content:encoded><![CDATA[<h2>F.lux ne işe yarar ?</h2>
<p>F.lux&#8217;a bulunduğumuz yerin enlem ve boylamını veririz o bize ekran parlaklığını,rengini bulunduğumuz yerin saatine göre sessiz sakin ayarlar.Özellikle geceleri ekranı sarımsı bir renk yapar -ki bu renk gözleri yormaz- ama isterseniz değişedebilir.</p>
<h2>F.lux kurulumu:</h2>
<p>Programı kurmadan önce tabii ki indirmeliyiz.<a href="http://secure.herf.org/flux/xflux.tgz" onclick="pageTracker._trackPageview('/outgoing/secure.herf.org/flux/xflux.tgz?referer=');">xflux.tgz</a> buradan tgz halini indirelim.Sonra herhangi bir yere çıkartalıp.Konsolu açalım ve çalıştırılabilir dosyayı konsola doğru sürükleyelim ardından &#8220;Enter&#8221; a basalım.F.lux&#8217;a hoşgeldiniz falan filan diyecek.Eğer ki size şöyle böyle bağımlılıkları var ve bunlar senin bilgisayarında yüklü değil derse o bağımlılığı PiSi&#8217;de aratıp bulun ve indirin.Sonra tekrar bu işlemi yapın <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h2>F.lux ayarı:</h2>
<p>Tabii ki bulunduğumuz yerin enlem ve boylamını bulmamız gerek.<a href="http://itouchmap.com/latlong.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/itouchmap.com/latlong.html?referer=');">Bu</a> adrese giriyoruz.&#8221;Adress&#8221; kısmına hangi şehirdeysek onu yazıp &#8220;Go&#8221; diyoruz.Site bize enlem ve boylamı veriyor.Konsola gidip şu komutu giriyoruz:</p>
<p><code>-l ALDIGIMIZ_LATITUDE -g ALDIGIMIZ_LONGITUDE</code></p>
<p>yazıp enter&#8217;a bastığımızda ekranın rengi yavaş yavaş değişiyor <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Sağlıklı günler <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mertkavi.com/pardusta-f-lux-kullanimi-yukleme-ve-ayarlama.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Katana nedir,nasıl yapılır ? Ve birazda Japon kültürü</title>
		<link>http://www.mertkavi.com/katana-nedirnasil-yapilir-ve-birazda-japon-kulturu.html</link>
		<comments>http://www.mertkavi.com/katana-nedirnasil-yapilir-ve-birazda-japon-kulturu.html#comments</comments>
		<pubDate>Fri, 09 Sep 2011 13:42:34 +0000</pubDate>
		<dc:creator>Mert Kavi</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[belgesel]]></category>
		<category><![CDATA[daimyo kimdir]]></category>
		<category><![CDATA[daimyo nedir]]></category>
		<category><![CDATA[geyşa]]></category>
		<category><![CDATA[japon belgeseli]]></category>
		<category><![CDATA[japon klanları]]></category>
		<category><![CDATA[japon kültürü]]></category>
		<category><![CDATA[japonya]]></category>
		<category><![CDATA[katana]]></category>
		<category><![CDATA[katana nasıl yapılır]]></category>
		<category><![CDATA[katana nedir]]></category>
		<category><![CDATA[matsuke nedir]]></category>
		<category><![CDATA[metsuke nedir]]></category>
		<category><![CDATA[samuray kılıcı]]></category>
		<category><![CDATA[samuraylar]]></category>
		<category><![CDATA[shogun nedir]]></category>

		<guid isPermaLink="false">http://www.mertkavi.com/?p=437</guid>
		<description><![CDATA[Katana bir Japon kılıcı.Dünyanın en keskin kılıçları katanalardır.O kadar keskindir ki bir insanı başından bacak arasına kadar ikiye bölebilecek kadar keskindir.Hem çok sert cisimleri kesecek kadar keskindir hemde saç teli gibi minimum incelikte cisimleri kesecek kadar hassastır. Samurayların kullandığı bu kılıçlar (veya buşi sınıfında ki savaşçılar) o zamanlar Japonya&#8217;da onur ve sosyla gücü temsil edermişti.Dövüşlerde [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mertkavi.com/wp-content/uploads/2011/09/katana10.jpg" rel="lightbox[437]" title="katana"><img class="aligncenter size-full wp-image-438" title="katana" src="http://www.mertkavi.com/wp-content/uploads/2011/09/katana10.jpg" alt="" width="600" height="341" /></a></p>
<p>Katana bir Japon kılıcı.Dünyanın en keskin kılıçları katanalardır.O kadar keskindir ki bir insanı başından bacak arasına kadar ikiye bölebilecek kadar keskindir.Hem çok sert cisimleri kesecek kadar keskindir hemde saç teli gibi minimum incelikte cisimleri kesecek kadar hassastır.</p>
<p>Samurayların kullandığı bu kılıçlar (veya buşi sınıfında ki savaşçılar) o zamanlar Japonya&#8217;da onur ve sosyla gücü temsil edermişti.Dövüşlerde kullanılmasının yanında seppuku için de kullanılırmıştı.Seppuku denilen şey çoğumuzun bildiği  halk tabiriyle hara-kiri (Japon halkından bahsediyorum <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) Seppuku resmi olarak kullanılan isimmiş.Eğer samuray hükümdarına ihanet ederse veya kötü hizmet ederse seppuku yapması gerekirmiş.Seppuku yapacak kişi yani hara-kiri (zaten Japonca&#8217;da hara-kiri karın deşmek anlamına geliyor) kılıcı karnına geçirip artı işareti çizerek tüm iç organlarını dökmek ve öyle ölmek için yapılan bir olay.Eğer samuray devletine iyi hizmet ettiyse onun en sadık arkadışına arkadaşı seppuku yaptıktan sonra başını kesme görevi verilirmiş (acı çekmesin diye).</p>
<p>Eğer samuray kılıcının (katana) nasıl bişey olduğunu,nasıl yapıldığını,ne kadar keskin olduğunu merak ediyorsanız vereceğim linkteki belgeseli izlemenizi öneririm.</p>
<h2>Linkler</h2>
<p><a href="http://tr.wikipedia.org/wiki/Katana" onclick="pageTracker._trackPageview('/outgoing/tr.wikipedia.org/wiki/Katana?referer=');">Katana</a></p>
<p><a href="http://tr.wikipedia.org/wiki/Seppuku" onclick="pageTracker._trackPageview('/outgoing/tr.wikipedia.org/wiki/Seppuku?referer=');">Seppuku</a></p>
<p><a href="http://tr.wikipedia.org/wiki/Samuray" onclick="pageTracker._trackPageview('/outgoing/tr.wikipedia.org/wiki/Samuray?referer=');">Samuray</a></p>
<p><a href="http://www.belgesell.com/samuray-kilici-katana.html" onclick="pageTracker._trackPageview('/outgoing/www.belgesell.com/samuray-kilici-katana.html?referer=');">Bahsettiğim belgesel</a></p>
<p>Bu kadar konuştunda ne alaka şimdi seninle veya bu blogla diyebilirsiniz.Gelelim Japon kültürüne ve bu kılıçlara nasıl merak saldığıma <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Total War : Shougun 2 oynarken orada devamlı Japon kültürünün öğelerini görüyorsunuz,değişik muhabbetler.Samuraylar,geyşalar.ninjalar,daimyolar,klanlar,matsukeler,shogun&#8217;luk ve daha bir sürü konu.Hatta bakın ne yapmışlar <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <a href="http://www.turktotalwar.com/index.php?topic=4139.0" onclick="pageTracker._trackPageview('/outgoing/www.turktotalwar.com/index.php?topic=4139.0&amp;referer=');"> Total War Shogun 2&#8242;den öğrendiğimiz 100 şey </a>ve gerçekten doğru <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  İşte buralardan yola çıkarak bu yazıyıda yazmış oldum.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mertkavi.com/katana-nedirnasil-yapilir-ve-birazda-japon-kulturu.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Music Nedir ve Google Music Davetiyesi</title>
		<link>http://www.mertkavi.com/google-music-nedir-ve-google-music-davetiyesi.html</link>
		<comments>http://www.mertkavi.com/google-music-nedir-ve-google-music-davetiyesi.html#comments</comments>
		<pubDate>Sun, 04 Sep 2011 14:29:18 +0000</pubDate>
		<dc:creator>Mert Kavi</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[google music]]></category>
		<category><![CDATA[google music davetiye]]></category>
		<category><![CDATA[google music davetiyesi]]></category>
		<category><![CDATA[google music nedir]]></category>

		<guid isPermaLink="false">http://www.mertkavi.com/?p=428</guid>
		<description><![CDATA[Google her alanda yeni işler yapmaya devam ediyor.O kadar çok hizmeti var ki size çok yarayacak illa bi&#8217; tane çıkar.Bunlardan biri de Google Music.Bu bir nimet! Müzik arşivinizi internetle senktronize etmenizi sağlıyor ve tam tamına 20.000 şarkı kapasitesi var.Kim 20.000&#8242;den fazlasını ister ki ? Herhangi bir bilgisayardan ve Android&#8217;li telefonunuzdan müziğinize heryerden ulaşabiliyorsunuz hatta Android [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mertkavi.com/wp-content/uploads/2011/09/google-music.jpg" rel="lightbox[428]" title="google-music"><img class="aligncenter size-full wp-image-429" title="google-music" src="http://www.mertkavi.com/wp-content/uploads/2011/09/google-music.jpg" alt="" width="584" height="310" /></a></p>
<p>Google her alanda yeni işler yapmaya devam ediyor.O kadar çok hizmeti var ki size çok yarayacak illa bi&#8217; tane çıkar.Bunlardan biri de Google Music.Bu bir nimet! Müzik arşivinizi internetle senktronize etmenizi sağlıyor ve tam tamına 20.000 şarkı kapasitesi var.Kim 20.000&#8242;den fazlasını ister ki ? Herhangi bir bilgisayardan ve Android&#8217;li telefonunuzdan müziğinize heryerden ulaşabiliyorsunuz hatta Android Google Music App&#8217;i son çalınan şarkıları çevrimdışı çalabiliyor.</p>
<p>İlk önce bilgisayarınıza küçük bir uygulama yüklüyorsunuz bu programa müzik arşivinizin nerede olduğunu belirtiyorsunuz program arkada şarkılarınızı upload ediyor.</p>
<p>Şimdilik (belki de her zaman) sistem sadece ABD&#8217;ye açık.Ama şanslı olanlar (benim gibi :p) sistemi kullanabiliyor.Ve diğer şanslı olanlar (sizin gibi :p) davetiye kapabiliyorlar.</p>
<p>Elimde 9 adet davetiye var isteyen arkadaşlara verebilirim.İsteyenler yorumlarını ve mail adreslerini yazabilirler.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mertkavi.com/google-music-nedir-ve-google-music-davetiyesi.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>LG Optimus Black P970 İncelemesi</title>
		<link>http://www.mertkavi.com/lg-optimus-black-p970-incelemesi.html</link>
		<comments>http://www.mertkavi.com/lg-optimus-black-p970-incelemesi.html#comments</comments>
		<pubDate>Thu, 25 Aug 2011 13:16:27 +0000</pubDate>
		<dc:creator>Mert Kavi</dc:creator>
				<category><![CDATA[İncelemeler]]></category>
		<category><![CDATA[lg optimus black]]></category>
		<category><![CDATA[lg optimus black inceleme]]></category>
		<category><![CDATA[lg optimus black özellikleri]]></category>
		<category><![CDATA[lg optimus black performans]]></category>
		<category><![CDATA[lg p970]]></category>
		<category><![CDATA[lg p970 inceleme]]></category>

		<guid isPermaLink="false">http://www.mertkavi.com/?p=423</guid>
		<description><![CDATA[Öncelikle telefonun kısaca teknik özelliklerine bakalım: NOVA Display özelliğine sahip IPS LCD kapasitif dokumantik ekran 480 x 800 piksel, 4.0 inç 2 GB dahili hafıza (1 GB kullanılabilir) 512 MB RAM 5 MP Kamera, 720p HD video kayıt desteği Dünyanın en yüksek piksel değerine sahip önce kamerası; 2 MP 1 GHz Cortex-A8 işlemci, PowerVR SGX530 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mertkavi.com/wp-content/uploads/2011/08/lgoptimusblackall.jpg" rel="lightbox[423]" title="lgoptimusblackall"><img class="aligncenter size-full wp-image-424" title="lgoptimusblackall" src="http://www.mertkavi.com/wp-content/uploads/2011/08/lgoptimusblackall.jpg" alt="" width="600" height="460" /></a></p>
<p><strong>Öncelikle telefonun kısaca teknik özelliklerine bakalım:</strong></p>
<ul>
<li>NOVA Display özelliğine sahip IPS LCD kapasitif dokumantik ekran</li>
<li>480 x 800 piksel, 4.0 inç</li>
<li>2 GB dahili hafıza (1 GB kullanılabilir)</li>
<li>512 MB RAM</li>
<li>5 MP Kamera, 720p HD video kayıt desteği</li>
<li>Dünyanın en yüksek piksel değerine sahip önce kamerası; 2 MP</li>
<li>1 GHz Cortex-A8 işlemci, PowerVR SGX530 GPU, TI OMAP 3630 chipset</li>
</ul>
<p>Cihazın temel teknik özellikleri böyle.</p>
<h2>Tasarım</h2>
<p>Telefon 122 x 64 x 9.2 mm ve 109 g.Telefonu elinize aldığınız zaman hafif ama hissedilebilen bir ağırlık hissi oluşturuyor.Telefon o kadar ince ki hangi cebinize koyduğunuzu farketmiyorsunuz.Dışarıdan da cebinize 4.0 inçlik bir telefon olduğu belli olmuyor bile o kadar ince.Telefonun dışı plastik olmasına rağmen size gerekli sağlamlık hissini veriyor.Ön tarafında telefonla konuşurken sesi duymamızı sağlayan hoparlör,ışık sensörü,2 MP kamera ve fiziksel tuş bulundurmayan 4.0 inçlik bir ekran var.Arka tarafta ise LED Flash,5 MP kamera ve sol altta normal hoparlör bulunuyor.Yukarısında 3.5 mm&#8217;lik kulaklık girişi, microUSB girişi (sürgülü kapağı var) ve telefon kilidi için açma kapama tuşu bulunuyor.Aşağıda ise sesin temiz gitmesi için bir mikrofon konumlandırılmış.Sol tarafta ses arttırma ve azaltma tuşları ve G key tuşu bulunuyor.Sağ tarafta ise hiçbir şey yok.</p>
<h2>Ekran</h2>
<p>Ekranda LG&#8217;nin özel teknolojisi NOVA kullanılmış.Şuan dünyanın en parlak ekranına sahip telefonu LG Optimus Black P970.Nova display&#8217;in en önemli özelliklerinden biri telefonu güneşte bile çok rahat görebilmeniz.Telefonu son parlaklığa getirdiğinizde gözlerinize inanamayacaksanız çünkü gerçekten çok net ve çok parlak.Çok fazla telefon inceledim ve kullandım ama şunu diyebilirim ki bu telefon gördüğüm telefonlar arasında ki en güzel ekrana sahip telefon.Zaten LG bu konuyu ballandıra ballandıra anlatıyor.</p>
<h2>Ses</h2>
<p>Ana hoparlör kalitesi çok üst düzey değil ama bana yeterli ve kaliteli geldi.Ses seviyesi de kalitesi de gayet iyi.Konuşmalar için koyulan hoparlör (üst hoparlör) ise gerçekten iyi karşı tarafında sesi çok temiz ve net duyuluyor.Telefonu eli yüzü düzgün bir kulaklık taktığınızda da telefonun ses kalitesini anlıyorsunuz.Tertemiz,mükemmel bir ses veriyor.</p>
<h2>Kamera</h2>
<p>2 MP ön kamera bile işinizi görebilecek kalitede düşünün ki 5 MP kamerayı.Telefondan bir fotoğraf makinesi kadar kaliteli fotoğraflar çekmesini beklemiyorsanız sizi çok fazla memnun edecektir.Fotoğraflar çok net ve kaliteli çıkıyor.Karanlık ortamlarda ise LED flashın gerekliliğini anlıyorsunuz ve telefonda flash olduğuna şükrediyorsunuz <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Video çekim kalitesine gelirsek; yaklaşık 20 dakikalık en son kalitede bir video çektim boyutu 700 mb tuttu.Boyut yüksek kalite yüksek mi derseniz gerçekten çok kaliteli video çekiyor.Aklıma takılan tek bir nokta var 3gp formatında kaydetmesi.Hiç sevmediğim bi&#8217; format <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Keşke MP4 olarak kaydetseydi.Önemli bi&#8217; noktayıda söylemeden geçemeyeyim hafıza kartınızın class değeri düşükse (2-4 gibi) video çekimlerinde sıkıntı yaşıyacaksınız demektir çünkü o kartların yazma hızı değeri düşük olduğu için kayıt hızına yetişemiyor ve takılmalar oluyor bu takılmalarda da ses senkron sorunu oluyor.Ses önde geliyor.Eğer alabiliyorsanız class 10 bir micro sd alın.</p>
<h2>Android Versiyonu</h2>
<p>Telefonun bi&#8217; eksi olarak Android 2.2 versiyonu ile geliyor.LG&#8217;nin açıklamasına göre eylülde 2.3 güncellemesi gelicek ama keşke en baştan itibaren 2.3 ile gelseydi.</p>
<h2>CPU ve GPU (İşlemci Özellikleri) ve RAM</h2>
<p>Telefon 1 GHz Cortex-A8 processor ve PowerVR SGX530 GPU ile geliyor.Yani bu demek oluyor ki telefon istediğimiz işlemleri çok hızlı bi&#8217; şekilde yapıcak.Çünkü 1GHz gerçekten yüksek bir değer.Zaten telefonu kullandığınızda bu kendini belli ediyor uygulamalar çok hızlı bir şekilde açılıyor,kapanıyor ve işlem yapıyor.GPU&#8217;ya gelirsek; benim şuana kadar oynayamadığım oyun olmadı çok kaliteli grafiklerle çok güzel oyunlar oynadım <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Hiçbir kasma olmadı.Gameloft&#8217;un çok güzel HD oyunları var bu arada <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  RAM 512 mb ki bu bir telefonda için fazla bile çünkü arkaplanda kaç tane program açık bırakabilirsiniz ki.Ram konusunda da hiç bir problem çıkmıyor ve her zaman belirli bir boşluk oluyor.</p>
<h2>Batarya</h2>
<p>Her ne kadar LG verimli bir ekran üretmiş olsada sonuçta 4 inçlik devasa bir ekran ve 1 GHz bir işlemci var ortada.Doğal olarak (tüm akıllı telefonlarda olduğu gibi) bataryanın boşalması çok uzun sürmüyor.Ortalama bir değer verecek olursak batarya 1 gün gidiyor.Yani her gün şarja koymak zorundasınız.Ben yedek bir batarya sipariş ettim,öneririm.</p>
<h2>Sonuç</h2>
<p>&#8220;Önerir misin ?&#8221; diye sorarsanız,eğer 900-1000 lira civarında bir telefon alacaksanız en iyisi bu ve paranında hakkını veriyor.Kesiklikle öneririm.Yapamadığı ve yapmakta zorlandığı hiçbir şey yok bu canavarın <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Buralara Bakın</h2>
<p><a href="http://forum.donanimhaber.com/m_51714483/mpage_1/key_/tm.htm#msglink_51714483" onclick="pageTracker._trackPageview('/outgoing/forum.donanimhaber.com/m_51714483/mpage_1/key_/tm.htm_msglink_51714483?referer=');">Burada ki</a> videoları inceleyin,forum.donanimhaber&#8217;de ki OB konularına göz atın.Birde telefon resimlerde göründüğünden daha güzel imkanınız varsa kendi gözünüzle bir görün.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mertkavi.com/lg-optimus-black-p970-incelemesi.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bir Android uygulaması: Torrent Finder</title>
		<link>http://www.mertkavi.com/bir-android-uygulamasi-torrent-finder.html</link>
		<comments>http://www.mertkavi.com/bir-android-uygulamasi-torrent-finder.html#comments</comments>
		<pubDate>Sat, 20 Aug 2011 13:38:51 +0000</pubDate>
		<dc:creator>Mert Kavi</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[android market]]></category>
		<category><![CDATA[torrent android app]]></category>
		<category><![CDATA[torrent android application]]></category>
		<category><![CDATA[torrent finder]]></category>
		<category><![CDATA[torrent finder android app]]></category>
		<category><![CDATA[torrent finder android application]]></category>
		<category><![CDATA[torrent finder apk]]></category>
		<category><![CDATA[torrent finder barcode]]></category>
		<category><![CDATA[torrent finder download]]></category>

		<guid isPermaLink="false">http://www.mertkavi.com/?p=414</guid>
		<description><![CDATA[Bloga en son 19 Haziran&#8217;da yazmışım,yani uzun zaman olmuş.1-2 ay önce yaptığım bi&#8217; Android uygulaması vardı Torrent Finder, hala Android Market&#8217;e koymadım Bari dedim bloga QR Code ile birlikte koyuyumda isteyen yüklesin diye düşünürek bu yazıyı yazıyorum.(Yazının sonunda indirme linkini de bulabilirsiniz) Teknik olarak biraz açıyım uygulamada neler olduğunu birilerine faydam olsun.Uygulama 2 Activity&#8217;den oluşuyor [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mertkavi.com/wp-content/uploads/2011/08/torrentfinderqr.png" rel="lightbox[414]" title="torrentfinderqr"><img title="torrentfinderqr" src="http://www.mertkavi.com/wp-content/uploads/2011/08/torrentfinderqr.png" alt="" width="280" height="280" /></a></p>
<p>Bloga en son 19 Haziran&#8217;da yazmışım,yani uzun zaman olmuş.1-2 ay önce yaptığım bi&#8217; <strong>Android uygulaması vardı Torrent Finder</strong>, hala Android Market&#8217;e koymadım <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Bari dedim bloga<strong> QR Code</strong> ile birlikte koyuyumda isteyen <strong>yüklesin</strong> diye düşünürek bu yazıyı yazıyorum.<strong>(Yazının sonunda indirme linkini de bulabilirsiniz)</strong></p>
<p><strong>Teknik</strong> olarak biraz açıyım uygulamada neler olduğunu birilerine faydam olsun.<strong>Uygulama 2 Activity&#8217;den oluşuyor</strong> ve sırasıyla şu işlemleri gerçekleştiriyor:</p>
<ul>
<li><strong>FirstActivity</strong> açılıyor bu activity&#8217;de <strong>1 textbox 1 button</strong> var</li>
<li>Textbox&#8217;a yazı girilip button&#8217;a basılıyor &#8211; &gt;textbox&#8217;a girilen kelimeyi bir işlemden geçiriyor bu işlem <strong>arada ki boşluğu &#8220;+&#8221; haline getiriyor</strong> (çünkü torrent arama api&#8217;si böyle işliyor) yani; &#8220;the big bang theory&#8221; yazıldıysa textbox&#8217;a bu &#8220;the+big+bang+theory&#8221; oluyor</li>
<li>Bu kelime bir<strong> intent&#8217;e putExtra aracılığı ile koyulup bir anahtar kelimeyle gönderiliyor</strong>. Böylece <strong>SearchActivity</strong> açılıyor</li>
<li>Intent&#8217;e koyulan kelime buraya getiriliyor</li>
<li>Bir <strong>ArrayList</strong> oluşturuluyor</li>
<li><strong>Http</strong> bağlantıları açılıyor</li>
<li><strong>JSON</strong> ile alınan veriler parse edilip,düzenleniyor ve bir <strong>JSONArray</strong> halinde geliyor</li>
<li>Bir list&#8217;e <strong>ListAdapter</strong> oluşturularak yazılıyor ve list&#8217;in her bir item&#8217;i için <strong>OnItemClickListener</strong> oluşturuluyor (böylece tıklandığında torrent dosyası indiriliyor)</li>
</ul>
<p>Bir çok aşamayı atlayıp sadece ana işlemleri anlatmaya çalıştım ancak bu kadar oluyor <img src='http://www.mertkavi.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Yakında projeyi GitHub&#8217;a da koyacağım o zaman kodları da göreceğinizden dolayı daha iyi anlayacaksınız.</p>
<p><a href="http://www.mertkavi.com/TorrentFinder.apk">Torrent Finder APK Dosyasını İndir</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mertkavi.com/bir-android-uygulamasi-torrent-finder.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP ile Adobe PSD dosyalarını gösterme</title>
		<link>http://www.mertkavi.com/php-ile-adobe-psd-dosyalarini-gosterme.html</link>
		<comments>http://www.mertkavi.com/php-ile-adobe-psd-dosyalarini-gosterme.html#comments</comments>
		<pubDate>Sun, 19 Jun 2011 19:04:57 +0000</pubDate>
		<dc:creator>Mert Kavi</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[display adobe psd file with php]]></category>
		<category><![CDATA[php ile psd dosyalarını gösterme]]></category>
		<category><![CDATA[php psd]]></category>
		<category><![CDATA[php psd display]]></category>
		<category><![CDATA[php psd dosyası gösterme]]></category>
		<category><![CDATA[psd]]></category>

		<guid isPermaLink="false">http://www.mertkavi.com/?p=405</guid>
		<description><![CDATA[PHP ile nasıl PSD dosyarını gösteririm ? diye sorarsanız işte böyle: Öncelike bir classPhpPsdReader.php dosyamız var.Yazarı Tim de Koning.Detaylı bilgiyi sınıftaki yorum bölümünde bulabilirsiniz. classPhpPsdReader.php Kullanımı Kullanımıda gayet basit.Aşağıda bir örnek var:]]></description>
			<content:encoded><![CDATA[<p>PHP ile nasıl PSD dosyarını gösteririm ? diye sorarsanız işte böyle:</p>
<p>Öncelike bir classPhpPsdReader.php dosyamız var.Yazarı Tim de Koning.Detaylı bilgiyi sınıftaki yorum bölümünde bulabilirsiniz.</p>
<h2>classPhpPsdReader.php</h2>
<p><span id="more-405"></span></p>
<pre class="brush: php; title: ; notranslate">
&lt;?

/* This file is released under the GPL, any version you like

*

*	PHP PSD reader class, v1.3

*

*	By Tim de Koning

*

*	Kingsquare Information Services, 22 jan 2007

*

*	example use:

*	------------

*	&lt;?php

*	include_once('classPhpPsdReader.php')

*	header(&quot;Content-type: image/jpeg&quot;);

*	print imagejpeg(imagecreatefrompsd('test.psd'));

*	?&gt;

*

*	More info, bugs or requests, contact info@kingsquare.nl

*

*	Latest version and demo: http://www.kingsquare.nl/phppsdreader

*

*	TODO

*	----

*	- read color values for &quot;multichannel data&quot; PSD files

*	- find and implement (hunter)lab to RGB algorithm

*	- fix 32 bit colors... has something to do with gamma and exposure available since CS2, but dunno how to read them...

*/

class PhpPsdReader {

	var $infoArray;

	var $fp;

	var $fileName;

	var $tempFileName;

	var $colorBytesLength;

	function PhpPsdReader($fileName) {

		set_time_limit(0);

		$this-&gt;infoArray = array();

		$this-&gt;fileName = $fileName;

		$this-&gt;fp = fopen($this-&gt;fileName,'r');

		if (fread($this-&gt;fp,4)=='8BPS') {

			$this-&gt;infoArray['version id'] = $this-&gt;_getInteger(2);

			fseek($this-&gt;fp,6,SEEK_CUR); // 6 bytes of 0's

			$this-&gt;infoArray['channels'] = $this-&gt;_getInteger(2);

			$this-&gt;infoArray['rows'] = $this-&gt;_getInteger(4);

			$this-&gt;infoArray['columns'] = $this-&gt;_getInteger(4);

			$this-&gt;infoArray['colorDepth'] = $this-&gt;_getInteger(2);

			$this-&gt;infoArray['colorMode'] = $this-&gt;_getInteger(2);

			/* COLOR MODE DATA SECTION */ //4bytes Length The length of the following color data.

			$this-&gt;infoArray['colorModeDataSectionLength'] = $this-&gt;_getInteger(4);

			fseek($this-&gt;fp,$this-&gt;infoArray['colorModeDataSectionLength'],SEEK_CUR); // ignore this snizzle

			/*  IMAGE RESOURCES */

			$this-&gt;infoArray['imageResourcesSectionLength'] = $this-&gt;_getInteger(4);

			fseek($this-&gt;fp,$this-&gt;infoArray['imageResourcesSectionLength'],SEEK_CUR); // ignore this snizzle

			/*  LAYER AND MASK */

			$this-&gt;infoArray['layerMaskDataSectionLength'] = $this-&gt;_getInteger(4);

			fseek($this-&gt;fp,$this-&gt;infoArray['layerMaskDataSectionLength'],SEEK_CUR); // ignore this snizzle

			/*  IMAGE DATA */

			$this-&gt;infoArray['compressionType'] = $this-&gt;_getInteger(2);

			$this-&gt;infoArray['oneColorChannelPixelBytes'] = $this-&gt;infoArray['colorDepth']/8;

			$this-&gt;colorBytesLength = $this-&gt;infoArray['rows']*$this-&gt;infoArray['columns']*$this-&gt;infoArray['oneColorChannelPixelBytes'];

			if ($this-&gt;infoArray['colorMode']==2) {

				$this-&gt;infoArray['error'] = 'images with indexed colours are not supported yet';

				return false;

			}

		} else {

			$this-&gt;infoArray['error'] = 'invalid or unsupported psd';

			return false;

		}

	}

	function getImage() {

		// decompress image data if required

		switch($this-&gt;infoArray['compressionType']) {

			// case 2:, case 3: zip not supported yet..

			case 1:

				// packed bits

				$this-&gt;infoArray['scanLinesByteCounts'] = array();

				for ($i=0; $i&lt;($this-&gt;infoArray['rows']*$this-&gt;infoArray['channels']); $i++) $this-&gt;infoArray['scanLinesByteCounts'][] = $this-&gt;_getInteger(2);

				$this-&gt;tempFileName = tempnam(realpath('/tmp'),'decompressedImageData');

				$tfp = fopen($this-&gt;tempFileName,'wb');

				foreach ($this-&gt;infoArray['scanLinesByteCounts'] as $scanLinesByteCount) {

					fwrite($tfp,$this-&gt;_getPackedBitsDecoded(fread($this-&gt;fp,$scanLinesByteCount)));

				}

				fclose($tfp);

				fclose($this-&gt;fp);

				$this-&gt;fp = fopen($this-&gt;tempFileName,'r');

			default:

				// continue with current file handle;

				break;

		}

		// let's write pixel by pixel....

		$image = imagecreatetruecolor($this-&gt;infoArray['columns'],$this-&gt;infoArray['rows']);

		for ($rowPointer = 0; ($rowPointer &lt; $this-&gt;infoArray['rows']); $rowPointer++) {

			for ($columnPointer = 0; ($columnPointer &lt; $this-&gt;infoArray['columns']); $columnPointer++) {

				/* 	The color mode of the file. Supported values are: Bitmap=0;

					Grayscale=1; Indexed=2; RGB=3; CMYK=4; Multichannel=7;

					Duotone=8; Lab=9.

				*/

				switch ($this-&gt;infoArray['colorMode']) {

					case 2: // indexed... info should be able to extract from color mode data section. not implemented yet, so is grayscale

						exit;

						break;

					case 0:

						// bit by bit

						if ($columnPointer == 0) $bitPointer = 0;

						if ($bitPointer==0) $currentByteBits = str_pad(base_convert(bin2hex(fread($this-&gt;fp,1)), 16, 2),8,'0',STR_PAD_LEFT);

						$r = $g = $b = (($currentByteBits[$bitPointer]=='1')?0:255);

						$bitPointer++;

						if ($bitPointer==8) $bitPointer = 0;

						break;

					case 1:

					case 8: // 8 is indexed with 1 color..., so grayscale

						$r = $g = $b = $this-&gt;_getInteger($this-&gt;infoArray['oneColorChannelPixelBytes']);

						break;

					case 4: // CMYK

						$c = $this-&gt;_getInteger($this-&gt;infoArray['oneColorChannelPixelBytes']);

						$currentPointerPos = ftell($this-&gt;fp);

						fseek($this-&gt;fp,$this-&gt;colorBytesLength-1,SEEK_CUR);

						$m = $this-&gt;_getInteger($this-&gt;infoArray['oneColorChannelPixelBytes']);

						fseek($this-&gt;fp,$this-&gt;colorBytesLength-1,SEEK_CUR);

						$y = $this-&gt;_getInteger($this-&gt;infoArray['oneColorChannelPixelBytes']);

						fseek($this-&gt;fp,$this-&gt;colorBytesLength-1,SEEK_CUR);

						$k = $this-&gt;_getInteger($this-&gt;infoArray['oneColorChannelPixelBytes']);

						fseek($this-&gt;fp,$currentPointerPos);

						$r = round(($c * $k) / (pow(2,$this-&gt;infoArray['colorDepth'])-1));

						$g = round(($m * $k) / (pow(2,$this-&gt;infoArray['colorDepth'])-1));

						$b = round(($y * $k) / (pow(2,$this-&gt;infoArray['colorDepth'])-1));

  						break;

  						case 9: // hunter Lab

  							// i still need an understandable lab2rgb convert algorithm... if you have one, please let me know!

							$l = $this-&gt;_getInteger($this-&gt;infoArray['oneColorChannelPixelBytes']);

							$currentPointerPos = ftell($this-&gt;fp);

							fseek($this-&gt;fp,$this-&gt;colorBytesLength-1,SEEK_CUR);

							$a = $this-&gt;_getInteger($this-&gt;infoArray['oneColorChannelPixelBytes']);

							fseek($this-&gt;fp,$this-&gt;colorBytesLength-1,SEEK_CUR);

							$b =  $this-&gt;_getInteger($this-&gt;infoArray['oneColorChannelPixelBytes']);

							fseek($this-&gt;fp,$currentPointerPos);

							$r = $l;

							$g = $a;

							$b = $b;

						break;

					default:

						$r = $this-&gt;_getInteger($this-&gt;infoArray['oneColorChannelPixelBytes']);

						$currentPointerPos = ftell($this-&gt;fp);

						fseek($this-&gt;fp,$this-&gt;colorBytesLength-1,SEEK_CUR);

						$g = $this-&gt;_getInteger($this-&gt;infoArray['oneColorChannelPixelBytes']);

						fseek($this-&gt;fp,$this-&gt;colorBytesLength-1,SEEK_CUR);

						$b =  $this-&gt;_getInteger($this-&gt;infoArray['oneColorChannelPixelBytes']);

						fseek($this-&gt;fp,$currentPointerPos);

						break;

				}

				if (($this-&gt;infoArray['oneColorChannelPixelBytes']==2)) {

					$r = $r &gt;&gt; 8;

					$g = $g &gt;&gt; 8;

					$b = $b &gt;&gt; 8;

				} elseif (($this-&gt;infoArray['oneColorChannelPixelBytes']==4)) {

					$r = $r &gt;&gt; 24;

					$g = $g &gt;&gt; 24;

					$b = $b &gt;&gt; 24;

				}

				$pixelColor = imagecolorallocate($image,$r,$g,$b);

				imagesetpixel($image,$columnPointer,$rowPointer,$pixelColor);

			}

		}

		fclose($this-&gt;fp);

		if (isset($this-&gt;tempFileName)) unlink($this-&gt;tempFileName);

		return $image;

	}

	/**

	 *

	 * PRIVATE FUNCTIONS

	 *

	 */

	function _getPackedBitsDecoded($string) {

		/*

		The PackBits algorithm will precede a block of data with a one byte header n, where n is interpreted as follows:

		n Meaning

		0 to 127 Copy the next n + 1 symbols verbatim

		-127 to -1 Repeat the next symbol 1 - n times

		-128 Do nothing

		Decoding:

		Step 1. Read the block header (n).

		Step 2. If the header is an EOF exit.

		Step 3. If n is non-negative, copy the next n + 1 symbols to the output stream and go to step 1.

		Step 4. If n is negative, write 1 - n copies of the next symbol to the output stream and go to step 1.

		*/

		$stringPointer = 0;

		$returnString = '';

		while (1) {

			if (isset($string[$stringPointer])) $headerByteValue = $this-&gt;_unsignedToSigned(hexdec(bin2hex($string[$stringPointer])),1);

			else return $returnString;

			$stringPointer++;

			if ($headerByteValue &gt;= 0) {

				for ($i=0; $i &lt;= $headerByteValue; $i++) {

					$returnString .= $string[$stringPointer];

					$stringPointer++;

				}

			} else {

				if ($headerByteValue != -128) {

					$copyByte = $string[$stringPointer];

					$stringPointer++;

					for ($i=0; $i &lt; (1-$headerByteValue); $i++) {

						$returnString .= $copyByte;

					}

				}

			}

		}

	}

	function _unsignedToSigned($int,$byteSize=1) {

		switch($byteSize) {

			case 1:

				if ($int&lt;128) return $int;

				else return -256+$int;

				break;

			case 2:

				if ($int&lt;32768) return $int;

				else return -65536+$int;

			case 4:

				if ($int&lt;2147483648) return $int;

				else return -4294967296+$int;

			default:

				return $int;

		}

	}

	function _hexReverse($hex) {

		$output = '';

		if (strlen($hex)%2) return false;

		for ($pointer = strlen($hex);$pointer&gt;=0;$pointer-=2) $output .= substr($hex,$pointer,2);

		return $output;

	}

	function _getInteger($byteCount=1) {

		switch ($byteCount) {

			case 4:

				// for some strange reason this is still broken...

				return @reset(unpack('N',fread($this-&gt;fp,4)));

				break;

			case 2:

				return @reset(unpack('n',fread($this-&gt;fp,2)));

				break;

			default:

				return hexdec($this-&gt;_hexReverse(bin2hex(fread($this-&gt;fp,$byteCount))));

		}

	}

}

/**

 * Returns an image identifier representing the image obtained from the given filename, using only GD, returns an empty string on failure

 *

 * @param string $fileName

 * @return image identifier

 */

function imagecreatefrompsd($fileName) {

	$psdReader = new PhpPsdReader($fileName);

	if (isset($psdReader-&gt;infoArray['error'])) return '';

	else return $psdReader-&gt;getImage();

}

?&gt;
</pre>
<h2>Kullanımı</h2>
<p>Kullanımıda gayet basit.Aşağıda bir örnek var:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
header(&quot;Content-type: image/jpeg&quot;);
// Asıl işi yapan class'ımızı include ediyoruz
include_once('classPhpPsdReader.php');
// Bu metotlada PSD dosyamızı gösteriyoruz
imagejpeg(imagecreatefrompsd('yourPsdFile.psd'));
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.mertkavi.com/php-ile-adobe-psd-dosyalarini-gosterme.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

