31 Ocak 2010

Google anasayfasında ajax

Geçen gün google 'ın bir süreliğine çalışmadığını farkettim ve ardından çalışır hale geldiğinde arama işleminin (bazı tarayıcılarda) Ajax ile yapıldığını farkettim. Linux ortamında Chrome 'da eski şekilde çalışsa da Firefox için ajax sistemiyle arama yapılıyor. Google zaten yeterince hızlı açılıyordu ancak bu değişiklikle birlikte sunucuları üzerindeki yükten ciddi bir tasarruf edecekleri kesin. Bu değişikliği farketmemi sağlayan şey adres kısmında eskiden google.com/ dan sonra gelen kısmın artık # ile başlamasıydı. (Farkettiyseniz bu yöntemi Facebook zaten neredeyse bütün sayfalarında - ör: bir üyenin albümünde gezinirken - kullanıyor. Hatta bu yöntemin yayılmasında büyük bir payı vardır.) Adresin bu şekilde değişmesinin şöyle bir avantajı var: Tarayıcının geri düğmesini tıkladığınızda bir önceki ajax isteği kullanılarak önceki sayfaya gidilmiş oluyor. Aynı durum ileri düğmesi için de geçerli. Aksi halde kullanıcının geri gitmek bir önceki işlemi tekrarlaması gerekiyor. Yani tarayıcının yapması gereken şeyi kendisi yapmak zorunda kalıyor. Bir sonraki yazımda bir örnek vererek bu yöntemle ajax kullanımından bahsetmeyi düşünüyorum.

27 Ocak 2010

Linux için Google Chrome

Google Chrome web tarayıcısının Linux için beta sürüm paketleri yayınlanmış. Daha önce başka bir platformda Chrome kullandıysanız diğer tarayıcılardan fark ve üstünlüklerini az çok biliyorsunuzdur.

Google Chrome 'u şu adresten indirebilirsiniz:
http://www.google.com/chrome?platform=linux

Google Chrome hakkında detaylı bilgi için:
http://www.google.com/chrome/intl/tr/features.html?platform=linux

15 Ocak 2010

PHP kodlarını korumak / şifrelemek

Php dili hepinizin bildiği gibi derlenmeyen yani betiksel olarak çalışan bir dil. Bu yüzden php ile geliştirilen bir yazılım resmi olarak olmasa da aslında açık kaynaktır. Eğer yaptığınız yazılımın başkaları tarafından incelenmesini, düzenlenmesini yada kopyalanması istemiyorsanız bir şekilde kodlarınızı korumanız gerekmektedir. Bunu sağlamanın en mantıksal yolu kodlarınızı kendinize ait sunucunuzda barındırmak olsa da bu yöntem çoğu programcı için uygun değildir. Ayrıca bazı durumlarda yazılımı başkasına teslim etmeniz gerekebilir. Buna bir örnek olarak yazılımınızı bir yada birçok müşteriye satma durumu verilebilir.

Piyasada php kodlarını derlediğini iddia eden birçok yazılım mevcut. Aslında bu derleme normal bir derleme işlemi değil. Bu işlem aslında kaynak kodları bytecode haline getirmektir.

Bu amaçla kullanılan yazılımların sayısı oldukça fazla. Bunların bir kısmı sunucuya bir eklenti kurulmasını gerektirmektedir. Herhangi bir kurulum gerektirmeden çalışacak şekilde kod dönüşümü yapan yazılımlar da mevcut ancak bu yöntem muhtemelen yazılımınızın hızını düşürecektir çünkü kodları asıl haline getirmek için bir ters şifreleme işlemi gereklidir.

Araştırmalarıma göre piyasada bu konuda en iddialı ve en yaygın olarak kullanılan iki yazılım var. Bunlardan biri Zend Guard, diğeri ise Ioncube Encoder. Günümüzde neredeyse bütün web sunucularında bu iki yazılım için çalıştırma ortamı eklentileri kurulu durumda. Bu yazıyı yazdığım sırada bu iki yazılımın fiyatları şu şekildeydi:

Zend Guard: $600
Ioncube Encoder: $199(Basic) , $299 (Pro) , $379 (Cerberus)

Zend guard 'ın fiyatı 1 yıllık kullanım içindir ve kullanmaya devam etmek için her sene bu ücreti tekrar ödemeniz gerekiyor.

Ioncube Encoder için ise ücret bir defa ödeniyor ve 1 yıllık güncelleme ve destek hizmeti ücretsiz olarak ürüne dahil oluyor. Bu süre bitiminde 2 hafta içinde daha düşük bir ücret ödeyerek süreyi uzatabiliyorsunuz.

Benim googleda araştırmalarıma göre Ioncube kalite olarak çok iyi ve arama sonuçlarında gördüğüm kadarıyla bu yazılımla korunan kaynak kodlar diğer ürünlere göre daha sağlam bir şekilde korunuyor. Ayrıca günümüzde neredeyse bir standart olarak bütün sunucularda Ioncube desteği mevcut.

Ioncube için farklı özelliklere sahip 3 sürüm var. Bunlar Basic, Pro ve Cerberus sürümleri. Bu sürümlerin karşılaştırmasını şu adreste görebilirsiniz:
http://www.ioncube.com/sa_encoder.php?page=pricing

Farklarını kısaca açıklamak gerekirse Basic (Entry Level) sürümü ile kodlarınızı incelenmeye ve düzenlenmeye karşı koruyabilirsiniz ancak bu durumda kodlar kopyalanmaya karşı korumasızdır. Pro sürümünde buna ek olarak zaman aşımı, ip ve alanadına göre kısıtlama getirmek üzere lisans dosyası oluşturarak kodlarınızın sadece istediğiniz sitede / istediğiniz süre boyunca kullanılabilmesini sağlayabilirsiniz. Cerberus sürümünde ise Pro sürümündeki özelliklerle birlikte yazılımın çalışacağı makinenin MAC adresine göre kısıtlama getirmenize olanak sağlıyor.

Bu özelliklere göre özel bir projeye ait kodları korumak yada yazılımdaki parola gibi hassas verileri korumak için basic sürümü yeterli olabilir. Yazılımın kopyalarının ticari olarak satılması amacı için ise Pro sürümü uygun olacaktır. Cerberus sürümü ise sadece makine bazlı kısıtlama gerektiren özel durumlarda gerekli olacaktır.

Ben daha önce Basic sürümünü denedim ve memnun kaldım. Ücretsiz olarak indirip kullanılabilen Ioncube Loader modülünü yerel sunucumda kurdum ve kodların sorunsuz olarak çalıştığını gördüm. Ancak daha yüksek güvenlik sağlayan obfuscation (kod karıştırma) seçeneğini kullanmak herhangi bir işlev adının kod içinde string olarak kaydedildiği durumlarda bazı yazılımlarda uygun olmayabiliyor. Ancak bu seçeneği kullanmak zorunlu değil. Yerel makinem dışında kullandığım web sunucusunda da ioncube ile kodlanmış yazılım için deneme yaptım ve yine sorunsuz olarak çalıştığını gördüm. Deneme sürümü iki haftalık kullanım sağlıyor ve deneme sürümü kullanılarak kodlanmış yazılım ise yanlış hatırlamıyorsam üç gün boyunca kullanılabiliyor.

Sonuç olarak Php gibi betiksel bir dil kullanarak ticari yazılım geliştiren yada yaptığı yazılımları korumak isteyen her geliştirici için Ioncube makul bir tercih olacaktır. Profesyonel web geliştirme amacıyla verilecek 200-300 $ gibi bir ücret bu sistemin faydası dikkate alındığında bence çok fazla bir ücret değil.

http://www.ioncube.com

Kripto paralar hakkında

Kripto paralar, merkezi olmayan, şifrelenmiş ve dağıtılmış bir veritabanı olan blok zinciri teknolojisi kullanılarak oluşturulan dijital par...