Web teknolojileri ile ilgili teknik bir blog…

X-Requested-With ile AJAX’ı anlamak

Ufak bir ipucu paylaşayım istedim.

Eğer DRY prensibini benimsediyseniz mutlaka karşınıza gelmiştir: aynı sayfayı Ajax’la ve Ajax’sız çağırma ihtiyacı…

Bu durumda genelde senaryo şudur, AJAX’la çağırdığınızda sayfanın başında sonunda yer alan “header” ve “footer” kısmını göstermek istemezsiniz.

Ya da bir POST işlemi yapıyorsanız (insert / update / delete işlemleri) AJAX’la geldiğinde bir mesajı yazdırmak yeterli olurken AJAX’la gelinmediğinde işlem sonucunun gösterildiği bir sayfaya yönlendirmek gerekir. Krolar aynı sayfaya post edebilir ama ona değinmiyorum bile…

Daha advanced programcılar çıktı formatını değiştirebilir, örneğin AJAX’la gelindiğinde JSON, gelinmediğinde string gönderebilir mesela.

Bu durumla baş etmek için bir GET parametresi göndermek en klasik çözüm. Ancak her AJAX ihtiyacında tekrar bu GET parametresini göndermek hem angarya hem de boşu boşuna URL’yi uzatıyor.

Çözüm

Eğer javascript framework’ü kullanıyorsanız popüler framework’lerin hemen hepsi Ajax’la data gönderirken X-Requested-With diye bir header da gönderiyor. Bu header’ı kontrol ederek işlerinizi kolaylaştırabilir, kendi framework’ünüz varsa standardize edebilirsiniz.

Not: Javascript framework’ü kullanmıyorsanız da kullanmaya başlayın bi zahmet! Yok illa kullanmam diyosanız da XMLHttpRequest objesinin setRequestHeader diye bir metodu var, onu kullanarak javascript kütüphanenize ekleyebilirsiniz.

PHP’den kontrol etmek için $_SERVER['HTTP_X_REQUESTED_WITH'] değişkeni XMLHttpRequest değerine eşit mi diye bakmak gerekiyor.

A’dan Z’ye Bir Web Projesi Nasıl Yapılır

Vakt-i zamanında yazdığım gibi, web sitesi yapmak aslında çok zor bir iş değil. biraz eyçtimiyel (HTML) biraz fotoşot, biraz PHP üstüne biraz da siyo (SEO) koduk muydu kralını yaparız projenin…

Öyle değil mi? Değil kardeşim!

Milyonlarca web projesi var ve her gün binlercesi bu listeye ekleniyor. Dolayısıyla aklınıza gelen proje emin olun kesinlikle başkasının da aklına gelmiştir. Ancak her fikir kaliteli bir ürüne dönüşecek diye bir kural yok…

Facebook’un ilk çıktığı zamanları hatırlıyorum da, o zamanlar interneti henüz ele geçirmemişlerdi… “Bu ne len” demiştim üniversite öğrencileri girecekmiş etcekmiş. Üstelik daha etkileyici rakipleri de vardı adı neydi hatırlayamasam da, ama facebook diğerlerini solladı gitti…

Üzerinde çalıştığım, ekibinde yer aldığım onlarca projeyi düşündüğümde şöyle bir yol haritası çıkardım. Eksiği olabilir, eğer eklemek istediğiniz birşey varsa lütfen iletin, eklerim… Yazının Devamı»

SQL Injection nedir, nasıl önlenir?

PHP’yi ya da web tabanlı herhangi bir yazılımı öğreniyorsanız güvenlikle ilgili ilk öğrenmeniz gerekenlerden biri SQL injection.

Hala uzmansorusu.com‘da sorulan soruların ciddiye alınacak bir kısmında, üniversiteye gelen stajerlerde, hatta çalışma fırsatım olan arkadaşlarda bu konuda bir bilgisizlik var…

Aslında bu blog’a başlarken ileri düzey konulara, framework’lere falan değineyim istemiştim ama pes ediyorum artık. Şuraya yazayım da en azından lazım olduğunda al oku işte diye adresini veririm :)

Yazının Devamı»

Programlamada Üretim Hızını Arttırmak…

Bir ürün ortaya koyarken, aynı diğer sektörlerde olduğu gibi yazılım sektöründe de maliyet çok önemli elbette.

Yazılım ve donanım masraflarını çıkardığımız zaman geriye kalan maliyet yazılımcıların çalışma süresi, bu yüzden de projenin ne kadar hızlı geliştirilirse maliyeti o kadar düşük olur diyebiliriz. İster kendi projenizi geliştiren bir yazılımcı olun, ister bir şirket, bu gerçek değişmiyor.

Tabii üretim hızını arttırırken, bunun tam karşısında dikilen çok önemli bir parametre var, o da KALİTE ! Hızlı yazmak uğruna kaliteden ödün vermemeliyiz… Türkiye’deki berbat yazılım kalitesinin bence en büyük nedeni bu.

Yazının Devamı»

Bunları yapmayana programcı demem…

Özellikle uzmansorusu.com‘daki soruları ve hatta bazı yabancı kaynakları incelediğimde bu devirde bile insanların hala çok kritik ve genel uygulamalardan bihaber olduklarına şaşkınlıkla şahit oluyorum…

Sene olmuş 2011, hala şu aşağıdakileri yapmıyorsanız (en azından) ne kadar iyi programcı olduğunuzu tekrar değerlendirmenizin zamanı gelmiş demektir…

(Web tabanlı yazılım ve PHP ele alınmıştır)

Yazının Devamı»

Uzmansorusu.com Yayında

Bir süredir üzerinde çalıştığım uzmansorusu.com yayında. İş arkadaşım Batur’un yardımlarıyla hazırladığımız bu projede Türkiye’ye özgü “stackoverflow” ya da “experts-exchange” tadında bir bilgi paylaşım platformu oluşturmayı amaçladık.

Her ne kadar IT uzmanları için bir numaralı bilgi edinme aracı Google olsa da aynı sektördeki teknik kişilerin bir araya gelebileceği bir ortam olur diye ümit ediyorum.

Umarım insanların işine yarar…

Uzman Sorusu

http:www.uzmansorusu.com

jetanket.com yayında…

Bloguma yazmayalı 3-4 ay olmuş… Evet yazmadım ama bi sor niye? Çok ciks bir ürün çıkardık son üç ayda: http://www.jetanket.com

Jet Anket

Yazının Devamı»

Yaratıcı FotoKritik Kullanıcısı (Nostalji)

Artık FotoKritik ile bağlantım kalmadığına göre bazı mizahi öğelerden bahsedebilirim.

FotoKritik’te bizi en çok uğraştıran konu yüksek eğitim seviyesine sahip kullanıcıların hakaret ederken bile çok kibar cümleler kullanmasıydı…

Aşağıdaki durum artık bunun son noktalarından…

Yazının Devamı»

Zend Framework 1.8 Kurulumu

Daha önce ZF 1.5.2 için bir örnek oluşturmuştum. Ancak 1.8 versiyonundan itibaren işler biraz değişti. Aslında proje yaratmak oldukça kolaylaştı ama ilk kurulum biraz uğraştırabilir.

ZF 1.8′den itibaren, ilk kez 1.7 versiyonunda gelen Zend_Tool epey önplana çıktı. Artık “zf create project” gibi bir komutla çalışır bir proje elde etmek mümkün. Tabii gerekli ayarları yaptıktan sonra…

Yazının Devamı»

MySQL türkçe desteği: Collation ve character set nedir?

MySQL 4.1′den itibaren türkçe karakter işi karıştı. “SET NAMES latin5″ ile çözdük bu problemi gerçi ama yine de sistemin nasıl çalıştığını bilmezseniz sorun yaşayabilirsiniz. O yüzden MySQL’in karakter seti ve collation hakkında birşeyler yazayım istedim.

Tanımlar

Konuyu kavramak için önce tanımları ele alalım. Bilmemiz gereken iki tanım var: “Character Set” ve “Collation”

Character Set (Karakter Seti)
Adından anlayabileceğiniz gibi desteklenen karakterleri kast ediyoruz. Örneğin latin5 karakter setindeki “ı” harfinin ASCII kodu latin1 karakter setindeki ý harfi ile aynıdır. Dolayısıyla türkçe bir dokümanı latin1 olarak gösterirseniz tüm ‘ı’ harfleri ‘ý’ olarak gösterilecektir.

Farklı diller aynı karakter setlerine sahip olabilir, örneğin latin1 seti almanca, ispanyolca, ingilizce, isveçce gibi dilleri kapsar.

Yazının Devamı»

Gebze Evden Eve Nakliyat