Category Archives: PHP

RSS’te yetkilendirme

RSS yayınlarını (besi de deniyor) ciddi bir yazılım çözümü içinde kullanmayı planlıyorsanız, bir yetkilendirme yöntemine ihtiyaç duyulur. Aşağıda bağlantısını vereceğim makaleye göre, RSS okuyucuların nadir bir kısmı HTTP üzerinden yetkilendirmeyi ve şifrelemeyi (SSL) destekliyor.

HTTP üzerinden yetkilendirme, şifreyi açık olarak gönderdiği için pek tercih edilmemesi gereken bir yöntem. Ancak HTTPS(SSL) üzerinden yayınlanırsa, güvenli oluyor.

Konu açılmışken, uzun süredir firefox-thunderbird ikilisinin rss okuma yetenekleriyle yetiniyordum. Bir yandan da google reader kullanıyorum. Ama artık, daha iddialı bir rss okuyucu edinmenin zamanı geldi sanırım 🙂

http://labs.silverorange.com/archives/2003/july/privaterss

Servis odaklı mimari

Yazılımı bir servis olarak geliştirmek, iki bilgisayarın ağ üzerinden ilk konuştukları günden bu yana -muhtemelen yüzbinlerce kez- yapılmış birşey. Daha gerisini bilmiyorum; ama web servislerinin bu kadar popüler olmasından önce de aynı amaçla kullanılabilen bir çok altyapı teknolojisi mevcuttu. CORBA, DCOM ve REST, bunlardan yalnızca bazıları. (bkz. RPC)

XML-RPC ya da SOAP, sadece XML’in popüleritesinden ve web uygulamaları üzerine oluşan deneyimden nasiplerini alanlar. Fena mı oldu, tabii ki hayır. Ama “servis odaklı mimarîye, sadece web servisleri gözüyle bakmak”: işte fenâ olan budur.

Yazılımın üst düzey tasarımı tartışılırken konuşulan şey “web servisleri” ise, bence yol yanlıştır. Tartışılması gereken şey, “servis odaklı mimarî”dir. Web servisleri, yalnızca bunu nasıl yapacağınıza karar verdiğimizde değerlendirmemiz gereken bir alternatif.

Bu yolla, “servis odaklı mimarî”nin tasarımınıza olan etkilerini açıkça değerlendirebilirsiniz. “Loose coupling” denen nâneye yeni bir gözle bakmak, yenilik budur. Servis odaklı mimâri, nesne yönelimli tasarımın semirmiş halidir. Bugün böyle popüler olmasının sebebi de, nesne yönelimli programlamayı sindirmemizin tamamlanmış olmasıdır. Dediğim gibi, bir servis yazmak için onyıllardır teknoloji mevcuttu.

Özet: Gün bugündür! 🙂

Javascript debug

Javascript kodu yazarken, hata bulmak için kullanılan yöntem genelde alert(değişken) gibisinden olur. PHP kullanıcılarının çoğu da, benzer yöntemler (vardump, print_r,…) kullanır. Ben de bir süre öncesine kadar öyle yapardım, ve nasıl sancılı bir süreç olduğunu bilirim.

Javascript debugging ile söyleyeceğim birçak söz var. Öncelikle, kodun içinde bir satıra sadece “debugger” yazarak, kodun içine “breakpoint” koyabiliyor, o satır çalıştığında sistemde kayıtlı debug tool’ların tetiklenmesini sağlayabiliyorsunuz. Bu aşamadan sonra zaten ekranda debugger’ların listesi geliyor. Bu konuda Visual Studio 2005 gayet iyi.

Diğer yandan, Firebug isimli bir js, html, css debugger var ki incelerken ofiste bizi “oha, oha, oha” diye inletti. Sizi bu haz gösterisine davet ediyorum:

Firebug – Web Development Evolved (adını hakediyor)

Powered by ScribeFire.

Phoenix

Phoenix, Ekonomi Üniversitesinde geliştirdiğimiz bir proje. Türkay PALANCI, Aykın CAGALOZ, Görkem PAÇACI, Kaya OĞUZ, Berkay BEYGO, Serkan BARUT, Fatih DUVAHAN, Damla DEMİRTAŞ bu projenin failleri. 🙂

Resimde projenin ilk “production release”in kullanıma geçtiğinin Agora Mandolin’de kutlandığını görebilirsiniz 🙂 Bu fotoğraf çekileli sanırım 2 ay falan oluyor, ama ben her zamanki ağırkanlılığımla ancak şimdi buraya gönderiyorum.

SOA temeline oturtulmuş yapıda İEÜ’nün web sitelerinde yer alan tüm kurumsal veriler, tek bir merkezden yönetiliyor ve küçük istemci paketleri(servis uyduları) yoluyla alt sitelerde (xxx.ieu.edu.tr) yayınlanıyor. Sunucu (phoenix), kullanıcı yönetimi, yayınlanan duyuruların yayınlayıcının üssünün onayından geçmesi, tüm metinlerin ingilizce sürümlerinin takibi gibi işleri yürütürken uydulara (alt siteler) bu bilgileri “xml web service” üzerinden sunuyor.

PHP5, MySql5 ve php_soap kütüphanesini kullandık. Hayırsever bir abinin yazdığı WSDL_Gen sınıfını da unutmamak gerek. Zira PHP, “typeless” bir yapıya sahip olduğundan wsdl konusu başlı başına bir problem.

phoenix-mandolinResimdekiler soldan sağa Berkay, Damla, Kaya, Türkay, Aykın, Serkan, Görkem, Ozan.

biraz php, biraz java, biraz .net

Finaller, Netsis’te staj, teyzemin kaybolan anahtarları derken; çeşitli cephelerden çeşitli gelişmeler yüzüme tokat gibi şapladı. Öncelikle, php’ci çılgın bir abinin (adam dunkels) php ürününden bahsedeceğim.

php-code.jpgDunkels, php ile basit bir “web server” yazmış. Bu da yetmemiş, web sunucusunda kullanmak için bir “tcp/ip stack” de yazmış. Ayrıntılı bilgiye ve kaynak kodlara http://www.sics.se/~adam/phpstack/ adresinden ulaşabilirsiniz.

Birileri de .Net Framework üzerinde çalışan JVM yazıyorlarmış (IKVM). Böylece derlenmiş java byte-code, Mono veya .Net Framework üzerinde çalışabiliyor. Mono, ayrıca PHP, Javascript, Object Pascal gibi daha bir çok dili de derleyebiliyormuş.

 

IKVM sayfası:

http://www.ikvm.net/

 

 

Mono’nun desteklediği diğer diller için:

http://www.mono-project.com/Languages

 

Bir yandan da, birileri biz bunun tersini yaparız demişler. .Net bytecode’u (intermediate language) java bytecode’a çevirerek, java destekleyen tüm platformlarda(solaris, linux, diğer xler…) çalışır hale getiriyorlarmış.

Mainsoft:

http://www.mainsoft.com/products/index.aspx

vmwj2ee_howitworks.jpg

Şu java ve .net arasındaki “side-by-side” uyumluluk daha başımıza çok işler açacak…