<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>m.ozan.hazer</title>
	<atom:link href="http://www.huysuzadam.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.huysuzadam.com</link>
	<description>Web teknolojileri hakkında aklımdakileri döktürdüğüm rahatlama alanım...</description>
	<lastBuildDate>Mon, 25 May 2009 07:37:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MySQL türkçe desteği: Collation ve character set nedir?</title>
		<link>http://www.huysuzadam.com/2009/05/23/mysql-turkce-destegi-collation-ve-character-set-nedir/</link>
		<comments>http://www.huysuzadam.com/2009/05/23/mysql-turkce-destegi-collation-ve-character-set-nedir/#comments</comments>
		<pubDate>Sat, 23 May 2009 10:52:33 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/?p=252</guid>
		<description><![CDATA[MySQL 4.1&#8242;den itibaren türkçe karakter işi karıştı. &#8220;SET NAMES latin5&#8243; ile çözdük bu problemi gerçi ama yine de sistemin nasıl çalıştığını bilmezseniz sorun yaşayabilirsiniz. O yüzden MySQL&#8217;in karakter seti ve collation hakkında birşeyler yazayım istedim.
Tanımlar
Konuyu kavramak için önce tanımları ele alalım. Bilmemiz gereken iki tanım var: &#8220;Character Set&#8221; ve &#8220;Collation&#8221; 
Character Set (Karakter Seti)
Adından anlayabileceğiniz [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL 4.1&#8242;den itibaren türkçe karakter işi karıştı. &#8220;SET NAMES latin5&#8243; ile çözdük bu problemi gerçi ama yine de sistemin nasıl çalıştığını bilmezseniz sorun yaşayabilirsiniz. O yüzden MySQL&#8217;in karakter seti ve collation hakkında birşeyler yazayım istedim.</p>
<h2>Tanımlar</h2>
<p>Konuyu kavramak için önce tanımları ele alalım. Bilmemiz gereken iki tanım var: &#8220;Character Set&#8221; ve &#8220;Collation&#8221; </p>
<p><strong>Character Set (Karakter Seti)</strong><br />
Adından anlayabileceğiniz gibi desteklenen karakterleri kast ediyoruz. Örneğin latin5 karakter setindeki &#8220;ı&#8221; harfinin ASCII kodu latin1 karakter setindeki &yacute; harfi ile aynıdır. Dolayısıyla türkçe bir dokümanı latin1 olarak gösterirseniz tüm &#8216;ı&#8217; harfleri &#8216;&yacute;&#8217; olarak gösterilecektir.</p>
<p>Farklı diller aynı karakter setlerine sahip olabilir, örneğin latin1 seti almanca, ispanyolca, ingilizce, isveçce gibi dilleri kapsar.</p>
<p>Notlar:<br />
- Character set, charset, code page gibi isimleri de vardır.<br />
- latin1: ISO-8859-1 ve windows-1252 ile aynıdır.<br />
- latin5: ISO-8859-9 ve windows-1254 ile aynıdır.  </p>
<p><strong>Collation (koleyşın)</strong><br />
İki karakterin karşılaştırılmasında kullanılır. Pratikte bu tablo alanlarını sorgularken ve sıralamalarda işe yarar:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SET</span> names latin5;
<span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> deneme <span style="color: #993333; font-weight: bold;">WHERE</span> isim <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'Çağrı'</span>;
<span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #66cc66;">*</span> <span style="color: #993333; font-weight: bold;">FROM</span> deneme <span style="color: #993333; font-weight: bold;">ORDER</span> <span style="color: #993333; font-weight: bold;">BY</span> isim;</pre></div></div>

<p>Yukarıdaki sorguların sonucu <code>isim</code> alanının collation&#8217;ına bağlıdır.</p>
<p>Örnekle açıklamak istersek, almancada da &#8220;ü&#8221; harfi var türkçede de, isveçcede de&#8230; Ama bu harflerin alfabedeki yeri dile göre değişiyor yani collation&#8217;ı latin1_swedish_ci seçip sıralama yaparsanız ü başka yerde, latin1_german1_ci seçerseniz başka yerde yer alır. Ya da latin1_german1_ci seçerseniz aramalarda &#8216;ä&#8217; ile &#8216;a&#8217; aynı kabul edilirken latin1_german2_ci seçerseniz farklı kabul edilir.</p>
<p>Collation altçizgiyle ( _ işareti) parçalara ayırırsak ilk kısım karakterin ait olduğu dil ailesini, ikinci kısım dili, üçüncü kısım ise karşılaştırma şeklini ifade eder. </p>
<p>Örneğin <code>latin1_swedish_ci</code> dediğimiz zaman &#8220;latin1&#8243; ailesinden &#8220;isveçce&#8221; dilini büyük-küçük harf ayrımı olmadan sırala demek istiyoruz. </p>
<p>ci: Case-Insensitive (Büyük &#8211; küçük harfe duyarsız)<br />
cs: Case-Sensitive (Büyük &#8211; küçük harfe duyarlı. Sadece bazı diller için geçerli, türkçede kullanılmaz)<br />
bin: Binary (Karakteri tanımlayan byte değerine göre karşılaştır demek. Pratikte büyük &#8211; küçük harfe duyarlılık istendiğinde kullanılır.</p>
<h2>MySQL Dil Ayarı Nasıl Yapılır?</h2>
<p>MySQL&#8217;le biraz uğraşırsanız dilin ayarlanabileceği tonla yer görürsünüz. Büyükten küçüğe doğru gidersek: </p>
<ol>
<li>Sunucu ayarı</li>
<li>Veritabanı ayarı</li>
<li>Tablo ayarı</li>
<li>Tablodaki alanın ayarı</li>
</ol>
<p>Not 1: Bu ayarlardan pratikte sizi tek ilgilendiren: tablodaki alanın karakter seti.<br />
Not 2: Buradaki ayarlar ne olursa olsun son sözü yine bağlantıyı kurduktan sonra verdiğiniz &#8220;SET NAMES utf8&#8243; komutu söyler. </p>
<h3>1. MySQL Sunucusu</h3>
<p>MySQL derlenirken tanımlanabilir:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">shell<span style="color: #000000; font-weight: bold;">&gt;</span> .<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--with-charset</span>=utf8 <span style="color: #660033;">--with-collation</span>=utf8_general_ci</pre></div></div>

<p>Ya da my.cnf / my.ini&#8217;de tanımlanabilir:</p>
<p><span id="more-252"></span></p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>mysqld<span style="">&#93;</span></span>
<span style="color: #000099;">character-set-server</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">utf8</span>
<span style="color: #000099;">collation-server</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">utf8_general_ci</span></pre></div></div>

<p>Bu tanımlar sadece yeni yaratılacak veritabanları ve tabloların varsayılan karakter setinin utf8, collation&#8217;ının ise utf8_general_ci olmasını sağlar. Yani bu tanımları yapsanız bile yine de &#8220;SET NAMES utf8&#8243; demeniz gerekecektir.</p>
<h3>2. Veritabanı</h3>
<p>Veritabanı yaratılırken tanımlanır. Eğer tanımlanmazsa MySQL sunucusundaki tanım neyse o kullanılır.</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">DATABASE</span> mydb
  <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARACTER <span style="color: #993333; font-weight: bold;">SET</span> utf8
  <span style="color: #993333; font-weight: bold;">DEFAULT</span> COLLATE utf8_general_ci;</pre></div></div>

<p>Bu yapılan tanım da sadece bu veritabanında oluşturulan tabloların varsayılan karakter seti ve collation&#8217;ının ne olacağını belirler.</p>
<h3>3. Tablo</h3>
<p>Tablo yaratılırken tanımlanır. Eğer tanımlanmazsa veritabanındaki tanım kullanılır:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"> <span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> deneme <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`x`</span> INT<span style="color: #66cc66;">&#41;</span> CHARACTER <span style="color: #993333; font-weight: bold;">SET</span> latin5 COLLATE latin5_turkish_ci</pre></div></div>

<p>Bu durumda tabloya eklenen satırların collation&#8217;ı verilmezse latin5_turkish_ci olur.</p>
<h3>4. Tablo Alanı</h3>
<p>Üstteki tabloya ispanyolca bir alan eklemek istediğimizi düşünelim:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">ALTER</span> <span style="color: #993333; font-weight: bold;">TABLE</span> deneme <span style="color: #993333; font-weight: bold;">ADD</span> <span style="color: #ff0000;">`y`</span> VARCHAR<span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">10</span> <span style="color: #66cc66;">&#41;</span> CHARACTER <span style="color: #993333; font-weight: bold;">SET</span> latin1 COLLATE latin1_spanish_ci;</pre></div></div>

<p>Tablonun collation&#8217;ı türkçe olmasına rağmen alan ispanyolca oldu. Bu alana türkçe giriş yaparsanız ı,ş, ğ gibi karakterleri hatalı görürsünüz.</p>
<h2>Çalışma Şekli</h2>
<p>Bu kısımda SET NAMES &#8216;latin5&#8242; ne demek onu detaylandıracağım&#8230;</p>
<p>Veritabanının çalışma şeklini düşünürsek, biz sunucuya bir sorgu gönderiyoruz, sunucu da bu sorguyu okuyup bize bir cevap gönderiyor.</p>
<ol>
<li>Gönderdiğimiz sorgu hangi karakter setinde? Biz örneğin ascii mi gönderiyoruz yoksa utf8 mi?<br />
Bunun için sunucu <code>character_set_client</code> parametresine bakar.</li>
<li>Gönderilen sorguyu sunucu hangi karakter setine çevirmeli? Bunun için de <code>character_set_connection</code> ve <code>collation_connection</code> parametrelerine bakar. Yani sunucu gönderilen sorguyu <code>character_set_client</code> karakter setinden <code>character_set_connection</code> karakter setine çevirir.<br />
<code>collation_connection</code> parametresi sadece iki string birbiriyle kıyaslanacaksa kullanılır. Eğer bir tablo alanını bir string ile karşılaştırıyorsanız kullanılmaz çünkü bu durumda o tablo alanının collation&#8217;ı kullanılır.
</li>
<li>
Sunucu sorguyu işleyip veritabanından sonucu çektikten sonra bize gönderir demiştik, bize göndermeden önce sonucun karakter setini değiştirebilir. Bunun için <code>character_set_results</code> parametresini kullanır.
</li>
</ol>
<p>Bütün bu ayarları sunucunun konfigürasyon dosyasından yapabileceğiniz gibi (my.cnf ya da my.ini) doğrudan bir sql cümlesi ile de yapabilirsiniz. Yani php için:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;set character_set_client='latin5'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>diyebilirsiniz örneğin. </p>
<p>Sadece türkçe kullanacaksanız eğer şu komuyu verebilirsiniz:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SET character_set_client='latin5'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SET character_set_results='latin5'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SET character_set_connection='latin5'&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Her seferinde bu satırları aklımızda tutmamıza gerek olmasın diye MySQL bir kısa yol koymuş, o da:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SET NAMES latin5&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<h2>SET NAMES satırından nasıl kurtulurum?</h2>
<p>Programcıların SET NAMES satırını unutmaları ihtimaline karşı <code>init_connect</code> parametresini kullanmak pratik olabilir:</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>mysqld<span style="">&#93;</span></span>
<span style="color: #000099;">init_connect</span><span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;">'SET NAMES latin5'</span></pre></div></div>

<p>Tabii veritabanını başlatırken parametre olarak da verilebilir bu.</p>
<p>Performansı arttırmak için veritabanı ayarlarına <code>skip-character-set-client-handshake</code> parametresini ekleyebilirsiniz. Bu durumda tablo alanının collation&#8217;ı kullanılacaktır ancak SET NAMES ile dili değiştirmek bu durumda mümkün olmayacaktır. Bir de, bu parametre &#8220;super user&#8221; ile bağlandığınızda geçersizdir.</p>
<h2>Türkçe Dil Desteği ile İlgili Diğer Etkenler</h2>
<p>Farklı dillerin doğru desteklenmesi için sadece MySQL&#8217;in doğru ayarlanması tabii ki yeterli değil. Dinamik web sitelerini örnek aldığımızda, Apache &#8211; PHP &#8211; MySQL platformunu düşünürsek:</p>
<ol>
<li>
<strong>Apache&#8217;nin dil ayarı</strong><br />
Header göndererek apache&#8217;de dil tanımlanabilir:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">AddDefaultCharset</span> utf-<span style="color: #ff0000;">8</span></pre></div></div>

<p>Bu tanımlanan dil hatalıysa PHP, HTML ve veritabanındaki ayarlarınız ne olursa olsun sorun yaşarsınız.
</li>
<li>
<strong>PHP</strong><br />
PHP&#8217;den de aynı apache&#8217;deki gibi header gönderilebilir:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">header</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Content-type: text/html; charset=utf-8'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Bu gönderilen header, apache tarafından gönderilenlerin sonuna eklendiği için apache&#8217;nin ayarlarını değiştiremez ancak burada dil ile ilgili header yanlış gönderilirse HTML ve veritabanındaki ayarlarınız ne olursa olsun sorun yaşarsınız.
</li>
<li>
<strong>HTML</strong><br />
HTML meta komutu ile header bilgisi simüle edilebilir.</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">meta</span> <span style="color: #000066;">HTTP-EQUIV</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Content-type&quot;</span> <span style="color: #000066;">VALUE</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html; charset=utf-8&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span></pre></div></div>

<p>Eğer PHP ya da apache&#8217;den header gönderildiyse bu değer işe yaramaz. Eğer buradaki bilgi hatalı olursa veritabanından doğru dilde çekseniz bile sorun yaşayabilirsiniz.
</li>
</ol>
<h3>UTF-8 ile ilgili not</h3>
<p>UTF8 sonradan çıkan bir tanım. İçerisinde hemen hemen tüm dilleri barındırdığı için aslında büyük kolaylık. Ancak ilk geliştirilen ASCII formatından farklı bir altyapısı var. Dolayısıyla eğer utf8 kullanmayı seçtiyseniz yukarıdakilere ek olarak bir de dosya formatı sorunu karşınıza çıkıyor. </p>
<p>Eğer PHP ya da HTML sayfalarınızı açtığınız editör UTF8 destekli değilse ya da yeni dosya yarattığınızda dosyayı utf8 olarak kaydetmediyseniz yine sorun yaşayabilirsiniz.</p>
<p>UTF8 başlı başına bir muamma olduğu için çok detaya girmeyeceğim&#8230;</p>
<h3>Karakter sorunu çözmede izleyebileceğiniz yol</h3>
<p>Eğer karakter sorunu yaşıyorsanız aşama aşama şunu yapabilirsiniz:</p>
<p>1. Öncelikle sayfada gösterilen karakterler bozuk mu yoksa yanlış karakter setinde göstermeye çalıştığı için mi öyle gözüküyor onu tespit edin. Bunun için firefox&#8217;ta View / Character Encoding kısmından encoding doğru mu gözüküyor bakın. Eğer doğruysa ve problem utf8&#8242;leyse hata ya ilgili dosyanın utf8 olmamasıdır ya da veritabanından hatalı geliyordur. </p>
<p>2. Eğer encoding hatalıysa header&#8217;larda sorun var mı ona bakın. Header&#8217;ları görmek için firefox&#8217;un firebug extension&#8217;ından ya da ie8&#8242;in developer tools&#8217;undan vs. yararlanabilirsiniz. Eğer header farklı ise header&#8217;ın nereden geldiğini bulun: Ya apache&#8217;den ya da PHP&#8217;den gelir.</p>
<p>3. Header doğruysa &#8220;View source&#8221; diyip meta elemanına bakın. Buna &#8220;view source&#8221; ile bakın zira özellikle dinamik sitelerde kazara birden fazla meta komutunun geldiğine çok şahit oldum.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2009/05/23/mysql-turkce-destegi-collation-ve-character-set-nedir/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Agile Development&#8217;ın bir İleri Adımı: Google App Engine</title>
		<link>http://www.huysuzadam.com/2009/04/10/agile-developmentin-bir-ileri-adimi-google-app-engine/</link>
		<comments>http://www.huysuzadam.com/2009/04/10/agile-developmentin-bir-ileri-adimi-google-app-engine/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 08:36:47 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Genel]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/?p=247</guid>
		<description><![CDATA[Webrazzi&#8217;de Google App Engine ile ilgili gördüğüm bir yazı üzerine şöyle bir göz atayım dedim ve geçen sene duyurulan Google App Engine&#8216;in güzel bir yol kat ettiğini fark ettim.
Nedir?
Sektörü takip edenler için özetlemek gerekirse &#8220;Amazon Web Services&#8221; ile &#8220;Ruby on Rails&#8220;in işlerini bir arada yapan bir uygulama diyebiliriz.
Bilmeyenler için kısa özet:
Amazon Web Services&#8217;in içerisindeki;

EC2 yoğun [...]]]></description>
			<content:encoded><![CDATA[<p>Webrazzi&#8217;de Google App Engine ile ilgili gördüğüm bir yazı üzerine şöyle bir göz atayım dedim ve geçen sene duyurulan <a href="http://code.google.com/appengine/">Google App Engine</a>&#8216;in güzel bir yol kat ettiğini fark ettim.</p>
<h2>Nedir?</h2>
<p>Sektörü takip edenler için özetlemek gerekirse &#8220;<a href="http://aws.amazon.com/">Amazon Web Services</a>&#8221; ile &#8220;<a href="http://rubyonrails.org/">Ruby on Rails</a>&#8220;in işlerini bir arada yapan bir uygulama diyebiliriz.</p>
<p><strong>Bilmeyenler için kısa özet:</strong><br />
Amazon Web Services&#8217;in içerisindeki;</p>
<ul>
<li>EC2 yoğun yük altındaki sunucuların ölçeklendirilmesi servisi. </li>
<li>S3 web servisinizdeki verilerin ölçeklendirilmesi servisi. </li>
<li>SimpleDB ise ölçeklenebilen bir veritabanı servisi. </li>
</ul>
<p>Yani kısaca trafiği yükselen ve çok yük alan servisler için zahmetsizce kapasitenizi arttırabildiğiniz ve hatta gerektiğinde maliyeti düşürebilmek için azaltabildiğiniz bir servis. Microsoft&#8217;un benzer servisinin adı ise &#8220;<a href="http://www.microsoft.com/azure/default.mspx">Azure</a>&#8221;</p>
<p>Ruby on Rails&#8217;in özelliği ise çok hızlı ve pratik proje oluşturulabilmesi. Bir ekibin gereksinim duyduğu bütün altyapılara sahip:</p>
<ul>
<li>Geliştirme, test ve son ürün için ayrı konfigürasyon tanımlayabilme (Son üründe hata mesajlarını gösterme, geliştirilen versiyonda göster vs.)</li>
<li>Geliştirme için kullanıma hazır web server. Apache kurayım, PHP tanıtayım falan yok. Web server&#8217;ı çalıştır diyorsunuz, kendi makinenizde herşey hazır olarak çalışıyor.</li>
<li>Arama motorları için adresin anlamlı olması çok önemli o yüzden adresi scriptlere dağıtan &#8220;router&#8221; mekanizması. Geliştirici ve tasarımcı için linkleri verirken de kolaylık oluyor.</li>
<li>Veritabanı için ORM altyapısı.</li>
<li>vs.vs.vs.</li>
</ul>
<p>&#8230;</p>
<p>Google App Engine&#8217;de Rails&#8217;i hatırlatan python tabanlı bir framework kullanabiliyorsunuz. İsteğe bağlı olarak en az Rails kadar ses getirmiş <a href="http://www.djangoproject.com/">Django</a> ya da CGI tabanlı herhangi bir python framework&#8217;ü kullanılabiliyor. Son zamanlarda Java desteği de sağlandı.</p>
<p>Geliştirme esnasında sadece komut satırında web sunucuyu çalıştır diyorsunuz. Veritabanı falan kurmaya gerek yok zira veritabanı da web sunucu ile entegre. Kendine özgü bir veritabanı var. Geliştirmeyi bitirdikten sonra sanki FTP ile upload eder gibi projeyi upload et diyorsunuz ve herşey çalışır hale geliyor.</p>
<p>Veritabanında yük artarsa Google hallediyor, veritabanı otomatik genişliyor.<br />
Web sunucularında yük artarsa Google hallediyor, sunucular ölçekleniyor.</p>
<p>Yakın zamana kadar gördüğün en pratik çalışma ortamı&#8230;<br />
Ama tabii ki soru işaretleri de bırakıyor&#8230;</p>
<h2>Dezavantajları</h2>
<ul>
<li>Paralı bir servis. CPU&#8217;nun kullanım saati başına, hat miktarı başına, disk alanı başına, zart başına zurt başına taksimetre gibi yazıyo. Bir miktarı ücretsiz ama ben şahsen herhangi bir projemin ne kadar CPU kullanacağını önceden öngöremem dolayısıyla proje maliyetini öngörmek biraz sıkıntılı.</li>
<li>Desteklenen diller sadece Python ve yeni yeni Java&#8230; Özellikle Python için Türkiye&#8217;de programcı bulmak zor&#8230;</li>
<li>Özellikle Google&#8217;ın framework&#8217;ünü kullanarak projenizi geliştirirseniz ve ileride örneğin Google&#8217;ın fiyatlandırmasından ya da hizmetinden memnun kalmazsanız projenizi destekleyecek hosting çözümleri nedir allah bilir. Daha yaygın olan Django tercih etseniz bile veritabanı için Google&#8217;ın altyapısı kullanıldığı için başka bir servis sağlayıcıya geçmek zahmetli olabilir.</li>
</ul>
<p>Sonuçta aynı kurumsal şirketlerin personele bağımlı kalmaması gibi projelerin de servis sağlayıcı, programcı gibi parametrelerden mümkün olduğunca bağımsız olması uzun vadede büyük avantajlar sağlıyor&#8230;</p>
<p>Benim öngörüm uzun zamandır geleceğin framework&#8217;ler ve framework&#8217;leri adam gibi destekleyen IDE&#8217;lerde olduğu idi. Framework + IDE ikilisinin yanına <a href="http://en.wikipedia.org/wiki/Cloud_computing">Cloud Computing</a> destekli servisleri de ekleyebilirim sanırım.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2009/04/10/agile-developmentin-bir-ileri-adimi-google-app-engine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Zend Framework 1.8</title>
		<link>http://www.huysuzadam.com/2009/04/09/zend-framework-18/</link>
		<comments>http://www.huysuzadam.com/2009/04/09/zend-framework-18/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 07:37:34 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/?p=240</guid>
		<description><![CDATA[ZF preview release yayımlanmış. Bence çok önemli bir versiyon bu zira kendileri de Zend Framework&#8217;ün &#8220;framework&#8221; tanımına tam anlamıyla uymadığını kabul etmiş sonunda&#8230;
Framework&#8217;ler kullanıcıya bir uygulamayı nasıl yaratacağı ile ilgili bazı varsayımlar sunar ve bu varsayımlar doğrultusunda kullanıcıyı yönlendirir. ZF tarafında ise &#8220;loose coupling&#8221; dediğimiz modellerin birbirinden bağımsız çalışabilmesi konusu çok daha ön planda tutulmuş. [...]]]></description>
			<content:encoded><![CDATA[<p>ZF preview release yayımlanmış. Bence çok önemli bir versiyon bu zira kendileri de Zend Framework&#8217;ün &#8220;framework&#8221; tanımına tam anlamıyla uymadığını kabul etmiş sonunda&#8230;</p>
<p>Framework&#8217;ler kullanıcıya bir uygulamayı nasıl yaratacağı ile ilgili bazı varsayımlar sunar ve bu varsayımlar doğrultusunda kullanıcıyı yönlendirir. ZF tarafında ise &#8220;loose coupling&#8221; dediğimiz modellerin birbirinden bağımsız çalışabilmesi konusu çok daha ön planda tutulmuş. Bu da ZF&#8217;yi &#8220;çözebilenlere&#8221; büyük esneklik sağlarken ilk başlayanların öğrenmesini ve adaptasyonunu zorlaştırıyor. </p>
<p>Hatta ZF kullananlar için bile yeni bir proje yaratmak çok zahmetli. Yani tamam kendinize kolaylıklar buluyorsunuz mutlaka ama yine de zor.</p>
<p>Açıkçası bu eski gidişatla Zend Framework&#8217;ün efektif kullanılabilmesi için bir alt framework&#8217;e ihtiyacı olacağını düşünüyordum ama bu son hamleyle sanıyorum pratik bir framework olma yoluna döndü ZF.</p>
<p><span id="more-240"></span></p>
<h2>Zend Framework 1.8&#8242;de değişen ne?</h2>
<ul>
<li><strong>Zend_Tool:</strong> Proje yaratmanızı ve projeye yeni parçalar (controller, view, test gibi) eklemenizi kolaylaştıran bir konsol aracı.</li>
<li><strong>Zend_Application:</strong> Bootstrap dosyasını daha organize bir şekilde oluşturmanızı sağlayan araç&#8230;</li>
<li><strong>Zend_Navigation:</strong> Breadcrumb, site haritası gibi tasarımdaki navigasyon elemanları için</li>
<li>Amazon EC2 ve S3 desteği&#8230;</li>
<li>Diğer modüllere bazı ekler ve tabii ki bugfix&#8217;ler</li>
</ul>
<h2>Zend_Tool</h2>
<p>Normalde bir ZF projesi oluşturmak uğraştırıcı bir iş. Genelde benim yaptığım önceden oluşturduğum bir projeden kopyala yapıştır yapıp üzerinde değişiklik yapmak. Ama mutlaka gözden kaçan birşeyler oluyor.</p>
<p>Zend_Tool ile artık şunu yapabileceğiz:</p>
<pre>
> zf create project
</pre>
<p>
Bu komutu verdiğiniz zaman gerekli tüm dizinleri vs. oluşturuyor:
</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">|--</span> application
<span style="color: #339933;">|</span>   <span style="color: #339933;">|--</span> Bootstrap<span style="color: #339933;">.</span>php
<span style="color: #339933;">|</span>   <span style="color: #339933;">|--</span> configs
<span style="color: #339933;">|</span>   <span style="color: #339933;">|</span>   `<span style="color: #339933;">--</span> application<span style="color: #339933;">.</span>ini
<span style="color: #339933;">|</span>   <span style="color: #339933;">|--</span> controllers
<span style="color: #339933;">|</span>   <span style="color: #339933;">|</span>   <span style="color: #339933;">|--</span> ErrorController<span style="color: #339933;">.</span>php
<span style="color: #339933;">|</span>   <span style="color: #339933;">|</span>   `<span style="color: #339933;">--</span> IndexController<span style="color: #339933;">.</span>php
<span style="color: #339933;">|</span>   <span style="color: #339933;">|--</span> models
<span style="color: #339933;">|</span>   `<span style="color: #339933;">--</span> views
<span style="color: #339933;">|</span>       <span style="color: #339933;">|--</span> helpers
<span style="color: #339933;">|</span>       `<span style="color: #339933;">--</span> scripts
<span style="color: #339933;">|</span>           <span style="color: #339933;">|--</span> error
<span style="color: #339933;">|</span>           <span style="color: #339933;">|</span>   `<span style="color: #339933;">--</span> error<span style="color: #339933;">.</span>phtml
<span style="color: #339933;">|</span>           `<span style="color: #339933;">--</span> index
<span style="color: #339933;">|</span>               `<span style="color: #339933;">--</span> index<span style="color: #339933;">.</span>phtml
<span style="color: #339933;">|--</span> library
<span style="color: #339933;">|--</span> <span style="color: #000000; font-weight: bold;">public</span>
<span style="color: #339933;">|</span>   <span style="color: #339933;">|--</span> <span style="color: #339933;">.</span>htaccess
<span style="color: #339933;">|</span>   `<span style="color: #339933;">--</span> index<span style="color: #339933;">.</span>php
`<span style="color: #339933;">--</span> tests
    <span style="color: #339933;">|--</span> application
    <span style="color: #339933;">|</span>   `<span style="color: #339933;">--</span> bootstrap<span style="color: #339933;">.</span>php
    <span style="color: #339933;">|--</span> library
    <span style="color: #339933;">|</span>   `<span style="color: #339933;">--</span> bootstrap<span style="color: #339933;">.</span>php
    `<span style="color: #339933;">--</span> phpunit<span style="color: #339933;">.</span>xml</pre></div></div>

<p>Henüz dokümantasyonu çok boş ve ben de denemedim ama Zend&#8217;in ilgili blogunda bu araç için geliştirmeler yapılacağı yazdığı için muhtemelen eksiklikleri var ama bu haliyle bile işleri oldukça hızlandıracak gibi&#8230;</p>
<p>Bu aracın niye bu kadar geç kaldığı sorusuyla ilgili olarak aklıma gelen ilk cevap Zend&#8217;in editörünü önplana çıkartmak için kasıtlı geciktirmesi. Zira Zend Studio&#8217;da proje bir wizard ile oluşturuluyor ama parasını verip satın alırsanız. PDT ya da piyasadaki diğer editörler için bu imkan yok&#8230;</p>
<h2>Zend_Application</h2>
<p>Yeni proje oluştururken en çok uğraştıran kısım şüphesiz bootstrap dosyası. Ayrıca geliştirme (development), test ve son ürün (production) için farklı konfigürasyon ihtiyacı için halihazırda bir çözüm bulunmuyordu. </p>
<p>Zend_Application ile bu soruna çözüm aranmış sanki. Dokümantasyondan yine her zamanki gibi göz atarak birşey anlamak mümkün değil ama benim anladığım kadarıyla bir konfigürasyon dosyası ile bootstrap dosyasındaki hammaliyelerin birçoğundan kurtulmak mümkün olacak.</p>
<h2>Sonuç</h2>
<p>Ben şahsen ZF&#8217;yi hala bir framework olarak değil de PEAR&#8217;in yerini alan bir kütüphane olarak kullanıyorum. Hala Rails&#8217;in 15 dakikada blog yazma hayallerini kuruyorum ama bu tür gelişmeler ümit veriyor&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2009/04/09/zend-framework-18/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NetBeans Windows Versiyonu Türkçe Bug&#8217;ı</title>
		<link>http://www.huysuzadam.com/2009/03/10/netbeans-windows-versiyonu-turkce-bugi/</link>
		<comments>http://www.huysuzadam.com/2009/03/10/netbeans-windows-versiyonu-turkce-bugi/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 11:30:02 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[ide'ler]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/?p=232</guid>
		<description><![CDATA[ Son zamanlardaki favori editörüm NetBeans&#8216;de iki önemli sorun vardı: İlki SFTP desteğinin olmayışı, ikincisi de windows versiyonundaki türkçe karakterler ile ilgili bir bug. 
SFTP desteği 6.7M2&#8242;den itibaren verilmeye başlanmış. Türkçe karakterler ile ilgili bug ise çabalarım sonucunda düzeltildi sonunda. *200903060201* numaralı buildden itibaren geçerli olan bu düzeltme sanırım v6.7&#8242;nin stabil sürümüne dahil olacaktır.
Stabil olmasa [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.huysuzadam.com/wp-content/uploads/2009/03/netbeans_logo.jpg" alt="NetBeans" title="NetBeans" width="150" height="75" class="size-full wp-image-234" align="right" /> Son zamanlardaki favori editörüm <a href="http://www.netbeans.org">NetBeans</a>&#8216;de iki önemli sorun vardı: İlki SFTP desteğinin olmayışı, ikincisi de windows versiyonundaki türkçe karakterler ile ilgili bir bug. </p>
<p>SFTP desteği 6.7M2&#8242;den itibaren verilmeye başlanmış. Türkçe karakterler ile ilgili bug ise çabalarım sonucunda düzeltildi sonunda. *200903060201* numaralı buildden itibaren geçerli olan bu düzeltme sanırım v6.7&#8242;nin stabil sürümüne dahil olacaktır.</p>
<p>Stabil olmasa da olur diyenler <a href="http://bits.netbeans.org/download/trunk/nightly/latest/">gecelik derlemeler</a> sayfasından indirilebilir.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2009/03/10/netbeans-windows-versiyonu-turkce-bugi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hangi PHP Framework&#8217;ü Daha İyi?</title>
		<link>http://www.huysuzadam.com/2009/02/09/hangi-php-frameworku-daha-iyi/</link>
		<comments>http://www.huysuzadam.com/2009/02/09/hangi-php-frameworku-daha-iyi/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 10:12:44 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[frameworkler]]></category>
		<category><![CDATA[programlama]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/?p=208</guid>
		<description><![CDATA[Var olan tonla php framework&#8217;lerinden birini seçerken birçok faktörü göz önünde bulundurmak gerek:

Performans ve scalability
Komunite desteği (Yazılımcı ararken ya da takıldığınız noktayı sorarken lazım olacak)
Geliştiren ekibin güvenilirliği (Kullandığınız framework&#8217;ün gelişmesinin durması kabus olacaktır)
Kolay öğrenilebilirlik
Kolay geliştirilebilirlik
Yeterlilik / Esneklik
Sunduğu özellikler
Desteklediği PHP versiyonları
&#8230;


Zend Framework&#8217;ün Felsefesi
Özellikle Ruby on Rails&#8217;den sonra artan framework talebi sonunda birçoğu rails&#8217;den çok ciddi olarak [...]]]></description>
			<content:encoded><![CDATA[<p>Var olan tonla php framework&#8217;lerinden birini seçerken birçok faktörü göz önünde bulundurmak gerek:</p>
<ul>
<li>Performans ve scalability</li>
<li>Komunite desteği (Yazılımcı ararken ya da takıldığınız noktayı sorarken lazım olacak)</li>
<li>Geliştiren ekibin güvenilirliği (Kullandığınız framework&#8217;ün gelişmesinin durması kabus olacaktır)</li>
<li>Kolay öğrenilebilirlik</li>
<li>Kolay geliştirilebilirlik</li>
<li>Yeterlilik / Esneklik</li>
<li>Sunduğu özellikler</li>
<li>Desteklediği PHP versiyonları</li>
<p>&#8230;
</ul>
<p><span id="more-208"></span></p>
<h2>Zend Framework&#8217;ün Felsefesi</h2>
<p>Özellikle Ruby on Rails&#8217;den sonra artan framework talebi sonunda birçoğu rails&#8217;den çok ciddi olarak esinlenen bir sürü framework çıktı. Arkasından Zend mühendisleri de framework ihtiyacına cevap vermek üzere çalışmalara başladı.</p>
<p>Code Igniter, Kohana, CakePHP, Symfony vb. projeler Rails&#8217;in izinden giderken Zend Framework kendine daha farklı bir yol çizdi. Rails ve türevleri tüm yapı için kesin kurallar koyup işe başlamayı hızlandırırken Zend Framework birbirinden bağımsız çalışabilen ama aynı zamanda birbirleriyle &#8220;iletişim kurabilen&#8221; modüller programlamayı tercih ettiler.</p>
<p>Zend Framework modüllerin yalnız başına kullanılabilir olması eski ve benim hala çok güvenemediğim PEAR kütüphanesinin yeniden yazılması ve Zend ile IBM gibi iki devin bu yeni kütüphaneyi (!) desteklemesi gibi yan bir misyonu da tamamlamış oldu.</p>
<p>Ancak bu yapının önemli bir dezavantajı oldu: Karmaşıklık. Yazılım kısmını geçtim, dokümantasyon kısmı çok karmaşık&#8230; Avantajı ise, örneğin konfigürasyon ayarlarınızı farklı bir şekilde tutmanız gerekse örneğin CodeIgniter&#8217;da hiç şansınız yok ama Zend Framework ile sorunsuz&#8230;</p>
<h2>Dokümantasyon Problemi</h2>
<p>Şu an Rails ve izinden giden framework&#8217;lerle birşeyler gerçekleştirmek çok daha kolay çünkü dokümanlarına baktığınızda son uygulamanızda deneyebileceğiniz şekilde anlatılmış vaziyette. ZF dokümanlarında ise hem tüm yapıdan bahsedilmeli hem de modülün tek başına nasıl kullanılabileceği anlatılmalı. Bu da iletişim konusunda zaten kazma olan Zend&#8217;i biraz aşıyor bence.</p>
<p>Sanırım Zend&#8217;in beklentisi komuniteden bu konuda tonla &#8220;tutorial&#8221; ve kitap çıkması idi ama pek de hızlı birşeyler çıktığını söyleyemeyeceğim.</p>
<h2>Alt Framework</h2>
<p>Rails ve türevlerinin yapısı yazılım mühendisliğinde &#8220;tight coupling&#8221; olarak adlandırılırken ZF&#8217;ninki &#8220;loose coupling&#8221; oluyor. Her ne kadar &#8220;loose coupling&#8221; yazılımlarda tercih edilen bir kavram olsa da web framework&#8217;leri için çoğu durumda tight coupling&#8217;in daha uygun olduğunu düşünüyorum. Küçük ve düşük bütçeli yazılımlar için ihtiyacımız olan &#8220;hızlı geliştirme&#8221;, bu da Zend Framework&#8217;ün şu anki haline hiç uymuyor. </p>
<p>Düşününce kapsamlı projeler için ZF, küçük projeler için diğer bir framework kullanmak öğrenme süreci nedeniyle mantıklı gelmiyor. O yüzden bence ihtiyaç olan ZF&#8217;nin bir alt framework&#8217;ünün olması. </p>
<p>Önceki bir yazımda demiştim ki &#8220;Zend Framework on Rails istiyorum!&#8221;<br />
Eğer şu anda Rails tadında işleri çok hızla sizin adınıza yapacak bir yapıya ihtiyacınız varsa Zend Framework&#8217;ü tercih etmek için kendi &#8220;ZF on Rails&#8221;inizi yapmanız gerekiyor.</p>
<ol>
<li>İndir,</li>
<li>zip&#8217;i aç</li>
<li>Konfigürasyonu yap</li>
<li>Controller ve modelleri hızla ekle</li>
<li>Teste aç ve pragmatik programlamaya devam et&#8230;</li>
</ol>
<p>Bu paketin ZF&#8217;nin son versiyonuyla uyumlu olması gerektiğini düşünürsek paketin de sürekli geliştirilmesi gerekecek demektir.<br />
Eh, bu da başlı başına bir framework gibi birşey oluyor.<br />
ZF üzerine inşaa edilmiş bir alt framework&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2009/02/09/hangi-php-frameworku-daha-iyi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Editörleri (IDE&#8217;ler)</title>
		<link>http://www.huysuzadam.com/2009/02/07/php-editorleri-ideler/</link>
		<comments>http://www.huysuzadam.com/2009/02/07/php-editorleri-ideler/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 22:41:13 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[ide'ler]]></category>
		<category><![CDATA[programlama]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/?p=193</guid>
		<description><![CDATA[Editör ya da IDE&#8217;ler doğru kullanıldığında üreticiliğinizi ve kod kalitenizi kat kat arttırabilirler. Ne yazık ki birçok şeyde olduğu gibi editör konusunda da çok huysuzum. Şöyle huzurla kullanabileceğim bir PHP IDE&#8217;sine ne yazık ki kavuşamadım. İşte denediklerim:

Dreamweaver (http://www.adobe.com/products/dreamweaver/)
Zend Studio 5.x, 6.x Eclipse, PDT (http://www.zend.com/en/products/studio/)
NuSphere PHPEd (http://www.nusphere.com/)
TextMate (http://macromates.com/)
NetBeans (http://www.netbeans.org/) Ücretsiz
vim


Dreamweaver
Uzun süre bu HTML editörünü kodlama için [...]]]></description>
			<content:encoded><![CDATA[<p>Editör ya da IDE&#8217;ler doğru kullanıldığında üreticiliğinizi ve kod kalitenizi kat kat arttırabilirler. Ne yazık ki birçok şeyde olduğu gibi editör konusunda da çok huysuzum. Şöyle huzurla kullanabileceğim bir PHP IDE&#8217;sine ne yazık ki kavuşamadım. İşte denediklerim:</p>
<ol>
<li>Dreamweaver (<a href="http://www.adobe.com/products/dreamweaver/">http://www.adobe.com/products/dreamweaver/</a>)</li>
<li>Zend Studio 5.x, 6.x Eclipse, PDT (<a href="http://www.zend.com/en/products/studio/">http://www.zend.com/en/products/studio/</a>)</li>
<li>NuSphere PHPEd (<a href="http://www.nusphere.com/">http://www.nusphere.com/</a>)</li>
<li>TextMate (<a href="http://macromates.com/">http://macromates.com/</a>)</li>
<li>NetBeans (<a href="http://www.netbeans.org/">http://www.netbeans.org/</a>) <em style="color:#cc0000">Ücretsiz</em></li>
<li>vim</li>
</ol>
<p><span id="more-193"></span></p>
<h2>Dreamweaver</h2>
<p>Uzun süre bu HTML editörünü kodlama için de kullandım. Oldukça stabil, inanılmaz HTML yeteneklerine sahip, eşsiz Find &#038; Replace özelliği var, Site ve synchronize özellikleri süper. PHP&#8217;yi ise sadece renklendirir, include&#8217;ları tanır ve PHP fonksiyonlarını tamamlar başka da hiçbir özelliği yoktur. </p>
<p>Eğer HTML&#8217;le çok işiniz yoksa biraz güçlü bir text editörü (notepad++, notepad, ultraedit vs.) ile aralarında pek bir fark olduğunu söyleyemeyeceğim&#8230; O yüzden artık Dreamweaver&#8217;ı sadece HTML ve CSS işleri için o da bazen kullanıyorum.</p>
<h2>Zend Studio</h2>
<p>Oldukça uzun süre 5.5 versiyonunu kullandım. 5.5&#8242;ten öncesi çok sıkıntılıydı. Kod tamamlama, parse error&#8217;lerini gösterme, fonksiyon adına Ctrl ile klikleyince fonksiyon tanımına gitme, kullanıcının yazdığı tanımları tamamlama gibi güzel özelliklerin yanında bir sürü de keşfedilmeyi bekleyen minik detaylara sahip sağlam bir editör.</p>
<p>En önemli dezavantajı java tabanlı olmasıydı. Java tabanlı programlar özellikle vista öncesi windows&#8217;larda yavaşlıklarıyla beni sinir ederler. Vista&#8217;da biraz daha tahammül edilebilir hale geldi. Linux ve Mac için ise bu dezavantaj ortadan kalkıyor.</p>
<p>Ne yazık ki 5.5&#8242;ten sonra Eclipse tabanına kaydılar. Neon (6.0) ve PDT benim nefret ettiğim Eclipse tabanına kaydı ve kendilerini sildim tamamen (çok da umurlarındadır eminim:P). Eclipse yavaşlığının ötesinde saçma sapan buglarıyla insanı illet etmede bir numara bir platform benim için&#8230; </p>
<p>Tabii bir de dosya boyutunun büyüklüğü var: Kırpık PDT versiyonu 105MB. Affınıza sığınarak kendilerine &#8220;OHA&#8221; demek istiyorum.</p>
<h2>NuSphere PHPEdit</h2>
<p>Bu IDE&#8217;nin bir özelliği de ilk versiyonlarının bir Türk tarafından yazılması ve daha sonra NuSphere firması tarafından satın alınması. Süper özelliklere sahip, java ile yazılmadığı için akranlarına göre çok hızlı olan bu program pratik çözümleriyle insanı şaşırtıyor. Mesela projedeki dosyalara Ctrl+sağ tıkladığınız zaman normal explorer menüsü çıkıyor, böylece örneğin TortoiseSVN kullanabiliyor, &#8220;Open With&#8230;&#8221; komutunu kullanabiliyor ya da dosyanın bulunduğu dizini kolayca açabiliyorsunuz. Zekice&#8230;</p>
<p>Ayrıca debug konusunda kendimi en rahat hissettiğim programdır.<br />
En önemli dezavantajı windows tabanlı olması. Linux versiyonu berbat.<br />
Bir de &#8220;Code Templates&#8221; ya da &#8220;Snippet&#8221; olarak adlandırdığımız yapının yetersiz olması ve macro desteğinin olmaması&#8230; Onun dışında kesinlikle tavsiye olunur.</p>
<h2>TextMate</h2>
<p>En başından söyleyeyim, bu program bir Mac programıdır. Windows için <a href="http://www.e-texteditor.com/">e-Texteditor</a> diye bir klonu olsa da TextMate&#8217;in tadını vermez. </p>
<p>TextMate kurcalamaktan sıkılmayan ve çok ileri seviyedeki kullanıcılar için bir editördür. Öyle ki kendisini öğrenmem 1-2 ayımı aldı, çoğu kez kendimi diğer IDE&#8217;lerin kollarına attığımı itiraf etmeliyim. </p>
<p>Aynı Vim gibi kısayollarla ve kendinizin programladığı snippet&#8217;larla etkisini gösteriyor. Alıştıktan sonra inanılmaz Snippet desteği sayesinde diğer IDE&#8217;ler gözünüze yavan gelmeye başlıyor. Unutmadan, bir de görüntüsü çok şık. Fontları farklı bir şekilde anti-aliasing işlemine sokuyor bu da gözünüzü okşayan bir görünüm katıyor kendisine&#8230;</p>
<p>En kötü tarafı ise uzun süredir ciddi bir hareket göstermemesi. Bu da özellik olarak diğer IDE&#8217;lerin gerisinde kalmasına neden oluyor. Aslında bir yerde 40$ fiyatlı bir programın yüzlerce dolarlık akranlarıyla ya da arkasında Sun&#8217;ı barındıran NetBeans&#8217;le yarışmasını beklemek haksızlık olur ama bazı en basit özelliklerinin bile olmaması insanı üzüyor&#8230;</p>
<p>Entegre bir SFTP hatta FTP desteği yok, debug etme kabiliyeti yok, kullanıcının girdiği değişken ve fonksiyonları tanımıyor ve daha birçok özelliği de yok&#8230;<br />
Ancak halen sıfırdan yazdığım kodları TextMate ile yazıyorum zira diğer editörlerin en az 2 katı hızla yazabiliyorsunuz.</p>
<h2>NetBeans</h2>
<p>Son günlerdeki favorim. NetBeans aslında Sun firmasının java IDE&#8217;si. Sun&#8217;ın son zamanlardaki ticari stratejisine paralel olarak hızlı bri gelişim sürecine girdi ve kısa sayılabilecek bir süre önce PHP plug-in&#8217;i aktif oldu.</p>
<p>Kötü tarafı java tabanlı olması. Ama java&#8217;nın babası Sun tarafından geliştirildiği için midir bilmem Eclipse kadar gıcık etmedi beni. TextMate&#8217;in snippet&#8217;larına neredeyse yetişecek seviyede programlanabilir, Zend Studio 5.5&#8242;in ve NuSphere&#8217;in tüm özelliklerine sahip, ek olarak refactoring gibi özellikleri ve yine diğer editörlerde olmayan bazı ince detaylara sahip.</p>
<p>Şu anki 6.5 windows versiyonunda türkçe karakterlerle ilgili bir bug olduğunu da belirtmem gerek. Yazılım ekibine ilettim ve düzelttiler ancak sanırım 7.0 Milestone 2&#8242;den itibaren aktif olacak&#8230; Linux ve Mac&#8217;te sorun yok&#8230;</p>
<h2>Vim</h2>
<p>Vim&#8217;i artık pek kullanmıyorum aslında ama belirtmek gereği hissettim. Zira vim öyle göründüğü gibi bir &#8220;şey&#8221; değil. İnanılmaz ve sınırsız yeteneklere sahip bir canavar kendisi. Eğer konfigürasyonuna aylarınızı, hatta yıllarınızı verirseniz ne geçmişte ne de gelecekte vim&#8217;in eline su dökecek bir editör ya da IDE bilmiyorum. Ama banba hiç mantıklı gelmiyor çünkü vim&#8217;le uğraşırken kendimi baştan bir IDE yazıyormuş gibi hissediyorum.</p>
<p>Not: Vim&#8217;in windows versiyonunu atın çöpe&#8230; Bu dediklerim windows için geçerli değil&#8230;</p>
<h2>Sonuç</h2>
<p>Özellikle NetBeans&#8217;in birçok kişi farkında değil. NuSphere&#8217;i ise birçokları şöyle bir deneyip geçiyor. Şu an için bu iki IDE&#8217;yi tavsiye edebilirim&#8230;</p>
<p>Üzerinde çok uğraşmadığım ama isimlerini duyduğum ya da şöyle bir test ettiğim PHPDesigner, Coda (Mac), Komodo, PHPEdit gibi programlar da mevcut&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2009/02/07/php-editorleri-ideler/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mac&#8217;te sevdiklerim ve sevmediklerim</title>
		<link>http://www.huysuzadam.com/2009/02/04/macte-sevdiklerim-ve-sevmediklerim/</link>
		<comments>http://www.huysuzadam.com/2009/02/04/macte-sevdiklerim-ve-sevmediklerim/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 00:40:08 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/?p=161</guid>
		<description><![CDATA[On iki yıl Windows® kullandıktan sonra 3-4 ay önce cesaretimi topladım ve paraya kıyıp bir iMac aldım. İşte bu süre içinde sevdiklerim ve sevmediklerim:
Donanımında Sevdiklerim
Sadece donanımı için iMac alınırmış onu öğrendim. 

Tıs sesi bile gelmiyor. Süper sessiz.
Kasası monitörün içinde, kablosuz teknolojiler entegre o yüzden elektrik fişinden başka kabloya ihtiyaç yok.
Üzerinde ihtiyaç duyduğunuz hemen her şey [...]]]></description>
			<content:encoded><![CDATA[<p>On iki yıl Windows® kullandıktan sonra 3-4 ay önce cesaretimi topladım ve paraya kıyıp bir iMac aldım. İşte bu süre içinde sevdiklerim ve sevmediklerim:</p>
<h2>Donanımında Sevdiklerim</h2>
<p>Sadece donanımı için iMac alınırmış onu öğrendim. </p>
<ul>
<li>Tıs sesi bile gelmiyor. Süper sessiz.</li>
<li>Kasası monitörün içinde, kablosuz teknolojiler entegre o yüzden elektrik fişinden başka kabloya ihtiyaç yok.</li>
<li>Üzerinde ihtiyaç duyduğunuz hemen her şey var: Sağlam bir çift hoperlör, USB&#8217;ler, firewire&#8217;lar, bluetooth, wireless, ethernet, webcam.</li>
<li>Klavyeyi herkes sevmeyebilir ama plastik değil alüminyumdan sessiz ve parmaklarınıza oturan şık bir klavye. </li>
<li>Klavyenin iki tarafında USB girişleri mevcut böylece USB stick&#8217;inizi kolaylıkla kullanabiliyorsunuz.</li>
<li>LCD ekranı gerçekten çok kaliteli ve canlı renklere sahip.</li>
<li>Bilgisayardan anlamayana masa süsü diye yutturabileceğiniz şıklıkta bir fare&#8230;</li>
</ul>
<p><img src="http://www.huysuzadam.com/wp-content/uploads/2009/02/dsc_0211-222x300.jpg" alt="iMac Yandan Görünüş" title="iMac Yandan Görünüş" width="222" height="300" class="aligncenter size-medium wp-image-162" /><br />
<span id="more-161"></span><br />
En bayıldığım özelliği kesinlikle ses yok. En ufak bir tıs sesi bile olmadığı için diğer PC&#8217;yi açasım gelmiyor.</p>
<p><img src="http://www.huysuzadam.com/wp-content/uploads/2009/02/dsc_0212-300x296.jpg" alt="iMac Önden Görünüş" title="iMac Önden Görünüş" width="300" height="296" class="aligncenter size-medium wp-image-165" /></p>
<h2>Donanımında Sevmediklerim</h2>
<ul>
<li>Parlak ekran&#8230; Gündüz kendi yansımamı görebiliyorum</li>
<li>Fare çok şık, ama sağ klik bazen solla karışabiliyor.</li>
<li>Ram dışında upgrade imkanı sınırlı. Birçok teknik servis RAM eklenebildiğinden bile bihaber</li>
<li>Çılgın gibi pahalı. Aksesuar olarak kablosuz Apple mighty mouse 180TL!!! Gerçi bluetooth ve lazerli bir alet ama yine de insaf be kardeşim.</li>
<li>O kadar şık ki anneniz geldiğinde üstüne dantelli örtü koymasına engel olamıyorsunuz :)</li>
</ul>
<h2>MacOS&#8217;ta Sevdiklerim</h2>
<p>On iki yıldır Windows kullanan biri olarak alışmak gerçekten de zor oldu. Arabirim tasarımı ve kullanılabilirlik üzerine kafa yoran biri için Mac OS insana heyecan veriyor. Her yeri estetik aletin.</p>
<ul>
<li>İçerisinde çok şık oyuncaklarla (yazılım) geliyor.</li>
<li>Exposè, Spaces, Dashboard ve Spotlight tek kelimeyle mükemmel&#8230;</li>
<li>iPhone&#8217;la entegrasyonu normal olarak çok sağlam</li>
<li>Genel kanının aksine birçok ücretsiz yazılım bulabiliyorsunuz. Satılan uygulamaların ise birçoğunun fiyatı satın alabileceğiniz seviyelerde.</li>
<li>Çoğu şey üstünde olduğu için driver yükleme falan gibi dertleri pek yok. Yine de yeni donanım alırken Mac sürücülerini sormak lazım. Printer için biraz uğraştırdı beni</li>
<li>Uygulama kurmak diye birşey yok. İndiriyorsunuz, Applications klasörüne kopyalıyorsunuz, işlem tamamdır.</li>
<li>İleri düzey kullanıcılar için apple script vs. çok başarılı. Kullandığınız uygulamaların hemen hepsi otomasyona ve macrolara açık oluyor.</li>
</ul>
<p><img src="http://www.huysuzadam.com/wp-content/uploads/2009/02/picture-4.png" alt="MacOS Ekran Görüntüsü" title="MacOS Ekran Görüntüsü" width="400" height="250" class="aligncenter size-full wp-image-182" /></p>
<h2>MacOS&#8217;ta Sevmediklerim</h2>
<p>Aşağıdakilerin 1-2si dışındakilere çözüm buldum, diğerlerine de alışılıyor 3-4 ayda&#8230;</p>
<ul>
<li>Windows uygulama tabanlı, MacOS ise pencere. Dolayısıyla havada uçuşan pencereleri windows&#8217;daki gibi ekrana yayamıyorsunuz.</li>
<li>Bir yazılımın pencereleri arası geçiş yapmak için Exposè&#8217;yi kullanmaya alışmak gerek. Özellikle Türkçe Q klavyede&#8230;</li>
<li>3 boyutlu Dock&#8217;a alışamadım. Çalışan uygulamanın altındaki minik noktayı keşfetmek imkansız. Ufak bir üçkağıtla 2 boyutluya çevirebiliyorsunuz&#8230;</li>
<li>Kısayollar standart değil. Kullandığı platforma göre programdan programa değişebiliyor.</li>
<li>Pencerenin köşesindeki çarpıya tıklayınca pencere kapanıyor, programdan çıkmıyor. Programdan çıkmak için illa ki Cmd+Q&#8217;ya basmanız lazım.</li>
<li>Türkçe Q Klavye dizilimi ile kısayollar kullanışsız. Örneğin programdan çıkış &#8220;Cmd+Q&#8221;, @ işareti ise &#8220;Alt+Q&#8221;. Alt ile Cmd yanyana olduğu için e-posta yazarken  programından çıkılabiliyor.</li>
<li>Home, End, Page Up, Page Down tuşları her programda çalışmıyor. Home yerine &#8220;Cmd+Sol Ok&#8221; her programda standart ama bu tuş kombinasyonunu Firefox&#8217;ta denerseniz örneğin, önceki sayfaya gidiyor&#8230; Sinirr&#8230;..</li>
<li>Normal fare çok yavaş. Hızlandırmak için bir program kurulabiliyor ama bir yere kadar hızlandırabiliyorsunuz. Zorlarsanız fare atlamaya başlıyor.</li>
</ul>
<h2>Yazılım Desteği</h2>
<p>- Adobe ürünleri (PhotoShop, Dreamweaver vs.), Microsoft Office, Firefox, MSN Messenger ve daha birçok programın Mac versiyonu zaten var.<br />
- Java tabanlı IDE&#8217;ler: <a href="http://www.netbeans.org/">NetBeans</a>, <a href="http://www.zend.com/en/products/studio/">Zend Studio</a> vb. Windows&#8217;a kıyasla çok daha hızlı ve stabil çalışıyor.<br />
- <a href="http://macromates.com/">TextMate</a>&#8216;i tam olarak öğrenmek aylar alır ama efsane bir editör. Ne yazık ki gelişimi pek aktif sayılmaz.<br />
- <a href="http://picasa.google.com">Picasa</a>&#8216;nın mac versiyonu yeni çıktı, gayet başarılı gibi duruyor.<br />
Parallel Desktops, BootCamp gibi programlar ile Windows desteği de alabilirsiniz.</p>
<p><strong>Yazılım desteğiyle ilgili sorunlar ise:</strong></p>
<ul>
<li>MSN Messenger için video desteği MacOS&#8217;un güvenlik yapısı nedeniyle henüz verilemiyor. Windows kullanan yakınlarınızla görüşmek için Skype kullanılabilir.</li>
<li>Microsoft Office, Windows versiyonunun yanına yaklaşamaz. Berbat! Muadili olan iWorks de kesmedi beni.</li>
<li>SecureCRT&#8217;nin muadili yok. iTerm var ama yeterli değil.</li>
<li>MAMP ve XAMPP yeteri kadar konfigüre edilemiyor. Elle Apache + PHP + MySQL kurmak zor, dokümanı az.</li>
<li>iTunes&#8217;un çalışma şeklini öğrendikten sonra süper. Ama öğrenene kadar dosyalar duplike oluyor, temizlemesi düzeltmesi uğraştırıyor.</li>
<li>Program kurması / kaldırması çok kolay ama programa bağlı dosyalara ellemiyor MacOS. Bunun için ayrı program kurmanız lazım.</li>
</ul>
<h2>Sonuç</h2>
<p>Mac&#8217;e geçsem mi sorusu varsa aklınızda, benim düşüncem şöyle:</p>
<p>Profesyonel olarak düşünürsek, Vista ile karşılaştırdığımda MacOS&#8217;un öyle aman aman bir avantajı yok.<br />
XP ile performans ve stabilite farkı var ama Vista&#8217;yla aynı farkı göremedim. </p>
<p>Benim Mac&#8217;e geçişteki en büyük motivasyonum artık yaptığım işten sıkılmaya başladığımı hissetmemdi. Aynı arabirim, farenin sağ tıkındaki seçenekler, aynı ekran yapısı ve form tasarımları&#8230;</p>
<p>iMac donanımından işletim sistemine, Mac yazılımlarına kadar farklı bir akımın temsilcisi. Apple&#8217;ın içinde olduğu bir estetik ve kullanılabilirlik akımının. iPhone&#8217;u iPhone yapan muhteşem teknik özellikleri değil. i900&#8242;la ya da N95&#8242;le karşılaştırma tablosuna koyup yorum yapanlara gülüyorum o yüzden&#8230;</p>
<p>Bu akımın etkilerini 37signals&#8217;ın, Lighthouse&#8217;un sayfaları gibi birçok web2.0 uygulamasında da hissedebilirsiniz. </p>
<p>Eğer bu akımın içine iyice gömülmek istiyorsanız (para da batıyorsa :)) Mac alma zamanınız gelmiştir derim ben&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2009/02/04/macte-sevdiklerim-ve-sevmediklerim/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Selenium ile web projelerinin test edilmesi</title>
		<link>http://www.huysuzadam.com/2008/11/27/selenium-ile-web-projelerinin-test-edilmesi/</link>
		<comments>http://www.huysuzadam.com/2008/11/27/selenium-ile-web-projelerinin-test-edilmesi/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 23:34:35 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Genel]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/?p=156</guid>
		<description><![CDATA[Firefox&#8217;un yavaşlığına katlanmamın tek nedeni extension&#8217;ları.
Güzel bir extension daha yakaladım gezerken: Selenium
Selenium&#8217;a &#8220;şu adrese git, oradaki şu linke tıkla, gelen sayfada şu kelime var mı?&#8221; gibi komutlar kaydedebiliyorsunuz. Komutları tüm browser&#8217;lar çalıştırıyor ancak kaydetme işlemi Firefox extension&#8217;ı ile çok kolay. 
Web sitelerinin test edilmesi için yaratılmış olmakla beraber yapılan aksiyonu PHP ve ruby de dahil [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.huysuzadam.com/wp-content/uploads/2008/11/selenium_logo.png'><img src="http://www.huysuzadam.com/wp-content/uploads/2008/11/selenium_logo.png" alt="Selenium Logosu" title="selenium_logo" width="120" height="109" class="alignright size-full wp-image-157" /></a>Firefox&#8217;un yavaşlığına katlanmamın tek nedeni extension&#8217;ları.<br />
Güzel bir extension daha yakaladım gezerken: <a href="http://selenium.seleniumhq.org/">Selenium</a></p>
<p>Selenium&#8217;a &#8220;şu adrese git, oradaki şu linke tıkla, gelen sayfada şu kelime var mı?&#8221; gibi komutlar kaydedebiliyorsunuz. Komutları tüm browser&#8217;lar çalıştırıyor ancak kaydetme işlemi Firefox extension&#8217;ı ile çok kolay. </p>
<p>Web sitelerinin test edilmesi için yaratılmış olmakla beraber yapılan aksiyonu PHP ve ruby de dahil muhtelif programlama dillerinde çalışacak şekilde export edebildiği için başka servislerden data parse etmek isteyenlerin de işini kolaylaştırabilir. (Denemedim)</p>
<p>Çok lafa gerek yok, screencast&#8217;i herşeyi özetliyor:<br />
<a href="http://selenium.seleniumhq.org/movies/intro.mov">http://selenium.seleniumhq.org/movies/intro.mov</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2008/11/27/selenium-ile-web-projelerinin-test-edilmesi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
<enclosure url="http://selenium.seleniumhq.org/movies/intro.mov" length="9052981" type="video/quicktime" />
		</item>
		<item>
		<title>Kodaman.org</title>
		<link>http://www.huysuzadam.com/2008/11/23/kodamanorg/</link>
		<comments>http://www.huysuzadam.com/2008/11/23/kodamanorg/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 00:54:48 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Genel]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/?p=155</guid>
		<description><![CDATA[Nokta ve Pilli Network ortaklaşa teknolojik bir paylaşım sitesi açmış: kodaman.org 

Dürüst olmak gerekirse tasarım özensiz, tag&#8217;leme ise zayıf. Ama daha yeni olmasına rağmen içerisinde kaliteli teknik dokümanlar var. Dokümanları yazanların bazıları yakınen tanıdığım, Nokta&#8217;nın kocamaaan siteleriyle güreşen ve Türkiye&#8217;nin en iyileri arasında yer alan programcı ve mühendisler&#8230;
Örneğin iltaren&#8217;in memcached ile ilgili yazısı biraz fazla [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nokta.com">Nokta</a> ve <a href="http://www.pilli.com.tr">Pilli Network</a> ortaklaşa teknolojik bir paylaşım sitesi açmış: <a href="http://www.kodaman.org" target="_blank">kodaman.org</a> </p>
<p><a href="http://www.kodaman.org"><img src="http://www.huysuzadam.com/wp-content/uploads/2008/11/untitled-1.gif" alt="kodaman.org" title="kodaman.org" width="250" height="32" class="aligncenter size-full wp-image-159" /></a></p>
<p>Dürüst olmak gerekirse tasarım özensiz, tag&#8217;leme ise zayıf. Ama daha yeni olmasına rağmen içerisinde kaliteli teknik dokümanlar var. Dokümanları yazanların bazıları yakınen tanıdığım, Nokta&#8217;nın kocamaaan siteleriyle güreşen ve Türkiye&#8217;nin en iyileri arasında yer alan programcı ve mühendisler&#8230;</p>
<p>Örneğin iltaren&#8217;in <a href="http://www.kodaman.org/yazi/memcache-veya-memcached">memcached ile ilgili yazısı</a> biraz fazla low level olmakla beraber oldukça faydalı&#8230;</p>
<p>Ya da sonsuz sayıda alt kategorilere sahip datayı organize eden &#8220;<a href="http://www.kodaman.org/yazi/veritabani-programlayamama-yazilari-nested-setler">nested set model</a>&#8221; adlı algoritma da ilginç&#8230;</p>
<p>Nokta ve Pilli&#8217;yi eksik bir noktaya parmak bastıkları için kutluyorum. Umarım tutar&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2008/11/23/kodamanorg/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Basit bir Model-View-Controller altyapısı</title>
		<link>http://www.huysuzadam.com/2008/07/30/basit-bir-model-view-controller-altyapisi/</link>
		<comments>http://www.huysuzadam.com/2008/07/30/basit-bir-model-view-controller-altyapisi/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 00:36:22 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programlama]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/?p=153</guid>
		<description><![CDATA[phpwomen.org diye site varmış, üstelik yarışma düzenliyomuş ödülü Zend Studio lisansıymış.
Üşenmedim, oturdum basit bir PHP altyapısı yazdım gönderdim:
http://www.phpwomen.org/forum/index.php?t=msg&#038;th=488
MVC&#8217;nin yandan yemişi olan bu yapı FotoKritik&#8217;te kullandığımı andırıyor.  
Web tabanlı yazılımlarda kullanılan MVC tip2&#8242;nin dezavantajı aynı işlem için çok dosyayla uğraşma gerekliliği. Controller dosyasında model aksiyonunu çağırıp view&#8217;a assign edeceksiniz, model dosyasında aksiyonu yazacaksınız, view dosyasında [...]]]></description>
			<content:encoded><![CDATA[<p>phpwomen.org diye site varmış, üstelik yarışma düzenliyomuş ödülü Zend Studio lisansıymış.<br />
Üşenmedim, oturdum basit bir PHP altyapısı yazdım gönderdim:</p>
<p><a href="http://www.phpwomen.org/forum/index.php?t=msg&#038;th=488">http://www.phpwomen.org/forum/index.php?t=msg&#038;th=488</a></p>
<p>MVC&#8217;nin yandan yemişi olan bu yapı FotoKritik&#8217;te kullandığımı andırıyor.  </p>
<p>Web tabanlı yazılımlarda kullanılan MVC tip2&#8242;nin dezavantajı aynı işlem için çok dosyayla uğraşma gerekliliği. Controller dosyasında model aksiyonunu çağırıp view&#8217;a assign edeceksiniz, model dosyasında aksiyonu yazacaksınız, view dosyasında da formatlamayı yapacaksınız. Üstüne bi de helper metotları falan gerekirse onları yazacaksınız falan.</p>
<p>Bu yazdığım yapıda ise görüntüleme için tek, insert/update/delete için de iki dosyaya bakmak yetiyor.<br />
Fazla programcının çalışmadığı küçük ve orta boy projeler için verimli bir şekilde kullanılabilir.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2008/07/30/basit-bir-model-view-controller-altyapisi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
