30 Ekim 2008 Perşembe

Java'da PHP kullanmak : Quercus

Quercus: Java altında PHP

Quercus isimli bir kütüphane sayesinde artık Java ile PHP'yi bir arada kullanmak artık çok kolay. Quercus ayrıca Resin'i de geliştiren Caucho tarafından GPL lisansıyla yayımlanan bir teknoloji.

Quercus aslında PHP'nin %100 Java ile tekrar yazılmış hali. Bu nedenle Quercus herhangi bir Java Application Server üzerinde rahatlıkla çalıştırılabiliyor. Quercus Resin Application Server ile birlikte geliyor ama diğer serverlar içinse kurulum bir .war dosyası ile mümkün. Kurulum için ayrıca yapmanız gereken şey config dosyasında ufak bir değişiklik.

Quercus, PHP'nin tüm özelliklerini içinde barındırmasının yanısıra PHP'de kullanılan PDF, PDO, MySQL ve JSON gibi bazı temel modül ve eklentileride içinde barındırmakta.

Quercus PHP'nin Java dilinde tekrar yazılmış hali olduğundan Java servisleri ile de birlikte çok iyi çalışabiliyor. Ufak birkaç ayarlamayla PHP içinden java servislerini çağırmanız mümkün.


İlk Deneme

Application Server olarak Resin kullandığım için Quercus zaten kurulu gelmekteydi.
Java ile geliştirdiğim Web Uygulamasında tek yapmam gereken /WEB-INF/web.xml dosyasına aşağıdaki gibi bir "servlet mapping" tanımlamam yeterli oldu.

<web-app>

<servlet-mapping>
<servlet-name>AjaxServlet</servlet-name>
<url-pattern>/AjaxServlet</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name> QuercusServlet </servlet-name>
<servlet-class>
com.caucho.quercus.servlet.QuercusServlet
</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name> QuercusServlet </servlet-name>
<url-pattern> *.php </url-pattern>
</servlet-mapping>

</web-app>


Bundan sonra örnek bir hello.php dosyası yazdığımda, hello.php'nin normal bir jsp dosyası gibi yani javaya çevrilerek derlendiğini gördüm.

Ayrıntılı Bilgi İçin

http://quercus.caucho.com/
http://www.caucho.com/resin-3.0/quercus/

17 Ekim 2008 Cuma

CentOS'da Başlangıçta Çalışan Servisleri Ayarlama

( ENGLISH: Enabling and disabling services during start up in CentOs )

Geçenlerde Kullandığımız CentOs 5 Linux Server'da başlangıçta çalışan servislerden bazılarını Kapatıp , bazılarını da çalıştırmak istedik. Aşağıdaki kaynaklar bize oldukça yardımcı oldu:

http://linuxhelp.blogspot.com/2006/04/enabling-and-disabling-services-during_01.html
http://www.netadmintools.com/art94.html

Yaptıklarımızı özetlersek:

1-) Öncelikle /etc/init.d/ içine yeni bir script oluşturmamız gerekiyor. Bu dosyaya "mytomcat" diyelim. Bu scriptin içeriği şöyle olmalı.
# chkconfig: 2345 20 80
# description: Runs my tomcat server
#

export JRE_HOME=/usr/java/jdk1.5.0_16/jre

./var/appservers/mytomcat/bin/startup.sh
Linux'un bu oluşturduğumuz rc script dosyasını çalıştırabilmesi için bir tanımlama satırı oluşturmak gerekiyormuş. Bu satır ise yukarıda gördüğünüz "# chkconfig: 2345 20 80" satırı oluyor. Burda 2345 script'in çalıştırılacağı run-level'leri, 20 start priority'sini, 80 ise kill priority'sini tanımlıyormuş. Bu tanımlama satırlarından sonra da elbette script'in içeriğini yazıyoruz.

2-) Bundan sonra oluşturduğumuz script chkconfig'e tanıtmamız gerekiyor. Bunu da şu şekilde yapıyoruz:
chkconfig mytomcat --add

3-) Sonra yazdığımız script'i aşağıdaki şekilde enable ediyoruz:

chkconfig mytomcat on

4-) Script'in hangi levellerde çalışacağını da aşağıdaki komutla ontrol edebiliriz:

chkconfig mytomcat--list


5-) Son olarak şunu da belirteyim biz tomcat'i 80 portunda çalıştırmak istiyorduk ama bu yapmak için önce 80 portunda çalışan Apache'yi kapatmamız gerekiyordu. Normalde "chkconfig httpd off" yaptığımızda apache'nin Linux'da başlangıçta çalıştırılan servisler listesinden çıkması gerekiyordu ama nedense bu işe yaramadı. Bunun için biz de Türk Zekamızı (!) kullanarak /etc/init.d/httpd servicinin ismini değiştirdik böylece Linux bu script'i bulamadığından başlangıçta apache'yi çalıştıramadı.


16 Ekim 2008 Perşembe

Microsoft Silverlight

Genel olarak bir Java tutkunu olduğum için Microsoft tarafındaki teknolojilerle çok ilgilenme imkanım olmadı ne yazıkki ama bu hep içimde ukde olagelmiştir. Belki de bu yüzden Microsoft tarafındaki gelişmelere de pek uzak kalmamaya çalışıyorum.

Sözü kısa kesmek gerekirse, Microsoft Silverlight'ın ikinci sürümünü duyurdu. Oldukça güzel şeyler vadeden bu teknolojiyi gelin biraz daha yakından tanıyalım.

GENEL BAKIŞ

Microsoft Silverlight, web (browser) uygulamaları için animasyon, vektör ve 3D grafik ve video oynatma imkanları sağlayan, WPF tabanlı (Windows Presentation Foundation) browser eklentisidir. [1]

Adobe Flash, DHTML ve JavaFX ile rekabeti amaçlıyor. [1]

Silverlight ile oluşturulan içerik, Adobe Flash'in aksine derlenmiyor. [1]

Vektör grafik ve animasyonların işaretleme dili biçiminde kodlanmasını sağlayan görsel geliştirme dili XAML, içerdiği belgedeki Javascript değerlerine ulaşıp çalıştırabilmesi sayesinde, XAML (Okunuşu:Zamel) belgeleri DHTML/Ajax/Javascript içerikleri tarafından düzenlenip, programlanabiliyor. [1]

XAML oluşturmak için herhangi bir editör yeterli olduğu gibi, Microsoft’un bu iş için hazırladığı “Expression Blend” uygulamasıyla daha kolay çizim yapılabilir, animasyon oluşturulabilir. [1]

Olaylara biraz daha teknik bakmak gerekirse, iyi bir Silverlight uygulaması geliştirmek için temelde 2 kişiye ihtiyacınız var: Bir tasarımcı/animasyoncu ve bir yazılımcı (js/.net). Tasarımcı, Microsoft Expression Blend ile uygulamanın arayüzünü ve animasyonlarını yaratıp XAML (Extensible Application Markup Language) formatında yazılımcıyla paylaşacaktır. Yazılımcı ise uygulamanın arka tarafını tasarlayıp uygulamaya geçecektir. [2]

KAYNAKLAR

Silverlight Resmi Sitesi
Sikverlight Hakkında Türkçe Wiki Girdisi
Silverlight Hakkında İngilizce Wiki Girdisi
Silverlight Hakkında Türkçe Güzel Bir Mini Eğitim Yazısı
Javascript Geliştiricileri İçin XAML ve Microsoft Silverlight Sunumu

ÖRNEKLER ve DEMOLAR

Web Tabanlı XAML IDE : Rainbow 9

ALINTILAR


[1]: Azer Koçoğlu, http://docs.google.com/TeamPresent?docid=ddwks393_12dbf2zg&skipauth=true
[2]: Eren Emre, SiberKültür, http://www.siberkultur.com/?q=microsoft-silverlight

14 Ekim 2008 Salı

Dilbert'den Seçmeler

Dilbert'in Yenilen Sitesini oldukça beğendim. Boş zamanlarınızda ziyaret edebileceğiniz çok güzel bir site. Ayrıca favori Dilbert'lerinizi kaydetmeniz de mümkün. Herkese tavsiye ederim.

İşte benim hoşuma giden bazı dilbert'lerden seçmeler:

Dilbert.com



Dilbert.com



Dilbert.com

Diğer favori Dilbert'lerime buradan bakabilirsiniz.


13 Ekim 2008 Pazartesi

JQuery

Javascript kütüphaneleri bu aralar çok moda. JQuery isimli bi javascript kütüphanesi galiba prototype.js'nin pabucunu dama atmaya aday. Burdun buradan inceleyin:

http://jquery.com/

Burda da çok güzel bilgiler var:

http://www.eburhan.com/jquery-dunyasina-adim-atiyoruz/

9 Ekim 2008 Perşembe

Linux'de Faydalı Komutlar

Linux Kullanırken Elinizin altında bulunması gereken bazı komutlar:

# Dosyayı Sıkıştır (Tar formatında)
tar -czvf FILE.tar.gz DIR_OR_FILE

# Sıkıştırılmış Dosyayı Çıkart
tar -xzvf FILE.tar.gz

# Give all rights to all users
chmod 777 -R "MY FOLDER NAME"

# Search for a file or directory everywhere
find / -iname "FILE TO FIND"

# Copy an entire directory
cp -R DIR_TO_COPY/ NEW_DIR/

# Print working directory
pwd

# Dosya Sil
rm FILE_NAME

# Dizin Sil
rmdir DIRECTORY_NAME

# bir komutu başka bir kjullanıcı hesabına çalıştırma
su -c 'COMMAND' other user' # Örnek:
su -c 'pg_ctl start -D /usr/local/pgsql/data -l serverlog' postgres



6 Ekim 2008 Pazartesi

Yazılım Ölçümü (Software Metric) Nedir?

İnternette gezinirken Portakal Teknoloji'den Bora Bey'in bloguna rastladım. 'Yazılım Ölçümü'yle ile ilgili faydalı bulduğum bir makale yazmış. Kısaca bahsetmek istedim.

Yazılım ölçümü (İng. software metric) bir yazılımın yada yazılım projesinin ölçebildiğimiz herhangi bir özelliği olarak tanımlayabiliriz.

Peki insanlar ne gibi şeyleri ölçmeyi anlamlı bulmuşlar?
  • Yazılan satır sayısı
  • Kodun karmaşıklığı (İng. cyclomatic complexity)
  • Her bin satır (KLOC) başına düşen hata (bug) sayısı
  • Bir hata tespit edildiğinde onu düzeltmenin ne kadar zaman aldığı
  • Testler toplam geliştirme zamanının ne kadarını alıyor?
Böyle bir çok ölçüm üretmek mümkün.


Özetlediğim makalenin tamamını buradan okuyabilirsiniz.

Ayrıntılı Bilgi İçin: http://en.wikipedia.org/wiki/Software_metric