<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>E-Gürbüz</title>
	<atom:link href="http://egurbuz.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://egurbuz.wordpress.com</link>
	<description></description>
	<lastBuildDate>Tue, 27 Oct 2009 11:35:31 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>tr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='egurbuz.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/ad86764b63f97b3a40d7206d284fdf60?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>E-Gürbüz</title>
		<link>http://egurbuz.wordpress.com</link>
	</image>
			<item>
		<title>JAXB: döngüsel bağları XML&#8217;de anahtarlma (cyclic reference problem)</title>
		<link>http://egurbuz.wordpress.com/2009/10/27/jaxb-dongusel-baglari-xmlde-anahtarlma-cyclic-reference-problem/</link>
		<comments>http://egurbuz.wordpress.com/2009/10/27/jaxb-dongusel-baglari-xmlde-anahtarlma-cyclic-reference-problem/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 10:31:36 +0000</pubDate>
		<dc:creator>Emre</dc:creator>
				<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[JAXB]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[Web Service]]></category>
		<category><![CDATA[cyclic reference problem]]></category>
		<category><![CDATA[jax-ws]]></category>

		<guid isPermaLink="false">http://egurbuz.wordpress.com/?p=95</guid>
		<description><![CDATA[Döngüsel Bağ (Cyclic Reference) nedir?

Baba-Cocuk iliskisine sahip siniflarda, bir baba sahip oldugu cocuklarina referans tutarken, cocuk da babasina referans tuttugu durumda döngüsel bağ problemi ortaya cikar. Derleyiciler bu durumu anlayip döngüyü bir sekilde kirabilmektedirler. Asil sorun bu iliskideki nesnelerin XML&#8217;e bind edilmesi sirasinda ortaya cikabiliyor.  JAXB standardinda bu sorunu ele alma yontemleri bu baglantida gosteriliyor [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=95&subd=egurbuz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h3>Döngüsel Bağ (Cyclic Reference) nedir?</h3>
<p><img src="http://www.perl.com/2002/08/07/graphics/circular_ref.png" alt="http://www.perl.com/2002/08/07/graphics/circular_ref.png" /></p>
<p>Baba-Cocuk iliskisine sahip siniflarda, bir baba sahip oldugu cocuklarina referans tutarken, cocuk da babasina referans tuttugu durumda döngüsel bağ problemi ortaya cikar. Derleyiciler bu durumu anlayip döngüyü bir sekilde kirabilmektedirler. Asil sorun bu iliskideki nesnelerin XML&#8217;e bind edilmesi sirasinda ortaya cikabiliyor.  JAXB standardinda bu sorunu ele alma yontemleri bu baglantida gosteriliyor : <a href="https://jaxb.dev.java.net/guide/Mapping_cyclic_references_to_XML.html" target="_blank">https://jaxb.dev.java.net/guide/Mapping_cyclic_references_to_XML.html</a></p>
<p><span id="more-95"></span></p>
<p><strong>1.Yontem: @XMLTransient kullanmak:</strong></p>
<p>Bu yontemde, Cocuk sinif icerisindeki baba referansinin yok sayilmasi saglanir. Boylece marshall edilirken Cocuk sinifi icerisinde Baba nesnesi olmaz.<strong> </strong>Sakincasi istemci Cocuk sinifindan Babasina erisememesi. Örnek olarak:</p>
<blockquote><p>package data;</p>
<p>import javax.xml.bind.annotation.XmlAttribute;<br />
import javax.xml.bind.annotation.XmlRootElement;<br />
import javax.xml.bind.annotation.XmlTransient;</p>
<p>/**<br />
*<br />
* @author emre<br />
*/<br />
<strong>@XmlRootElement</strong><br />
public class Child {</p>
<p>private String name;<br />
private String okulAdi;<br />
private Parent parent;</p>
<p>public Child(){</p>
<p>}<br />
<strong><br />
@XmlAttribute</strong><br />
public String getName() {<br />
return name;<br />
}</p>
<p>public void setName(String name) {<br />
this.name = name;<br />
}</p>
<p><strong>@XmlAttribute</strong><br />
public String getOkulAdi() {<br />
return okulAdi;<br />
}</p>
<p>public void setOkulAdi(String okulAdi) {<br />
this.okulAdi = okulAdi;<br />
}</p>
<p><strong>@XmlTransient</strong><br />
public Parent getParent() {<br />
return parent;<br />
}</p>
<p>public void setParent(Parent parent) {<br />
this.parent = parent;<br />
}</p>
<p>}</p></blockquote>
<p><strong>2.Yontem: </strong><strong>CycleRecoverable arayuzunu kullanmak</strong></p>
<p>JAXB, cycle reference sorunuyla karsilastiginda, bu arayuzu gerceklestirdigimiz takdirde onCycleDetected metodunda durumu ele almamiza olanak verir. Bu metod bir Object nesnesi doner. Donen nesne, XML&#8217;e eklenecek olan nesneyi temsil eder. Burada return null dememiz, Baba icinde cocuk olsun ama cocuk icinde baba olmasin sekline donusur.</p>
<blockquote><p>package data2;</p>
<p>import com.sun.xml.bind.CycleRecoverable;<br />
import data.Parent;<br />
import java.util.ArrayList;<br />
import java.util.List;<br />
import javax.xml.bind.annotation.XmlAttribute;<br />
import javax.xml.bind.annotation.XmlElement;<br />
import javax.xml.bind.annotation.XmlRootElement;</p>
<p>/**<br />
*<br />
* @author emre<br />
*/<br />
public class Parent2 implements CycleRecoverable{<br />
private String name;<br />
private String isYeri;<br />
private List&lt;Child2&gt; cocuklar = new ArrayList&lt;Child2&gt;();</p>
<p>public Parent2(){</p>
<p>}</p>
<p>public List&lt;Child2&gt; getCocuklar() {<br />
return cocuklar;<br />
}</p>
<p>public void setCocuklar(List&lt;Child2&gt; cocuklar) {<br />
this.cocuklar = cocuklar;<br />
}</p>
<p>public String getIsYeri() {<br />
return isYeri;<br />
}</p>
<p>public void setIsYeri(String isYeri) {<br />
this.isYeri = isYeri;<br />
}</p>
<p>public String getName() {<br />
return name;<br />
}</p>
<p>public void setName(String name) {<br />
this.name = name;<br />
}</p>
<p><strong><span style="color:#000000;">public Object <span style="color:#ff0000;">onCycleDetected</span>(Context arg0) {<br />
Parent2 p = new Parent2();<br />
p.setIsYeri(this.getIsYeri());<br />
p.setName(this.getName());<br />
p.setCocuklar(null);<br />
return p;<br />
//throw new UnsupportedOperationException(&#8220;Not supported yet.&#8221;);<br />
}</span></strong><br />
}</p></blockquote>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/egurbuz.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/egurbuz.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/egurbuz.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/egurbuz.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/egurbuz.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/egurbuz.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/egurbuz.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/egurbuz.wordpress.com/95/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/egurbuz.wordpress.com/95/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/egurbuz.wordpress.com/95/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=95&subd=egurbuz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://egurbuz.wordpress.com/2009/10/27/jaxb-dongusel-baglari-xmlde-anahtarlma-cyclic-reference-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/702faa8273a38decb4af4c52d7968edc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Emre</media:title>
		</media:content>

		<media:content url="http://www.perl.com/2002/08/07/graphics/circular_ref.png" medium="image">
			<media:title type="html">http://www.perl.com/2002/08/07/graphics/circular_ref.png</media:title>
		</media:content>
	</item>
		<item>
		<title>Flex&#8217;te IFrame icerisinde HTML eklemek</title>
		<link>http://egurbuz.wordpress.com/2009/10/18/flexte-iframe-icerisinde-html-eklemek/</link>
		<comments>http://egurbuz.wordpress.com/2009/10/18/flexte-iframe-icerisinde-html-eklemek/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 17:53:52 +0000</pubDate>
		<dc:creator>Emre</dc:creator>
				<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[iframe html flex]]></category>
		<category><![CDATA[jstexreader]]></category>

		<guid isPermaLink="false">http://egurbuz.wordpress.com/?p=82</guid>
		<description><![CDATA[Flash dosyamiza dinamik reklam eklemek, ya da bir web sayfasini oldugu gibi gostermek  isteyebiliriz.Bunlar icin yapmak istedigimiz sey aslinda iframe Html eklemek. Malesef  bir swf icerisine iframe HTML eklemek sadece Flash ve Flex teknolojilerini kullanarak mumkun olmuyor. Ancak eklenmis gibi bir iluzyon yaratmak mumkun.
Bu ilüzyonu yaratmak icin elimizde olan imkanlara bakacak olursak:

AS3 kodu içerisinden, SWF [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=82&subd=egurbuz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Flash dosyamiza dinamik reklam eklemek, ya da bir web sayfasini oldugu gibi gostermek  isteyebiliriz.Bunlar icin yapmak istedigimiz sey aslinda iframe Html eklemek. Malesef  bir swf icerisine iframe HTML eklemek sadece Flash ve Flex teknolojilerini kullanarak mumkun olmuyor. Ancak eklenmis gibi bir iluzyon yaratmak mumkun.</p>
<p>Bu ilüzyonu yaratmak icin elimizde olan imkanlara bakacak olursak:</p>
<ul>
<li>AS3 kodu içerisinden, SWF dosyamizi sarmalayan(wrapper) HTML dosyamizdaki JavaScript kodlarini calistirabiliyoruz.  Bunu AS3&#8242; teki <em>ExternalInterface.call(&#8220;JSmethodAdi&#8221;)</em> seklinde yapiyoruz.</li>
<li>Javascript ile onceden tanimlanmis bir div elementinin gorunurlugunu(visibility), boyut ve konum bilgilerini degistirebiliyoruz</li>
</ul>
<p>Yapacagimiz iluzyonu az cok anlamissinizdir. Madem flash&#8217;ta HTML eklenmiyor, o zaman AS3 icerisinden Javascript metodlarini kullanarak, koordinat ve boyut bilgilerini parametre olarak verecegim Javascriptten bize bir iframe olusturmasini isteyebiliriz.  Peki bu iş bu kadar kolay mi? Malesef degil&#8230; Simdi de sorunlara bakacak olursak:</p>
<h2><strong>Flash hep en ustte!</strong></h2>
<p>Flash dosyalari varsayilan olarak HTML elamanlarini arka plana iter. Yani z-index i diger HTML elemanlarindan buyuk oldugundan diger butun bilesenler flash dosyasinin arkasinda kalir. Bu durumun boyle olmamasini istiyorsak swf dosyamizi HTML sayfamiza gomerken <strong>wmode</strong> parametresini <strong>transparent </strong>yapmamız gerekiyor</p>
<blockquote>
<pre>&lt;param name="wmode" value="transparent"&gt;</pre>
</blockquote>
<h2><strong>wmode degeri transparent, ama bir aksilik var!</strong></h2>
<p>Flash&#8217;in en populer bug&#8217;larindan biri wmode degeri transparent iken klavye duzenin varsayilan yani U.S. Keyboard layout yapilmasidir. Bu durumda ı,ş,ç,ğ gibi Türkçe karakterlerini kullanamazsınız. Tarayicidan tarayiciya degismekle birlikte genelde Firefox veya IE de tam olarak calistigi soylenemez.  Uygulamanizda chat kismi mevcut ise kullanicilar icin cok buyuk bir sorun teşkil eder. Peki bunun çözümü? Çözümü aslinda yukarida izledigimiz yolun tam tersi. TextInput bilesenlerimiz icin klavye girdilerini Javascript ile okuyup, bunu bilesenimize iletmek.  JSTextReader ile kolaylikla bunu halledebilirsiniz. <a href="http://blog.madebypi.co.uk/2009/04/21/transparent-flash-text-entry/" target="_blank">Bu adresten</a> JSTextReader icin ayrintilarini ve kodlarini indirebilirsiniz.</p>
<h2><strong>wmode sorunu tamam, şimdi sıra IFrame eklemekte</strong></h2>
<p>Bu adima kadar geldiyseniz <a href="http://code.google.com/p/flex-iframe/" target="_blank">bu sayfadan</a> HTML iframe nasil ekleyebilirsiniz ogrenebilirsiniz.</p>
<h2><strong>Ve sonuç&#8230;</strong></h2>
<p><a rel="attachment wp-att-85" href="http://egurbuz.wordpress.com/2009/10/18/flexte-iframe-icerisinde-html-eklemek/ss/"><img class="alignnone size-full wp-image-85" title="HTML IFrame deneme" src="http://egurbuz.files.wordpress.com/2009/10/ss.png?w=529&#038;h=391" alt="HTML IFrame deneme" width="529" height="391" /></a></p>
<p><strong><br />
</strong></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/egurbuz.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/egurbuz.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/egurbuz.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/egurbuz.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/egurbuz.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/egurbuz.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/egurbuz.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/egurbuz.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/egurbuz.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/egurbuz.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=82&subd=egurbuz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://egurbuz.wordpress.com/2009/10/18/flexte-iframe-icerisinde-html-eklemek/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/702faa8273a38decb4af4c52d7968edc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Emre</media:title>
		</media:content>

		<media:content url="http://egurbuz.files.wordpress.com/2009/10/ss.png" medium="image">
			<media:title type="html">HTML IFrame deneme</media:title>
		</media:content>
	</item>
		<item>
		<title>Quartz: Job Scheduling</title>
		<link>http://egurbuz.wordpress.com/2009/10/14/quartz-job-scheduling/</link>
		<comments>http://egurbuz.wordpress.com/2009/10/14/quartz-job-scheduling/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 14:40:45 +0000</pubDate>
		<dc:creator>Emre</dc:creator>
				<category><![CDATA[JEE]]></category>
		<category><![CDATA[quartz]]></category>
		<category><![CDATA[job scheduling]]></category>

		<guid isPermaLink="false">http://egurbuz.wordpress.com/?p=77</guid>
		<description><![CDATA[

Quartz, iş sıralama(job scheduling) diye tabir ettigimiz belli zamanlarda calisacak belli gorevleri yoneten, bu gorevlerin yasam döngüsünü düzenleyen java teknolojisi. JEE uygulamalarina entegrasyonu da mumkun. Gun sonunda kredi borcunu odemeyenlere SMS gondermek, 2 saatte bir veritabaninin yedegini almak  vs. istedigimizde Quartz i uygulamamiza ekleyebiliriz. Quartz ile ilgili daha ayrintili bilgi icin:
Quartz Resmi Sayfasi
Mustafa Tan&#8217;in girmis [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=77&subd=egurbuz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://www.opensymphony.com/quartz/images/quartzEJS.jpg" border="0" alt="" /></p>
<div id="logo"><a href="http://www.opensymphony.com/"><img src="http://www.opensymphony.com/images/os-logo.gif" border="0" alt="" /></a></div>
<p>Quartz, iş sıralama(job scheduling) diye tabir ettigimiz belli zamanlarda calisacak belli gorevleri yoneten, bu gorevlerin yasam döngüsünü düzenleyen java teknolojisi. JEE uygulamalarina entegrasyonu da mumkun. Gun sonunda kredi borcunu odemeyenlere SMS gondermek, 2 saatte bir veritabaninin yedegini almak  vs. istedigimizde Quartz i uygulamamiza ekleyebiliriz. Quartz ile ilgili daha ayrintili bilgi icin:</p>
<p><a href="http://www.opensymphony.com/quartz/" target="_blank">Quartz Resmi Sayfasi</a></p>
<p><a href="http://mustafatan.blogspot.com/2007/07/quartz-scheduler.html" target="_blank">Mustafa Tan&#8217;in girmis oldugu bir blog</a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/egurbuz.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/egurbuz.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/egurbuz.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/egurbuz.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/egurbuz.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/egurbuz.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/egurbuz.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/egurbuz.wordpress.com/77/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/egurbuz.wordpress.com/77/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/egurbuz.wordpress.com/77/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=77&subd=egurbuz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://egurbuz.wordpress.com/2009/10/14/quartz-job-scheduling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/702faa8273a38decb4af4c52d7968edc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Emre</media:title>
		</media:content>

		<media:content url="http://www.opensymphony.com/quartz/images/quartzEJS.jpg" medium="image" />

		<media:content url="http://www.opensymphony.com/images/os-logo.gif" medium="image" />
	</item>
		<item>
		<title>soapUI &amp; Netbeans 6.5 ile Web Servis testi</title>
		<link>http://egurbuz.wordpress.com/2009/10/13/soapui-netbeans-6-5-ile-web-servis-testi/</link>
		<comments>http://egurbuz.wordpress.com/2009/10/13/soapui-netbeans-6-5-ile-web-servis-testi/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 08:31:30 +0000</pubDate>
		<dc:creator>Emre</dc:creator>
				<category><![CDATA[JEE]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[Web Service]]></category>
		<category><![CDATA[jax-ws]]></category>
		<category><![CDATA[netbeans 6.5]]></category>
		<category><![CDATA[soapUI]]></category>
		<category><![CDATA[web service test]]></category>

		<guid isPermaLink="false">http://egurbuz.wordpress.com/?p=71</guid>
		<description><![CDATA[






Netbeans, JAX-WS uzerinde web servis gerceklestirimi icin kolayliklar sunmasina ragmen, olusturulan web servislerin test edilmesi adina butunlesik gelen bir araci bulunmamaktadir. Web servisleri test etmek icin soapUI &#8216;nin Netbeans eklentisini kullanabilirsiniz.


soapUI Netbeans eklenti dosyasini BURADAN indirebilirsiniz
kurulumu ile ilgili dokumani BURADAN okuyabilirsiniz
test projesinin nasil olusturuldugunu BURADAN okuyabilirsiniz
kullanimi ile ilgili egitim videosunu BURADAN izleyebilirsiniz

    [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=71&subd=egurbuz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
<p><strong>Netbeans</strong>, JAX-WS uzerinde web servis gerceklestirimi icin kolayliklar sunmasina ragmen, olusturulan web servislerin test edilmesi adina butunlesik gelen bir araci bulunmamaktadir. Web servisleri test etmek icin <strong>soapUI</strong> &#8216;nin Netbeans eklentisini kullanabilirsiniz.</p>
<p><a id="organizationLogo" href="http://www.soapui.org/"><img src="http://www.soapui.org/images/soapui-logo.png" alt="soapui.org" /></a></p>
<ul>
<li>soapUI Netbeans eklenti dosyasini <a title="soapUI kurulum dosyasi" href="http://sourceforge.net/projects/soapui/files/soapui-netbeans-plugin/3.0/com-eviware-soapui-netbeans-module-3.0.nbm/download" target="_blank">BURADAN</a> indirebilirsiniz</li>
<li>kurulumu ile ilgili dokumani <a title="soapUI kurulum islemi" href="http://www.soapui.org/netbeans/installation.html" target="_blank">BURADAN</a> okuyabilirsiniz</li>
<li>test projesinin nasil olusturuldugunu <a href="http://www.soapui.org/netbeans/index.html" target="_blank">BURADAN</a> okuyabilirsiniz</li>
<li>kullanimi ile ilgili egitim videosunu <a href="http://www.soapui.org/netbeans/demos/soapui-netbeans-demo-3/soapui-netbeans-demo-3.html" target="_blank">BURADAN </a>izleyebilirsiniz</li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/egurbuz.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/egurbuz.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/egurbuz.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/egurbuz.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/egurbuz.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/egurbuz.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/egurbuz.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/egurbuz.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/egurbuz.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/egurbuz.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=71&subd=egurbuz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://egurbuz.wordpress.com/2009/10/13/soapui-netbeans-6-5-ile-web-servis-testi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/702faa8273a38decb4af4c52d7968edc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Emre</media:title>
		</media:content>

		<media:content url="http://www.soapui.org/images/soapui-logo.png" medium="image">
			<media:title type="html">soapui.org</media:title>
		</media:content>
	</item>
		<item>
		<title>GET vs POST &#8211; Kullanim Durumlari</title>
		<link>http://egurbuz.wordpress.com/2009/10/08/get-vs-post-kullanim-durumlari/</link>
		<comments>http://egurbuz.wordpress.com/2009/10/08/get-vs-post-kullanim-durumlari/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 11:19:52 +0000</pubDate>
		<dc:creator>Emre</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[get]]></category>
		<category><![CDATA[http]]></category>
		<category><![CDATA[post]]></category>

		<guid isPermaLink="false">http://egurbuz.wordpress.com/?p=66</guid>
		<description><![CDATA[HTML belirtim belgelerinde yazilana gore POST ve GET arasindaki en temel fark. GET metodu kullanildiginda bir formun
verileri URL bilgisi icerisinde kodlanmasi, POST metodunda istemin mesaj kisminda tutularak gonderilmesidir.
Belirtim ayni zamanda bahsi gecen bu metodlarin kullanim durumlari icin de bir oneri getirmektedir. Oneriye gore bilgi getirme islemleri icin(veri okuma) GET kullanilmali, bunun disindaki islemler icin ise [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=66&subd=egurbuz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>HTML belirtim belgelerinde yazilana gore POST ve GET arasindaki en temel fark. GET metodu kullanildiginda bir formun<br />
verileri URL bilgisi icerisinde kodlanmasi, POST metodunda istemin mesaj kisminda tutularak gonderilmesidir.<br />
Belirtim ayni zamanda bahsi gecen bu metodlarin kullanim durumlari icin de bir oneri getirmektedir. Oneriye gore bilgi getirme islemleri icin(veri okuma) GET kullanilmali, bunun disindaki islemler icin ise (guncelleme, ekleme, siparis verme, e-posta gonderme vb.) POST metodu kullanilabilir.</p>
<p>Yukaridaki ifadeye gore, form gonderme islemimiz şayet sadece kullanicin ekraninda bir degisiklik yaratacaksa, baska bir deyisle, veritabaninda ya da diger kaynaklarda herhangi bir degisiklige sebep olmayacaksa GET kullaniriz. Ornek olarak, bir kutuphane otomasyonunda, form icerisinde girilen Yazar&#8217;in kitaplarinin getirilmesi işlemi veritabanimizda sadece okuma işlemi yapiyorsa GET kullanabiliriz.</p>
<p>Peki neden boyle bir ayrima gidilmis? POST yerine GET, GET yerine POST kullanmak mumkun iken farkli kullanim durumlari olusturulmus? Aslinda yine ornek bir senaryodan yola cikalim ve bir su dagitim firmasinin sitesinden 1 tane su siparis verdigimizi dusunelim. Sipariş onaylanmiş ve su firmasi adresimize bir adet suyu gonderiyorken, tarayicinin geri tusuna basip karsimiza gelen siparis formunu hatayla tekrar submit ettigimizi varsayalim. Bu durumda tarayicinin bize bir uyari mesaji sundugunu goruruz cogu zaman.Bu mesajda bize &#8220;POST isteminin yeniden gondermek istediginizden emin misiniz?&#8221; benzeri bir soru yoneltir.&#8221;Evet&#8221; deyip devam edersek yeni siparis gonderilmis olacak.Obur taraftan durumun farkinda olan bir kullanici &#8220;hayir&#8221; diyerek siparisin gonderilmesini iptal edebilir.</p>
<p>Tarayicinin yaptigi iş aslinda, POST istemlerinde kullaniciyi uyaran, hatali islemlere sebep olacak kullanimlardan kullaniciyi haberdar etmek adina yukarida bahsedilen mekanizmayi kullanmaktir. Ayni mekanizma GET icin gecerli degildir. Cunku en basta bahsettigim gibi, GET dis kaynaklarda bir degisiklige yol acmayacak istemler olarak ele alindigindan kullaniciyi uyarmaya gerek gorulmez. Şayet su firmasinin webmasteri POST yerine GET kullanmis olsaydi hicbir uyari gormeden yukaridaki senaryoda ust uste su siparisi verecektik.</p>
<p>POST ve GET arasindaki teknik farklara goz atacak olursak da:</p>
<p><strong>POST</strong><br />
1. Varsayilan oılarak veriler önbellekte(cache) tutulmaz.Veriler her zaman web sunucusundan cekilir.<br />
2. Veri uzunlugu ile ilgili bir kisitlama yoktur. Daha dogrusu web sunucusuna baglidir.<br />
3. Karakter kodlamasi application/x-www-form-urlencoded olarak kolayca yapilabilir.<br />
4. CGI sunucularinda, gelen parametreler STDIN kanalindan okunur.</p>
<p><strong>GET</strong><br />
1.Veriler önbellekte saklanir.<br />
2.Tarayiciya gore degisen maksimum URL uzunluguna gore gonderilebilecek veri uzunlugu bellidir.<br />
3.CGI sunucularda, gelen parametreler QUERY_STRING degiskeni üzerinden okunur.</p>
<p>Özet olarak</p>
<ul>
<li>Dış kaynaklarda degisiklige yol acacak durumlarda(veritabaninda degisiklik vb.) <strong>POST</strong> kullanmali.</li>
<li>Veri uzunlugu fazla ise <strong>POST</strong> kullanmali</li>
<li>Verilerin önbellekte saklanmasini istiyorsaniz <strong>GET</strong> kullanmali.</li>
<li>Guvenlik soz konusu ise(Kredi karti numarasi vs.) ve önbellekte durmasini istemiyorsaniz<strong> POST</strong> kullanmali</li>
<li>Parametrelerin URL kisminda gorunmesini istemiyorsaniz <strong>POST</strong> kullanmali</li>
</ul>
<p>Son olarak, genelde GET metodunun POST metoduna gore daha hizli calistigini(tarayici faktoru vardir) ve yukaridaki kullanim durumlarina gore POST gerektirmeyecek durumlarda GET kullanmanın performansi arttirdigini soylemek istiyorum.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/egurbuz.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/egurbuz.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/egurbuz.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/egurbuz.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/egurbuz.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/egurbuz.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/egurbuz.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/egurbuz.wordpress.com/66/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/egurbuz.wordpress.com/66/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/egurbuz.wordpress.com/66/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=66&subd=egurbuz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://egurbuz.wordpress.com/2009/10/08/get-vs-post-kullanim-durumlari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/702faa8273a38decb4af4c52d7968edc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Emre</media:title>
		</media:content>
	</item>
		<item>
		<title>Hibernate ve Transaction Yonetimi</title>
		<link>http://egurbuz.wordpress.com/2009/10/05/hibernate-ve-transaction-yonetimi/</link>
		<comments>http://egurbuz.wordpress.com/2009/10/05/hibernate-ve-transaction-yonetimi/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 08:53:22 +0000</pubDate>
		<dc:creator>Emre</dc:creator>
				<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[JTA]]></category>

		<guid isPermaLink="false">http://egurbuz.wordpress.com/?p=62</guid>
		<description><![CDATA[Veritabani uygulamalarinda, CRUD(Create Update Delete)  işlemleri yaygın olarak kullanılır. Transaction veritabanindaki verilerin dogru ve diger verilerle tutarli olmasini saglamak icin kullanilan bir yontemdir. Kısacasi &#8220;işlem grubu&#8221; olarak tanımlanabilir.  Bu işlem grubunu oluşturan işlemler veritabaninda yazma/okuma/guncelleme islemleri yapan işlemlerdir genelde.
Transaction temelde begin, commit ve rollback operasyonlarini yapar.  Begin ile &#8220;birazdan veritabani islemleri yapacagim haberin olsun&#8221; diyoruz, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=62&subd=egurbuz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Veritabani uygulamalarinda, CRUD(Create Update Delete)  işlemleri yaygın olarak kullanılır. Transaction veritabanindaki verilerin dogru ve diger verilerle tutarli olmasini saglamak icin kullanilan bir yontemdir. Kısacasi &#8220;işlem grubu&#8221; olarak tanımlanabilir.  Bu işlem grubunu oluşturan işlemler veritabaninda yazma/okuma/guncelleme islemleri yapan işlemlerdir genelde.</p>
<p>Transaction temelde begin, commit ve rollback operasyonlarini yapar.  Begin ile &#8220;birazdan veritabani islemleri yapacagim haberin olsun&#8221; diyoruz, Transaction&#8217;da &#8220;tamam o zaman yaptigin islemleri ben aklima yaziyorum, ama veritabanina hemen yansitmayacam ancak ve ancak zamani gelince yaparim o işi&#8221; der.</p>
<p>Transaction begin ile baslatildiktan sonra ve veritabani işlemlerini gerceklestirdikten sonra commit ile &#8220;İşlemlerimi hallettim, şimdilik bi işim kalmadi, bu aklina aldigin degisiklikleri artik veritabanina yansit&#8221; diyoruz. Transaction da &#8220;tamamdir patron&#8221; der ve veritabani kayitlari uzerinde yaptigimiz degisiklikler ancak o zaman gercekten yansir. Peki yaptigimiz veritabani islemlerinde biri hataya neden olursa ne olur? İşte o zaman transaction rollback dedigimiz &#8220;geri alma&#8221; işlemini yaparak aklina aldigi işlemleri iptal eder ve veritabanina hic bir degisiklik yansimamis olur.</p>
<p>Bunun onemi nedir peki? Kritik bir işlem dizisi düşünelim mesela bir banka işlemi. Bu işlem dizisinin adi P olsun ve  A,B, C işlemlerinden olussun. Bir transaction baslatilip, sirasiyla A ve B işlemlerini basarili bir sekilde yaptigimizi ancak C isleminde onemli bir hata olustugunu dusunelim. Boyle bir senaryoda P islem dizisinin tümden basarisiz olmasi beklenir ve A,B işlemlerinin sonuclarinin iptal edilmesi, urettikleri degisikliklerin veritabanina yansimamasi istenir. Istedigimiz aslinda transaction&#8217;ın rollback ozelligi.</p>
<p>Transaction&#8217;ı basit duzeyde ifade ettikten sonra bunu hibernate ile nasil kullanilacagini soylemek de sira. Hibernate bize 3 şekil Transaction Yonetimi sunar. Bunlarin ayrintisini ve konfigurasyonun nasil yapildigini ogrenmek icin <a title="Hibernate Transaction Yonetimi" href="https://www.hibernate.org/42.html" target="_blank">buradan</a> okuyabilirsiniz.  Ben sadece programci gozuyle bu yontemleri ne zaman ve nasil kullanmamiz gerektiginden bahsedecegim.</p>
<p><strong>1. JDBC Transaction Yonetimi</strong></p>
<p>JDBC Transaction Yonetimi varsayilan ele alma bicimidir. Veritabani duzeyinde ele alinir. Ancak hibernate bize JDBC API&#8217;leri ile ugrasmaktansa Session nesnesi ile sarmaladigi transaction nesnesini kullanmamiza izin verir.  Bu transaction nesnesini kullanabilmek icin mutlaka bir tane Hibernate Session nesnemiz olmalidir.</p>
<pre>try {
    //Transaction, Hibernate session nesnesi araciligiyla baslatilir
    factory.getCurrentSession().begin<span style="color:#cc0000;">Transaction</span>();

    // İslem dizisi
    factory.getCurrentSession().load(...);
    factory.getCurrentSession().persist(...);

    //Transaction commit edilir, degisiklikler onaylanır
    factory.getCurrentSession().get<span style="color:#cc0000;">Transaction</span>().commit();
}
catch (RuntimeException e) {
    //Hata durumunda rollback yapilir
    factory.getCurrentSession().get<span style="color:#cc0000;">Transaction</span>().rollback();
    throw e;
}
</pre>
<p><strong>2. JTA Transaction Yonetimi</strong></p>
<p>Java Transaction API, bir java standardidir. JTA ile ilgili bilmeniz gereken en onemli unsur, dagitik birden cok veritabaniyla uygulamanizin baglantisi varsa JTA kullanmanizin gerekliligidir. Programlama olarak JDBC yonteminden farki transaction nesnesinin JNDI yontemile elde edilmesi, yani bunun icin Hibernate Session nesnesine ihtiyac duymamasidir. Ancak arka planda current session ile  JTA transaction&#8217;i otomatik olarak birbirine baglanmaktadir.</p>
<pre>try {
    User<span style="color:#cc0000;">Transaction</span> tx = (User<span style="color:#cc0000;">Transaction</span>)new InitialContext()
                            .lookup("java:comp/User<span style="color:#cc0000;">Transaction</span>");

    tx.begin();

    factory.getCurrentSession().load(...);
    factory.getCurrentSession().persist(...);

    tx.commit();
}
catch (RuntimeException e) {
    tx.rollback();
    throw e;
}
</pre>
<p><strong>3. CMT/EJB Transaction Yonetimi</strong></p>
<p>EJB3 <em>dependency injection</em> ile Transaction yonetiminin kodlanmasiyla ilgilenmek istemiyor, bunun arka planda otomatik olarak yapilmasini istiyorsaniz bu yontemi kullanabilirsiniz. Boyle bir durumda asagidaki gibi bir methodun cagrilmasiyla Transaction yaratilmis, sonlanip geri donmesiyle otomatik olarak sonlandirilmistir. Hicbir sekilde Transaction nesnesine mudahale etme imkaniniz bulunmuyor. begin, commit,rollback methodlarini cagirmaniz durumunuda <strong>IllegalStateException</strong> alirsiniz</p>
<pre>@<span style="color:#cc0000;">Transaction</span>Attribute(<span style="color:#cc0000;">Transaction</span>AttributeType.REQUIRED)
public void doSomeWork() {
    // Do some work
    factory.getCurrentSession().load(...);
    factory.getCurrentSession().persist(...);
}
</pre>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/egurbuz.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/egurbuz.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/egurbuz.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/egurbuz.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/egurbuz.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/egurbuz.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/egurbuz.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/egurbuz.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/egurbuz.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/egurbuz.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=62&subd=egurbuz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://egurbuz.wordpress.com/2009/10/05/hibernate-ve-transaction-yonetimi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/702faa8273a38decb4af4c52d7968edc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Emre</media:title>
		</media:content>
	</item>
		<item>
		<title>Glassfish Hata:ADM5801:Admin server channel creation failed.</title>
		<link>http://egurbuz.wordpress.com/2009/10/04/glassfish-hataadm5801admin-server-channel-creation-failed/</link>
		<comments>http://egurbuz.wordpress.com/2009/10/04/glassfish-hataadm5801admin-server-channel-creation-failed/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 13:38:05 +0000</pubDate>
		<dc:creator>Emre</dc:creator>
				<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[JEE]]></category>

		<guid isPermaLink="false">http://egurbuz.wordpress.com/?p=53</guid>
		<description><![CDATA[Windows XP uzerinde Netbeans 6.7 ile butunlesik gelen glassfish v2&#8242;nin baslatilmasi esnasinda alinan bu hata gercekten bir sure bas agritici olmustu benim icin.  Hata arastirildiginda genelde XP  ortam degiskenlerinden SystemRoot degiskeninin eklenmesi ve sistemdeki Windows dizininin adresinin deger olarak verilmesi gerektiginden bahsediliyor. Ornegin C:\WINDOWS seklinde. Kucuk/Buyuk harf duyarli oldugu icin adresi birebir vermeye ozen gostermelisiniz.
SystemRoot [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=53&subd=egurbuz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Windows XP uzerinde <strong>Netbeans 6.7</strong> ile butunlesik gelen <strong>glassfish</strong> v2&#8242;nin baslatilmasi esnasinda alinan bu hata gercekten bir sure bas agritici olmustu benim icin.  Hata arastirildiginda genelde XP  ortam degiskenlerinden <strong>SystemRoot</strong> degiskeninin eklenmesi ve sistemdeki Windows dizininin adresinin deger olarak verilmesi gerektiginden bahsediliyor. Ornegin C:\WINDOWS seklinde. Kucuk/Buyuk harf duyarli oldugu icin adresi birebir vermeye ozen gostermelisiniz.</p>
<p>SystemRoot degiskenini ayarlamama ragmen ayni hatayi almaya devam ediyordum. Ingilizce olan XP sistemimde Region/language ayarlarini  asagidaki gibi Turkce&#8217;den Ingilizceye cevirdikten ve Netbeans&#8217;i yeniden baslattiktan sonra glassfish normal bir sekilde baslamisti.Sonuc olarak Glassfish ten bir bug daha <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="attachment_54" class="wp-caption alignnone" style="width: 402px"><a rel="attachment wp-att-54" href="http://egurbuz.wordpress.com/2009/10/04/glassfish-hataadm5801admin-server-channel-creation-failed/sc/"><img class="size-full wp-image-54" title="sc" src="http://egurbuz.files.wordpress.com/2009/10/sc.png?w=392&#038;h=416" alt="Dil ayarlarini degistirme- SC" width="392" height="416" /></a><p class="wp-caption-text">Dil ayarlarini degistirme- SC</p></div>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/egurbuz.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/egurbuz.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/egurbuz.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/egurbuz.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/egurbuz.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/egurbuz.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/egurbuz.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/egurbuz.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/egurbuz.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/egurbuz.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=53&subd=egurbuz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://egurbuz.wordpress.com/2009/10/04/glassfish-hataadm5801admin-server-channel-creation-failed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/702faa8273a38decb4af4c52d7968edc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Emre</media:title>
		</media:content>

		<media:content url="http://egurbuz.files.wordpress.com/2009/10/sc.png" medium="image">
			<media:title type="html">sc</media:title>
		</media:content>
	</item>
		<item>
		<title>Segmentation Fault Hakkında</title>
		<link>http://egurbuz.wordpress.com/2008/08/30/segmentation-fault-hakkinda/</link>
		<comments>http://egurbuz.wordpress.com/2008/08/30/segmentation-fault-hakkinda/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 19:23:14 +0000</pubDate>
		<dc:creator>Emre</dc:creator>
				<category><![CDATA[C Programlama]]></category>

		<guid isPermaLink="false">http://egurbuz.wordpress.com/?p=35</guid>
		<description><![CDATA[Programlamaya yeni baslayan biri icin, can sıkıcı kafa yedirten ve bir o kadar öğretici bir hatadır segmentation fault. Bir süre sonra programınızın bu hatayı almadan çalıştıgını görmek ilerleme kaydettiğinizi ciddi anlamda gösterir.
C ile ilk &#8220;Merhaba Dunya&#8221; uygulamamıı yazabildikten kısa bir süre sonra, bilgisayar programının genel yapısını öğrenmemi sağlayan bu hata malesef yeni programcı arkadasların korkulu [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=35&subd=egurbuz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Programlamaya yeni baslayan biri icin, can sıkıcı kafa yedirten ve bir o kadar öğretici bir hatadır segmentation fault. Bir süre sonra programınızın bu hatayı almadan çalıştıgını görmek ilerleme kaydettiğinizi ciddi anlamda gösterir.</p>
<p>C ile ilk &#8220;Merhaba Dunya&#8221; uygulamamıı yazabildikten kısa bir süre sonra, bilgisayar programının genel yapısını öğrenmemi sağlayan bu hata malesef yeni programcı arkadasların korkulu ruyası olmaya devam ediyor <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Bu korkuyu tasıyan biri iseniz, asağıda bahsedecegim &#8220;segmentation fault&#8221; alma sebeplerini okudugunuzda, artık düşmanınızı bir nebze daha tanımış biri olarak yolunuza devam edebileceksiniz <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Yine C&#8217;den yola cıkalım. Kod içerigi ne olursa olsun, derlenmiş ve çalışabilir hale getirilmiş bir C programının genel yapısı aşağıdaki kısımlardan olusur.<span id="more-35"></span></p>
<p>-kod kesimi : Burada programın makina kodlarına dönüşmüş hali mevcuttur. Yazdıgınız bütün fonksiyonlar burada saklanır.</p>
<p>-data kesimi: Programın kullandığı yerel, global, static değişkenler, sabitler burada saklanır.</p>
<p>-stack kesimi: Fonksiyon parametreleri, geri donus degerleri, fonksiyon adresleri gibi gecici veriler programın bu kesimindedir.</p>
<p>-heap kesimi: Program icerisinde malloc/calloc/realloc gibi devingen(dynamic) bellek alma işlemleri sonucu, bu kesimden yer alırsınız.</p>
<p>Bu bellek modelini verdikten sonra gelelim asıl meseleye, &#8220;Segmentation Fault&#8221; neden ortaya çıkar? Aslında cok basit.. Data kesiminde bahsettigim gibi yerel, global, static degiskenler tutulmakta. Yani data kesimi de kendi icinde sadece-okunabilir(R) ve okunabilir-yazılabilir(R-W) olarak ayrılır.</p>
<p>int main(){</p>
<p>int a = 5;</p>
<p>char *c = &#8220;Hacettepe&#8221;</p>
<p>return 0;</p>
<p>}</p>
<p>Yukardaki programda iki farklı değişkenimiz mevcut. İkisi de yerel. &#8216;a&#8217; adında sayısal(integer) degiskenimiz ve &#8216;c&#8217; adında karakter gostericimiz(pointer). İki degiskenimizinde ilkdeğerleri var dikkat edersek. a&#8217;nın ilkdeğeri 5, c nin gosterdigi karakter dizisinin değeri ise &#8220;Hacettepe&#8221;. Program çalıştığında degiskenlere cok guzel bir sekilde bu değeri verebiliyor degil mi? Peki bunu nereden biliyor? İşte yukarda bahsettiğim data kesiminin sadece-okunabilir kısmına bu sabitler kaydedilir. Bu işlem derleme-bağlama(build) aşamasında gerçekleştirilir.</p>
<p>&#8216;c&#8217; gostericisi bellegin sadece okunabilir bolgesinde kayıtlı, &#8216;Hacettepe&#8217; değerine sahip dizinin baslangıc adresinin degerine sahip. Bu adresin sayısal degerinin bizim için bir anlamı yok. Sadece ve sadece bilmemiz gereken, bu adresin bellegin sadece-okunabilir adres evreni icerisinde kaldığı.</p>
<p>Peki sadece-okunabilir dedik, iyi guzel de, bir sey yazarsak nolur? İşte o zaman sevgili &#8220;Segmentation Fault&#8221; ile tanışmış olursun <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Tanım yapacak olursak genel anlamda &#8220;Segmentation Fault&#8221;, önceden yazmaya karşı korumalı olarak ayrılmış bellegin bir kesimine yazma işlemini gerçekleştirememe hatasıdır. Bu bellek yukarda bahsettigim gibi sabitlerin saklandığı programınızın kendi belleği, veya baska bir programın bellegi yahut da işletim sistemine ayrılmış bir bellek alanı olabilir. Bir kac ornek verelim o halde <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>char *c = &#8220;Emre Gurbuz&#8221;;</p>
<p>strcpy(c, &#8220;Egurbuz&#8221;);</p>
<p>&#8220;Emre Gurbuz&#8221; bellegin okunabilir kesiminde, üzerine &#8220;Egurbuz&#8221; değerini yazmaya kalkiyoruz ve hatamizi aliyoruz tabiki..</p>
<p>int *p;</p>
<p>*p = 2009;</p>
<p>Yukarıda int *p ile bir gosterici degiskeni oluşturduk. ilk değer vermediğimiz icin derleyici tarafından 0 degeri atandı. 0, null demek biliyoruz. İkinci satırda bu gostericinin gosterdigi bellege 2009 sayısını yazmaya çalışırsak yine o malum hatayı alırız.</p>
<p>Segmentation Faultu almamak adına program içerisindeki değişkenler, bunların ömürleri ve tipleri hakkında bilgili olmalısınız. malloc ile ayırdıgınız bir bellek yazılabilir/okunabilir dir. Malloc fonksiyonu başarılı bir şekilde calıştıysa korkmanıza gerek yok <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Null pointerlara dikkat göstermelisiniz. Gerekli yerlerde null pointer kontrolunuzu yapmalı, algoritmanızı bu hatayı engelliyecek şekilde kurmalısınız.</p>
<p>Şimdilik bu kadar&#8230;Segmentation Fault&#8217;tan kısaca bahsetmek istedim bu yazıda, çünkü  çok karşılaşılan ve iyice anlaşılmadan geçilen bir konu oldugunu düşünüyorum. Umarım az da olsa korkunuz azalmıştır <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/egurbuz.wordpress.com/35/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/egurbuz.wordpress.com/35/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/egurbuz.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/egurbuz.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/egurbuz.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/egurbuz.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/egurbuz.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/egurbuz.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/egurbuz.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/egurbuz.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/egurbuz.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/egurbuz.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=35&subd=egurbuz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://egurbuz.wordpress.com/2008/08/30/segmentation-fault-hakkinda/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/702faa8273a38decb4af4c52d7968edc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Emre</media:title>
		</media:content>
	</item>
		<item>
		<title>TAG KÜTÜPHANESİ KAVRAMI</title>
		<link>http://egurbuz.wordpress.com/2008/08/05/25/</link>
		<comments>http://egurbuz.wordpress.com/2008/08/05/25/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 15:44:00 +0000</pubDate>
		<dc:creator>Emre</dc:creator>
				<category><![CDATA[1]]></category>

		<guid isPermaLink="false">http://egurbuz.wordpress.com/2008/08/05/25/</guid>
		<description><![CDATA[ Tag Kütüphanesi Nedir?
 JSP teknolojisinde, eylemler(actions) nesneleri yaratıp erişebilen ve çıktı akışını etkileyebilen kısımlardır. JSP tanımındaki 6 tane standart eylem, herhangi bir JSP gerçekleştirimi tarafından desteklenmelidir.
 Standart eylemlere ek olarak, JSP v1.1 teknolojisi tekrar kullanılabilir modül olarak bilinen özel eylemleri(custom actions) içermektedir. Bir özel eylem, JSP sayfalarında özel bir tag(custom tag) kullanılarak tetiklenir. Tag [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=25&subd=egurbuz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><h1 style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span> </span></span><span style="font-size:10pt;line-height:115%;font-family:&quot;">Tag Kütüphanesi Nedir?</span></h1>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span> </span>JSP teknolojisinde, eylemler(actions) nesneleri yaratıp erişebilen ve çıktı akışını etkileyebilen kısımlardır. JSP tanımındaki 6 tane standart eylem, herhangi bir JSP gerçekleştirimi tarafından desteklenmelidir.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span> </span>Standart eylemlere ek olarak, JSP v1.1 teknolojisi tekrar kullanılabilir modül olarak bilinen özel eylemleri(custom actions) içermektedir. Bir özel eylem, JSP sayfalarında özel bir tag(custom tag) kullanılarak tetiklenir. Tag kütüphanesi genel olarak özel taglerin koleksiyonudur.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"> </span></p>
<h2 style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;">Neden Tag Kütüphanesine İhtiyaç Duyulmuştur?</span></h2>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span> </span>Form işleme, veritabanına,mail ve dizinler gibi diğer kurumsal hizmetlere erişim, ve akış kontrolü gibi görevler, özel eylemler tarafından gerçekleştirilebilir. Özel eylemler kullanılmaya başlanmadan önce, JavaBeans bileşenleri ile birlikte Scriptlet kullanmak, bu görevleri ele almanın temel mekanizmasıydı. Bu yaklaşım JSP sayfalarını daha karmaşık ve<span> </span>bakımını zor hale getirmiştir.</span></p>
<p class="MsoNormal" style="text-align:justify;"><a name="61979"></a><a name="63195"></a><a name="61980"></a><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span> </span>Özel eylemler bu problemi JSP sayfalarında farklı seviyedeki bileşenleri kullanarak çözmektedir. Özel eylemler yinelenen görevleri sarmalayarak, görevlerin birden fazla uygulamada tekrar kullanılmasını sağlamaktadır. Aynı zamanda kütüphane geliştiricileriyle kütüphane kullanıcılarını birbirinden ayırarak verimliliği arttırmaktadır. JSP tag kütüphaneleri, Java dilinde profesyonel olmuş geliştiriciler tarafından oluşturulmuştur. JSP kütüphaneleri,<span> </span>Java diline hakim olmayan, verilere ve diğer kurumsal hizmetlere erişimin ayrıntılarından uzak kalan Web uygulaması tasarımcıları tarafından kullanılabilmektedir. Sonuçta Web tasarımcısının odaklandığı, uygulamanın sunum(presentation) kısmını başarılı bir şekilde gerçekleştirmektir. </span></p>
<p class="MsoNormal" style="text-align:justify;"><span id="more-25"></span><span style="font-size:10pt;line-height:115%;font-family:&quot;"><strong>Tag kütüphanelerinin tanımlanması</strong></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span> </span>JSP sayfasında tagleri kullanılacak tag kütüphanesini tanımlamak için taglib direktifi, sayfa içerisinde özel taglerin kullanımına başlamadan önce eklenmelidir:</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"> <!--[if !mso]--></span></p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td><!--[endif]--></p>
<div>
<p class="MsoNormal" style="margin-bottom:5pt;line-height:normal;"><span style="font-size:8pt;font-family:&quot;"><span style="color:#ff0000;">&lt;%@ taglib     uri=&#8221;/yml&#8221; prefix=&#8221;yml&#8221; %&gt;</span></span></p>
</div>
<p><!--[if !mso]--></td>
</tr>
</tbody>
</table>
<p><!--[endif]--></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span> </span>uri özelliği, tag kütüphanesinin biricik olmasını sağlayan URI’yi belirtir. Bu URI göreli veya mutlak olabilir. prefix özelliği ise kullanılmak istenen tag kütüphanesinin taglerini diğer tag kütüphanesi taglerinden ayırt etmek için kullanılan bir ön ek tanımlar.</span></p>
<p class="MsoNormal"><span style="font-size:10pt;line-height:115%;font-family:&quot;"> </span></p>
<h1 style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;">ÖRNEK TAG KÜTÜPHANELERİ</span></h1>
<h2 style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;" lang="EN-US">Google JSP Tag Library </span></h2>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><strong> Genel bakış</strong></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span> </span>Google JSP tag kütüphanesi, yazılım geliştiricilerine ve web tasarımcılarına Google sorgularını, arama sonuçlarını, önbellek sayfalarını ve heceleme önerilerini kendi web sayfaları veya uygulamalarıyla birleştirme kolaylığı getirmektedir. Google JSP tag kütüphanesi açık kaynak bir projedir.</span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><strong>Google JSP tag kütüphanesinin kurulumu</strong></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span> </span>Google JSP tag kütüphanesi, JSP(1.1 veya üstü) sunucusuna(Tomcat) ihtiyaç duyar. Google JSP tag kütüphanesini kullanmak için kütüphanenin JAR kütüğünün(google.jar) uygulamanın <code><span style="font-family:&quot;">WEB-INF/lib dizinine kopyalanmalıdır. Ayrıca tag kütüphanesi tanımlayıcısı(google.tld) uygulamanın WEB-INF dizininin altında bulunmalıdır.</span></code></span></p>
<p class="MsoNormal" style="text-align:justify;"><code><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span> </span>Kütüphane kütüklerinin eklenmesinden sonra, web uygulamasının dağıtma tanımlayıcısı(web.xml) kütüğü, Google Tag kütüphanesini kullanacak şekilde düzenlenmelidir.</span></code></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"> <!--[if !mso]--></span></p>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td><!--[endif]--></p>
<div>
<pre><span style="color:#ff0000;"><span style="font-size:8pt;">&lt;taglib&gt;

<span>  </span>&lt;taglib-uri&gt;/google-taglib&lt;/taglib-uri&gt;

<span>  </span>&lt;taglib-location&gt;/WEB-INF/google.tld&lt;/taglib-location&gt;

&lt;/taglib&gt;</span></span>
<span style="color:#ff0000;"><span style="font-size:8pt;"> </span></span></pre>
</div>
<p><!--[if !mso]--></td>
</tr>
</tbody>
</table>
<p><!--[endif]--></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"><span> </span>Google Web API’deki Java kütüphanesi, Google JSP tag kütüphanesini kullanmak için gereklidir.Kütüphane içerisindeki JAR kütüğü(googleapi.jar) yine uygulamanın <code><span style="font-family:&quot;">WEB-INF/lib dizinine kopyalanmalıdır.Bunun yanı sıra Google Web hizmetlerini kullanabilmek için, Google hesabından bir adet lisans anahtarı gereklidir.Lisans anahtarı web.xml içerisinde aşağıdaki gibi eklenmelidir.</span></code></span></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;"> <!--[if !mso]--></span></p>
<table style="height:173px;" border="0" cellspacing="0" cellpadding="0" width="687">
<tbody>
<tr>
<td><!--[endif]--></p>
<div>
<pre><span style="font-size:8pt;"><span style="color:#ff0000;">&lt;context-param&gt;

<span>  </span>&lt;param-name&gt;google_key&lt;/param-name&gt;

<span>  </span>&lt;param-value&gt;000000000000000000000000&lt;/param-value&gt;

&lt;/context-param&gt;</span></span><span style="font-size:8pt;line-height:115%;"> </span></pre>
</div>
<p><!--[if !mso]--></td>
</tr>
</tbody>
</table>
<p><!--[endif]--></p>
<p class="MsoNormal" style="text-align:justify;"><span style="font-size:10pt;line-height:115%;font-family:&quot;">Google JSP tag kütüphanesini kullanabilmek için aşağıdaki taglib direktifi, Google JSP tag kütüphanesini kullanan JSP sayfalarının başına eklenmelidir</span></p>
<p class="MsoNormal" style="text-align:justify;">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td><!--[endif]--></p>
<div>
<pre><span style="font-size:8pt;"><span style="color:#ff0000;">&lt;%@taglib uri="/google-taglib" prefix="google"%&gt;</span></span></pre>
</div>
<p><!--[if !mso]--></td>
</tr>
</tbody>
</table>
<p><!--[endif]--></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/egurbuz.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/egurbuz.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/egurbuz.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/egurbuz.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/egurbuz.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/egurbuz.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/egurbuz.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/egurbuz.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/egurbuz.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/egurbuz.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/egurbuz.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/egurbuz.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=25&subd=egurbuz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://egurbuz.wordpress.com/2008/08/05/25/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/702faa8273a38decb4af4c52d7968edc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Emre</media:title>
		</media:content>
	</item>
		<item>
		<title>Efektif Programlama Alışkanlıkları</title>
		<link>http://egurbuz.wordpress.com/2008/07/28/efektif-programlama-aliskanliklari/</link>
		<comments>http://egurbuz.wordpress.com/2008/07/28/efektif-programlama-aliskanliklari/#comments</comments>
		<pubDate>Mon, 28 Jul 2008 20:02:52 +0000</pubDate>
		<dc:creator>Emre</dc:creator>
				<category><![CDATA[Bilgisayar Mühendisliği]]></category>

		<guid isPermaLink="false">http://egurbuz.wordpress.com/?p=20</guid>
		<description><![CDATA[
- anlaşılır yaz (fazla zeki olmaya çalışma) efektif kod uğruna yalınlıktan vazgeçme.
- ne yapmak istediğini basit ve direk olarak açıkla.
- geçici değişkenleri mümkün olduğunca az kullan.
- anlam belirsizliğine yer vermemek için parantez kullan.
- kütüphane fonksiyonlarını kullan.
- tekrar eden ifadeleri genel amaçlı fonksiyonlara böl.
- değişken isimlerinin karışıklık yaratmamasına dikkat et
- eğer mantıksal bir ifade anlaşılması zor [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=20&subd=egurbuz&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://egurbuz.files.wordpress.com/2008/07/programmer-expression-mic.jpg"><img class="alignnone size-full wp-image-23" src="http://egurbuz.files.wordpress.com/2008/07/programmer-expression-mic.jpg?w=400&#038;h=377" alt="" width="400" height="377" /></a></p>
<p>- anlaşılır yaz (fazla zeki olmaya çalışma) efektif kod uğruna yalınlıktan vazgeçme.<br />
- ne yapmak istediğini basit ve direk olarak açıkla.<br />
- geçici değişkenleri mümkün olduğunca az kullan.<br />
- anlam belirsizliğine yer vermemek için parantez kullan.<br />
- kütüphane fonksiyonlarını kullan.<br />
- tekrar eden ifadeleri genel amaçlı fonksiyonlara böl.<br />
- değişken isimlerinin karışıklık yaratmamasına dikkat et<br />
- eğer mantıksal bir ifade anlaşılması zor bir haldeyse, onu değiştirmeye çalış.<br />
- programı basit hale getirecek veri türleri seç.<br />
- kötü kodu programa koyma -&gt; yeniden yaz.<br />
- büyük bir programı küçük parçalar halinde yaz ve test et.<span id="more-20"></span></p>
<p>- girdinin uygunluğunu test et.<br />
- kötü inputu tespit et ve mümkünse düzelt.<br />
- inputun programın sınırlarını zorlamadığından emin ol.<br />
- inputun sonunu dosya sonuyla veya bir işaretle belirle sayarak değil.<br />
- inputu hazırlaması kolay olsun ve output da yarı açıklayıcı olsun</p>
<p>- bütün değişkenlerin kulanımlarından önce başlangıç değerlerini ver.<br />
- mantıksal hatalara dikkat et.<br />
-<br />
- programı uç değerler için de test et.<br />
- bazı cevapları elinle kontrol et.<br />
- 10 kerede 0.1 asla 1.0 demek değilldir.<br />
- floatları eşitlik durumu için karşılaştırma</p>
<p>- hızlı çalışan programdan önce doğru çalışan program yap.<br />
- hızlı çalışan programdan önce hata kontrolü yapan program yap.<br />
- hızlı çalışan programdan önce anlaşılır program yap.<br />
- hızlı çalışan program için algoritmada değişiklik yap, küçük<br />
detayları değiştirmek için uğraşma.<br />
- programın ne kadar hızlı olduğunu anlamak için iyice test et.</p>
<p>- yorum satırları ile kodun uyuştuğundan emin ol.<br />
- değişken isimleri anlamlı olsun.<br />
- bir programın formatı okuyucunun onu anlamasına yardım eder.<br />
- yorumları anlamlı yaz, kodu tekrarlama<br />
- veri yapılarının dokumanını oluştur.<br />
- aşırı yorum satırı yazma.<br />
- kötü koda yorum satırı yazma -&gt; yeniden yaz kodu</p>
<p>- özyineli tanımlanan veri yapıları için özyineli yordamlar kullan.<br />
- tekrar eden serilerin kontrolü için veri dizilerini kullan</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/egurbuz.wordpress.com/20/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/egurbuz.wordpress.com/20/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/egurbuz.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/egurbuz.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/egurbuz.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/egurbuz.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/egurbuz.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/egurbuz.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/egurbuz.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/egurbuz.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/egurbuz.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/egurbuz.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=egurbuz.wordpress.com&blog=2567172&post=20&subd=egurbuz&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://egurbuz.wordpress.com/2008/07/28/efektif-programlama-aliskanliklari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/702faa8273a38decb4af4c52d7968edc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Emre</media:title>
		</media:content>

		<media:content url="http://egurbuz.files.wordpress.com/2008/07/programmer-expression-mic.jpg" medium="image" />
	</item>
	</channel>
</rss>