Bu Blogda Ara

javascript etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
javascript etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

15 Mayıs 2010 Cumartesi

JQuery ve Sanat

Tekrar merhaba,
Bu yazımda JQuery ile sanat nasıl yapılır konusuna ışık tutmaya çalışacağım. Sanat yapmak derken belki biraz abartmış olabilirim ama abartı çoğu insanın ilgilini çeken bir olgudur. Klasik, nedir - ne değildir zamazingosunu yapalım. Öncelikle resmi sitesini vererek kaynak belirtebiliriz - http://jquery.com/
not: indirirken size 2 seçenek sunmaktadır. Production / development şeklinde. Farkı, ilkinde gereksiz boşluk ve satır atlama karakterleri silinerek dosyanın boyutu küçültülmüş, bir nevi sıkıştırma yapılmış. Fakat kodun okunması neredeyse imkansız çünkü herşey birbirine geçmiş durumda. İkinci seçenekte ise kodlar okunaklı bir şekilde yayınlanıyor. Boyutu ilkine göre daha fazla ama bir geliştirici için çok değerli.
JQuery kütüphane içerisindeki kopyalama hakkı yazısını değiştirmediğiniz sürece ticari uygulamalarda dahi kullanabilirsiniz. Tamamen ücretsiz. Lisans detayları için resmi sitesinden bilgi alabilirsiniz.

Bu aralar çok duymaya başladım, nedir bu JQuery?
Özetle javascript yazımını kolaylaştıran kütüphane. İçerisinde bir çok javascript fonksiyonu barındırıyor. En önemli özelliği tarayıcı bağımsız olması. Yani JQuery ile yazdığımız javascript komutları tüm tarayıcılarda aynı şekilde sorunsuz olarak çalışmaktadır. Web ortamında javascript geliştirenler tarayıcı uyumsuzluğu sorununu bilmektedir. JQuery ile bu ortadan kalkmaktadır. Pratikte JQuery bize yeni birşey değil. Normal javascript komutlarıyla yapacaklarımızdan ötesi yok. O bize hızlı, güvenilir ve tarayıcı bağımsız javascript geliştirme imkanı sunmaktadır.

Hızlı bir giriş

$(document).ready(function(){
$("a").click(function(event){
alert("Tum linkler bu yaziyi gosterir!");
});
});

Sırayla inceleyelim. Öncelikle $ karakterinden başlamak istiyorum. Bu fark edebileceğiniz gibi bir fonksiyon aslında. Bildiğimiz javascript fonksiyonu. JQuery için temel ifade ediyor. Tüm çağrılarımızı bu fonksiyon üzerinden yapıyoruz. Reguler Expression tanımlamalarını çok iyi kullandıkları için bu fonksiyonun içerisine verebileceğimiz parametrelerin sayısı oldukça fazla. $(document) ile javascript'in çalıştığı dosyayı seçiyoruz. Daha sonra gelen .ready(... ifadesiyle sayfamızın işlem için hazır olduğunu garantiliyoruz.
function() { } neden gerekli?
.ready olayında çalışmasını istediğimiz kodları direk parantez içerisinde yazsaydık kodumuz çalışmayacaktı. Çünkü JQuery çalışma mantığında bir iş yapmak için o işi yapacak fonksiyonun adını ilgili JQuery fonksiyonuna vermeliyiz. Aynı fonksiyon işaretçileri gibi ya da diğer bir benzetmeyle klasik setTimeout javascript komutunda olduğu gibi.
Şimdi biraz toparlayalım:
$(document) // sayfamız
.ready( // hazır olunca çalıştır
function() { ... } // yeni bir fonksiyon ürettik ve bağladık
);

İyi gidiyoruz, ya sonra?
Yeni oluşturduğumuz fonksiyonun içeriğini inceleyelim.
$("a") // a taglı elemanları seç.
.click( // tıklayınca çalıştır.
function() { ... } // yeni bir fonksiyon ürettik ve bağladık
);
Burada oluşturduğumuz fonksiyonun içerisine alert komutumuzu yerleştirdik.
Kodumuzu çalıştırdığımızda sayfamızdaki tüm linkler tıklandığında bu mesajı alacaklar.
Giriş olarak bu kadarla yetineceğim. Daha sonraki yazılarımda detaylı incelemeler ve yeni örnekler sunacağım.
Görüşmek üzere...

4 Nisan 2010 Pazar

Cesar Algoritması Spam Postalara Karşı

Herkese merhaba,

Sanırım herkesin ortak derdidir önemsiz (spam) postalar. En büyük sıkıntı e-posta aderesimizi bir kere kötü insalara kaptırdığımızda artık geri dönüşü olmayan bir gereksiz e-posta yağmuruna tutuluyoruz. Birçok yöntem olmasına karşın ben burada sizlere bir web geliştirici olarak sitemizde yayınlayacağımız e-posta adreslerini spam mail atanlardan nasıl koruyacağımızı basit bir yöntemle anlatmaya çalışacağım.

Sitemizde yayınladığımız e-posta adresleri özel geliştirilmiş programlar tarafından taranıp toplanıyor. Daha sonra spam listesine yeni bir kurban olarak ekleniyor. Peki bunun önüne nasıl geçilebilir? İlk akla gelen mail adresimizi bir resim olarak yerleştirmek ya da bozuk bir formatta email (at) domain.com gibi kullanmaktır. Böyle yapmak bir çözüm olabilir. Ama biz direk sayfamızda mail adresinimiz görünsün ya da mailto: şeklide link vermek istiyorsak ne yapmalıyız?

Bilgi Günveliği Seminerinde Huzeyfe Önal'ın bahsettiği bir yöntem vardı. Sayfa üzerinde normal mail adresleri dışında bir de spam@domain.com gibi bir adres daha veriyormuş. Böylelikle normal adreslerin yanında bu adresi de listeye ekleyen spam mesaj gönderici programlar bu adresede reklam içerikli mail atıyorlar. Yalnız şöyle bir sistem geliştirmiş kendileri; o mail hesabına mail atan tüm mail adresleri kara listeye alınıyormuş. Böylelikle diğer adresler en fazla 1 tane spam alıyorlar. Zekice ve etkili bir yöntem olabilir. Ama ben hem maliyetli buluyorum hem de her ne koşulda olursa olsun mail adresimin spam uygulamaları tarafından yakalanmasını istemiyorum.

Peki ne yapabiliriz? Spam robotları sayfalar üzerinde düz yazıları okurlar. Resim, ses, video ya da çalıştıralabilir kodları (javascript, vb.) okuyamazlar ( en azından şimdilik:) ). Bu noktadan hareket edersek biz e-mail aderesinimizi basit bir Cesar algoritmasıyla şifreleyip istemc tarafında javascript ile çözümlersek hem robotları atlatmış oluruz hem de kullanıcıya korkmadan mail adresimizi sunmuş oluruz.

Ben bir örneği PHP dilinde vereceğim. Siz istediğiniz dil ile istediğiniz platformda gerçekleyebilirsiniz.

<?php
$xor_key = 19;
$email = '<a href="mailto:epostam@websitem.com">epostam@websitem.com</a>';
$sonuc ="";
for($i=0; $i<strlen($email); $i++)
{
$sonuc.= chr(ord($email[$i]) ^ $xor_key);
}
?>


<script language="javascript">
function decrypt()
{
var obje = document.getElementById('e_pos_ta');
var text = "<?php echo str_replace('"','\"', $sonuc); ?>";
var code="";
for(var i=0; i<text.length; i++)
{
code+=String.fromCharCode(text.charCodeAt(i) ^ <?php echo $xor_key; ?>);
}
obje.innerHTML = code;

}
</script>



<body onload="decrypt()">
...

<span id="e_pos_ta"><?php echo htmlspecialchars($sonuc); ?></span>


Ben algoritmayı biraz değiştirdim. Cesar kusura bakmasın :) Harfleri kaydırmak yerine basit XOR işlemi uyguladım. İsterseniz algoritmayı karıştırıp işi daha da zorlaştırabilirsiniz. Spam robotları artık sitenizdeki eposta adreslerini göremeyecekler.