<?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>Huysuz Adam &#187; Web Teknolojileri</title>
	<atom:link href="http://www.huysuzadam.com/tag/web-teknolojileri/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.huysuzadam.com</link>
	<description>Web teknolojileri ile ilgili teknik bir blog...</description>
	<lastBuildDate>Mon, 18 Jul 2011 11:02:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Programlamada Üretim Hızını Arttırmak&#8230;</title>
		<link>http://www.huysuzadam.com/2011/02/12/programlamada-uretim-hizini-arttirmak/</link>
		<comments>http://www.huysuzadam.com/2011/02/12/programlamada-uretim-hizini-arttirmak/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 13:57:27 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[ide'ler]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/?p=493</guid>
		<description><![CDATA[Bir ürün ortaya koyarken, aynı diğer sektörlerde olduğu gibi yazılım sektöründe de maliyet çok önemli elbette. Yazılım ve donanım masraflarını çıkardığımız zaman geriye kalan maliyet yazılımcıların çalışma süresi, bu yüzden de projenin ne kadar hızlı geliştirilirse maliyeti o kadar düşük olur diyebiliriz. İster kendi projenizi geliştiren bir yazılımcı olun, ister bir şirket, bu gerçek değişmiyor. [...]]]></description>
			<content:encoded><![CDATA[<p>Bir ürün ortaya koyarken, aynı diğer sektörlerde olduğu gibi yazılım sektöründe de maliyet çok önemli elbette.</p>
<p>Yazılım ve donanım masraflarını çıkardığımız zaman geriye kalan maliyet yazılımcıların çalışma süresi, bu yüzden de projenin ne kadar hızlı geliştirilirse maliyeti o kadar düşük olur diyebiliriz. İster kendi projenizi geliştiren bir yazılımcı olun, ister bir şirket, bu gerçek değişmiyor.</p>
<p>Tabii üretim hızını arttırırken, bunun tam karşısında dikilen çok önemli bir parametre var, o da <strong>KALİTE</strong> ! Hızlı yazmak uğruna kaliteden ödün vermemeliyiz&#8230; Türkiye&#8217;deki berbat yazılım kalitesinin bence en büyük nedeni bu.</p>
<p><span id="more-493"></span></p>
<h2>Sorun?</h2>
<p>Makine mühendliği eğitimi sırasında üretim planlama ile ilgili derslerimiz vardı. Bunlardan biri de seri üretimde maliyetin düşürülmesi için yapılabilecekler. Mesela bir otomobil üretim bandını düşünün.</p>
<p>Her ne kadar yazılım sektörü ile kıyasladığınızda maliyeti etkileyen çok fazla parametre olsa da, aynen yazılımdaki gibi üretim hızını ne kadar arttırırsanız birim otomobil başına maliyetiniz de o kadar düşer.</p>
<p>Burada hızı optimize ederken en önemli bir prensip vardır:</p>
<blockquote><p>Üretim işleminin hızını arttırmaya zorlarsanız kaliteden kaybedersiniz. Ancak asıl optimize edebileceğiniz nokta, üretim işlemleri arasında ara maddelerin bir yerden bir yere transferi, makineye bağlanması, makineden sökülmesi gibi ara işlemlerdir.</p></blockquote>
<p>Örneğin bir torna işlemini olması gerekenden daha hızlı yaparsanız torna bıçağının ısınması vb. nedenlerden ürettiğiniz malzemenin yüzey KALİTESİ düşer, pürüzsüz bir yüzey yerine tırtıklı bir yüzey elde edersiniz.</p>
<p>Çok benzer bir şekilde kod yazma süreniz 3 aşağı  5 yukarı bellidir. Eğer çok hızlı yazmaya çalışırsanız mutlaka bazı noktaları gözden kaçırmaya başlarsınız. Bunun da acısı birkaç ay sonra çıkar: &#8220;Ben mi yazmışım lan bunu?!?!&#8221;</p>
<h2>Nasıl?</h2>
<p>Peki bu konuda ne yapılabilir? Programcı özelinde baktığımızda bence önemli unsurlardan birisi, aynı seri üretim yapan bir fabrikada olduğu gibi, ara işlemleri optimize etmek. Yani program yazarken rutin olarak yaptığımız ara işlemleri hızlandırmak.</p>
<p>İşte benim optimize ettiğim bazı şeyler. Eğer bu listeye eklemek istediğiniz bir şey varsa lütfen yorum olarak yazın, buraya eklerim&#8230;</p>
<h3>1. Çift Monitör Kullanmak</h3>
<p>Bilkent&#8217;teki işimde monitörümün yanına ikinci bir monitör koyduğum zaman çalışma arkadaşlarımın ilk tepkileri daha çok &#8220;wow ne havalı&#8221; gibi hafif dalga geçen bir yaklaşımdı. Şu an, departman müdürümüz de dahil çoğu kişi çift monitör kullanıyor&#8230;</p>
<p>Nedeni kesinlikle hava atma merakımdan değil. Basit bir rutini devreden çıkartmak: (Alt + TAB) kombinasyonu. Bir proje yazıp test ederken saatte kaç keç alt+tab kombinasyonunu kullandığınızı saydınız mı? Ben de saymadım aslında ama: <strong>ÇOK</strong> :)</p>
<p>Bir monitöre favori browser&#8217;ınızı koyuyorsunuz, diğerine editörü. Editörde yazdığınızın sonucunu browser&#8217;dan karşılaştırıyorsunuz. Ya da CSS ile uğraşıyorsunuz atıyorum. CSS&#8217;i Firebug ile modifiye ederek istediğiniz sonucu elde ediyorsunuz. Sonra yandaki monitörden son halini CSS&#8217;e yazıyorsunuz.</p>
<p>Hatta itiraf ediyorum atuyorum 5 dakika süren bir işlemi yaparken ikinci monitörde minesweeper oynadığım da çoktur :) Çünkü o sırada başka bir işe girerek ilkine olan konsantrasyonumu kaybetmek istemem&#8230;</p>
<h3>2. 10 Parmak Yazabilmek</h3>
<p>Dalga geçmiyorum, hala 2-3 parmakla kod yazmaya çalışan insanlar var yahu!</p>
<h3>3. Shortcut Kullanmak</h3>
<p>Belki abarttığımı düşüneceksiniz ama, hiç klavyeden elinizi kaldırıp mouse&#8217;a götürmenin size vakit kaybettirdiği dikkatinizi çekmiş miydi? Bu hareket belki 0,3 saniye alıyor ama günde belki 10.000 kere yapıyoruz.  Hemen hemen her işlemin bir shortcut&#8217;ı var: Commit et, kaydet, yükle (upload), dosya aç, dosya bul vs.vs. Bazı işlemlerin çok abuk shortcut&#8217;ları olabiliyor, tek elle yapamadığınız. Onları da üşenmeden değiştirin derim&#8230;</p>
<p>Aslında shortcut değil ama, yeni IDE&#8217;lerde code templates diye bir olgu var. Örneğin netbeans&#8217;de &#8220;assign&#8221; yazıp TAB&#8217;a bastığımda $this-&gt;assign(&#8216;parameter&#8217;, $parameter); gibi bir kodu otomatik üretiyor ve cursor &#8216;parameter&#8217; üzerinde oluyor. Onu örneğin &#8216;users&#8217; olarak değiştirdiğimde otomatik olarak $parameter da $users oluyor&#8230;</p>
<p>Kullandığım başka bir trick de Textmate&#8217;ten: Shift + Ctrl Enter yaptığımda bulunduğum satırın sonuna bir noktalı virgül koyup sonraki satıra geçiyor. Bunu netbeans&#8217;de yapmak için basit bir makro kaydetmem gerekti. Bir satırın ortasındayken sona git, noktalı virgül koy, sonra enter&#8217;a bas yerine epey hızlandırıyor beni&#8230;</p>
<p>Siz de kendi hızınızı arttıracak shortcut&#8217;lar üretebilirsiniz.</p>
<h3>4. Programlara Kolay Erişim</h3>
<p>Favori programlarınızı başlat menüsü altından tüm programlara, oradan program dizinine, oradan programa gidip mi çalıştırıyorsunuz?</p>
<p>Her gün kullandığınız programları mac kullanıyorsanız dock&#8217;a ekleyebilir, windows 7 kullanıyorsanız &#8220;pin&#8221; ile taskbar&#8217;a sabitleyebilirsiniz. (Daha eski bir windows kullanıyorsanız önce onu çöpe atmakla işe başlayabilirsiniz!) Günlük kullanmadıklarınızı ise buraya koymayın ki bu sefer de yüzlerce program arasından günlük programınızı aramayın&#8230;</p>
<p>Diğer programlara erişmek için Mac&#8217;te Cmd+Space ile spotlight&#8217;ı açıp programın adını yazabilirsiniz. Aynısını windowsda yapmak için klavyenizdeki windows tuşuna basıp programın adını yazmaya başlayın, başlat menüsü açılıp program listede çıkar, oradan yine klavyeyle seçip açabilirsiniz.</p>
<h3>5. Yıldırım gibi Çalışan Bir Bilgisayar</h3>
<p>Birçok yerde işin bu erbapları der ki:</p>
<blockquote><p>&#8220;Paranızın alabileceği en iyi bilgisayarı alın&#8221;</p></blockquote>
<p>Sonuçta işinize yatırımdır bu. Bir yandan donanım problemleriyle ya da kanıran bir bilgisayarla uğraşırken nasıl konsantre olabilirsiniz ki işinize?</p>
<p>Kullandığınız donanımın birbirine uyumlu olması çok önemli o yüzden marka bilgisayarları tercih etmekte yarar var. Para ayırabiliyorsanız Mac&#8217;i sırf bu yüzden tavsiye ederim. Windows 7 bana göre gerek stabilite, gerek performans, gerekse fonksiyonalite açısından Snow Leopard&#8217;ı solladı ancak donanım olarak Mac kadar düzgün çalışan PC her zaman toplanmıyor. Sessizliği de cabası&#8230;</p>
<p>En son yakın bir arkadaşım bilgisayarının sesinden bıkıp kasayı yan odaya koymaktan bahsediyordu&#8230; Duvarı delip kabloları oradan geçirecekmiş ;)</p>
<p>Windows 7 kullanıyorsanız hızlı bir USB belleği windows 7&#8242;yi hızlandırmak için kulanabilirsiniz. USB&#8217;yi takın ve ekrana çıkan yönlendirmeleri takip edin. Bilgisayarınızın daha hızlı tepki verdiğini görebilirsiniz.</p>
<p>Linux&#8217;a gelince&#8230; Desktop olarak <strong>Kullanmayın!</strong> Bu kadar basit :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2011/02/12/programlamada-uretim-hizini-arttirmak/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<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 [...]]]></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><span id="more-252"></span></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><!--more--></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> <span style="color: #993333; font-weight: bold;">CHARACTER</span> <span style="color: #993333; font-weight: bold;">SET</span> utf8
  <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #993333; font-weight: bold;">COLLATE</span> 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> <span style="color: #993333; font-weight: bold;">INT</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">CHARACTER</span> <span style="color: #993333; font-weight: bold;">SET</span> latin5 <span style="color: #993333; font-weight: bold;">COLLATE</span> 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> <span style="color: #993333; font-weight: bold;">VARCHAR</span><span style="color: #66cc66;">&#40;</span> <span style="color: #cc66cc;">10</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">CHARACTER</span> <span style="color: #993333; font-weight: bold;">SET</span> latin1 <span style="color: #993333; font-weight: bold;">COLLATE</span> 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>20</slash:comments>
		</item>
		<item>
		<title>Yeni başlayanlar için web teknolojileri</title>
		<link>http://www.huysuzadam.com/2007/10/07/yeni-baslayanlar-icin-web-teknolojileri/</link>
		<comments>http://www.huysuzadam.com/2007/10/07/yeni-baslayanlar-icin-web-teknolojileri/#comments</comments>
		<pubDate>Sat, 06 Oct 2007 22:32:33 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Web Teknolojileri]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/2007/10/07/yeni-baslayanlar-icin-web-teknolojileri/</guid>
		<description><![CDATA[Performansın sayfa ziyaret istatistiklerine etkisi ile ilgili bir yazıma gelen bir yorum ne zamandır aklımda olan web teknolojileri üzerine genel bir bilgilendirme yazısını yazma fikrini getirdi aklıma pazar pazar&#8230; Zaten sıkılıyordum :) Konuya tamamen yeni olan kişiler için derinlemesine fakat mümkün olduğunca kısa bir şekilde anlatmaya çalışacağım&#8230; Bu yazıda şunlar var: Tanımlar Web teknolojileri ile [...]]]></description>
			<content:encoded><![CDATA[<p>Performansın sayfa ziyaret istatistiklerine etkisi ile ilgili bir yazıma gelen bir yorum ne zamandır aklımda olan web teknolojileri üzerine genel bir bilgilendirme yazısını yazma fikrini getirdi aklıma pazar pazar&#8230; Zaten sıkılıyordum :)</p>
<p>Konuya tamamen yeni olan kişiler için derinlemesine fakat mümkün olduğunca kısa bir şekilde anlatmaya çalışacağım&#8230; </p>
<p>Bu yazıda şunlar var:</p>
<ul>
<li><strong>Tanımlar</strong><br />
Web teknolojileri ile ilgili tanımlar. Kulak aşinalığı olsun diye&#8230;</li>
<li><strong>İstemci Tarafı Teknolojiler</strong><br />
HTML, CSS, JavaScript, DHTML, Flash nedir</li>
<li><strong>Sunucu Tarafı Teknolojiler</strong><br />
PHP, ASP, JSP, ColdFusion, CGI, Apache, IIS, MySQL, Oracle, PostgreSQL</li>
</ul>
<p><strong>Bu yazı kimler için?</strong></p>
<p>Eğer web hakkında kulaktan dolma birşeyler bulduysanız ama toparlayamadıysanız, bir sürü terim duyuyor ve &#8220;bunlar da ne ola&#8221; diyorsanız kendi kendinize, bu doküman sizin için diyebilirim.</p>
<p>Ayrıca birçok geliştiricinin, hatta çok tecrübeli olanların bile, işin arkaplanını bilmedikleri için bariz hatalar yaptıklarına sürekli şahit oluyorum. Bu uzun sıkıcı yazıyı &#8220;aman biliyorum ben bunları zaten&#8221; demeden okuma sabrını gösterebilirseniz 1-2 ipucu da yakalayabilirsiniz belki&#8230;</p>
<p><span id="more-120"></span></p>
<p><strong style="font-family:Arial;font-size:14px;">Terimler</strong></p>
<p><strong>İstemci (client):</strong>  Web teknolojileri için tarayıcı programınız (browser), yani Internet Explorer, Firefox, Safari, Opera vs.vs. </p>
<p><strong>Sunucu (server):</strong> &#8220;www.huysuzadam.com&#8217;a bağlanıyorum&#8221; dediğinizde tarayıcınızın bağlandığı bir bilgisayar. </p>
<blockquote><p>
Bu sunucu dediğimiz bilgisayar evinizdeki normal bir bilgisayar gibi birşey de olabilir, ya da sürekli yük altında çalışmaya yönelik daha uzun ömürlü, bir parçası yansa bile çalışmaya devam edebilecek, ev bilgisayarlarına göre çok daha hızlı ama gereksiz özelliklerden arındırılmış, az yer kaplasın diye üzerinden silindir geçmiş gibi ince fakat geniş, özel bir bilgisayar da olabilir.
</p></blockquote>
<p><strong>Protokol:</strong> Belirli kurallar dahilinde kurulan bağlantılara internet aleminde protokol adı verilir. Mesela e-posta gönderirken smtp protokolü, internete bağlanırken tcp ve ip protokolleri, web sayfalarına bağlanırken http protokolü kullanılır.</p>
<blockquote><p>
Tarayıcı programlarda adres kısmına &#8220;protokolün_adi://&#8221; şeklinde hangi protokolle bağlanacağınızı yazabilirsiniz. Hemen çok tanıdık gelecek bir örnek vereyim: &#8220;http://&#8221;</p>
<p>Diğer örnekler:<br />
https : Secure http (Güvenli http)<br />
news : News feed dediğimiz haber listeleri.<br />
gopher: Dinazor çağından kalma, web&#8217;in atası diyebileceğimiz bir protokol<br />
huysuzadam : Olsa ne artistik olur di mi&#8230; huysuzadam://huysuz.ozanhazer.com
</p></blockquote>
<p><strong>http protokolü:</strong> Çok detaya girmemeye çalışacağım ama bu protokolün özünde istemci (yani internet explorer vb. olan tarayıcınız) sunucuya bağlanır. Nereden geldiği, hangi program olduğu, sıkıştırılmış dosya okuyup okuyamayacağı, ne tür dosyalardan anladığı, tercih ettiği diller gibi bilgileri sunucuya gönderir. Sonra da hangi sayfayı istediğini söyler. </p>
<p>Mesela http://www.huysuzadam.com/fotograflar/flickr.php adresine bağlandığınızda &#8220;/fotograflar/flickr.php&#8221; adlı sayfanı istiyorum der. Eğer adresin sonunda istenecek sayfa yoksa, yani http://www.huysuzadam.com/ adresine bağlandıysanız istemci &#8220;index&#8221; sayfasını ister.</p>
<blockquote><p>
Burada önemli bir ipucu verdik: Örneğin hangi sayfadan geldiğimizi istemci gönderiyor. İstemci sizin bilgisayarınızda çalışan bir program olduğuna göre kötü niyetli bir kişiyseniz bu bilgiyi işinize gelecek şekilde yanlış gönderebilirsiniz. Üstelik bunun için programcı olmanıza bile gerek yok.
</p></blockquote>
<p><strong>LAMP:</strong> Linux &#8211; Apache &#8211; MySQL &#8211; PHP&#8217;nin kısaltması. Bu 4 yazılımı kullanarak her tür web sitesini yapabilirsiniz. Web teknolojileri arasında dünyadaki en yaygın dörtlüdür bu dörtlü.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2007/10/07/yeni-baslayanlar-icin-web-teknolojileri/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>HTML Validator</title>
		<link>http://www.huysuzadam.com/2007/05/29/html-validator/</link>
		<comments>http://www.huysuzadam.com/2007/05/29/html-validator/#comments</comments>
		<pubDate>Tue, 29 May 2007 18:46:46 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Web Teknolojileri]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/2007/05/29/html-validator/</guid>
		<description><![CDATA[Aslında trendlere çok takılmayan, daha çok pratik bir fakat düzenli, kalıcı çözümler üretmeyi severim. O yüzden de standartları pek sevmem. XHTML yazmam mesela, tableless design umrumda değildir, kod semantik olsun diye dert etmem. Bunların hepsi mutlaka yararları olan standartlar ama aynı zamanda vakit alan, uğraştırıcı şeyler. Ama kodun temiz ve anlaşılır, tüm tarayıcılarda düzgün çalışmasına [...]]]></description>
			<content:encoded><![CDATA[<p>Aslında trendlere çok takılmayan, daha çok pratik bir fakat düzenli, kalıcı çözümler üretmeyi severim. O yüzden de standartları pek sevmem.</p>
<p>XHTML yazmam mesela, tableless design umrumda değildir, kod semantik olsun diye dert etmem. Bunların hepsi mutlaka yararları olan standartlar ama aynı zamanda vakit alan, uğraştırıcı şeyler. Ama kodun temiz ve anlaşılır, tüm tarayıcılarda düzgün çalışmasına dikkat ederim o ayrı.</p>
<p>O yüzden HTML validator, CSS validator türevi kodunuzun ne kadar standartlara uyduğunu kontrol eden programları da pek kullanmam, zira ota boka hata mesajı çıkartırlar.</p>
<p>Mesela bu programlara <a href="http://www.fotokritik.com">FotoKritik</a>&#8216;te fotoğraf listelediğim bir sayfayı verdiğimde (rakamları atıyorum) 187 tane hata bulundu diyor, bunlardan 170&#8242;i &#8220;IMG&#8221; tag&#8217;ına &#8220;ALT&#8221; özelliği koymamam nedeniyle&#8230;</p>
<blockquote><p>Bilmeyenler için: ALT özelliği görme engeli olan kişiler için düşünülmüş bi komuttur ve standartlar mutlaka tüm imajlarda bu özelliğin bulunması gerektiğini söyler. Aslında gerçekten dikkat edilmesi gereken bir kural&#8230;</p></blockquote>
<p>Allahaşkına <a href="http://www.fotokritik.com">FotoKritik</a> bir fotoğraf sitesi, görme engelli arkadaşların yararlanmak isteyeceği belki de son kaynak. Banane ALT özelliğinden&#8230;</p>
<p>Allahtan sağolsun benimle benzer düşünen birileri oturmuş Firefox&#8217;a bir eklenti yazmışlar: <a href="https://addons.mozilla.org/en-US/firefox/addon/249">HTML Validator</a>. Bu eklenti sayesinde HTML kodundaki standart dışı ve hatalı kullanımları listelerken ilgili olmadığını düşündüğünüz hata mesajlarını bir daha göstertmeyebiliyorsunuz. Özellikle sayfa görüntüleme ile ilgili problemlerin keşfinde çok işe yarıyor.</p>
<p><a href="/2007/02/15/web-gelistiricisinin-olmazsa-olmazlari/">Şu yazımda</a> web geliştiricisinin olmazsa olmazı bazı araçları kısaca tanıtmıştım, bu listeye HTML Validator&#8217;ı da eklesem iyi olacak&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2007/05/29/html-validator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web geliştiricisinin olmazsa olmazları</title>
		<link>http://www.huysuzadam.com/2007/02/15/web-gelistiricisinin-olmazsa-olmazlari/</link>
		<comments>http://www.huysuzadam.com/2007/02/15/web-gelistiricisinin-olmazsa-olmazlari/#comments</comments>
		<pubDate>Thu, 15 Feb 2007 15:54:40 +0000</pubDate>
		<dc:creator>M.Ozan Hazer</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Web Teknolojileri]]></category>

		<guid isPermaLink="false">http://www.huysuzadam.com/2007/02/15/web-gelistiricisinin-olmazsa-olmazlari/</guid>
		<description><![CDATA[Arada bir Buces BBS'te ve forumlarda sorulan sorulara bakıyorum, ya da ilgi çekici girişimlerin kaynak kodlarına göz atıyorum. Aslında bir web geliştiricisinin hayatını kolaylaştıran birçok araç ve kütüphane varken insanlar hala zor yolları seçiyor. Ben kullandığım bazı araçlardan bahsedeyim:

   1. Firefox
   2. Firebug
   3. Web Developer Toolbar
   4. Add'N Edit Cookies
   5. Zend Studio
   6. prototype ve script.aculo.us
   7. HTML Validator]]></description>
			<content:encoded><![CDATA[<p>Arada bir Buces BBS&#8217;te ve forumlarda sorulan sorulara bakıyorum, ya da ilgi çekici girişimlerin kaynak kodlarına göz atıyorum. Aslında bir web geliştiricisinin hayatını kolaylaştıran birçok araç ve kütüphane varken insanlar hala zor yolları seçiyor. Ben kullandığım bazı araçlardan bahsedeyim:</p>
<ol>
<li>Firefox</li>
<li>Firebug</li>
<li>Web Developer Toolbar</li>
<li>Add&#8217;N Edit Cookies</li>
<li>Zend Studio</li>
<li>prototype ve script.aculo.us</li>
<li>HTML Validator</li>
</ol>
<p><span id="more-55"></span><strong>Firefox</strong></p>
<p>Ne alaka, bu araç değil altı üstü browser diyeceksiniz belki. Sadece bir browser değil aslında. Extention özelliği <a target="_blank" href="http://www.getfirefox.com">Firefox</a>&#8216;a çok büyük yetenekler kazandırıyor. Aşağıda 3 tane olmazsa olmaz extentiondan bahsedeceğim için öncelikle Firefox kullanmak şart. Hoş zaten &#8220;anti-ie6&#8243;cı bir insan olduğum için herkese tavsiye ediyordum eskiden ama itiraf etmek lazım ki ie7 oldukça başarılı o yüzden normal kullanıcılar illa firefox kullansın diye huysuzluk yapmıyorum artık.</p>
<p><strong>Firebug</strong></p>
<p><a target="_blank" href="http://www.getfirebug.com/">Firebug</a> bir javascript debuggerı, ancak bir debuggerın ötesinde özelliklere sahip. Web 2.0&#8242;la ilgili millet atıp tuta dursun, teknolojik gelişimin bana göre en büyük itekleyicilerinden biri javascript için etkili debugger olarak firebug ve benzeri yazılımların çıkması.</p>
<p>Firebug&#8217;ın en hoşuma giden özellikleri javascript hatalarını gerçekten çok hızlı tespit edebilmemi sağlaması ve CSS direktiflerinin nereden geldiğini gösterebilmesi. Yani sayfanın ortasında bir yerinde bir formatlama görüyorsunuz ama o formatlamayı üst bir tanımdan alıyor eleman ama içiçe fazla tanımımınız olduğu için o formatlamaya neyin yol açtığını bilmiyorsunuz. Bu durumda firebug işinizi epey kolaylaştırıyor. Mutlaka inceleyin.</p>
<p><strong>Web Developer Toolbar</strong></p>
<p>Bu <a target="_blank" href="https://addons.mozilla.org/firefox/60/">inanılmaz bir toolbar</a> gerçekten, adından da çağrışım yapacağı üzere bir web geliştiricisinin ihtiyacı olan, akılınıza gelen gelmeyen hemen herşey mevcut. Anlatmaya sayfalar yetmez (en azından bu yazıda), mutlaka kurun ve kurcalayın.</p>
<p><strong>Add&#8217;N Edit Cookies</strong></p>
<p>Aslında <a target="_blank" href="https://addons.mozilla.org/firefox/573/">bu eklentinin</a> yaptığını web developer toolbar da yapıyor ama &#8220;Don&#8217;t make me think&#8221; felsefesini web sitelerinin ötesinde her tür yazılım uygulamasında aradığım için ek olarak bu eklentiyi de kullanıyorum. Cookie&#8217;lere çok rahat erişim ve değiştirme / ekleme / silme imkanı sağlıyor. Projenizdeki cookie&#8217;den kaynaklanması muhtemel hata ve açıkları denemek için ideal.</p>
<p><strong>Zend Studio (Zend Development Environment)</strong></p>
<p><a target="_blank" href="http://www.zend.com/products/zend_studio">Ödüllü PHP editörü</a>, daha doğrusu IDE&#8217;si. Özellikle 5.5 versiyonu epey stabil olduğu ve daha önce yaşadığım problemlere sahip olmadığı için ayrıca ele almak istedim. ZDE&#8217;denin sevdiğim özellikleri:</p>
<ul>
<li>Kullanıcı tanımlı class, fonksiyon ve değişkenleri tanıma ve tamamlama yeteneği. Özellikle &#8220;Project&#8221; yarattıktan sonra diğer dosyalarda tanımlı elemanları da tamamlıyor.</li>
<li>Tanımlı template&#8217;ler ile çok kullandığım kod parçalarını şablon halinde koda ekleyebiliyorum, inanılmaz hız kazandırıyor. Mutlaka kullanın, kullandırın. (Bkz. Tools / Preferences / Templates )</li>
<li>Fonksiyon adına Ctrl+klik yapınca fonksiyonun tanımlandığı yere gidiyor, fonksiyon farklı dosyadaysa ilgili dosyaya gidip yerini buluyor.</li>
<li>Inspect özelliği ile o dosyada tanımlı fonksiyonları listeliyor.</li>
<li>Debugging yeteneği&#8230;</li>
<li>FTP&#8217;den doğrudan çalışma yeteneği. Hoş, Dreamweaver&#8217;ın &#8220;Site&#8221; yapısı daha kullanışlı geliyor ama n&#8217;apalım&#8230;</li>
<li>&#8220;Analyze code&#8221; fonksiyonu. Her ne kadar bazı durumlarda gereksiz şeyleri raporlasa da&#8230;</li>
<li>Entegre SQL sekmesi. &#8220;Şu tablodaki alanın adı neydi?&#8221; sorusu aklıma geldiğinde hızla cevap alabiliyorum bu sayede.</li>
</ul>
<ul><strong>Versiyon 5.5 ile gelenler:</strong></ul>
<ul>
<li>Font anti-aliasing sorununu gidermişler. DejaVu Sans Mono fontu ve siyah arkaplan ile estetik görünüyor.</li>
<li>Sanki eski versiyonlara göre daha performanslı.</li>
<li>FTP&#8217;deki dosyaları &#8220;Project&#8221;e eklerken dosya olarak değil dizin olarak eklenebiliyordu. Öyle olunca da bir üst dizine ftp çekip webroot&#8217;ı projeye eklemek gerekiyordu. Dosya ekleme imkanı sağlamışlar, daha kullanışlı olmuş.</li>
<li>FTP bağlantısında sorun olduğu zaman tüm editör kitlenebiliyordu, şu an biraz daha iyi gibi.</li>
</ul>
<ul><strong>Sevmediğim yanları</strong></ul>
<ul>
<li>Java tabanlı yazılımları oldum olası sevemedim, nispeten yavaş çalışıyor&#8230; &#8220;Use OS look &#038; feeling&#8221; seçiliyken iyice yavaş.</li>
<li>Buglar&#8230; Ctrl-klik&#8217;le fonksiyona gitme bazen saçmalıyor. Bağlantıda sorun varsa bazen donmalar yapabiliyor vs.vs.</li>
<li>Dreamweaver&#8217;daki &#8220;Site&#8221; mantığı yok. Yani lokal çalışayım sonra bitince sunucuya atayım diyemiyorum. CVS&#8217;le ya da SVN&#8217;le bu tarz birşeyler yapabiliyorsunuz ama aynı işlevi sağlamadığı gibi versiyon planlama için altyapı kurmaya üşeniyorsanız benim gibi, açıkta kalıyorsunuz.</li>
<li>Pahalı&#8230;</li>
</ul>
<p><strong>Prototype ve script.aculo.us</strong></p>
<p>Fanatiği olduğum iki javascript kütüphanesi. <a target="_blank" href="http://www.prototypejs.org/">Prototype</a>, javascript kodlamasını oldukça rahatlatan, cross-browser metotlar ortaya koymuş ve Ajax kütüphanesini de unutmamış. <a target="_blank" href="http://script.aculo.us">script.aculo.us</a> ise çok şık ve zarif efektleri kolaylıkla uygulamanıza imkan veren, prototype&#8217;ın üzerine eklenen bir kütüphane. FotoKritik ve izlesene&#8217;de kullandım ve halen geliştirmekte olduğum projelerde de keyifle kullanmaya devam ediyorum&#8230;</p>
<p><strong>HTML Validator</strong></p>
<p>HTML ve CSS tarafındaki hatalarınızı bulmanızı kolaylaştıran bir araç. Ayrıca dokümanın standartlara uygunluğunu kontrol amaçlı yazıldığı için kendinizi geliştirmenizi sağlıyor. Bana göre en önemli özelliği hataları filtreleyebilmesi. Muhtelif nedenlerden dolayı standartlara her zaman uymak pek mümkün olmuyor. <a href="https://addons.mozilla.org/en-US/firefox/addon/249">HTML Validator</a>&#8216;da ilgilenmediğiniz hataların gösterilmemesini sağlayabiliyorsunuz&#8230;</p>
<p><strong>Ek bilgi</strong></p>
<p>webdr&#8217;nin tercih ettiği eklentilere <a href="http://www.langturk.com/firefox-webmaster-eklentileri/">şuradan ulaşabilirsiniz</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.huysuzadam.com/2007/02/15/web-gelistiricisinin-olmazsa-olmazlari/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

