“Bazı şeylerin gitmesine izin vermek işte bu nedenle çok önemlidir. Onları serbest bırakmak. Gevşek olanı kesmek. İnsanların hiç kimsenin işaretli kağıtlarla oynamadığını anlaması gerekiyor; bazen kazanırız ve bazen kaybederiz. Hiçbir şeyi ger almayı bekleme, yaptıkların için takdir edilmeyi bekleme, ne kadar zeki olduğunun keşfedilmesini bekleme ya da aşkının anlaşılmasını. Daireyi tamamla. Gururlu, yetersiz ya da kibirli olduğun için değil, sadece artık onun senin yaşamında yeri olmadığı için. Kapıyı kapat, plağı değiştir, evi temizle, tozdan kurtul. Geçmişte olduğun kişi olmayı bırak ve şu an kimsen o ol.”
by Paulo Coelho - Zahir S. 204

HTML5 ile Gelen Yeni Bir Özellik Web Storage

Tarih: Aralık 26th, 2010 | Yazar: | Kategoriler: HTML5, Javascript | Etiketler: , , | 4 Yorum »

Web Storage özelliği tarayıcı tarafında verir saklamamızı sağlıyor yani basit bir veritabanı diyebiliriz. Bir anahtar(key) birde bu anahtara bağlı olan değer(value) vasıtası ile verilerimizi depoluyoruz Web Storage ile.

Tarayıcı tarafında veri saklamak yeni bir özellik değil, yıllardır çerezler(cookies) ile bu işlemi yapıyorduk ve hala yapmaya devam ediyoruz aslında.

Peki Web Storage’ın bize getirdiği avantajlar neler?

  1. Bildiğiniz üzere çerezler sadece tarayıcı tarafındaki uygulamaların bilgi bilgi saklaması için geliştirilmemiştir. Çerezler aynı zamanda sunucu üzerinden tarayıcıda bilgi saklamak içinde kullanılır. Bu  yüzden her çerez sunucuya gönderilmek zorundadır.Açmak gerekirse siz tarayıcıda javascript kullanarak bir çerez oluşturup bu çereze teorik olarak 1MB boyunda bir değer girdiğinizde her http isteği için tarayıcı bu 1MB boyuntundaki veriyi sunucuya gönderecektir ve bu şekildeki kullanım gereksiz bir hantallığa yol açacaktır. Bu noktada imdadımıza Web Storage yetişiyor. Web Storage ile sakladığımız veriler http isteklerinde sunucuya gönderilmeyecektir.
  2. Web Storage ile çerezlerden daha kullanışlı ve kolay veri saklıyabiliyoruz.

Web Storage kaça ayrılır.

Web Storage ikiye ayrılır;

  1. Session Storage.
  2. Local Storage.

Session Storage: “Storage” nesnesinden türetilmiştir. Session Storage ile sakladığımız verilerin ömrü tarayıcı kapana kadardır. Tarayıcı kapandıktan sonra bu veriler imha edilir.

Local Storage: Session Storage da olduğu gibi yine “Storage” nesnesinden türetilmiştir. Local Storage daki verilerin ömrü ise sonsuzdur. Yani Local Storage ile şuan yazdığımız bir veriyi bir yıl sonrada okuyabiliriz. Tabi ki tarayıcının başına kötü birşey gelmez ise 🙂

Session Storage ile Local Storage aynı method ve özelliklere sahiptir bunlar;

  • length” yazılmış verilerin adet olarak toplam sayısını verir.
  • getItem(anahtar)” girilen anahtar ismine ait veriyi döndürür.
  • setItem(anahtar, değer)” girilen anahtar ismi ve değere göre veriyi depoda saklar.
  • removeItem(anahtar)” girilen anahtar ismine göre veriyi depodan siler.
  • clear()” depoda saklanan tüm verileri siler.

Hangi tarayıcılar Geolocation destekliyor?

Buradan hangi tarayıcıların Geolocation’a destek verdiğine bakabilirsiniz. Ayrıca buradan kullandığınız tarayıcının destek verip vermediğini test edebilirsiniz.

Nasıl Kullanabiliriz?

Çok basit bir sayaç uygulaması ile kullanımına bakalım.

  var sayac = localStorage.getItem("sayac");
  sayac++;
  localStorage.setItem("sayac", sayac);
  $("#sayac").html("Sayac: " + sayac);

var sayac = localStorage.getItem(“sayac”) ile sayac anahtarına bağlı değeri çekiyoruz.

sayac++ ile bu değeri bir artırıyoruz.

localStorage.setItem(“sayac”,  sayac) kodu ile sayac anahtarına yeni sayac değerini ayarlıyoruz ve yeni sayac değerini #sayac elementine aktarıyoruz. Hepsi bu kadar!

Bundan sonra tarayıcımız kapansa dahi yine sayacın bulunduğu sayfa açıldığında sayaç değeri kaldığı yerden artmaya devam edecektir.

DEMO

Kaynaklar:


HTML5 ile Gelen Yeni Bir Özellik Geolocation

Tarih: Ekim 14th, 2010 | Yazar: | Kategoriler: HTML5 | Etiketler: , , , | 3 Yorum »

İnternetin ilk dönemlerinde insanlar genellikle rumuzlar(nickname) ile internette var olmayı tercih ederken, günümüzde gerçek isimleri ve gerçek kişilikleri ile var olmayı tercih ediyorlar. Eğilim bu yönde olunca sadece ad ve soyad paylaşmak da yetmiyor haliyle. Kullanıcılar gittikleri mekanları, o an bulundukları yerleri de bir şekilde paylaşmak istiyorlar. W3C konsorsiyumu da bu ihtiyacı görmüş olacak ki HTML5’e  Geolocation özelliğini ekledi. Bende bu yazımda basit olarak Geolocation’dan bahsetmek istiyorum.

Peki Geolocation nedir?

Geolocation eğer kullandığımız cihazda bir GPS aygıtı var ise GPS’den gelen veriler ile konumumuz tespit ediyor. Eğer herhangi bir GPS aygıtımız yoksa cihazımızda, “IP address, RFID, WiFi and Bluetooth MAC addresses, and GSM/CDMA cell IDs” bu bilgilerden yararlanarak konumuzu tespit etmeye çalışıyor. Çalışıyor diyorum çünkü bu yöntem ile pek doğru sonuçlar elde edemiyoruz :).  Geolocation bu işleri bizim adımıza yapan API’dir.

Hangi tarayıcılar Geolocation destekliyor?

Buradan hangi tarayıcıların Geolocation’a destek verdiğine bakabilirsiniz. Ayrıca buradan kullandığınız tarayıcının destek verip vermediğini test edebilirsiniz.

Nasıl kullanabiliriz?

Aslında kullanmak oldukça kolay. “navigator” nesnesi ile kolayca konumu tespit edebiliriz. Aşağıda kullanımını görebilirsiniz.

	if (navigator.geolocation) {
		navigator.geolocation.getCurrentPosition(function(position) {
			var lat = position.coords.latitude;
			var lng = position.coords.longitude;
		});
	} else {
		alert('Tarayıcınız Geolocation desteklemiyor.');
	}	

“navigator” nesnesi üzerinden “getCurrentPosition” methodu ile kullanıcının konumunu öğreniyoruz. Ancak bu işlemin gerçekleşmesi tarayıcıdan izin almamız gerekiyor, bu işlemi “getCurrentPosition” methodu bizim adımıza kendi gerçekleştiriyor.

“lat” değişkenimizin değeri enlemi “lng” değişkenimizin değeri ise boylam değerlerini veriyor.

Hepsi bu kadar. Aşağıdaki linkte google maps ile hazırladığım Geolocation demosuna bakabilirsiniz.

DEMO

Kaynaklar:


Bir Adresin Enlem ve Boylam Değerlerini Öğrenelim

Tarih: Eylül 13th, 2010 | Yazar: | Kategoriler: Php | Etiketler: , , | 14 Yorum »

Arkadaşlar bildiğiniz üzere Google Maps ile bir adresin enlem ve boylam değerlerini öğrenmemiz oldukça kolay. Ama bazı durumlarda bu işlemi kullanıcının tarayıcısında yapmak yerine sunucumuzda yapmamız gerekebilir. Bende bu yazımda Php ile bu işlemi sunucu tarafında nasıl yapılacağını anlatmaya çalışacağım.

Öncelikle buraya tıklayarak enlem boylam değerlerini alacağımız çıktıya bir göz atalım.

Adres ile ilgili veriyi çekeceğimiz url’i oluşturalım.

$address = "Ankara Keçiören";
$url = 'http://maps.google.com/maps/api/geocode/json?address=' . urlencode(htmlentities($address)) . '&sensor=false';

urlencode fonksiyonu ile özel karakterleri url yapısına göre kodlamış olduk. htmlentities fonksiyonu ise urlencode ile kodlanan Türkçe karakterleri Google Maps’in anlamadığı için kullandım.

$data = json_decode(file_get_contents($url));

Json türündeki veriyi çekiyoruz ve değişkenlere dönüştürüyoruz json_decode fonksiyonu ile.

$enlem = $data->results[0]->geometry->location->lat;
$boylam = $data->results[0]->geometry->location->lng;
echo "Enlem: '$enlem' Boylam: '$boylam'";

Gelen veriden enlem ve boylam değerlerini seçtikten sonra ekrana yazıyoruz ve hepsi bu kadar. Aşağıdan örneğin tamamına bakabilirsiniz.

$address = "Ankara Keçiören";

$url = 'http://maps.google.com/maps/api/geocode/json?address=' . urlencode(htmlentities($address)) . '&sensor=false';

$data = json_decode(file_get_contents($url));

$enlem = $data->results[0]->geometry->location->lat;
$boylam = $data->results[0]->geometry->location->lng;

echo "Enlem: '$enlem' Boylam: '$boylam'";

Kaynaklar:
Google Maps Geocoding API


Zend Framework Dersleri: Layout ve Form Kullanımı – Ders 3

Tarih: Temmuz 27th, 2010 | Yazar: | Kategoriler: Php, Video Dersler, Zend Framework | Etiketler: , , | 5 Yorum »

Üçüncü video dersimizde Zend Framework’de layout ve form kullanımından bahsetmeye çalıştım. İyi seyirler…

Dersimizde kullandığımız projenin dosyalarını buradan görüntüleyebilir. Buradan indirebilirsiniz.

Zend Framework Dersleri: Layout ve Form Kullanımı – Ders 3 from Can Aydoğan on Vimeo.


Gözden Kaçan 4 Adet Php Fonksiyonu

Tarih: Temmuz 22nd, 2010 | Yazar: | Kategoriler: Php | Etiketler: | Yorum Yok »

Php her ne kadar OOP mimarsini desteklese de kendisi OOP mimarisi de geliştirilmediği için işimizi kolaylaştıracak bazı metotlardan haberimiz olmuyor. Ek olarak Php’nin aynı işi yapan birden fazla fonksiyonu olunca haliyle birde karmaşa maruz kalıyoruz. Bu yazımda bu faydalı ama gözden kaçırdığımız 5 adet fonksiyonu anlatmaya çalışacağım.

1. wordwrap($metin, $adet, $ayrac): Wordwrap ekrana yazacağımız metinleri belli karakter adedine göre ayraç kullanarak ayırmamızı sağlıyor. Yani 20 karakterden oluşmuş bir cümleyi 2 satırda yazmak istiyorsak eğer wordwrap fonksiyonunu kullanarak bu işlemi kolaylıkla yapabiliriz.

Örnek Kullanımı:

$metin = 'Lorem ipsum sit amet';
echo wordwrap($string, 10, "\n");
/**Ciktisi
* Lorem ipsu
* m sit amet
**/

2.money_format(): Adından da anlaşılacağı üzere yazacağımız para ile ilgili sayıları para birimine göre biçimlendiriyor. Not: Windows’da çalışmıyor.

Örnek Kullanımı:

$miktar= 1234.56;
setlocale(LC_MONETARY, 'tr_TR');
echo money_format('%i', $miktar) ;
/**Ciktisi
* 1234.56 TL
**/

3. similar_text($metin1, $metin2, $referans_degiskeni): Yazacağımız iki metinin birbirine benzerlik derecesini buluyor.
Örnek Kullanımı:

similar_text("can", "canan", $ref);
echo $ref . "\n"; // 75
similar_text("can", "ahmet", $ref);
echo $ref; // 25

4. highlight_string($metin): IDE’lerin yaptığı gibi yazacağımız php kodlarını php sentaksına göre renklendiriyor.

Örnek Kullanımı:
$kod = 'echo $degisken . "merhaba, dünya!";';
highlight_string($kod);