Neden Evernote ve Tagspaces Yerine OneNote Kullanmalısınız

Akıllı telefonların yaygınlaşması ile pek çoğumuz not alma işlemini (ben de dahil) telefondaki uygulamalar ile yapmaya başladı. Eskiden post-it kullanarak kendimiz için küçük hatırlatıcılar oluşturuyorduk. Günümüzde ise Google Keep ve hatta telefonda kurulu olarak gelen temel not alma uygulamaları bu işleri görüyor. Fakat sıra iş planları, ders notları gibi büyük ve organize edilmesi gereken notları almaya gelince elimizde  ücretsiz ve mobil desteği olan çok az alternatif kalıyor. Bunlar Evernote, TagSpaces ve Microsoft OneNote. Benim tercihim ise Microsoft OneNote yönünde sebeplerini ise aşağıdaki paragraflarda açıkladım. Okumaya devam et Neden Evernote ve Tagspaces Yerine OneNote Kullanmalısınız

PHP ile veri cache (önbellekleme) işlemi

Cache (önbellek) gerçekleştirilen bir işlem sonucunun daha hızlı, daha zahmetsiz erişilebilecek bir yere kaydedilmesidir. Kaydedilen veriler belirli bir süre kullanılabilir olup, süre dolduğunda güncellenirler. Örnek ile açıklayacak olursak…

Düzenleme yaptığım bir e-ticaret sitesinde fiyatlar Euro cinsinden girilmiş. Fiyatların bulunduğu sayfalar her açıldığında PHP dosyası TCMB’nın sitesine bağlanıp döviz kurlarını alarak Euro cinsinden olan fiyatı Türk Lirası’na çeviriyordu.

Tahmin edebileceğiniz gibi sayfa her yenilendiğinde bir web sayfasını çağırmak da sunucu performansını oldukça düşüren bir işlemdi. Sadece bu da değil, eğer ziyaretçi sayımız fazla olursa TCMB’nın sunucuları saldırı yaptığımızı sanarak ip’mizi de engelleyebilirdi. İşte burada imdadıma cache sistemi yetişti…

Bu işlem için yazımın altında bulunan basit cache sınıfını hazırladım. Bu cache sistemi eğer 24 saatlik süre doldu ise TCMB üzerinden kurları çekip “kurlar.txt” adı ile yerel sunucuya kaydediyor, eğer süre dolmadı ise “kurlar.txt” dosyasında bulunan içeriği çıktı olarak veriyor. Üzerinde basit değişiklikler yaparak kur dışındaki işlemler için de kullanabilirsiniz.

Önemli Not: “kurlar.txt” dosyasını oluşturup chmod değerini 777 verdikten sonra ilk test için $cache_suresi değişkenini 0 olarak ayarlayın. Eğer 0 olarak ayarlamazsanız dosyanın oluşturulma tarihinden $cache_suresi sonrasına kadar “kurlar.txt” nin içi boş kalacaktır.

<?php

# önbellek süresi (saniye cinsinden)
# ilk çalıştırmada 0 yapın!
$cache_suresi           = 43200;

class onbellek{
# eğer önbellek süresi doldu ise yapılacak işlemler. (Örn: Veritabanından şu veriyi çek)
function veri(){
    $sayfa      = file_get_contents('http://www.tcmb.gov.tr/kurlar/today.xml');
    preg_match('~<CurrencyName>EURO</CurrencyName><ForexBuying>.*</ForexBuying><ForexSelling>(.*)</ForexSelling>~isU',$sayfa,$cikti);
    $euro       = $cikti[1];
    
    return ($euro);
}
function cache($dosyaadi){
    global $cache_suresi;
    if(filemtime($dosyaadi)+$cache_suresi<time()){
        $dosya = fopen($dosyaadi, 'w');
        $veri  = $this->veri();
        fwrite($dosya, $veri);
        fclose($dosya);
        return $veri;
    }else{
        $dosya  = fopen($dosyaadi, 'r');
        $icerik = fread($dosya, filesize($dosyaadi));
        fclose($dosya);
        return $icerik;
    }
}
}

$onbellek      = new onbellek();
# kurlar.txt dosyasının chmod ayarını 777 yapmayı unutmayın!
echo $onbellek->cache('kurlar.txt');
?>

Film download sitelerinde gördüğümüz terimlerin anlamları

Kimi download sitelerinden film indirmek istediğinizde aynı yapım için alternatif indirme linkleri bulunduğunu görürsünüz. Alternatif ile kastettiğim bu link bozulursa diğerinden indirin olanlar değil, farklı görüntü kalitelerinden istediğinizi indirmenize olanak tanıyanlar.

video-player

Tam olarak bahsettiğim şey filmin adının yanında yer alan DVDRip, 1080p, HDTV, DVBRip, DivX, TS, R5, BRRip, h264 gibi terimler… Bu terimler o kadar fazla ki hangisini tercih edeceğim konusunda bazen ben bile şaşırıyorum. Surf yaparken bu konu ile ilgili çok güzel bir listeye rastladım. Hem elimin altında bulunsun hemde benden başkaları da faydalanabilsin diyerekten blogumda yayınlıyorum.

Okumaya devam et Film download sitelerinde gördüğümüz terimlerin anlamları

Adblock kullanan kişileri tespit edip engellemek

Geçtiğimiz günlerde her zamanki gibi webmaster forumlarından birisinde vakit geçiriyordum. Konudan konuya atlar iken bir tartışmaya denk geldim. Konuyu açan “A” kişisi reklam yerleşimini nasıl yapacağı hakkında soru sormuş, “B” kişisi de konuyla artık ne ilgisi varsa ben Adblock kullanıyorum reklamlar görünmüyor diyor. Forum üyelerinden olan “C” de  sırf yorum yapmış olmak için yazma diye tepki gösterince, “B” isimli kahramanımız ekşi ve inci sözlükten aşina olduğumuz bir şekilde ortamı trollemeye kalkıyor ve “zaten yorumumu herkes beğensin diye bir amacım yoktu, Adblock kullanlar çoğalınca para kazanamayacaksınız vs… vs…”  diyor.

Fark ettim ki bir çok webmaster hala bilmiyor ama kahramanımızın düşündüğünün aksine Adblock birkaç satır javascript kodu yardımı ile çok da güzel engelleniyor. Hatta bunu yapmak için bir değil birden fazla yöntem var. Ben bu yöntemlerin hepsini birden sunarak sizleri vakit kaybından kurtacağım fakat önce bu konu hakkında bir kaç kelam etmek istiyorum.

adblock

Adblock Plus isimli firefox eklentisini kullananlardan birisi de benim. Kullanma nedenim ise yaygın sebep olan reklamlardan görsel olarak rahatsız olunması değil, reklamların yapılan http isteği sayısını arttığından dolayı web sayfasının yüklenme hızını yavaşlatmaları. Adblock kullandığımdan beri bu tür durumlar ile karşılaşmadığım için eklentiden oldukça memnunum. Tabi ben ne kadar memnun isem webmasterlar da o kadar nefret ediyor.

Olaylara tek taraflı bakmak doğru olmaz, onların açısından düşünecek olursak; nefret etmek de haksız da değiller (reklam yayınlamadığım için kendimi diğer gruba dahil ediyorum  :-p ). Sunucu, domain gibi masrafları site kendi gelirleri ile amorti ederken eklentiyi kullananlar çoğaldıkça cepten yemeye başlıyor. Hem emek verip, hem para harcayıp bir karşılık alamayınca da internetteki kaliteli web siteleri maalesef yayın hayatlarına son vermek zorunda kalıyor.

Bende dedim ki spam yapıp sayfası reklamdan geçilmeyen webmasterlar zaten bu yöntemi biliyor ve uyguluyor. Sitenin masraflarını karşılamak, kalırsa cebine de 3-5 kuruş kalması için uğraşanlarda öğrensin ki gün geçtikçe sayısı azalan kaliteli web sitelerinin hayatta kalmasına ufak da olsa bir katkım olsun.

Yöntem 1

Öncelikle webmasterlar tarafından en çok tercih edilen yöntemin bu olduğunu söylerek söze başlayayım. Adblock’un kabaca mantığı: “ads, banner, reklam…” türevi kelimeleri içeren html, javascript kodlarını pasif hale getirerek reklamların gösterilmemesini sağlamaktır. Bizde bu mantığa kullanarak adblock eklentisini bypass edeceğiz 🙂 .

adframe.js isimli bir dosya oluşturup içeriğini aşağıdaki şekilde doldurduktan sonra FTP’den ana dizinimize atıyoruz.

adblock = false;

Reklamın bulunduğu yerde bir uyarı mı çıkartacağız yoksa ziyaretçimizin web sayfasının içeriğini görmemesi için daha önceden hazırladığımız bir dosyaya mı yönlendireceğiz ona karar veriyoruz. Eğer uyarı çıkaracak isek reklamların bulunduğu sayfadaki “</body>” tagının hemen üstüne aşağıdaki kodu ekliyoruz.

<script type="text/javascript">
<!--
var adblock = true;
//-->
</script>
<script type="text/javascript" src="adframe.js"></script>
<script type="text/javascript">
<!--
if(adblock) {
var allElements = document.getElementsByTagName('div');
for (var i = 0; i < allElements.length; i++) {
if (allElements[i].className == 'a') {
allElements[i].innerHTML = 'Göstereceğiniz uyari mesaji. Html kullanabilirsiniz';
}
}
}
// http://www.0derece.net
//-->
</script>

Yok eğer yönlendirme yapacak isek de aşağıdaki kodu ekliyoruz

Okumaya devam et Adblock kullanan kişileri tespit edip engellemek

PHP ile localhostta RAR işlemleri

php-rar-eklentisi

Bugün projelerimden birisinde RAR ve ZIP dosyalarını internetten tek tek indirip PHP yardımı ile belirli bir dizine çıkardıktan sonra içine birkaç dosya ekleyip toplu halde tekrar arşivle yapmam gerekiyordu. Projeye başlarken benim tahminim gerçek kullanıcılar dışında bot yazılımlarının dosyalara erişememesi için güvenlik önlemi alınmış olacağından, en fazla dosya indirirken sıkıntı çekeceğim yönündeydi.

Fakat evdeki hesap çarşıya uymaz ya yine öyle oldu. Referrer kontrolü gibi bir-iki basit güvenlik önlemi alınmış, onları curl kütüphanesi yardımı ile kolayca aştım. Gelgelelim ki kolayca hallederim diye düşündüğüm RAR işlemlerini yapmak için yazdığım fonksiyon aşağıdaki şekilde bir hata iletisi ile bana dönüş yaptı.

Fatal error:  Call to undefined function rar_open() in D:\xampp\htdocs\dosyam.php on line 5

Okumaya devam et PHP ile localhostta RAR işlemleri

All-in-One Gestures – Mouse hareketleri ile firefox’ü yönetin

Öncelikle uzun bir aradan sonra tekrar merhaba… Bir süredir blogum ile ilgilenemiyordum neden ilgilenemediğim ile ilgili detaya girmeden hemen eklentiyi tanıtmaya başlayacağım.

Günümüzde hemen her internet kullanıcısının problemlerinden birisi de internette iken zamanın su gibi akıp gitmesi. Bu sorun o kadar büyük bir hale geldi ki artık birçok kullanıcının internetteki işlerini halledebilmek için geç uyumaya başladığı, buna bağlı olarak da uyku düzenin bozulduğu bilinen bir gerçek. Benim uzun süredir kullandığım All-in-One Gestures isimli eklenti de kısayollar oluşturup zamandan kazanarak bir nebze de olsa bu sorunu çözmeyi amaçlıyor.

Eminim kısayol deyince aklınıza hemen Windows’dan aşina olduğunuz alt+f4, alt+tab gibi tuş kombinasyonları geldi. Fakat yanılıyorsunuz, All-in-One Gestures bu konuda bir yenilik getirerek mouse hareketlerinin kombinasyonu ile kısayol oluşturmanızı sağlıyor. Kafanız mı karıştı? Aslında tahmin ettiğiniz kadar karışık bir şey değil. Görüntülenen web sitesinin herhangi bir yerinde sağ tuşa basılı tutarak mouseu yukarı-aşağı-sol-sağ yönlerinden birisine veya birkaçına hareket ettirmeniz o kombinasyonda tanımlı olan eylemin çalışmasını sağlıyor.

all-in-one-gestures

Okumaya devam et All-in-One Gestures – Mouse hareketleri ile firefox’ü yönetin

SpeedBit Video Accelerator

İster 100Mb ister 10Mb internet bağlantınız olsun, Youtube veya Metacafe‘den video izleyeceğiniz zaman benim gibi video’nun yüklenmesini beklemekten ve videoları izlerken yaşadığınız takılma sorunlarından bıktınımız mı? O zaman sizi SpeedBit Video Accelerator ile tanıştırayım.

speedbit-video-accelerator

Okumaya devam et SpeedBit Video Accelerator

Google Analytics kendi sitemde benim ziyaretlerimi saymasın

Yeni bir projemde ne tür sayfaların ilgi çektiğini saptamak için Google Analytics hizmetini kullanıyorum. Google’dan daha fazla ziyaretçi almak için ilgi çeken sayfaların içeriğini daha da geliştiriyordum tabi bu arada içeriği geliştirirken örneğin resim ekledim, sayfada nasıl duruyor diye girip kontrol ediyordum. Bir süre sonra Google Analyticsin benim ziyaretlerimide saymasından dolayı istediğim kadar doğru bilgi veremediğini gördüm. Hemen google amcaya koştum işin ilginci hiçbir türk webmaster bu konudan şikayetçi değildi ya da ben bulamadım. Neyse efendim mecburen yabancı web sitelerini araştırmaya başladım, iki farklı çözüm buldum birisi ip tabanlı engelleme diğeri cookie tabanlı engelleme. Sabit ip kullanmadığım için hemen cookie tabanlı engellemeye yöneldim :). Bu konuda benden başka dert yanan arkadaşlarımız varsa benim kadar uğraşmamaları için neler yapmaları gerektiğini aşağıda anlattım.

1) Bunun için öncelikle aşağıdaki gibi bir filtre oluşturuyorsunuz.

2) Google Analytics kodlarının bulunduğu bir sayfaya aşağıdaki kodları ekliyorsunuz

<a href="" onclick="javascript:_gaq.push(['_setVar', 'noGA']); alert('Cookie kayit edildi.')">Bu linke tiklayın</a>

3)Kodları eklediğiniz sayfadaki linke tıklayın

Çalışıp çalışmadığını kontrol etmek istermisiniz?

Tarayıcınızın cookie sayfasına gidin,  sitenizin çerezlerinde bakın eğer aşağıdaki gibi bir çerez varsa işlem tamam demektir. (dikkat edin “_utmv” seçili.)

Peki Google hep bir adım öndeyse?

Bu makalede, aramalarda üst sıralara çıkmak için yaptığımız pek çok aldatmacadan Google’ın nasıl haberi olduğunu anlatacağım. Öncelikle üst sıralarda çıkmak için Google’ın onaylamadığı hangi işlemleri yapıyoruz bunlara bakalım, yaptıklarımızı bilelim ki; Google’ın bunları nasıl anladığına dair fikirler üretebilelim. Kısa bir liste verecek olursam:

  • Link satın alma
  • Bloglara yorum olarak link ekleme (SPAM!)
  • Hit değişim programları (hital.com, hitcanavari.com, hitcini.net tarzı siteler ve programlar)
  • Kimi zaman Black Hat SEO sitelerinde yeni çıkan taktikler 🙂
  • Paravan siteler
  • vs vs vs…

Bildiğiniz gibi Google Türkiye’de en çok kullanılan arama motoru ama sadece arama motoru değil, onlarca servisi sunan bir firma ve bu servisler de sıradan internet kullanıcıları ve webmasterlar arasında oldukça popüler. Örneğin Google Analytics ve Adsense sitelerin çoğunda kullanılıyor, SEO ile uğraşan kişiler olarak içimizde Google Site Yöneticisi Aracını kullanmayan yoktur. Olay sadece sitelerimizden ibaret değil kişisel olarak bilgisayarımızda da Google ürünlerini kullanıyoruz örneğin Google Toolbar, Gmail, sansürler ayıbının olduğu bir ülkede yaşadığımızı hatırlarsak Google Public DNS servislerinden en az birisini kullanıyorsunuzdur. Fakat bir çoğumuz Google’ın bu servisler sayesinde internette attığımız her adımı takip edebileceğinin farkında değil! Örneklere geçerek daha kolay anlamanızı sağlayacağım. Okumaya devam et Peki Google hep bir adım öndeyse?

MyBB son konuları html sayfalarda gösterme

Html ile dinamik olarak güncellenen sayfalar oluşturamayız bu yüzden bu işlemi yapmak için php kullanmalıyız. Örnek olarak yazdığım bir kod aşağıda bulunuyor boş zaman buldukça yazıyı ve kodu güncelleyeceğim, şu haliyle sorunsuz çalışmaktadır.

<html>
<head>
<title>0Derece.net</title>
</head>
<body>
<a href="http://www.0derece.net" title="0Derece">0Derece</a>
<table>
<?php

/**
 * @author 0Derece
 * @filesource 0derece.net
 * @since 010611
 * @tutorial 
 * @version 0.1 beta
 * @copyright 2011
 */

// database bilgilerini almak icin config.phpyi, forum ile ilgili bilgileri almak icin settings.phpyi include ediyoruz
include ('inc/config.php');
include ('inc/settings.php');

// kurulumda prefix degistirilmisse konulari cekerken sorun cikmasin diye threads tablosunun basina prefix ekliyoruz
$tablo  =   $config['database']['table_prefix'].'threads';

// mysql ile baglanti kuruyoruz
$baglan = mysql_connect($config['database']['hostname'],$config['database']['username'],$config['database']['password']);
    // eger baglanamazsak bizi uyarmasini sagliyoruz
	if ( ! $baglan ) die ("MySQL ile veri baglantisi kurulamiyor!");
    
    // databasei seciyoruz
	mysql_select_db($config['database']['database'], $baglan)
        // database secerken hatayla karsilasirsa cikacak yazi
		or die ("Veritabanina ulasilamiyor!" . mysql_error() );

// databasedan son 10 konu seciliyor
$sorgu = mysql_query("SELECT tid,subject,lastposter,lastposteruid FROM $tablo order by tid desc LIMIT 10",$baglan);
if ( ! $sorgu ) die ("Sorgu calistirilamiyor :S");  // eger hata verirse
while ( $son10 = @mysql_fetch_assoc ($sorgu) ){     // yapilan sorgu son10 degiskenine ataniyor
?>
<tr>
    <!-- konuyu gosteriyoruz -->
    <td><a href="<?php echo $settings['bburl'].'showthread.php?tid='.$son10['tid']; ?>"><?php echo $son10['subject']; ?></a></td>
    <!-- son mesaj atan uyeyi gosteriyoruz -->
    <td><a href="<?php echo $settings['bburl'].'member.php?action=profile&uid='.$son10['lastposteruid']; ?>"><?php echo $son10['lastposter']; ?></td>
</tr>
<?php
$i++;
}
?>
</table>
</body>
</html>