28 Ağustos 2009 Cuma
8 Ağustos 2009 Cumartesi
Hiç Kendinizle Ortaklaşa Çalışarak Oyun Oynadınız Mı?
Posted in Eğlence, Oyun
Başlığı okuyunca ne yani oyunları zaten kendimiz oynamıyor muyuz diyebilirsiniz ama bu oyunda durum biraz farklı. Oyunda amacınız 16. kata çıkmak. Bu amaçla merdivenlere tıklayarak sırayla üst katlara tırmanıyorsunuz ama belli bir yerden sonra aynı anda iki iş yapmanız gerekiyor. İşte bu aşamada kendinizle ortaklaşa çalışmanız gerekli. Neyse ben lafı fazla uzatmadan ve işin süprizini kaçırmadan oyunun linkini vereyim de biraz siz çözmeye çalışın. :)
Kendinizle ortaklaşa çalışarak oyun oynamak için : Cursor*10
Aynı oyunun ikinci ve biraz daha zor versiyonu için : Cursor*10 2nd
Kendinizle ortaklaşa çalışarak oyun oynamak için : Cursor*10
Aynı oyunun ikinci ve biraz daha zor versiyonu için : Cursor*10 2nd
5 Ağustos 2009 Çarşamba
Ubuntu' dan Youtube Gibi Yasaklı Sitelere Giriş
Posted in Makale, Ubuntu
Ülkemizde uygulanan internet politikaları sebebiyle bir çok siteye erişimimiz engellenmiş durumda. Yine de çaresiz değiliz. Bilgisayarımızın DNS ayarlarıyla oynayarak bu sitelere erişmek mümkün. Öncelikle uçbirimi açıp şu komutları yazıyoruz.
Bu komutu yazdıktan sonra bilgisayar bize şifremizi soracak. Şifremizi yazdıktan sonra açılan ekrandaki yazıları siliyoruz. Bunların yerine aşağıdakileri yapıştırıyoruz.
Değişiklikleri kaydedip uçbirime şunları yazıyoruz.
Bu komutları yazdıktan sonra bilgisayarı yeniden başlatıyoruz. Artık engellenmiş sitelere bir problemle karşılaşmadan girebiliriz.
Her ne kadar çeşitli aracı siteler kullanılarak(tunnel türevleri gibi) bu sorun geçici olarak aşılsa bile bu sitelerdeki aşırı reklamlar kullanım kolaylığını azaltıyor. Ayrıca bu tarz siteleri kullanarak download yapmak, herhangi bir sitede oturum açmak gibi işlemler çoğu zaman yapılamıyor yapılsa bile bu işlemlerin güvenliği konusunda emin olunamıyor. İşte DNS ayarlarını değiştirmek bizi bu gibi problemlerden kurtarıyor.
sudo gedit /etc/resolv.conf
Bu komutu yazdıktan sonra bilgisayar bize şifremizi soracak. Şifremizi yazdıktan sonra açılan ekrandaki yazıları siliyoruz. Bunların yerine aşağıdakileri yapıştırıyoruz.
nameserver 208.67.222.222
nameserver 208.67.222.220
nameserver 208.67.222.220
Değişiklikleri kaydedip uçbirime şunları yazıyoruz.
cd /etc
sudo chattr +a resolv.conf
sudo chattr +a resolv.conf
Bu komutları yazdıktan sonra bilgisayarı yeniden başlatıyoruz. Artık engellenmiş sitelere bir problemle karşılaşmadan girebiliriz.
Her ne kadar çeşitli aracı siteler kullanılarak(tunnel türevleri gibi) bu sorun geçici olarak aşılsa bile bu sitelerdeki aşırı reklamlar kullanım kolaylığını azaltıyor. Ayrıca bu tarz siteleri kullanarak download yapmak, herhangi bir sitede oturum açmak gibi işlemler çoğu zaman yapılamıyor yapılsa bile bu işlemlerin güvenliği konusunda emin olunamıyor. İşte DNS ayarlarını değiştirmek bizi bu gibi problemlerden kurtarıyor.
27 Temmuz 2009 Pazartesi
PHP ile Kodunuzu Renklendirin
Posted in Makale, PHP, Web Programlama
PHP ile yazdığımız kodları renklendirmek isteyebiliriz. Bunun için hazır kütüphaneler vs. var ama biz çok daha kolay bir şekilde bu işlemi yapacağız.PHP' nin kendi kod renklendirme fonksiyonunu kullanacağız : highlight_string. Kullanımı da oldukça kolay.
Sonucu çıktı olarak almak yerine return value olarak döndürsün istiyorsanız fonsiyonumuza bir parametre ekliyoruz.
Buradaki true parametresi fonksiyonun sonucunu belirttiğimiz değişkene atıyor.
Birde highlight_file fonksiyonumuz var. Bu fonksiyon da adresini verdiğimiz dosyayı renklendirip ekrana yazdırıyor. Kullanımı şu şekilde;
Aynı şekilde bu fonksiyonda da sonucu ekrana yazdırmak yerine bir değer olarak döndürmek istiyorsanız ikinci parametreye true yazmanız yeterli.
<?php
highlight_string("<?php
echo("Merhaba");
?>");
?>
highlight_string("<?php
echo("Merhaba");
?>");
?>
<?php
echo( "Merhaba" );
?>
Sonucu çıktı olarak almak yerine return value olarak döndürsün istiyorsanız fonsiyonumuza bir parametre ekliyoruz.
<?php
$deger = highlight_string("<?php
echo("Merhaba");
?>", true);
?>
$deger = highlight_string("<?php
echo("Merhaba");
?>", true);
?>
Buradaki true parametresi fonksiyonun sonucunu belirttiğimiz değişkene atıyor.
Birde highlight_file fonksiyonumuz var. Bu fonksiyon da adresini verdiğimiz dosyayı renklendirip ekrana yazdırıyor. Kullanımı şu şekilde;
<?php highlight_file("file.php"); ?>
Aynı şekilde bu fonksiyonda da sonucu ekrana yazdırmak yerine bir değer olarak döndürmek istiyorsanız ikinci parametreye true yazmanız yeterli.
25 Temmuz 2009 Cumartesi
RoboCup Üzerine
Posted in Elektronik, Haber, RoboCup
Bilindiği üzere(bilmiyorsanız da birazdan öğreneceksiniz.) projelerim arasınra RoboCup da yer alıyor. Özellikle 2011 RoboCup' a İstanbul' da Boğaziçi Üniversitesi' nin ev sahipliği yapıyor olması beni bu projeye çeken başlıca etmen. Şuan sadece kafamda belli başlı fikirler var yani ortada proje namına bir şey yok :) ama bu projenin gelip geçici bir heves olmadığını da belirtmem gerek. Ayrıca 2011 yılına kadar yani 2 yıl vaktim olduğu için bu süre içersinde iyi kötü bir şeyler üretebileceğimi düşünüyorum. Tabi ki böyle bir projenin altından tek başıma kalkamam o yüzden yavaş yavaş bir ekip kurmaya çalışıyorum ama ortadaki ekibin(ben de dahil) henüz RoboCup a hazır olduğunu düşünmüyorum.
Asıl anlatmak istediğim mesele ise dün yaptıklarım. Ben ve şimdilik ekibin geri kalanı olan arkadaşım Boğaziçi Üniversitesi' ne gittik. Sağ olsun Cerberus(Boğaziçi Üniversitesi RoboCup Takımı) takımından Çetin Bey davet etmişti. Hem robotları yerinde incelemiş olduk hemde Çetin Bey' in tecrübelerinden faydalandık. Bize ilk olarak simulasyon ligiyle başlamamızı önerdi ki önerisi gerçekten çok mantıklı. Gerçi içimde şuan büyük bir Humanoid aşkı var ama sanırım bu hevese bir süreliğine ara vermem gerekecek. :) Şimdi biraz simülasyon ligi hakkında araştırma yapacağım ve bu lig için ne kadar uygun olduğumuzu anlamaya çalışacağım.
Hadi bakalım bir projeye daha başladık ama sonunu görebilecek miyiz?
Asıl anlatmak istediğim mesele ise dün yaptıklarım. Ben ve şimdilik ekibin geri kalanı olan arkadaşım Boğaziçi Üniversitesi' ne gittik. Sağ olsun Cerberus(Boğaziçi Üniversitesi RoboCup Takımı) takımından Çetin Bey davet etmişti. Hem robotları yerinde incelemiş olduk hemde Çetin Bey' in tecrübelerinden faydalandık. Bize ilk olarak simulasyon ligiyle başlamamızı önerdi ki önerisi gerçekten çok mantıklı. Gerçi içimde şuan büyük bir Humanoid aşkı var ama sanırım bu hevese bir süreliğine ara vermem gerekecek. :) Şimdi biraz simülasyon ligi hakkında araştırma yapacağım ve bu lig için ne kadar uygun olduğumuzu anlamaya çalışacağım.
Hadi bakalım bir projeye daha başladık ama sonunu görebilecek miyiz?
20 Temmuz 2009 Pazartesi
19 Temmuz Ceviz.Net Buluşması
Posted in Ceviz.NET, Haber
Dün Ceviz.Net in Mecidiyeköy Starbucks' ta buluşması vardı. Haliyle biz de buluşmaya iştirak ettik. Gerçi Mecidiyeköy' de üç farklı Starbucks olması sebebiyle Starbucksları karıştırıp buluşmaya 45 dakika geç gitmiş olsam da güzel bir buluşmaydı. Mengü, KaravanaBatu ve Ümit ile tanışma imkanı buldum. Anov' u da zaten tanıdığım için Ceviz.Net ailesinden gerçek hayatta da tanıdığım kişilerin sayısı dörde yükseldi.
Toplantıda bol bol DJango konuşuldu. DJango o kadar övüldü ki bugün DJango yu incelemeye karar verdim ama pek ısınamadım. DJango dışında .Net ve PHP hakkında konuştuk. Bunların yanında Ceviz.Net' in nasıl daha kaliteli bir platform olacağı, nasıl özgün içerik geliştirilebilineceği ve kendini tekrar etmekten nasıl kurtulacağı konusunda fikir alışverişinde bulunduk. Sonuç olarak üretilen her sistemin çeşitli şekillerde dezavantajlarının olduğuna karar kıldık.
Her şeyiyle güzel bir buluşmaydı. Darısı diğer buluşmalara...
Toplantıda bol bol DJango konuşuldu. DJango o kadar övüldü ki bugün DJango yu incelemeye karar verdim ama pek ısınamadım. DJango dışında .Net ve PHP hakkında konuştuk. Bunların yanında Ceviz.Net' in nasıl daha kaliteli bir platform olacağı, nasıl özgün içerik geliştirilebilineceği ve kendini tekrar etmekten nasıl kurtulacağı konusunda fikir alışverişinde bulunduk. Sonuç olarak üretilen her sistemin çeşitli şekillerde dezavantajlarının olduğuna karar kıldık.
Her şeyiyle güzel bir buluşmaydı. Darısı diğer buluşmalara...
6 Temmuz 2009 Pazartesi
Eat Me!!!
Posted in Eğlence, Oyun
Eskiden yaptığım bir flash oyunu buraya eklemeye karar verdim. Adı "Eat Me". Oyunda küçük bir kafacık olup sağda solda uçuşan nesneleri yakalamaya yada onlardan kaçmaya çalışıyorsunuz. Yakalayıp mideye götürmeniz gerekenler: Elma, Portakal, Çilek ve Muz(Çilek ve Muzun diğerlerine göre daha fazla puan getirdiğini belirtmekte yarar var.)Kaçmanız gerekenler: Bardak, Ayakkabı, Biber ve Bıçak(Aynı şekilde biber ve bıçak daha fazla can ve puan götürüyor.) Her 500 puanda bir sonraki bölüme geçiyorsunuz. Toplam 7 bölümlük bu oyunu oynamak içinse aşağıdaki linke tıklamanız yeterli.
Eat Me
Tamam tamam itiraf ediyorum. Flash oyun yapma konusunda yeterince yetenekli değilim. :) Yinede ilerde başka flash oyunlarla karşınızda olabilirim.
Eat Me
Tamam tamam itiraf ediyorum. Flash oyun yapma konusunda yeterince yetenekli değilim. :) Yinede ilerde başka flash oyunlarla karşınızda olabilirim.
20 Haziran 2009 Cumartesi
AJAX ile POST Metodunu Kullanarak Veri Göndermek/Almak
Posted in AJAX, JavaScript, Makale, PHP, Web Programlama
AJAX ile GET metodunu kullanmak oldukça kolay. Herhangi bir kütüphaneden bağımsız olarak AJAX kullananların tamamının GET metodunun bildiğini ve kullandığını tahmin ediyorum. Ancak AJAX' ta POST metodu için aynı şey geçerli değil. Çoğu kimse AJAX' ta POST metodunun nasıl kullanıldığını bilmiyor. Bu yüzden bu yazıda POST metoduyla AJAX kullanımını işleyeceğim.
Önce bir XMLHTTPRequest nesnesi oluşturalım
Bu aşamadan sonra göndereceğimiz verileri POST metoduna uygun hale getirmeliyiz. POST metodunda verilerimizi XHttp.send() komutunu kullanırken göndeririz. Bunun için normalde
olarak kullandığımız kodu
olarak değiştireceğiz. Burada gönderilecek veriler aynı GET metodundaki gibi alan1=deger1&alan2=deger2 formatında olmalıdır. Ayrıca verilerimizi gönderirken özel karakterlerde problem yaşamamak için encodeURIComponent fonksiyonunu da burada kullanmak gerekir. Örnek vermek gerekirse;
POST metodunu kullanmamız için her şey hazır sadece sunucuya yapacağımız istekte ufak bir değişiklik yapmamız gerekiyor.Bunun için şöyle bir komut kullanacağız.
Son kodları şöyle bir toplarlamak gerekirse;
Önce bir XMLHTTPRequest nesnesi oluşturalım
var XHttp; //XMLHttpRequest nesnesi
if(navigator.appName == "Microsoft Internet Explorer")
{XHttp = new ActiveXObject("Microsoft.XMLHTTP");}
else{XHttp = new XMLHttpRequest();}
if(navigator.appName == "Microsoft Internet Explorer")
{XHttp = new ActiveXObject("Microsoft.XMLHTTP");}
else{XHttp = new XMLHttpRequest();}
Bu aşamadan sonra göndereceğimiz verileri POST metoduna uygun hale getirmeliyiz. POST metodunda verilerimizi XHttp.send() komutunu kullanırken göndeririz. Bunun için normalde
XHttp.send(null);
olarak kullandığımız kodu
XHttp.send(gönderilecek veriler);
olarak değiştireceğiz. Burada gönderilecek veriler aynı GET metodundaki gibi alan1=deger1&alan2=deger2 formatında olmalıdır. Ayrıca verilerimizi gönderirken özel karakterlerde problem yaşamamak için encodeURIComponent fonksiyonunu da burada kullanmak gerekir. Örnek vermek gerekirse;
XHttp.send(encodeURIComponent("adi=ali&soyadi=kara&yasi=25"));
POST metodunu kullanmamız için her şey hazır sadece sunucuya yapacağımız istekte ufak bir değişiklik yapmamız gerekiyor.Bunun için şöyle bir komut kullanacağız.
XHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
Son kodları şöyle bir toplarlamak gerekirse;
XHttp.open('post', 'hedef.php');
XHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
XHttp.send(encodeURIComponent("adi=ali&soyadi=kara&yasi=25"));
XHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
XHttp.send(encodeURIComponent("adi=ali&soyadi=kara&yasi=25"));
22 Mayıs 2009 Cuma
Kütüphaneler, Frameworkler ve Diğerleri...
Posted in Makale
İnternet dünyası hızla ilerledikçe internetin hızına ayak uydurmaya çalışan geliştiriciler de hızlarını arttıyor. Zamandan kazanmak için yapılabilinecek her şey yapılıyor. Zaman kazanma konusundaki en büyük yardımcılardan biri de kuşkusuz kütüphaneler. Forumlarda, bloglarda her gün yeni bir kütüphanenin çıktığını veya var olan bir kütüphanenin sürümünün yükseltildiğini okuyoruz. Bunların bazıları belli başlı işlemler için özel olarak geliştirilmiş bazıları da bir çok alana birden hitap eden, bir çok işi bir arada yapabilen ve hemen hemen tüm dünyada kullanılar kütüphaneler.JQuery, Prototype gibi...
Kütüphanelerin dediğimiz gibi en önemli işlevleri zaman kazandırmaları. Bunun dışında nasıl yapıldığı hakkında hiç bir fikrinizin olmadığı bir işlemi kütüphaneler sayesinde kolaylıkla yapabiliyorsunuz. Ayrıca sürekli olarak gelişmesi, kütüpheneler için çeşitli eklentiler üretilmesi de kütüphanelerin dinamikliğini ve güncelliğini korumasını sağlıyor. Bu ve bunun gibi faydaları sayesinde kütüphaneler şuan oldukça popüler durumdalar.
Tabi bu güzel özelliklerin bir de bedeli olmalı. En başta kütüphanelerden bir çok işi bir arada yapmaları beklendiği için "Ne kadar iş, o kadar kod" mantığıyla kütüphanelerin boyutları oldukça şişiyor. 5-10 KB lık boyutlardan başlayan kütüphaneler 150-200 kb ı geçebiliyor. Bununla birlikte kütüphanelerdeki fonksiyonlar tek bir durumdan ziyade olası tüm durumlar için hazırlandığından gereksiz kod kalabalığıyla dolu oluyor ve bu da hantallığa sebep oluyor. Aslında bu problemler internet bağlantısının hızlanmasıyla ve bilgisayarların performanslarının artmasıyla önemini kaybediyor. Yine de bence çok daha önemli problemler var.
Kütüphaneler Kodlar Üzerindeki Hakimiyetimizi Kısıtlıyor
Kütüphane kullanırken hareket imkanımız kütüphanenin yetenekleriyle sınırlı kalır. Örneğin forumlarda "X kütüphanesini kullanıyorum. Falan işi nasıl yaparım ?" tarzı soruların altında bu sebep yatar. Gelen cevaplar ise oldukça trajikomiktir:"X kütüphanesi falanca işi yapamıyor. Sen Y kütüphanesini de sitene ekle."
Daha kötüsü kütüphane kullanıyorsak bir hata karşısında elimiz kolumuz bağlı bekleriz yada kütüphanenin yaptığı işi biraz değiştirmek, istediğimiz hale getirmek istiyorsak kılı kırk yararız. Neden ? Çünkü bir kere kütüphanelerde debug yapmak imkansız gibidir. İnceleyenler görmüşlerdir; kütüphanelerin kodları bol miktarda include içerir, fonksiyonlar sürekli birbirlerini çağırır vs.(Genelde kütüphaneleri birçok kişi yazdığı için böyle bir hiyerarşinin olması da zorunludur.). Böyle bir yapıda kodu izlemek ve hatayı bulmak, değişiklik yapmak oldukça zordur. Hele bir de kütüphane oluşturulurken belli bir standart belirlenmemişse bu iş tam bir eziyete dönüşür. Üstelik siz bir fonksiyonu değiştirdiğinizde normalde çalışan ama işleri sırasında değişiklik yaptığınız fonksiyondan yararlanan tüm işlemlerinde hatayla sonuçlanması da cabası.
Kütüphaneler Öğrenme Becerimizi Azaltıyor
Nasıl oluyor bu olay? Kütüphaneler sayesinde bilmediğimiz şeyleri iki satırlık komutlarla yapabiliyoruz. Dolayısıyla bilmediğimiz şeyleri bilmemeye devam ediyoruz. Elimizde debug imkanı bile olsa gerekli düzeltmeleri yapacak bilgiyi kendimizde bulamıyoruz. Çünkü işi kütüphanelerle yapmaya alışmış olan biz, işin arka planından bihaber yaşıyoruz. Gerçekte aynı işlem ne tarz kodlarla yapılır bilmiyoruz. Eskiden kütüphaneler ve orjinal dil beraber kullanılırken şimdilerde dil yerine kütüphane öğreniliyor. Sonuç olarak ilgili dili bilmeden kütüphaneyle site yapanlar ilk problemde pes ediyor. Ayrıca Javascript' in adını duymayan, hiç bir şeyi bilmeyen webmasterlar(!) türüyor. Doğal olarak "Abi ben o siteyi 50 liraya yaparım." şeklinde diyaloglar gelişiyor.
Ne Yani Kütüphane Kullanmayalım Mı ?
Yok o kadar da demedik. :) Kütüphaneler hız kazandırma açısından oldukça faydalı. Sadece hız konusu bile bir çok olumsuzluğunun önüne geçmeye yetiyor. Bununla birlikte kütüphane kullanırken en azından arka planda ne döndüğünü bilelim. Yani işimizi o kütüphane olmadan da halledebilecek durumda olalım. Yapamadığımız bir şey olunca araştıralım, öğrenelim, hemen kütüphanelere koşmayalım.
Gerçi bence en iyisi kodlarınızın tamamının size ait olması. Aksi taktirde kodlarınız size üvey evlat gibi geliyor. En azından benim için öyle. Bu yüzden kütüphaneleri pek sevmiyorum. :)
Kütüphanelerin dediğimiz gibi en önemli işlevleri zaman kazandırmaları. Bunun dışında nasıl yapıldığı hakkında hiç bir fikrinizin olmadığı bir işlemi kütüphaneler sayesinde kolaylıkla yapabiliyorsunuz. Ayrıca sürekli olarak gelişmesi, kütüpheneler için çeşitli eklentiler üretilmesi de kütüphanelerin dinamikliğini ve güncelliğini korumasını sağlıyor. Bu ve bunun gibi faydaları sayesinde kütüphaneler şuan oldukça popüler durumdalar.
Tabi bu güzel özelliklerin bir de bedeli olmalı. En başta kütüphanelerden bir çok işi bir arada yapmaları beklendiği için "Ne kadar iş, o kadar kod" mantığıyla kütüphanelerin boyutları oldukça şişiyor. 5-10 KB lık boyutlardan başlayan kütüphaneler 150-200 kb ı geçebiliyor. Bununla birlikte kütüphanelerdeki fonksiyonlar tek bir durumdan ziyade olası tüm durumlar için hazırlandığından gereksiz kod kalabalığıyla dolu oluyor ve bu da hantallığa sebep oluyor. Aslında bu problemler internet bağlantısının hızlanmasıyla ve bilgisayarların performanslarının artmasıyla önemini kaybediyor. Yine de bence çok daha önemli problemler var.
Kütüphaneler Kodlar Üzerindeki Hakimiyetimizi Kısıtlıyor
Kütüphane kullanırken hareket imkanımız kütüphanenin yetenekleriyle sınırlı kalır. Örneğin forumlarda "X kütüphanesini kullanıyorum. Falan işi nasıl yaparım ?" tarzı soruların altında bu sebep yatar. Gelen cevaplar ise oldukça trajikomiktir:"X kütüphanesi falanca işi yapamıyor. Sen Y kütüphanesini de sitene ekle."
Daha kötüsü kütüphane kullanıyorsak bir hata karşısında elimiz kolumuz bağlı bekleriz yada kütüphanenin yaptığı işi biraz değiştirmek, istediğimiz hale getirmek istiyorsak kılı kırk yararız. Neden ? Çünkü bir kere kütüphanelerde debug yapmak imkansız gibidir. İnceleyenler görmüşlerdir; kütüphanelerin kodları bol miktarda include içerir, fonksiyonlar sürekli birbirlerini çağırır vs.(Genelde kütüphaneleri birçok kişi yazdığı için böyle bir hiyerarşinin olması da zorunludur.). Böyle bir yapıda kodu izlemek ve hatayı bulmak, değişiklik yapmak oldukça zordur. Hele bir de kütüphane oluşturulurken belli bir standart belirlenmemişse bu iş tam bir eziyete dönüşür. Üstelik siz bir fonksiyonu değiştirdiğinizde normalde çalışan ama işleri sırasında değişiklik yaptığınız fonksiyondan yararlanan tüm işlemlerinde hatayla sonuçlanması da cabası.
Kütüphaneler Öğrenme Becerimizi Azaltıyor
Nasıl oluyor bu olay? Kütüphaneler sayesinde bilmediğimiz şeyleri iki satırlık komutlarla yapabiliyoruz. Dolayısıyla bilmediğimiz şeyleri bilmemeye devam ediyoruz. Elimizde debug imkanı bile olsa gerekli düzeltmeleri yapacak bilgiyi kendimizde bulamıyoruz. Çünkü işi kütüphanelerle yapmaya alışmış olan biz, işin arka planından bihaber yaşıyoruz. Gerçekte aynı işlem ne tarz kodlarla yapılır bilmiyoruz. Eskiden kütüphaneler ve orjinal dil beraber kullanılırken şimdilerde dil yerine kütüphane öğreniliyor. Sonuç olarak ilgili dili bilmeden kütüphaneyle site yapanlar ilk problemde pes ediyor. Ayrıca Javascript' in adını duymayan, hiç bir şeyi bilmeyen webmasterlar(!) türüyor. Doğal olarak "Abi ben o siteyi 50 liraya yaparım." şeklinde diyaloglar gelişiyor.
Ne Yani Kütüphane Kullanmayalım Mı ?
Yok o kadar da demedik. :) Kütüphaneler hız kazandırma açısından oldukça faydalı. Sadece hız konusu bile bir çok olumsuzluğunun önüne geçmeye yetiyor. Bununla birlikte kütüphane kullanırken en azından arka planda ne döndüğünü bilelim. Yani işimizi o kütüphane olmadan da halledebilecek durumda olalım. Yapamadığımız bir şey olunca araştıralım, öğrenelim, hemen kütüphanelere koşmayalım.
Gerçi bence en iyisi kodlarınızın tamamının size ait olması. Aksi taktirde kodlarınız size üvey evlat gibi geliyor. En azından benim için öyle. Bu yüzden kütüphaneleri pek sevmiyorum. :)
16 Mayıs 2009 Cumartesi
Stringler Kodmuş Gibi Çalıştırmak İçin: eval()
Posted in AJAX, JavaScript, Makale, PHP, Web Programlama
AJAX web dünyasına sunduğu avantajlar sayesinde haklı bir popülerliğe sahip. Haliyle gün geçtikçe AJAX kullanan sayfaların sayısı artıyor. Birçoğumuz sayfalarında gereken verileri AJAX ile çekip yayımlıyoruz. Açıkçası bu veriler sadece yayımlanacak şeylerse bir problem olmuyor. Ancak zaman oluyor ki AJAX ile sunucumuzdanjavascript kodları çekiyoruz ve bu kodları çalıştıramadığımızı görüyoruz. İşte bu nokta da yardımımıza javascript in sevimli fonksiyonu eval() yetişiyor.
eval() Nedir? Yenir Mi İçilir Mi?
eval(), string halindeki javascript komutlarını çalıştıran bir fonksiyondur. Bir örnek yapmak gerekirse;
Bu stringi çalıştırmak için yapmamız gereken tek şey değişkenimizi eval() e göndermek;
Şimdi bir de AJAX & eval() kombinasyonunu inceleyelim.
index.html
processor.php
eval() Nedir? Yenir Mi İçilir Mi?
eval(), string halindeki javascript komutlarını çalıştıran bir fonksiyondur. Bir örnek yapmak gerekirse;
var calistirilacak = "alert(\"Merhaba Dünya\")";
Bu stringi çalıştırmak için yapmamız gereken tek şey değişkenimizi eval() e göndermek;
eval(calistirilacak);
Şimdi bir de AJAX & eval() kombinasyonunu inceleyelim.
index.html
var XHttp; //XMLHttpRequest nesnesi
var veri; //AJAX ile çektiğimiz kodları saklayacağımız değişken
if(navigator.appName == "Microsoft Internet Explorer")
{XHttp = new ActiveXObject("Microsoft.XMLHTTP");}
else{XHttp = new XMLHttpRequest();}
function veri_gonder()
{
XHttp.open('get', 'processor.php');
XHttp.onreadystatechange = function ()
{
if(XHttp.readyState == 4)
{
veri = XHttp.responseText;
eval(veri);
}
}
XHttp.send(null);
}
var veri; //AJAX ile çektiğimiz kodları saklayacağımız değişken
if(navigator.appName == "Microsoft Internet Explorer")
{XHttp = new ActiveXObject("Microsoft.XMLHTTP");}
else{XHttp = new XMLHttpRequest();}
function veri_gonder()
{
XHttp.open('get', 'processor.php');
XHttp.onreadystatechange = function ()
{
if(XHttp.readyState == 4)
{
veri = XHttp.responseText;
eval(veri);
}
}
XHttp.send(null);
}
processor.php
<?php echo("alert(\"Merhaba Dünya\")"); ?>
Kaydol:
Kayıtlar (Atom)
Tags
Popular Posts
- Ubuntu' dan Youtube Gibi Yasaklı Sitelere Giriş
- USACO
- Ubuntu Türkiye Çeviri Tayfası
- AJAX ile POST Metodunu Kullanarak Veri Göndermek/Almak
- Stringler Kodmuş Gibi Çalıştırmak İçin: eval()
- Eat Me!!!
- 19 Temmuz Ceviz.Net Buluşması
- Bilgisayar Tamircisinin Kopya Kağıdı
- Kütüphaneler, Frameworkler ve Diğerleri...
- PHP ile Kodunuzu Renklendirin
Flickr Photos
Text Widget
Blogger tarafından desteklenmektedir.
You can replace this text by going to "Layout" and then "Page Elements" section. Edit " About "
2 yorum: