Author Archive

Uzun süredir kendi bilgisarımda PHP çalıştırmak için IIS kullanıyordum ancak RESTless uygulamalar için web sunucusunun Rewrite özelliğinin olması lazım ki bu IIS’te yok. Bu işi yapan bir “ISAPI Rewrite” programı mevcut olsa da internetteki neredeyse tüm dokümantasyon LAMP’e (Linux-Apache-MySQL-PHP) göre hazırlanmış olduğu için anlamsız yere vakit kaybetmeme neden oluyor…
Bu devirde Amerika baştan keşfedilmemeli…

O yüzden yıllar sonra windows’uma Apache kurayım dedim.
Installer’ı indirmem ve kurmam yaklaşık 5-6 dakika sürdü. PHP’yi tanıtmam ise yaklaşık 1 saat 25 dakika!

İnatçı ve huysuz olmanın bir sonucu olarak WAMP‘a falan bulaşmadan azmettim başardım ama ben çektim belki bu yazıyı okuyan birileri çekmez diyerekten sorunu ve çözümü yazayım.

Aynen installation notlarındaki gibi kurup daha önceden kurmuş olduğum php5.1′in kurulu olduğu dizini tanıtmama rağmen Apache ısrarla “The specified module could not be found” hatasını verdi php için. Meğer Apache2.2 için php’nin yeni versiyonlarında php5apache2_2.dll diye farklı bir isapi dll’i varmış. Eskisi php5apache2.dll idi…

PHP 5.2.3′ü indirip kurduktan sonra bu DLL’i gösterince sorun kalmadı…

Zend Framework’ü kurcalamaya devam edebilirim artık…

Jun 01

1-2 kelam

No comment - Post a comment

“People likes RUI’s”

RUI: Rich User Interface. RUI’nin bokunu çıkartıyor yeni, fark yaratan siteler. Artık istemci tarafı programcılarla sunucu tarafı programcıların ayrılmasının vakti geldi. Yahoo’nun istemci tarafı programlama ile uğraşan ayrı bir mühendislik birimi varmış mesela…

 

“Design pundits going beyond functional: Emotional design”

Apple’ın login sayfası hatalı şifre girdiğinde titreşiyormuş. Emotion… hmm… Gereksiz mi? belki… belki de değil?

 

“Complexity needs to be managed, not striped out. Simplicity is not only substraction”

KISS (Keep It Simple Stupid) diyoruz ama herşeyin de bir sınırı olmalı sanki. Signal37 ürünlerini eleştiren bir blogdan görüp not almışım. Türkiye’de Pilli ürünlerine eleştiri olarak gönderilebilir… Yine de seviyoruz Signal37′ı ve Pilli’yi…

May 29

HTML Validator

No comment - Post a comment

Aslında trendlere çok takılmayan, daha çok pratik bir fakat düzenli, kalıcı çözümler üretmeyi severim. O yüzden de standartları pek sevmem.

XHTML yazmam mesela, tableless design umrumda değildir, kod semantik olsun diye dert etmem. Bunların hepsi mutlaka yararları olan standartlar ama aynı zamanda vakit alan, uğraştırıcı şeyler. Ama kodun temiz ve anlaşılır, tüm tarayıcılarda düzgün çalışmasına dikkat ederim o ayrı.

O yüzden HTML validator, CSS validator türevi kodunuzun ne kadar standartlara uyduğunu kontrol eden programları da pek kullanmam, zira ota boka hata mesajı çıkartırlar.

Mesela bu programlara FotoKritik‘te fotoğraf listelediğim bir sayfayı verdiğimde (rakamları atıyorum) 187 tane hata bulundu diyor, bunlardan 170′i “IMG” tag’ına “ALT” özelliği koymamam nedeniyle…

Bilmeyenler için: ALT özelliği görme engeli olan kişiler için düşünülmüş bi komuttur ve standartlar mutlaka tüm imajlarda bu özelliğin bulunması gerektiğini söyler. Aslında gerçekten dikkat edilmesi gereken bir kural…

Allahaşkına FotoKritik bir fotoğraf sitesi, görme engelli arkadaşların yararlanmak isteyeceği belki de son kaynak. Banane ALT özelliğinden…

Allahtan sağolsun benimle benzer düşünen birileri oturmuş Firefox’a bir eklenti yazmışlar: HTML Validator. Bu eklenti sayesinde HTML kodundaki standart dışı ve hatalı kullanımları listelerken ilgili olmadığını düşündüğünüz hata mesajlarını bir daha göstertmeyebiliyorsunuz. Özellikle sayfa görüntüleme ile ilgili problemlerin keşfinde çok işe yarıyor.

Şu yazımda web geliştiricisinin olmazsa olmazı bazı araçları kısaca tanıtmıştım, bu listeye HTML Validator’ı da eklesem iyi olacak…

MySQL’in çoğu zaman gözden kaçan tablo tipi HEAP’ten bahsedesim geldi bugün. HEAP tipi tabloların özelliği MySQL’in bu tipteki tabloların verilerini doğrudan RAM’de tutması. Dolayısıyla disk I/O’suna bağlı olmadığı için çok yüksek hızda cevap verebilen bir tablo tipi.

Ancak RAM’de olması nedeniyle veritabanı sunucusunun yeniden başlatılması durumunda tüm veri haliyle kayboluyor. Ayrıca çok fazla veri kaydedilmesi durumunda sunucunun RAM’ini doldurma ihtimali de mevcut. Peki bu iki büyük engele rağmen neden böyle bir tablo tipine ihtiyaç duyulmuş?

Ben HEAP tabloları iki yerde kullanıyorum:

  1. Session bilgisi
  2. Kullanıcı cache

Session bilgisi dediğim PHP’nin session altyapısı değil. Session tablosunda o an online olan kullanıcıları, bağlandıkları IP adresini ve ihtiyaç duyduğum bazı birkaç kişiye özel bilgiyi ve son aksiyon zamanını tutuyorum. Böylece hatta kaç kişi online, hangi IP adresiyle bağlı takip etme imkanım oluyor. Aslında bunun bir ileri seviyesi PHP’nin session bilgisini tamamen bir HEAP tabloda tutmak.

PHP’nin session bilgisini böyle bir tabloda tutmak özellikle birden fazla web sunucusu ile yayın yaptığınızda faydalı olacaktır zira session datasını dosya sisteminde tutarsanız kullanıcı round robin ya da benzeri altyapılarla farklı sunuculara yönlendirildiğinde session bilgisi kaybolacaktır.

Cache

İkinci kullanım alanı ise kullanıcı cache’i. FotoKritik’te kullanıcıların hesap durumlarını her bir request’te kontrol ettirmem gerekiyor. Çünkü online kişiler kural dışı bir hareket yaptıkları anda hesapları moderatörler tarafından geçici ya da kalıcı olarak askıya alınabiliyor.

Ayrıca kullanıcıya yeni site içi mesaj gitmiş mi gibi bilgileri de sürekli sorguluyorum. Bu sürekli sorguları hafıza yerine disk üzerinden yapmak, az hit almayan bir sitede 15.000 devirli RAID yapılmış disklerinizi bile gereksiz bir yük altına sokabilir….

Bu iki tabloyu birleştirmek de mümkün olabilir, ben tercih etmedim ama önemli olan bu tarz sürekli yapılan ve sunucunun yeniden başlatılması durumunda kolayca tekrar yaratılabilecek bilgileri HEAP tipi tablolarda tutmanın gerçekten ciddi performans kazanımları sağlayacağıdır.

HEAP tablonun aşırı RAM tüketmesini engellemek için, tablo yaratılırken maksimum satır sayısını baştan belirleyebiliyorsunuz, ve belirlemenizi şiddetle tavsiye ederim ;)

Apr 05

Web 2.0 Expo

No comment - Post a comment

Nokta olarak 15-18 Nisan 2007 tarihlerinde San Francisco’da sunulacak olan Web 2.0 konferans ve fuarına gidiyoruz. Gerçekten etkileyici kişiler etkileyici konularda konuşacaklar. Amazon’un kurucusu ve CEO’su Jeffrey P. Bezos, Google ve Novel’in yönetim kurulu başkanı Eric Schmidt, Yahoo’dan Jeff Weiner gibi “ünlü”lerin yanısıra idollerimden Cal Handerson‘ın da dahil olduğu birçok usta ilgi çekici konularda konuşacaklar.

Benim için heyecan verici bir organizasyon gerçekten. Tek üzüntüm aynı saate gelen konuşmalardan sadece birini seçmem gerekecek :)

Bu sabah Hürriyet’e göz atarken ekonomi sayfasında mortgage ile ilgili yazıları okudum. Mortgage’in türkçesini TDK “tutsat” olarak önermiş. Kulağa biraz değişik gelse de “morgıç”tan daha estetik olduğu kesin. Maliye Bakanı’mız da beğenmedik başka birşey bulana kadar mortgage kullanalım görüşündeymiş sanırım.

Script’e betik derken çok zorlandım, server sunucu oldu client istemci. Bunların hepsi kulağıma bir garip gelse de kullanmak için zorluyorum kendimi. Server yazıp “sörvır” okumak daha çok rahatsız ediyor.

Ayrıca okuyamayanları görünce de insanın canı sıkılıyor. Neredeyse milyon dolara web projesi satma başarısına imza atmış insanların programcılarına goder (coder - kodır okunur normalde) demesi, vebkem diye okuması gereken webcam’i “vebcam” diye telaffuz etmesi hem komik hem can sıkıcı.

Allah aşkına elma deyin armut deyin ne derseniz deyin ama kurtarın bizi şu mor kıçtan…

Bu blog ağırlıklı olarak Ruby on Rails‘e değiniyor. Rails’in sonuca odaklı hızlı geliştirme yeteneği, yıllardır tercih ettiğim PHP’ye baskın çıkarken ruby’nin php’den yavaş çalıştığı bir gerçek olarak önümüzde yer alıyor. Peki tercih yaparken performansı ne kadar göz önünde tutmalıyız, biraz irdeleyelim…

» Read more after the jump →

Arada bir Buces BBS’te ve forumlarda sorulan sorulara bakıyorum, ya da ilgi çekici girişimlerin kaynak kodlarına göz atıyorum. Aslında bir web geliştiricisinin hayatını kolaylaştıran birçok araç ve kütüphane varken insanlar hala zor yolları seçiyor. Ben kullandığım bazı araçlardan bahsedeyim:

  1. Firefox
  2. Firebug
  3. Web Developer Toolbar
  4. Add’N Edit Cookies
  5. Zend Studio
  6. prototype ve script.aculo.us
  7. HTML Validator

» Read more after the jump →

Çok garip bir meslektir web geliştiriciliği. Ben üniversite yıllarında aşık oldum bu mesleğe ve şu an çok büyük bir keyif alıyorum işimden. Ama karizması olmayan bir iştir bizimkisi. Defalarca karşılaştığım senaryodur:

med_1141258773-205.jpg- Amca: Evladım ne iş yapıyosun sen
- Ben: Efenim internette web projeleri geliştiriyorum.

- A: Öyle mi, olsun n’apalım…
- B: ???

- A: Bizim yiğen de yapıyo web sitesi, biraderin oğlu. Ortaokula gidiyo
- B: Yaaa, maşallah !?!

- A: Kaça yapıyosunuz siteyi bizim dükkana da bi site yaptırayım diyorum
- B: Eh ne istediğinize bağlı olarak değişir tabii.

- A: Bizim yeğen 100$’a yapıyomuş yanar dönerli
- B: Aferin…

Anlatamazsın amcaya. Her neyse, ben işimi seviyorum, sektörü de seviyorum. İnsanın sevdiği işi yapması gerçekten huzurlu bir şey. Sonuçta matematiksel olarak hayatımızın büyük bir bölümü işte geçiyor.
Anlamayan anlamasa da olur…

RailsWeb teknolojileri konusunda çalışıyor ve sektördeki gelişmeleri takip ediyorsanız muhtemelen Ruby on Rails‘i duydunuz ama fark yaratan özelliğinin ne olduğunu bilmek istiyorsunuz ya da incelediniz ama hala “geçsem mi geçmesem mi” kararsızlığını yaşıyorsunuz. Biraz aklınızı çelmeye çalışayım…

Ben platform olarak PHP’yi tercih eden bir insan olarak “15 dakikada weblog yaratın” screencast’ini izledikten sonra sinir oldum. Tecrübeli bir programcı olarak neredeyse haftamı alacak bir işin 15 dakikada bitmesi gerçekten de moral bozucu :) Bu kadar zamandır haybeye uğraşıyormuşum diyor insan kendine.

» Read more after the jump →