Web teknolojileri ile ilgili teknik bir blog…

Apache Rewrite İpuçları

Apache rewrite modülü gerek SEO için, gerekse kullanıcıların adres kısmında gördükleri url’nin anlamlı olması açısından faydalı bir modül. Aslında rewrite’ın kabiliyetleri o kadar geniş ki bunun dışında bir sürü iş için de kullanılabiliyor.

Bu yazıda onlara çok değinmeyeceğim, benim değineceğim kısım çalışma şekli ile ilgili 1-2 kritik nokta. Bu noktalar rewrite ile ilgili sorunlarınızı çözmede çok işinize yarayacak… Yazının Devamı»

İdeal PHP Editörü (IDE) – PHPStorm

Eski blog yazılarıma bir göz attım da…
2009 yılında adam gibi bir IDE bulamamaktan yakınmışım

Şu yazımda ise IDE’nin öneminden bahsetmişim. Gerçi buna çok kızanlar olmuştu yorumlarda, favorim de şu:

facebook ta notepad2 ile yazılıyor seni kendini beğenmiş lanet olası pislik

Hala gördükçe gülümserim :) Neyse, aslında 1-2 yıldır ideal IDE’yi buldum:

PHPStorm

Netbeans, NuSphere PHPEd, Dreamweaver, Notepad2, Notepad++, Zend Studio, vim, PDT, Aptana Studio, phpDesigner, Komodo, Sublime Text 2 hepsini denedim mutlaka bir eksikler çıktı. PHPStorm’da ise eksik değil bir sürü ekstralarla karşılaştım ve her birini keşfettiğimde dibim düştü…

Yazının Devamı»

jQuery Validator ile TC Kimlik Numarası kontrolü

jQuery validator formlarınıza girilen dataları javascript’le kontrol edebileceğiniz çok esnek ve kullanışlı bir plugin… Bu plugin’de doğal olarak TC Kimlik No. kontrolü koymamışlar…

Allahtan plugin’e kendi metodlarınızı ekleme imkanı sağlamışlar…
Yazının Devamı»

Zend Framework Kullanarak TC Kimlik No. Kontrolü

Zend Framework kullanarak TC Kimlik numarasının doğruluğunu kontrol etmek gerçekten çok kolay:

$soapClient = new  Zend_Soap_Client('https://tckimlik.nvi.gov.tr/Service/KPSPublic.asmx?WSDL');
$response = $soapClient->TCKimlikNoDogrula(array(
    'TCKimlikNo' => $tcKimlikNo * 1,
    'Ad'         => mb_strtoupper($ad),
    'Soyad'      => mb_strtoupper($soyad),
    'DogumYili'  => $dogumYili * 1
));
 
if(!$response->TCKimlikNoDogrulaResult) {
    ...
}

TC kimlik numarasıyla doğum yılını 1 ile çarptık çünkü Zend_Soap_Client parametrelerin değişken tipini PHP değişkeninin tipine bakarak anlıyor.

Küçük bir incelik de ad ve soyad değişkenlerinde var… Ad ve soyadı büyük harf olarak göndermezseniz NVİ bilgilerin yanlış olduğunu söylüyor. Zend Framework kullandığımıza göre UTF-8 destekleyen mb_strtoupper fonksiyonunu kullanmamız gerekli, yoksa türkçe karakterlerde sorun yaşayabiliriz.

Eğer Zend Framework’ü kütüphane olarak kullanmak istiyorsanız

mb_internal_encoding('UTF-8');

tanımını yapmayı unutmayın…

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