Monthly Archives: Ağustos 2012

Programa Dilleri ve Çatıları

Html Formları Ajax Form’a Dönüştürmek

Evde kod yazmayı özlemişim. Arada işi gücü bırakıp birşeyler yazmak keyif verici.
***
AjaxForm, dilediğiniz html form objesinin basitce ajax form olarak çalışmasını sağlar.
Kütüphaneyi aşağıdaki github reposundan temin edebilirsiniz :
https://github.com/ibrahimgunduz34/ajaxForm

Örnek Kullanım :
Sayfamıza bir adet form ve içine birkaç alan ve submit butonu ekliyoruz.

<form action="mypostpage.php" method="POST" class="ajax-form">
  <input type="text" name="field1" />
  <input type="submit" value="send" />
</form>

Formumuzu ajax form a dönüştürüyoruz.

$('.ajax-form').ajaxForm();

Olaylar:
Formun submit edilmesi öncesi ve sonrası olaylarını aşağıdaki gibi yakalayabilirsiniz :

$('.ajax-form').ajaxForm({
  beforeSend : function() {
    //formun gonderilmesi oncesinde yapmak 
    // istediklerinizi bu metoda yazin.
  },
  /**
  * form verisinin iletimi sonlandiginda cagirilir.
  * @param string data 
  * @param string status [success|fail]
  */
  afterSend : function(data, status) {
    //form verisi iletildiginde yapilmasini 
    //istediklerinizi bu metoda yazin.
  }
});
Genel

Rocket Internet’ de Son Gün

Bugün itibarıyla hepbirlikte güzel bir iş deneyiminin son gününü yaşadık. Şahsım adına 1 yıl zarfında Türkiye’nin önde gelen lider elektronik ticaret şirketleri, bankaları ve yazılım şirketlerinden gelen ve birdaha bir araya gelmesi çok güç yazılım geliştiricileri, test uzmanları, sistem mühendisleri ve yöneticilerinden oluşan kocaman bir ekibin parçası olma mutluluğu ve gururunu yaşadım. Halen çeşitli mecralarda atıp tutan geliştirici/girişimci dostlarımız version kontrol sistemi, memcache, solr, nginx gibi teknolojileri bırakın kullanmayı; belki birçoğunun adını dahi duymamışken bizler zaman zaman şikayet etmemize karşın TR standartlarının oldukça üzerinde geliştirme ve test süreçleriyle ve teknolojileriyle projelerimizi geliştirdik. Huzurlanırınızda bize bu rahat ve keyifli ortamda bu değerli ekiple çalışma fırsatını sağlayan Onder Gogebakan a; geliştirme süreçlerini olabildiğince iyileştirmeye gayret eden @Kadir Pekel ve @Deniz Dizman’ a; yazdığımız kodları test ederek developerları kimi zaman uçurumun kıyısından döndüren ve deploymentların zaiyatsız olmasını sağlayan Özgür Birol ve onun nezdinde tüm QA ekibine; deployment ları gerçekleştiren ve sunucuların non-stop ayakta kalmasını sağlayan değerli System Administration ekibine ve omuz omuza çalıştığımız desteklerini esirgemeyen tüm değerli Developer dostlarıma sonsuz teşekkür ederim.

Sürüm Yönetimi

Git Çıktılarının Renklendirilmesi

Sabah sabah bilgisayarımın işletim sistemini başlatamaması gibi güzel bir sürprizle güne başladım. Uzun uğraşlar sonucu kurtarmayı başaramayınca mecburen yeniden kurmak zorunda kaldım. Uzun süredir aynı işletim sistemiyle çalışınca insan haliyle başlangıçta neyi nasıl yaptığını unutabiliyor. Dolayısıyla google yardırmaya başlıyorsunuz.

Bundan mütevellit bugün böyle kısa kısa postlar görmeniz muhtemeldir :)

***

Git çıktısını renklendirmek için aşağıdaki komutu çalıştırın:

$ git config --global --add color.ui true
Genel

Ubuntu 12.04 üzerine Oracle Java 7 kurulumu

Bir terminal penceresi açın, java reposunu register eden ve kurulumu başlatan aşağıdaki komutları çalıştırın.

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
Genel

Daya Geç Yönelimli Programlama (DGOP)

DGO programlama, bilgisayar programlama eyleminin avamın eline düşüp, OOP nin popülaritesini arttırmasıyla ayyuka çıkmış acımasız bir programlama yaklaşımıdır.

DGO yaklaşımının temel özellikleri sırasıyla :

* Kısa vadede günü kurtarır, geliştiricisine pirim yaptırır.
* Sınıflar ve metodlar arasında mantık ilişkisi yoktur.
* Sınıf, metod ve değişken isimlendirme sistemi tamamen rastlantısaldır. Yapılan iş ve işi icra eden metodun ismi arasında herhangibir mantıksal ilişki bulunmaz.
* Sınıfların veya metodların kendisini ilgilendiren/ilgilendirmeyen birden fazla sorumluluğu bulunabilir.
* İç içe, peş peşe yazılan döngüler DGO yaklaşımının vazgeçilmezlerindendir.
* Kodlama süreci at gözlüğü takılmışcasına gerçekleştiğinden, bağımlılık, ilişki gibi kavramlar DGO da gözardı edilir.
* Ömrü kısa, geliştirilmesi imkansız, yeniden kullanılabilmesi mümkün olmayan kod üretimine olanak sağlar.
* Bellek yönetimi, performans, ölçeklenebilirlik, yeniden kullanılabilirlik gibi kavramlar DGO da gözardı edilir.
* Kodlama standardı developer a ve zamana bağlı olarak değişebilir. Aynı projede hatta kimi zaman aynı dosyada farklı girinti ve blok kullanım biçimlerine rastlamak mümkündür.

DGO yaklaşımında süreç, CPD (Copy/Paste Developer) nin gelen taleplere hızlı ve plansız çözümler üretip, çöpe dönen kodu başka bir developer ın refactor etmesi şeklinde devam eder.

Programa Dilleri ve Çatıları

Kredi Kartı Hareketlerini Sorgulamak İçin Basit Bir Kütüphane

Yakın geçmişte iade konusuyla ilgili başımızdan geçen bir olay nedeniyle iade öncesinde bankayla aramızda mütabakat yapma kararı aldık. Bu işle uğraşırken aşağıdan temin edebileceğiniz PHP kütüphanesini geliştirdim. Umarım birilerinin işine yarar.

Aşağıdaki github deposundan kütüphanenin kaynak kodlarına ulaşabilirsiniz :
https://github.com/ibrahimgunduz34/CcQueryTool

Kütüphane özetle, belirli bir siparişin history datasını banakadan isteyerek dönen veriyi işler ve size bu siparişle ilgili toplam ödenen, iade edilen ve balans verilerini döner.

Kütüphanem Türkiye’deki bankalara sanal pos servisi veren Est, Posnet ve Gvp altyapılarını destekliyor. Sizler de bu kütüphaneyi para iadesi öncesinde mütabakat amacıyla veya banka posunu uygulama katmanında test etmek için kullanabilirsiniz.

Genel

PHP Developer Maaşları

Anıl Özselginden alıntıdır:

Arkadaşlar php yazılımcılarının maaşları çok değişken ve bazı arkadaşlarımız ciddi düşük fiyatlara çalışıyorlar fakat haberleri yok. Aşağıdaki anketi toplam 15 saniyenizi ayırarak doldurabilir misiniz. Bunun kendi değerimizi öğrenmemiz açısından ciddi önemi olduğunu düşünüyorum.

https://docs.google.com/spreadsheet/viewform?formkey=dFdtbTU1d2RnMkVZdkEtZmprdzVzT3c6MQ