Bir süredir şehir dışında bulunmam nedeniyleyeni yazı ekleyemiyorum. Az kaldı yakında döneceğim, kusura bakmayın :)
December 4th, 2008 | Published in Genel konular
Bir süredir şehir dışında bulunmam nedeniyleyeni yazı ekleyemiyorum. Az kaldı yakında döneceğim, kusura bakmayın :)
October 11th, 2008 | Published in CodeIgniter, Kaynak, Php | 1 Comment
Geçtiğimiz hafta başladığım çeviri işinin ilk bölümünü tamamlamış bulunuyorum. Bu bölümde orjinal kılavuzun General Topics bölümünde yer alan tüm sayfalar ile Class Reference bölümündeki birkaç sayfanın çevirisi yer alıyor.
Bu kılavuz codeigniter.gen.tr’de de yayınlandığı için -fakat İngilizce olmasına rağmen- burada yayınlamak istemiyorum. Dileyen arkadaşlarım buraya tıklayarak bilgisayarına indirmek suretiyle kullanabilirler.
October 4th, 2008 | Published in Php, Soru&Cevap | 3 Comments
Merhabalar, uzunca bir süredir yazamıyorum kusura bakmayın yoğunluk işte. İş güç vesilesiyle Eylül başından beri İstanbul’da ikamet ediyorum ve Şubat ayına kadar böyle devam edecek. Bu süre içinde İstanbulda görüşmek isteyen varsa kose.onur et gmail nokta com adresime bir telefon numarası göndersin, buluşalım kaynaşalım.
Bundan önceki yazımda bahsettiğim yazı dizisine değişik bir boyut getirmek istiyorum. Daha doğrusu o yazının çizgisinin dışında bu sefer bir framework yani uygulama çatısı olan CodeIgniter’dan bahsedeceğim. O zaman haydi sorulara başlayalım.
CodeIgniter Nedir?
CodeIgniter PHP ile uygulama geliştiren yazılımcılar için bir Uygulama Çatısıdır. Kimi -benim gibi- programcının öcü gibi korktuğu, kiminin ise “başkasının yazdığı kod üzerinde çalışamadığı” için uzak durduğu birçok framework’tan sadece birisi (ama benim incelediğim tek çatı olduğu için en iyisi)
Bir tavsiye üzerine ilgimi çekmeyi başaran CodeIgniter hakkında Erhan benden çok çok erken davranıp sistem üzerine uzmanlaşmış, hatta Türkiye ayağının web sitesini bile açmış(lar) Düzeltme: Türkiye sitesini Erhan değil, Fatih Bazman açmış, Erhan CI hakkında bir grup oluşturmuş.
Bendeki bu eksikliği farketmemin ardından hemen Türkçe sitesini açıp Kullanım Kılavuzu’na bakmak istesem de, pek Türkçe sayfa bulamadım. Tabi eskiden olsa üzülürdüm ama artık hayvanlar gibi ingilizce bildiğimden dolayı hemen oturup çevirisine başladım ve Genel Başlıklar sütununun yarısına kadar olan bölümü çevirdim. Normalde çevrilmiş olanını bulsam o kadar yazıyı okumazdım ama çeviren kendiniz olunca mecburen tekrar tekrar okuyor, okudukça da ezberliyorsunuz mevzuyu : )
Nasıl Kurulur?
Önce CodeIgniter.com anasayfasındaki Download CodeIgniter bağlantısına tıklayarak gerekli dosyaları indirin ve sıkıştırılmış dosyayı proje klasörünüz içerisine açın. Karşınıza iki klasör, bir PHP ve bir HTML dökümanı çıkacak. User Guide adlı klasör gerekli dökümantasyonu ve System klasörü sistem dosyalarını içeriyor.
İşte bu kadar, kurulum için yapmanız gereken başka birşey yok.
Nasıl Kullanılır?
Çok basit kullanılır. Basitten kastım, PHP konusunda belli bir aşama katetmiş arkadaşlarım için gayet basit olacaktır. Ama object-oriented felan diyince bir adım geri atıyorsanız önce bu konuda biraz bilgi edinmenizi öneririm.
Nasıl kullanıldığına ilişkin daha fazla bilgiyi kendi sitesindeki Tutorials bölümünde yer alan iki adet videoyu izleyerek edinebilirsiniz. Yakında Türkçe kullanım kılavuzunun tamamına erişebileceğinizden dolayı heyecanı burada tüketmek istemiyorum : )
MVC Ne Peki?
Evet, bu tip uygulama çatılarında sık sık duyduğunuz veya duyacağınız bir kavramdır MVC. Açılımı Model + View + Controller olan MVC; veritabanı işlemleri, betik ve sunum aşamalarını birbirinden ayıran bir yaklaşım. Yani web sitenize bir talep geliyor, Controller bu talebi alıp Model ile birlikte gerekli veriyi hazırlıyor, hazırlanmış çıktı verisini içeren döküman olan View içerisinde ziyaretçiye sunuluyor. Hepsi bu.
Güzelliği ise View yani doğrudan tasarımı ilgilendiren dökümanlar içindeki betik çalışmalarını en aza indirmesi. Çünkü bu tip işler Controller dosyalarında yapılıyor ve sayfaya yazdırılması gereken işlenmiş veri Array ya da Object olarak View’a aktarılıyor. İşin içine Cache’de eklendimi tadından yenmez bir sistem ortaya çıkıyor.
Olayın asıl kafa karıştırması muhtemel kısmı ise Controller yapısı. Controller, esas bir controller sınıf çerçevesine yazılmış kendi controller sınıflarınızın toplamı da denebilir. Yani sistemi sınıflarınız ve onların içindeki fonksiyonlar ile oluşturmanız gerekiyor. Bunu yaparken de sistem kendi User Friendly URL’lerini kendi oluşturuluyor.
Ama Çatı Sonuçta
Demeyin sakın, o kadar sığ değil çünkü. Çatı derken kısıtlı bir arabirim ya da başkasının yazdığı fonksiyonlar topluluğu gelmesin aklınıza. Size sadece her projede özellikle ihtiyaç duyulan birçok konuda gerekli altyapıyı sunuyor. Altyapıda sunulan her türlü eklentiyi bir kerede yüklemiyor, ihtiyacınız olan yerde yükleyici fonksiyonu kullanıyorsunuz ve yükü siz belirliyorsunuz.
Plugin desteği ve sunduğu Helper dosyalarını geliştirebilme özelliği ise cabası. Yani çatı ancak sizin hayal edebildiğiniz kadar yukarıda, sizi hapsetmiyor.
August 30th, 2008 | Published in Kaynak, Soru&Cevap | 2 Comments
Soru-cevap şeklinde yeni bir yazı dizisine başlıyorum. Uzun uzun naralar atmaktansa belli sorulara cevap üretmek daha çok işime geliyor.
Bazen aşağıdaki gibi genel bir soruya verilen cevaplar olacağı gibi, programcılık konusunda teknik detaylara ilişkin çözümler de yazacağım. Buyrunuz;
Bir web geliştiricisi nasıl olunur?
Olunmaz, doğulur. Esasen çok kibir dolu bir söylem olsa da bugüne kadarki tecrübemle bundan kesinlikle eminim. Yeteneğiniz olmasa bile bir web tasarımcısı olabilirsiniz. Ama yeteneğiniz olmasa bile bir web geliştiricisi olduğunuzu ancak iddia edebilirsiniz. Her ne kadar iki grup için birden adına yetenek demiş olsam da geliştirici açısından yetenekten öte, mantıksal zekanızı ne kadar çok kullanabildiğinizle alakalı. Elbet mantıksal zeka değerinin ne kadar yüksek olduğu da önemli ama öyle olmasa bile, mevcut olanı tek bir sorun üzerine yoğunlaştırabilme yeteneği daha baskın olmalı.
Tabi bu soruya felsefi bir yaklaşımla verilen cevabı ancak cevaplayan anlayabilir. En açık şekilde, web geliştiricisi bir sistem inşa ederken inşa işleminden çok çözmesi gereken problemler yaratır. Zamanının %30′unu bu problemleri üretmek, %60′ını test ederek sorunu tespit etmek ve kalan %10′u da sorunu gidermek üzere kullanır. Yani asıl geliştirme zamanının %40′lık bir kısmında gelişir. Bu nedenledirki henüz profosyonelleşememiş bir geliştirici proje teslim sürelerini vaadettiği zamanın %60′ı oranda geciktirir.
Bu yolda atılacak ilk adım okumak, ingilizce öğrenmek ve ilgi alanlarını sabitlemektir. İyi bir araştırma süreci sonunda hangi platformun size faydalı olabileceğini farkedebilir ve gerekli bilgi birikimini sağlamak üzere harekete geçebilirsiniz. Kendim kullandığım için söylemiyorum ama Php ve Javascript öğrenirseniz ihya olursunuz :)
August 30th, 2008 | Published in Php, ajax | 6 Comments
Merhaba, Ajax-tr.com‘da yayınlanan bir makalemi video halinde yeniden hazırladım. Videoyu izlemeden önce makaleye şöyle bir göz gezdirirseniz daha faydalı olacaktır.
August 19th, 2008 | Published in Comet, Kaynak
Comet uzun zamandır yazmayı planladığım bir konu. Bundan bir süre önce vikipedide ilk kaydını oluşturup birkaç cümle çeviri ile anlatmaya çalıştım ama çeviriye sadık kalmak istediğimden pek anlaşılabilir olduğunu sanmıyorum. Bu nedenle 2008 sonu ve 2009 yılında büyük açılımlar yaratmasını beklediğim Comet hakkında birkaç satır da burda yazmak istedim.
Comet, ilk olarak birkaç yıldır var olan Lightstramer ile karşılaşmam ile birlikte dikkatimi çekmişti. Tabi o ilk karşılaştığımda henüz adına Comet dememişlerdi. Sistemi kavrayabilmek için birkaç gece harcadığımı ve hiçbirşey elde edemediğimi de çok iyi hatırlıyorum.
Daha sonra IBM developerWorks’de konuyla ilgili birçok araştırmanın yürütüldüğünü, Opera 9 ile birlikte Comet altyapısı için gerekli protokollerin hazırlandığını vs birçok şeyle karşılaştım. Ama işin garip tarafı benim vikipedide yazdıklarımın kopyaları dışında Türkçe pek birşey bulunmayışıdır. Yani ya bilen arkadaşlar kimseye çaktırmıyor ya da gerçekten kimse hala hiçbirşey bilmiyor.
Comet en basit anlamıyla, sunucunun herhangi bir talep olmadan, sürekli ya da belli bir süre açık tutulan bir bağlantı üzerinden, sadece geçerli değişkenlerde bir değişiklik olması durumunda cevap verebilmesi ve bu mantıkla geliştirilen uygulamalara verilen isimdir.
Yani bildiğimiz XHR sayesinde GET ya da POST metoduyla yapılan bir sorgunun sürekli canlı kaldığını hayal edin. Tıpkı düşük hızlı bağlantılarda 20-30 saniyede yüklenen bir internet sayfası gibi ama bekleme esnasında yüklenen birşey yok. Taki sunucu tarafında, örneğin bir veritabanında gerçekleşen bir güncelleme ile değişiklik tespit edilene kadar bu bağlantı canlı kalıyor. Değişiklik tespit edildiği anda cevap veriliyor ve tekrar bir bağlantı oluşturuluyor. Klasik talep-cevap mantığının ötesinde, talep-takip-cevap sistemiyle çalışıyor.
Şu an bazı çevrimiçi anlık mesajlaşma servisleri -meebo gibi- şu an bu sistemi kullanıyor. Daha iyi kavrayabilmek için Firebug, Firefox ve Meebo üçlemesini kullanabilir, XHR sorgularını takip edebilirsiniz.
Son not: ajax-tr’de yayınlanan Ajax ve Php ile Komple Proje Yönetimi başlıklı makalemi az biraz yenileyerek ve video halinde yeniden yayınlayacağım. Şu an vimeo‘ya avi dosyasını yüklüyorum ve oldukça zaman alıyor. Kendi sesimi ve yabancı terimleri telaffuz etmeyi hiç sevmiyorum ve önemsemiyorum. Ajax’ı ajaks, Php’yi pieyçpi ve CSS’i cieses diye okuyorum ve telaffuzları yargılayan insanları hiç tasvip etmiyorum.
August 12th, 2008 | Published in Kaynak
İlk yazımda da bahsettiğim üzere onurkose.com’da paylaşmaktan zevk duyduğum bilgilerime yer vermek istiyorum. Ama tutup “JavaScript’e başlamak” diye bir yazıdizisi de hazırlamamı beklemeyin benden. Bu aralar en çok merak ettiğim konu video anlatımlar ziyaretçiyi ne kadar etkiliyor? Volkan Görgülü’nin Web Deneyimlerinde oldukça güzel bir başarı yakaladığını görebiliyorum ama bu benim için de bir kriter olabilir mi? Yani sorun izlenip izlenmeme kaygısı değil, insanların önüne açtığınız ufuklar, bir sorunun çözümü için anlattığınız yöntemler onu ne kadar ileri götürebilirki?
İşte beni düşündüren bu sorulara cevap olarak yeni değil ama, alışılagelmiş video ders şekillerinden farklı olarak, halihazırda kullanılan çeşitli uygulamaların yeniden yorumlanmalarına ilişkin bir seri gösterim hazırlığı içerisindeyim.
Ayrıca hayranlıkla takip ettiğim Onur Öztaşkıran Monofactor‘ü yenilemiş. Aslında baya olmuş bunu yapalı ama yazacak yer bulamadığımdan şimdi fırsatı bulmuşken yazayım dedim.
August 11th, 2008 | Published in Genel konular
Eğer Türkiye’de çalışan bir programcıysanız Amerika’da yaşayan bir programcıya göre daha az maaş ve daha az bilgiyle büyük işler başarmaya çalışıyorsunuz demektir. Daha az bilgi ile derken kimseyi hakir görmüyorum, sakın kızmayın. Yaşadığımız Türkçe kaynak sıkıntısı ve onun dolaylı değil, en büyük etkisi bilgi yetersizliğinden bahsediyorum.
Diyelimki 15 yaşında bir gençsiniz, internete bayılıyorsunuz. Görkemli veya komplike sistemlere sahip siteler kanınızı kaynatıyor, bir tane de siz üretmek veya tasarlamak istiyorsunuz. Şu saydıklarım sizi bu arzunuz doğrultusunda yönlendirebilir;
Üçüncü maddede bahsettiğim konu aslında pek yazının anafikrine uymasa da sosyal mesaj verme dürtülerim yüzünden sonradan eklendi. Konumuzun anafikrine hizmet eden ilk iki madde hakkında -bu yazı için- daha fazla söylenecek söz olduğu için üçüncü maddeyi başka bir yazıda açmak istiyorum.
Şayet bir grafiker olmak istiyorsanız öncelikle yeteneğinizin olması gerekiyor. “Olunmaz, doğulur” da demek istemiyorum ama, iki-üç yıl amatör olarak çalışmalar ürettikten sonra, yeni eserlerinizle saygıdeğer kesimlerden övgüler alamıyorsanız pek te yetenekli sayılmadığınız aşikardır. Yeteneğin ardından grafikerlik için en iyi yöntem olduğuna inandığım usta-çırak ilişkisi içinde bir çalışma ortamına ihtiyacınız var. Size kızacak, eleştirecek ve taktir edecek bir ustanızın olması bu fırında pişerken yanmamanızı, yenirken mideye oturmamanızı sağlar.
Eğer programcı olmak, sistemler tasarlamak ve grafikerlerden daha saygın olmak istiyorsanız :p yolunuz daha çetin. Mantıksal süreçleri iyi tasarlayabilmeniz, her ihtimali kestirebilmeniz ve sıkılmadan saatlerce sayfalar dolu metinler içine gömülebilmeniz gerekiyor. Tabi bunların yanında gözlerinizin sağlam, bileklerinizin kalın olmasını da söylemeden geçmeyeyim.
Program yazmak, özellikle de internet üzerinde, web sayfası olarak çalışan sistemler kurmak yoğun ve birden çok konuda derin bilgi gerektiren bir iştir. Çalıştığınız platform, veritabanı modeli, sunucu yapısı, müşteri talepleri, altyapı zenginliği, görsele uyumluluk derken kendinizi koskoca bir bilgi dağının yamaçlarında tırmanırken bulursunuz. Çoğu zaman, daha önce hiç bilmediğiniz bir yapıyı, sırf yürüttüğünüz projede kullanmak zorunda olduğunuz için gecelerce öğrenmek için uğraşır ve harap olmuş beyninizin bir köşesine sıkıştırırsınız, bir daha ne zaman işinize yarayacağını bilmeyerek.
İşte sıkıntı, tüm bu öğrenme süreçlerinde sizi doğruya ya da yanlışa yönlendiren ve sonucunu zaman kaybı ve gereksiz bilgi ile alacağınız kaynaklar ve bu kaynaklara erişim noktasında önümüze çıkıyor. Bugün bilgi merkezi haline gelen yerler ne yazıkki üniversite web siteleri yerine forumlar olmuş durumda. Bir programcı adayının birilerinden talep etmeden, merak ettiği bir konudaki kendi dilindeki bilgiye erişmesi düşük bir olasılık.
Fakat anlık olarak durmadan yeni fikirlerin üretildiği programcılık konusunda birilerinin Türkçe kaynak hazırlamasını beklerseniz, yabancı meslektaşlarımızla en az bir yıllık farkla işlerinizi yürütebilirsiniz. Bir makaleyi İngilizce yazılmış diye öteleyen biriyseniz, öğrenmeniz gereken şey ilgilendiğiniz programlama dili değil, öncelikle İngilizce olmalıdır.
August 10th, 2008 | Published in Kategorilendirilmemiş | 3 Comments
Yeniden merhaba. Benim adım Onur Köse, 22 yaşında ve bağımsız çalışan bir programcıyım. Beni sadece internet yoluyla tanıyan arkadaşlarımın sayısı, gerçek dünyada birebir tanıyanlardan oldukça fazla. Bu nedenle kimisi onur, kimisi nothingrows takma adıyla beni anımsayabilirler. Uzun süredir yayını kapalı olan nothingrows.net’te bir süre Ajax, PHP ve JavaScript üzerine kapsamsız yazılar yazdım. Fakat iş yoğunluğu sebebiyle bugüne kadar ciddi bir blog girişimim olmadı.
Nitekim artık yeterli zamanı yaratabileceğim düşüncesiyle, kendi adımı taşıyan bir alan adı altında tekrar yazmaya başlamak istedim. Çünkü bildiğim, düşündüğüm ve gördüğüm şeyleri onlara ilgi duyan insanlarla paylaşmaktan duyduğum sevinci sanal hayatın dışında pek az başka yerde bulabiliyorum. İşte habire yeniden merhaba ile başlayan yazılarımın asıl sebebi buradan geliyor.
Daha önce olduğu gibi, onurkose.com’da da programcılık konusunda yazılar yazmak istiyorum. PHP, JavaScript ve Ajax ana başlıkları etrafında yeni açılan servisler ve sektörde yaşanan gelişmeler hakkında çapım kadar atıp tutma hakkımı da kullanacağım. Tabi otuzbin blogda birden yayınlanan ve ekleyecek bir iki cümle bulamadığım bir haberi de alıp kimseye yeni bir başlık altında sunmayacağım.
Kendi hakkımda yazabileceğim diğer birkaç satır ise şu şekilde;
Bahsettiğim alanlarda hala öğrenecek yeni birşeyler bulma ümidiniz varsa beni rss okuyucunuza ya da sık kullanılanlar listenize ekleyebilirsiniz. Bunu hemen unutmadan yaparsanız, altı ay sonra tesadüfen biryerden ulaşıp ta “tüh be bak onca güzel şey yazmış, benim anca haberim oluyor” yakınmalarından kurtulmuş olursunuz :) Zira kendimden biliyorum hep böyle oluyor.
Geçtiğimiz hafta başladığım çeviri işinin ilk bölümünü tamamlamış bulunuyorum. Bu bölümde orjinal kılavuzun General Topics bölümünde yer alan tüm sayfalar ile Class Reference bölümündeki birkaç sayfanın çevirisi yer alıyor.
Bu kılavuz codeigniter.gen.tr’de de yayınlandığı için -fakat İngilizce olmasına rağmen- burada yayınlamak istemiyorum. Dileyen arkadaşlarım buraya tıklayarak bilgisayarına indirmek suretiyle kullanabilirler.
Merhabalar, uzunca bir süredir yazamıyorum kusura bakmayın yoğunluk işte. İş güç vesilesiyle Eylül başından beri İstanbul’da ikamet ediyorum ve Şubat ayına kadar böyle devam edecek. Bu süre içinde İstanbulda görüşmek isteyen varsa kose.onur et gmail nokta com adresime bir telefon numarası göndersin, buluşalım kaynaşalım.
Bundan önceki yazımda bahsettiğim yazı dizisine değişik bir boyut getirmek istiyorum. Daha [...]
Soru-cevap şeklinde yeni bir yazı dizisine başlıyorum. Uzun uzun naralar atmaktansa belli sorulara cevap üretmek daha çok işime geliyor.
Bazen aşağıdaki gibi genel bir soruya verilen cevaplar olacağı gibi, programcılık konusunda teknik detaylara ilişkin çözümler de yazacağım. Buyrunuz;
Bir web geliştiricisi nasıl olunur?
Olunmaz, doğulur. Esasen çok kibir dolu bir söylem olsa da bugüne kadarki tecrübemle bundan kesinlikle [...]
Merhaba, Ajax-tr.com‘da yayınlanan bir makalemi video halinde yeniden hazırladım. Videoyu izlemeden önce makaleye şöyle bir göz gezdirirseniz daha faydalı olacaktır.
Comet uzun zamandır yazmayı planladığım bir konu. Bundan bir süre önce vikipedide ilk kaydını oluşturup birkaç cümle çeviri ile anlatmaya çalıştım ama çeviriye sadık kalmak istediğimden pek anlaşılabilir olduğunu sanmıyorum. Bu nedenle 2008 sonu ve 2009 yılında büyük açılımlar yaratmasını beklediğim Comet hakkında birkaç satır da burda yazmak istedim.
Comet, ilk olarak birkaç yıldır var olan [...]
İlk yazımda da bahsettiğim üzere onurkose.com’da paylaşmaktan zevk duyduğum bilgilerime yer vermek istiyorum. Ama tutup “JavaScript’e başlamak” diye bir yazıdizisi de hazırlamamı beklemeyin benden. Bu aralar en çok merak ettiğim konu video anlatımlar ziyaretçiyi ne kadar etkiliyor? Volkan Görgülü’nin Web Deneyimlerinde oldukça güzel bir başarı yakaladığını görebiliyorum ama bu benim için de bir kriter olabilir [...]
Just another coder around the world.