<?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>Kodrella.com &#124; For Minority</title>
	<atom:link href="http://www.kodrella.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kodrella.com</link>
	<description></description>
	<lastBuildDate>Fri, 17 Feb 2012 01:47:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Google Özgün içerik ayrımını nasıl yapıyor?</title>
		<link>http://www.kodrella.com/google-ozgun-icerik-ayrimini-nasil-yapiyor/</link>
		<comments>http://www.kodrella.com/google-ozgun-icerik-ayrimini-nasil-yapiyor/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 00:31:29 +0000</pubDate>
		<dc:creator>Guest</dc:creator>
				<category><![CDATA[Araştırma Yazıları]]></category>
		<category><![CDATA[Karma İçerikler]]></category>
		<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Teknolojiler]]></category>
		<category><![CDATA[arama motorları]]></category>
		<category><![CDATA[benzerlik özeti]]></category>
		<category><![CDATA[google teknolojisi]]></category>
		<category><![CDATA[ilişkisel olmayan veritabanları]]></category>
		<category><![CDATA[map reduce]]></category>
		<category><![CDATA[map reduce nedir]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[qr code]]></category>
		<category><![CDATA[sim hash algoritması]]></category>
		<category><![CDATA[simhash]]></category>

		<guid isPermaLink="false">http://www.kodrella.com/?p=144</guid>
		<description><![CDATA[NoSQL ile alakalı makaleler okurken, Google indexleme, arama, inceleme süreçleri hakkında çeşitli dökümanlar okudum. Kodrella&#8217;da yazmayı düşündüğüm bir konuyla uyuşunca Google&#8217;un bu kusursuz yapısı hakkında araştırmalarımı paylaşmak istedim. Yazı bu konu hakkında ki acemiliğimden dolayı, yanlış terim kullanımları, hatalı tanımlamalar içerebilir. NoSQL kısaca ilişkisel olmayan veritabanı. Günümüzde semantizm, kişiyi, kullanıcıyı tanımak bu kadar popülerken, İlişkisel olmayan veritabanı [...]]]></description>
			<content:encoded><![CDATA[<p>NoSQL ile alakalı makaleler okurken, Google indexleme, arama, inceleme süreçleri hakkında çeşitli dökümanlar okudum. Kodrella&#8217;da yazmayı düşündüğüm bir konuyla uyuşunca Google&#8217;un bu kusursuz yapısı hakkında araştırmalarımı paylaşmak istedim. Yazı <span style="text-decoration: underline;">bu konu hakkında ki </span><span style="text-decoration: underline;">acemiliğimden dolayı, yanlış terim kullanımları, hatalı tanımlamalar </span>içerebilir.</p>
<p>NoSQL kısaca ilişkisel olmayan veritabanı. Günümüzde semantizm, kişiyi, kullanıcıyı tanımak bu kadar popülerken, İlişkisel olmayan veritabanı niye bu aralar gündemde dedim ben de önce, Google&#8217;un bir nevi NoSQL tipini, kendi altyapısında nasıl kullandığını anlayınca, NoSql ve aşağı da tanımladığım diğer kavramlara daha bir ilgi duyar oldum. Okumanız önerilir..</p>
<p>Öncelikle <strong>NoSQL</strong> hakkında kavramları inceleyelim;</p>
<p><span style="text-decoration: underline;">Map-Reduce kavramı</span></p>
<p>Map ; Bu katman gelen işi ilgili birimlere dağıtır ve çıktıyı verir.</p>
<p>Reduce ; Bu katman ise Map&#8217;tan gelen çıktıları tek bir işlem sonucu olarak verir.</p>
<p><a title="hasan özgan" href="http://www.hasanozgan.com" target="_blank">Hasan Özgan </a>hoca blogunda, Map ve Reduce için; &#8220;<em>aslında fonksiyonel programlamada sıkça kullanılan iki fonksiyondur. Excel buna güzel bir örnektir.</em>&#8221; demiş.</p>
<p>Ayrıca blog&#8217;unda Google&#8217;un tüm interneti nasıl indirip, taradığı hakkında güzel bir yorumda bulunmuş.</p>
<p><em>&#8220;Burada ilginç bir döngü var? Internet mozaik bir yapıdadır. Ve dağınıktır. Bu dağınık yapıyı Google’ın yaptığı gibi indekslemek (tabiri caizse tüm interneti indirmek isterseniz), dünyanın en büyük ve en iyi ilişkilsel veritabanını kanalize olmuş Oracle bile yetersiz kalacaktır.&#8221;</em></p>
<p>2008 yılında çeşitli kuruluşların sağladığı bilgiye göre 200 milyondan fazla websitesi var. Alan adı değil, yayında olan 200 milyon. O da bundan 4 yıl öncesi, her yıl katlanarak büyüdüğünü anlatmaya gerek yok.</p>
<p>Her site ortalama 10 sayfa içerik&#8217;den ibaret olsa(kelime sayısı farketmeksizin, 10 farklı url), ki bunların %9&#8242;u haber portalları, %6&#8242;sı 2008 rakamlarına göre bloglar, Wikiler, Döküman-Makale portalları, Kurum-Kuruluşların(forumlar, ansiklopedi tarzı siteler) bilgi kaynakları vs vs olduğunu düşünürsek ortalama 10 değil, baya bir fazla çıkacaktır. Fakat en basitinden 10&#8242;ar sayfa olduğunu varsayarsak 2 milyar sayfa olduğu anlamına gelir.</p>
<p>2 milyar sayfa arasından birbirinden içerik çalan, ya da içeriğinin bir kısmı özgün, diğer kısmı alıntı olan, Veyahut aldığı içeriği kurallara uyarak kısa özetler ve ana siteye bağlantı vererek yapan, Tamamen özgün içerik üreten sitelerin belirlenmesi, Bu sitelerin bu davranışlarının doğal olup olmadığı, %100 özgün olsa da kullanıcılar tarafından tercih edilip edilmemesi, Buna göre sıralanması, Sitenin genel konusuyla ilişkilendirilmesi, Kullanıcıya en iyi sonucu verebilmesi için sürekli olarak bu değerlerin kıstas edilmesi gibi yüzlerce unsurun bir yapıda bulunması günümüzün en kral veritabanı Oracle&#8217;ın bile kaldıramayacağı türden bir sonuç ortaya çıkarıyor. Dev internet sitelerinin kendi teknolojileriyle çalışma yapmamaları, ve bu çalışmalar sonucunda ürünlerini piyasaya çıkarmamaları kaçınılmaz.</p>
<p>İşte burda ilişkisel olmayan veritabanlarının önemi artıyor. Çünkü birbiriyle ilişkili olan ve yukarıda ki işlemlerin daha yüzlercesini 2 milyar sayfa arasında sorgulatmak, kontrol etmek, Aynı anda aynı veriyi isteyen yüzbinlerce kullanıcıya sunmak gerçekten çok zor. İmkansız değil elbette fakat çok ciddi maliyetler, daha yavaş bir yapı ve çok daha fazla uğraş gerektirecek yöne götürüyor. Bu yöntemle yüzlerce, üstün özellikli olmasa da bu dev işlemi gerçekleştiren bilgisayarlara ihtiyaç doğuyor. İşlemcisi, Ram&#8217;i düşük olsa da, sorgulama, karşılaştırma kısacası ilişiklikten uzak olduğu için ihtiyaca tam cevap veriyor.</p>
<p>Aynı şekilde google veriyi tek bir makinada tutmayarak, bir makinanın göçmesi durumunda (ki böylesine bir sistem de çok olağan) birbiriyle ilişkilendirdiği diğer makinalardan devam ettirerek, sistemin sürekli çalışmasını sağlıyor.</p>
<p>Yine Hasan Ozgan hocanın yazısına dönersek;</p>
<p><em>&#8220;Google, startup döneminde, bir mühendislik şirketi gibi davrandı ve ihtiyaçlarını iyi analiz etti. 10.000$’lık sunucular almak yerine 500$’lık ucuz makineler satın aldı. Ve bu makinelerin kısa ömürlü ve her an patlayacağını bilerek kodlarını yazdı. Ve BigTable denilen (Hadoop bunun açık kaynak halidir) Map ve Reduce fonksiyonları ile sorgulamayı sağlayan bir mimari kurdu. Bu mimarinin en önemli özelliği; makinelerden biri göçse bile, sistemin çalışmaya devam etmesidir. Her kaydın 3-5 ayrı sunucuda kopyası bulunmaktadır. Bu şekilde web için en uygun devasa bir <strong><span style="text-decoration: underline;">Mosaic</span></strong> oluşturdular.&#8221;</em></p>
<p>Google&#8217;un işi internet için oluşturduğu bu dev Mozaiği, istenene göre en doğru şekilde kullanıcıya sunmak. Bunu yaparken Özgün içerik ayrımını SimHash (Benzerlik Özeti) kavramıyla bilinen yöntemlerin üstüne kendi geliştirdiği, eklediği yöntem ve metodlarla yapıyor. Tamamen farklı bir yapıda kullanılabilir, fakat bu işin ana mantığı Sim hash Benzerlik özeti yapısı.</p>
<p>Yapay zeka konularında doğrultu&#8217;nun eksisinin belirlenmesi, doğruya yakınlığının hesaplanması önemlidir. Çünkü amaç Yapay zekanın en doğru sonucu üretmesidir. Simhash yöntemi de bu işi metodlar ve komutlarla hesaplayıp, her veriye bir tanım vererek doğru depolamayı amaçlamaktadır.</p>
<p>Örneğin aşağıda ki cümle Google örümcekleri tarafından indexlenmiş olsun.</p>
<p><em>&#8220;Bilgi ve makaleler Bu yazı sonucunda çeşitli makaleler araştırılmaya devam edecek ve konu hakkında daha fazla bilgi, makaleler edinilecek..&#8221;</em></p>
<p>İkinci iş olarak bu yazının özgünlüğünü kıyaslamak isteyeceği için, Öncelikle bu verinin kendi hafızasında olup olmadığını sorgulaması gerekmektedir. Bu adımdan sonra, yazdığımız cümlenin hafıza da olmadığını varsayarsak, Önce benim yönteme göre sonra Simhash benzerlik özeti yöntemine göre aşağıda ki şekillerde depolayacaktır.</p>
<p>Aşağıda olayı daha iyi anlayabilmeniz için basit bir tablo hazırladım(benim saçma yöntemim), bu tabloda site, ve içeriği özgün olduğu için veriyi nasıl kaydedeceği anlatılmıştır.</p>
<p><strong>Örnek tablomuz;</strong></p>
<p>Bu yazının yayınlandığı websitesi</p>
<p><span style="text-decoration: underline;">www.kodrella.com</span></p>
<p>Bu yazının olduğu sitenin meta-tag&#8217;ları</p>
<p>keywords : bilgisayar, programlama, bilgisayar kavramları, teknoloji, popüler haberler</p>
<p>description : bilgisayar ve programlama hakkında çeşitli makalelerin yayınladığı güncel teknoloji sitesi.</p>
<p>h1-h2-b : bilgisayar, programlama, bilgisayar</p>
<p>Şimdi google&#8217;un aldığı cümle başka bir yerde kalıp halinde kullanılıp kullanılmadığını anlamak için cümleye özel bir tanım vermesi gerekir. Son zamanlarda popüler olan <strong>QR Code</strong> benzeri bir yöntem kullanılarak iş oldukça hızlandırılabilir.</p>
<p>Yazdığımız yazı tamamen benzersiz olduğu için, benzersiz bir tanım vermesi gerekir.</p>
<p>Öncelikle her kelimeyi ayrı ayrı olarak tanımlayıp site alanına + olarak ekleyelim.</p>
<p>Yazı,(1)<br />
Sonucunda,(1)<br />
Çeşitli,(1)<br />
Makaleler(3),<br />
araştırılmaya,(1)<br />
devam,(1)<br />
edecek,(1)<br />
konu,(1)<br />
hakkında,(1)<br />
fazla,(1)<br />
bilgi(2),<br />
edinilecek(1)<br />
<em>*Bu, ve, ile, daha gibi daha önce tanımlanmış olan çeşitli bağlaçları almayarak hem zamandan tasarruf edip, hem en doğru veriyi depolayabilir bu yüzden, bu tür bağlaçları baştan sisteme kabul etmiyoruz.</em></p>
<p>Her bir kez tekrarlanan değer için 1, bir kez tekrarlanan için 0 rakamlarını cümle sırasına göre diziyoruz.</p>
<p>000111000000110</p>
<p>Tabii yüzmilyonlarca site, milyarlarca sayfa arasından aynı yapıya sahip onbinlerce cümle olacağından, birçok cümle aynı rakamsal karşılığı alacaktır. Bu da sistemin mantıksız bir yapıya kurulduğunun kanıtı.</p>
<p>Benim kendi yöntemimle çözmeye çalıştığım işi Sim Hash algoritması aşağıda ki şekilde <a href="http://www.bilgisayarkavramlari.com" target="_blank">Şadi Evren ŞEKER </a>hocanın anlatımıyla ekledim.</p>
<blockquote><p>Sim hash algoritması, iki dosyayı birer vektör olarak görür ve bu <a href="http://www.bilgisayarkavramlari.com/2008/01/12/mesafe-vektoru-distance-vector/">vektorler (yöney, vector)</a> arasındaki cosinüs (cosine) bağlantısını bulmaya çalışır.</p>
<p><a href="http://www.kodrella.com/wp-content/uploads/2012/02/yoneykosinus.png"><img class="alignnone size-full wp-image-149" title="yoneykosinus" src="http://www.kodrella.com/wp-content/uploads/2012/02/yoneykosinus.png" alt="" width="265" height="141" /></a></p>
<p>Yukarıdaki şekilde temsil edildiği üzere iki dokümanın ayrı ayrı birere vektör olması durumunda, aralarında cos (x) olarak gösterilen bir açı ile bağlantı bulunması mümkündür.</p>
<p>Algoritma, öncelikle işlediği metindeki kelimelerin ağırlıklarını (weight) çıkarmakta ve buna göre kelimeleri sıralamaktadır.</p>
<p>Sıralanan her kelimeye, b uzunluğunda, yegane (unique) değer döndüren bir fonksiyon kullanılır. Örneğin her kelime için farklı bir hash sonucu döndüren fonksiyon kullanılır.</p>
<p>b boyutundaki bir vektörün ağırlık değeri hesaplanırken, her kelimedeki 1 değeri için +1 ve 0 değeri için -1 değeri ağırlığa eklenir.</p>
<p>Son olarak üretilen ağırlık vektöründeki + değerler 1, 0 ve – değerler ise 0 olarak çevirilir.</p>
<p><strong>Örnek</strong></p>
<p>Yukarıdaki algoritmanın çalışmasını bir örnek üzerinden anlatalım. Algoritmanın üzerinde çalışacağı metin aşağıdaki şekilde verilmiş olsun:</p>
<p>www bilgisayar kavramları com bilgisayar kavramlarının anlatıldığı bir bilgisayar sitesidir ve com uzantılıdır</p>
<p>Yukarıdaki bu metni, algoritmanın anlatılan adımlarına göre işleyelim:</p>
<p>İlk adımımız, algoritmadaki kelimelerini ağırlıklarının çıkarılmasıdır. Bu adımı çeşitli şekillerde yapmak mümkündür ancak biz örneğimizde kolay olması açısından kelime<a href="http://www.bilgisayarkavramlari.com/2008/02/21/veri-guvenliginde-frekans-analizi-cryptoanalysis/">frekanslarını (tekrar sayısı, frequency)</a> kullanacağız. Buna göre metindeki kelimelerin tekrar sayılarına göre sıralanmış hali aşağıda verilmiştir:</p>
<p>bilgisayar 3 com 2 kavramları 1 kavramlarının 1 anlatıldığı 1 bir 1 www 1 sitesidir 1 ve 1 uzantılıdır 1</p>
<p>Yukarıda geçen her kelime için bir parmak izi (fingerprint) değeri üretiyoruz. Bu değerin özelliği, kelimeler arasında yegane (unique) bir değer bulmaktır. Bu değer, herhangi bir hash fonksiyonu üzerinden de üretilebilir. Biz örneğimizde kolalık olması açısından her kelime için rast gele bir değer kendimiz atayacağız. Ancak gerçek bir uygulamada rast gele değerlerin kullanılması mümkün değildir. Bunun sebebi, aynı kelimenin tekrar gelmesi halinde yine aynı değerin üretilmesi zorunluluğudur. Bu yazıdaki amaç algoritmayı anlatmak olduğu için birer hash sonucu olarak rast gele değerler kullanılacaktır.</p>
<p>bilgisayar 10101010 com 11000000 kavramları 01010101 kavramlarının 10100101 anlatıldığı 11101110 bir 01011111 www 11110001 sitesidir 10101110 ve 00001111 uzantılıdır 00100010</p>
<p>3. adımda, yukarıdaki değerleri topluyoruz. Toplama işlemi sırasında 1 değerleri için +1 ve 0 değerleri için -1 alıyoruz.</p>
<p>10101010<br />
11000000<br />
01010101<br />
10100101<br />
11101110<br />
01011111<br />
11110001<br />
10101110<br />
00001111<br />
00100010<br />
——–<br />
2 0 2 -4 0 2 2 0</p>
<p>Son olarak, yukarıdaki değerleri ikilik tabana çeviriyoruz: 10100110 bu değer bizi simhash sonucumuz olarak bulunuyor.</p>
<p>Örneğin yeni bir dosyayı daha işlemek istediğimizde, bu dosyadaki kelime yoğunluğuna göre yukarıda bulduğumuz simhash değerine yakın bir değer çıkmasını bekleriz.</p>
<p>Diyelim ki yeni bir dosyada da sadece “bilgisayar kavramları com” yazıyor olsun. Bu yazının sim hash değerini bularak karşılaştırmaya çalışalım:</p>
<p>bilgisayar 10101010 com 11000000 kavramları 01010101</p>
<p>10101010<br />
11000000<br />
01010101<br />
———<br />
1 1 -1 -1 -1 1 1 1</p>
<p>Değerin ikilik tabana çevrilmiş hali : 11000111</p>
<p>Orjinal dokümandan çıkardığımız simhash değeri ile farklı olan bit sayısı 3′tür. Bunun anlamı yukarıdaki bilgisayar kavramları com yazısının orjinal yazıya 3 mesafesinde yakın olduğudur.</p></blockquote>
<p>Son olarak google birebir bu yöntemi kullanmıyor tabii ki, fikir benzerliği var fakat, google&#8217;un çok daha ileri yöntemler kullanıyor. Zaman zaman yabancı websitelerinde, google kendi bloglarında bunlardan bahsediyor..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodrella.com/google-ozgun-icerik-ayrimini-nasil-yapiyor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TinyMce Editörü PHP Scriptinize Entegre Edin</title>
		<link>http://www.kodrella.com/tinymce-editoru-php-scriptinize-entegre-edin/</link>
		<comments>http://www.kodrella.com/tinymce-editoru-php-scriptinize-entegre-edin/#comments</comments>
		<pubDate>Mon, 13 Feb 2012 19:24:59 +0000</pubDate>
		<dc:creator>Guest</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[ckeditör alternatifi]]></category>
		<category><![CDATA[ckeditör entegre]]></category>
		<category><![CDATA[php tinymce]]></category>
		<category><![CDATA[tinymce]]></category>
		<category><![CDATA[tinymce editör]]></category>
		<category><![CDATA[tinymce editör entegre]]></category>

		<guid isPermaLink="false">http://www.kodrella.com/?p=132</guid>
		<description><![CDATA[Php&#38;Mysql ile geliştirdiğiniz scriptlerinize detaylı bir Editör arıyorsanız TinyMCE kullanabilirsiniz. Geçmişte FCKEditör en sık kullanılan editörlerden biriydi. Bugün FCKEditor CKEditor ismiyle devam etmekte.   TinyMCE Editör ise CKEditör&#8217;e alternatif oldukça başarılı, Türkçe destekleyen, düzenli güncellenen ve Scriptinize entegresi kolay olan Alternatf bir editördür. Admin formunuzu hazırladığınızı varsayıyorum, hazırlamadıysanız hemen bir textarea alanı yeterli tinymce editör için. [...]]]></description>
			<content:encoded><![CDATA[<p>Php&amp;Mysql ile geliştirdiğiniz scriptlerinize detaylı bir Editör arıyorsanız <span style="text-decoration: underline;"><strong>TinyMCE</strong></span> kullanabilirsiniz. Geçmişte FCKEditör en sık kullanılan editörlerden biriydi. Bugün FCKEditor CKEditor ismiyle devam etmekte.   TinyMCE Editör ise CKEditör&#8217;e alternatif oldukça başarılı, Türkçe destekleyen, düzenli güncellenen ve Scriptinize entegresi kolay olan Alternatf bir editördür.</p>
<p>Admin formunuzu hazırladığınızı varsayıyorum, hazırlamadıysanız hemen bir textarea alanı yeterli tinymce editör için.</p>
<p>Not-1: Öncelikle tüm denemelerinizi <strong>Localhost ya da FTP Serverınız</strong>da yapınız.</p>
<p>Öncelikle <strong>TinyMCE Editor&#8217;</strong>ü websitesinden indirin.</p>
<p>TinyMCE 3.3.9.4 jQuery package isimli dosyayı <a title="tinymce editör" href="http://www.tinymce.com/download/download.php">indirin</a></p>
<p>İndirdiğiniz dosya içerisinde TinyMce dizini altında example ve jscripts klasörleri bulunmaktadır. Jscripts klasörünü scriptin ana dizinine kopyalayın.</p>
<p>Admin panelinin üst kısımına aşağıda ki kodu ekleyin.</p>
<pre class="brush: javascript; gutter: true">&lt;script type=&quot;text/javascript&quot; src=&quot;../jscripts/tiny_mce/tiny_mce.js&quot;&gt;&lt;/script&gt;</pre>
<p>&nbsp;</p>
<p>Hemen altına aşağıda ki kodları ekleyin</p>
<pre class="brush: actionscript3; gutter: true">&lt;script type=&quot;text/javascript&quot;&gt;

	// O2k7 skin (silver)
	tinyMCE.init({
		// Genel Ayarlar
		mode : &quot;exact&quot;,
		elements : &quot;aciklama&quot;,
		theme : &quot;advanced&quot;,
		skin : &quot;o2k7&quot;,
		skin_variant : &quot;black&quot;,
		plugins : &quot;safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,inlinepopups&quot;,

		// Tema Ayarları
		theme_advanced_buttons1 : &quot;save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect&quot;,
		theme_advanced_buttons2 : &quot;cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor&quot;,
		theme_advanced_buttons3 : &quot;tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen&quot;,
		theme_advanced_buttons4 : &quot;insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak&quot;,
		theme_advanced_toolbar_location : &quot;top&quot;,
		theme_advanced_toolbar_align : &quot;left&quot;,
		theme_advanced_statusbar_location : &quot;bottom&quot;,
		theme_advanced_resizing : true,

		// Siteniz için kodladığınız CSS dosyasının yolu
		content_css : &quot;style.css&quot;,

		// Drop lists for link/image/media/template dialogs
		template_external_list_url : &quot;lists/template_list.js&quot;,
		external_link_list_url : &quot;lists/link_list.js&quot;,
		external_image_list_url : &quot;lists/image_list.js&quot;,
		media_external_list_url : &quot;lists/media_list.js&quot;,

		// Replace values for the template plugin
		template_replace_values : {
			username : &quot;Some User&quot;,
			staffid : &quot;991234&quot;
		}
	});
&lt;/script&gt;</pre>
<p>Kodun en üstünde Genel Ayarlar kısmında elements karşısında yer alan &#8216;aciklama&#8217; tagı, TinyMCE editörün görüntüleneceği alana name olarak atamalısınız.</p>
<p>Name&#8217;i aciklama olan textare alanını çağırdığınız takdirde aşağıda ki görüntüyü görmüş olmalısınız.</p>
<p><a href="http://www.kodrella.com/wp-content/uploads/2012/02/sonuctinymceeditor.jpg"><img class="alignnone size-medium wp-image-133" title="sonuctinymceeditor" src="http://www.kodrella.com/wp-content/uploads/2012/02/sonuctinymceeditor-300x115.jpg" alt="" width="300" height="115" /></a></p>
<p>TinyMce editörün farklı görünümleri mevcut indirmiş olduğunuz dosya içerisinde yer alan examples klasöründe farklı görünümleri inceleyebilir, sitenizin farklı alanlarına (Yorum vs) yerleştirebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodrella.com/tinymce-editoru-php-scriptinize-entegre-edin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript KeyCode Tablosu</title>
		<link>http://www.kodrella.com/javascript-keycode-tablosu/</link>
		<comments>http://www.kodrella.com/javascript-keycode-tablosu/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 17:22:45 +0000</pubDate>
		<dc:creator>Guest</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript char code]]></category>
		<category><![CDATA[javascript karakter tablosu]]></category>
		<category><![CDATA[javascript keycodes]]></category>
		<category><![CDATA[keycode]]></category>
		<category><![CDATA[keycode örneği]]></category>

		<guid isPermaLink="false">http://www.kodrella.com/?p=122</guid>
		<description><![CDATA[Javascript ile klavye kullanılarak websitemizin yönetilmesini sağlayabiliriz. Örneğin kullanıcı boşluğa basınca şu işi, entera basınca şu işi yaptır diyebiliriz. Klavyede ki tüm karakterlere javascript keycodes ile erişebiliyoruz. Bu yazıda Javascript Keycodes tablosu olacak. Ayrıca Javascript Klavye Karakter tablosuyla alakalı bir örnekte olacak. Key Code backspace 8 tab 9 enter 13 shift 16 ctrl 17 alt [...]]]></description>
			<content:encoded><![CDATA[<p>Javascript ile klavye kullanılarak websitemizin yönetilmesini sağlayabiliriz. Örneğin kullanıcı boşluğa basınca şu işi, entera basınca şu işi yaptır diyebiliriz. Klavyede ki tüm karakterlere javascript keycodes ile erişebiliyoruz. Bu yazıda Javascript Keycodes tablosu olacak.</p>
<div id="attachment_129" class="wp-caption alignnone" style="width: 120px"><a href="http://www.kodrella.com/wp-content/uploads/2012/01/javascript-keycode-örnek.jpg"><img class="size-full wp-image-129" title="javascript keycode örnek" src="http://www.kodrella.com/wp-content/uploads/2012/01/javascript-keycode-örnek.jpg" alt="javascript keycode örnek" width="110" height="73" /></a><p class="wp-caption-text">klavye</p></div>
<p>Ayrıca Javascript Klavye Karakter tablosuyla alakalı bir örnekte olacak.</p>
<table>
<tbody>
<tr>
<td>
<table id="TABLE2" cellspacing="0">
<tbody>
<tr>
<td>Key</td>
<td>Code</td>
</tr>
<tr>
<td>backspace</td>
<td>8</td>
</tr>
<tr>
<td>tab</td>
<td>9</td>
</tr>
<tr>
<td>enter</td>
<td>13</td>
</tr>
<tr>
<td>shift</td>
<td>16</td>
</tr>
<tr>
<td>ctrl</td>
<td>17</td>
</tr>
<tr>
<td>alt</td>
<td>18</td>
</tr>
<tr>
<td>pause/break</td>
<td>19</td>
</tr>
<tr>
<td>caps lock</td>
<td>20</td>
</tr>
<tr>
<td>escape</td>
<td>27</td>
</tr>
<tr>
<td>page up</td>
<td>33</td>
</tr>
<tr>
<td>page down</td>
<td>34</td>
</tr>
<tr>
<td>end</td>
<td>35</td>
</tr>
<tr>
<td>home</td>
<td>36</td>
</tr>
<tr>
<td>left arrow</td>
<td>37</td>
</tr>
<tr>
<td>up arrow</td>
<td>38</td>
</tr>
<tr>
<td>right arrow</td>
<td>39</td>
</tr>
<tr>
<td>down arrow</td>
<td>40</td>
</tr>
<tr>
<td>insert</td>
<td>45</td>
</tr>
<tr>
<td>delete</td>
<td>46</td>
</tr>
<tr>
<td>0</td>
<td>48</td>
</tr>
<tr>
<td>1</td>
<td>49</td>
</tr>
<tr>
<td>2</td>
<td>50</td>
</tr>
<tr>
<td>3</td>
<td>51</td>
</tr>
<tr>
<td>4</td>
<td>52</td>
</tr>
<tr>
<td>5</td>
<td>53</td>
</tr>
<tr>
<td>6</td>
<td>54</td>
</tr>
<tr>
<td>7</td>
<td>55</td>
</tr>
<tr>
<td>8</td>
<td>56</td>
</tr>
<tr>
<td>9</td>
<td>57</td>
</tr>
<tr>
<td>a</td>
<td>65</td>
</tr>
<tr>
<td>b</td>
<td>66</td>
</tr>
<tr>
<td>c</td>
<td>67</td>
</tr>
<tr>
<td>d</td>
<td>68</td>
</tr>
</tbody>
</table>
</td>
<td></td>
<td>
<table id="TABLE1" cellspacing="0">
<tbody>
<tr>
<td>Key</td>
<td>Code</td>
</tr>
<tr>
<td>e</td>
<td>69</td>
</tr>
<tr>
<td>f</td>
<td>70</td>
</tr>
<tr>
<td>g</td>
<td>71</td>
</tr>
<tr>
<td>h</td>
<td>72</td>
</tr>
<tr>
<td>i</td>
<td>73</td>
</tr>
<tr>
<td>j</td>
<td>74</td>
</tr>
<tr>
<td>k</td>
<td>75</td>
</tr>
<tr>
<td>l</td>
<td>76</td>
</tr>
<tr>
<td>m</td>
<td>77</td>
</tr>
<tr>
<td>n</td>
<td>78</td>
</tr>
<tr>
<td>o</td>
<td>79</td>
</tr>
<tr>
<td>p</td>
<td>80</td>
</tr>
<tr>
<td>q</td>
<td>81</td>
</tr>
<tr>
<td>r</td>
<td>82</td>
</tr>
<tr>
<td>s</td>
<td>83</td>
</tr>
<tr>
<td>t</td>
<td>84</td>
</tr>
<tr>
<td>u</td>
<td>85</td>
</tr>
<tr>
<td>v</td>
<td>86</td>
</tr>
<tr>
<td>w</td>
<td>87</td>
</tr>
<tr>
<td>x</td>
<td>88</td>
</tr>
<tr>
<td>y</td>
<td>89</td>
</tr>
<tr>
<td>z</td>
<td>90</td>
</tr>
<tr>
<td>left window key</td>
<td>91</td>
</tr>
<tr>
<td>right window key</td>
<td>92</td>
</tr>
<tr>
<td>select key</td>
<td>93</td>
</tr>
<tr>
<td>numpad 0</td>
<td>96</td>
</tr>
<tr>
<td>numpad 1</td>
<td>97</td>
</tr>
<tr>
<td>numpad 2</td>
<td>98</td>
</tr>
<tr>
<td>numpad 3</td>
<td>99</td>
</tr>
<tr>
<td>numpad 4</td>
<td>100</td>
</tr>
<tr>
<td>numpad 5</td>
<td>101</td>
</tr>
<tr>
<td>numpad 6</td>
<td>102</td>
</tr>
<tr>
<td>numpad 7</td>
<td>103</td>
</tr>
</tbody>
</table>
</td>
<td></td>
<td>
<table id="TABLE3" cellspacing="0">
<tbody>
<tr>
<td>Key</td>
<td>Code</td>
</tr>
<tr>
<td>numpad 8</td>
<td>104</td>
</tr>
<tr>
<td>numpad 9</td>
<td>105</td>
</tr>
<tr>
<td>multiply</td>
<td>106</td>
</tr>
<tr>
<td>add</td>
<td>107</td>
</tr>
<tr>
<td>subtract</td>
<td>109</td>
</tr>
<tr>
<td>decimal point</td>
<td>110</td>
</tr>
<tr>
<td>divide</td>
<td>111</td>
</tr>
<tr>
<td>f1</td>
<td>112</td>
</tr>
<tr>
<td>f2</td>
<td>113</td>
</tr>
<tr>
<td>f3</td>
<td>114</td>
</tr>
<tr>
<td>f4</td>
<td>115</td>
</tr>
<tr>
<td>f5</td>
<td>116</td>
</tr>
<tr>
<td>f6</td>
<td>117</td>
</tr>
<tr>
<td>f7</td>
<td>118</td>
</tr>
<tr>
<td>f8</td>
<td>119</td>
</tr>
<tr>
<td>f9</td>
<td>120</td>
</tr>
<tr>
<td>f10</td>
<td>121</td>
</tr>
<tr>
<td>f11</td>
<td>122</td>
</tr>
<tr>
<td>f12</td>
<td>123</td>
</tr>
<tr>
<td>num lock</td>
<td>144</td>
</tr>
<tr>
<td>scroll lock</td>
<td>145</td>
</tr>
<tr>
<td>semi-colon</td>
<td>186</td>
</tr>
<tr>
<td>equal sign</td>
<td>187</td>
</tr>
<tr>
<td>comma</td>
<td>188</td>
</tr>
<tr>
<td>dash</td>
<td>189</td>
</tr>
<tr>
<td>period</td>
<td>190</td>
</tr>
<tr>
<td>forward slash</td>
<td>191</td>
</tr>
<tr>
<td>grave accent</td>
<td>192</td>
</tr>
<tr>
<td>open bracket</td>
<td>219</td>
</tr>
<tr>
<td>back slash</td>
<td>220</td>
</tr>
<tr>
<td>close braket</td>
<td>221</td>
</tr>
<tr>
<td>single quote</td>
<td>222</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<p>Aşağıda ki örnekle klavye tuşlarına basarak karşılıkları olan char codeları görebilirsiniz.</p>
<pre class="brush: html; gutter: false">&lt;html&gt;
&lt;body&gt;
&lt;script language=&quot;JavaScript&quot;&gt;
    function function1() {
        x = event.keyCode; alert(&quot;Unicode Value: &quot;+x);
    }
    function function2() {
        x = event.keyCode; alert(&quot;Keyboard Value: &quot;+x);
    }
&lt;/script&gt;
&lt;p&gt;Herhangi bir tuşa basın&lt;/p&gt;
&lt;body onKeyDown=&quot;function2();&quot; onKeyPress=&quot;function1();&quot;&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Ayrıca JQuery $.keyup() fonksiyonuda Keycode işlevini yapabilir. jQuery $.keyup() fonksiyonuda Javascrit keycode kullanmanızı sağlar.</p>
<p>jQuery $.keyup() fonksiyonunun kullanımı ve jQuery $.keyup() ile alakalı örneğe <a title="tr kodlama" href="http://www.trkodlama.com/javascript-keycode-lari-354.html">TRKodlama.com</a> sitesinden ulaşabilirsiniz.<br />
Keycode karakter tablosu <a title="javascript char code" href="http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes">ChambiaResearch </a>sitesinden alınmıştır. Bu sitede tuşlara karşılık gelen keycode&#8217;ları da sorgulayabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodrella.com/javascript-keycode-tablosu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress &#8220;Bu Sayfaya Erişmek için yeterli izniniz yok&#8221; hatası</title>
		<link>http://www.kodrella.com/wordpress-bu-sayfaya-erismek-icin-yeterli-izniniz-yok-hatasi/</link>
		<comments>http://www.kodrella.com/wordpress-bu-sayfaya-erismek-icin-yeterli-izniniz-yok-hatasi/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 10:00:33 +0000</pubDate>
		<dc:creator>Guest</dc:creator>
				<category><![CDATA[İpucu & Çözümler]]></category>
		<category><![CDATA[Karma İçerikler]]></category>

		<guid isPermaLink="false">http://www.kodrella.com/?p=96</guid>
		<description><![CDATA[Dün wordpress panelde bazı ayarlamalar yaptıktan sonra, yazı ekle sayfasına girdiğimde &#8220;Bu sayfaya erişmek için yeterli izniniz yok&#8221; diye bir hata verdi. Başka tarayıcıdan wp-admin giriş yaptım fakat aynı hatayı vermeye devam etti. Bunun üzerine google&#8217;da arama yaptım. Bu sayfayla karşılaştım. Burada anlatılan yöntem mantıklı geldi ve dosyayı indirip ftp atıp çalıştırdım. Aşağıda ki gibi [...]]]></description>
			<content:encoded><![CDATA[<p>Dün wordpress panelde bazı ayarlamalar yaptıktan sonra, yazı ekle sayfasına girdiğimde &#8220;Bu sayfaya erişmek için yeterli izniniz yok&#8221; diye bir hata verdi. Başka tarayıcıdan wp-admin giriş yaptım fakat aynı hatayı vermeye devam etti.</p>
<p>Bunun üzerine google&#8217;da arama yaptım. <a title="wordpress" href="http://blog.aytacengin.com/bu-sayfaya-erismek-icin-yeterli-izniniz-yok-wordpress-wp-hatasi-nasil-duzeltilir-cozum-yolu-nedir" target="_blank">Bu </a>sayfayla karşılaştım. Burada anlatılan yöntem mantıklı geldi ve dosyayı indirip ftp atıp çalıştırdım. Aşağıda ki gibi bir sonuç yazdırdı sayfaya.</p>
<pre class="brush: html; gutter: true">WordPress loaded...
Upgrade functions loaded...
Object cache flushed...
Database made current...
Data upgraded...
Rewrite rules flushed...
Object cache flushed...</pre>
<p>Çalıştırılan script&#8217;ten bir görüntü;</p>
<p><a href="http://www.kodrella.com/wp-content/uploads/2012/01/busayfawp.png"><img class="alignnone  wp-image-110" title="busayfawp" src="http://www.kodrella.com/wp-content/uploads/2012/01/busayfawp-300x194.png" alt="" width="560" height="340" /></a></p>
<p><strong><span style="text-decoration: underline;">Fakat hata düzelmedi.</span></strong></p>
<p>Bunun üzerine wordpress panelde en son yaptığım değişikliği iptal etmeye çalıştım. En son otomatik eklenti kurmuştum.</p>
<p>FTP&#8217;den son kurduğum eklentiyi silip denedim. Çalıştı.</p>
<p>Bu hatayla karşılaşanlar öncelikle <strong>son kurduğu eklenti / tema silip deneyebilirler</strong>. Olmazsa İlk çözüm yolunu deneyebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodrella.com/wordpress-bu-sayfaya-erismek-icin-yeterli-izniniz-yok-hatasi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blackberry i harfi ve Blackberry Android uygulaması çalıştırma</title>
		<link>http://www.kodrella.com/blackberry-i-harfi-ve-blackberry-android-uygulamasi-calistirma/</link>
		<comments>http://www.kodrella.com/blackberry-i-harfi-ve-blackberry-android-uygulamasi-calistirma/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 16:21:29 +0000</pubDate>
		<dc:creator>Guest</dc:creator>
				<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[Mobil]]></category>

		<guid isPermaLink="false">http://www.kodrella.com/?p=67</guid>
		<description><![CDATA[Bu yazıda BlackBerry kullanımı hakkında 2 ipucu yer almaktadır. Ara ara akıllı telefonların kullanımlarını kolaylaştıran ve özelleştiren çeşitli ipuçları, yazıları yayınlayacağız. Türkiyede satılan blackberry telefonlarda Türkçe dil standart geldiğinde i harfini kullanamıyoruz. Fakat i harfini ingilizce dilini etkinleştirerek kullanabilirsiniz. Bu şekilde de ı kullanamazsınız. Her ikisi için aşağıda ki yöntemi kullanabilirsiniz. ı harfine basılı tutarken, [...]]]></description>
			<content:encoded><![CDATA[<p>Bu yazıda BlackBerry kullanımı hakkında 2 ipucu yer almaktadır. Ara ara akıllı telefonların kullanımlarını kolaylaştıran ve özelleştiren çeşitli ipuçları, yazıları yayınlayacağız.</p>
<p>Türkiyede satılan blackberry telefonlarda Türkçe dil standart geldiğinde i harfini kullanamıyoruz. Fakat i harfini ingilizce dilini etkinleştirerek kullanabilirsiniz. Bu şekilde de ı kullanamazsınız.</p>
<p>Her ikisi için aşağıda ki yöntemi kullanabilirsiniz.</p>
<p>ı harfine basılı tutarken, touchpadi aşağı yukarı hareket ettirirseniz, hem i harfi için hem diğer karakterler için tuş takımları etkin olur.</p>
<p>İnternette ı harfinin işi ne, benim işimde internet ile derseniz dili direkt ingilizce seçin gitsin.</p>
<p>Blackberyy sistemlerde android uygulamaları çalıştırılabilir. Blackberry içinde default gelen app  ile android uygulamalarını rahatça çalıştırabilirsiniz. Blackberry App player ile tüm<strong> android uygulamaları</strong>nı (200.000+) blackberry telefonlarınızda kullanır hale gelebiliyorsunuz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodrella.com/blackberry-i-harfi-ve-blackberry-android-uygulamasi-calistirma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sezar şifrelemesi ve mantığı</title>
		<link>http://www.kodrella.com/sezar-sifrelemesi-ve-mantigi/</link>
		<comments>http://www.kodrella.com/sezar-sifrelemesi-ve-mantigi/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 15:13:19 +0000</pubDate>
		<dc:creator>Guest</dc:creator>
				<category><![CDATA[Karma İçerikler]]></category>
		<category><![CDATA[Kriptoloji]]></category>
		<category><![CDATA[Manşet]]></category>
		<category><![CDATA[alfanumerik şifreleme]]></category>
		<category><![CDATA[sezar şifrelemesi]]></category>
		<category><![CDATA[şifreleme yöntemleri]]></category>

		<guid isPermaLink="false">http://www.kodrella.com/?p=82</guid>
		<description><![CDATA[Bilinen en eski şifreleme yöntemlerinden biridir. Günümüzde bilgisayarlar tarafından basitçe çözülebilen bir şifreleme yöntemidir. Sezar şifrelemesinin tarihi hakkında internette çok sayıda efsane dolaşmasına rağmen, Şifreleme yönteminin Sezar&#8217;dan gelmediğine emin olabilirsiniz. Bilindiği üzere kriptoloji, vermek istenilen mesajın, belirli bir mantığa göre şifrelenmesi ve mesajın deşifre edilebilmesiyle uğraşır. Kısacası sezar şifrelemesinde mantık şudur. &#8220;Bu şifreli bir yazı&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Bilinen en eski<span style="text-decoration: underline;"> şifreleme yöntemleri</span>nden biridir. Günümüzde bilgisayarlar tarafından basitçe çözülebilen bir şifreleme yöntemidir. Sezar şifrelemesinin tarihi hakkında internette çok sayıda efsane dolaşmasına rağmen, Şifreleme yönteminin Sezar&#8217;dan gelmediğine emin olabilirsiniz.</p>
<p>Bilindiği üzere kriptoloji, vermek istenilen mesajın, belirli bir mantığa göre şifrelenmesi ve mesajın deşifre edilebilmesiyle uğraşır.</p>
<p><a href="http://www.kodrella.com/wp-content/uploads/2012/01/alfabe-sezar-şifrelemesi.jpg"><img class="alignnone size-full wp-image-83" title="alfabe-sezar-şifrelemesi" src="http://www.kodrella.com/wp-content/uploads/2012/01/alfabe-sezar-şifrelemesi.jpg" alt="" width="110" height="110" /></a></p>
<p>Kısacası <strong>sezar şifrelemesi</strong>nde mantık şudur.</p>
<p>&#8220;Bu şifreli bir yazı&#8221; <em>// Orjinal metin</em></p>
<p>&#8220;cy tjgsfmj cjs zbai&#8221; <em>// Şifrelenmiş metin</em></p>
<p>Bu basit şifreleme yönteminde, şifreli metin, orjinal metinde bulunan harfe +1 sonrasıyla yer değiştirilerek oluşturulur.</p>
<p>B + 1 sonraki harf = C</p>
<p>C + 1 sonraki harf = D</p>
<p>Ş + 1 sonraki harf = T</p>
<p>Alfabemizde 29 harf bulunmaktadır.</p>
<p>Bunlar sırasıyla (örnek yapabilirsiniz.)</p>
<p>a, b, c, ç, d, e, f, g, ğ, h, ı, i, j, k, l, m, n, o, ö, p, r, s, ş, t, <em>u</em>, <em>ü</em>, v, y, z <strong>.</strong></p>
<p><em>Wikipedi&#8217;de bu şifreleme yönteminin çözülmesi hakkında şunlar söylenmiş.</em></p>
<p>Kaba kuvvet (brute-force) saldırısıyla çok kolay çözülür. Çünkü;</p>
<ul>
<li>Şifreleme/Şifre çözme yöntemi gizli değildir.</li>
<li>Sadece 25 (Latin alfabesi harf sayısı) farklı deneme yeterlidir. (Anahtar uzayı 25 elemanlıdır.)</li>
<li>Düz metin (plaintext) ve formatı gizli değildir.</li>
<li>26! farklı şifre tablosu vardır.</li>
</ul>
<p>Dillere göre farklılık gösterebilir, fakat günümüz teknolojisinde, uygun algoritmalarla kırılması kolay, bilinen eski bir yöntemdir. Zaten sadece bu işe meraklı kişilere bilgi sağlama amaçlı ve &#8220;<span style="text-decoration: underline;">Sezar&#8217;ında şifreleme yöntemi</span>&#8221; varmış demeniz için yayınlanmış magazinel yazıdır.</p>
<p>Bu konu hakkında daha detaylı bilgiye <a title="sezar şifrelemesi" href="http://www.mutasyon.net/makaleoku.asp?id=733" target="_blank">mutasyon.net</a> te yayınlanmış makaleyi okuyarak ulaşabilirsiniz.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodrella.com/sezar-sifrelemesi-ve-mantigi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2011 yılından garip google aramaları</title>
		<link>http://www.kodrella.com/2011-yilinin-en-garip-arama-sorgulari/</link>
		<comments>http://www.kodrella.com/2011-yilinin-en-garip-arama-sorgulari/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 11:36:26 +0000</pubDate>
		<dc:creator>Guest</dc:creator>
				<category><![CDATA[İnternet Günlüğü]]></category>
		<category><![CDATA[enteresan]]></category>
		<category><![CDATA[garip aramalar]]></category>
		<category><![CDATA[garip google aramaları]]></category>

		<guid isPermaLink="false">http://www.kodrella.com/?p=52</guid>
		<description><![CDATA[Geçen yıl bir blogda rastlamıştım bu tür bir yazıya, biz de bu yıl, 2011 yılı için böyle bir liste hazırlayalım istedik. İşte 2011 yılı içinde karşılaştığımız en garip 10 arama. “birisinin seni sevmesi için dua“ “arif isminde vanda yaşayan bir iranlı“ “nasıl illuminati olunur“ “ömer çelakıl mesleği“ “türk polisi kapı açma” “kendi kendime konuşuyorum“ “sevgilimden [...]]]></description>
			<content:encoded><![CDATA[<p>Geçen yıl bir blogda rastlamıştım bu tür bir yazıya, biz de bu yıl, 2011 yılı için böyle bir liste hazırlayalım istedik. İşte 2011 yılı içinde karşılaştığımız en garip 10 arama.<br />
<a href="http://www.kodrella.com/wp-content/uploads/2012/01/arifadlıbiriranlı.jpg"><img class="alignnone  wp-image-78" title="arifadlıbiriranlı" src="http://www.kodrella.com/wp-content/uploads/2012/01/arifadlıbiriranlı-300x11.jpg" alt="" width="335" height="12" /></a></p>
<pre class="brush: xhtml; gutter: true">“birisinin seni sevmesi için dua“
“arif isminde vanda yaşayan bir iranlı“
“nasıl illuminati olunur“
“ömer çelakıl mesleği“
“türk polisi kapı açma”
“kendi kendime konuşuyorum“
“sevgilimden ayrılmak istiyorum ne yapmalıyım”
“doğru erkeği bekleyen kadın facebook“
“nasıl kavga edilir uzmantv”
“asdfghjklşi ne demek“</pre>
<p>Daha çoğaltılabilir. Örneğin 17 yaşındayım, 18, 19, 20 diye 40&#8242;a kadar aratabilirsiniz. Google da daha önce aratılan içerikler yeterli gelecektir.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodrella.com/2011-yilinin-en-garip-arama-sorgulari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blackberry&#8217;de yönetim değişimi!</title>
		<link>http://www.kodrella.com/blackberryde-yonetim-degisimi/</link>
		<comments>http://www.kodrella.com/blackberryde-yonetim-degisimi/#comments</comments>
		<pubDate>Wed, 04 Jan 2012 15:24:04 +0000</pubDate>
		<dc:creator>Guest</dc:creator>
				<category><![CDATA[Manşet]]></category>

		<guid isPermaLink="false">http://www.kodrella.com/?p=37</guid>
		<description><![CDATA[Kanada&#8217;nın teknoloji devi RIM&#8217;de yönetici değişimi yaşanıyor. 04/01/2012 Kanada&#8217;nın günlük ekonomi gazetesi Financial Post&#8217;un şirkete yakın kaynaklara dayandırdığı haberine göre, Blackberry telefonlarının üreticisi Research In Motion&#8217;un (RIM) sahipleri Mike Lazaridis ve Jim Balsille yakında şirket yönetiminden çekilecekler. Yeni CEO olarak ise üst düzey yöneticilik geçmişi bulunan Barbara Stymiest&#8217;in ismi geçiyor. Değişimin sadece CEO&#8217;larla kalmayıp,şirket yönetim [...]]]></description>
			<content:encoded><![CDATA[<p>Kanada&#8217;nın teknoloji devi RIM&#8217;de yönetici değişimi yaşanıyor.</p>
<p>04/01/2012</p>
<p>Kanada&#8217;nın günlük ekonomi gazetesi Financial Post&#8217;un şirkete yakın kaynaklara dayandırdığı haberine göre, Blackberry telefonlarının üreticisi Research In Motion&#8217;un (RIM) sahipleri Mike Lazaridis ve Jim Balsille yakında şirket yönetiminden çekilecekler.<br />
<img alt="" src="http://yahoyt.com/images/news/hbr_12798_d.jpg" title="blackberry rim" class="alignnone" width="410" height="231" /><br />
Yeni CEO olarak ise üst düzey yöneticilik geçmişi bulunan Barbara Stymiest&#8217;in ismi geçiyor.</p>
<p>Değişimin sadece CEO&#8217;larla kalmayıp,şirket yönetim kurulununda da kendini göstermesi bekleniyor.</p>
<p>Ekonomi yorumcuları ise haberi, şirket yönetimi üzerinde bir süredir artan yönetim değişikliği baskısının getirisi yorumunu yapıyorlar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodrella.com/blackberryde-yonetim-degisimi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Messenger Windowsta!</title>
		<link>http://www.kodrella.com/facebook-messengerin-windows-surumu/</link>
		<comments>http://www.kodrella.com/facebook-messengerin-windows-surumu/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 23:12:50 +0000</pubDate>
		<dc:creator>Guest</dc:creator>
				<category><![CDATA[Gündem]]></category>
		<category><![CDATA[Manşet]]></category>
		<category><![CDATA[facebook messenger]]></category>
		<category><![CDATA[tag]]></category>
		<category><![CDATA[ve etiketleirn yurdunda ölem ölem]]></category>
		<category><![CDATA[webrazzi]]></category>
		<category><![CDATA[webrazzi haberleri]]></category>
		<category><![CDATA[windows sürümü]]></category>

		<guid isPermaLink="false">http://www.kodrella.com/?p=28</guid>
		<description><![CDATA[Facebook, sohbet uygulaması Facebook Messenger‘ı ilk önce mobil cihazlara taşımıştı. İlk bakışta sadece mobil iletişim alanında önemli bir açılın gibi görünen uygulamanın aslında bundan daha fazlasını hedeflediği ise sonradan ortaya çıktı. Facebook Messenger’ın PC sürümü üzerinde çalışıldığını, hatta geçtiğimiz ay ufak bir test grubunun kullanmaya başladığını biliyorduk ama ne zaman piyasaya çıkacağına dair net bir [...]]]></description>
			<content:encoded><![CDATA[<p>Facebook, sohbet uygulaması <a href="http://www.webrazzi.com/etiket/Facebook-Messenger/">Facebook Messenger</a>‘ı ilk önce mobil cihazlara <a href="http://www.webrazzi.com/2011/08/10/facebook-messenger/">taşımıştı</a>. İlk bakışta sadece mobil iletişim alanında önemli bir açılın gibi görünen uygulamanın aslında bundan daha fazlasını hedeflediği ise sonradan ortaya çıktı.</p>
<p>Facebook Messenger’ın PC sürümü üzerinde çalışıldığını, hatta geçtiğimiz ay ufak bir test grubunun kullanmaya başladığını biliyorduk ama ne zaman piyasaya çıkacağına dair net bir bilgi yoktu. Tam da bu sırada dün beklenmedik bir şekilde Facebook Messenger’ın Windows sürümü <a href="http://www.zdnet.com/blog/facebook/facebook-messenger-for-windows-leaks/6691?tag=content;siu-container">ortaya çıktı</a> ya da daha doğru bir ifade ile “sızdı”.</p>
<p>İlk olarak İsrail kökenli <a href="http://techit.co.il/2011/12/%D7%91%D7%9C%D7%A2%D7%93%D7%99-facebook-messenger-%D7%A2%D7%91%D7%95%D7%A8-%D7%9E%D7%A2%D7%A8%D7%9B%D7%AA-%D7%94%D7%94%D7%A4%D7%A2%D7%9C%D7%94-windows-%D7%9C%D7%94%D7%95%D7%A8%D7%93%D7%94/">TechIT</a> sitesinde ortaya çıkan Facebook Messenger sızıntısına karşı Facebook yapabileceği en mantıklı hamlelerden birini yaptı ve birkaç saat içerisinde uygulamayı <a href="https://www.facebook.com/help/?faq=140228902751098#What-is-Messenger-for-Windows?-">resmen yayınladı</a>.</p>
<p>Böylece daha önce Android, iPhone ve BlackBerry’de bulunan Facebook Messenger, Windows’a da taşınmış oldu. Uygulama temel olarak üç işleve sahip. İlki tahmin edebileceğiniz gibi Facebook arkadaşlarınız ile sohbet etmek. Ama bunun yanı sıra uygulama haber bandı ve bildirimlere de hızlı bir şekilde erişmenizi sağlıyor. Facebook Messenger’ın üst <img title="Facebook Messenger" src="http://www.webrazzi.com/wp-content/uploads/2011/12/fb_messenger_02.jpg" alt="" width="320" height="255" />menüsünden yeni arkadaşlık isteklerini de görüp yanıtlayabiliyorsunuz.</p>
<p>Programı çalıştırdığınızda ilk olarak varsayılan tarayıcınız ile Facebook’a giriş yapmanız gerekiyor. “Oturumu sürekli açık tut” kutusunu da işaretlemeniz, tarayıcıyı kapattıktan sonra da masaüstü uygulamasını kullanmaya devam edebilmek için gerekli.</p>
<p>Facebook Messenger’ın en güzel özelliklerinden biri platform bağımsız sohbet imkanı sağlıyor olması. Yani siz uygulamanın masaüstü sürümünü kullanırken, karşınızdaki mobil cihazından ya da Facebook.com üzerinden sohbete dahil olabilir.</p>
<p>SMS’ten sonra şimdi de Windows Live Messenger ve benzerlerini tehdit eden Facebook Messenger’ın Windows sürümü Facebook <a href="https://www.facebook.com/help/?faq=140228902751098#What-is-Messenger-for-Windows?-">yardım sayfasından</a> indirebilirsiniz. Mac ve Linux sürümleri ile ilgili henüz bir açıklama yok.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodrella.com/facebook-messengerin-windows-surumu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android vs MySQL</title>
		<link>http://www.kodrella.com/android-vs-mysql/</link>
		<comments>http://www.kodrella.com/android-vs-mysql/#comments</comments>
		<pubDate>Sat, 31 Dec 2011 23:04:16 +0000</pubDate>
		<dc:creator>Guest</dc:creator>
				<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Programlama]]></category>

		<guid isPermaLink="false">http://www.kodrella.com/?p=19</guid>
		<description><![CDATA[Android uygulamamızı php script yardımıyla mysql veritabanından veri çekeceğiz. Bu verileri parse edip kullanmaya çalışacağız. Php scripti veri tabanına bağlanıp tüm verileri çekecek ve ekrana tüm içeriği json dizisi şeklinde yazacak. Android uygulamamız ise bu sayfaya http protokolünü kullanarak yada url için stream oluşturarak bağlantı gerçekleştirecek ve sayfanın içeriğini okuyacak. Böylelikle sayfadaki tüm veriyi alabileceğiz. [...]]]></description>
			<content:encoded><![CDATA[<p align="LEFT">Android uygulamamızı php script yardımıyla mysql veritabanından veri çekeceğiz. Bu verileri parse edip kullanmaya çalışacağız.</p>
<p align="LEFT">Php scripti veri tabanına bağlanıp tüm verileri çekecek ve ekrana tüm içeriği json dizisi şeklinde yazacak. Android uygulamamız ise bu sayfaya http protokolünü kullanarak yada url için stream oluşturarak bağlantı gerçekleştirecek ve sayfanın içeriğini okuyacak. Böylelikle sayfadaki tüm veriyi alabileceğiz. Ardındanda kullanıcının istediği seçeneğe göre verileri listeleyeceğiz.</p>
<p align="LEFT">Android uygulamamız içerisinde http bağlantı gerçekleştirip sayfa talebinde bulunmalıyız. Bunu anroid service ile yapacağız. Oluşturacağımız service ‘service’ sınıfından türetilecek. ‘activity’ ve ‘service’ arasında bir IPC oluşturarak service sınıfındaki methodları kendi methoduymuş gibi rahatlıkla kullanacağız.</p>
<p align="LEFT"><a href="http://www.kodrella.com/wp-content/uploads/2011/12/Android-vs-MySQL.jpg"><img class="alignnone size-full wp-image-20" title="Android vs MySQL" src="http://www.kodrella.com/wp-content/uploads/2011/12/Android-vs-MySQL.jpg" alt="" width="180" height="160" /></a></p>
<p align="LEFT">Service bize gerekli tüm veriyi temin edecek. I/O işlemi olduğu için uygulama yavaş başlayacak bunu da bir progressdialog ile aşacağız.</p>
<p align="LEFT">Uygulamanın üst bölümünde yer alan bir ‘ViewFlipper’ tvlerdeki altyazı türüne benzeyen bir kayan yazı ile sayfanın başlığını bize gösterecek. Titreşime benzeyen bir animasyonu ‘TableLayout’ üzerinde kullanarak verilerin hazırlandığı kullanıcıya açık bir şeklide gösterilecektir.</p>
<p align="LEFT">Uygulamada; mysql veri tabanını dolaylıda olsada kullanabilmek ve animasyonlarla kullanıcıyı tatmin etmeye yönelik çalışılmışdır.</p>
<p align="LEFT">Uygulamamızın içeriğine geçelim…</p>
<p align="LEFT">Yapacaklarımızı yukarıda bahsetmişdik. Şimdi de sırasıyla bunları uygulayalım. İlk olarak php scriptini hazırlayalım.</p>
<pre class="brush: php; gutter: true">&amp;lt;?php
mysql_connect(“localhost”,”***”,”***”);
mysql_select_db(“DB_STACK”);

&lt;pre class=&quot;brush: actionscript3; gutter: true; first-line: 1; highlight: []; html-script: false&quot;&gt;$q = mysql_query(“SELECT * FROM TBL_METEOROLOJI”);
</pre>
<p>while($e = mysql_fetch_assoc($q))<br />
$output[] = $e;</p>
<p>print(json_encode($output));</p>
<p>mysql_close();<br />
?&gt;</p>
<p>Şeklinde bir script ile veriler veri tabanından alınıyor ve json tipinde sayfaya yazdırılıyor.</pre>
<p align="LEFT"><a href="http://www.kodcu.com/wp/wp-content/uploads/2011/12/ephpekran.png"><img src="http://www.kodcu.com/wp/wp-content/uploads/2011/12/ephpekran-300x85.png" alt="" width="300" height="85" /></a></p>
<p align="LEFT">Veri tabanımızda dokuz tane kolonumuz var bunu için bir sınıf ve interface tasarlıyoruz. ‘interface’ değişkenleri ve get/set fonksiyonlarını içeren bir sınıfa sahip. ‘Sınıf’ ise interface ile genişletiliyor ve de tüm bu veriyi depolayabilecek bir veri yapısına sahip.(hashmap) Veri tabanında primary key olan bölüm hashmap için ise key değeri olarak kullanılacakdır. Methoda alınan bir ‘JSONObject’ parse edilerek hashmap içeriği dolduruluyor.</p>
<p align="LEFT">Bu verileri ağ üzerinden alarak activity e iletecek olan service bakalım.</p>
<pre class="brush: java; gutter: true">InputStream is = null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(“http://10.0.2.2/mysqlData”);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();</pre>
<p align="LEFT">Sayfa isteğinde bulunuluyor ve sayfa verileri elde ediliyor. ’10.0.2.2′  adresi emülatör ağa köprü üzerinden bağlandığından ana bilgisayarın localhost adresi konumunda olmaktadır. Ana bilgisayarda localhost/mysqlData şeklinde çağırabileceğimiz bir sayfayı emülatör içerisinde  10.0.2.2/mysqlData şeklinde çağırabiliyoruz. Bu nedenle somut bir cihaz üzerinde bu ayarlar ile uygulama çalışmayacaktır. Ana sistem adresi configure edilmelidir.</p>
<p align="LEFT">İkinci bir seçenek ise;</p>
<p align="LEFT">DataInputStream streamreader = new DataInputStream<br />
(new URL(url).openStream());<br />
StringBuilder streambuilder = new StringBuilder();<br />
while(streamreader.available()&gt;0){<br />
streambuilder.append((char)streamreader.readByte());<br />
}</p>
<p align="LEFT">Bu şekilde bir I/O(web sayfası okuma isteği -url.openStream-) işlemi işinizi rahatlıkla görecekdir. ‘JSONArray’ kullanarak verilerden JSON dizisi oluşturuyoruz. Dizinin elemanları birer JSONObject’tir.</p>
<p align="LEFT">JSONArray jArray = new JSONArray(&lt;string&gt;);</p>
<p align="LEFT">Verimiz hazırsa artık ‘Main Activity’ e geçelim.</p>
<p align="LEFT">Activity service kullarak verileri temin edecek, ekrandaki animasyonları yönetecek ve kullanıcı isteğine göre verileri listeleyecek. Service ise verileri uygulama ilk açıldığında temin edip depolayacak.</p>
<p align="LEFT"><a href="http://www.kodcu.com/wp/wp-content/uploads/2011/12/activitymain.png"><img src="http://www.kodcu.com/wp/wp-content/uploads/2011/12/activitymain.png" alt="" width="300" height="285" /></a></p>
<p>Bunun için öncelikli olarak progress dialoğumuzu oluşturmalıyız.</p>
<p align="LEFT"><a href="http://www.kodcu.com/wp/wp-content/uploads/2011/12/progressdialog.png"><img src="http://www.kodcu.com/wp/wp-content/uploads/2011/12/progressdialog-300x213.png" alt="" width="300" height="213" /></a></p>
<p align="LEFT">MyProgressDialog = new ProgressDialog(Connecter.this);<br />
MyProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);<br />
MyProgressDialog.setMessage(“Loading Data Please Wait…”);</p>
<p align="LEFT">Progress dialog yukarıdaki şekilde oluşturuluyor. Style ksımında STYLE_HORIZONTAL’ i de deneyebilirsiniz. (Bilgisayarda default olarak kullanılan progress bar gibidir.) Progress dialoğu kontrol edebilmek için bir thread ve bir de handler gerekiyor. Handler bilgiyi güncellerken thread ise işlemi yapar.</p>
<p align="LEFT">Uygulamada JSONArray child thread yardımıyla parse edilir. Handler ise durum güncelleştirmesi yapar ve işlem sonlandığında dialoğun yok olmasını gerçekleştirir. Bir bakıma handler threadin sonlanma kriterine göre threadin çalışmasını izler ve gerekli kriter oluştuğunda thread sonlandırılır.</p>
<p align="LEFT">Verilerin tamamı parse edildiğine göre şimdide animasyonlara göz atalım.</p>
<p align="LEFT"><a href="http://www.kodcu.com/wp/wp-content/uploads/2011/12/ekran.png"><img src="http://www.kodcu.com/wp/wp-content/uploads/2011/12/ekran-300x213.png" alt="" width="300" height="213" /></a></p>
<p align="LEFT">Şekilde de görüldüğü gibi girilen aya ilişkin meteorolojik veriler ekrana geliyor. Veriler için bir ‘tablelayout’ oluşturulup dinamik olarak dolduruluyor. Sayfanın en üsttünde ise bir ‘ViewFlipper’ bulunmaktadır. ViewFlipper’ ın içerisinde ise yazının görünmesini sağlayan TextView yer alır. TextView için ise iki türlü animation oluşturulmuşdur, bunlar flipperin-flipperout değerleri içindir. ViewFlipper çoklu yazılar için güzel bir tercihdir. Animasyon desteği ile de ön planda olan bir components dır. Büyük boyutlarda static yazılar için tercih edilebilir.</p>
<p align="LEFT">Uygulamada da bariz olarak görünen, ağ üzerinden bağlanacağımız bir veri tabanı ile rahatlıkla çalışabaileceğimizdir.</p>
<p align="LEFT">İyi çalışmalar…</p>
<p align="LEFT"><a title="uygulama" href="http://www.youtube.com/watch?v=2z2dQtAwtqg&amp;feature=youtu.be" target="_blank">Uygulamanın videosu…</a></p>
<p align="LEFT"><a title="uygulama kodları" href="http://www.kodcu.com/wp/wp-content/uploads/2011/12/ConnectMySQL.tar" target="_blank">Uygulamanın kaynak kodları…</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kodrella.com/android-vs-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

