<?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>Murat Çorlu &#187; Javascript</title>
	<atom:link href="http://muratcorlu.com/tr/kategori/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://muratcorlu.com/tr</link>
	<description>"Gölgede duranın, gölgesi olmaz"</description>
	<lastBuildDate>Fri, 30 Apr 2010 10:53:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Linux için Adobe AIR Alpha1 duyuruldu</title>
		<link>http://muratcorlu.com/tr/yazi/linux-icin-adobe-air-alpha1-duyuruldu/</link>
		<comments>http://muratcorlu.com/tr/yazi/linux-icin-adobe-air-alpha1-duyuruldu/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 04:03:43 +0000</pubDate>
		<dc:creator>Murat</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Web Programlama]]></category>
		<category><![CDATA[adobe air]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://muratcorlu.com/yazi/linux-icin-adobe-air-alpha1-duyuruldu/</guid>
		<description><![CDATA[Adobe, dikkatle takip ettiğim AIR ürününün, heyecanla beklediğim Linux versiyonunun alpha&#8217;sını bir hafta kadar önce duyurdu: http://labs.adobe.com/technologies/air/ HTML, CSS ve Javascript yazarak platform bağımsız(Win, Mac, Linux), masaüstü uygulamaları geliştirme imkanı vermesi AIR&#8217;e karşı çok sıcak bakmamı sağladı. Web&#8217;i masaüstüyle birleştirme çabalarının bir başka örneği olan AIR, ücretsiz olmasıyla da dikkat çekiyor. Yaptığımız sitelerle ilişkilendirilecek küçük [...]]]></description>
			<content:encoded><![CDATA[<p>Adobe, dikkatle takip ettiğim <a href="http://www.adobe.com/products/air/" title="Adobe Air">AIR</a> ürününün, heyecanla beklediğim Linux versiyonunun alpha&#8217;sını bir hafta kadar önce duyurdu: <a href="http://labs.adobe.com/technologies/air/" target="_blank">http://labs.adobe.com/technologies/air/</a><br />
<span id="more-48"></span><br />
HTML, CSS ve Javascript yazarak <strong>platform bağımsız(Win, Mac, Linux),</strong> masaüstü uygulamaları geliştirme imkanı vermesi AIR&#8217;e karşı çok sıcak bakmamı sağladı. Web&#8217;i masaüstüyle birleştirme çabalarının bir başka örneği olan AIR, <strong>ücretsiz</strong> olmasıyla da dikkat çekiyor. Yaptığımız sitelerle ilişkilendirilecek küçük masaüstü araçları yapmak için bile harika bir araç bence. Örneğin yaptığınız bir sitenin yeni içeriklerini takip edebilmesi için kullanıcılarınıza bir masaüstü aracı kullandırmak isteyebilirsiniz. Veya, bir intranet uygulamanızı, masaüstü uygulaması gibi kullandırmayı isteyebilirsiniz. Benzer mantıkla, sitenizin yönetici panelini siteye koymak yerine, bu şekilde bir masaüstü aracı gibi kullandırabilirsiniz.</p>
<p>Benim için Linux versiyonu olması oldukça önemli bir özellik olduğu için(nedeni başka bir yazıya inşaallah&#8230;), bu alpha sürümü çıkana kadar üzerine tam manasıyla eğilmeyi bekletiyordum ancak görünen o ki, Adobe sözünün eri ve Linux için ciddi manada çalışmaya devam ediyor.</p>
<p>Front-end web yazılımcılarının Adobe AIR&#8217;i mutlaka denemelerini ve incelemelerini tavsiye ediyorum. Kullanan, takip eden arkadaşlar varsa, onlarla da yazışmayı, tecrübelerimizi ve fikirlerimizi paylaşmayı isterim.</p>
]]></content:encoded>
			<wfw:commentRss>http://muratcorlu.com/tr/yazi/linux-icin-adobe-air-alpha1-duyuruldu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dünya&#8217;nın İlk AJAX Sunucusu: Jaxer</title>
		<link>http://muratcorlu.com/tr/yazi/dunyanin-ilk-ajax-sunucusu-jaxer/</link>
		<comments>http://muratcorlu.com/tr/yazi/dunyanin-ilk-ajax-sunucusu-jaxer/#comments</comments>
		<pubDate>Sun, 10 Feb 2008 02:35:23 +0000</pubDate>
		<dc:creator>Murat</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web Programlama]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[aptana]]></category>
		<category><![CDATA[jaxer]]></category>
		<category><![CDATA[serverside]]></category>

		<guid isPermaLink="false">http://muratcorlu.com/yazi/sunucu-tarafli-javascript-sunucusu-jaxer/</guid>
		<description><![CDATA[Web uygulama geliştirme dünyası müthiş bir ivmeyle büyümeye devam ediyor. Neredeyse her gün yeni bir terimle, teknolojiyle veya uygulamayla karşılaşıyoruz. Geliştirenlerden değil de takipçilerden biri olarak kalanlar için, izlenmesi zorlaşan, insanı hayretler içerisinde bırakan bir ivme bu. Bu ivmeye ulaşılmasında ve bu kadar çok uygulama geliştirme teknolojisinin ortaya çıkmasında Web 2.0 felsefesinin internette büyük kabul [...]]]></description>
			<content:encoded><![CDATA[<p>Web uygulama geliştirme dünyası müthiş bir ivmeyle büyümeye devam ediyor. Neredeyse her gün yeni bir terimle, teknolojiyle veya uygulamayla karşılaşıyoruz. Geliştirenlerden değil de takipçilerden biri olarak kalanlar için, izlenmesi zorlaşan, insanı hayretler içerisinde bırakan bir ivme bu.</p>
<p>Bu ivmeye ulaşılmasında ve bu kadar çok uygulama geliştirme teknolojisinin ortaya çıkmasında Web 2.0 felsefesinin internette büyük kabul görmesini payının büyük olduğunu düşünüyorum. Bütün web sitelerinin birbirleriyle entegre çalışıp, milyonlarca ziyaretçinin el birliğiyle oluşturdukları sitelerin var olduğu internet ortamında, tüm bu entegrasyonun daha kolay, daha performanslı ve daha esnek bir şekilde sağlanabilmesi için bir çok fikir ortaya atılıyor. Tüm bu ihtiyaçlarda, tartışmasız yeri en sağlam olan dil olan Javascript&#8217;in, istemci-browser taraflı dil yapısından alınıp, her alanda kullanılmaya başlanması da bu sürecin bir parçası gibi. Ve işte bu sürecin önemli adımlarından biri daha meydana geldi ve Dünya&#8217;nın ilk AJAX sunucusu <a href="http://aptana.com/jaxer">Jaxer</a>, web uygulaması geliştiricilerinin ilgisine sunuldu.<br />
<span id="more-43"></span><br />
Güçlü ve işlevsel AJAX IDE&#8217;si <a href="http://aptana.com/studio">Aptana Studio</a>&#8216;nun üreticileri, muhtemelen bu başarılı IDE&#8217;yi yaparken JavaScript&#8217;i ve AJAX teknolojisini hatmettikleri için, adı çok söylenmesine rağmen bir türlü kimsenin üretmediği &#8220;sunucu taraflı Javascript&#8221; teknolojisini üretmek amacıyla kolları sıvadılar ve Jaxer&#8217;ı ürettiler.</p>
<p>Jaxer ücretsiz ve açık kaynak kodlu bir AJAX sunucusu. Bir <a href="http://apacher.org">Apache</a> modülü olarak çalışıyor. Web geliştiricilerine client tarafında yazdığı dille sunucu taraflı işlemler de yapma imkanı vermeye çalışan Jaxer geliştiricileri, bu amaçla, sunucu taraflı, client taraflı ve &#8220;hem sunucu, hem client taraflı&#8221; Javascript kodları yazma imkanı vermişler. Bu demek oluyor ki, HTML ve Javascript biliyorsanız Jaxer uyumlu dinamik web uygulamaları geliştirebilirsiniz demektir.</p>
<p>Jaxer&#8217;ın sağlayacağı en önemli imkanlardan biri, AJAX uygulamaları yazarken sunucu taraflı kodlarımızla (örn. PHP, Java, Ruby), istemci taraflı kodlarımız(Javascript) arasında veri alışverişi yaparken gerçekleştirmek zorunda olduğumuz bir dizi işlemden (XMLHTTP nesnesi oluşturmak, veriyi göndermek, sonucu beklemek, sonucu işlemek vs.) bizi kurtarıyor olması. Jaxer uygulamalarında aradaki bu prosedürel işlemlerin hepsini Jaxer kendisi hallediyor. Bu işlemlerin tamamını Jaxer&#8217;ın sunucu ve istemci taraflı frameworkleri otomatik olarak yapıyor.</p>
<p>Jaxer&#8217;ın adım adım nasıl çalıştığını şu şekilde özetleyebiliriz:</p>
<ol>
<li>Talep edilen HTML dokümanı sunucudan istemciye gönderilmek üzere web sunucusu tarafından (Apache) hazırlanır. Bu statik bir HTML dokümanı veya PHP, Java veya Ruby gibi bir dille üretilmiş bir HTML dokümanı olabilir.</li>
<li> Jaxer oluşturulan HTML dokümanını, istemciye gönderilmeden önce Apache&#8217;nin bir çıkış modülü olarak alır, bir browserın yaptığı gibi, onu çözümler ve içindeki sunucu tarafında çalışması istenen Javascript kodlarını çalıştırır.</li>
<li>Sonuç Jaxer Server Framework ve geliştirici kodlarıyla oluşturulmuş yeni bir HTML dokümanıdır. Fark şudur ki; Jaxer sunucu taraflı javascript kodlarını, istemci tarafından çağrılabilir metodlar haline çevirir, istemci tarafla sunucu tarafının oturum iletişimini sağlayacak bilgi ve metodları üretir.</li>
<li>Yeniden üretilmiş HTML istemci tarafında gönderilir.</li>
<li>İstemci dokümanı alır, HTML&#8217;den DOM üretilir ve bu sefer istemci taraflı javascrpt kodlarını çalıştırır.</li>
<li>Eğer sunucu taraflı bir metod çağrılırsa, parametreler otomatik olarak <a href="http://json.org"><abbr title="JavaScript Object Notation">JSON</abbr></a> formatına çevrilir ve server tarafındaki gerçek metod tetiklenmek için bir XMLHttpRequest talebi sunucuya gönderilir.</li>
<li>Sunucu bu özel talebi aldığında parametreler tekrar özgün haline çevrilir, çağrılan fonksion tekrar oluşturulup bu parametrelerle çalıştırılır ve dönen sonuç tekrar JSON verisine çevrilir.</li>
<li>İstemciye dönen veri yine otomatik olarak JSON türünden özgün veri türüne çevrilir ve işlem bu şekilde tamamlanır.</li>
</ol>
<p>ASP.NET ile uğraşırken sadece VB.NET kodu yazmamıza rağmen .NET Framework&#8217;un bizim için bir sürü Javascript kodu üretmesiyle, bu yapıyı benzer görmek mümkün, ancak tek fark var, bu sefer üretilen dil yazdığınız dilden farklı değil. (Gerçi sizi bilmem ama ben, benim yerime kod üreten yapılara hiç ısınamadığımı itiraf etmeliyim.)</p>
<p>Jaxer&#8217;ın şu anda en büyük eksiği henüz Linux versiyonunun olmaması gibi görünüyor. Windows ve Mac versiyonları <a href="http://aptana.com/jaxer/download/">sitesinden indirilebilen</a> Jaxer&#8217;ın Linux versiyonunun da kısa zamanda kullanıma sunulacağı belirtilmiş.</p>
<p>Bir not ile yazıma son vereyim. Daha önceden var olan fakat bu şekilde herkesin kullanımına sunulmamış bir sunucu sunucu taraflı Javascript çalışması olarak <a href="http://appjet.com">AppJet</a> sitesini belirtmek lazım. Bu sitede size verilen web arayüzüne javascript kodları yazarak, AppJet sunucularında çalışan dinamik web uygulamaları üretme şansınız bulunuyor.</p>
<h3> Kaynaklar</h3>
<ul>
<li><a href="http://www.aptana.com/node/43">http://www.aptana.com/node/43</a></li>
<li><a href="http://ejohn.org/blog/server-side-javascript-with-jaxer/">http://ejohn.org/blog/server-side-javascript-with-jaxer/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://muratcorlu.com/tr/yazi/dunyanin-ilk-ajax-sunucusu-jaxer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Framework Devri&#8221; ve &#8220;Mükemmel Kod&#8221;a Ulaşmak</title>
		<link>http://muratcorlu.com/tr/yazi/framework-devri-ve-mukemmel-koda-ulasmak/</link>
		<comments>http://muratcorlu.com/tr/yazi/framework-devri-ve-mukemmel-koda-ulasmak/#comments</comments>
		<pubDate>Wed, 02 Jan 2008 02:20:48 +0000</pubDate>
		<dc:creator>Murat</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://muratcorlu.com/yazi/framework-devri-ve-mukemmel-koda-ulasmak/</guid>
		<description><![CDATA[Bu aralar, bir projede kullanmak amacıyla Ext ile yatıp Ext ile kalkıyorum&#8230; Aslında sadece Ext ile dememek lazım; frameworkler ile yatıp frameworkler ila kalkıyorum demek daha yerinde olabilir. Birbirine benzer işlevleri olan bir sürü framework inceliyorum, &#8220;acaba onu mu kullansam&#8221;, &#8220;acaba bu daha mı işime yarar&#8221;, &#8220;aa, bunun şurası harikaymış&#8221; diyerek daldan dala atlamak, hem [...]]]></description>
			<content:encoded><![CDATA[<p>Bu aralar, bir projede kullanmak amacıyla <strong><a href="http://extjs.com" title="Ext JS">Ext</a></strong> ile yatıp Ext ile kalkıyorum&#8230; Aslında sadece Ext ile dememek lazım; frameworkler ile yatıp frameworkler ila kalkıyorum demek daha yerinde olabilir. Birbirine benzer işlevleri olan bir sürü framework inceliyorum, &#8220;acaba onu mu kullansam&#8221;, &#8220;acaba bu daha mı işime yarar&#8221;, &#8220;aa, bunun şurası harikaymış&#8221; diyerek daldan dala atlamak, hem sıkıcı, hem strese sokucu hem de yorucu olmaya başladı. Gel gör ki devir &#8220;<strong>Framework devri</strong>&#8221; oldu artık ve iyi framework kullanan kötüsünü kullananı dövüyor.<span id="more-41"></span> Efendim, &#8220;framework de ne ola ki?&#8221; diye kafa kaşıyanlar için ara bir açıklamamız kısaca şöyle olsun:</p>
<p><strong>Framework</strong>, bir ya da birkaç programlama dilini kapsayabilen, temel amacı, o dilde sıkça ihtiyaç duyulan işlemler için, hazır ve kullanımı kolay sınıf(class) ve metodlar sunan, bu sayede yazılımcıları gereksiz iş yükünden kurtarmayı hedefleyen uygulama parçacıklarıdır. Frameworkler gittikçe popüler olmaya başladılar. Bir çok dil için, bir çok frameworkden yazılımcılar bolca faydalanmaktalar. Bu frameworklere popüler bazı örnekleri ilgililer için yazımın sonuna iliştiriyorum.</p>
<p>Pek de tatmin edici görünmeyen bu &#8220;tanımlama denemesi&#8221;nden sonra, gelelim varmak istediğime&#8230; Uzunca bir süredir bunca framework görüp, kabaca inceledikten sonra, acaba &#8220;mükemmel kod&#8221; yazabilir miyim diye düşünmeden edemedim. Zira framework&#8217;lerde &#8220;mükemmel kod&#8221;a ulaşmak gibi, hani açıktan olmasa da, gizliden birşeyler seziliyor. Aynı dilde benzer işleri yapan bu kadar çok framework olması, &#8220;bak onu biz de yapıyoruz ama, bizimkini yazmak daha kolay&#8221; gibi, oluşturduğu yeni framework/dil&#8217;i olabilecek en iyisi diye göstermesi ya da en hafifinden o niyette olduğunu hissetirmesi, yine bu amacın aklıma gelmesindeki sebep oldu. Sonra &#8220;mükemmel kod&#8221; fikri üzerine bir miktar kafa yordum. Kafamın yorulmasından açığa çıkan şeyleri de şöylece özetledim:</p>
<p>Gördüm ki; insan elinden çıkmış hiçbir mükemmel şey olmadığı gibi, insan üretimi hiçbir kodun da mükemmel olabilmesi mümkün görünmüyor. Bunu düşününce biraz üzüldüğümü farkettim, demek ki ben de mükemmel bir kodlamaya ulaşabileceğimi ve tüm dertlerimin böylece biteceğini ümid ediyormuşum&#8230; Heyhât! Ne mümkün? Ben ne kadar engin bir bilgisayar programcısı da olsam, ne kadar çok uygulama yazma tecrübesi edinmiş de olsam, ne kadar farklı projelerde görev almış da olsam, yine de &#8220;daha güzeli yazılamayacak bir kod parçası&#8221; üretemiyorum. Neden mi?;</p>
<ol>
<li>Bir kod parçasının güzelliği ne kadar genel düşünülse de kullanılmak istenen projeye göre değişebiliyor.</li>
<li>Projeler aynı olsa bile, kodun işlevinin kalitesi projenin çalışacağı ortama göre de(donanım, işletim sistemi veya diğer yan bileşenler) değişiyor.</li>
<li>Bunlar da aynı olsa bile, kodun işlev kalitesi, bu kaliteyi onaylayan kişilerin, yani programcıların yaklaşımlarına, hatta hayata bakış açılarına göre de değişiyor ki, işte bir şeye mükemmel demeyi engelleyen şey de bu oluyor en nihayetinde.</li>
</ol>
<p>Yani kısacası, olmuyor dostlarım! Olmuyor, ama olmaması da doğal oluyor. Bu biraz idealist yazılımcı takıntılarıma kötü gelse de böyle birşey için ömür tüketmek gerekmediğini bilmenin verdiği huzur açısından güzel. Şimdi müsadenizle ben Ext dokümantasyonuma dönüyorum tekrar. &#8220;Mükemmele yakın&#8221; frameworklü çalışmalar dilerim herkese&#8230;</p>
<p>Not: Bu yazı böyle olmayacaktı, her zamanki gibi yazarken aklıma başka şeyler gelince bu hale dönüştü. Yazarkenki müdahalelerimin son bulmamasından dolayı yarım kalmış bekleyen yazılar hayli artınca, &#8220;artık bu da böyle olsun&#8221; diyerekten paylaşıma sunuyorum. Sürç-ü lisânımız affola&#8230;</p>
<p>Bazı Javascript Frameworkler:</p>
<ul>
<li><a href="http://prototypejs.org" title="Prototype JS">Prototype</a></li>
<li><a href="http://script.aculo.us" title="script.aculo.us">script.aculo.us</a></li>
<li><a href="http://extjs.com" title="Ext JS">Ext</a></li>
<li><a href="http://mootools.net" title="mootools">mootools</a></li>
<li><a href="http://dojotoolkit.org" title="Dojo Toolkit">Dojo Toolkit</a></li>
<li><a href="http://openrico.org" title="Rico">Rico</a></li>
<li><a href="http://jquery.com" title="jQuery">jQuery</a></li>
<li><a href="http://developer.yahoo.com/yui/" title="The Yahoo! User Interface Library (YUI)">YUI</a></li>
</ul>
<p>Bazı sunucu taraflı frameworkler:</p>
<ul>
<li><a href="http://framework.zend.com" title="Zend Framework">Zend</a> &#8211; PHP</li>
<li><a href="http://cakephp.org" title="CakePHP">CakePHP</a> &#8211; PHP</li>
<li><a href="http://seagull.phpkitchen.com/">Seagull</a> &#8211; PHP</li>
<li><a href="http://zoopframework.com/">ZooP</a> &#8211; PHP</li>
<li><a href="http://www.symfony-project.com/">Symfony</a> &#8211; PHP</li>
<li><a href="http://rubyonrails.org/" title="Ruby on Rails">Rails</a> &#8211; Ruby</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://muratcorlu.com/tr/yazi/framework-devri-ve-mukemmel-koda-ulasmak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
