Tagged: php RSS Toggle Comment Threads | Keyboard Shortcuts

  • admin 09:20 on 26 September 2009 Permalink | Reply
    Tags: php, türkçe karakter sorunu   

    PHP’de türkçe karakter sorunu 

    Türkçe karakter içeren bir metni ya da dosya ismini ingilizceye uyumlu hale getirmek için verilen klasik bir function var.


    function replacetr($text) {
    $search = array('Ç','ç','Ğ','ğ','ı','İ','Ö','ö','Ş','ş','Ü','ü',' ');
    $replace = array('C','c','G','g','i','I','O','o','S','s','U','u','-');
    $text = str_replace($search,$replace,$text);
    return $text;
    }

    Bu fonksiyon çalışıyor.  Ama dikkat edilmesi gereken bir şey var.  UTF-8 kod yapısında bir function kütüphanesine eklediğiniz function ANSI bir dosyada çalışmıyor. Üstelik loaded olup olmadığına php ile bakıp görüyor ama çalışmadığına uzun süre anlam veremeyebiliyorsunuz.  Tüm dosyalarını utf-8 olsun :)

    Share
     
  • admin 21:42 on 07 July 2009 Permalink | Reply
    Tags: groovy, java, mvc, oop, php, programlama dilleri, python   

    Java, Groovy, Python, PHP hakkında 

    Şu sıralar web scriptingten kopup masaüstü uygulama geliştirme sevdasına yıllar sonra yeniden tutulmuş gibiyim. Aslında bir yenilik arıyorum programlamada. Önce halihazırda bildiğim ve kullandığım PHP için framework aradım. Her zamankinden farklı bir sonuç yok henüz. Fakat php frameworklerde bazı gelişmeler olmuş. CodeIgniter şimdilik kurulum ve kullanım kolaylığı ile kullanıcısı sayısını hızla arttırıyor. MVC (model view controller ) üretim şeklini keşfeden ve bunu kullanmak isteyenler çoğalıyor. Fakat temelde frameworkler MVC kullanılsa bile iki çelişki arasında kalıyor. Birincisi üretimi hızlandırmak adına Zend framework gibi resmen bir dil öğrenmenizi gerektiren framework olmak, ikincisi CodeIgniter hatta tinyMVC kadar basit bir PHP framework olup kütüphane olmaktan MVC kullanmak haricinde pek öteye gidememek. Tabi siz diyebilirsiniz ki CodeIgniter nispeten kısa sürede öğrenilir ve MVC ile projelerde zaman kazanılır. O zaman bir diğer unsuru görmek lazım. O da projenin üretim boyutu. Projeniz herkesin anlayacağı standart olacak mı ? Yoksa projeniz bir kişinin elinden mi çıkacak ? Porjeniz yıllarca bakım isteyecek mi yoksa bir kaç sene sonra zaten ömrünü tamamlayacak mı ? İyi bir programcı malesef bu sorulara bir endüstri mühendisi gibi olmasada mutlaka cevap vermek zorunda. Yoksa işiniz hobi olmaktan çıkamaz.

    Framework arayışım pek olumlu sonuçlanmamıştı açıkcası. Zira askerlikten önce zaten kendi framework yapımı yazmış, session yönetiyor, smarty kullanıyor, xajax ile ajaxtaki tüm işlerimi yapıyordum. Üstüne üstlük bir ekibin çalışacağını düşünmediğim için projelerimde de MVC yapısı ancak uzun süre sürümlerini çıkartacağım projeler için gerekebilirdi. Onun dışında kendi framework yapım zaten yeterince MVC bir sistem sunuyordu. Ama araştırırken eski sitelerimi ve kodlarımı rahatlıkla tamir edip daha işlevsel yapabileceğimi düşündüğüm bir kütüphane keşfettim. Flourish Unframework olarak kendisini lanse eden güzel bir kütüphane. Diyebilirsiniz ki PHPClasses.org üzerinden istediğim kütüphaneleri zaten kullanıyorum. Doğrudur. Ama bu kütüphane güzel bir dökümantasyonada sahip ve kullanımıda herhangibi bir classtan farksız. Şiddetle ufak tefek siteleriniz ve eski baş ağrılarınıza tavsiye edilir.

    Ama henüz istediğim şekilde birşey keşfedememiştim ki aklıma uzun süre önce aldığım Python kitabı geldi. CGI tipi proramlamaya benzetmiş pek ilgilenmiyordum. Tabi bu sürede Python 3 sürümü duyurulmuş bile. Bir iki deneme yaptıktan sonra basit bir yapısının olduğunu gördüm. Aynı zamanda PHP gibi kullanılması için Python Server Pages (PSP) yani HTML içinde kullanım imkanıda var. Dahası masaüstü uygulama bile geliştirebiliyorsunuz. TAbi ki PHP’nin GTK yapısından çok daha önde. Ama karşılaştırma yazılarını incelerken anladım ki web scripting açısından bakıldığında Python gerçekten büyük işler için. PHP ile bir 10001000 hesabı yapılarak performans karşılaştırması yapıldığında aralarından pek bir fark yok. Hatta PHP biraz daha önde. Ama iş karışık bir işleme geldiğinde PHP’de 3 kat kadar daha verimli ve hızlı sonuç veriyor. Tüm bunlara rağmen Python masaüstü uygulama geliştiricileri için uygulama tasarımında pek avantajlı görünmedi. Visual C# öğrenmek Türkiye’de Python öğrenmekten daha mantıklı çünkü iş alanıda daha fazla. Tabi bu Python güçsüz bir dil demek değil. Zira NASA, google gibi kurumlard Python kullanıyor. Bildiğiniz Gmail mesela Python altyapısında. Aynı zamanda prototip program geliştirilmesinde çok avantajlı olduğu söyleniyor. Dahada önemlisi yapılan anketlerde Python 2013 yılında java’yı hem güç hem popülarite olarak geçecek gibi duruyor.

    Python’u cebime koyup yola devam edeyim derken karşılaştırma sitelerinde başka bir dil daha gördüm. Groovy adında Java nesnenelerini kullanan ve javanın kendi nesnelerini kullanabildiği, Python ve Ruby gibi dillerin desteğini de sunan bir dil. Groovy yine karşılaştırma sitelerinde Python’a göre her işlemde olmasa da 3 kat kadar hıza çıkıyor. Üstelik Java gücünü basit bir söz dizimi ile kullanabiliyorsunuz. Fakat tüm bunlar dışında bir sorun var. Groovy ve Java Python’a göre 25 kat daha fazla memory işgal ediyor. Bunu yanında aynı işi yaptığınız Java ve Groovy kodu Python’dan iki kat daha fazla yazmak demek oluyor. Zaten Java vb. altyapısında üretilecek Groovy gibi dillerin her ne kadar zorlu sözdizimini aşsalarda en büyük sorunu hafıza kullanımı olacak gibi. Büyük firmalar bugün ta başından beri OOP ve haliyle MVC’ye uygun olarak tasarlanmış Java’yı pek sevse ve büyük işlerinde kullansada ileride 2013′ten sonra işler gerçekten değişebilir mi diye insanın aklına takılıyor. Python gerçekten bugün öğrenmeye , hakkında fikir edinmeye değer bir dil imajı çiziyor.

    Share
     
  • mehmet 09:41 on 31 August 2008 Permalink | Reply
    Tags: geliştirici, girişimci, innova, nusoap, php, sanal pos, video, ziraat bank   

    Bir girişimçi/geliştirici hikayesi… 

    Proje geliştiriyorsunuz, program geliştiriyorsunuz belki de eğitim süreçleri tasarlıyorsunuz. MMistanbul.com‘dan Zehra Doruk sayesinde dikkatimi çekmiş çok öenmli bir video. Adeta son 3 ayımı ifade ediyor. Çevirilerinden bazıları şöyleymiş;

    “5 haftalık bir iş planının 4. haftasındayız ama gereksinimleri yeni öğrendik”, “Yarım günümü daha fazla nasıl iş çıkartabileceğimize dair bir toplantıda harcadım, çalışmak yerine..”, “patron bir magazin dergisinde daha üretken olduğunu okuduğu programın bir kopyasını getirdi ve süreçleri yarı yarıya kısaltacağını sanıyor!”..

    O kadar doğru ki, pratik halini yaşadığım için anlatmadan geçemeyeceğim.

    İşimiz sanal pos kurulumuydu. İlk etapta bir sayfalık bir form doldurup bankaya ilettik. Sonra banka tarafından istenen ve sitede bulunması gereken visa / master card logosunu, Gizlilik Politikası , Garanti İade Koşulları , Firma Bilgileri , Teslimat Politikası , Müşteri Hizmetleri gibi bilgileri sitemize ekledik. Beklemeye başladık. Bankamızın bunları kontrol etmesi yaklaşık 22 gün sürdü diye hatırlıyorum. Üstünden aylar geçtiği için tam hatırlayamıyorum kusura bakmayın.

    Sonra bize bir telefon ve eposta geldi. Test aşamasına sitemizi hazırlamamız için sabit IP, SSL sertifikası gibi şartları hazırlamamız ve XML sistemi kurmamız istendi. Innova firmasının altyapısını kullanan bankamız Ziraat Bank’ın ilk defa pos kurulumu yaptığımız için yönetim paneli giriş kodu göndermediğini anladık. Dökümantasyon ise sadece ASP scriptleri için açıklamalar içeriyordu. İnnova‘dan PHP örnekler talep ettiğimizde bir kaç kaynak gönderdiler ama bir türlü CURL ile XML sorgulamaları yapamıyorduk. Bu sorun bir kaç günümüze mal oldu. Sonra PHP SOAP extention desteği ile yapabileceğimizi ama host firmamızın bu desteği vermediğini öğrendik. CGI gibi kullanmamızı istiyorlardı SOAP kütüphanelerini. Bu konuda uzuuunn süre araştırma yaptıktan sonra asla yeterli türkçe kaynağa ulaşamayacağımı anladım. CURL, SOAP, XML gibi konularda emin olun hiçte öyle fazla bilirkişi yok Türkiye’de. Hele bunların yanında PHP’yi de bilen kaç kişi vardır bilemiyorum. Zira bana Türkiye’den yardım bir ana kadar gelmedi.

    Bu sıralarda araştırırken şu anda İngiltere’de bir oyun firmasında çalışan ve sanıyorum master yapan Görkem PAÇACI‘ya denk geldim. Ekşi sözlükte yazdığı bilgi dolu cümleleri okuyup, orada yazar olmadığım için mesaj atamadığımdan sosyomat.com’da kendisine nicki ile ulaşabildim. Sağolsun çok yardımcı oldu ve benim es geçtiğim PHP’nin nuSOAP kütüphanesinin işe yarayabileceğini söyledi. Zira yaradı da. Artık sorgulama yapabiliyorduk.

    Ama verilen bilgilerle bir türlü yönetim paneline giriş yapamıyorduk. İnnova’dan teknik danışmanımıza sorduğumuzda sizde giriş kodu yok mu dedi. Evet gelen epostada yoktu. Sonra Bileşim A.Ş.’den giriş kodunu istedik. Kullanıcı adı ve şifremizle kullanınca girebildik. Girince çok şaşırdık. Çünkü sadece girebiliyorduk ama içerde herhangi bir işlem yapamıyorduk. Bu süre zaafında günler su gibi geçmişti. Sanırım bir ay kadar oldu. Bildirince bir süre sonra panelde yetkiler açıldı.

    Sonra formlar, alış-veriş sistemimizin SSL ve sabit IP entegrasyonu gibi konuları bir hafta içinde hallettik. Site5.com‘un sabit IP vermek konusundaki hızına şaşırdık. sanırım 2 saat kadar sürdü. 3 gün sonrada tüm proxy IP’ye doğru cevap verir oldu. Bu konularda ettiği yardımdan dolayı Exa System‘den Aykut ARDIÇ’a çok teşekkürler. Bileşim A.Ş.’ye durumu bildirince 3D secure sisteminide istediğini bildirdi. Sistemi alıp bir kaç gün inceledim ama akabinde elimde yeterli döküman olmadığınıda farkettim. Bir hafta inceleme öğrenme süresinden sonra İnnova’ya yeniden döndük ve hem bize hem Bileşim A.Ş.’ye giden döküman verme yetkisi bizde yoktur maili ile mailimizi okurken Bileşim A.Ş.’den 3D secure entegrasyonu için ödkümanları almıştık.

    Hızla incelerken farkettik ki 3D secure sistemi visa ve master kart root serverlarına operatör gibi çalışan bankaların tüm kredi kartı işlemlerini düzenli şekilde root servera bildirmesi gibi bir özelliğe sahipti. Acaba visa/master bu sistemi bankalara şart koşarken bunu kasten mi istemişti ? Bir güvensizlik mi söz konusuydu onlar içinde. Garipsedik, üstünde durmak istemedik.

    Adeta bize piyangodan çıkan 3d secure sistemde Microsoft Tabanlı iPay sanal pos sistemi birleştiğinde inanılmaz bir yavaşlık olacağını tahmin etmek hiçte zor değildi. Zira Onlinenic.com‘da ortağım işlem yaptığında dakikalarca alış-veriş için bekliyor, browser yönlendirmesi şeklinde işleyen 3d secure sisteminde anne kızlık soyadından parçalar bile isteniyordu. Frame olarak görünen sisteme bakıp mecbur olduğumuzdan istemeyerek işlem yapıyorduk. Bu sistemin bir kaç yüz türk lirasını geçmeyecek bir alış veriş sitesinde cazip olmayacağı gün gibi aşikardı. Sistemde ayrıca alışverişler havada kaldığı için bir şekilde kredi kartı kaydı yapmakta gerekiyordu ki sağladığı güvenliği riskede çeviriyordu bizim için.

    Bütün bu gelişmeler sonunda bir şekilde anlaştık ve sistemi sağlayıp 3- 3,5 ay sonunda sistemi entegre edebildik. Aldığımız ücret mi ? Söyleyemeyeceğim kadar komik inanın. Zaten kar amaçlı değil girişim amaçlı yapmıştık işi. Ama yapmaz olsaydık keşke demedik değil.

    Sözün ve hikayenin özü Türkiye’de birşey geliştirmek zaten zor. Standartları oturmamış birşeyler geliştirmek daha zor. Vasıf, bilgi, emek, tecrübe isteyen bir işi yapmak çok çok daha zor. Ve bu sırada yeterli bilgiye, tecrübeye, insiyatife sahip olmayan insanlarla uğraşmak hayal edemeyeceğiniz kadar zor. Eğer bir iş için yola çıkıyorsanız bilin ki o koskoca binalı, gözünüzde son teknoloji kullanan şirketler hazır iş modellerini alıp yıllarca Türkiye’ye uyarlamakta zorluk çeken aslında buzdağının tam tersi şekilde duran geliştiriciye ve girişimciye hiçte kolaylık sağlamayan şirketler. Karşınıza çıkacak yüzlerce engel var. Hiç biride bu videodaki gibi yarım günüm gitti gibi komik söylemlere eş değil :)

    Şimdiden kolay gelsin, bu videodakileri on kat fazla yaşayacaksınız. Ben çeksem uzun metraj olurdu heralde, hatta bir üçleme rahatlıkla çıkartırım.

    ( Gerçi bütün bu işleri ben yaptım. Peki neden çoğul konuşuyorum çünkü kurumsal bir yapı altında yaptım, o yüzden diye kendimi kandırayım. )

    Share
     
    • Mehmet SOYLU 07:56 on 18 Aralık 2009 Permalink

      Bu yazıyı okuyup geçen günler içinde pek çok kişi benden yardım istedi. Hemen hemen hepsi aynı hikayeyi yaşamış, test sunucusunda işlem yapmak isterken IP numaraları banlanmış vs.

      Bugüne kadar durumu müşterimiz ASP sistem kullanarak çözdü sanıyordum. Bu sabah hesap işletim ücreti dönemi yılbaşından başlayacağından bankalardaki hesaplarımı kapatmak için şehir merkezine gittim. Çok erken gittiğimden eski müşterimizi de bir ziyaret edeyim dedim. Öğrendim ki ASP sistemde de bu iş olmamış. Sonunda ziraat bankası ( ya da innova) onlara bir ortak ödeme sayfası açmış ve işlemleri ordan yapar olmuşlar. Sitede kart kullandırma gibi önemli bir sorumluluktan kurtulmuşlar böylece. Tavsiyem sizde böyle bir talepte bulunarak işinize bakın.

c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
shift + esc
cancel