<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Bulutlararası</title>
	
	<link>http://bulutlararasi.com</link>
	<description>HUZURSUZ PROGRAMCILAR (BETA)</description>
	<lastBuildDate>Sat, 27 Mar 2010 13:51:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/bulutlararasi" /><feedburner:info uri="bulutlararasi" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>40.897571</geo:lat><geo:long>29.228117</geo:long><feedburner:emailServiceId>bulutlararasi</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>“Convention over Configuration” (CoC) Nedir?</title>
		<link>http://feedproxy.google.com/~r/bulutlararasi/~3/TZyBDhoFupM/</link>
		<comments>http://bulutlararasi.com/303/convention-over-configuration-nedir/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 13:51:10 +0000</pubDate>
		<dc:creator>mucit</dc:creator>
				<category><![CDATA[programlama]]></category>
		<category><![CDATA[coc]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[convention]]></category>
		<category><![CDATA[design paradigm]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[mef]]></category>

		<guid isPermaLink="false">http://bulutlararasi.com/?p=303</guid>
		<description><![CDATA[Konfigurasyon, günlük hayatımızın bir parçası artık. Uygulamaların değişebilecek parametrelerini ayırıp konfigurasyon dosyalarına taşıyarak, aslında iyi bir iş yapıyoruz. Özgür kalması gereken verileri &#8220;hard coded&#8221; diye tâbir edilen mahpusluktan kurtarıyoruz. Ancak yazılım geliştirme dünyasında, yeni olmayan bir görüş, konfigurasyonu en aza indirmeyi, geleneği yüceltmeyi öneriyor. Bu görüşün adı &#8220;convention over configuration&#8220;, yani &#8220;teâmül konfigurasyondan önce gelir&#8221;. [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/T-QSmpJwrZzhEO2oiPCq7NGL-L4/0/da"><img src="http://feedads.g.doubleclick.net/~a/T-QSmpJwrZzhEO2oiPCq7NGL-L4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/T-QSmpJwrZzhEO2oiPCq7NGL-L4/1/da"><img src="http://feedads.g.doubleclick.net/~a/T-QSmpJwrZzhEO2oiPCq7NGL-L4/1/di" border="0" ismap="true"></img></a></p><p>Konfigurasyon, günlük hayatımızın bir parçası artık. Uygulamaların değişebilecek parametrelerini ayırıp konfigurasyon dosyalarına taşıyarak, aslında iyi bir iş yapıyoruz. Özgür kalması gereken verileri &#8220;<em>hard coded</em>&#8221; diye tâbir edilen mahpusluktan kurtarıyoruz.</p>
<p>Ancak yazılım geliştirme dünyasında, yeni olmayan bir görüş, konfigurasyonu en aza indirmeyi, <strong>geleneği yüceltmeyi</strong> öneriyor. Bu görüşün adı &#8220;<strong>convention over configuration</strong>&#8220;, yani &#8220;teâmül konfigurasyondan önce gelir&#8221;. Bu yeni olmayan tasarım görüşü, şu an konfigurasyon cehenneminde yaşıyor olmamızdan ötürü hayli önemli hâle geldi.</p>
<h2>Teâmül ve kodlama arasında nasıl bir ilişki var?</h2>
<p>Vereceğimiz örnek sanırım çok vurucu olacak. Kapılar efendim, kapılar. Amerika&#8217;da kapıların bir açılma teâmülü var. Eğer içeriden dışarı çıkıyorsanız kapıyı iterek açıyorsunuz. Dışarıdan geliyorsanız çekerek açıyorsunuz. Binanın dış kapısı, odaların kapısı, daire kapıları, alış veriş yeri kapıları&#8230; hepsi aynı teâmülü uyguluyor. Şayet bir robota şöyle bir gez gel deseniz ve bu teâmülü de anlatsanız, kapıları kimseye bir şey sormadan açıverecektir. İçeride ise itecek, dışarıda ise çekecek neticede amacına ulaşacaktır.</p>
<p>Memleketimize gelelim. Kapıların açılmasıyla ilgili bir teâmül bulunmamaktadır. Önünüzdeki kapı her türlü açılabilir. Peki aynı robota gel bir de bizim memleketi gez deseniz&#8230; kapıları nasıl açacaktı? Biz proaktif davranıp geçeceği tüm kapıların açılma şeklini konfigurasyonla bildirecektik ki arıza çıkmasın. Evet, konfigurasyon buydu. Teâmül ise üst satırdaydı. Demek ki teâmül, bizi bir yığın konfigurasyondan kurtaran esaslı bir araç.</p>
<p>Bir örnek de yazılım dünyasından verelim. <strong>WordPress </strong>uygulamasının plug-ins dizinine koyulan bir plug-in&#8217;i tanıması ve hemen yönetim panelinde pasif olarak göstermesi, basit bir teâmülün neticesidir. Aynı şekilde &#8220;themes&#8221; klasörü altına giren bir tema paketi de uygulama tarafından hemen gündeme alınır. Siz ayrı bir merciye gidip, ben şuraya şunu koymuştum, o da bizim tema olur, ne olur işleme koyun diye ısrarlara gark olmazsınız.</p>
<p>Aklıma hemen devlet bürokrasisi geldi. Halbuki bürokraside teâmüllerin baskın olması gerekir. Baskındır da. Fakat siz tüm teâmülü yapmış olmanıza rağmen, bir de telefonla, mektupla, tâcizle iş takip edersiniz. Demek ki teâmülün kurtaramadığı yapılar da mevcut.</p>
<p>Güncel bir yazılım örneği verelim: <strong>MEF</strong>. Microsoft&#8217;un tak çalıştır modüller kurgulamak için oluşturduğu alt yapı, <a href="http://www.codeplex.com/MEF">Managed Extensibility Framework</a>. MEF, sonuna kadar &#8220;convention&#8221; bazlı çalışıyor ve çok az konfigurasyona ihtiyaç duyuyor. Çok güzel bir örnek.</p>
<h2>Şimdi ne yapabiliriz?</h2>
<p>Bir bilgiyi konfigurasyona taşıma kararı almadan önce, bunu nasıl &#8220;teâmül&#8221;e bağlarız diye bir düşünelim. Ancak ön tanımlı teâmülü de her zaman konfigure edilebilir yaparak, durumu kaymaklı ekmek kadayıfı kıvamına getirebiliriz.</p>
<p>Günümüzde bu görüşü ağırlı olarak uygulayan bir <a href="http://rubyonrails.org/">Ruby on Rails</a> framework&#8217;ü var. Onu inceleyerek, olmadı ondan hayli esinlenmiş olan <strong>ASP.NET MVC</strong>&#8216;yi inceleyerek felsefeye vâkıf olabiliriz.</p>
<p>&#8220;<strong>CoC</strong>&#8221; size çok bir şey vaad etmeyecek. Fakat sizi, konfigurasyonların komplike azabından bir nebze olsun kurtaracak. (<em>Azap sponsoru</em>: <a href="http://www.hibernate.org">Hibernate</a>.)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=TZyBDhoFupM:qZSHLwXoKyU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=TZyBDhoFupM:qZSHLwXoKyU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=TZyBDhoFupM:qZSHLwXoKyU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=TZyBDhoFupM:qZSHLwXoKyU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=TZyBDhoFupM:qZSHLwXoKyU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=TZyBDhoFupM:qZSHLwXoKyU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bulutlararasi/~4/TZyBDhoFupM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bulutlararasi.com/303/convention-over-configuration-nedir/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://bulutlararasi.com/303/convention-over-configuration-nedir/</feedburner:origLink></item>
		<item>
		<title>Elle Tutulan .NET</title>
		<link>http://feedproxy.google.com/~r/bulutlararasi/~3/GCumlFwU5dg/</link>
		<comments>http://bulutlararasi.com/297/dotnetin-en-minik-hali/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 10:30:23 +0000</pubDate>
		<dc:creator>mucit</dc:creator>
				<category><![CDATA[microsoft/.net]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[elektronik]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[ghi]]></category>
		<category><![CDATA[micro]]></category>
		<category><![CDATA[micro-framework]]></category>

		<guid isPermaLink="false">http://bulutlararasi.com/?p=297</guid>
		<description><![CDATA[TinyCLR, gömülü sistemlerde çalışmak üzere geliştirilmiş .NET Micro Framework&#8216;ün çekirdek kısmını ifade ediyor. GHI Electronics firması, bu çekirdeği alıp sıkıştırmış ve biraz işlevsellik de katıp minicik bir yonga setine gömmüş: USBizi. Sonra da bu yonga setini kullanan kartlar üretmişler ki FEZ diye adlandırılıyor. Bu bileşenlerle, .NET kodu çalıştıran minik sistemler üretebiliyorsunuz. Örneğin ufak bir GPS [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/_H3eT4u0ij7S2qnkKoS8IP-U3HA/0/da"><img src="http://feedads.g.doubleclick.net/~a/_H3eT4u0ij7S2qnkKoS8IP-U3HA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_H3eT4u0ij7S2qnkKoS8IP-U3HA/1/da"><img src="http://feedads.g.doubleclick.net/~a/_H3eT4u0ij7S2qnkKoS8IP-U3HA/1/di" border="0" ismap="true"></img></a></p><p><a href="http://www.tinyclr.com/faq/">TinyCLR</a>, gömülü sistemlerde çalışmak üzere geliştirilmiş <a href="http://www.microsoft.com/netmf/default.mspx">.NET Micro Framework</a>&#8216;ün çekirdek kısmını ifade ediyor. <strong>GHI Electronics</strong> firması, bu çekirdeği alıp sıkıştırmış ve biraz işlevsellik de katıp <strong>minicik </strong>bir yonga setine gömmüş: <a href="http://www.ghielectronics.com/product/116">USBizi</a>.</p>
<p><img class="alignnone" title="usbizi" src="http://www.ghielectronics.com/images/extras/USBizi144-SIZ-large.JPG" alt="" width="314" height="235" /></p>
<p>Sonra da bu yonga setini kullanan kartlar üretmişler ki <a href="http://www.tinyclr.com/hardware/2/fez-mini/"><strong>FEZ</strong> </a>diye adlandırılıyor. Bu bileşenlerle, .NET kodu çalıştıran minik sistemler üretebiliyorsunuz. Örneğin ufak bir GPS log&#8217;lama cihazı. Taktığınız USB&#8217;ye o anki konumu, sıcaklığı ve ne lazımsa onu log&#8217;luyor:</p>
<p><img class="alignnone" title="gps logger" src="http://www.tinyclr.com/images/homepage_demos/GPS_demo.jpg" alt="" width="180" height="154" /></p>
<p>Elbette böyle şeyler yapmak yeni değil. Ancak yeni olan ve dikkat çeken, bu gömülü sistemlere artık C# diliyle ve Visual Studio 2008 (Express de dahil) ile kod yazabiliyor olmanız.</p>
<p>Daha fazla karıştırayım derseniz şu adreslere bir bakın:</p>
<ul>
<li><a href="http://bansky.net/blog">http://bansky.net/blog</a></li>
<li><a href="http://blogs.msdn.com/netmfteam/">http://blogs.msdn.com/netmfteam/</a></li>
<li><a href="http://www.amazon.com/Expert-NET-Micro-Framework-Second/dp/1430223871/ref=sr_1_3?ie=UTF8&amp;s=books&amp;qid=1250107252&amp;sr=8-3">Expert .NET Micro Framework</a> (kitap)</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=GCumlFwU5dg:ROSDIDn7uvY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=GCumlFwU5dg:ROSDIDn7uvY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=GCumlFwU5dg:ROSDIDn7uvY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=GCumlFwU5dg:ROSDIDn7uvY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=GCumlFwU5dg:ROSDIDn7uvY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=GCumlFwU5dg:ROSDIDn7uvY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bulutlararasi/~4/GCumlFwU5dg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bulutlararasi.com/297/dotnetin-en-minik-hali/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://bulutlararasi.com/297/dotnetin-en-minik-hali/</feedburner:origLink></item>
		<item>
		<title>Python Seferberliği</title>
		<link>http://feedproxy.google.com/~r/bulutlararasi/~3/7Vz1Q9D2mTQ/</link>
		<comments>http://bulutlararasi.com/292/python-seferberligi/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 21:49:44 +0000</pubDate>
		<dc:creator>mucit</dc:creator>
				<category><![CDATA[programlama]]></category>
		<category><![CDATA[haber]]></category>
		<category><![CDATA[istihza]]></category>
		<category><![CDATA[kitap]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://bulutlararasi.com/?p=292</guid>
		<description><![CDATA[Python, dinamik dillerin itibarının tekrar yükselmesiyle gündemin baş sıralarında. Dinamik programcılar, şimdi dillerinden bu esnek dilleri düşürmüyorlar. Akademik camianın heyecanı zaten hep bu kanalda devam ediyor. Herkes bir şekilde bu dillerden öğrenmeye çalışırken Türkiye&#8217;deki uzmanlarımız da boş durmamışlar, kaleme sarılmışlar. Size iki ayrı Türkçe başvuru kaynağını haber vereceğiz. İlki internetten görülebilir: Bilgisayar Bilimcisi Gibi Düşünmek. [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/Tu5bgLIaiQ70GN5uXNaX3KPxr_E/0/da"><img src="http://feedads.g.doubleclick.net/~a/Tu5bgLIaiQ70GN5uXNaX3KPxr_E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Tu5bgLIaiQ70GN5uXNaX3KPxr_E/1/da"><img src="http://feedads.g.doubleclick.net/~a/Tu5bgLIaiQ70GN5uXNaX3KPxr_E/1/di" border="0" ismap="true"></img></a></p><p><img class="alignnone" title="pyhton logo" src="http://www.itaakash.com/logo/python-logo-master-flat.png" alt="" width="257" height="111" /></p>
<p><a href="http://www.python.org">Python</a>, dinamik dillerin itibarının tekrar yükselmesiyle gündemin baş sıralarında. Dinamik programcılar, şimdi dillerinden bu esnek dilleri düşürmüyorlar. Akademik camianın heyecanı zaten hep bu kanalda devam ediyor. Herkes bir şekilde bu dillerden öğrenmeye çalışırken Türkiye&#8217;deki uzmanlarımız da boş durmamışlar, kaleme sarılmışlar. Size iki ayrı Türkçe başvuru kaynağını haber vereceğiz.</p>
<p>İlki internetten görülebilir: <a href="http://yzgrafik.ege.edu.tr/~tekrei/dersler/bbgd_p/">Bilgisayar Bilimcisi Gibi Düşünmek</a>. İngilizce bir metinden çeviri yapılmış güzel bir çalışma. Biraz sözdizim referansı tadında.</p>
<p>İkincisi ise <a href="http://www.istihza.com">www.istihza.com</a> adresinde ikamet eden PDF belgeler ve şimdilerde yeni çıkan bir kitap: <em><strong>Herkes İçin Python</strong></em>.</p>
<p><img class="alignnone" title="piton" src="http://www.istihza.com/images/piton_on_kapak.jpg" alt="" width="194" height="270" /></p>
<p><strong>Fırat Özgül</strong>&#8216;ün site ismi &#8220;istihza&#8221; olsa da yaptığı işte herhangi bir müstehzilik görmek mümkün değil ve aksine çok ciddi çalışmış. Python öğrenmek isteyenler için güzel bir kaynak olur, umarız. (Tenkit: <em>&#8220;yılan&#8221; istiaresi figür ile de yapılabilirdi. Ürkünç bir vesika olmuş kapaktaki.</em>)</p>
<p>Dinamik diller, dördüncü .NET&#8217;in de olaya müdahil olmak istemesiyle (<em>DLR, IronRuby, IronPython</em>) bu yıllarda daha da çok konuşulacak gibi gözüküyor. Konuşmanın ötesinde, bu diller üzerine yazılan <em>framework</em>&#8216;ler artıyor, ham olanlar olgunlaşıyor meyve veriyor. Programcının birçok platformda birden hareket alanının genişlemesi, pek sevindirici!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=7Vz1Q9D2mTQ:KzbVpnsAR98:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=7Vz1Q9D2mTQ:KzbVpnsAR98:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=7Vz1Q9D2mTQ:KzbVpnsAR98:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=7Vz1Q9D2mTQ:KzbVpnsAR98:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=7Vz1Q9D2mTQ:KzbVpnsAR98:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=7Vz1Q9D2mTQ:KzbVpnsAR98:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bulutlararasi/~4/7Vz1Q9D2mTQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bulutlararasi.com/292/python-seferberligi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://bulutlararasi.com/292/python-seferberligi/</feedburner:origLink></item>
		<item>
		<title>VS 2010′un En Çarpıcı Yeniliği</title>
		<link>http://feedproxy.google.com/~r/bulutlararasi/~3/_xPfT7fdspE/</link>
		<comments>http://bulutlararasi.com/290/vs-2010un-en-carpici-yeniligi/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 23:05:06 +0000</pubDate>
		<dc:creator>mucit</dc:creator>
				<category><![CDATA[microsoft/.net]]></category>
		<category><![CDATA[add reference]]></category>
		<category><![CDATA[asenkron]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://bulutlararasi.com/?p=290</guid>
		<description><![CDATA[Visual Studio 2010, bizi şaşırtarak &#8220;Add Reference&#8221; ekranındaki sancıyı gidermiş. Sancı neydi? Aşağıda Visual Studio 2008&#8242;e kadar aynı mantıkla yolculuk etmiş &#8220;Add Reference&#8221; ekranı var. Bir bakın hele: Bu ekranın, Visual Studio projesinin üzerinde sağ tuş ile &#8220;Add Reference&#8230;&#8221; emri ile açılması gerekiyor fakat gelin görün ki bir süre sizi ağaç ediyor. Çünkü ekranın ilk [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/y9blvcUHQM6ufUOqJBfC9iGdEuo/0/da"><img src="http://feedads.g.doubleclick.net/~a/y9blvcUHQM6ufUOqJBfC9iGdEuo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/y9blvcUHQM6ufUOqJBfC9iGdEuo/1/da"><img src="http://feedads.g.doubleclick.net/~a/y9blvcUHQM6ufUOqJBfC9iGdEuo/1/di" border="0" ismap="true"></img></a></p><p><img class="alignnone" title="vs2010" src="http://farm5.static.flickr.com/4002/4309570855_0bd7098126_o.png" alt="" width="283" height="64" /></p>
<p><strong>Visual Studio 2010</strong>, bizi şaşırtarak &#8220;<strong>Add Reference</strong>&#8221; ekranındaki sancıyı gidermiş. Sancı neydi?</p>
<p>Aşağıda Visual Studio 2008&#8242;e kadar aynı mantıkla yolculuk etmiş &#8220;Add Reference&#8221; ekranı var. Bir bakın hele:</p>
<p><a title="add reference by evcil.net, on Flickr" href="http://www.flickr.com/photos/evcilnet/4310276424/"><img src="http://farm5.static.flickr.com/4041/4310276424_eb36d35095_o.png" alt="add reference" width="607" height="453" /></a></p>
<p>Bu ekranın, Visual Studio projesinin üzerinde sağ tuş ile &#8220;Add Reference&#8230;&#8221; emri ile açılması gerekiyor fakat gelin görün ki bir süre sizi ağaç ediyor. Çünkü ekranın ilk sekmesindeki .NET assembly dizisi sistem kaydından o an okunuyor ve bu UI thread&#8217;ini okuma işlemi bitene dek blokluyor. Siz de sürüyle bileşene sahipseniz ve GAC&#8217;ınızla övünen biriyseniz, karşılığını burada bekleyerek alıyorsunuz.</p>
<p>Bu hiçbir UI geliştirme pratiğinde önerilmeyen uygulama, neden uygulama geliştirdiğimiz cihazda uygulanmış, anlamak mümkün değil. Bakın bir MSDN dokümanına ne diyor: &#8220;<a href="http://msdn.microsoft.com/en-us/magazine/cc163630.aspx">Uzun ve pahalı işler yapacaksanız, UI&#8217;ı bloklamamak için başka thread üzerinden asenkron çağrılar yapın</a>&#8220;.</p>
<p>Bu garabet durumun üstesinden gelmek için yerli eklentiler bile <a href="http://www.tunatoksoz.com/post/VS-Addin-Fast-Add-Reference-Dialog-No-more-Coffee-Break-Steve!.aspx">yazıldı</a>!</p>
<p>Neyse, buraya kadarmış. 7 senelik yara kapandı ve artık Visual Studio &#8220;Add Reference&#8221; ekranı <span style="text-decoration: underline;"><strong>asenkron </strong></span>çalışıyor. Müjdeler olsun:</p>
<p><a title="addreference2010 by evcil.net, on Flickr" href="http://www.flickr.com/photos/evcilnet/4309561883/"><img src="http://farm3.static.flickr.com/2678/4309561883_c66f385d62_o.png" alt="addreference2010" width="568" height="429" /></a></p>
<p>İlk açışta üçüncü sekmenin açılışı da ayrı bir kural dışılık olarak sırıtsa da ekranın hızlı açılması şerefine, bu kusuru sümen altı ediyoruz.(<em>Önce Projects&#8217;in açılması güzel ancak üçüncü sıradaki bir sekmenin açılması kullanıcı için olağan dışı bir ön tanım.</em>)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=_xPfT7fdspE:4p69yID-f60:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=_xPfT7fdspE:4p69yID-f60:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=_xPfT7fdspE:4p69yID-f60:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=_xPfT7fdspE:4p69yID-f60:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=_xPfT7fdspE:4p69yID-f60:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=_xPfT7fdspE:4p69yID-f60:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bulutlararasi/~4/_xPfT7fdspE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bulutlararasi.com/290/vs-2010un-en-carpici-yeniligi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://bulutlararasi.com/290/vs-2010un-en-carpici-yeniligi/</feedburner:origLink></item>
		<item>
		<title>Yasak Kod</title>
		<link>http://feedproxy.google.com/~r/bulutlararasi/~3/3-Vh0eca6cA/</link>
		<comments>http://bulutlararasi.com/286/yasak-kod/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 19:57:27 +0000</pubDate>
		<dc:creator>mucit</dc:creator>
				<category><![CDATA[açık kaynak]]></category>
		<category><![CDATA[abd]]></category>
		<category><![CDATA[ihlal]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[sourceforge]]></category>
		<category><![CDATA[usa]]></category>
		<category><![CDATA[yasak]]></category>

		<guid isPermaLink="false">http://bulutlararasi.com/?p=286</guid>
		<description><![CDATA[&#8220;Açık Kaynak&#8221; ne demekti arkadaşlar? SourceForge.net adında bir oluşum vardır, uğramışsınızdır. Çok seviyoruz bu felsefeyi ailecek ve toplum olarak. Yazıyoruz, katılıyoruz, okuyoruz, kalkındırıyoruz. Dünya üzerindeki birçok insan da bu güzel yazılım ürünlerini kullanabiliyor. Meselâ sitesine yükleyip, (Bulutlararası gibi) blog yayınlayabiliyor. Açık Kaynak modeli, insanlığın onuruna yakışır hâllerle, beyinlerimizi ve bilgisayarlarımızı besliyor. Haber vereceğimiz gelişme ise [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/rf8jq_n96M53NNBMGkPBg4AYKYw/0/da"><img src="http://feedads.g.doubleclick.net/~a/rf8jq_n96M53NNBMGkPBg4AYKYw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/rf8jq_n96M53NNBMGkPBg4AYKYw/1/da"><img src="http://feedads.g.doubleclick.net/~a/rf8jq_n96M53NNBMGkPBg4AYKYw/1/di" border="0" ismap="true"></img></a></p><p><img class="alignleft" title="sourceforge" src="http://arabcrunch.com/wp-content/uploads/2010/01/Source-Fourge-Syria-S.jpg" alt="" width="217" height="44" /><strong>&#8220;Açık Kaynak&#8221;</strong> ne demekti arkadaşlar? <a href="http://sourceforge.net/">SourceForge.net</a> adında bir oluşum vardır, uğramışsınızdır. Çok seviyoruz bu felsefeyi ailecek ve toplum olarak. Yazıyoruz, katılıyoruz, okuyoruz, kalkındırıyoruz. Dünya üzerindeki birçok insan da bu güzel yazılım ürünlerini kullanabiliyor. Meselâ sitesine yükleyip, (Bulutlararası gibi) blog yayınlayabiliyor. Açık Kaynak modeli, insanlığın onuruna yakışır hâllerle, beyinlerimizi ve bilgisayarlarımızı besliyor.</p>
<p>Haber vereceğimiz gelişme ise hepimizi bir hayli şaşırtacak. <strong>SourceForge</strong> denen açık kaynak proje yayınlama destekçisi / yardakçısı site, meğerse 3 ay önce kullanım şartlarında bir değişiklik yapmış:</p>
<p><em>&#8220;Users residing in countries on the United States Office of Foreign  Assets Control sanction list, including<strong> Cuba, Iran, North Korea, Sudan  and Syria</strong>, may not post Content to, or access Content available through,  SourceForge.net.&#8221;</em> (<a href="http://sourceforge.net/apps/trac/sitelegal/wiki/Terms_of_Use">*</a>)</p>
<p>Sitenin ABD tarafından işaretlenmiş &#8220;şer&#8221; ülkelerine kapatılacağı açık açık yazılmış. Ve şimdi Ocak 2010&#8242;da bu kural uygulamaya konmuş. Şer ülkelerinden geldiğinizde yüzünüze çarpan şu mesajla titriyorsunuz:</p>
<p><em>&#8220;403 Error – Forbidden. Your request is being denied as it appears to be coming  from a location banned by our <a href="http://p.sf.net/sourceforge/terms#ProhibitedPersons">Terms of Use</a>.&#8221; </em>- <a href="http://sourceforge.net/t7.php">http://sourceforge.net/t7.php </a></p>
<p>Açık Kaynak gibi &#8220;ne olursan ol gel&#8221; felsefesinde bile siyasal tecritin  uygulanması bizlere çok güzel dersler veriyor. Türkiye&#8217;de de açık kaynağı, daha çok ABD politikalarına muhâlif çevrelerin sahiplenmesi de başka bir çelişki olarak elimizde duruyor.</p>
<p>Ne olacak yani? Kardeş olamayacak mıyız? Kardeş kardeş kod yazamayacak mıyız? Bir müsade etseniz &#8220;deli gömleği&#8221; bürünmüş beyinler.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=3-Vh0eca6cA:ghjJi6L9Xys:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=3-Vh0eca6cA:ghjJi6L9Xys:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=3-Vh0eca6cA:ghjJi6L9Xys:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=3-Vh0eca6cA:ghjJi6L9Xys:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=3-Vh0eca6cA:ghjJi6L9Xys:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=3-Vh0eca6cA:ghjJi6L9Xys:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bulutlararasi/~4/3-Vh0eca6cA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bulutlararasi.com/286/yasak-kod/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://bulutlararasi.com/286/yasak-kod/</feedburner:origLink></item>
		<item>
		<title>Windows 3.1′e Dönmek İsteyen?</title>
		<link>http://feedproxy.google.com/~r/bulutlararasi/~3/llEhi6_SHEQ/</link>
		<comments>http://bulutlararasi.com/282/windows-3-1e-donmek-isteyen/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 10:34:42 +0000</pubDate>
		<dc:creator>mucit</dc:creator>
				<category><![CDATA[microsoft/.net]]></category>
		<category><![CDATA[msdos]]></category>
		<category><![CDATA[win]]></category>
		<category><![CDATA[win3.1]]></category>

		<guid isPermaLink="false">http://bulutlararasi.com/?p=282</guid>
		<description><![CDATA[Fiilen olmasa da sanal olarak dönmeniz için gereken yapılmış. Michael Vincent adlı fantastik bir şahsiyet, Windows 3.1&#8242;i internet tarayıcı üzerinde taklit etmiş. Adres: www.michaelv.org. Çok başarılı bir uygulama olduğunu söylememiz gerek. 3.1 ile yaşadığınız tüm hisleri, tekrar, ücretsiz yaşayabilirsiniz. Boş sistem kaynağının %314 olarak gösterilmesi ve sitenin en iyi Firefox&#8216;ta çalışacağının söylenmesi işin hicivli kısımları. [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/6VOzoWBNNpWnI6WoYWgZqNpJtxU/0/da"><img src="http://feedads.g.doubleclick.net/~a/6VOzoWBNNpWnI6WoYWgZqNpJtxU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6VOzoWBNNpWnI6WoYWgZqNpJtxU/1/da"><img src="http://feedads.g.doubleclick.net/~a/6VOzoWBNNpWnI6WoYWgZqNpJtxU/1/di" border="0" ismap="true"></img></a></p><p><img class="alignnone" title="win3.1" src="http://i.techrepublic.com.com/gallery/163038-355-425.png" alt="" width="213" height="255" /></p>
<p>Fiilen olmasa da sanal olarak dönmeniz için gereken yapılmış. <strong>Michael Vincent</strong> adlı fantastik bir şahsiyet, Windows 3.1&#8242;i internet tarayıcı üzerinde taklit etmiş. Adres: <a href="http://www.michaelv.org/">www.michaelv.org</a>.</p>
<p>Çok başarılı bir uygulama olduğunu söylememiz gerek. 3.1 ile yaşadığınız tüm hisleri, tekrar, ücretsiz yaşayabilirsiniz. Boş sistem kaynağının %314 olarak gösterilmesi ve sitenin en iyi <strong>Firefox</strong>&#8216;ta çalışacağının söylenmesi işin hicivli kısımları.</p>
<p>Ha&#8230; Mayın tarlası, yani minesweeper oynamayı ve komut satırını kurcalamayı unutmayın.</p>
<p><a href="http://www.flickr.com/photos/evcilnet/4300238988/" title="msdos"><img src="http://farm5.static.flickr.com/4050/4300238988_8c40398b21_o.png" width="431" height="342" alt="msdos" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=llEhi6_SHEQ:w4CQg12cgDY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=llEhi6_SHEQ:w4CQg12cgDY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=llEhi6_SHEQ:w4CQg12cgDY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=llEhi6_SHEQ:w4CQg12cgDY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=llEhi6_SHEQ:w4CQg12cgDY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=llEhi6_SHEQ:w4CQg12cgDY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bulutlararasi/~4/llEhi6_SHEQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bulutlararasi.com/282/windows-3-1e-donmek-isteyen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://bulutlararasi.com/282/windows-3-1e-donmek-isteyen/</feedburner:origLink></item>
		<item>
		<title>Havadis #7</title>
		<link>http://feedproxy.google.com/~r/bulutlararasi/~3/Oyocdr4-pXU/</link>
		<comments>http://bulutlararasi.com/278/havadis-7/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 14:27:42 +0000</pubDate>
		<dc:creator>mucit</dc:creator>
				<category><![CDATA[havadis]]></category>

		<guid isPermaLink="false">http://bulutlararasi.com/?p=278</guid>
		<description><![CDATA[2010&#8242;un ilk havadis bildirisini okuyorsunuz. Tebrikler. Mobil Dünya Nexus oğlu versus: Gündemde üç akıllı telefon var. Linkte bu üç akıllı telefonun &#8220;versus&#8221; vuruşması mevcut. İnternetin en sevdiği şeylerden birisi de çarpıştırmak, versus&#8217;lamak zaten, biliyorsunuz. Versus piyasası, son olarak &#8220;Google Nexus One&#8221; adlı akıllı telefonun piyasaya salımıyla yeniden hareketlendi. Android de, IPhone OS ile kafa kafaya [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/7ZLzwUVl0ububmzw792RDc5sNFM/0/da"><img src="http://feedads.g.doubleclick.net/~a/7ZLzwUVl0ububmzw792RDc5sNFM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7ZLzwUVl0ububmzw792RDc5sNFM/1/da"><img src="http://feedads.g.doubleclick.net/~a/7ZLzwUVl0ububmzw792RDc5sNFM/1/di" border="0" ismap="true"></img></a></p><p>2010&#8242;un ilk havadis bildirisini okuyorsunuz. Tebrikler.</p>
<p><strong>Mobil Dünya</strong></p>
<ul>
<li><a href="http://mashable.com/2010/01/05/nexus-one-vs-droid-vs-iphone/">Nexus oğlu versus</a>: Gündemde üç akıllı telefon var. Linkte bu üç akıllı telefonun &#8220;versus&#8221; vuruşması mevcut. İnternetin en sevdiği şeylerden birisi de çarpıştırmak, versus&#8217;lamak zaten, biliyorsunuz. Versus piyasası, son olarak &#8220;Google Nexus One&#8221; adlı akıllı telefonun piyasaya salımıyla yeniden hareketlendi. Android de, IPhone OS ile kafa kafaya çarpışma hevesinde. Geliştirici dostluğu açısından Android öne çıkıyor fakat bu işin karnesi, muhakkak ki market payı. Apple, geliştiriciyi bu kadar boğup bu kadar da zengin bir pazar oluşturuyorsa, tebrik edecek bir şeyler var demektir.</li>
<li><a href="http://www.goktuggedik.com/2010/01/20/apple-bizden-neyi-sakliyor/">27 Ocak Elma Tutulması</a>: Apple, saldığı viral unsurlarla 27 Ocak tarihini hem tüketiciler hem de geliştiriciler açısından beklenir hâle getirdi. Geliştiriciler, 27 Ocak&#8217;ta IPhone OS&#8217;un 4.0 versiyonunun duyurulacağını bir şekilde öğrendiler. Söylentiler sıradan: UI efektleri gelişecek, multi-tasking imkanı artacak, sync güzelleşecek. Tamam da kardeşler, bu bilgiler sızmasa bile yeni versiyonun standart özelliği bunlar olmaz mıydı? Elma&#8217;nın bizi daha fazla şaşırtmasını bekliyoruz. Etkinlikte kopacak diğer fırtınalar için linkteki yerli yazı, gayet tatminkâr. (<em>Şapkalı a&#8217;ların nasıl yazılacağı konusunda ufak yardım: shift + 3 + a.</em>)</li>
</ul>
<p><strong>Güvenlik</strong></p>
<ul>
<li><a href="http://www.h-online.com/security/news/item/Windows-hole-discovered-after-17-years-Update-908917.html">Daha Onyedi Yaşında bir Güvenlik Kaçığı</a>: 32 bit Windows&#8217;ların NT 3.1 olanından 7 olanına doğru yolculuk etmiş târihi bir şahsiyetten bahsediyoruz. Evet, bir güvenlik açığı bu kadar yolculuk yapmışsa, bir şahsiyet kazanmış demektir. Yine klasik, sisteme zarar verme imkanları, vs. Açığın ne olduğunu sayfa anlatıyor. Ama 17 senelik bir açığın yeni farkedilmesi, epeyce gülümsetti bizi. Yazılım geliştirici olarak da düşünmeye sevketti. Bazı açıklar, var olsalar bile ortaya çıkmaları için uygun koşulların oluşması gerekir. Bu açıkları hiçbir test metoduyla, hiçbir gözden geçirmeyle fark edemezsiniz, eğer ifşa olma vakti gelmemişse. Ne dediğimi, aylar, yıllar önceki bug&#8217;larını bugün hayretle farkeden geliştirici arkadaşlar iyi anlayacaktır. Böyle bug&#8217;lar sizce de şahsiyetli değiller mi ve saygıyı haketmiyorlar mı?</li>
</ul>
<p><strong>Kariyer</strong></p>
<ul>
<li><a href="http://www.reddit.com/r/programming/comments/as759/hey_reddit_out_of_these_4_programmers_who_would/">Programcıyı İmtihan Etmek</a>: Siz olsanız hangisini işe alırsınız?</li>
</ul>
<p><strong>Web</strong></p>
<ul>
<li><a href="http://ajaxian.com/archives/firebug-1-5-new-features-and-ready-for-firefox-3-6">Firebug 1.5 Oldu</a>: Harika araçların yeni versiyonları salındığında haber yapmak gerekir değil mi?</li>
</ul>
<p><strong>Genel</strong></p>
<ul>
<li><a href="http://pcplus.techradar.com/node/3159/">Random ne kadar rasgeledir</a>: Rasgelelik algoritmanızı test edebiliyor musunuz? İşinize yarayacak bir makale.</li>
<li><a href="http://www.bilgiguvenligi.gov.tr/bt-guv.-standartlari/guvenli-yazilim-gelistirme-modelleri-ve-ortak-kriterler-standardi.html">Güvenli yazılım geliştirme süreçleri</a>: TÜBİTAK&#8217;tan bir ekip, güvenli yazılım geliştirme süreçlerini incelemişler ve güzel makaleye imza atmışlar. Teorik yağışta yürümeyi sevenlere.</li>
<li><a href="http://www.simple-talk.com/community/blogs/alex/archive/2010/01/20/87639.aspx">Ruhunu satan Reflector</a>: Geliştirici dostu Reflector, Pro sürümüyle ticari hayata merhaba diyor. ANTS Profiler de ufak bir güncelleme yiyor.</li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=Oyocdr4-pXU:NlFToBObpbE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=Oyocdr4-pXU:NlFToBObpbE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=Oyocdr4-pXU:NlFToBObpbE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=Oyocdr4-pXU:NlFToBObpbE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=Oyocdr4-pXU:NlFToBObpbE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=Oyocdr4-pXU:NlFToBObpbE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bulutlararasi/~4/Oyocdr4-pXU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bulutlararasi.com/278/havadis-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bulutlararasi.com/278/havadis-7/</feedburner:origLink></item>
		<item>
		<title>Bir Programcıya “Loose Coupling” Anlatmak</title>
		<link>http://feedproxy.google.com/~r/bulutlararasi/~3/d6P74WhVG88/</link>
		<comments>http://bulutlararasi.com/276/bir-programciya-loose-coupling-anlatmak/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 22:27:11 +0000</pubDate>
		<dc:creator>mucit</dc:creator>
				<category><![CDATA[kariyer]]></category>
		<category><![CDATA[programlama]]></category>
		<category><![CDATA[dependency injection]]></category>
		<category><![CDATA[dependency inversion]]></category>
		<category><![CDATA[information hiding]]></category>
		<category><![CDATA[loose coupling]]></category>

		<guid isPermaLink="false">http://bulutlararasi.com/?p=276</guid>
		<description><![CDATA[Adamın biri dert yanıyor, programcıma &#8220;loose coupling&#8221; ve &#8220;infromation hiding&#8221; gibi meselelerin ehemmiyetini nasıl anlatırım diye. Gelen cevaplar, gerçekten iç açıcı. Örneğin &#8220;hayatın içinden&#8221;  bir resme bakın: Eğer &#8220;gevşek bağlılık&#8221; prensibi olmasaydı, fişler, prizler de olmazdı. Tüm bağlantıları elimizle, lehimimizle kendimiz yapardık. İşte programları kodlarken de bu tarz prensipleri titizlikle uygulamak gerek. Lehim yapmamak, elektriğe [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/-xpPpUUMOUTMfgYsVxybH0Wh3tI/0/da"><img src="http://feedads.g.doubleclick.net/~a/-xpPpUUMOUTMfgYsVxybH0Wh3tI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-xpPpUUMOUTMfgYsVxybH0Wh3tI/1/da"><img src="http://feedads.g.doubleclick.net/~a/-xpPpUUMOUTMfgYsVxybH0Wh3tI/1/di" border="0" ismap="true"></img></a></p><p>Adamın biri dert yanıyor, programcıma <strong>&#8220;loose coupling&#8221; </strong>ve<strong> &#8220;infromation hiding&#8221;</strong> gibi meselelerin ehemmiyetini nasıl anlatırım <a href="http://stackoverflow.com/questions/594698/how-do-i-explain-loose-coupling-and-information-hiding-to-a-new-programmer/">diye</a>. Gelen cevaplar, gerçekten iç açıcı. Örneğin &#8220;hayatın içinden&#8221;  bir resme bakın:</p>
<p><a href="http://www.lostechies.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/derickbailey/DependencyInversionPrinciple_5F00_0278F9E2.jpg"><img class="alignnone" title="wall" src="http://www.lostechies.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/derickbailey/DependencyInversionPrinciple_5F00_0278F9E2.jpg" alt="" width="450" height="360" /></a></p>
<p>Eğer <strong>&#8220;gevşek bağlılık&#8221;</strong> prensibi olmasaydı, fişler, prizler de olmazdı. Tüm bağlantıları elimizle, lehimimizle kendimiz yapardık.</p>
<p>İşte programları kodlarken de bu tarz prensipleri titizlikle uygulamak gerek. Lehim yapmamak, elektriğe karşı yiğitlenmemek gerek.</p>
<p>Ya <strong>&#8220;bilgi saklama&#8221;</strong>? Ya yazdığınız nesneler, transparan sahne kıyafetiyle ortamlarda salınıyor ise&#8230; Ne kadar ciddi bir problem değil mi? Ciddiyetini anlamayan adama anlatmak için bomba misâl, Boris Pavlović&#8217;ten geliyor:</p>
<p><em>&#8220;Senden, cüzdanını isteyip kendi kendime içinden 10 lirayı borç almam hoş olur muydu?&#8221;</em></p>
<p>Ve buradaki &#8220;ben&#8221;i, &#8220;herhangi biri&#8221; olarak değiştirin. Cüzdanını veriyorsunuz, herkes kendisi alıyor istediğini. &#8220;Information hiding&#8221;i böyle anlatırsın demişler.</p>
<p>Yine de hiçbir programcıya bu kavramları, bu prensipleri damdan düşer gibi öğretemeyeceğiniz, kafasına çakamayacağınız kesin. İşin anahtarı dinamik &#8220;tecrübe&#8221;. Karpuz gibi yatan tecrübenin elbette, bir hocamızın dediği gibi, geminin arka tarafını aydınlatmaktan başka yapacağı yok.</p>
<p>Fiziksel tecrübe, soyut tecrübelerle kıyaslanamayacak kadar değerli. Bu tecrübe de ancak öğrendiğini tatbik ederek kazanılır. (<a href="http://stackoverflow.com/questions/594698/how-do-i-explain-loose-coupling-and-information-hiding-to-a-new-programmer/594771#594771">*</a>)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=d6P74WhVG88:_nQa5QBDkUo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=d6P74WhVG88:_nQa5QBDkUo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=d6P74WhVG88:_nQa5QBDkUo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=d6P74WhVG88:_nQa5QBDkUo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=d6P74WhVG88:_nQa5QBDkUo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=d6P74WhVG88:_nQa5QBDkUo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bulutlararasi/~4/d6P74WhVG88" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bulutlararasi.com/276/bir-programciya-loose-coupling-anlatmak/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bulutlararasi.com/276/bir-programciya-loose-coupling-anlatmak/</feedburner:origLink></item>
		<item>
		<title>“System” Olarak Konsol Açmak: RunAsSys</title>
		<link>http://feedproxy.google.com/~r/bulutlararasi/~3/tSl9h0zsnEc/</link>
		<comments>http://bulutlararasi.com/272/system-olarak-konsol-acmak-runassys/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 21:50:13 +0000</pubDate>
		<dc:creator>mucit</dc:creator>
				<category><![CDATA[açık kaynak]]></category>
		<category><![CDATA[microsoft/.net]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[jwscl]]></category>
		<category><![CDATA[runas]]></category>
		<category><![CDATA[runassys]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[system]]></category>

		<guid isPermaLink="false">http://bulutlararasi.com/?p=272</guid>
		<description><![CDATA[Windows sistemlerde, özellikle Vista ve 7&#8216;de System kullanıcısı, bir takım işlemlerde ön tanımlı olarak tek yetkili oluyor ve size, &#8220;administrator&#8221; yetkilerinde olsanız dâhi pabuç bırakmıyor. Buna en güzel örnek, arka plan servislerinden bazılarını (tasksched, group policy client gibi) kapatamamanız. Çünkü o servisleri ancak &#8220;system&#8221; yönetebiliyor. Peki &#8220;system&#8221; ile Vista ve 7&#8242;de nasıl process açacaksınız? Biraz [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/c6Dw103DW5r_0mj3cCKpFqyySKc/0/da"><img src="http://feedads.g.doubleclick.net/~a/c6Dw103DW5r_0mj3cCKpFqyySKc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/c6Dw103DW5r_0mj3cCKpFqyySKc/1/da"><img src="http://feedads.g.doubleclick.net/~a/c6Dw103DW5r_0mj3cCKpFqyySKc/1/di" border="0" ismap="true"></img></a></p><p><img class="alignleft" title="system" src="http://www.remkoweijnen.nl/blog/wp-content/uploads/2009/02/gpsvc-small.png" alt="" width="215" height="240" /> <strong>Windows </strong>sistemlerde, özellikle <strong>Vista </strong>ve<strong> 7</strong>&#8216;de <strong>System </strong>kullanıcısı, bir takım işlemlerde ön tanımlı olarak tek yetkili oluyor ve size, &#8220;administrator&#8221; yetkilerinde olsanız dâhi pabuç bırakmıyor. Buna en güzel örnek, arka plan servislerinden bazılarını (<em>tasksched, group policy client</em> gibi) kapatamamanız. Çünkü o servisleri ancak &#8220;system&#8221; yönetebiliyor.</p>
<p>Peki &#8220;system&#8221; ile Vista ve 7&#8242;de nasıl <em>process</em> açacaksınız?</p>
<p>Biraz dolambaçlı da olsa bu işi birileri API üzerinden yapmış ve ihtiyaç sahiplerine sunmuş. <strong><a href="http://blog.delphi-jedi.net/2008/05/08/runassys-10-preview/">RunAsSys</a></strong>, &#8220;system&#8221; olarak konsol açan minik ve işe yarar bir açık kaynak uygulama. Kodlara web&#8217;den <a href="http://jedi-apilib.svn.sourceforge.net/viewvc/jedi-apilib/jwscl/trunk/examples/RunAsSys/">gözatabilirsiniz</a>.</p>
<p>Program, <strong>Delphi </strong>ile yazılmış ve Windows security yapısının nesne yönelimli bir modellemesi olan <a href="http://sourceforge.net/projects/jedi-apilib/">JWSCL </a>kütüphanesinin ufak bir şovu. Çok yaşasın <strong>Christian Wimmer</strong>.</p>
<p>Biz demiştik ya bir zamanlar&#8230; <a href="http://www.evcil.net/post/bir-delphi-varmis">bir delphi varmış</a>!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=tSl9h0zsnEc:Km7X0hcoyRI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=tSl9h0zsnEc:Km7X0hcoyRI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=tSl9h0zsnEc:Km7X0hcoyRI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=tSl9h0zsnEc:Km7X0hcoyRI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=tSl9h0zsnEc:Km7X0hcoyRI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=tSl9h0zsnEc:Km7X0hcoyRI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bulutlararasi/~4/tSl9h0zsnEc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bulutlararasi.com/272/system-olarak-konsol-acmak-runassys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://bulutlararasi.com/272/system-olarak-konsol-acmak-runassys/</feedburner:origLink></item>
		<item>
		<title>C#’ta Tuple</title>
		<link>http://feedproxy.google.com/~r/bulutlararasi/~3/aMPfkOK9QYo/</link>
		<comments>http://bulutlararasi.com/265/cta-tuple/#comments</comments>
		<pubDate>Sun, 03 Jan 2010 09:35:09 +0000</pubDate>
		<dc:creator>mucit</dc:creator>
				<category><![CDATA[microsoft/.net]]></category>
		<category><![CDATA[.net4]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[tuple]]></category>

		<guid isPermaLink="false">http://bulutlararasi.com/?p=265</guid>
		<description><![CDATA[&#8220;Tuple&#8221; matematikten bilgisayar bilimine hoplayan, karışık tipteki elemanlar bulunduran dizileri temsil eden bir terim. Fonksiyonel diller bunu önceden beri destekliyor. Ama C# kıyılarına, dördüncü .NET&#8216;te geliyor. var data = new Tuple("bulutlararası", 2010); Koda kulak verelim: farklı türde iki verinin peşpeşe bir constructor&#8216;a verildiğini anlıyoruz. Oluşan tip, anonim tiplere benziyor. Bir farkla ki bunu az sonra [...]]]></description>
			<content:encoded><![CDATA[
<p><a href="http://feedads.g.doubleclick.net/~a/S73g0LTreqTYkBKYdBxmCuwE4FQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/S73g0LTreqTYkBKYdBxmCuwE4FQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/S73g0LTreqTYkBKYdBxmCuwE4FQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/S73g0LTreqTYkBKYdBxmCuwE4FQ/1/di" border="0" ismap="true"></img></a></p><p>&#8220;<strong>Tuple</strong>&#8221; matematikten bilgisayar bilimine hoplayan, karışık tipteki elemanlar bulunduran dizileri temsil eden bir terim. <a href="http://en.wikipedia.org/wiki/List_of_programming_languages_by_category#Functional_languages">Fonksiyonel diller</a> bunu önceden beri destekliyor. Ama C# kıyılarına, <strong>dördüncü .NET</strong>&#8216;te geliyor.</p>
<p><code>var data = new Tuple("bulutlararası", 2010);</code></p>
<p>Koda kulak verelim: farklı türde iki verinin peşpeşe bir<em> constructor</em>&#8216;a verildiğini anlıyoruz. Oluşan tip, anonim tiplere benziyor. Bir farkla ki bunu az sonra anlatacağız.</p>
<p><em>Constructor</em> yerine static metodumuz da var.</p>
<p><code>var data = Tuple.Create&lt;string, int&gt;("bulutlararası", 2010);</code></p>
<p>Tip çıkarımı, işe yaramaz mı:</p>
<p><code>var data = Tuple.Create("bulutlararası", 2010);</code></p>
<p>Şimdilik en kısa oluşturma şekli bu. Gelelim anonim tipler ile farka. Anonim tipler, metodun dönüş değeri olamıyor. Yazıldığı metodda mahpus; metodun kapsamına mahkum. O nedenle çok dar bir kullanım sahası var. Linq sorgusundan gelenleri almada problem yok ama sonrasında anonim tipler yanınızdan uzaklaşıveriyor.</p>
<p>Elemanlara ulaşalım:</p>
<p><code>var item1 = data.Item1; // "bulutlararası"<br />
var item2 = data.Item2; // 2010</code></p>
<p><strong>Tuple</strong>, bundan ibaret. Bir dördüncü .NET yeniliği. <strong>Mono </strong>de Icaza, hemen desteklemiş. Kereveti bize kalmış.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=aMPfkOK9QYo:x4TWdR28iYI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=aMPfkOK9QYo:x4TWdR28iYI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=aMPfkOK9QYo:x4TWdR28iYI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=aMPfkOK9QYo:x4TWdR28iYI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?i=aMPfkOK9QYo:x4TWdR28iYI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/bulutlararasi?a=aMPfkOK9QYo:x4TWdR28iYI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/bulutlararasi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/bulutlararasi/~4/aMPfkOK9QYo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://bulutlararasi.com/265/cta-tuple/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://bulutlararasi.com/265/cta-tuple/</feedburner:origLink></item>
	</channel>
</rss>
