Berker Peksağ.

13 Haziran 2010, Pazar;

Kohana'ya katkıda bulunmak için geliştirme ortamının hazırlanması

Saat: 22:20:18, Programlama

Kohana, geliştirilmesine CodeIgniter fork'u olarak başlanıp 3.x versiyonuyla beraber en baştan yazılan popüler bir PHP framework'üdür.

Bu yazıda, Kohana projesine katkıka bulunmak için bir geliştime ortamının hazırlanmasını anlatacağım.

Yazıyı, temel seviyede Git ve GNU/Linux bilginizin olduğunu varsayarak hazırladım.

Kohana, Github üzerinden geliştiriliyor. Bundan sonra sık sık kullanacağımız issue list ise Kohana'nın kendi web sitesinde görülebilir.

İlk iş olarak Kohana için bir klasör oluşturup, Git'i aktive edelim:

mkdir kohana/
git init

kohana/ klasörünü yazdığımız kodları uygulama üzerinde denemek/geliştirmek gibi amaçlar için kullanacağız.

Şimdi asıl geliştirme yapacağımız çekirdek kodları eklemeye geldi. Devam etmeden önce, Github hesabınızdan github.com/kohana/core projesini fork etmelisiniz.

Github üzerinde fork'unuzu oluşturduktan sonra, bu depoyu klonlayacağız:

git clone git@github.com:berkerpeksag/core.git system

Burada, göreceğiniz üzere sizin forkunuzunu klonladık. Şimdi, ana depodaki güncellemeleri çekip, bizim güncellemelerimizle birleştirmek, kısacası depoyu güncel tutmak için hayati öneme sahip remote ayarlarını yapacağız:

git remote add upstream git://github.com/kohana/core.git
git fetch upstream

Eğer her şey yolunda gittiyse, aşağıdaki gibi bir çıktıyla karşılaşmalısınız:

berkerpeksag@berkerpeksag:/var/www/kohana/system$ git fetch upstream
From git://github.com/kohana/core

* [new branch] inline_route_regex -> upstream/inline_route_regex
* [new branch] master -> upstream/master
* [new branch] testing -> upstream/testing
* [new branch] text_binary -> upstream/text_binary
* [new branch] text_number -> upstream/text_number
* [new branch] unstable -> upstream/unstable

Gördüğünüz gibi tüm branchler oluşturuldu. Şimdi Git index'ini güncelleyip değişiklikleri commit edebiliriz:

git add .
git commit -m “Cekirdek kodlari eklendi.”

Asıl işi yaptıktan sonra sırada varsayılan Kohana klasör yapısını oluşturacağız. Çoğu Kohana projesinin klasör yapısı aşağıdaki gibidir.

application/
application/cache
application/config
application/views
application/logs
application/classes
application/classes/model
application/classes/controller

Sırasıyla klasörlerimizi oluşturalım:

mkdir -p application/classes/{controller,model}
mkdir -p application/{config,views}

cache/ ve logs/ klasörlerine yazma izni verelim:

mkdir -m 0777 -p application/{cache,logs}

Yine herhangi bir hata almazsanız klasör yapısı aşağıdaki gibi olacaktır. Test etmek için:

berkerpeksag@berkerpeksag:/var/www/kohana$ find application/
application/
application/cache
application/config
application/views
application/logs
application/classes
application/classes/model
application/classes/controller

cache/ ve logs/ klasörleri aksi belirtilmediği sürece çalışma zamanında çeşitli dosyalar oluşturacaklardır. Geliştirme süresince bu dosyalara Git'in ihtiyacı olmayacağı için bunları gözmezlik gelmesini söylemeliyiz:

touch .gitignore
sudo gedit .gitignore

İçerik olarak aşağıdaki şekilde doldurup kaydedip, kapatalım:

application/cache/*
application/logs/*

Şimdi proje için gerekli diğer dosyaları indirelim:

wget http://github.com/kohana/kohana/raw/master/index.php
wget http://github.com/kohana/kohana/raw/master/application/bootstrap.php -O application/bootstrap.php
wget http://github.com/kohana/kohana/raw/master/application/classes/controller/welcome.php -O application/classes/controller/welcome.php
wget http://github.com/kohana/kohana/raw/master/example.htaccess -O .htaccess

Evet, işimiz bitti ve değişiklikleri Git'e bildirip commit edebiliriz:

git add .
git commit -m “Klasor yapisi olusturuldu.”

Artık, application/bootstrap dosyasından gerekli ayarları yapıp, projeye katkıda bulunmaya başlayabilirsiniz.

Eşleme

Geliştirme süresince, kendi kodunuzu ana proje ile sürekli eş tutmanız gerekecek. Bunun için aşağıdaki bash betiğini kullanabilirsiniz:

Kullanmak için:

sudo chmod +x sync.sh

komutunu uygulamanız yeterli.

 

1 yorum yapılmış.


05 Haziran 2010, Cumartesi;

adb devices

Saat: 00:00:35, Android

Google Nexus One'ımı kurcalama serüvenim devam ediyor. Yardımlarından ötürü Murat Koç'a teşekkür etmeden geçmek olmaz :) Kurcalarken yaşadığım sorunları ve çözümlerini küçük notlar halinde yazacağım.

Ubuntu GNU/Linux üzerinde Android SDK'ini kurduktan sonra, adb devices komutunu çalıştırdığımda aşağıdaki hatayı aldım.

berkerpeksag@berkerpeksag:~/android/android-sdk-linux_86/tools$ adb devices
List of devices attached
????????????    no permissions

Sebebini yetki problemi olduğunu düşündüm ama yine de küçük bir araştırma yaptım. Aşağıdaki şekilde root yetkisiyle denediğimde sorunsuzca cihazımı görüntüleyebildim.

berkerpeksag@berkerpeksag:~/android/android-sdk-linux_86/tools$ adb kill-server
berkerpeksag@berkerpeksag:~/android/android-sdk-linux_86/tools$ sudo ./adb start-server
* daemon not running. starting it now *
* daemon started successfully *
berkerpeksag@berkerpeksag:~/android/android-sdk-linux_86/tools$ adb devices
List of devices attached
HT***********    device

Yorum yapılmamış.


14 Nisan 2010, Çarşamba;

Google Buzz Bookmarklet

Saat: 00:07:40, Programlama

Google Buzz için bir bookmarklet hazırladım.

Google Buzz

Yorum yapılmamış.


03 Mart 2010, Çarşamba;

Yeni kitaplar

Saat: 17:10:15, Kitap

Uzun süredir ertelediğim teknik kitap alma işini nihayet hallettim ve aşağıdakileri aldım. Gelelim ilk görüşlerime:

Version Control with Git: Powerful Tools and Techniques for Collaborative Software Development
Git geliştiricilerinden Jon Loeliger'ın kitabı. Pro Git arasında kararsız kalıp, epey yorum okuduktan sonra almaya karar verdim. Pro Git'in ücretsiz versiyonunu da okuyup satın alacağım büyük ihtimalle. Özellikle Subversion'dan Git kullanmaya başlayanlar için Git'in dağıtık mimarisini çok güzel açıklıyor kitap.

Hadoop: The Definitive Guide
Apache Hadoop
projesinin geliştiricilerinden Tom White'ın kitabı. FriendFeed'de Berk D. Demir'in tavsiyesi üzerine aldım. Zaten Hadoop üzerine pek fazla kitap yok. Henüz ilk iki bölümü tamamladım ve oldukça açıklayıcı bir kitap olduğunu söyleyebilirim rahatlıkla. Eğer benim gibi başlangıç düzeyinde teorik bilginiz varsa, kitapla beraber Wikipedia ve Google'ı kullanarak kısa sürede "temel" bilgi edinebilirsiniz.

JavaScript: The Good Parts
Douglas Crockford
amcanın kitabını duymayan yoktur herhalde. Daha önce korsanlık yapıp e-book versiyonunu okumuştum. "Emeğe saygı kardeş +rep" deyip orijinalini de aldım :) YDN Theater'daki sunumlarını izlediyseniz ve ortalamanın biraz üzerinde JavaScript bilginiz varsa çok yeni şeyler anlatmadığını göreceksiniz. Yine de her şekilde kitaplığınızda bulunması gereken güzel bir kitap.

Pro JavaScript Design Patterns
Web günlüğünü zevkle takip ettiğim Dustin Diaz'ın Ross Harmes ile beraber yazdığı kitabı. Scope, closure gibi kavramlardan haberdar değilseniz kitaba dalmadan önce temel JavaScript bilgisine sahip olmanızı tavsiye ederim. Aksi takdirde kitaptan istediğiniz verimi alamayabilirsiniz.

Object-Oriented JavaScript: Create scalable, reusable high-quality JavaScript applications and libraries
Stoyan Stefanov'un kitabı hakkında çok fazla basite inerek anlattığına dair eleştiriler var. JavaScript'le ilgilenip, kitabı almış geliştiriclerin çoğunun zaten bildiği şeyleri tekrar tekrar okumak bazen rahatsızlık verse de çok da göze batacak bir şey değil. Üst düzen JavaScript bilginiz olduğunu düşünseniz de ilk iki bölümü dikkatli okumanızı tavsiye ederim. JavaScript konulu üç kitap içerisinde, fazla seviye ayrımına girmeden tavsiye edebileceğim yegane kitap budur diyebilirim rahatlıkla. Tabii bu başlangıç seviyesindekilere önerdiğim anlamına gelmesin :)

Coders at Work
Sıra geldi en ilginç ve eğlenceli kitaba. Practical Common Lisp'in yazarı Peter Seibel, bilgisayar dünyasına yön vermiş gurularla sohbet ediyor; programcılığa nasıl başladıklarını, önemli kararları nasıl aldıkları gibi sorular soruyor. Yanıtlar çok ilginç. Mesela çoğunluğu programcılığa BASIC ile başlamışlar; Lisp ve Emacs gurularından Jamie Zawinski aynı zamanda gece kulübü sahibiymiş :) Kısıtlı İngilizceniz bile olsa, küçük bir sözlük yardımıyla okumanızı kesinlikle tavsiye ediyorum. Bu arada, muhtemelen serinin devam kitapları da gelecektir. Zira epey eksik üstad var :) Kim bilir belki Paul Graham'ın Hackers & Painters kitabı gibi Türkçeye de çevirilir.

Son olarak, düzenli olarak okumasam da boş zamanlarımda devam ettiğim okuyabileceğiniz özgür kitapları da verip, 2010'un ilk -umarım son olmaz!- kitap girdisini bitiriyorum :)

Okuduğum özgür kitaplar

 

3 yorum yapılmış.


25 Şubat 2010, Perşembe;

Türkçe Python Kitabı

Saat: 10:50:51, Kitap

Türkiye'de Python ile ilgilenenlerin yakından tanıdığı Firat ÖZGÜL(istihza)'ün Python kitabı nihayet -orijinal olarak- çıkıyormuş. Daha önceki talihsiz olayın ardından böyle bir kitabın çıkması sevindirici. En azından orijinal içeriğe değer verildiğini görüp mutlu oluyorum.

Küçük bir not: Kitabın kapağı hazırlanırken, benim gibi yılan fobisi olan insanlar da dikkate alınsa çok güzel olurmuş. En azından O'Reilly'nin Python kitaplarındaki gibi bir görsel kullanılabilirdi. Kapağı ilk gördüğümde monitör karşısında şekilden şekile girdim :)

1 yorum yapılmış.


Etiket bulutu;


Kategoriler;


Lab;


Ne yapıyorum? (twitter)

 

Son yorumlar


Sık kullanılanlar


Projeler


Takip ettiklerim


En son dinlediklerim (last.fm)

 

(c) Berker PEKSAĞ. 2004-2009

Yayımlanan yazılar, kaynak gösterildiği müddetçe kullanılabilir.
Yapılan yorumların sorumluluğu yazarına aittir.