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

<channel>
	<title>Emre Toprak</title>
	<atom:link href="http://www.emretoprak.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emretoprak.com</link>
	<description>Kişisel Blog</description>
	<lastBuildDate>Wed, 09 May 2012 14:18:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Software development life-cycle</title>
		<link>http://www.emretoprak.com/software-development-life-cycle-sdlc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=software-development-life-cycle-sdlc</link>
		<comments>http://www.emretoprak.com/software-development-life-cycle-sdlc/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 13:24:10 +0000</pubDate>
		<dc:creator>emretoprak</dc:creator>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Mobil Programlama]]></category>
		<category><![CDATA[Web Programlama]]></category>

		<guid isPermaLink="false">http://www.emretoprak.com/?p=110</guid>
		<description><![CDATA[Software development life-cycle da ne ola ki? Sakin olalım aslında tamamen yönetimsel bir süreçtir tüm bu afilli isimin altında yatan. Mesela yazılım geliştirme işi ile uğraşanlar bu adımlardan birini oluşturur. Projelerimiz de doğru sürecin tam]]></description>
			<content:encoded><![CDATA[<p>Software development life-cycle da ne ola ki?</p>
<p>Sakin olalım aslında tamamen yönetimsel bir süreçtir tüm bu afilli isimin altında yatan. Mesela yazılım geliştirme işi ile uğraşanlar bu adımlardan birini oluşturur. Projelerimiz de doğru sürecin tam adıdır kullanmadığınız da başınıza ağrılar belinize yük gelebilir.<span id="more-110"></span></p>
<p>Peki ya neden buna ihtiyaç vardır kendi pozisyonumdan ( Yazılım geliştirme ) anlatmaya çalışacağım.</p>
<p>&nbsp;</p>
<p>Genel olarak bir projeye nasıl başlarsınız? diye sorulduğunda. &#8220;Fikir konuşulur sonra yazılım yapılır ve kullanılır&#8221; gibi basit akış düşünürsünüz. Oysa ki bu yanlıştır&#8230; SDLC size bu sürecin analizden başlayıp ta ki production alımından da sonrasına kadar standart süreci kontrol etmenize olanak tanır. Bu sayede planladığınız ürün tüm akıştan doğru bir şekilde çıkarak tam anlamıyla ürün adına sahip olur.</p>
<p>&nbsp;</p>
<div class="blockquote-quote-marks">
<blockquote><p>Tüm bu SDLC döngünüsü birbirinin destekleyen sistemlerdir, aradan çıkartacağınız herhangi bir adım peşine gelen sürecin tökezlemesine sebep olur.</p></blockquote>
</div>
<p>İşin ilginç tarafı her ne kadar standart gibi görünse de henüz adımlarının tam oturmadığını sadece google a sdlc yazıp grafikler de arama yaparak görebilirsiniz. Herkes kafasına göre bir çember çizip bir şeyler anlatmaya çalışmış kimisi çok önemli adımları atlamış kimisi bazı adımlar eklemiş ama genel olarak standart grafik ileriye giden değil bir çember grafiktir ve şu şekildedir.<br />
<a href="http://www.emretoprak.com/wp-content/uploads/2012/03/SDLC_Diagram.jpg"><img class="aligncenter size-full wp-image-111" title="SDLC_Diagram" src="http://www.emretoprak.com/wp-content/uploads/2012/03/SDLC_Diagram.jpg" alt="" width="500" height="292" /></a></p>
<p>Adım adım devam edelim dilersiniz.</p>
<p>&nbsp;</p>
<h3>Planlama</h3>
<p>Aslında planlama deyince bir çoğunuzun aklına çeşitli departmanlar gelebilir. Örneğin; Pazarlama , Satış , Yönetim veya Diğer müşteri ilişkileri olan departmanlar. Oysa ki bu plan bir teknik birisinin de olabilir yoldan geçen bir abinin de.</p>
<p>Bu aşamada sadece bir fikir vardır ve tutacağına inanılır.</p>
<p>&nbsp;</p>
<h3>Analiz</h3>
<p>Artık fikir vardır yapılması için çeşitli mali planlamalardan ve fizibilite çalışmalarından geçer ise bu ürün yapılacak kardeşim denildiğinde makaleyi bana yazdıran adımlara gelinir.</p>
<p>&nbsp;</p>
<h3>Tasarım ve Mockup</h3>
<p>Tasarımı anladık da nedir bu mockup diyebilirsiniz. Aslında mockup tasarımdan önceki tasarımcının iş yükünü yarıya indirecek bir adımdır, kısaca mockup taslak hazırlama adımıdır. Peki ya kimin yapması gerekir?&#8230; Elbette bu fikri ortaya atan kişi veya departmanın üslenmesi gereken bir konudur çünkü fikirleri ortaya koyan beyinlerden daha iyi kimse taslak hazırlayamaz! Mockup hazırlamak için çeşitli programlar veya çizim yapmasını sevenler için çeşitli araçlar vardır&#8230; Aslında aşağıda ki çizim size bunu anlatmaya yetecek.</p>
<p><a href="http://www.emretoprak.com/wp-content/uploads/2012/03/maintenance-graph.jpg"><img class="aligncenter size-full wp-image-112" title="maintenance-graph" src="http://www.emretoprak.com/wp-content/uploads/2012/03/maintenance-graph.jpg" alt="" width="750" height="430" /></a></p>
<p>Mockup sonrası tasarımcıya verilen şablonlar tasarımcının artık neyi nerede kullanmasını bildiğinden kolayca yaratıcılık yeteneğini kullanarak bu mockup sayfalarına birer harikaya çevirir ve yazılımcının kucağına gönderir.</p>
<p>&nbsp;</p>
<h3>Geliştirme</h3>
<p>Ohh mis elimde tasarım var ne yapacağımı biliyorum mimari yapıyı oturup konuşmuşum takımımla herkesin görevleri ayrılmış bir yazılımcı daha ne isteyebilir ki? ( Evet çay veya kahve )</p>
<p>Artık bu aşadamda yazılımcı tüm mimari planları uzmanlık alanında konuşturarak geliştirmeyi bitirir ve en önemli adımlardan birine yani test e gönderir. Bu aşama o kadar önemlidir ki test ekibi olmayan bir yazılım ürününün tüm hatalarının geliştirmedeki çalışanların sorumlu tutulacağı bilinir. Oysa ki hem testini yapıp hem yazılım geliştiren bir ekip gereksiz bir yüke sahiptir ve sorumlu burada aslında test ekibi kurmayan yönetici&#8217;nindir.</p>
<p>&nbsp;</p>
<h3>Test ve Entegrasyon</h3>
<p>Bu aşama yazılım geliştirme ekibiyle sürekli temas halinde ürünün çıkartabileceği her sorunun üzerine giderek ağır bir test e tabi tutar ve yazılımcıyı çeşitli bug tracking araçlarıyla issue ya boğar.</p>
<p>&nbsp;</p>
<h3>İmplementasyon</h3>
<p>Bu aşamada test den çıkan tüm issue ların çözümü için yazılım departmanı son bir gayret ile stabil bir versiyon için çabalar ve ürün artık çıkabilecek seviyeye gelir.</p>
<p>&nbsp;</p>
<h3>Bakım</h3>
<p>Artık ürünümüz çıkmıştır ve bakım için analizler devam eder ve bu çember sürekli aynı yönde dönmeye devam eder.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emretoprak.com/software-development-life-cycle-sdlc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>.NET de web sayfasından veri çekmek.</title>
		<link>http://www.emretoprak.com/net-de-web-sayfasindan-veri-cekmek/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=net-de-web-sayfasindan-veri-cekmek</link>
		<comments>http://www.emretoprak.com/net-de-web-sayfasindan-veri-cekmek/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 14:26:19 +0000</pubDate>
		<dc:creator>emretoprak</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Web Programlama]]></category>

		<guid isPermaLink="false">http://www.emretoprak.com/?p=77</guid>
		<description><![CDATA[Çoğu zaman projemizdeki farklı sayfalardan veya farklı sunuculardaki farklı web sayfalarından çeşitli verilere ihtiyacımız olur. En son bahsettiğim Ajax requestlerinde origin hatası aldığınız da da kullabileceğiniz bir .net sınıfı vardır]]></description>
			<content:encoded><![CDATA[<p>Çoğu zaman projemizdeki farklı sayfalardan veya farklı sunuculardaki farklı web sayfalarından çeşitli verilere ihtiyacımız olur.<span id="more-77"></span></p>
<p>En son bahsettiğim Ajax requestlerinde origin hatası aldığınız da da kullabileceğiniz bir .net sınıfı vardır &#8220;WebClient&#8221;.</p>
<p>Bu sınıfın bir instance ı nı alarak DownloadString diyerek veri çekebilirsiniz.</p>
<p>&nbsp;</p>
<p>Şu şekilde.</p>
<p>[crayon-4fb9920365a49/]</p>
<p>Artık contents stringinizde google.com un kaynağı var <img src='http://www.emretoprak.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Kolay gelsin.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emretoprak.com/net-de-web-sayfasindan-veri-cekmek/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java XSS Filtrelemesi.</title>
		<link>http://www.emretoprak.com/java-xss-filtrelemesi/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=java-xss-filtrelemesi</link>
		<comments>http://www.emretoprak.com/java-xss-filtrelemesi/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 13:30:58 +0000</pubDate>
		<dc:creator>emretoprak</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Web Programlama]]></category>

		<guid isPermaLink="false">http://www.emretoprak.com/?p=70</guid>
		<description><![CDATA[Web projeniz de güvenlik önlemleri alırken en çok unutulanlardan biridir XSS açığı. Bu açık ile uyanık bir vatandaş üyenize kendi script ini içeren bir link gönderirse üyenizin çerez bilgilerini okuyarak]]></description>
			<content:encoded><![CDATA[<p>Web projeniz de güvenlik önlemleri alırken en çok unutulanlardan biridir XSS açığı. Bu açık ile uyanık bir vatandaş üyenize kendi script ini içeren bir link gönderirse üyenizin çerez bilgilerini okuyarak sitenize giriş yapabilir. Admin üyesi için de aynı problem vardır elbette ve bunun önüne geçilmezse ilerde başınızı ağrıtacak sebepler doğurabilir.<span id="more-70"></span></p>
<p>&nbsp;</p>
<p>Genel de Java üzerinden bu problemi hızlıca şu yöntem ile aşıyorum aslında bunun için yazılmış çok class var ama bu benim kolayıma geliyor ve rahat oluyor.</p>
<p>[crayon-4fb99203669f6/]</p>
<p>Artık request.getParameter ile parametrenizi stringinze setlerken cleanXSS i kullanabilirsiniz.</p>
<p>[crayon-4fb9920366db5/]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emretoprak.com/java-xss-filtrelemesi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ajax sorgularında origin hatası</title>
		<link>http://www.emretoprak.com/ajax-sorgularinda-origin-hatasi/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ajax-sorgularinda-origin-hatasi</link>
		<comments>http://www.emretoprak.com/ajax-sorgularinda-origin-hatasi/#comments</comments>
		<pubDate>Sun, 26 Feb 2012 09:10:47 +0000</pubDate>
		<dc:creator>emretoprak</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Genel]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://www.emretoprak.com/?p=56</guid>
		<description><![CDATA[Ajax Requestlerimizi yaparken karşımıza bu hata çıkabilir. Hemen korkmaya gerek yok tabiki bir çözümü var. Önce hatanın sebebini Anlatalım. Neden Çıkıyor? Tarayıcılarından yaptığınız ajax isteklerinde tarayıcı sunucun döndüğü cevabı öncelikle]]></description>
			<content:encoded><![CDATA[<p>Ajax Requestlerimizi yaparken karşımıza bu hata çıkabilir. Hemen korkmaya gerek yok tabiki bir çözümü var. Önce hatanın sebebini Anlatalım.</p>
<p><span id="more-56"></span></p>
<h2>Neden Çıkıyor?</h2>
<p>Tarayıcılarından yaptığınız ajax isteklerinde tarayıcı sunucun döndüğü cevabı öncelikle ikiye ayırır.</p>
<ul class="list-circle">
<li> Local sunucudan gelen dosya</li>
<li>HTTP Request.</li>
</ul>
<p>Local sunucu isteklerinde bu hata ile karşılaşmazsınız ama datayı çektiğiniz url Http://  ile başlıyor ise sıkıntınız burada başlar, çünkü tarayıcınız hop nereye öyle her siteden kafan göre data alamazsın der.</p>
<p>Siz bir request attığınızda. tarayıcı sizin domain bilginizi sunucudan gelen &#8220;Access-Control-Allow-Origin&#8221; başlığı ile karşılaştırır. Yani gittiğiniz sunucu sizin domainize erişim izni vermedikçe oradan Javascript ajax ile veri çağıramasınız&#8230; tabiki araya bir servlet yazarsanız alabilirsiniz. buna sonra deyincem.</p>
<p>&nbsp;</p>
<p><a href="http://www.emretoprak.com/wp-content/uploads/2012/02/origin.png"><img class="alignnone size-medium wp-image-59" title="origin" src="http://www.emretoprak.com/wp-content/uploads/2012/02/origin-300x153.png" alt="" width="300" height="153" /></a></p>
<p>&nbsp;</p>
<h2>Nasıl İzin verilir?</h2>
<p>Önceklikle sunucumuz nedir? Her sunucu için ayrı bir ayarlama yapısı vardır ve öncelikle bunu araştırmak gerekir tabi ben size en çok kullanılan sunucular için yazacağım.</p>
<h3>Apache</h3>
<p>Öncelikle apache nin mod_headers modülünü aktif etmeliyiz ki sunucuya headers lar ekleyebilelim.</p>
<p>Ardında http.conf dosyamıza girerek.</p>
<p>[crayon-4fb992036757c/]</p>
<p>&nbsp;</p>
<p>virtual host tagları arasına genelde &#8220;80&#8243; portu kullanan sizin sitenizdir. bu tagların arasına  Header set Access-Control-Allow-Origin &#8220;*&#8221; ekliyoruz burada ki &#8220;*&#8221; tüm gelen sitelere izin vermeniz anlamına geliyor tabi bir den fazla siteye izin vermek için tam adlarını yazarak aralarına virgül koymak yeterli.</p>
<p>&nbsp;</p>
<p>veya direkt php kodunuza header set ederek sadece o dosyaya erişim izni verebilirsiniz.</p>
<p>[crayon-4fb992036795f/]</p>
<h3>Tomcat</h3>
<p>[crayon-4fb9920367d4c/]</p>
<h3>IIS</h3>
<p>[crayon-4fb992036812e/]</p>
<h2>Tabi bir de bu işin hilesi var <img src='http://www.emretoprak.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </h2>
<p>Hızlı bir şekilde java da anlatacağım aynı mantıkla kendi dilinize çevirebilirsiniz.<br />
Önce hızlı bir şekilde tüm isteklerimin önüne geçecek bir request katmanı yazıyorum<br />
[crayon-4fb992036851a/]</p>
<p>Bu yazdığımız kod bir http connection açarak ona parametre ile göndereceğimiz url&#8217;in içeriğini alıp kendi içine yazacaktır. öyle ki artık bu sayfanın ne çektiğini veya ne çekeceğini biliyorsanız ona göre header dan contentType verebilirsiz.</p>
<p>Bu kodu &#8220;getDataFromHTTP.jsp&#8221; olarak kaydettiğimi düşünün.<br />
Artık ajax requestimi tekrar çağırmanın vakti geldi ama bu sefer başka bir dosya aracılığı ile</p>
<p>[crayon-4fb99203688f6/]<br />
Eğer contentType da problem yaşıyorsanız getDataFromHTTP da header set&#8217;i doğru yaptığınıza emin olun. Buna rağmen olmuyorsa gelen datanızı javascript üzerinden eval() edebilirsiniz.</p>
<p>İyi Çalışmalar</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emretoprak.com/ajax-sorgularinda-origin-hatasi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JQuery ile Ajax Request</title>
		<link>http://www.emretoprak.com/jquery-ile-ajax-request/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=jquery-ile-ajax-request</link>
		<comments>http://www.emretoprak.com/jquery-ile-ajax-request/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 14:36:19 +0000</pubDate>
		<dc:creator>emretoprak</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.emretoprak.com/?p=45</guid>
		<description><![CDATA[Jquery Ajax Nedir? Neredeyse her yerde karşımıza çıkar bu tabirler&#8230; Peki ya nedir bu Ajax? neden ihtiyaç duyarız? Gelişen teknoloji ile beraber insanların web sitelerinden beklentilerinide arttırıyor işte burada Jquery]]></description>
			<content:encoded><![CDATA[<h2>Jquery Ajax Nedir?</h2>
<p>Neredeyse her yerde karşımıza çıkar bu tabirler&#8230; Peki ya nedir bu Ajax? neden ihtiyaç duyarız?</p>
<p>Gelişen teknoloji ile beraber insanların web sitelerinden beklentilerinide arttırıyor işte burada Jquery gibi çok güçlü bir Javascript kütüphanesi karşımıza çıkıyor. <span id="more-45"></span>Mesela, bir web sitesi geliştirdiğinizi düşünüyorum ki yoksa bu makaleyi okumanızın başka bir nedeni olamaz. Bir kullanıcıya bir butona veya başka bir html nesnesinin tıklanma anına veya başka bir hareketine karşı başka bir hareketi tetiklerken server side bir konuşma yapmak istediğiniz de bu teknolojileri kullanıyoruz.</p>
<p>&nbsp;</p>
<h2>Nasıl çalışıyor?</h2>
<p>Aslında Javascript siz olayı tetiklediğiniz anda tarayıcınız arka plandan sunucuda hedeflenen dosyaya bir istek gönderiyor ve dosyanın döndüğü cevabı tekrar sayfanızın içine alıyor.</p>
<p>&nbsp;</p>
<p>Jquery gibi kütüphaneleri kullanmadan atabileceğimiz kodu inceleyelim.</p>
<p>[crayon-4fb992036a06d/]</p>
<p>Bu kodu test ederken &#8220;SunucuDosyam.php&#8221; ihtiyacınız olacak  bir sunucu çalıştırmanıza gerek kalmadan bu dosyayı oluşturup içine bir şey yazarak dosyayı okuyabilirsiniz.</p>
<p>&nbsp;</p>
<h2>Peki Neden Jquery</h2>
<p>Aslında JQuery i projelerimize include etmemizdeki tek amaç ajax istekleri için olamayabilir. JQuery elbette bundan fazlasını bize veriyor. Ama şunu düşünün Jquery bu işi yukardaki satırdaki koddan daha hızlımı yapıyor? Aslında hayır kendi içinde yine bu kodu çalıştırıyor. Peki ya verdiği nedir?</p>
<p>Tabii ki bu kodun sadece request halini gördünüz bunların tüm durumlarını (case) yazmak istediğiniz de daha temiz bir syntax için kesinlikle JQuery ye ihtiyacınız olacak.</p>
<p>[crayon-4fb992036a455/]</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emretoprak.com/jquery-ile-ajax-request/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Merhaba dünya!</title>
		<link>http://www.emretoprak.com/merhaba-dunya/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=merhaba-dunya</link>
		<comments>http://www.emretoprak.com/merhaba-dunya/#comments</comments>
		<pubDate>Sat, 25 Feb 2012 09:20:06 +0000</pubDate>
		<dc:creator>emretoprak</dc:creator>
				<category><![CDATA[Genel]]></category>

		<guid isPermaLink="false">http://www.emretoprak.com/?p=1</guid>
		<description><![CDATA[WordPress&#8217;in varsayılan olarak koyduğu bu Merhaba dünya yazısı bana programlamaya giriş kitaplarındaki verilen ilk örnekleri hatırlatır. Öyle ki yıllardır hello word yazdırmadık mı? Artık iş ortamlarında bile kullanılır bu tabir&#8230; İyi bir]]></description>
			<content:encoded><![CDATA[<p>WordPress&#8217;in varsayılan olarak koyduğu bu Merhaba dünya yazısı bana programlamaya giriş kitaplarındaki verilen ilk örnekleri hatırlatır. Öyle ki yıllardır hello word yazdırmadık mı?<span id="more-1"></span></p>
<p>Artık iş ortamlarında bile kullanılır bu tabir&#8230;</p>
<div class="blockquote-quote-marks"><blockquote>Ben hello word ü bi yazdırayım sonra devam ederiz.</blockquote></div>
<p>İyi bir programcı için yeterlidir aslında Merhaba dünya yazdırmak sonrası çorap söküğü gibi gelir diye yazmak isterdim ama maalesef bu böyle değil. <img src='http://www.emretoprak.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Yeni bir dil öğrenmeye başlamanın her seviye için farklı sancıları olacaktır&#8230;</p>
<p>İşte bu yüzden hem kendi portföyümü oluşturmak hem de bilgi birikimlerimi blog olarak aktarmak için genelde server side ( Sunucu taraflı ) işler için kullandığım sitemi açmaya karar verdim.</p>
<p>Bu arada ben hiç  bir zaman hello word yazmadım genel itibari ile şöyle oldu.</p>
<div class="blockquote-quote-marks"><blockquote>agegae.</blockquote></div>
<p>Teşekkürler</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emretoprak.com/merhaba-dunya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

Served from: www.emretoprak.com @ 2012-05-21 02:53:23 -->
