<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Pecsimeth</title>
	
	<link>http://www.pecsimeth.com</link>
	<description>Programlama Kütüphaneniz, Your Programming Library</description>
	<pubDate>Sat, 18 Oct 2008 14:45:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/PecsiFeed" type="application/rss+xml" /><item>
		<title>XSL (Extensible Style Language) nedir?</title>
		<link>http://feeds.feedburner.com/~r/PecsiFeed/~3/424652026/xsl-extensible-style-language-nedir.jsp</link>
		<comments>http://www.pecsimeth.com/2008/10/xsl-extensible-style-language-nedir.jsp#comments</comments>
		<pubDate>Sat, 18 Oct 2008 14:43:48 +0000</pubDate>
		<dc:creator>BarTiMaEuS</dc:creator>
		
		<category><![CDATA[XSL]]></category>

		<category><![CDATA[extensible markup language]]></category>

		<category><![CDATA[extensible style language]]></category>

		<category><![CDATA[html]]></category>

		<category><![CDATA[root element]]></category>

		<category><![CDATA[what is xml]]></category>

		<category><![CDATA[what is xsl]]></category>

		<category><![CDATA[xml]]></category>

		<category><![CDATA[xml attribute]]></category>

		<category><![CDATA[xml formatlama]]></category>

		<category><![CDATA[xml formatting]]></category>

		<category><![CDATA[xml nedir]]></category>

		<category><![CDATA[XPATH]]></category>

		<category><![CDATA[xsl nedir]]></category>

		<category><![CDATA[xsl:template]]></category>

		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://www.pecsimeth.com/?p=20</guid>
		<description><![CDATA[Geçtiğimiz günlerde şirkette &#8216;fonbase&#8217; adlı web tabanlı program için yeni bir menu yapmak durumunda kalmıştım. Eski menü flash tabanlıydı ve verileri bir xml dosyasından okuyordu. Haliyle ben de yeni bir menü yapacağımdan ve mevcut xml yapısını bozmak istemediğimizden (olur da flash menüyü tekrar kullanmak durumunda kalırız vs. diye), mevcut xml içindeki verileri okuyup, html içine [...]]]></description>
			<content:encoded><![CDATA[<p>Geçtiğimiz günlerde şirkette &#8216;fonbase&#8217; adlı web tabanlı program için yeni bir menu yapmak durumunda kalmıştım. Eski menü flash tabanlıydı ve verileri bir xml dosyasından okuyordu. Haliyle ben de yeni bir menü yapacağımdan ve mevcut xml yapısını bozmak istemediğimizden (olur da flash menüyü tekrar kullanmak durumunda kalırız vs. diye), mevcut xml içindeki verileri okuyup, html içine gömebilecek bir yapı oluşturmamız gerekti ve haliyle bu yapıyı oluşturmak için de bunu yapabilecek bir programlama dili ihtiyacına girdim. Ben &#8216;acaba java ile xmlden okuyup mu jsp&#8217;ye gömsek&#8217; diye düşünürken ve bu öneri ile <a href="http://java.manyaklari.org/biz-kimiz">vinnie</a>&#8216;ye gittiğimde bana bunun yerine XSL kullanabileceğimi söyledi. Ve ben de &#8216;XSL de ne yahu&#8217; moduna girip araştırmaya koyuldum. Şimdi XSL nedir biraz inceleyelim:</p>
<p>XSL, bir XML dökümanını başka bir XML dökümanına yada başka bir formata (text vs.) dönüştürmek için kullanılan bir programlama dilidir. XSL kendisi de bir xml dilidir ve XML&#8217;in uyduğu tüm kurallara uyar.<br />
XSL konu olarak iki bölüme ayrılır. Bunlardan biri XSL&#8217;in dili olan XSLT, diğer bölümü ise XSL Formatting Objects&#8217;dir (XSL Biçimlendirme Nesneleri). XSL Formatting Objects CSS ile benzerlik göstermektedir. Biz burada sadece XSLT&#8217;yi inceleyeceğiz.</p>
<p>XSLT çalışma mantığı basitçe şudur: Ağaç şeklinde oluşan XML dökümanından belirli bölümler seçilir ve bu bölümlerdeki degerler alınarak(bu root elementi, element içindeki attiribute&#8217;u veya attribute&#8217;a ait text olabilir) belirli bir döküman formatına sokulur (genelde HTML). Bir dökümanın bir parçasını seçmek için XPATH kullanılır.<br />
<span id="more-20"></span><br />
XML dökümanları element&#8217;lerin hiyerarşik bir şekilde sıralanmasından oluşur. root element&#8217;inin içinde başka element&#8217;ler, o element&#8217;lerin içinde başka element&#8217;ler olabilir. Bazı element&#8217;lerin attribute&#8217;lari olabilir. Bazı element&#8217;lerin içinde sadece text olabilir. İşte XPATH bu hiyerarşi içideki element&#8217;lere, attribute&#8217;lara veya text&#8217;lere erişmenizi sağlayan bir <strong>adresleme sistemidir</strong>.</p>
<p>XPATH&#8217;te bir adres tam adres olabileceği gibi göreli bir adres olabilir. Bu web sayfaları için kullanılan göreli isimlere benzer. Örneğin aynı klasörün içindeki web sayfalarından diğerine sadece adı ile erişebilir. Bunun gibi birbirine göre durumlara göre XPATH kullanılabilir.</p>
<p>Önce bir dökümanın root elementini yakalayalım. Bunun için / işareti kullanılır. Eğer root element&#8217;nin hemen altında title element&#8217;ine erişmek istiyorsanız /title yazmanız gerekir. Aşağıdaki örnekte title element&#8217;i yakalanmakta ve her title için h1 element&#8217;i koyulmaktadır. title element&#8217;inin text&#8217;i de h1 element&#8217;inin içine koyulmaktadır.<br />
XML dökünmanı:</p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;book<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;title<span style="font-weight: bold; color: black;">&gt;</span></span></span>Hello<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/title<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/book<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p>XSL:</p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:stylesheet</span> <span style="color: #000066;">xmlns:xsl</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/1999/XSL/Transform&quot;</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:template</span> <span style="color: #000066;">match</span>=<span style="color: #ff0000;">&quot;book/title&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
  	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;html<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;.&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
  		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/html<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:template<span style="font-weight: bold; color: black;">&gt;</span></span></span>	
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:stylesheet<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p>HTML çıktısı:</p>

<div class="wp_syntax"><div class="code"><pre>&lt;html&gt;&lt;body&gt;Hello&lt;/body&gt;&lt;/html&gt;</pre></div></div>

<p>İlk satırda  ile XSL tanımı yapılmaktadır. Template&#8217;in match attribute&#8217;unu book/title yaparak book element&#8217;inin içindeki title element&#8217;ini yakalamış oluyoruz. Görüldüğü gibi bir XML document&#8217;inden bir HTML document&#8217;i elde etmiş olduk.</p>
<p>Herhangi bir element&#8217;in içindeki element&#8217;i yaklamak için için /element1/element2/element3 şeklinde bir path kullanılır. Eğer title element&#8217;inin içindeki name element&#8217;i yakalamak istiyorsak:</p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:template</span> <span style="color: #000066;">match</span>=<span style="color: #ff0000;">&quot;book/title/name&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span></pre></div></div>

<p>şeklinde bir match kullanmalıyız. XPATH göreli olarak kullanılabilir. Örneğin aşağıdaki örnekte önce root element&#8217;i yakalanmakta, sonra title elementi yakalanmakta daha sonrada name element&#8217;i yakalanmaktadır.</p>
<p>XML dökümanı:</p>

<div class="wp_syntax"><div class="code"><pre class="xml">&nbsp;
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;book<span style="font-weight: bold; color: black;">&gt;</span></span></span>
   	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;title<span style="font-weight: bold; color: black;">&gt;</span></span></span>
   		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;name<span style="font-weight: bold; color: black;">&gt;</span></span></span>Ali<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/name<span style="font-weight: bold; color: black;">&gt;</span></span></span>
   	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/title<span style="font-weight: bold; color: black;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/book<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p>XSL dökümanı:</p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:stylesheet</span> <span style="color: #000066;">xmlns:xsl</span>=<span style="color: #ff0000;">&quot;http://www.w3.org/1999/XSL/Transform&quot;</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:template</span> <span style="color: #000066;">match</span>=<span style="color: #ff0000;">&quot;/&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
   	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;html<span style="font-weight: bold; color: black;">&gt;</span></span></span>
   		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
   			<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:apply-templates</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
   		<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/body<span style="font-weight: bold; color: black;">&gt;</span></span></span>
   	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/html<span style="font-weight: bold; color: black;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:template<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:template</span> <span style="color: #000066;">match</span>=<span style="color: #ff0000;">&quot;title&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
  	<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;h1<span style="font-weight: bold; color: black;">&gt;</span></span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;name&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/h1<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:template<span style="font-weight: bold; color: black;">&gt;</span></span></span>	
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:stylesheet<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p>Oluşan HTML:</p>

<div class="wp_syntax"><div class="code"><pre>&lt;html&gt;
   &lt;body&gt;
&nbsp;
   &lt;h1&gt;Ali&lt;/h1&gt;
   &lt;/body&gt;
   &lt;/html&gt;</pre></div></div>

<p>XSLT&#8217;de önce / ile root element&#8217;i yakalanmaktadır.  ile root element&#8217;leri içindeki element&#8217;ler için yaratılmış tüm template&#8217;ler çağrılmaktadır. Biz title için de bir template yapmış olduğumuzdan title template&#8217;i de çağrılmaktadır. title template&#8217;i çağrıldığı zaman seçili element title olmaktadır. Bu yüzden name element&#8217;ine ulaşmak için yanlızca name element&#8217;inin adını yazmak yeterlidir. Eğer root içinden erişseydik book/title/name yazmamız gerekirdi.</p>
<p>Bir element&#8217;in attribute&#8217;una erişmek içinse @ işareti kullanılır. örneğin title element&#8217;inin size attribute&#8217;una erişmek için title/@size yazılması gerekir. Aşağıdaki örnekte title element&#8217;inin size attribute&#8217;u yakalanmakttadır ve değeri h1 element&#8217;inin içine konulmaktadır.</p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;h1<span style="font-weight: bold; color: black;">&gt;</span></span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;book/title/@size&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/h1<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p>Tüm element&#8217;leri seçmek için * işareti kullanılır. Örneğin book/* book element&#8217;tinin içindeki tüm element&#8217;ler anlamına gelir. . işareti ise seçili olan element demektir. Örneğin seçili element title ise onun attribute&#8217;si size&#8217;ın değeri</p>

<div class="wp_syntax"><div class="code"><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;h1<span style="font-weight: bold; color: black;">&gt;</span></span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;./@size&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/h1<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre></div></div>

<p>şeklinde alınabilir.</p>
<p>XSL ile ilgili bu döküman şimdilik bu kadar. Biraz kendimden bira ise godoro.com dan yararlandım. Daha sonra XSL&#8217; in işlevsel özelliklerinden bahseden bir yazı ile bu konuya devam edeceğim.</p>
<p>Daha fazlası için <a href="http://www.pecsimeth.com/forum">buradan</a> da yararlanabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pecsimeth.com/2008/10/xsl-extensible-style-language-nedir.jsp/feed</wfw:commentRss>
		<feedburner:origLink>http://www.pecsimeth.com/2008/10/xsl-extensible-style-language-nedir.jsp</feedburner:origLink></item>
		<item>
		<title>Yazılım Geliştirmeye Değişik Bir Bakış</title>
		<link>http://feeds.feedburner.com/~r/PecsiFeed/~3/323174925/yazilim-gelistirmeye-degisik-bir-bakis.jsp</link>
		<comments>http://www.pecsimeth.com/2008/06/yazilim-gelistirmeye-degisik-bir-bakis.jsp#comments</comments>
		<pubDate>Mon, 30 Jun 2008 11:27:10 +0000</pubDate>
		<dc:creator>BarTiMaEuS</dc:creator>
		
		<category><![CDATA[Genel Programlama]]></category>

		<category><![CDATA[bakış açısı]]></category>

		<category><![CDATA[geliştirme]]></category>

		<category><![CDATA[konsantrasyon]]></category>

		<category><![CDATA[program geliştirme]]></category>

		<category><![CDATA[programcı]]></category>

		<category><![CDATA[programcılıkta konsantrasyon]]></category>

		<category><![CDATA[programcılıkta müzik]]></category>

		<category><![CDATA[programlama sanatı]]></category>

		<category><![CDATA[sanat]]></category>

		<category><![CDATA[sanat ve programlama]]></category>

		<category><![CDATA[sanat ve yazılım]]></category>

		<category><![CDATA[sanatçı ve programcı]]></category>

		<category><![CDATA[yazılım]]></category>

		<category><![CDATA[yazılım geliştirme]]></category>

		<category><![CDATA[yazılım geliştirmeye değişik bir bakış]]></category>

		<category><![CDATA[yazılımcı]]></category>

		<category><![CDATA[yazılımcılık ve konsantrasyon]]></category>

		<category><![CDATA[yazılımcılık ve müzik]]></category>

		<guid isPermaLink="false">http://www.pecsimeth.com/?p=19</guid>
		<description><![CDATA[Vakti zamanında mail olarak almıştım bu yazıyı, çok hoşuma gitmişti. Bugün de &#8220;acaba ne yazsam, yada hangi dökümanı yada makaleyi eklesem, hangi dille ilgili yazı yazsam yada alıntı yapsam&#8221; diye düşünürken aklıma bu döküman geldi ve &#8220;biraz da değişiklik olsun hep aynı modda mı yazıcaz&#8221; diyerekten mail inbox&#8217;ımın derinliklerinden bu güzel yazıyı sizin için çıkarayım [...]]]></description>
			<content:encoded><![CDATA[<p>Vakti zamanında mail olarak almıştım bu yazıyı, çok hoşuma gitmişti. Bugün de &#8220;acaba ne yazsam, yada hangi dökümanı yada makaleyi eklesem, hangi dille ilgili yazı yazsam yada alıntı yapsam&#8221; diye düşünürken aklıma bu döküman geldi ve &#8220;biraz da değişiklik olsun hep aynı modda mı yazıcaz&#8221; diyerekten mail inbox&#8217;ımın derinliklerinden bu güzel yazıyı sizin için çıkarayım dedim. Umarım okurken benim gibi keyif alırsınız.</p>
<blockquote><p>
Programcılıkta sabahlamanın verdiği huzur ve tatmin çok meşhur. Programcılar sabaha kadar çalışma konusunda herkesi şaşırtan derecede istekli ve beceriklidir. Bu gece çalışması boyunca beyin bir &#8220;akış&#8221; yakalayarak saatlerin su gibi geçtiği bir çalışma ortamı oluşur. Bu çalışma sırasında beyin en derin konsantrasyon düzeylerine erişir ve genellikle zor programlar bu kesintisiz, onlarca saat süren çalışmalarda ortaya çıkar. Beyin bu stilde çalışırken kişilerin mutlu oldukları, mutluluk düzeylerinin arttığı bilimsel çalışmalarla gözlemlenmiştir. Bu çalışmalar eski Chicago Üniversitesi Psikoloji Bölüm Başkanı Mihaly Csikszentmihalyi tarafından yapılmıştır. Çalışmalarda çeşitli disiplinlerden yüzlerce kişinin günlük uğraşları incelenmiş ve bu sırada &#8220;mutluluk&#8221; düzeyleri gözlemlenmiştir. Bu çalışmaların programcılar tarafındaki bulguları ise ilginçtir. Her ne kadar programcılık bir bilim dalı (Computer Science), bir mühendislik (Software Engineering) olarak düşünülse de programcıların beyninin sanatçıların çalışma stiline sahip olduğu ortaya çıkmıştır. Programcılık sırasında beyin bir &#8220;akış&#8221; moduna geçmekte, etraftan ilişkisini kesmekte ve bir probleme günlerce konstantre olabilmektedir.<br />
<span id="more-19"></span><br />
Başarılı programcıların çoğu konsantrasyon yetenekleri ile çevrelerini şaşırtır. Saatlerce sıkılmadan bir ekran başında vakit harcayabilirler. Bu saatler bir çok kez günlere kadar uzayabilir. Yaşamsal faaliyetler dışında hemen hemen her şeyden izolasyon gereklidir. Microsoft&#8217;ta Office yazılım geliştirme ekibinden bir programcının kendini odasına kilitleyip &#8220;bitmeden çıkmayacağım&#8221; demesi, Bill Gates&#8217;e bile kapıyı açmaması meşhurdur. Bu olay daha sonra Douglas Coupland&#8217;ın Microserfs (1996) kitabına konu olmuştur. Bu sırada kendini odaya kilitleyen programcının arkadaşlarının süper marketten gidip yassı yiyecekler alması ve kapının altından odaya atmaları, programcılar arasındaki dayanışmanın güzel ve sevimli bir örneği. </p>
<p>Bu çalışma sırasında programcı en derin düşüne moduna geçer ve etraftan kendini izole etmeye çalışır. Bir çok programcı bu amaçla müziği kullanır. Ancak müziğin programcılık sırasında beyne olan etkileri üzerine yapılan çalışmaların bulguları şaşırtıcıdır. Kreatif programlama ile müzik dinleme sırasında kullanılan beyin bölgesi aynıdır. Beyin bir müziğe konsantre olmuşken çok derin programcılık yapılamıyor. Ya da yeteri kadar iyi yapılamıyor. Programcının müziği kapatınca etraftaki gürültünün etkisi ile müziği dinlediğinde beynin gerekli bölgesinin meşgul edilmesi arasında bir tercih yapması gerekir. Tahminen bu nedenle izolasyon amaçlı müzik kullanımında elektronik müziğin, hard rock, alternatif rock ve heavy metal gibi müzik türlerinin daha fazla tercih edildiği görülür. Müzik, beyin ve programcılar üzerinde çalışmalar halen sürüyor, bu derin konu araştırılmaya devam ediyor. Şu anki bulgular, kritik kodların geliştirilmesi ve müzik dinleme sırasında kullanılan beyin bölgelerinin aynı olduğunu gösteriyor. Monoton kodlama (maintenance) diyebileceğimiz program geliştirme kısmı ise beynin başka bir bölümünde gerçekleşir. Bu tür kodların geliştirilmesi sırasında müziğin programlamaya herhangi bir negatif etkisi görülmemiştir. </p>
<p>Programcının kritik kodları yazmak için ihtiyaç duyduğu &#8220;akış&#8221; modunu koruyabilmesi için izolasyona ihtiyacı bulunur. Bu izolasyon arttıkça çalışma derinleşir, ilk önce beyinde yazılmak istenen programın çatısı oluşur, problem önce beyinde çözülür, daha sonra beyinde çözülen bu problem koda çevrilir. Programcının beyni pencereden dışarıyı seyrederken ya da gözler sabit bir yere bakıp dalıp gittiği zaman bu problem çözülmeye çalışılır. Hatta programcının beyni bu problemi uyurken, araba sürerken ve diğer başka monoton işleri yaparken ele almaya devam eder. Bu durumda sıfırdan ve baştan yazılan bir programa bakıldığında kodlama toplam sürenin oldukça az bir bölümünü almaktadır. </p>
<p>Bu çalışma sırasında beyin son derece karmaşık bir aktivite içerisine girmiştir. Var olmayan bir çözümü oluşturmak için &#8220;kreatif&#8221; süreç başlamıştır. Bu süreç duyu organlarını izole etmiş ve yaratıcılığa yoğunlaşmıştır. Bu süreç sırasında programcı onlarca konuda karar vermektedir. Değişken isimlerinden, akış yöntemlerine, parametrelerin cinsinden, kullanıcı ara birimine kadar bir programcı sürekli bir &#8220;karar alma&#8221; uğraşısı içerisindedir. Programcılar bu nedenle bir günde yüzlerce kararın altına imza atma becerisine sahip iyi birer karar vericidirler. </p>
<p>Tam bu yoğun programlama sırada birisinin programcının omzuna dokunduğu zaman bir &#8220;ara verme&#8221; operasyonu başlar. Bu ara verme operasyonu tam gaz giden bir arabada aniden frene basma gibidir. Derinleşen &#8220;kreatif&#8221; süreç derinliğini yitirir ve duyu organları &#8220;açılarak&#8221; omuza dokunan kişi ile iletişime geçilir. Bu geçiş çoğu zaman o kadar kolay olmamakta ve programcılar bu nedenle zor iletişim kurulan kişiler olarak görülmektedir. Bir soru sorulmaktadır. Eğer bu soru şu an üzerinde çalışılan konuyla ilgili ise mevcut kreatif süreç bu soruyu cevaplamakta kullanılır. Sorunun &#8220;bağlam&#8221; ile ilgili olması, sürecin durdurulmasını gerektirmez. Örneğin bir veri tabanı tasarımında yandaki programcı bir tablodaki alanın ne işe yaradığını sorduğunda süreç durdurulmadan cevap verilebilir. Cevabın verilmesi için gerekli bütün malzeme, zaten o sırada beynin çalışma bölgesine getirilmiş hazır halde bulunmaktadır. </p>
<p>Ama eğer bu soru bambaşka konularla ilgiliyse: &#8220;Bu iş ne zaman bitecek&#8221;ten tutun da , &#8220;dün maçı seyrettin mi?&#8221; ye kadar değişik açılardan gelen bir soru olabilir. Bu durumda ancak bu kreatif süreç durdurularak bu soruya cevap verilebilmektedir. Ya da çoğu programcı bu soruyu &#8220;duyacak&#8221; ama &#8220;algılamayacaktır&#8221;. O an durumu kurtaracak bir cevap vereceklerdir: &#8220;yarına biter&#8221; vs gibi. Yapılan basittir: kreatif süreç bölünmeden çalışmaya devam etmek istenmektedir. Bu sırada soruyu soran kişi doğal olarak programcıların zor iletişim kurulan kişiler olduğunu düşünecektir. Oysa programcının beyni hız kesmemeye çalışmaktan başka bir şey yapmamaktadır. </p>
<p>Programcılar çoğu zaman konuşmayı pek sevmeyen ve zor iletişim kuran kişiler olarak bilinmektedir. Bu yanlış inancın temelinde, programcıların konsantre olma yetenekleri ve bölünmelere karşı geliştirdikleri iletişim &#8220;önlemleri&#8221; yatmaktadır. Oysa yazılım geliştirme ekipleri oldukça konuşkan olabilirler. Fark konuşulan konularda yatmaktadır&#8230; &#8220;Windows mu iyidir, Linux mu?&#8221; tartışmalarını dinleseniz programcıların az iletişim kurdukları konusundaki fikirleriniz tam tersi yönde değişecektir. </p>
<p>Eğer bölündüğü sırada programcı soruyu tam olarak algılayıp doğru bir cevap vermeye çalışırsa, soru &#8220;bağlam&#8221; dışı ise kreatif sürecin durması gerekmektedir. Duran bu akışın yeniden eski kaldığı noktaya geri dönebilmesi, kişiye çok bağlı olmakla beraber, on beş dakikaya kadar çıkabilmektedir. Konsantre olma yeteneği yüksek olan programcılar bölünen bu süreci daha hızlı bir sürede eski noktaya getirebilmektedir. </p>
<p>Programcılık sırasında beynin bu çalışma stilinin anlaşılması programlama ortamlarının ne kadar özenle seçilmesi gerektiği konusunda önemli ipuçları sağlamaktadır. Programcıların bu bölünmelerden korunması gereklidir. Daha da önemlisi programcıların kendilerini bu bölünmelerden korumaları gerekmektedir. Csikszentmihalyi ve ekibin yaptığı çalışmalar bu derin çalışma sürecinin ne kadar kırılgan olduğunu ve izolasyona ihtiyaç duyduğunu açığa çıkarmaktadır. </p>
<p>Kanımca bir çok yazılım hatası (bug) bu bölünmeler sırasında ortaya çıkmaktadır. Televizyonda bir motor yağı reklamını izlediğimi hatırlıyorum. Reklamda &#8220;motor ısınıncaya kadar olan sürede aşınır yıpranır oysa bu motor yağı mıknatıs özelliklerine sahiptir ve motor çeperine yapışık kalarak ısınma sırasında bile motorun yıpranmasını önler&#8221; diyordu. Bu reklamda anlatılan olayı programcılıkta çok gördüğümüzü düşünüyorum. Yeteri kadar ısınmadan, soğuk bir &#8220;beyinle&#8221; yapılmaya başlanılan programcılık sonucunda oldukça &#8220;hatalı (bogus)&#8221; kodlar üretildiğini düşünüyorum. </p>
<p>Meslek hayatımda karşılaştığım binlerce yazılım hatasını masaya yatırdığımda bu tür hatalarla karşılaştığımı görüyorum. Hataların bu kreatif sürecin hangi aşamasında yazılmış olabileceğini tahmin etmeye çalışıyorum. Bir programcı bölünme ile karşılaştığı zaman -üstelik bu bölünme bir SMS mesajı yazmak gibi zor ve zahmetli olup, beyni oldukça uğraştıran cinsten ise- programlama sürecinin beyinde eski aktivite düzeyine yükselmesi çoğu zaman yaklaşık 15 dakika sürecektir. Bu süreç sırasında hatasız bir kod üretimi için programcının kritik bir kod yazmaması gereklidir. Konsantrasyonun tam sağlanamayacağı bu ısınma dönemi, unutulan kontroller, atlanan olasılıklar ve hiç kodlanmayan program akış dallarına neden olacaktır. </p>
<p>Çağımızda bu bölünmelerin başlıca sebepleri cep telefonları, gelen SMS mesajları ve Instant Messaging programlarıdır. Bölünmemek için iletişimsizliğe ihtiyacımız varken çağımız bir iletişim çağı olmuştur. Watts Humprey, Software Engineering Institute tabanlı Personal Software Process&#8217;in (Kişisel Yazılım Süreci - PSP) geliştiricilerinden birisidir. Kendisi uzun yıllar IBM&#8217;de çalışmış, OS390 projesinde yer almış ve yazılım geliştirmenin önemli duayenlerinden birisi olmuştur. PSP bir programcının iyi program yazması konusunda kendini nasıl geliştireceğinin ana hatlarını çizer. Humprey&#8217;in PSP&#8217;yi anlattığı &#8220;Introduction to PSP&#8221; kitabını aldığımda şaşırdığım bir konu olmuştu. Kitabın ilk bölümlerinin zaman yönetimi ve bu bölünmelere karşı mücadele olduğunu görüp şaşırmıştım. Humprey, programcıları bu bölünmelerle mücadele konusunda bilinçlendirmeye çalışıyordu. </p>
<p>Yazılım geliştirme sürecinin tam verimiyle çalışması için bu sürecin korunmaya ihtiyacı olduğu çok açık. Bir programcının etrafında oturanlar, yöneticileri, ona SMS gönderenler bu sürecin geç cevap alacaklarının farkında olmalıdır. Böyle bir zihinsel durumdaki yazılım geliştirmeciyle olan iletişim senkron (eş zamanlı) değil asenkron (farklı zamanlarda) olmalıdır. Şu sıralar programcılıkta popüler olan yeni bir akım var. Entegre edilen sistemlerin birbirleriyle senkron bağlantılar yerine &#8220;loosely coupled&#8221; (gevşek eşleştirme) dediğimiz asenkron yöntemlerle bağlanması. Sanırım &#8220;akış&#8221; anını yakalamış bir programcı ile iletişimin de en sağlıklısı &#8220;loosely coupled&#8221; türden olacaktır
</p></blockquote>
<p>Bu yazıya <a href="http://www.pecsimeth.com/forum/index.php?act=konugor&#038;TopicID=144">buradan</a> da ulaşabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pecsimeth.com/2008/06/yazilim-gelistirmeye-degisik-bir-bakis.jsp/feed</wfw:commentRss>
		<feedburner:origLink>http://www.pecsimeth.com/2008/06/yazilim-gelistirmeye-degisik-bir-bakis.jsp</feedburner:origLink></item>
		<item>
		<title>Pecsimeth Web Tasarım</title>
		<link>http://feeds.feedburner.com/~r/PecsiFeed/~3/322247737/pecsimeth-web-tasarim.jsp</link>
		<comments>http://www.pecsimeth.com/2008/06/pecsimeth-web-tasarim.jsp#comments</comments>
		<pubDate>Sat, 28 Jun 2008 22:06:00 +0000</pubDate>
		<dc:creator>BarTiMaEuS</dc:creator>
		
		<category><![CDATA[Site Haberleri - Site News]]></category>

		<category><![CDATA[applet]]></category>

		<category><![CDATA[arama motorları]]></category>

		<category><![CDATA[asp]]></category>

		<category><![CDATA[bedava web stesi]]></category>

		<category><![CDATA[bedava web taslağı]]></category>

		<category><![CDATA[css]]></category>

		<category><![CDATA[ekonomik]]></category>

		<category><![CDATA[flash]]></category>

		<category><![CDATA[free web template]]></category>

		<category><![CDATA[html]]></category>

		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[kolay]]></category>

		<category><![CDATA[nasıl]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[seo]]></category>

		<category><![CDATA[tema]]></category>

		<category><![CDATA[ucuz]]></category>

		<category><![CDATA[web design]]></category>

		<category><![CDATA[web dizayn]]></category>

		<category><![CDATA[web sitesi teması]]></category>

		<category><![CDATA[web sitesi yapmak]]></category>

		<category><![CDATA[Web Tasarım]]></category>

		<category><![CDATA[web taslağı]]></category>

		<guid isPermaLink="false">http://www.pecsimeth.com/?p=18</guid>
		<description><![CDATA[Pecsimeth Web Tasarım bölümü açıldı!!! Programlama dünyasına attığımız adımı web tasarım dünyasına da atarak hem programlamayla dizaynın buluştuğu bu dunyaya kendi uslubumuz vasıtasıyla renk katıyoruz, hem de bu kulvarda kalite ve standartlarımız doğrultusunda ucuzluk ve kaliteyi bir araya getiriyoruz. 

Kisisel veya sirketinize özel sitelerinizi HTML(sade), ASP veya PHP ile Flash yada Java Applet teknolojisi gibi [...]]]></description>
			<content:encoded><![CDATA[<p>Pecsimeth Web Tasarım bölümü açıldı!!! Programlama dünyasına attığımız adımı web tasarım dünyasına da atarak hem programlamayla dizaynın buluştuğu bu dunyaya kendi uslubumuz vasıtasıyla renk katıyoruz, hem de bu kulvarda kalite ve standartlarımız doğrultusunda ucuzluk ve kaliteyi bir araya getiriyoruz. </p>
<p><img width="550px" height="287px" src="http://www.pecsimeth.com/design/images/webdesign.JPG" alt="Pecsimeth Web Dizayn " /></p>
<p>Kisisel veya sirketinize özel sitelerinizi HTML(sade), ASP veya PHP ile Flash yada Java Applet teknolojisi gibi görsel teknolojileri de kullanarak deneyimli programci kadromuzla istediginiz tasarim kapsaminda tasarliyoruz.</p>
<p>Ayrıca sitemizde bulunan bedava web sitesi taslakları (free web templates) ile kendi amatör tasarımınızı geliştirebilir bu konuda bizden yardım alabilir, isterseniz tasarımı ve kurulumu bize yaptırabilirsiniz. </p>
<p>Siz de sitenizin tasarımını ekonomik ve kaliteli bir biçimde yaptırmak istiyorsanız <a href="http://www.pecsimeth.com/design/index.html">Pecsimeth Web Dizayn</a> sizin için ideal. </p>
<p>Pecsimeth Web Dizayn bölümüne ulaşmak için üst bölümdeki sayfa sekmelerini kullanabilir yada <a href="http://www.pecsimeth.com/design/index.html">http://www.pecsimeth.com/design</a> linkinden bölüme ulaşabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pecsimeth.com/2008/06/pecsimeth-web-tasarim.jsp/feed</wfw:commentRss>
		<feedburner:origLink>http://www.pecsimeth.com/2008/06/pecsimeth-web-tasarim.jsp</feedburner:origLink></item>
		<item>
		<title>Ajax’ı Anlamak</title>
		<link>http://feeds.feedburner.com/~r/PecsiFeed/~3/311157187/ajaxi-anlamak.jsp</link>
		<comments>http://www.pecsimeth.com/2008/06/ajaxi-anlamak.jsp#comments</comments>
		<pubDate>Fri, 13 Jun 2008 13:53:17 +0000</pubDate>
		<dc:creator>BarTiMaEuS</dc:creator>
		
		<category><![CDATA[Ajax]]></category>

		<category><![CDATA[ajax anlamak]]></category>

		<category><![CDATA[ajax logic]]></category>

		<category><![CDATA[ajax mantığı]]></category>

		<category><![CDATA[ajax nedir]]></category>

		<category><![CDATA[ajax tekniği]]></category>

		<category><![CDATA[ajax'ı anlamak]]></category>

		<category><![CDATA[neden ajax]]></category>

		<category><![CDATA[xml]]></category>

		<category><![CDATA[XmlHttpRequest]]></category>

		<guid isPermaLink="false">http://www.pecsimeth.com/?p=17</guid>
		<description><![CDATA[İnternette ajax hakkında döküman arıyordum ki güzel bir yazıya rastladım. www.ajax-tr.com&#8216;da okuduğum bu yazıyı sizinle de paylaşmak istedim. 

Geride bıraktığımız 2005-2006 yıllarında hakkında en çok konuşulan web olaylarından birisi AJAX oldu. Dünya çapında ün sahibi olmuş sitelerin kendi servislerinde AJAX isimli tekniği etkin bir şekilde kullanması sonucu pek çok kişinin dikkati AJAX üzerine yoğunlaştı. Fakat [...]]]></description>
			<content:encoded><![CDATA[<p>İnternette ajax hakkında döküman arıyordum ki güzel bir yazıya rastladım. <a href="http://www.ajax-tr.com">www.ajax-tr.com</a>&#8216;da okuduğum bu yazıyı sizinle de paylaşmak istedim. </p>
<blockquote><p>
Geride bıraktığımız 2005-2006 yıllarında hakkında en çok konuşulan web olaylarından birisi AJAX oldu. Dünya çapında ün sahibi olmuş sitelerin kendi servislerinde AJAX isimli tekniği etkin bir şekilde kullanması sonucu pek çok kişinin dikkati AJAX üzerine yoğunlaştı. Fakat kişilerin yaptığı ilk yanlış, AJAX tekniğini başlı başına yeni bir programlama dili olarak görmeleriydi. AJAX tekniği, daha önceden zaten var olan JavaScript ve XML dillerinin, web tarayıcısında hazır bulunan XmlHttpRequest nesnesi etrafında birlikte kullanılmasından ibarettir. AJAX’ı böyle tanıtınca çok zor ve kompleks gibi görünüyor fakat gözünüz korkmasın, hiç de öyle değil <img src='http://www.pecsimeth.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>AJAX terimi, Asynchronous JavaScript And XML kelimelerinin baş harflerinden türetilmiştir. Bu terim ilk kez 2005 yılında “Jesse James Garrett” tarafından kullanılmıştır. Dilimizdeki telaffuzu da eyceks şeklindedir. Şimdi işin hikâye kısmını bir kenara bırakalım ve neden AJAX sorusuna cevap arayalım.<br />
Neden AJAX?<br />
<span id="more-17"></span><br />
Bu soruya yanıt bulmak için alttaki web sayfası şablonunu ele alalım. Alican kardeşimiz kendine bir web sayfası hazırlamış. B bölgesine linkler yerleştirmiş. &#8220;Resimler&#8221; linkine tıkladığımızda C bölgesinde Alican’ın resimlerini görüyoruz. Fakat Alican’ın resimlerini görebilmek için A, B, C ve D bölgelerinin, diğer bir değişle bütün sayfanın yeniden yüklenmesini bekliyoruz.</p>
<p><img src="http://ajax-tr.com/wp-content/ekler/resim1.png" alt="Ajax Yapısı" /></p>
<p>Ziyaretçilerin tek bir amacı vardır: Görmek istedikleri içeriğe en hızlı bir şekilde ulaşmak. Örneğimizde B bölgesindeki bir linke tıklayıp, C bölgesine Alican’ın resimlerinin gelmesini bekliyoruz. Bizi ilgilendiren tek birşey var o da C bölgesinde resimleri görebilmek. O esnada A, B ve D bölgeleri bizi ilgilendirmiyor. O halde bizi ilgilendirmeyen bölgelerin yüklenmesini neden bekleyelim ki?</p>
<p>Amacımız C bölgesini en kısa sürede yükletmek. Bunun için FRAME veya IFRAME adı verilen HTML etiketleri veya Flash gibi alternatif yöntemler de kullanılabilir fakat AJAX son zamanlarda ikisinin de yerini almış durumda.</p>
<p>AJAX tekniği ile web tarayıcıya yalnızca C bölgesinin yenilenmesini belirtiyoruz. Web tarayıcımız bizden bu talebi aldıktan sonra, Alican’ın resimlerinin bulunduğu sayfa ile etkileşime geçiyor. Resimlerin olduğu sayfa hazırlanıyor ve C bölgesine yükletiliyor. Bu esnada kesinlikle A, B ve D bölgeleri yeniden yüklenmiyor ve sabit kalıyor.<br />
AJAX’in Avantajı Nedir?</p>
<p>Öncelikle bir web geliştiricisi iseniz HTML, JavaScript, DOM, CSS bilginiz zaten var demektir. En azından bu konuları mutlaka duymuşsunuzdur. AJAX tekniği, saydığımız bu konuları kapsadığı için yeni baştan bir dil öğrenmek zorunda değilsiniz. Sadece 5-10 dakikanızı ayırarak AJAX tekniğinin nasıl kullanıldığını öğrenmeniz mümkündür.</p>
<p>Web sayfasının yalnızca yüklenmesi gereken bölgeleri yükletildiği için AJAX web uygulamanıza hız sağlayacaktır. Hatta ziyaretçiniz, bir masaüstü uygulaması kullanıyormuş hissine bile kapılabilir. Bu yüzden AJAX ile web uygulamaları, masaüstü uygulamalarına biraz daha yaklaşmıştır.</p>
<p>Bant genişliği, bir saniyede aktarılan bit sayısı olarak bilinir. Bir web siteniz varsa ve bunu ücret karşılığı web hosting veren bir şirketten alıyorsanız bant genişliği sizin için önemlidir. Kullanıcı sayfayı her yenilediğinde yani talep ettiğinde bant genişliğiniz azalır. Eğer bu azalmayı en aza indirirseniz aynı para karşılığında çok daha uzun bir süre bant genişliğiniz kullanıma açık olur. Bu konuda AJAX size mükemmel bir avantaj sağlar. Artık sayfanızın gereksiz bölgeleri her işlemde yeniden yüklenmeyeceği için bant genişliğinden büyük miktarda kâr sağlamış olursunuz.<br />
AJAX’in Dezavantajı Var mı?</p>
<p>Elbette AJAX de bazı dezavantajlara sahiptir fakat büyük şirketlerin ve önemli programcıların, AJAX’i geliştirme çabaları sonucunda pek çok sevimsiz durumun ortadan kalkacağını umuyoruz. Örneğin bir geri-ileri butonu sorunu mevcuttur. Gezdiğiniz sayfadan, bir önceki sayfaya gitmek istediğinizde web tarayıcınızın geri butonuna tıklarsınız. Fakat AJAX ile içeriğini yüklettiğiniz bölgelerde geri ve ileri butonunu kullanamıyorsunuz. Her ne kadar bu problem için ek yöntemler getirildiyse de tam olarak bir çözüm bulunamadı.</p>
<p>Bir diğer dezavantajı ise, eskiden sunucuların yapmış oldukları bazı işlemlerin kullanıcının bilgisayarına kaymasıdır. JavaScript, kullanıcının kendi bilgisayarında yorumlanan bir dildir. AJAX’in büyük bir kısmında JavaScript kullanıldığı için bilgisayarınızın, siz web sayfalarında gezinirken yapması gereken işlemler de artmıştır. Bu da yavaş olan pek çok bilgisayarın daha da yavaşlaması anlamına gelebilir.</p>
<p>AJAX ile yükletilen içeriğin kodlarını, sayfanın kaynak bölümünden göremezsiniz. Aynı zamanda Google ve Yahoo! gibi arama motorlarının web sayfanıza gönderdiği robot yazılımlar da göremez. Dolayısıyla AJAX ile oluşturulan içerik, arama motorlarının sonuç sayfalarında listelenmezler. Günümüzde, yaptığınız web sayfasının arama motorlarında görüntülenmesi kritik derecede önemlidir ve AJAX bu konuda size bir dezavantaj sağlar. Fakat bu durumun avantaja dönüştüğü yerler de vardır. Eğer yapmış olduğunuz web uygulaması, ziyaretçileriniz hakkında önemli kişisel bilgileri tutuyorsa bu bilgilerin arama motorlarında herkes tarafından görüntülenmesini asla istemezsiniz. Bu bilgileri AJAX ile yüklettiğinizde ise kaygılandığınız bu durum ortadan kalkabilir.<br />
AJAX’i Kimler Kullanıyor?</p>
<p>En başta <a href="http://www.google.com">Google</a>, pek çok servisinde AJAX tekniğini kullanmaktadır. <a href="http://www.microsoft.com">Microsoft </a>da bu tekniği kullanan pek çok servis hazırlamıştır. <a href="http://www.yahoo.com">Yahoo!</a> da diğerlerinden geri kalmamış, bu etkileyici tekniği kendi servislerine entegre etmiştir. Gördüğünüz gibi web alanındaki en büyük şirketler yoğun bir şekilde AJAX tekniğini kullanmaktadırlar. Ayrıca kendilerinden oldukça bahsettiren YouTube, Flickr ve Del.icio.us siteleri de AJAX tekniğini kullanan önemli web uygulamalarıdır.</p>
<p>Örnek olması açısından kısa bir liste hazırladım. Bu listedeki sitelere mutlaka gözatın. AJAX’in neler yapabileceğini görmeniz açısından, bu web sitelerini incelemeniz önerilir.</p>
<p>    * Meebo (anında mesajlaşma uygulaması)<br />
    * Netvibes (belirlediğiniz sitelerden toplanan bilgileri tek bir sayfada gösterir)<br />
    * EyeOS (işletim sistemi emülasyonu)<br />
    * Box.net (dosya depolama ve paylaşma servisi)<br />
    * AjaxWhois (whois sorgulama)
</p></blockquote>
<p>Dökümana <a href="http://www.pecsimeth.com/forum/index.php?act=konugor&#038;TopicID=143">buradan </a>da ulaşabilirsiniz. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pecsimeth.com/2008/06/ajaxi-anlamak.jsp/feed</wfw:commentRss>
		<feedburner:origLink>http://www.pecsimeth.com/2008/06/ajaxi-anlamak.jsp</feedburner:origLink></item>
		<item>
		<title>C# Dersleri Başlıyor!!</title>
		<link>http://feeds.feedburner.com/~r/PecsiFeed/~3/307627517/c-dersleri-basliyor.jsp</link>
		<comments>http://www.pecsimeth.com/2008/06/c-dersleri-basliyor.jsp#comments</comments>
		<pubDate>Sun, 08 Jun 2008 23:49:28 +0000</pubDate>
		<dc:creator>BarTiMaEuS</dc:creator>
		
		<category><![CDATA[Forum Haberleri - Forum News]]></category>

		<category><![CDATA[.net]]></category>

		<category><![CDATA[bedava]]></category>

		<category><![CDATA[bedava c# dersleri]]></category>

		<category><![CDATA[c sharp]]></category>

		<category><![CDATA[c sharp nedir?]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[c# dersleri]]></category>

		<category><![CDATA[c# nedir]]></category>

		<category><![CDATA[csharp]]></category>

		<category><![CDATA[csharp nedir?]]></category>

		<category><![CDATA[döküman]]></category>

		<category><![CDATA[kolay]]></category>

		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[pecsimeth forum]]></category>

		<category><![CDATA[programlama dili]]></category>

		<category><![CDATA[programming language]]></category>

		<category><![CDATA[ücretsiz]]></category>

		<guid isPermaLink="false">http://www.pecsimeth.com/?p=14</guid>
		<description><![CDATA[C# ile ilgili başlamayı planladığım &#8220;C# Nedir?&#8221; adlı döküman bazlı yazı dizim yakında Pecsimeth Forum&#8216;da başlıyor.&#8221;C# Nedir?&#8221; adlı dersleri kaçırmayın!!
Wikipediadan C#&#8217;ı tanımayanlar için küçük bir bilgi:

C# Programlama Dili, Microsoft&#8217;un geliştirmiş olduğu yeni nesil dilidir. Yine Microsoft tarafından geliştirilmiş
.NET teknolojisinin sunduğu dillerden biridir. Microsoft tarafından geliştirilmiş olsa da ECMA standartlarındadır.
İsteyen herkes bildirimlere uymak koşuluyla kendi C# [...]]]></description>
			<content:encoded><![CDATA[<p>C# ile ilgili başlamayı planladığım &#8220;C# Nedir?&#8221; adlı döküman bazlı yazı dizim yakında <a href="http://www.pecsimeth.com/forum">Pecsimeth Forum</a>&#8216;da başlıyor.&#8221;C# Nedir?&#8221; adlı dersleri kaçırmayın!!<br />
Wikipediadan C#&#8217;ı tanımayanlar için küçük bir bilgi:</p>
<blockquote><p>
C# Programlama Dili, Microsoft&#8217;un geliştirmiş olduğu yeni nesil dilidir. Yine Microsoft tarafından geliştirilmiş<br />
.NET teknolojisinin sunduğu dillerden biridir. Microsoft tarafından geliştirilmiş olsa da ECMA standartlarındadır.<br />
İsteyen herkes bildirimlere uymak koşuluyla kendi C# derleyicisini yazabilir.</p>
<p>Birçok alanda Java&#8217;yı kendisine örnek alır. Bunlardan birisi de derlenen değil yorumlanan bir dil olmasıdır. .NET<br />
kütüphanelerini kullanmak amacıyla yazılan programların çalıştığı bilgisayarlarda uyumlu bir kütüphanenin bulunması<br />
gereklidir Bu, Microsoft&#8217;un .Net Framewok&#8217;u olabileceği gibi ECMA standartlarına uygun herhangi bir kütüphane de<br />
olabilir. Yaygın diğer kütüphanelere örnek olarak Portable.Net ve Mono verilebilir. Ayrıca C# bir nesne yönelimli<br />
programlama dilidir.</p>
<p>Javayı örnek almış olmasına rağmen bazı özelliklerinden dolayı Javadan daha fazla kolaylık sağlamaktadır. Özellikle<br />
nesne yönelimli programlama kavramının gelişmesine katkıda bulunan en aktif programlama dillerinden biridir .NET<br />
platformunun anadili olduğu bazı kesimler tarafından kabul görsede bazıları bunun doğru olmadığını savunur.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="csharp">  <span style="color: #FF0000;">class</span> MerhabaDunya
   <span style="color: #000000;">&#123;</span>
       <span style="color: #0600FF;">static</span> <span style="color: #0600FF;">void</span> Main<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
       <span style="color: #000000;">&#123;</span>
           <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Console</span>.<span style="color: #0000FF;">WriteLine</span><span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Merhaba Dünya!&quot;</span> <span style="color: #000000;">&#41;</span>;
           <span style="color: #008080; font-style: italic;">//System isim uzayındaki Console sınıfının WriteLine() yöntemini kullanarak</span>
           <span style="color: #008080; font-style: italic;">//basit bir Konsol çıktısı ürettik.</span>
        <span style="color: #000000;">&#125;</span>
   <span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.pecsimeth.com/2008/06/c-dersleri-basliyor.jsp/feed</wfw:commentRss>
		<feedburner:origLink>http://www.pecsimeth.com/2008/06/c-dersleri-basliyor.jsp</feedburner:origLink></item>
		<item>
		<title>Hibernate Nedir?</title>
		<link>http://feeds.feedburner.com/~r/PecsiFeed/~3/302607802/hibernate-nedir.jsp</link>
		<comments>http://www.pecsimeth.com/2008/06/hibernate-nedir.jsp#comments</comments>
		<pubDate>Sun, 01 Jun 2008 23:47:50 +0000</pubDate>
		<dc:creator>BarTiMaEuS</dc:creator>
		
		<category><![CDATA[Genel Programlama]]></category>

		<category><![CDATA[basit eski java objesi]]></category>

		<category><![CDATA[entity bean]]></category>

		<category><![CDATA[hibernate]]></category>

		<category><![CDATA[hibernate döküman]]></category>

		<category><![CDATA[hibernate nedir]]></category>

		<category><![CDATA[hibernate project]]></category>

		<category><![CDATA[hibernate projesi]]></category>

		<category><![CDATA[hql]]></category>

		<category><![CDATA[hql nedir]]></category>

		<category><![CDATA[jdbc]]></category>

		<category><![CDATA[nhibernate]]></category>

		<category><![CDATA[orm]]></category>

		<category><![CDATA[plain old java object]]></category>

		<category><![CDATA[pojo]]></category>

		<category><![CDATA[türkçe hibernate]]></category>

		<category><![CDATA[türkçe hibernate döküman]]></category>

		<guid isPermaLink="false">http://www.pecsimeth.com/?p=13</guid>
		<description><![CDATA[Bilindiği üzere günümüzde kurumsal uygulamalar vakitlerinin büyük bir kısmını veri tabanında geciriyor. Dolayısıyla da ilişkisel tabanlar artık heryerde kullanılmakta ve SQL  dili de bu sayede gelişmekte (kıssadan hisse gibi oldu:)).
Günümüz popüler programlama dillerinden olan java da bildiğiniz gibi diğer programlama dilleri gibi ilişkisel tabanlara erişim yapabiliyor ve kullandığı yönteme JDBC deniyor yani Java Database [...]]]></description>
			<content:encoded><![CDATA[<p>Bilindiği üzere günümüzde kurumsal uygulamalar vakitlerinin büyük bir kısmını veri tabanında geciriyor. Dolayısıyla da ilişkisel tabanlar artık heryerde kullanılmakta ve SQL  dili de bu sayede gelişmekte (kıssadan hisse gibi oldu:)).</p>
<p>Günümüz popüler programlama dillerinden olan java da bildiğiniz gibi diğer programlama dilleri gibi ilişkisel tabanlara erişim yapabiliyor ve kullandığı yönteme JDBC deniyor yani Java Database Connectivity.<br />
Ancak java da uygulama geliştirenler ve büyük projelerle uğraşanlar bilirler ki direkt JDBC ile karşımıza<br />
problemler çıkabilmekte. Öncelikle basmakalıp SELECT /INSERT/UPDATE/DELETE yazmak bir hayli kültefli ve yorucu bir iş. Bunun yanında uygulama kodlarının veri şemasına bağlılığı çok fazla ve nesnesel bir programlama dili olan java maalesef veriye nesnesel olmayan bir yol ile ulaşıyor.Ayrıca önbellekleme de elle yapılmakta.Tüm bu problemler her ne kadar önceleri problem sınıfına dahil edilmeseler de (problemden çok biz buna zorluk diyelim) Hibernate teknolojisinin getirdiği kolaylık ile birer problem sınıfına dahil edilebilir oldular.</p>
<p>Durum böyle olunca Gavin King amcamız proje grubuna bir gün döndü ve şöyle dedi :&#8221;Beyler gelin bi teknoloji geliştirelim hem setXX ile veri koyduğumuz nesneler zahmetsiz bi şekilde veri tabanında doğru yere yazılsın, hem de güncelleme /ekleme/ silme işlemlerini rahat bir şekilde nesneler üzerinden yapmamızı sağlasın. Bunları yaparken de sql  benzeri bir sorgulama dili kullanalım.&#8221;</p>
<p><span id="more-13"></span><br />
Kafadaki bu teknoloji kağıda dökülmeden önce bunun gibi farklı birimlere ait  bir çok deneme olmuştu. Toplink bu alandaki ilklerdendi.POS standart bazlıydı.Idl odaklıydı ve işler kod yoktu. JDE  bu kulvarda iyi bir deneme olmuştu ancak derleme sürecinde baytkodun işlenmesi gerekiyordu. Entity Bean ise hem bir servis objesi hem de bir kalıcılık birimiydi ancak programlama külfetli ve performans kötüydü.</p>
<p>Bunlar da işe yaramayınca  Hibernate projesi, kalıcılık işini doğru yapmaya talip oldu. Proje lideri Gavin King, şunlara odaklandı:</p>
<ul>
<li>Kalıcı nesneler, En Basit Java Nesneleri (POJO - Plain Old Java Object) kavramı üzerine kurulmalı (başka bir nesneden extend edilmesi beklenmemeli)</li>
<li>Teknolojinin kullanımı rahat olmalı - 10 dakika içinde kurulabilmeli, ve basit bir kod işletilebilmeli.</li>
<li>Körükörüne bir standart oluşturmakta üstelenmemeli.</li>
<li>Veriye erişim, aynen RDBMS’lerde oldugu gibi güçlü bir sorgulama dilini desteklemeli.</li>
</ul>
<p>Ve böylece bu teknoloji bu amaçlarla ortaya çıkıverdi ve birçok programcının işlerini kolaylaştırdı.Nedir peki bu kolaylıklar.Üstünkörü geçtik ama detaya inmek istersek bunlardan birine örnek vererek yazımı sonlandıracağım.</p>
<p>Hibernate&#8217;in sql benzeri bir sorgulama dili kullanacağını söylemiştik. Peki neden standart sql değil de Hibernate SQL (HQL)? İşte bu noktada aslında detay olan ancak tüm mantığı ve sağlanan kolaylıkları bize anlatan bir örnek vereceğim. Düşünün ki elimizde(elimizde dediysem veri tabanında demek istedim:) ) 100 satırlık bir veri var. Bu satırları 100 kere dönerek basit tek bir UPDATE yazmak mı daha performanslıdır, yoksa çetrefil ama tek bir UPDATE komutu mu?</p>
<p>İşte örneğimiz:<br />
Bu mu?</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="java5"><span style="color: #aaaadd; font-weight: bold;">ResultSet</span> rs = ...
<span style="color: #b1b100;">while</span> <span style="color: #66cc66;">&#40;</span>rs.<span style="color: #006600;">next</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
<span style="color: #aaaadd; font-weight: bold;">String</span> sql = <span style="color: #ff0000;">&quot;UPDATE MUSTERI set miktar = &quot;</span> +
rs.<span style="color: #006600;">getInteger</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;MIKTAR&quot;</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #ff0000;">&quot; &quot;</span> +
<span style="color: #ff0000;">&quot;where ID=&quot;</span>+rs.<span style="color: #006600;">getString</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;ID&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
<span style="color: #aaaadd; font-weight: bold;">PreparedStatement</span> ps = c.<span style="color: #006600;">prepareStatement</span><span style="color: #66cc66;">&#40;</span>sql<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
ps.<span style="color: #006600;">execute</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Yoksa bu mu?</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="java5"><span style="color: #aaaadd; font-weight: bold;">String</span> sql = <span style="color: #ff0000;">&quot;UPDATE MUSTERI, BORCLU_MUSTERI SET &quot;</span> +
<span style="color: #ff0000;">&quot;MUSTERI.miktar = BORCLU_MUSTERI.miktar &quot;</span>+
<span style="color: #ff0000;">&quot;WHERE MUSTERI.id = BORCLU_MUSTERI.id&quot;</span><span style="color: #66cc66;">;</span>
<span style="color: #aaaadd; font-weight: bold;">PreparedStatement</span> ps = c.<span style="color: #006600;">prepareStatement</span><span style="color: #66cc66;">&#40;</span>sql<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
ps.<span style="color: #006600;">execute</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span></pre></td></tr></table></div>

<p>Bu da gösteriyorki Hibernate ile artık SQL  elle yazılmayacak ancak Hibernate tarafından üretilecek, zorlu sorgulamalar için ancak HQL&#8217;e izin verilecek ve son ama en önemli sonuç ise (yukarıda tüm mantığı anlatan kısımdan kastım burasıydı) HQL’e parametre ve geri gelen sonuç, artık <strong>obje</strong> olabiliyor. Ki bu da en başta anlattığım tüm o problemler ortadan kalkıyor demek oluyor.</p>
<p>Özetlemek gerekirse artık herşey bir <strong>obje </strong>oluyor ve bu da demek oluyorki object oriented bir dil ile veriyi yakalama çocuk oyuncağı oluyor.***</p>
<p>Umarım öğrendiğim ve araştırdığım kadarıyla, anlaşılır bir üslupla yüzeysel olarak Hibernate nedir anlatabilmişimdir. Sonraki yazılarımda Hibernate teknolojisinin nesne-tablo ilişkilerini,aradaki bu bağ nasıl sağlanır gibi detayları kısacası Hibernate&#8217;in içeriğini, yapısını bulabileceksiniz. Son olarak Wikipedia&#8217;dan  Hibernate açıklamasını alıntı yapıp  yazımı bitiriyorum:</p>
<blockquote><p>Hibernate, Java platformunda yazılmış bir ORM (Object/Relational Mapping) aracıdır. ORM, nesne odaklı (object oriented) dillerdeki nesnelerin, ilişkisel veritabanlarındaki (relational databases) kayıtlara nasıl karşılık geldiğini yürüten bir teknolojidir.</p>
<p>Hibernate gibi ORM araçlarıyla, bir nesneyi veritabanına kaydetmek, yeni halini güncellemek ve sorgulama yapmak düz SQL bağlantılarına göre çok kolaydır.</p>
<p>Örneğin, JDBC ile veritabanına bir kayıt eklemek için şuna benzer bir kod yazılır:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="java5">stmt.<span style="color: #006600;">executeUpdate</span><span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">&quot;INSERT INTO KAHVE VALUES ('Colombian', 101, 7.99, 0, 0)&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span></pre></td></tr></table></div>

<p>Burada, &#8220;KAHVE&#8221; tablosuna bir kayıt eklenmekte. Böyle bir işlemi Hibernate ile yapmak için:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="java5">session.<span style="color: #006600;">saveOrUpdate</span><span style="color: #66cc66;">&#40;</span>kahve<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span></pre></td></tr></table></div>

<p>kahve, bildiğimiz düz bir java nesnesidir (POJO).</p>
<p>Hibernate gibi ORM araçlarının en önemli faydası, kod yazımını kısaltmak veya kolaylaştırmaktan öte, yazılım bakımını kolaylaştırmasıdır. Veritabanı temelli uygulamalarda, kodun 1/3´ü veritabanı erişimine yöneliktir. Veritabanındaki bir kolonunun tipinin değişmesi, yeni bir kolon eklenmesi gibi değişiklikler, bütün veri erişim kodunu tekrar gözden geçirmeyi gerektirir. Hibernate ile bu gözden geçirmeden çok yüksek oranda tasarruf edilir. Hibernate kullanılan yazılımlarda, veritabanındaki değişikliklerde yapılması gereken sadece nesnelerle tabloların birbirine nasıl eşleştirildiğinin (mapping) gözden geçirilmesidir.</p>
<p>Hibernate, son 3 sene içinde, kurumsal java uygulamalarında fiilen standart haline gelmiştir. EJB 2.0 versiyonundaki Entity Beanler, yeni EJB 3.0 versiyonunda Hibernate´e yakın bir API haline gelmiştir.</p></blockquote>
<p><em>BarTiMaEuS the coeker</em></p>
<p>*** Bunlar şu an için java ve c#. Başlangıçta Hibernate sadece java ile çalışıyordu ancak daha sonra C# versiyonu olan NHibernate de çıktı.</p>
<p>Dökümana <a href="http://www.pecsimeth.com/forum/index.php?act=konugor&#038;TopicID=142">buradan da</a> ulaşabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pecsimeth.com/2008/06/hibernate-nedir.jsp/feed</wfw:commentRss>
		<feedburner:origLink>http://www.pecsimeth.com/2008/06/hibernate-nedir.jsp</feedburner:origLink></item>
		<item>
		<title>JSF (Java Server Faces)</title>
		<link>http://feeds.feedburner.com/~r/PecsiFeed/~3/297865109/jsf-java-server-faces.jsp</link>
		<comments>http://www.pecsimeth.com/2008/05/jsf-java-server-faces.jsp#comments</comments>
		<pubDate>Sun, 25 May 2008 17:51:01 +0000</pubDate>
		<dc:creator>BarTiMaEuS</dc:creator>
		
		<category><![CDATA[Jsf]]></category>

		<category><![CDATA[.net]]></category>

		<category><![CDATA[çatı]]></category>

		<category><![CDATA[framework]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[java server faces]]></category>

		<category><![CDATA[jsf]]></category>

		<category><![CDATA[jsp]]></category>

		<category><![CDATA[microsoft]]></category>

		<category><![CDATA[model view controller]]></category>

		<category><![CDATA[mvc]]></category>

		<category><![CDATA[slayt]]></category>

		<category><![CDATA[slide]]></category>

		<category><![CDATA[slideshare]]></category>

		<category><![CDATA[sun]]></category>

		<category><![CDATA[sun microsystems]]></category>

		<guid isPermaLink="false">http://www.pecsimeth.com/?p=12</guid>
		<description><![CDATA[İnternette dolaşırken rastladığım JSF ile ilgili güzel bir slaytı sizlerle paylaşmak istedim ama önce JSF yani &#8220;Java Server Faces&#8221; nedir kısaca bir açıklayalım.
Java Server Faces, JSF, Java tabanlı web uygulamalarını kolaylaştırmak için Model-View-Controller (MVC) yapısına uygun olarak geliştirilmiş bir frameworktür.
diyor wikipedia. Ve biz de Microsoftun nasıl .net&#8217;i varsa Sun&#8217;ın da jsf&#8217;si var diyerek bu tanımı [...]]]></description>
			<content:encoded><![CDATA[<p>İnternette dolaşırken rastladığım JSF ile ilgili güzel bir slaytı sizlerle paylaşmak istedim ama önce JSF yani &#8220;Java Server Faces&#8221; nedir kısaca bir açıklayalım.</p>
<blockquote><p><strong>Java Server Faces</strong>, <strong>JSF</strong>, Java tabanlı web uygulamalarını kolaylaştırmak için Model-View-Controller (MVC) yapısına uygun olarak geliştirilmiş bir frameworktür.</p></blockquote>
<p>diyor wikipedia. Ve biz de Microsoftun nasıl .net&#8217;i varsa Sun&#8217;ın da jsf&#8217;si var diyerek bu tanımı destekliyoruz.</p>
<div id="__ss_116679" style="width: 425px; text-align: left;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=java-server-faces2401" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slideshare.net/swf/ssplayer2.swf?doc=java-server-faces2401" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"><a href="http://www.slideshare.net/?src=embed"><img style="border:0px none;margin-bottom:-5px" src="http://static.slideshare.net/swf/logo_embd.png" alt="SlideShare" /></a> | <a title="View Java Server Faces on SlideShare" href="http://www.slideshare.net/ahmetdemirelli/java-server-faces?src=embed">View</a> | <a href="http://www.slideshare.net/upload?src=embed">Upload your own</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.pecsimeth.com/2008/05/jsf-java-server-faces.jsp/feed</wfw:commentRss>
		<feedburner:origLink>http://www.pecsimeth.com/2008/05/jsf-java-server-faces.jsp</feedburner:origLink></item>
		<item>
		<title>UML nedir?</title>
		<link>http://feeds.feedburner.com/~r/PecsiFeed/~3/297833499/uml-nedir.jsp</link>
		<comments>http://www.pecsimeth.com/2008/05/uml-nedir.jsp#comments</comments>
		<pubDate>Sun, 25 May 2008 16:45:09 +0000</pubDate>
		<dc:creator>BarTiMaEuS</dc:creator>
		
		<category><![CDATA[Genel Programlama]]></category>

		<category><![CDATA[activity diagram]]></category>

		<category><![CDATA[Birleşik Modelleme Dili]]></category>

		<category><![CDATA[bmd]]></category>

		<category><![CDATA[class diagram]]></category>

		<category><![CDATA[diyagram]]></category>

		<category><![CDATA[faaliyet diyagramları]]></category>

		<category><![CDATA[modelleme]]></category>

		<category><![CDATA[package diagram]]></category>

		<category><![CDATA[paket diyagramı]]></category>

		<category><![CDATA[sınıf diyagramı]]></category>

		<category><![CDATA[uml]]></category>

		<category><![CDATA[Unified Modelling Language]]></category>

		<category><![CDATA[yazılım]]></category>

		<category><![CDATA[yazılım geliştiriciler]]></category>

		<guid isPermaLink="false">http://www.pecsimeth.com/?p=11</guid>
		<description><![CDATA[&#8220;Unified Modelling Language&#8221; &#8216;in kısaltması olan UML türkçe olarak &#8220;Birleşik Modelleme Dili&#8221;
şeklinde isimlendirilebilir. UML bir programlama (ya da yazılım geliştirme) dili olmaktan ziyade iş sistemlerinin nasıl modellenebileceğini belirleyen ve açıklayan yöntemlerin bir araya toplanmış halidir. Daha çok yazılım geliştiriciler tarafından kullanılıyor olsa da UML ile yapılan modellemeler her zaman yazılım projelerinde kullanılmak zorunda değildir: Resmi [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;<em>Unified Modelling Language</em>&#8221; &#8216;in kısaltması olan UML türkçe olarak &#8220;Birleşik Modelleme Dili&#8221;<br />
şeklinde isimlendirilebilir. UML bir programlama (ya da yazılım geliştirme) dili olmaktan ziyade iş sistemlerinin nasıl modellenebileceğini belirleyen ve açıklayan yöntemlerin bir araya toplanmış halidir. Daha çok yazılım geliştiriciler tarafından kullanılıyor olsa da UML ile yapılan modellemeler her zaman yazılım projelerinde kullanılmak zorunda değildir: Resmi UML dokumantasyonlarında UML &#8216;in yazılımın yanısıra &#8220;İş Sistemleri Modellenmesi&#8221; &#8216;nde de kullanılabileceği belirtilmiştir.</p>
<p>Mesela bir iş sistemin yapısını sade ve anlaşılır şekilde ortaya çıkarmak için Paket Diyagramı (&#8221;Package<br />
Diagram&#8221;) kullanılabilir. Sınıf Diyagramı (&#8221;Class Diagram&#8221;) vasıtası ile Nesnel Yönelimli<br />
Programlamada temel teşkil eden sınıflar net şekilde gösterilebilir ve böylece sağlanan ek görsellik ile yazılım tasarlamanın ilerleyen aşamalarında daha yüksek verimlilik sağlanabilir.</p>
<p>UML &#8216;in belki de en kullanışlı diyebileceğimiz diyagram türü olan Faaliyet Diyagramları (&#8221;Activity<br />
Diagram&#8221;) ile yazılım haline getirilmek istenen süreçler herkesin anlayabileceği şekilde görüntülenebilir. Bu<br />
açıdan faaliyet diyagramları hem yazılımcıya hem de yazılımı kullanacak olan kişilere net bir görüş sağlar.</p>
<p><span id="more-11"></span><br />
<strong>Faaliyet Diyagramları</strong></p>
<p>Diyagramları oluşturmada altın bir kural vardır: Diyagramdaki elemanlar ne kadar az olursa o kadar açıklayıcı olurlar. Detayların tümünü bir diyagramda göstermeye çalışırsanız hem kendiniz hem de yazılımı kullanacak olanlar temel bakış açısını yitirebilirler, o yüzden sadelik önemlidir.</p>
<p>UML diyagramları Avrupa&#8217;daki yazılım geliştiriciler tarafından Türkiye&#8217;dekilere oranla daha çok kullanılmaktadır.<br />
Fakat bu durumun yazılım geliştirmede nihai verimliliği ne kadar etkilediği konusunda net birşey söylenemez. UML bir modelleme aracı olup kullanılması bir tercih meselesidir. UML diyagramları kullanılması yazılımın verimliliğini<br />
garantilemez. Hiç UML kullanmadan hatta herhangi bir modelleme kullanmadan çok iyi verimli çalışan yazılımlar geliştirmek mümkün olabileceği gibi, en üst düzeyde UML kullanıldığı halde verimli sonuç üretemeyen yazılım yapmak mümkün olabilir.</p>
<p>Dökümana <a href="http://www.pecsimeth.com/forum/index.php?act=konugor&#038;TopicID=43">buradan</a> da ulaşabilirsiniz.</p>
<p>kaynak &#8212; wikipedia</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pecsimeth.com/2008/05/uml-nedir.jsp/feed</wfw:commentRss>
		<feedburner:origLink>http://www.pecsimeth.com/2008/05/uml-nedir.jsp</feedburner:origLink></item>
		<item>
		<title>Javada Sık Yapılan Programlama Hataları</title>
		<link>http://feeds.feedburner.com/~r/PecsiFeed/~3/297739144/sik-yapilan-programlama-hatalari.jsp</link>
		<comments>http://www.pecsimeth.com/2008/05/sik-yapilan-programlama-hatalari.jsp#comments</comments>
		<pubDate>Sat, 24 May 2008 18:09:18 +0000</pubDate>
		<dc:creator>BarTiMaEuS</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[hatalar]]></category>

		<category><![CDATA[java programlama hataları]]></category>

		<category><![CDATA[java programlama nasıl yapılır]]></category>

		<category><![CDATA[java syntax errors]]></category>

		<category><![CDATA[java syntax hataları]]></category>

		<category><![CDATA[javada sık yapılan programlama hataları]]></category>

		<category><![CDATA[programcı hataları]]></category>

		<category><![CDATA[programlama hatalarına çözümler]]></category>

		<category><![CDATA[programmer faults in java]]></category>

		<guid isPermaLink="false">http://www.pecsimeth.com/?p=10</guid>
		<description><![CDATA[Javada Sık Yapılan Programlama Hataları
Bir program yazarken hata yapmamanız mümkün değil. Sürekli hata yapacaksınız. Önemli olan bu hatayı çabuk görüp düzeltebilmek. Java&#8217;da kodu derlediğinizde size hata mesajlarını gösterecektir. Eğer java bilginiz iyi ise bu hataları hemen çözersiniz. Ancak javayı yeni öğreniyorsanız bu hataları bulmanız ve çözmeniz zor olabilir. BT dershanesinde java öğretmeni olduğum için öğrencilerin [...]]]></description>
			<content:encoded><![CDATA[<p>Javada Sık Yapılan Programlama Hataları</p>
<p>Bir program yazarken hata yapmamanız mümkün değil. Sürekli hata yapacaksınız. Önemli olan bu hatayı çabuk görüp düzeltebilmek. Java&#8217;da kodu derlediğinizde size hata mesajlarını gösterecektir. Eğer java bilginiz iyi ise bu hataları hemen çözersiniz. Ancak javayı yeni öğreniyorsanız bu hataları bulmanız ve çözmeniz zor olabilir. BT dershanesinde java öğretmeni olduğum için öğrencilerin hangi hataları sık yaptığı konusunda bilgi sahibi oldum. Bu yazıda bu sık yapılan hatalardan bahsedeceğim.</p>
<p><span id="more-10"></span><br />
<strong>Import</strong></p>
<p>En çok yapılan hatalardan biri bir paketteki class&#8217;ı kullanıp o paketin import edilmemesidir. Bu nedenle derleyici böyle bir class&#8217;ın olmadığı gibi bir hata mesajı verir. Bu konuda diğer yapılan hata ise bir paket * ile import edildiğinde alt paketlerinde import edileceğini zannetmektir. Örneğin java.awt.* import etmeniz java.awt.event paketinin import edildiği anlamına gelmez. java.awt.event paketini ayrı olarak import etmelisiniz.<br />
<strong><br />
Scope</strong></p>
<p>En çok hata bu konuda yapılıyor. Scope bir değişkenin yaşama alanı olarak düşünülebilir. Java&#8217;da yarattığınız bir değişkene her yerden erişemezsiniz. Değişkeni yarattığınız yere göre bu işlem değişir. Örneğin bir fonksiyon içinde bir değişken yarattıysanız bu değişkeni bu fonksiyonun dışında herhangi bir yerde kullanamazsınız. Örneğin aşağıdaki kodda bu tür bir hata bulunmakta.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="java5"><span style="color: #000000; font-weight: bold;">class</span> A<span style="color: #66cc66;">&#123;</span>
	<span style="color: #993333;">void</span> set<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #993333;">int</span> a=<span style="color: #cc66cc;">4</span><span style="color: #66cc66;">;</span>
		...
	<span style="color: #66cc66;">&#125;</span>
	<span style="color: #993333;">void</span> get<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #993333;">int</span> b=a<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">;</span> <span style="color: #808080; font-style: italic;">//burada a kullanılamaz.</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>set fonksiyonu içinde tanımlanmış bir a değişkeni get fonksiyonu içinden kullanılmaya çalışılıyor. Bu kod derlendiğinde hata oluşur. {} içinde yaratılan değişken ancak içerde kullanılabilir. Class&#8217;larda kullanılan değişkenler içinde aynı şey geçerli. Aşağıda A class&#8217;ı içinde yaratılan bir değişkene B class&#8217;ından erişilmeye çalışılıyor. Bu kod hata oluşturur.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="java5"><span style="color: #000000; font-weight: bold;">class</span> A<span style="color: #66cc66;">&#123;</span>
	<span style="color: #993333;">int</span> a=<span style="color: #cc66cc;">5</span><span style="color: #66cc66;">;</span>
	...
<span style="color: #66cc66;">&#125;</span> 
<span style="color: #000000; font-weight: bold;">class</span> B<span style="color: #66cc66;">&#123;</span>
	<span style="color: #993333;">int</span> c=a<span style="color: #66cc66;">*</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Ancak bir class değişkeni private değilse ClassAdı.değişkenAdı (örnekte A.a şeklinde) şeklinde erişilebilir.</p>
<p><strong>Fonksiyonun Dışında Kod Satırları Yazmak</strong></p>
<p>Bir class içinde kurucular,değişkenler ve method&#8217;lar bulunur. Yazılan bir kod, kurucu veya method&#8217;ların içinde olmalı veya bir değişken ataması veya deklerasyonu olmalıdır. Örneğin aşağıdaki gibi bir ifade yanlıştır.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="java5"><span style="color: #000000; font-weight: bold;">class</span> A<span style="color: #66cc66;">&#123;</span>
	<span style="color: #993333;">boolean</span> b=<span style="color: #b13366;">true</span><span style="color: #66cc66;">;</span>
	<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>b<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		..
	<span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #66cc66;">&#123;</span>
		..
	<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>yukarıdaki if-else bloğu yanlış yerdedir. Class&#8217;ın hemen içinde olamaz. Ya bir method&#8217;un ya da bir kurucunun içine koymanız gerekir.</p>
<p><strong>Class İsmi ile Dosya İsmini Farklı Yapmak.</strong></p>
<p>Java&#8217;da kod dosyaları ClassAdı.java şeklindedir. ClassAdı.java dosyasının adı ile içindeki public class&#8217;ın adı aynı olmalıdır. Örneğin Test.java dosyası aşağıdaki gibi olursa bir hata oluşur.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="java5"><span style="color: #000000; font-weight: bold;">class</span> Test1<span style="color: #66cc66;">&#123;</span>
	...
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Düzeltmeniz için ya class adını Test yapacaksınız ya da dosyanın adını Test1.java yapacaksınız.</p>
<p><strong>Bir Paketteki Class&#8217;ın &#8220;package&#8221; İfadesini Kaldırmak.</strong></p>
<p>Java&#8217;da her class istenilen pakete koyulabilir. Örneğin aşağıdaki class&#8217;ı com.godoro.tools paketine koyuyoruz.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="java5"><span style="color: #000000; font-weight: bold;">package</span> com.<span style="color: #006600;">godoro</span>.<span style="color: #006600;">tools</span><span style="color: #66cc66;">;</span>
<span style="color: #000000; font-weight: bold;">class</span> A<span style="color: #66cc66;">&#123;</span>
	...
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Bu class&#8217;ı yarattıktan sonra package ile başlayan satırı silerseniz derlediğinizde derleyici hata verir. Çünkü A.java dosyası com\godoro\tools klasöründedir. Siz package ifadesini silerseniz paketi olamayan bir class yaratmış olursunuz. A.java dosyasını com\godoro\tools klasörü içinden kaldırmanız gerekir.</p>
<p><strong>Varaolan Bir Class ile Aynı İsimle Bir Class Yaratmak</strong></p>
<p>Vector class&#8217;ı java.util paketindedir. Eğer sizde Vector ismiyle bir class yaratırsanız iki class ismi aynı olacaktır. Örneğin aşağıdaki gibi kod olamaz.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="java5"><span style="color: #000000; font-weight: bold;">import</span> java.<span style="color: #006600;">util</span>.<span style="color: #006600;">*</span><span style="color: #66cc66;">;</span>
<span style="color: #000000; font-weight: bold;">class</span> <span style="color: #aaaadd; font-weight: bold;">Vector</span><span style="color: #66cc66;">&#123;</span>
	<span style="color: #aaaadd; font-weight: bold;">Vector</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
		<span style="color: #aaaadd; font-weight: bold;">Vector</span> v=<span style="color: #000000; font-weight: bold;">new</span> <span style="color: #aaaadd; font-weight: bold;">Vector</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>
		v.<span style="color: #006600;">add</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;A&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">;</span>		
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></td></tr></table></div>

<p>Burada derleyici Vector&#8217;un add method&#8217;un olmadığını söyleyecek. Vector sizin yarattığınız class&#8217;tır ve sizin yarattığınız class&#8217;ta add method&#8217;u yok. Bu yüzden kendi yarattığınız class&#8217;a başka bir isim vermelisiniz. ancak aynı ismi vermekte israr ediyorsanız java.util paketindeki vectoru kullanmak için</p>
<pre lang="java5" line="1">
java.util.Vector v=new java.util.Vector();
</pre</p>
<p>şeklinde Vector class'ının tam adını yazarsınız. Böylece sizin yaptığınız Vector ile util paketindeki Vector çakışmamış olur. </p>
<p>Zafer Teker   </p>
<p>Bu dökümana <a href="http://www.pecsimeth.com/forum/index.php?act=konugor&#038;TopicID=113">buradan</a> da ulaşabilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pecsimeth.com/2008/05/sik-yapilan-programlama-hatalari.jsp/feed</wfw:commentRss>
		<feedburner:origLink>http://www.pecsimeth.com/2008/05/sik-yapilan-programlama-hatalari.jsp</feedburner:origLink></item>
		<item>
		<title>Pecsimeth Forum</title>
		<link>http://feeds.feedburner.com/~r/PecsiFeed/~3/297739145/pecsimeth-forum.jsp</link>
		<comments>http://www.pecsimeth.com/2008/05/pecsimeth-forum.jsp#comments</comments>
		<pubDate>Sat, 24 May 2008 11:41:30 +0000</pubDate>
		<dc:creator>BarTiMaEuS</dc:creator>
		
		<category><![CDATA[Site Haberleri - Site News]]></category>

		<category><![CDATA[cevaplar]]></category>

		<category><![CDATA[codes]]></category>

		<category><![CDATA[döküman]]></category>

		<category><![CDATA[e-book]]></category>

		<category><![CDATA[e-kitap]]></category>

		<category><![CDATA[hazır kodlar]]></category>

		<category><![CDATA[how to learn programming languages]]></category>

		<category><![CDATA[makale]]></category>

		<category><![CDATA[pecsimeth forum]]></category>

		<category><![CDATA[programlama dili öğrenmek]]></category>

		<category><![CDATA[programlama dilleri]]></category>

		<category><![CDATA[programlama öğrenmek]]></category>

		<category><![CDATA[programlama soruları]]></category>

		<category><![CDATA[programlama sorunları]]></category>

		<category><![CDATA[sorular]]></category>

		<guid isPermaLink="false">http://www.pecsimeth.com/?p=7</guid>
		<description><![CDATA[Forumumuzda birçok programlama diliyle ilgili döküman/makale, e-kitap, hazır kod bulabilirsiniz. Ayrıca birçok sorunuza da cevap bulabileceğiniz bir platform mevcuttur.
http://www.pecsimeth.com/forum
]]></description>
			<content:encoded><![CDATA[<p>Forumumuzda birçok programlama diliyle ilgili döküman/makale, e-kitap, hazır kod bulabilirsiniz. Ayrıca birçok sorunuza da cevap bulabileceğiniz bir platform mevcuttur.</p>
<p><a href="http://www.pecsimeth.com/forum">http://www.pecsimeth.com/forum</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pecsimeth.com/2008/05/pecsimeth-forum.jsp/feed</wfw:commentRss>
		<feedburner:origLink>http://www.pecsimeth.com/2008/05/pecsimeth-forum.jsp</feedburner:origLink></item>
	</channel>
</rss>
