<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Coders' Grave</title> <link>http://codersgrave.com</link> <description /> <lastBuildDate>Tue, 31 Jan 2012 10:30:21 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.2</generator> <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CodersGrave" /><feedburner:info uri="codersgrave" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item><title>T-ercüme.com: Yeni Site</title><link>http://codersgrave.com/1440-t-ercume-com-yeni-site/</link> <comments>http://codersgrave.com/1440-t-ercume-com-yeni-site/#comments</comments> <pubDate>Tue, 31 Jan 2012 10:14:53 +0000</pubDate> <dc:creator>Sevil YILMAZ</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[Haberler]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[css3]]></category> <category><![CDATA[htm5]]></category> <category><![CDATA[one page]]></category> <category><![CDATA[tasarım]]></category><guid isPermaLink="false">http://codersgrave.com/?p=1440</guid> <description><![CDATA[Yeminli tercüman Taner YILMAZ&#8217;ın kişisel web sitesi. Tasarım, HTML5/CSS3: T-ercume.com]]></description> <content:encoded><![CDATA[<p>Yeminli tercüman Taner YILMAZ&#8217;ın kişisel web sitesi.</p><p>Tasarım, HTML5/CSS3: <a title="T-ercüme • Türkçe - İngilizce Çeviri. English - Turkish Translation" href="http://t-ercume.com" target="_blank">T-ercume.com</a></p><p class="group"><a href="http://cdn.codersgrave.com/wp-content/uploads/2012/01/01-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation.png" rel="lightbox[1440]" title="01-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation"><img class="alignleft size-thumbnail wp-image-1446" title="01-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation" src="http://cdn.codersgrave.com/wp-content/uploads/2012/01/01-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-150x150.png" alt="T-ercüme • Türkçe - İngilizce Çeviri. English - Turkish Translation" width="150" height="150" /></a><a href="http://cdn.codersgrave.com/wp-content/uploads/2012/01/02-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-What-I-Do.png" rel="lightbox[1440]" title="02-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-What-I-Do"><img class="alignleft size-thumbnail wp-image-1447" title="02-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-What-I-Do" src="http://cdn.codersgrave.com/wp-content/uploads/2012/01/02-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-What-I-Do-150x150.png" alt="T-ercüme • Türkçe - İngilizce Çeviri. English - Turkish Translation - What I Do" width="150" height="150" /></a><a href="http://cdn.codersgrave.com/wp-content/uploads/2012/01/03-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-About.png" rel="lightbox[1440]" title="03-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-About"><img class="alignleft size-thumbnail wp-image-1448" title="03-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-About" src="http://cdn.codersgrave.com/wp-content/uploads/2012/01/03-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-About-150x150.png" alt="T-ercüme • Türkçe - İngilizce Çeviri. English - Turkish Translation - About" width="150" height="150" /></a><a href="http://cdn.codersgrave.com/wp-content/uploads/2012/01/04-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-Subtitles.png" rel="lightbox[1440]" title="04-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-Subtitles"><img class="alignleft size-thumbnail wp-image-1449" title="04-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-Subtitles" src="http://cdn.codersgrave.com/wp-content/uploads/2012/01/04-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-Subtitles-150x150.png" alt="T-ercüme • Türkçe - İngilizce Çeviri. English - Turkish Translation - Subtitles" width="150" height="150" /></a><a href="http://cdn.codersgrave.com/wp-content/uploads/2012/01/05-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-Contact.png" rel="lightbox[1440]" title="05-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-Contact"><img class="alignleft size-thumbnail wp-image-1450" title="05-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-Contact" src="http://cdn.codersgrave.com/wp-content/uploads/2012/01/05-T-ercume-Turkce-Ingilizce-Ceviri-English-Turkish-Translation-Contact-150x150.png" alt="T-ercüme • Türkçe - İngilizce Çeviri. English - Turkish Translation - Contact" width="150" height="150" /></a></p> ]]></content:encoded> <wfw:commentRss>http://codersgrave.com/1440-t-ercume-com-yeni-site/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Facebook Friend Selector</title><link>http://codersgrave.com/1336-facebook-friend-selector/</link> <comments>http://codersgrave.com/1336-facebook-friend-selector/#comments</comments> <pubDate>Sun, 01 Jan 2012 09:00:23 +0000</pubDate> <dc:creator>Sevil YILMAZ</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[Sosyal Ağ]]></category> <category><![CDATA[facebook]]></category> <category><![CDATA[friend chooser]]></category> <category><![CDATA[friend selection]]></category> <category><![CDATA[friend selector]]></category> <category><![CDATA[multi-friend selector]]></category><guid isPermaLink="false">http://codersgrave.com/?p=1336</guid> <description><![CDATA[Facebook Friend Selector is a friend selection assistant for your Facebook application or your website that is equipped with Facebook Connect. This tool returns you your friends ID&#8217;s only and you use them as you please. It was built using &#8230; <a href="http://codersgrave.com/1336-facebook-friend-selector/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Facebook Friend Selector is a friend selection assistant for your Facebook application or your website that is equipped with Facebook Connect. This tool returns you your friends ID&#8217;s only and you use them as you please. It was built using the <a href="http://jquery.com/" target="_blank" title="jQuery">jQuery</a> library.</p><p style="text-align: center;"><a class="demo-link" href="http://facebook-friend-selector.codersgrave.com/">Demo &#038; Download</a></p><p class="group"><a href="http://cdn.codersgrave.com/wp-content/uploads/2012/01/preview-img-1.jpg" rel="lightbox[1336]" title="Facebook Friend Selector Color Blue"><img src="http://cdn.codersgrave.com/wp-content/uploads/2012/01/preview-img-1-150x150.jpg" alt="Facebook Friend Selector Color Blue" title="Facebook Friend Selector Color Blue" width="150" height="150" class="alignleft size-thumbnail wp-image-1342" /></a><a href="http://cdn.codersgrave.com/wp-content/uploads/2012/01/preview-img-4.jpg" rel="lightbox[1336]" title="Facebook Friend Selector Search Results"><img src="http://cdn.codersgrave.com/wp-content/uploads/2012/01/preview-img-4-150x150.jpg" alt="Facebook Friend Selector Search Results" title="Facebook Friend Selector Search Results" width="150" height="150" class="alignleft size-thumbnail wp-image-1344" /></a><a href="http://cdn.codersgrave.com/wp-content/uploads/2012/01/preview-img-2.jpg" rel="lightbox[1336]" title="Facebook Friend Selector Show Count"><img src="http://cdn.codersgrave.com/wp-content/uploads/2012/01/preview-img-2-150x150.jpg" alt="Facebook Friend Selector Show Count" title="Facebook Friend Selector Show Count" width="150" height="150" class="alignleft size-thumbnail wp-image-1343" /></a></p><p><span id="more-1336"></span></p><ul><li>Ability to set a maximum number for friend selection</li><li>Exclude as many people as you want from the list</li><li>Ability to show random friends list</li><li>Ability to set maximum friends on list</li><li>Search</li><li>Facebook invite option</li><li>Overlay color selection</li><li>Overlay opacity selection</li><li>Ability to hide the overlay with a mouse click outside the box or a ESC key press</li><li>Centers the box on window resize</li><li>Ability to close the box onsubmit</li><li>Ability to enable or disable to display the number of selected people in the box</li><li>Seven color options (easily customizable)</li><li>Adaptability of texts to any desired language</li><li>Ability to decide what to do onstart</li><li>Ability to decide what to do onclose</li><li>Easy integration</li></ul> ]]></content:encoded> <wfw:commentRss>http://codersgrave.com/1336-facebook-friend-selector/feed/</wfw:commentRss> <slash:comments>19</slash:comments> </item> <item><title>PHP ile Twitter Authentication</title><link>http://codersgrave.com/1279-php-twitter-connect/</link> <comments>http://codersgrave.com/1279-php-twitter-connect/#comments</comments> <pubDate>Tue, 06 Dec 2011 10:41:32 +0000</pubDate> <dc:creator>Önder Yüceur</dc:creator> <category><![CDATA[Genel]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Sosyal Ağ]]></category> <category><![CDATA[auth]]></category> <category><![CDATA[authentication]]></category> <category><![CDATA[authorize]]></category> <category><![CDATA[connect]]></category> <category><![CDATA[login]]></category> <category><![CDATA[oauth]]></category> <category><![CDATA[open authentication]]></category> <category><![CDATA[php]]></category> <category><![CDATA[twitter]]></category><guid isPermaLink="false">http://codersgrave.com/?p=1279</guid> <description><![CDATA[Twitter yakın zamanda basic authentication sisteminden open authentication sistemine geçmişti. Bu yazıda Twitter&#8217;ın REST Api&#8217;sindeki kaynaklara erişim için gerekli olan authentication sistemini görelim. Öncelikle bunun için Twitter&#8217;ın PHP için önerdiği kütüphanelere Twitter Libraries adresinden erişebilirsiniz. Ben yazımda TwitterOAuth kütüphanesini kullanacağım. &#8230; <a href="http://codersgrave.com/1279-php-twitter-connect/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Twitter yakın zamanda basic authentication sisteminden open authentication sistemine geçmişti. Bu yazıda Twitter&#8217;ın REST Api&#8217;sindeki kaynaklara erişim için gerekli olan authentication sistemini görelim.</p><p>Öncelikle bunun için Twitter&#8217;ın PHP için önerdiği kütüphanelere <a title="Twitter Libraries" href="https://dev.twitter.com/docs/twitter-libraries#php" target="_blank">Twitter Libraries</a> adresinden erişebilirsiniz. Ben yazımda <a title="TwitterOAuth" href="https://github.com/abraham/twitteroauth" target="_blank">TwitterOAuth</a> kütüphanesini kullanacağım. İlk olarak bunu indirmenizi isteyeyim.<br /> <span id="more-1279"></span></p><p><strong>Önemli Not 1:</strong> Aşağıdaki örnek Framework&#8217;lerden soyutlanmış bir örnektir. Sizin bir Framework&#8217;ünüz varsa kullanımınızı oraya göre düzenlemeniz kolay olacaktır.</p><p><strong>Önemli Not 2:</strong> Bu anlatımda sizin Twitter hesabındanızdan bir adet uygulama açıp gerekli erişim anahtarlarına sahip olduğunuzu düşünüyorum. Uygulama oluşturmak için <a title="Twitter Apps" href="https://dev.twitter.com/apps" target="_blank">Twitter Apps</a> sayfasına gidebilirsiniz.</p><h3>Aşama 1 &#8211; Twitter kütüphanemizi indirelim</h3><p><a title="TwitterOAuth" href="https://github.com/abraham/twitteroauth" target="_blank">TwitterOAuth</a> adresindeki kütüphayi indirelim</p><h3>Aşama 2 &#8211; Proje dosyalarını oluşturalım</h3><p>Aşağıdaki dosyaları projenize ekleyin. Buradaki Twitter dizini içine github&#8217;dan indirdiğiniz TwitterOAuth kütüphanesi içindeki tüm dosyaları kopyalayın.</p><p>|&#8211; project<br /> |     |&#8211; Twitter (TwitterOAuth Kütüphenesi)<br /> |     `index.php (yeni dosya)<br /> |     `connect.php (yeni dosya)<br /> |     `callback.php (yeni dosya)</p><h3>Aşama 3 &#8211; index.php dosyamıza aşağıdakileri ekleyelim</h3><p>Her bir satırın üzerindeki açıklamalar aşamaları anlatmaktadır.</p><pre><code class="prettyprint">&lt;?php

session_start();

// Twitter kütüphanesinden gerekli iki dosyayı(oauth class ve config)
// require_once ile script'e dahil ediyoruz.
require_once('Twitter/twitteroauth/twitteroauth.php');
require_once('Twitter/config.php');

// callback.php'de oluşacak olan access_token SESSION değerini
// farklı bir değişkene aktarıyoruz.
$sesAccessToken = $_SESSION['access_token'];

// Twitter oturumunun açık olup olmadığı bilgisini tutan
// session değerlerinin varolup olnadığının kontrolünü yapıyoruz.
// Eğer yoksa connect.php'ye yonlendiriyoruz
if (empty($sesAccessToken) || empty($sesAccessToken['oauth_token']) || empty($sesAccessToken['oauth_token_secret'])) {
  header('Location: /connect.php');
}

// TwitterOAuth sınıfını gerekli başlangıç değerlerini vererek connection
// nesnesi oluşturuyoruz. Buradaki CONSUMER_KEY ve CONSUMER_SECRET sabit
// değerlerini Twitter/config.php dosyasından ayarlıyoruz.
// Bu değerleri dev.twitter.com adresindeki uygulamalar bölümünde ya uygulama
// açarak ya da mevcut uygulamaların detay bilgileri arasından alabilirsiniz.
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $sesAccessToken['oauth_token'], $sesAccessToken['oauth_token_secret']);

// Ve yaratılan $connection nesnesinin get metodunu Twitter REST Api'ye
// ulaşmak için kullanıyoruz. Burada login olan kullanıcının profil bilgileri
// çekilmektedir.
$content = $connection->get('account/verify_credentials');

?&gt;

&lt;!DOCTYPE html&gt;
&lt;head&gt;
  &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
  &lt;title&gt;Coders' Grave | Twitter Authentication Demo&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
Twitter bağlantısı başarıyla sağlandı.&lt;br&gt;&lt;br&gt;
Merhaba &lt;strong&gt;&lt;?php echo $content->name ?&gt;&lt;/strong&gt;
&lt;/body&gt;
&lt;/html>
</code></pre><h3>Aşama 4 &#8211; callback.php dosyamıza aşağıdakileri ekleyelim</h3><p>Yine her bir satırın üzerindeki açıklamalar aşamaları anlatmaktadır.</p><pre><code class="prettyprint">&lt;?php

session_start();

// Twitter kütüphanesinden gerekli iki dosyayı(oauth class ve config)
// require_once ile script'e dahil ediyoruz.
require_once('Twitter/twitteroauth/twitteroauth.php');
require_once('Twitter/config.php');

// Tw uygulama izin ekranından izin ver butonuna tıklandıktan sonra
// önceden bildirdiğimiz callback sayfasına oauth_verifier ve oauth_token
// parametreleriyle birlikte döner. Yani callback.php?oauth_token=xxx&#038;oauth_verifier=yyy
// bu parametrelerden oauth_token anhatarının olup olmadığı ve yine bu anahtarla
// SESSION globalinizdeki oauth_token anahtarının eşit olup olmadığını
// kontrol eder. Eğer koşul sağlanmıyorsa ise login.php'ye yönlendirir.
if (isset($_GET['oauth_token']) &#038;&#038; $_SESSION['oauth_token'] !== $_GET['oauth_token']) {
  header('Location: login.php');
}

// TwitterOAuth sınıfını gerekli başlangıç değerlerini vererek connection
// nesnesi oluşturuyoruz. Buradaki CONSUMER_KEY ve CONSUMER_SECRET sabit
// değerlerini Twitter/config.php dosyasından ayarlıyoruz.
// Bu değerleri dev.twitter.com adresindeki uygulamalar bölümünde ya uygulama
// açarak ya da mevcut uygulamaların detay bilgileri arasından alabilirsiniz.
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['oauth_token'], $_SESSION['oauth_token_secret']);

// sayfamıza twitter tarafından parametre geçilen oauth_verifier anahtarını
// $access_token isimli bir değişkene aktarıyoruz. Bu bizim twitter
// tarafından şahsımıza verilen tekil bir doğrulama anahtarıdır.
$access_token = $connection->getAccessToken($_GET['oauth_verifier']);

// Bu anahtarı SESSION globaline yazıyoruz. Sebebi ise uygulamaya bağlı olup
// olmadığımızı ve REST Api kullanımında gerekli yerlerde bu anahtarı twitter'ın
// bizden istiyor oluşudur.
$_SESSION['access_token'] = $access_token;

// Bir üst satırda artık elimizde bize ait bir SESSION oluştuğuna göre
// aşağıdakilere ihtiyacımız kalmadı ve bunları temizleyelim.
unset($_SESSION['oauth_token']);
unset($_SESSION['oauth_token_secret']);

// $connection nesnesinden HTTP RESPONSE eğer 200 dönüyorsa herşey
// yolunda demektir. Artık istediğimiz sayfaya yönlendirebiliriz.
if ($connection->http_code == 200)
  header('Location: index.php');
// Eğer yolunda değilse uygulamanın size verdiği anahtarlarda bir yanlışlık
// olabilir veya izin sonrası dönen oauth_token anahtarının tekrar kullanılmak
// istenmesinden olabilir. oauth_token anahtarı bu arada tek kullanımlıktır.
else
  header('Location: login.php');

?&gt;
</code></pre><h3>Aşama 5 &#8211; connect.php dosyamıza da aşağıdakileri ekleyelim</h3><p>Ve yine her bir satırın üzerindeki açıklamalar aşamaları anlatmaktadır.</p><pre><code class="prettyprint">&lt;?php
session_start();

// Twitter kütüphanesinden gerekli iki dosyayı(oauth class ve config)
// require_once ile script'e dahil ediyoruz.
require_once('Twitter/twitteroauth/twitteroauth.php');
require_once('Twitter/config.php');

// Burada farkındaysanız 3. ve 4. parametreler verilmemiş.
// Çünkü henüz o parametrelere atananacak olan anahtarlara
// sahip değiliz. Onlara sahip olmak için Twitter'a login
// isteğinde bulunmamız gerek. Yine burda $connection nesnesi
// oluşturuyoruz.
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);

// Burada twitter'a login isteğinde bulunmamız için şart
// koşulan request token değerlerini üretiyoruz.
// Parametrede verilen OAUTH_CALLBACK config.pgp dosyamızdan
// ayarlanmalıdır.
$request_token = $connection->getRequestToken(OAUTH_CALLBACK);

// Oluşan anahtarları tekrar kullanabilmek için oturuma yazıyoruz.
$_SESSION['oauth_token'] = $token = $request_token['oauth_token'];
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];

// Eğer connection response kodu 200 ise herşey yolunda ve connect
// işlemini sağlayacak olan url'i isteyebiliriz.
if ( $connection->http_code == 200 ){
  // Giriş için link, buton veya herhangi bir şekilde twitter'a login
  // edeceğimiz bir sayfa gerekecek. Hemen alttaki getAuthorizeURL
  // metodu bizim için twitter uygulamamıza bağlantı arayüzü sunan bir
  // url üretecek ve siz bunu istediğiniz gibi kullanabileceksiniz.
  $url = $connection->getAuthorizeURL($token);
  echo '&lt;a href="' . $url . '"&gt;Twitter Connect&lt;/a&gt;';
}
else{
  echo "Uygulama ayarlarınızı kontrol edin";
}
?&gt;
</code></pre><p>Oluşturduğumuz projeyi indirmek için <a href="http://cdn.codersgrave.com/wp-content/uploads/2011/12/TwitterAuthentication.zip" title="TwitterAuth">tıklayınız</a>.</p><p>- Bu dosyaların hepsi projemde hazır, bitti<br /> - Kendime göre daha düzenli hale getirdim<br /> - Ben framework kullanıyorum ona göre düzenledim diyenlerden herhangi biriyseniz. index.php&#8217;yi browserdan tetikleyelim ve çalıştıralım bakalım neler oluyor.</p><p>Yazını başında da dediğim gibi öncelikle Twtitter hesabınıza bağlı bir uygulama olmalı. Bu bağlantıyı sadece bir uygulama üzerinden gerçekleştirebilirsiniz.</p><p>Selamlar&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://codersgrave.com/1279-php-twitter-connect/feed/</wfw:commentRss> <slash:comments>9</slash:comments> </item> <item><title>Cufon’la Sağdan Sola Yazmak</title><link>http://codersgrave.com/1242-cufon-sagdan-sola-yazmak/</link> <comments>http://codersgrave.com/1242-cufon-sagdan-sola-yazmak/#comments</comments> <pubDate>Tue, 27 Sep 2011 09:06:19 +0000</pubDate> <dc:creator>Sevil YILMAZ</dc:creator> <category><![CDATA[HTML]]></category> <category><![CDATA[JavaScript]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[cufon]]></category> <category><![CDATA[right to left]]></category> <category><![CDATA[rtl]]></category><guid isPermaLink="false">http://codersgrave.com/?p=1242</guid> <description><![CDATA[Birkaç ay önce bir Facebook uygulamasında hem Cufon kullanıp hem de bunu sağdan sola olacak şekilde yapmak durumunda kaldım. Bunu yaparken Cufon&#8217;un RTL desteklemediğini öğrendim. İleriki zamanlarda sağdan sola yazım Cufon tarafından desteklenecekmiş ama fazla vaktim olmadığı için bir javascript &#8230; <a href="http://codersgrave.com/1242-cufon-sagdan-sola-yazmak/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Birkaç ay önce bir Facebook uygulamasında hem <a title="Cufon" href="http://cufon.shoqolate.com" target="_blank">Cufon</a> kullanıp hem de bunu sağdan sola olacak şekilde yapmak durumunda kaldım. Bunu yaparken Cufon&#8217;un RTL desteklemediğini öğrendim. İleriki zamanlarda sağdan sola yazım Cufon tarafından desteklenecekmiş ama fazla vaktim olmadığı için bir javascript çözümü buldum.</p><p>Bu kod sayfa yüklenirken yavaşlamaya sebep olabilir. Ara ara da font değişimi sırasında yaşanan geçişler görünebilir. Ama eğer sayfanın büyük bir bölümünde Cufon kullanmıyorsanız sorun olmayacaktır.</p><p><img src="http://cdn.codersgrave.com/wp-content/uploads/2011/09/reverse-text.png" alt="Cufon&#039;la Sağdan Sola Yazmak" title="Cufon&#039;la Sağdan Sola Yazmak" width="220" height="55" class="alignnone size-full wp-image-1260" /><br /> <span id="more-1242"></span></p><h3>HMTL</h3><p>Sağdan sola yazım için &#8220;<em>reverse</em>&#8221; isimli bir sınıf kullandım.  Bunu herhangi bir elemente uygulayabilirsiniz.</p><pre><code class="prettyprint">&lt;span class="reverse"&gt;Lorem ipsum dolor sit amet&lt;/span&gt;</code></pre><h3>JS</h3><pre><code class="prettyprint">$('.reverse').wrapInner('&lt;bdo dir=ltr&gt;&lt;/bdo&gt;');
$('bdo').each(function()    {
  var word = $(this).text();
  var splitText = word.split('');
  var reversedText = splitText.reverse();
  var newText = reversedText.join('');
  $(this).text(newText);
});
Cufon.replace('bdo');</code></pre><p>Önce eğer dosyanız sağdan sola tanımlanmış ise bunu soldan sağa yapmak için &#8220;<em>dir=ltr</em>&#8221; yazıldı. Sonra karakterleri ters çevirmek için bir takım jQuery kodu kullanıldıktan sonra Cufon yenilendi. Kodun çalışması için sayfaya jQuery, Cufon ve kullandığınız Cufon fontlarını eklemeyi unutmayın.</p><p><a href="http://codersgrave.com/demo/cufon-rtl/" class="demo-link">Örnek</a></p><h3>Kaynaklar</h3><p><a href="http://www.isthatthetime.com/code/using-cufon-with-right-to-left-text/" target="_blank">Using Cufón with Right-To-Left text</a></p> ]]></content:encoded> <wfw:commentRss>http://codersgrave.com/1242-cufon-sagdan-sola-yazmak/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>PHP Developer Aranıyor</title><link>http://codersgrave.com/1226-php-developer-araniyor/</link> <comments>http://codersgrave.com/1226-php-developer-araniyor/#comments</comments> <pubDate>Tue, 06 Sep 2011 08:29:05 +0000</pubDate> <dc:creator>Sevil YILMAZ</dc:creator> <category><![CDATA[Haberler]]></category><guid isPermaLink="false">http://codersgrave.com/?p=1226</guid> <description><![CDATA[İş tanımı: Çoğunlukla web tabanlı işlerde çalışmak üzere takımımıza &#8220;PHP Developer&#8221; arıyoruz. Gereken Özellikler: Daha önceden PHP ve  açık kaynak &#8220;framework&#8221;ler ile proje geliştirmiş, Veritabanına hakim, HTML, CSS, JavaScript, Ajax hakkında bilgi sahibi, Gelişime açık, Takım çalışmasına uyumlu Başvurularınızı bu &#8230; <a href="http://codersgrave.com/1226-php-developer-araniyor/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p><strong>İş tanımı:</strong><br /> Çoğunlukla web tabanlı işlerde çalışmak üzere takımımıza &#8220;PHP Developer&#8221; arıyoruz.</p><p><strong>Gereken Özellikler:</strong></p><ul><li>Daha önceden PHP ve  açık kaynak &#8220;framework&#8221;ler ile proje geliştirmiş,</li><li>Veritabanına hakim,</li><li>HTML, CSS, JavaScript, Ajax hakkında bilgi sahibi,</li><li>Gelişime açık,</li><li>Takım çalışmasına uyumlu</li></ul><p>Başvurularınızı bu adrese gönderiniz: <strong>info[at]urbsz.net</strong></p> ]]></content:encoded> <wfw:commentRss>http://codersgrave.com/1226-php-developer-araniyor/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Google – Çoklu Oturum Açmayı Etkinleştirme</title><link>http://codersgrave.com/1187-google-coklu-oturum-acmak/</link> <comments>http://codersgrave.com/1187-google-coklu-oturum-acmak/#comments</comments> <pubDate>Fri, 08 Jul 2011 18:10:44 +0000</pubDate> <dc:creator>Sevil YILMAZ</dc:creator> <category><![CDATA[Haberler]]></category> <category><![CDATA[çoklu oturum açmak]]></category> <category><![CDATA[miltiple sign-in]]></category><guid isPermaLink="false">http://codersgrave.com/?p=1187</guid> <description><![CDATA[Biliyorsunuz bir süre önce Google kullanıcı hesaplarını birleştirdi. Artık gmail.com&#8217;dan direk Google Apps mail adresinize giriş yapabiliyorsunuz. Örnek: Hem codersgrave.com hem de çalıştığım şirket (urbsz.net) Google webmail servisini kullanıyor. Google bütün ayrı hesapları tek bir havuzda birleştirdiği için direk gmail.com&#8217;a &#8230; <a href="http://codersgrave.com/1187-google-coklu-oturum-acmak/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Biliyorsunuz bir süre önce <em>Google</em> kullanıcı hesaplarını birleştirdi. Artık gmail.com&#8217;dan direk <em>Google Apps</em> mail adresinize giriş yapabiliyorsunuz.<br /> <strong>Örnek:</strong> Hem <a href="http://codersgrave.com">codersgrave.com</a> hem de çalıştığım şirket (<a href="http://urbsz.net" target="_blank">urbsz.net</a>) <em>Google webmail</em> servisini kullanıyor. <em>Google</em> bütün ayrı hesapları tek bir havuzda birleştirdiği için direk gmail.com&#8217;a sevil[at]<span style="display: none;">boş</span>codersgrave<span style="display: none;">boş</span>.com ya da sevil[at]<span style="display: none;">boş</span>urbsz<span style="display: none;">boş</span>.net yazarak giriş yapabiliyorum.</p><p>Ama bu durumda diğer <em>Google</em> hesabınızdan çıkmanız gerekiyor. Bu sorunu çözmek için <em>Google</em> çoklu oturum açma (<em>multiple sign-in</em>) seçeneği sunuyor. Tabi bazı kısıtlamalarla. Ayrıntılar aşağıdaki adreste:<br /> <a href="http://www.google.com.tr/support/accounts/bin/answer.py?hl=tr&amp;answer=181599" target="_blank">http://www.google.com.tr/support/accounts/bin/answer.py?hl=tr&amp;answer=181599</a></p><p>&#8220;<em>Multiple sign-in</em>&#8220;i aktif etmek için: <a href="https://www.google.com/accounts/MultipleSessions" target="_blank">https://www.google.com/accounts/MultipleSessions</a> adresine gidip ya da aşağıdaki görselleri takip edip işlemleri gerçekleştirebilirsiniz.<br /> <span id="more-1187"></span><br /> <a href="http://cdn.codersgrave.com/wp-content/uploads/2011/07/google-enabling-multiple-sign-in-1.png" rel="lightbox[1187]" title="Google Enabling Multiple Sign-in 1"><img class="alignnone size-medium wp-image-1190" title="Google Enabling Multiple Sign-in 1" src="http://cdn.codersgrave.com/wp-content/uploads/2011/07/google-enabling-multiple-sign-in-1-300x201.png" alt="Google Enabling Multiple Sign-in 1" width="300" height="201" /></a><br /> <strong>1.</strong> Üstteki siyah bardan eposta adresinize tıklayıp ardından Hesap Ayarları (<em>Account Setting</em>)&#8217;a tıklamalısınız.<br /> <strong>2.</strong> Çıkan ekrandaki Çoklu oturum (<em>Multiple sign-in</em>) kısmında Kapalı (<em>Off</em>) yazıyorsa yanındaki Düzenle (<em>Edit</em>) bağlantısına tıklıyorsunuz.</p><p><a href="http://cdn.codersgrave.com/wp-content/uploads/2011/07/google-enabling-multiple-sign-in-2.png" rel="lightbox[1187]" title="Google Enabling Multiple Sign-in 2"><img class="alignnone size-medium wp-image-1191" title="Google Enabling Multiple Sign-in 2" src="http://cdn.codersgrave.com/wp-content/uploads/2011/07/google-enabling-multiple-sign-in-2-300x224.png" alt="Google Enabling Multiple Sign-in 2" width="300" height="224" /></a><br /> <strong>3. </strong>Bir sonraki ekranda Aç (<em>On</em>) <em>radio</em> butonuna tıklayıp bütün şıkları işaretliyorsunuz (Bu şıklar çoklu oturumun neleri kapsadığından bahsediyor özetle; siz de onları anladığınızı belli etmek için işaretliyorsunuz).<br /> <strong>4. </strong>Sonra da Kaydet (<em>Save</em>) butonuna basıyorsunuz.</p><p>Böylece bu hesabınız için işlemleri gerçekleştirmiş oldunuz. Bunu bütün hesaplarınız için tek tek yapmalısınız. Şimdi gelelim hesaplar arasında nasıl geçiş yapacağınıza.</p><p><a href="http://cdn.codersgrave.com/wp-content/uploads/2011/07/google-enabling-multiple-sign-in-3.png" rel="lightbox[1187]" title="Google Enabling Multiple Sign-in 3"><img class="alignnone size-medium wp-image-1192" title="Google Enabling Multiple Sign-in 3" src="http://cdn.codersgrave.com/wp-content/uploads/2011/07/google-enabling-multiple-sign-in-3-300x194.png" alt="Google Enabling Multiple Sign-in 3" width="300" height="194" /></a><br /> Hesap adresinizin yazdığı yere tıklayıp oradan da Hesap değiştir (<em>Switch account</em>)&#8217;a tıklıyorsunuz.</p><p><a href="http://cdn.codersgrave.com/wp-content/uploads/2011/07/google-enabling-multiple-sign-in-4.png" rel="lightbox[1187]" title="Google Enabling Multiple Sign-in 4"><img class="alignnone size-medium wp-image-1193" title="Google Enabling Multiple Sign-in 4" src="http://cdn.codersgrave.com/wp-content/uploads/2011/07/google-enabling-multiple-sign-in-4-300x149.png" alt="Google Enabling Multiple Sign-in 4" width="300" height="149" /></a><br /> Başka bir hesapta oturum açın (<em>Sign in to another account</em>)&#8217;a tıklıyorsunuz.</p><p><a href="http://cdn.codersgrave.com/wp-content/uploads/2011/07/google-enabling-multiple-sign-in-5.png" rel="lightbox[1187]" title="Google Enabling Multiple Sign-in 5"><img class="alignnone size-medium wp-image-1194" title="Google Enabling Multiple Sign-in 5" src="http://cdn.codersgrave.com/wp-content/uploads/2011/07/google-enabling-multiple-sign-in-5-300x192.png" alt="Google Enabling Multiple Sign-in 5" width="300" height="192" /></a><br /> Giriş yaptıktan sonra geçiş yapmak istediğiniz hesabınıza tıklıyorsunuz. Böylece diğer hesaba geçiş yapmış oluyorsunuz.</p><p>Çoklu oturum açtığınız zaman Çevrimdışı Gmail ve Çevrimdışı Takvim gibi uygulamaları kullanamayacaksınız. Çoklu oturumu iptal etmek için yine hesap ayarlarına gidip aynı yerden kapatabilirsiniz.</p> ]]></content:encoded> <wfw:commentRss>http://codersgrave.com/1187-google-coklu-oturum-acmak/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Focus border’ı silmek</title><link>http://codersgrave.com/1057-input-focus-border-sil/</link> <comments>http://codersgrave.com/1057-input-focus-border-sil/#comments</comments> <pubDate>Thu, 16 Jun 2011 15:35:46 +0000</pubDate> <dc:creator>Sevil YILMAZ</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[remove focus border]]></category> <category><![CDATA[remove focus highlight]]></category><guid isPermaLink="false">http://codersgrave.com/?p=1057</guid> <description><![CDATA[Bir input(text, password v.s.) ya da bir textarea&#8216;ya tıkladığınız zaman tarayıcılarda varsayılan olarak tıkladığınız elementlere çerçeve ekler. Firefox ve Internet Explorer&#8216;da çok belirgin olmasa da Webkit tabanlı tarayıcılarda (Chrome, Safari, Konqueror) sarı kalın bir çerçeve ile kendini belli eder. Bazı &#8230; <a href="http://codersgrave.com/1057-input-focus-border-sil/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Bir <em>input(text, password v.s.)</em> ya da bir <em>textarea</em>&#8216;ya tıkladığınız zaman tarayıcılarda varsayılan olarak tıkladığınız elementlere çerçeve ekler. <em>Firefox</em> ve <em>Internet Explorer</em>&#8216;da çok belirgin olmasa da <em>Webkit</em> tabanlı tarayıcılarda (<em>Chrome, Safari, Konqueror</em>) sarı kalın bir çerçeve ile kendini belli eder. Bazı tasarımlarda bu istenmeyen bir durumdur. Özellikle <em>input, textarea</em> stili için <strong><em>background</em></strong> özelliği kullanılıyorsa. Ben çoğunlukla varsayılan dışında stiller kullandığım için bu özelliği direk <em>reset.css</em>&#8216;e ekledim.</p><p><img class="size-full wp-image-1059" title="Webkit Focus Border" src="http://cdn.codersgrave.com/wp-content/uploads/2011/06/webkit-focus-border.png" alt="Webkit Focus Border" width="348" height="255" /><br /> <span id="more-1057"></span><br /> Bu çerçeveden kurtulmak için <em>input, textarea focus</em>&#8216;u için <em>CSS <strong>outline</strong></em> özelliğini kullanılabilir. Hatta istenirse <em>select</em> için de kullanılabilir.</p><pre><code class="prettyprint">input:focus,
textarea:focus,
select:focus {
  outline:none
}</code></pre><p>Yukarıda dediğim gibi bu sadece özel durumlar için kullanılması gereken bir kod. Stil dosyasına ekledikten sonra unutup gidilecek birşey değil. Sonra &#8220;Niye çerçeve çıkmıyor?&#8221; diye aranmayın.</p> ]]></content:encoded> <wfw:commentRss>http://codersgrave.com/1057-input-focus-border-sil/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Facebook Graph API ve Access Token</title><link>http://codersgrave.com/1023-facebook-graph-api-ve-access-token/</link> <comments>http://codersgrave.com/1023-facebook-graph-api-ve-access-token/#comments</comments> <pubDate>Fri, 03 Jun 2011 22:43:43 +0000</pubDate> <dc:creator>Önder Yüceur</dc:creator> <category><![CDATA[Sosyal Ağ]]></category> <category><![CDATA[asp.net]]></category> <category><![CDATA[facebook graph api]]></category> <category><![CDATA[php]]></category><guid isPermaLink="false">http://codersgrave.com/?p=1023</guid> <description><![CDATA[Open Authentication 2.0 kullanan nadir sistemlerden Facebook, bir arkadaşımın da dediği gibi önceden yapması gereken birşeyi yine sonradan yaptı ve graph api üzerinde access_token anahtarını bazı nesneler üzerinde zorunlu hale getirdi. İşte o zorunlu olan önemli nesnelerden bazıları; User User/feed &#8230; <a href="http://codersgrave.com/1023-facebook-graph-api-ve-access-token/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Open Authentication 2.0 kullanan nadir sistemlerden Facebook, bir arkadaşımın da dediği gibi önceden yapması gereken birşeyi yine sonradan yaptı ve graph api üzerinde <strong>access_token</strong> anahtarını bazı nesneler üzerinde zorunlu hale getirdi.</p><p><span id="more-1023"></span></p><p>İşte o zorunlu olan önemli nesnelerden bazıları;</p><ul><li><strong>User</strong></li><li><strong>User</strong>/feed</li><li><strong>User</strong>/friends</li><li><strong>User</strong>/posts</li><li><strong>Photo</strong></li><li><strong>Photo</strong>/comments</li><li><strong>Photo</strong>/likes</li><li><strong>Photo</strong>/picture</li><li><strong>Photo</strong>/tags</li><li><strong>Status</strong> Message</li><li><strong>Status Message</strong>/comments</li><li><strong>Status Message</strong>/likes</li></ul><p>Bir çok dil için sağlanan güncel Facebook SDK&#8217;lar access token anahtarını sağlayabiliyor.</p><h4>PHP Facebook SDK&#8217;da;</h4><pre><code class="prettyprint">require '/sdk/facebook.php';
$facebook = new Facebook(array(
'appId'  =&gt; 'hhhhhhhhhh',
'secret' =&gt; 'mmmmmmmmmmmmmmm',
));

$facebook-&gt;getAccessToken();</code></pre><h4>C# Facebook SDK&#8217;da;</h4><pre><code class="prettyprint">FacebookApp app = new FacebookApp();
String AccessToken = app.Session.AccessToken;</code></pre><p>Bunların dışında kendinize özgü Facebook SDK yazmışsanız <strong>access_token</strong> anahtarını almanın yolu aşağıdaki linktedir.</p><p><a title="Facebook Authentication" href="http://developers.facebook.com/docs/authentication/" target="_blank">http://developers.facebook.com/docs/authentication/</a></p><p>Gelelim access_token anahtarının kullanımına. Bu anahtarı bir şekilde elde etmeyi başarırsanız aşağıdaki örneklerde olduğu gibi kullanmanız yetecektir.</p><h4>Profil Bilgilerimi Getir</h4><pre><code class="prettyprint">$me_profile = $facebook-&gt;api('/me?access_token=xxxxxxxxxx');</code></pre><h4>Arkadaşlarımı Getir</h4><pre><code class="prettyprint">$me_profile = $facebook-&gt;api('/me/friends?access_token=xxxxxxxxxx');</code></pre><p>Facebook değiştirdi biz düzelttik. Facebook değiştiriyor biz düzeltiyoruz ve Facebook gene değiştirecek biz gene düzelteceğiz. Selametle&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://codersgrave.com/1023-facebook-graph-api-ve-access-token/feed/</wfw:commentRss> <slash:comments>15</slash:comments> </item> <item><title>Twitter – Facebook Rekabeti: “Follow” butonu</title><link>http://codersgrave.com/1010-twitter-follow-butonu/</link> <comments>http://codersgrave.com/1010-twitter-follow-butonu/#comments</comments> <pubDate>Thu, 02 Jun 2011 09:52:16 +0000</pubDate> <dc:creator>Sevil YILMAZ</dc:creator> <category><![CDATA[Haberler]]></category> <category><![CDATA[Sosyal Ağ]]></category> <category><![CDATA[twitter follow button]]></category><guid isPermaLink="false">http://codersgrave.com/?p=1010</guid> <description><![CDATA[Twitter geçtiğimiz Mayıs ayının sonunda &#8220;Follow&#8221; butonunu duyurdu. Kimileri Facebook&#8217;un &#8220;Like&#8221; butonuna rakip olarak gördüğü &#8220;Follow&#8221; butonu şu an için çok farklı amaçlara hizmet ediyor. Twitter ilerde aynı zamanda içeriği de takip etme gibi bir durum geliştirirse, işte o zaman &#8230; <a href="http://codersgrave.com/1010-twitter-follow-butonu/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Twitter geçtiğimiz Mayıs ayının sonunda &#8220;<strong>Follow</strong>&#8221; butonunu duyurdu. Kimileri Facebook&#8217;un &#8220;<strong>Like</strong>&#8221; butonuna rakip olarak gördüğü &#8220;<strong>Follow</strong>&#8221; butonu şu an için çok farklı amaçlara hizmet ediyor. Twitter ilerde aynı zamanda içeriği de takip etme gibi bir durum geliştirirse, işte o zaman rakip görülmeye başlanabilir. Ama şu anda ikisi farklı kulvarlarda.</p><p><strong>Twitter Follow</strong> butonu ile ilgili ayrıntılı bilgiye <a href="http://twitter.com/about/resources/followbutton" target="_blank">bu adresten</a> ulaşabilirsiniz.</p> ]]></content:encoded> <wfw:commentRss>http://codersgrave.com/1010-twitter-follow-butonu/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Yeni “Twitter’da Paylaş” Bağlantısı</title><link>http://codersgrave.com/1000-twitterda-paylas-baglantisi/</link> <comments>http://codersgrave.com/1000-twitterda-paylas-baglantisi/#comments</comments> <pubDate>Wed, 25 May 2011 20:04:41 +0000</pubDate> <dc:creator>Sevil YILMAZ</dc:creator> <category><![CDATA[Haberler]]></category> <category><![CDATA[HTML]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Sosyal Ağ]]></category> <category><![CDATA[share on twitter]]></category><guid isPermaLink="false">http://codersgrave.com/?p=1000</guid> <description><![CDATA[Twitter geçenlerde &#8220;paylaş&#8221; bağlantısını değiştirdi. Yeni bağlantı şöyle oldu: http://twitter.com/intent/tweet?text=Başlık&#38;url=http://siteadı/&#38;via=kimin_aracılığıyla Yeni bağlantıdan anlaşıldığı gibi: text = Başlık url = Site Adresi via = Kimin Aracılığıyla &#8220;via&#8221; kısmı isteğe bağlı olarak kullanılabilir. Yani sitenize ait bir Twitter kullanıcınız varsa via kısmına &#8230; <a href="http://codersgrave.com/1000-twitterda-paylas-baglantisi/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description> <content:encoded><![CDATA[<p>Twitter geçenlerde &#8220;paylaş&#8221; bağlantısını değiştirdi. Yeni bağlantı şöyle oldu:</p><pre><code>http://twitter.com/intent/tweet?text=Başlık&amp;url=http://siteadı/&amp;via=kimin_aracılığıyla</code></pre><p>Yeni bağlantıdan anlaşıldığı gibi:<br /> <strong> text</strong> = Başlık<br /> <strong> url</strong> = Site Adresi<br /> <strong> via</strong> = Kimin Aracılığıyla</p><p>&#8220;<strong>via</strong>&#8221; kısmı isteğe bağlı olarak kullanılabilir. Yani sitenize ait bir Twitter kullanıcınız varsa <strong>via </strong>kısmına onu yazmanız etkili olacaktır.</p><p>WordPress&#8217;de paylaş linkini şöyle kullanabilirsiniz: (<strong>via </strong>için <em>codersgrave</em>&#8216;i kullanacağım örnekte)</p><pre><code class="prettyprint">&lt;a href=&quot;http://twitter.com/intent/tweet?text=&lt;?php the_title(); ?&gt;&amp;url=&lt;?php the_permalink(); ?&gt;&amp;via=codersgrave&quot;&gt;Twitter'da Paylaş!&lt;/a&gt;</code></pre>]]></content:encoded> <wfw:commentRss>http://codersgrave.com/1000-twitterda-paylas-baglantisi/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss><!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching using disk: basic
Object Caching 1732/1858 objects using disk: basic
Content Delivery Network via cdn.codersgrave.com

Served from: codersgrave.com @ 2012-05-16 01:06:42 -->

