Programming
Scalability in PHP
by solomon on Nov.07, 2009, under php, Programming
PHP nin sevdiğim tarafı iyi scale edilebiliyor olması. Bu konuda güzel bi prezentasyon buldum.
Shared Hosting için Zend Framework kurulumu
by solomon on Oct.29, 2009, under php, Programming
dertli bir iş. en büyük sıkıntı da shared hostinglerde document root değiştirilemediği için oluyor. zend framework için önerilen dizin yapısında public klasörü rootda yer almıyor. bu bir çok açıdan tercih edilmesi gereken bir durum. ancak shared hostinglerdeki document root olan httpdocs ya da public_html klasörünün bir üzerinde değişiklik yapılamadığı için aşağıdaki kodu root dizindeki .htaccess dosyasının içine kopyalayın. public dizinindeki .htaccess dosyasını da kaldırın. mis gibi.
RewriteEngine On
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]
kaynak: şurası.
Zend Studio ile Xdebug Kullanmak
by solomon on Sep.16, 2009, under php
Oldukça uzun süredir Zend debugger kullanıyordum. Halimden de memnundum açıkçası, çünkü debugging olayından beklentim remote debugging den ibaretti ve Zend debugger da sorunsuz çalışıyordu. İşletim sistemi değiştirip mac’e geçmemle birlikte Xdebug’ı denemeye karar verdim, ve şimdi bi sürü “fancy” özelliğiyle birlikte Xdebug’ın Zend debugger’dan çok daha iyi olduğunu anlamış bulunuyorum.
Mac’e geçmemle beraber uzun süredir kullandığım Zend Studio 5.5 ve Aptana’dan da Zend Studio 7′ye geçmeye karar verdim. Zend Studio 7 eclipse üzerine kurulmuş harika bir ide. Gerçi ben hala alışabilmiş değilim ama artık bir değişikik yapmam şarttı.
Neyse, Zend Studio 7 malesef debugger olarak sadece Zend Debugger’a izin veriyor. Xdebug disable edilmiş durumda. Ancak ufak bir trick ile bunu değiştirmek mümkün. Şöyleki;
1. Zend Studio folder’a gidilir. cd /Applications/Zend/Zend\ Studio\ -\ 7.0.0
2. cd pluginsmkdir disabled
3. mkdir disabled
4. mv com.zend.php.debug* disabled
5. Bir de configurasyon dosyasında ufak bir değişiklik yapmamız gerek. open -a TextWrangler com.zend.php_<ZSE_version_number>/plugin_customization.ini
6. ‘org.eclipse.ui.workbench/UIActivities.com.zend.php.debug.ui.XDebugActivity’ alanının değerini ‘true’ olarak değiştir.
7. Zend Studio’yu yeniden başlat.
8. Preferences içinde PHP -> Debug sayfasında gerekli değişiklikler yapılır (debugger olarak Xdebug seç, PHP executable path i göster vb.)
Afiyet olsun.
Linux Başlangıç Programları
by solomon on Sep.02, 2009, under linux, Tech
Bu diyeceklerim red-hat bazlı distrolar içindir. Debian için de çok farklı değil.
Başlangıçta yani boot sonrası program mı çalıştırmak istiyorsunuz (mesela subversion deamon programı). O zaman tek yapmanız gereken “/etc/rc.d/rc.local” dosyasına gerekli satırı eklemek.
Mis gibi
Ubuntu için tortoise svn alternatifi
by solomon on Jul.21, 2009, under linux
Win Xp’de kullanıp hastası olduğum tortoise svn programının linux versiyonunun olmaması çok fena bir durum. Tortoise explorer shell ine entegre oluşu ve kolay kullanımıyla diğer bütün svn client’larının arasında pırlanta gibi parlıyor. Ubuntu (9.04 versiyonunu kullanıyorum şu anda) için rapidSVN isimli güzide bir program kullanıyordum. Kendi GUI si olan, C++ ile yazılmış güzel bir program. Ancak Nautilus shell ine entegre olmadığı, yani sağ tıklayıp işlem yapma güzelliğine sahip olmadığı için bana hep angarya gibi gelmiştir. İşte çözüm:
Buradan indireceğiniz program sayesinde aynı tortoise de olduğu gibi sağ tıklamak suretiyle svn repository’lerinizi kontrol edebilirsiniz. Ancak tortoise kadar ayrıntılı değil. sadece checkout, commit, update gibi basit işlemleri yapabiliyorsunuz. Ancak yine de baya bir zaman kazandırıyor.
Bu arada program Nautilus file manager programının “User scripts” isimli güzide özelliğini kullanıyor. Yani tek yaptığı menuye bir kaç dosya eklemek ve komut satırına komutlar vermek. Yani isterseniz kendiniz de menuyu genişletebilirsiniz.
Programın install edilmesi de şöyle, paketi açtığınızda içerideki “subversion” isimli dosyayı “~/.gnome2/nautilus-scripts” klasörüne kopyalamanız yeterli.
Boot sırasını değiştirmek
by solomon on Jun.16, 2009, under linux
Benim gibi ubuntu + windows kombinasyonu kullanıyorsanız, boot sırasındaki os seçim listesinde ubuntu’nun default olması dert olabilir. özellikle bilgisayarı başka biri de kullanıyorsa. çözüm ise
sudo gedit /boot/grub/menu.lst
ile menu.lst dosyasını açmak, içinde “default 0″ yazan satırı listedeki sıraya göre değiştirmek. default kurulumda windows 4. sırada çıkıyor. dolayısıyla “default 4″ yapınca işlem tamamlanmış oluyor. afiyet olsun.
Windows’u otomatik kapatmak
by solomon on Jun.07, 2009, under windows
Windows’u belirli bir süre sonra kapatmak için 7£ ya program satmalarını aklım almıyor. Oysa windowsda zaten var olan shutdown programı ile windowsu belirli bir süre sonra kapatabilirsiniz.
shutdown -s -t 3000
Bu komut 3000sn yani 50dk sonra windowsu kapatacak. Ayrıca 50 dk sonra izlediğim film bitecek ve uyuyacağım.
YSlow performance guide
by solomon on Apr.12, 2009, under Programming, Tech
Her zaman gerekli olan bu best 20 practise’i buraya koyuyorum ki hep önümde olsun
Zend Date ile tarih aralığı hesaplamak
by solomon on Apr.02, 2009, under php
çok basit olsa da ben yine de buraya yazıyorum. yapmaya çalışılan kaç yaşında olduğunu hesaplamak. tek yaptığım da iki timestamp’ı (biri şu anki tarih, diğeri doğum günü) birbirinden çıkartmak. küsüratlı bir rakam elde edilmek istenmiyorsa floor fonksiyonuyla yuvarlana da bilir. bir de 365 e bölmek istenmeyebilir. o ayrı.
$now = new Zend_Date();
$dob = new Zend_Date("954686860", Zend_Date::TIMESTAMP );
echo floor(($now->getTimestamp() - $dob->getTimestamp()) / (24 * 60 * 60)) / 365;
FFMpeg – error while loading shared libraries: libavdevice.so.52
by solomon on Mar.04, 2009, under Programming
FFMpeg ile video convert işlemi yaparken bu hatayla karşılaştım (Centos server üzerinde). yapmaya çalıştığım işlem şuydu:
/usr/local/bin/ffmpeg -i /var/www/vhosts/got2b.ca/httpdocs/beta/private/orginal_videos/test.avi -f flv -r 30 -ar 44100 /var/www/vhosts/got2b.ca/httpdocs/beta/public/uploads/flv/suleyman4.flv 2>&1
Burada yaptığım prensipte avi dosyasını flv ye çevirmek.
Hata mesajının tamamı da şöyle birşey:
/usr/local/bin/ffmpeg: error while loading shared libraries: libavdevice.so.52: cannot open shared object file: No such file or directory"
bu olayın sebebi hata mesajında dediği gibi ldconfig’in libraryleri nerede arayacağını bulamaması. çözümü de amcaya bunun pathinin neresi olduğunu söylemek.
uzun yol:
LD_LIBRARY_PATH=/usr/local/lib/
export LD_LIBRARY_PATH=/usr/local/lib/
komutlarını çalıştırmak. ama reboot ederseniz bu komutları tekrar çalıştırmanız gerekiyor. dolayısıyla bu uzun yol
kısa yol:
cd /etc/ld.so.conf.d
vim custom-libs.conf ( ya da istediğiniz text editoruyle dosyayı açabilirsiniz)
dosyanın içine şu satırı yazıp kaydedelim:
/usr/local/lib
sonra da ld olayını configleyelim (o ne demek?)
ldconfig
budur.