<br />
<b>Notice</b>:  Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>redux-framework</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see <a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/">Debugging in WordPress</a> for more information. (This message was added in version 6.7.0.) in <b>/home/ahmetozg/blog/wp-includes/functions.php</b> on line <b>6131</b><br />
<br />
<b>Notice</b>:  Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>di-blocks</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see <a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/">Debugging in WordPress</a> for more information. (This message was added in version 6.7.0.) in <b>/home/ahmetozg/blog/wp-includes/functions.php</b> on line <b>6131</b><br />
<br />
<b>Notice</b>:  Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>insert-headers-and-footers</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see <a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/">Debugging in WordPress</a> for more information. (This message was added in version 6.7.0.) in <b>/home/ahmetozg/blog/wp-includes/functions.php</b> on line <b>6131</b><br />
<br />
<b>Notice</b>:  Function _load_textdomain_just_in_time was called <strong>incorrectly</strong>. Translation loading for the <code>voice</code> domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the <code>init</code> action or later. Please see <a href="https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/">Debugging in WordPress</a> for more information. (This message was added in version 6.7.0.) in <b>/home/ahmetozg/blog/wp-includes/functions.php</b> on line <b>6131</b><br />
<?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>Ahmet Özgün Özcan</title>
	<atom:link href="https://blog.ahmetozgunozcan.com.tr/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.ahmetozgunozcan.com.tr</link>
	<description>Ahmet Özgün Özcan Blog</description>
	<lastBuildDate>Sun, 12 Dec 2021 09:09:32 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.2</generator>
	<item>
		<title>SIRALAMA ALGORİTMALARI Seçerek Sıralama — Selection Sort</title>
		<link>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-secerek-siralama-selection-sort/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-secerek-siralama-selection-sort/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Sun, 12 Dec 2021 09:07:12 +0000</pubDate>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[sort-algorithms]]></category>
		<guid isPermaLink="false">https://blog.ahmetozgunozcan.com.tr/?p=2337</guid>

					<description><![CDATA[Bu makalemde sizlere sıralama algoritmalarından biri olan &#8220;Seçerek Sıralama (Selection Sort)&#8221; algoritmasından bahsedeceğim. Öncelikle algoritmanın tanımını yaptıktan sonra adım adım bir senaryo uygulayacağız. Anlaşılması en kolay algoritmalardan bir tanesidir. Zaten kodunu okuyunca ne kadar basit olduğunu anlayacaksınız. Ben yine de her bir kod işleminin çıktısını resimlerle göstermeye çalıştım. Bu algoritmada dizinin bir ucundan başlanır. Diğer [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Bu makalemde sizlere  sıralama algoritmalarından biri olan  &#8220;Seçerek Sıralama (Selection Sort)&#8221; algoritmasından bahsedeceğim. Öncelikle algoritmanın tanımını yaptıktan sonra adım adım bir senaryo uygulayacağız. </p>



<p>Anlaşılması en kolay algoritmalardan bir tanesidir. Zaten kodunu okuyunca ne kadar basit olduğunu anlayacaksınız. Ben yine de her bir kod işleminin çıktısını resimlerle göstermeye çalıştım. </p>



<p>Bu algoritmada dizinin bir ucundan başlanır. Diğer uçtaki eleman sıralama için seçilen ilk değerdir. Bir ucundan diğer ucuna doğru her eleman için seçilen değer ile karşılaştırma yapılır. Eğer dizi elemanı seçilen değere göre aranan ise dizi elemanı, yeni seçilen değer olur. Dizinin kalan elemanları yeni seçilen değer ile karşılaştırılır.</p>



<p>Örneğin bir sayı dizisinde dizinin başından sonuna doğru küçükten büyüğe sıralama yapılmak istensin.  Her döngüde dizinin sonundaki eleman, en küçük sayı kabul edilir. Dizinin başından sonuna kadar (son eleman  hariç)  tüm sayılar en küçük sayı ile karşılaştırılır. Eğer karşılaştırılan sayı daha küçükse artık bu dizi elemanı en küçük kabul edilir. Dizinin sonuna gelince dizinin ilk elemanı ile en küçük kabul edilen eleman yer değiştirir. Sonra dizinin 2 elemanından başlanarak aynı yöntem uygulanır. Eleman sayısının bir eksiği kadar bu döngü tekrarlanmış olur.  Sonunda dizi sıralanmış olur.</p>



<blockquote class="wp-block-quote is-style-default"><p><span style="color:#9b9b9b" class="tadv-color">Bazılarına göre bu algoritmanın tek bir olumlu yanı var . Eğer elaman gerçek yerinde ise yer değiştirme işlemine gerek olmaması. Kümenin karışıklığına göre bu fikir değişir. Bu durumu beklemek tabiki manasız. Ancak bazı durumlarda kümenin böyle bir durumda olduğunu öngörebilirsiniz. Örneğin elimizde sıralı bir dizi olsun. Biliyoruz ki bazı küçük işlemler dizinin sırasını bir miktar bozuyor. Bu dizinin sıralaması için bu algoritmayı kullanılabiliriz.</span></p><p></p></blockquote>



<p> <strong>Basit bir kod parçası ile göstermek gerekirse;</strong> </p>



<p>Yukarıdaki örnekte bahsedildiği üzere algoritmanın gerçekleşmesi için 2 adet döngüye ihtiyaç vardır.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">int[]? dizi = null;
if (!isValid(out dizi))
    return;

if (dizi == null) return;

int enkucuk;
int index;

//1. elemanından başlıyoruz.
for (int i = 0; i &lt;= (dizi.Length - 1); i++)
{
    //son eleman en küçük kabul edilir.
    enkucuk = dizi[dizi.Length - 1];
    index = dizi.Length - 1;

    for (int j = i; j &lt; (dizi.Length - 1); j++)//daha küçüğü aranır
    {
        if (dizi[j] &lt; enkucuk)
        {
            enkucuk = dizi[j];
            index = j;
        }
    }
    dizi[index] = dizi[i];
    dizi[i] = enkucuk;
}
</pre>



<div class="wp-block-di-blocks-headline" id="di-blocks-heading-8d34483c-8d37-4bdb-86f4-fc836ae8ffe6"><div class="di-blocks-heading di-blocks-outer"><h3 class="di-blocks-align-left di-blocks-heading-main" data-animate=""><br>Bir dizide algoritmayı adım adım işletelim</h3></div></div>



<p></p>



<p>Sıralanması nı istediğimiz dizi&nbsp;<strong>&#8220;9 4 5 3 2 1 8 6 7</strong>&#8221; olsun.</p>



<p>Dizimizin ilk hali&nbsp;<img src="http://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-01.jpg" alt="" width="270" height="30"></p>



<p>Her bir döngü için program çıktısı aşağıdaki resimlerde gösterildiği gibi olur. </p>



<figure class="wp-block-image size-full"><img width="741" height="411" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image.png" alt="" class="wp-image-2342" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image.png 741w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-300x166.png 300w" sizes="(max-width: 741px) 100vw, 741px" /><figcaption>Selection Sort 1. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img width="743" height="377" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-1.png" alt="" class="wp-image-2343" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-1.png 743w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-1-300x152.png 300w" sizes="(max-width: 743px) 100vw, 743px" /><figcaption>Selection Sort 2. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img width="732" height="334" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-2.png" alt="" class="wp-image-2344" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-2.png 732w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-2-300x137.png 300w" sizes="(max-width: 732px) 100vw, 732px" /><figcaption>Selection Sort 3. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img width="733" height="303" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-3.png" alt="" class="wp-image-2345" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-3.png 733w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-3-300x124.png 300w" sizes="(max-width: 733px) 100vw, 733px" /><figcaption>Selection Sort 4. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img width="739" height="257" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-4.png" alt="" class="wp-image-2346" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-4.png 739w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-4-300x104.png 300w" sizes="(max-width: 739px) 100vw, 739px" /><figcaption>Selection Sort 5. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img width="739" height="215" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-5.png" alt="" class="wp-image-2347" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-5.png 739w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-5-300x87.png 300w" sizes="(max-width: 739px) 100vw, 739px" /><figcaption>Selection Sort 6. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img width="743" height="175" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-6.png" alt="" class="wp-image-2348" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-6.png 743w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-6-300x71.png 300w" sizes="(max-width: 743px) 100vw, 743px" /><figcaption>Selection Sort 7. Döngü</figcaption></figure>



<figure class="wp-block-image size-full"><img width="737" height="126" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-7.png" alt="" class="wp-image-2349" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-7.png 737w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/image-7-300x51.png 300w" sizes="(max-width: 737px) 100vw, 737px" /><figcaption>Selection Sort 8. Döngü</figcaption></figure>



<p>Örnek uygulamaya aşağıdaki link ile erişebilirsiniz.</p>



<div class="wp-block-kioken-icon kt-svg-icons kt-svg-icons_7e09f7-c8 alignleft" style="text-align:center"><div class="kt-svg-style-default kt-svg-icon-wrap kt-svg-item-0"><a href="https://github.com/ahmetozgunozcan/SortingAlgorithms" class="kt-svg-icon-link" target="_blank" rel="noreferrer noopener"><div style="display:inline-flex;justify-content:center;align-items:center;color:#444444" class="kt-svg-icon kt-svg-icon-fe_github"><svg viewbox="0 0 24 24" height="34" width="34" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg></div></a></div></div>



<p><a href="https://github.com/ahmetozgunozcan/SortingAlgorithms">https://github.com/ahmetozgunozcan/SortingAlgorithms</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-secerek-siralama-selection-sort/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SIRALAMA ALGORİTMALARI Birleşmeli Sıralama (Merge Sort)</title>
		<link>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-birlesmeli-siralama-merge-sort/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-birlesmeli-siralama-merge-sort/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Tue, 07 Dec 2021 21:22:10 +0000</pubDate>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[sort-algorithms]]></category>
		<guid isPermaLink="false">http://blog.ahmetozgunozcan.com.tr/?p=1468</guid>

					<description><![CDATA[Bu makalemde sizlere &#8220;Birleşmeli Sıralama (Merge Sort)&#8221; algoritmasından bahsedeceğim. Öncelikle algoritmanın tanımını yaptıktan sonra adım adım bir senaryo uygulayacağız. Makalenin sonunda da örnek kod parçacığını göreceksiniz. Merge sort böl ve yönet yaklaşımına dayanır. Sürekli dizinin ortadan ikiye bölünmesi ile yürütülür. Bu davranışı rekürsif tasarlanabileceğini gösterir. Her parçalama işlemi ile oluşan kümeler aynı yöntem ile parçalanır. Yani [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Bu makalemde sizlere &#8220;Birleşmeli Sıralama (Merge Sort)&#8221; algoritmasından bahsedeceğim. Öncelikle algoritmanın tanımını yaptıktan sonra adım adım bir senaryo uygulayacağız. Makalenin sonunda da örnek kod parçacığını göreceksiniz.</p>



<p></p>



<div class="mks_pullquote mks_pullquote_left" style="width:300px; font-size: 24px; color: #ffffff; background-color:#f7c24e;">Algoritma Hakkında</div>



<p>Merge sort böl ve yönet yaklaşımına dayanır. Sürekli dizinin ortadan ikiye bölünmesi ile yürütülür. Bu davranışı rekürsif tasarlanabileceğini gösterir. Her parçalama işlemi ile oluşan kümeler aynı yöntem ile parçalanır. Yani alt kümede 1 adet eleman kalıncaya kadar 2 adet parçalara bölünür.  Bir adet eleman kalınca da rekürsif dönüşler başlar.  Geriye dönüşlerde alt küme elemanlarının sıralanması işlemi yapılır. Her geri dönüşte alt küme üst küme ile birleştirilir. Algoritma adını bu birleştirme işleminden almıştır.</p>



<p><strong>Basit bir kod parçası ile göstermek gerekirse;</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">bol(Dizi[],sol,sag)
{
   if(sol&lt;sag)                       
   {
      int orta=(sol+sag)/2;
      bol(D,sol,orta);
      bol(D,orta+1,sag);
      birlestir(D,sol,orta,sag);
   }
}</pre>



<div class="wp-block-kioken-visual-list kb-icon-list-items kb-icon-list-items_168736-c3 kb-icon-list-columns-1 alignnone"><ul class="kb-icon-list"><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-0"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Sol index sağ indexten küçük mü?</span></li><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-1"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Hayır. Demek ki tek eleman kalmış. Bölünemez.</span></li><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-2"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Evet;</span></li><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-3"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Bölünecek dizinin ortasını bul.</span></li><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-4"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Bölünen kümeleri de parçala.</span></li><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-5"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Kısmi sıralanmış kümeleri sıralayarak birleştir.</span></li><li class="kb-icon-list-style-default kt_flex_aligncenter kb-icon-list-item-wrap kb-icon-list-item-6"><div style="display:inline-flex;justify-content:center;align-items:center" class="kb-icon-list-single kb-icon-list-single-fe_arrowRightCircle"><svg viewbox="0 0 24 24" height="20" width="20" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" style="fill:none;display:inline-block;vertical-align:middle" role="img" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><polyline points="12 16 16 12 12 8"></polyline><line x1="8" y1="12" x2="16" y2="12"></line></svg></div><span class="kb-icon-list-text">Son<span data-mce-type="bookmark" id="mce_1_start" data-mce-style="overflow:hidden;line-height:0px" style="overflow:hidden;line-height:0px"></span><span data-mce-type="bookmark" id="mce_1_start" data-mce-style="overflow:hidden;line-height:0px" style="overflow:hidden;line-height:0px"></span></span></li></ul></div>



<p><span style="color:#351c0d" class="has-inline-color">Yukarıdaki kod örneğine göre algoritma basit gibi görünse de geçekleştirilmesi diğer sıralama algoritmalarına göre daha karmaşıktır. </span></p>



<p>Sıralanmak istenen  elemanlar bir dizi ile tutuluyorsa parçalamak kolay, birleştirilmesi zordur. Bağlı listede tutuluyorsa parçalanması zor, birleştirilmesi kolaydır. Dizi üzerinde tutulan parçaların birleştirilmesi için ek dizi alanlarına ihtiyaç vardır.  Bağlı listede  de orta elemana doğrudan erişim olmadığı için parçalamada zaman maliyeti fazla olur. Eğer eleman sayısı biliniyorsa <strong>N/2</strong> çevrim yapılır.</p>



<p><strong>Dizi bazlı veri setinde;</strong></p>



<p>Heap Sort algoritması Merge Sort algoritmasına göre daha az bellek kullanır ve daha hızlı çalışır. Aynı şekilde bellek tabanlı dizi kullanımında Quick Sort algoritması daha hızlı çalışır. </p>



<p><strong>Bağlı listelerde;</strong></p>



<p>Bağlı listelerde sıralama yapılmak istenirse Merge Sort algoritması seçilebilir. Çünkü performans açısından daha iyi olabilmektedir. Heap Sort algoritmasının kullanımı imkansızdır. Quick Sort için ise performansın düşmesin beklenir.</p>



<p></p>



<div class="wp-block-di-blocks-headline" id="di-blocks-heading-301cac53-65c2-42ee-a19f-3df9a0e397f4"><div class="di-blocks-heading di-blocks-outer"><h3 class="di-blocks-align-left di-blocks-heading-main" data-animate=""><br>Bir dizide algoritmayı adım adım işletelim</h3></div></div>



<p></p>



<p>Sıralanması nı istediğimiz dizi&nbsp;<strong>&#8220;9 4 5 3 2 1 8 6 7</strong>&#8221; olsun.</p>



<p>Dizimizin ilk hali&nbsp;<img src="http://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2019/11/Insertion-01.jpg" alt="" width="270" height="30"></p>



<p>Aşağıda adım adım işlemler sıralanmaktadır. her bir düngüde mavi kutucuklar karşılaştırılan sayıları göstermektedir. yeşil kutucuklar ise yer değiştirme sonrası halini göstermektedir. Kırmızı kutular ise yerini bulmuş elemanı gösterir.</p>



<p></p>



<div class="wp-block-stackable-image stk-block-image stk-block stk-553db46" data-block-id="553db46"><figure class="stk-img-wrapper stk-image--shape-stretch"><img class="stk-img wp-image-2334" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/mergesort.jpg" width="909" height="740" srcset="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/mergesort.jpg 909w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/mergesort-300x244.jpg 300w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/mergesort-768x625.jpg 768w, https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/12/mergesort-810x659.jpg 810w" sizes="(max-width: 909px) 100vw, 909px" /></figure></div>



<p></p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">class MergeSort
    {
        int[] dizi;
        public MergeSort(int[] dizi)
        {
            this.dizi = dizi;
        }

        public int[] Sort()
        {
            Sort(0, dizi.Length - 1);

            return dizi;
        }

        private void Sort(int sol, int sag)
        {
            if (sol &lt; sag)//Eleman sayısı 1 den büyük ise
            {

                //orta indexi bul
                int orta = (sol + sag) / 2;

                //Sol kümeyi böl sırala
                Sort(sol, orta);

                //Sağ kümeyi böl sırala
                Sort(orta + 1, sag);

                Birlestir(sol, orta, sag);//Bölüp sıraladıklarını birleştir.
            }
        }

        private void Birlestir(int sol, int orta, int sag)
        {
            int solElemanSayisi = orta - sol + 1;
            int sagElemanSayisi = sag - orta;

            int[] SOL = new int[solElemanSayisi];
            int[] SAG = new int[sagElemanSayisi];

            for (int t = 0; t &lt; solElemanSayisi; ++t)
                SOL[t] = dizi[sol + t];

            for (int z = 0; z &lt; sagElemanSayisi; ++z)
                SAG[z] = dizi[orta + 1 + z];

            int i = 0, j = 0;
            int k = sol;
            while (i &lt; solElemanSayisi &amp;&amp; j &lt; sagElemanSayisi)
            {
                //Soldaki sayi sağdakinden küçük eşitse diziye önce onu koy.
                if (SOL[i] &lt;= SAG[j])
                {
                    dizi[k] = SOL[i];
                    i++;
                }

                //Sağdaki sayi soldakinden küçük eşitse diziye önce onu koy.
                else
                {
                    dizi[k] = SAG[j];
                    j++;
                }
                k++;
            }

            //SOL da kalanları diziye ekle
            while (i &lt; solElemanSayisi)
            {
                dizi[k] = SOL[i];
                i++;
                k++;
            }

            //SAĞ da kalanları diziye ekle
            while (j &lt; sagElemanSayisi)
            {
                dizi[k] = SAG[j];
                j++;
                k++;
            }

        }
    }</pre>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p></p>



<p>Örnek uygulamaya aşağıdaki link ile erişebilirsiniz.</p>



<p><a href="https://github.com/ahmetozgunozcan/SortingAlgorithms">https://github.com/ahmetozgunozcan/SortingAlgorithms</a></p>



<p></p>



<p></p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/siralama-algoritmalari-birlesmeli-siralama-merge-sort/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Lean Yaklaşımı</title>
		<link>https://blog.ahmetozgunozcan.com.tr/lean-yaklasimi/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/lean-yaklasimi/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Sun, 28 Nov 2021 04:53:38 +0000</pubDate>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Lean]]></category>
		<guid isPermaLink="false">https://blog.ahmetozgunozcan.com.tr/?p=2211</guid>

					<description><![CDATA[Sözlük anlamı Lean YALIN KARMAŞIK OLMAYAN KOLAY ANLAŞILAN GÖSTERİŞSİZ SÜSSÜZ, SADE Lean Product Development, Yalın Üretim Lean prensiplerinin kökeni yalın üretimden gelir. İsminden de anlaşıldığı üzere aslında bir yazılım geliştirme yaklaşımı değil, ürün üretme yaklaşımıdır. Temelinde, çalışana değer verme ve sürekli gelişim vardır. &#160; Lean Product Development Toyota tarafından geliştirilmiştir. 1948 yılında geliştirilmeye başlanmış ve [&#8230;]]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-stackable-columns alignfull stk-block-columns stk-block stk-6ea7f51 stk-block-background" data-block-id="6ea7f51"><style>.stk-6ea7f51{background-color:var(--stk-global-color-81840,#f6f6f6) !important}.stk-6ea7f51:before{background-color:var(--stk-global-color-81840,#f6f6f6) !important}.stk-6ea7f51{padding-top:80px !important;padding-bottom:80px !important}</style><div class="stk-row stk-inner-blocks stk-block-content stk-content-align stk-6ea7f51-column alignwide">
<div class="wp-block-stackable-column stk-block-column stk-column stk-block stk-558149d" data-block-id="558149d"><style>@media screen and (min-width:768px){.stk-558149d{flex:1 1 21.6% !important}}.stk-558149d .stk-block-column__content{display:flex !important}.stk-558149d .stk-block-column__content{align-items:flex-start !important}</style><div class="stk-column-wrapper stk-block-column__content stk-container stk-558149d-container stk--no-background stk--no-padding"><div class="stk-block-content stk-inner-blocks">
<div class="wp-block-stackable-subtitle stk-block-subtitle stk-block stk-e3b2d30" data-block-id="e3b2d30"><style>.stk-e3b2d30{margin-bottom:8px !important}.stk-e3b2d30 .stk-block-subtitle__text{font-size:16px !important;color:#ed5521 !important;font-weight:bold !important;text-transform:uppercase !important;font-family:"Inter",Sans-serif !important;letter-spacing:1px !important}@media screen and (max-width:1023px){.stk-e3b2d30 .stk-block-subtitle__text{font-size:16px !important}}</style><p class="stk-block-subtitle__text stk-subtitle has-text-color has-text-align-left">Sözlük anlamı</p></div>



<div class="wp-block-stackable-heading stk-block-heading stk-block stk-2b0d81b" data-block-id="2b0d81b"><style>.stk-2b0d81b .stk-block-heading__text{font-size:48px !important;margin:0 !important;color:#1a1a1a !important;font-weight:800 !important;font-family:"Raleway",Sans-serif !important}@media screen and (max-width:1023px){.stk-2b0d81b .stk-block-heading__text{font-size:48px !important}}</style><h2 class="stk-block-heading__text has-text-color">Lean</h2></div>



<div class="wp-block-stackable-text stk-block-text stk-block stk-d4476ce" data-block-id="d4476ce"><p class="stk-block-text__text">YALIN</p></div>
</div></div></div>



<div class="wp-block-stackable-column stk-block-column stk-column stk-block stk-370b4a7" data-block-id="370b4a7"><style>@media screen and (min-width:768px){.stk-370b4a7{flex:1 1 78.4% !important}}</style><div class="stk-column-wrapper stk-block-column__content stk-container stk-370b4a7-container stk--no-background stk--no-padding"><div class="stk-block-content stk-inner-blocks">
<div class="wp-block-stackable-columns stk-block-columns stk-block stk-1b94742" data-block-id="1b94742"><div class="stk-row stk-inner-blocks stk-block-content stk-content-align stk-1b94742-column">
<div class="wp-block-stackable-column stk-block-column stk-column stk-block stk-f2813ed" data-block-id="f2813ed"><div class="stk-column-wrapper stk-block-column__content stk-container stk-f2813ed-container stk--no-background stk--no-padding"><div class="stk-block-content stk-inner-blocks">
<div class="wp-block-stackable-testimonial is-style-compact stk-block-testimonial stk-block stk-e7e0884" data-block-id="e7e0884"><style>.stk-e7e0884-container{box-shadow:7px 5px 30px rgba(72,73,121,0.15) !important}</style><div class="stk-block-testimonial__content stk-content-align stk-e7e0884-column stk-container stk-e7e0884-container stk-hover-parent"><div class="stk-block-content stk-inner-blocks">
<div class="wp-block-stackable-text stk-block-text stk-block stk-18261fc" data-block-id="18261fc"><p class="stk-block-text__text">KARMAŞIK OLMAYAN</p></div>
</div></div></div>



<div class="wp-block-stackable-testimonial is-style-compact stk-block-testimonial stk-block stk-c430fda" data-block-id="c430fda"><style>.stk-c430fda-container{box-shadow:7px 5px 30px rgba(72,73,121,0.15) !important}</style><div class="stk-block-testimonial__content stk-content-align stk-c430fda-column stk-container stk-c430fda-container stk-hover-parent"><div class="stk-block-content stk-inner-blocks">
<div class="wp-block-stackable-text stk-block-text stk-block stk-d98cbbe" data-block-id="d98cbbe"><p class="stk-block-text__text">KOLAY ANLAŞILAN</p></div>
</div></div></div>
</div></div></div>



<div class="wp-block-stackable-column stk-block-column stk-column stk-block stk-eea9354" data-block-id="eea9354"><div class="stk-column-wrapper stk-block-column__content stk-container stk-eea9354-container stk--no-background stk--no-padding"><div class="stk-block-content stk-inner-blocks">
<div class="wp-block-stackable-testimonial is-style-compact stk-block-testimonial stk-block stk-416309b" data-block-id="416309b"><style>.stk-416309b-container{box-shadow:7px 5px 30px rgba(72,73,121,0.15) !important}</style><div class="stk-block-testimonial__content stk-content-align stk-416309b-column stk-container stk-416309b-container stk-hover-parent"><div class="stk-block-content stk-inner-blocks">
<div class="wp-block-stackable-text stk-block-text stk-block stk-4f5004f" data-block-id="4f5004f"><p class="stk-block-text__text">GÖSTERİŞSİZ</p></div>
</div></div></div>



<div class="wp-block-stackable-testimonial is-style-compact stk-block-testimonial stk-block stk-dd099ba" data-block-id="dd099ba"><style>.stk-dd099ba-container{box-shadow:7px 5px 30px rgba(72,73,121,0.15) !important}</style><div class="stk-block-testimonial__content stk-content-align stk-dd099ba-column stk-container stk-dd099ba-container stk-hover-parent"><div class="stk-block-content stk-inner-blocks">
<div class="wp-block-stackable-text stk-block-text stk-block stk-37e2aff" data-block-id="37e2aff"><p class="stk-block-text__text">SÜSSÜZ, SADE</p></div>
</div></div></div>
</div></div></div>
</div></div>
</div></div></div>
</div></div>



<div class="wp-container-1 wp-block-group"><div class="wp-block-group__inner-container">
<h3>Lean Product Development, Yalın Üretim</h3>



<p>Lean prensiplerinin kökeni yalın üretimden gelir. İsminden de anlaşıldığı üzere aslında bir yazılım geliştirme yaklaşımı değil, ürün üretme yaklaşımıdır. Temelinde, çalışana değer verme ve sürekli gelişim vardır.</p>
</div></div>



<p>&nbsp;</p>



<p><strong><em><div class="mks_pullquote mks_pullquote_left" style="width:350px; font-size: 18px; color: #ffffff; background-color:#f7c24e;">Toyota Production System — TPS</div> </em></strong>Lean Product Development Toyota tarafından geliştirilmiştir. 1948 yılında geliştirilmeye başlanmış ve uzun süre güncellenmiştir. Araba üretiminde kullanılmıştır. Toyota’nın genel hedefi seri üretim ile maliyeti en aza indirgemek ve bununla birlikte kaliteden ödün vermemektir. Bu doğrultuda üretim yaklaşımlarını sürekli geliştirdiler.</p>



<p>&nbsp;</p>



<div class="wp-block-stackable-columns alignfull stk-block-columns stk-block stk-e790efb stk-block-background" data-block-id="e790efb"><style>.stk-e790efb{background-color:var(--stk-global-color-81840,#f6f6f6) !important}.stk-e790efb:before{background-color:var(--stk-global-color-81840,#f6f6f6) !important}.stk-e790efb{padding-top:80px !important;padding-bottom:80px !important}.stk-e790efb-column{--stk-column-gap:48px !important}</style><div class="stk-row stk-inner-blocks stk-block-content stk-content-align stk-e790efb-column">
<div class="wp-block-stackable-column stk-block-column stk-column stk-block stk-d34c3f6" data-block-id="d34c3f6"><style>@media screen and (min-width:768px){.stk-d34c3f6{flex:1 1 48.7% !important}}.stk-d34c3f6 .stk-block-column__content{display:flex !important}.stk-d34c3f6 .stk-block-column__content{align-items:center !important}</style><div class="stk-column-wrapper stk-block-column__content stk-container stk-d34c3f6-container stk--no-background stk--no-padding"><div class="stk-block-content stk-inner-blocks">
<div class="wp-block-stackable-image stk-block-image stk-block stk-a1b0d86" data-block-id="a1b0d86"><style>.stk-a1b0d86 .stk-img-wrapper{width:82% !important;height:366px !important;filter:drop-shadow(7px 5px 30px rgba(72,73,121,0.15)) !important}</style><figure class="stk-img-wrapper stk-image--shape-stretch stk--shadow-7px 5px 30px rgba(72, 73, 121, 0.15)"><img class="stk-img wp-image-2217" src="https://blog.ahmetozgunozcan.com.tr/wp-content/uploads/2021/11/image.png" width="207" height="270"/></figure></div>
</div></div></div>



<div class="wp-block-stackable-column stk-block-column stk-column stk-block stk-90e2f18" data-block-id="90e2f18"><style>@media screen and (min-width:768px){.stk-90e2f18{flex:1 1 51.3% !important}}</style><div class="stk-column-wrapper stk-block-column__content stk-container stk-90e2f18-container stk--no-background stk--no-padding"><div class="stk-block-content stk-inner-blocks">
<div class="wp-block-stackable-subtitle stk-block-subtitle stk-block stk-cb0d72e" data-block-id="cb0d72e"><style>.stk-cb0d72e{margin-bottom:8px !important}.stk-cb0d72e .stk-block-subtitle__text{font-size:16px !important;color:#ed5521 !important;font-weight:bold !important;text-transform:uppercase !important;font-family:"Inter",Sans-serif !important;letter-spacing:1px !important}@media screen and (max-width:1023px){.stk-cb0d72e .stk-block-subtitle__text{font-size:16px !important}}</style><p class="stk-block-subtitle__text stk-subtitle has-text-color">Marry &amp; Tom POPPENDİECK</p></div>



<div class="wp-block-stackable-heading stk-block-heading stk-block stk-535afc6" data-block-id="535afc6"><style>.stk-535afc6 .stk-block-heading__text{font-size:48px !important;margin:0 !important;color:#1a1a1a !important;font-weight:800 !important;font-family:"Raleway",Sans-serif !important}@media screen and (max-width:1023px){.stk-535afc6 .stk-block-heading__text{font-size:48px !important}}</style><h2 class="stk-block-heading__text has-text-color has-text-align-left">Lean Software Development </h2></div>



<div class="wp-block-stackable-text stk-block-text stk-block stk-12cc38f" data-block-id="12cc38f"><style>.stk-12cc38f .stk-block-text__text{color:var(--stk-global-color-56986,#111111) !important}</style><p class="stk-block-text__text has-text-color has-stk-global-color-56986-color">Her ne kadar Lean yaklaşımı üretim yaklaşımı olsa da yazılım geliştirme işlemlerine uyarlanabilir. Agile yazılım geliştirme metodolojisinin tarihçesinde çok önemli bir rolü vardır. </p></div>
</div></div></div>
</div></div>



<h3>Lean Prensipleri</h3>



<p><strong>İsrafı önle! (Eliminate Waste) </strong>Lean yaklaşımında temel olan üründür. Her şey ürün odaklıdır.</p>



<p>Yazılım geliştirme işlemi için aşağıdakiler israf olarak nitelendirilebilir;</p>



<ul><li>Müşterinin istemediği özelliklerin geliştirilmesi</li><li>Gereksiz beklemeler ve süreçler</li><li>Müşterinin isteklerinin olmaması</li><li>Hatalar</li><li>Gereksiz arayüz tasarımları</li></ul>



<p>Hatta bazı yazılım geliştiriciler için dokümantasyon, yönetim ve planlama süreçleri dahi israf sayılabilmektedir. Her ne kadar tamamının israf olduğu düşüncesine katılmasam da sürekli gelişen sistemlerde statik dokümantasyon oluşturmanın israf olacağı kanaatindeyim. Çünkü her aşamada dokümanı revize etmek için adam gün kaybı olacak. Bunun yerine dinamik/otomatik doküman oluşturan yapıların kullanılması, kodlar için geliştirilen projede açıklamaların yazılması tercih edilmelidir.</p>



<p><strong>Sürekli öğren! (Amplify Learning) </strong>Takımın sürekli öğrenmesi için çalışmalar yapılmalıdır. Bilginin güncel olması sağlanmalıdır.</p>



<p><strong>Karar vermek için uygun zamanı kolla! (Decide as Late as Possible) </strong>Mümkün olduğunca tüm bileşenleri verileri toplamadan karar verilmemelidir. Çünkü eksik bilgiler ile karar verip işe koyulmak sonradan birçok problemi ortaya çıkaracaktır. Ayrıca karar verme noktasında geç kalınmaması, en doğru zamanın hesaplanması gerekir.</p>



<p><strong>Ürünü hızlı teslim et! (Delive as Fast as Possible) </strong>Ürünün hızlı teslim edilmesi müşteriyi memnun eder. Mümkün olduğunca ürünün hızlı üretilmesi gerekmektedir. Dolayısı ile sadece müşterinin istediği şekilde ürün üretilmelidir. Ne eksik ne fazla.</p>



<p><strong>Takımın gücünü ve güvenini artır! (Empower the Team) </strong>Takımın kapasitesini ve gücünü artırmak için gerekenleri yapmaktan sakınılmamalıdır. Ayrıca takımın birbiri içerisinde güvenini sağlamak gerekir. Takıma ne kadar değer verilirse çalışanlar da birbirine aynı derece değer verir. Kesinlikle takım içinde kişi bazlı suçluluk duygusunun oluşmaması için doğru planlama yapılmalıdır.&nbsp;</p>



<p><strong>Bütünlüğü sağla! (Built Integrity In) </strong>Sistemin sahibi ile bütünlük sağlanmalıdır. Mutlaka hem sistem içi iletişimi sağlam tutmak hem de müşteri ile iyi bir bağ kurmak gerekir. Ayrıca müşteriyi her aşamada doğru anlamak gerekir.&nbsp;</p>



<p>Müşterinin<br>&#8211; <strong><span style="color:#65d615" class="tadv-color">Ben de bu şekilde yapardım. Tam istediğim gibi olmuş.</span></strong><br>şeklinde düşünmesi bütünlüğün sağlandığını gösterir.</p>



<p><strong>Bir işi yaparken sistemin bütününü gözet! (See the Whole) </strong>Bir iyileştirme veya ekleme yapılırken mutlaka sistemin bütünü düşünülmelidir. Parçalı bağımsız iyileştirmelerden kaçınılmalıdır.</p>



<p>&nbsp;</p>



<hr class="wp-block-separator is-style-default"/>



<h4>“Seri üretim yap, maliyeti düşür, kaliteden ödün&nbsp;verme!”</h4>



<p>Japonya’da bir fabrikada maliyeti düşük, kaliteli ürün üretmek istiyordu.&nbsp;</p>



<blockquote class="wp-block-quote"><p>Düşünülünce seri üretim, maliyetin asgari düzeyde kalmasını sağlayabilir. Sanki bu yöntemle kaliteli ürün çıkmasını beklemek pek mümkün değil.</p></blockquote>



<p>Seri üretilen ürünlerin aynı probleme sahip olması ürün kalitesinin düşmesine neden oluyordu. Bu durum üretim maliyetini artırıyordu. Sorunu çözmek için bir çok fikir ortaya atıldı. Bunlardan bir tanesi kalite kontrolün işçi tarafından üretim bandında yapılması idi.</p>



<p><strong><em>“Eğer işçi herhangi bir problemi tespit ederse üretim bandını durdurabilmeli!”</em></strong></p>



<p>Tabi bu fikir kimilerine göre mantıklı olsa da kimileri için pek uygun değildi.(o yıllarda işçiye değer vermek…);</p>



<ul><li>Acaba bu yapılmalı mı? Yapılırsa fabrika zarar görmez mi?</li><li>Üretim bandının kontrolünü nasıl bir işçiye verebiliriz?</li><li>Aralıksız üretim yaparken bir işçi nasıl olurda fabrikayı durdurur?</li><li>Bu yetki üretim planına zarar vermesin sakın.</li><li>vs.</li></ul>



<p>Bu fikrin uygulanması ilk zamanlarda sürekli üretimin durmasına sebep oldu. Kaliteye engel olan durumlar ortadan kaldırılıdıkça üretim bandının durdurulması eylemi azaldı. Ve sonrasında hedeflenen şekilde az maliyetle seri üretim yapılırak kaliteli ürünler üretilildi.</p>



<p>İşçiye kalite kontrolünün yaptırılması ve üretimi durdurma yetkisinin verilmesi örneği, çalışana değer vermedir, güvenmedir. Bu hikaye takıma güvenmeye ve takımın gücünün artırılmasına bir örnektir.</p>



<hr class="wp-block-separator"/>



<p>Yazılım geliştirme süreçlerinde belkide bir çoğunuzun Lean Yaklaşımı ile bağlantı kurabildiniz. Yazılım geliştirme işlemi aslında bir ürünün ortaya çıkarılması ve ayakta tutulması değil mi? Aslında her geliştirici daha hızlı, daha az maliyetli ve kaliteli yazılım geliştirmek ister.  &#8211; Yazılımcılar maliyeti sevmezler. Mutlaka toplantılarda bir işin maliyeti konuşulur. &#8211;  Bir de yaptığınız iş içinize sinecek. Belki bu da kaliteyi gösterir.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/lean-yaklasimi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Windows Administrator Hesabını Aktifleştirme</title>
		<link>https://blog.ahmetozgunozcan.com.tr/administrator-hesabini-aktiflestirme/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/administrator-hesabini-aktiflestirme/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Mon, 06 Jan 2020 19:34:23 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[administrator]]></category>
		<guid isPermaLink="false">https://blog.ahmetozgunozcan.com.tr/?p=1794</guid>

					<description><![CDATA[Windows 10 içerisinde yerel administrator hesabı bulunmaktadır. Pasif olması nedeniyle bu hesabı göremezsiniz. Genelde çoğu kullanıcının bu hesaba ihtiyacı olmaz. Bazı sorunları çözmek amacıyla administrator hesabına ihtiyaç duyulabilmektedır.&#160; “Kullanıyor olduğum hesabım zaten bir yönetici hesabı. Neden administrator kullanıcısına ihtiyacım olsun ki?” diyebilirsiniz. Evet haklısınız. Neredeyse, yönetici izinlerine sahip hesabınız ile administrator hesabı aynı. Ama neredeyse. [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Windows 10 içerisinde yerel administrator hesabı bulunmaktadır. Pasif olması nedeniyle bu hesabı göremezsiniz. Genelde çoğu kullanıcının bu hesaba ihtiyacı olmaz. Bazı sorunları çözmek amacıyla administrator hesabına ihtiyaç duyulabilmektedır.&nbsp;</p>



<p><strong>“Kullanıyor olduğum hesabım zaten bir yönetici hesabı. Neden administrator kullanıcısına ihtiyacım olsun ki?” </strong>diyebilirsiniz.</p>



<p>Evet haklısınız. Neredeyse, yönetici izinlerine sahip hesabınız ile administrator hesabı aynı. Ama neredeyse. Aralarında tek ama önemli bir fark var.&nbsp;</p>



<p>UAC — User Account Control (Kullanıcı Hesabı Denetimi)</p>



<p>Evet yerleşik admin hesabında UAC yoktur.&nbsp;</p>



<blockquote class="wp-block-quote"><p>Peki nedir bu UAC?<br>İşletim sisteminin güvenliği için gerekli olan bir uygulamadır. Sistemde izinsiz n güncelleme ve değişikliklerin yapılmasını önlemeye yarar. Bazı uygulamaların sisteme yüklenmesi anında otomatik olarak kurulum yapılacağını anlar ve onay istemi gerçekleştirir. Böylelikle kurulum işlemini doğrulamak ve sonrasında devam ettirmek için kullanıcının onaylamasını ister.</p></blockquote>



<hr class="wp-block-separator"/>



<p>3 farklı yöntemle administrator hesabını aktif veya pasif yapılabilir.</p>



<h3>Bilgisayar Yönetimi — Computer Management</h3>



<p>Bilgisayar yönetimi uygulamasını çalıştırın. “Yerel Kullanıcılar Ve Gruplar” dalı içinde “Kullanıcılar” dalını seçin. Sağ tarafta administrator hesabının göreceksiniz. Bu hesaba sağ tıklayarak özellikler penceresini açın. açılan pencerede Genel sekmesinde “Hesap devre dışı” seçimi mevcut. Aktifleştirmek için seçimi kaldırmak, pasifleştirmek için seçmek gerekir.</p>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*0otO-JdHrgjxHwbx01Wdmw.png" alt=""/></figure>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*5Rr5zm3AgwM3mpnP8LHazA.png" alt=""/></figure>



<hr class="wp-block-separator"/>



<h3>Komut Satırı</h3>



<p>Command Prompt(Komut İstemi) uygulamasını yönetici olarak çalıştırın</p>



<p>Aktifleştirmek için aşağıdaki kodu yazın “Enter” tuşuna basın.&nbsp;</p>



<pre class="wp-block-preformatted">net user Administrator / active:yes</pre>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/0*YPGPpDiFEpwGiTAF.png" alt=""/></figure>



<p>Pasif yapmak için aşağıdaki kodu yazın “Enter” tuşuna basın.</p>



<pre class="wp-block-preformatted">net user Administrator / active:no</pre>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/0*Uqj6RHsTcxknxmD5.png" alt=""/></figure>



<hr class="wp-block-separator"/>



<h4>PowerShell</h4>



<p>PowerShell uygulamasını yönetici olarak çalıştırın.</p>



<p>Aktifleştirmek için ve aşağıdaki komutu yazın “Enter” tuşuna basın.</p>



<pre class="wp-block-preformatted">Get-LocalUser -Name “Administrator” | Enable-LocalUser</pre>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*a8ejuOv_J4cW9diW_n7KnQ.png" alt=""/></figure>



<p>Pasif yapmak için ve aşağıdaki komutu yazın “Enter” tuşuna basın.</p>



<pre class="wp-block-preformatted">Get-LocalUser -Name “Administrator” | Disable-LocalUser</pre>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*FeZg-uliYwPrjdkq0SAhFg.png" alt=""/></figure>



<hr class="wp-block-separator"/>



<p>Aktifleştirme işlemi sonrası oturum değiştirme işlemi ile Administrator kullanıcısına geçebilirsiniz.</p>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*qNxT38AZUuK-f1k5C7Tp_g.png" alt=""/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/administrator-hesabini-aktiflestirme/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Sizteniz ne kadar hızlı?</title>
		<link>https://blog.ahmetozgunozcan.com.tr/sizteniz-ne-kadar-hizli/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/sizteniz-ne-kadar-hizli/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Wed, 25 Dec 2019 21:27:55 +0000</pubDate>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[site hızı]]></category>
		<category><![CDATA[think with google]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">http://blog.ahmetozgunozcan.com.tr/?p=1661</guid>

					<description><![CDATA[Sitenizin ne kadar hızlı olduğunu ölçün, sonuç raporu alın, iyileştirin ve hızlandırın. Yavaş yüklenen siteler çok çabuk ziyaretçi kaybeder. Hiç kimse ziyaretçi kaybetmek istemez. Ziyarteçileri sisteminizde tutabilmek için sitenizin performansı iyi olmalıdır. Bu performans değeri kullanım sırasında kendini belli eder.  Sitenizin performansını ölçerek yavaşlığa neden olan problemleri öğrenebilirsiniz. Ölçüm sonrası raporlar ile problemleri çözerek sitenizi [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h3 class="kt-adv-heading_12e343-1f wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading_12e343-1f">Sitenizin ne kadar hızlı olduğunu ölçün, sonuç raporu alın, iyileştirin ve hızlandırın.</h3>



<div class="wp-block-stackable-text stk-block-text stk-block stk-30b6597" data-block-id="30b6597"><p class="stk-block-text__text">Yavaş yüklenen siteler çok çabuk ziyaretçi kaybeder. Hiç kimse ziyaretçi kaybetmek istemez. Ziyarteçileri sisteminizde tutabilmek için sitenizin performansı iyi olmalıdır. Bu performans değeri kullanım sırasında kendini belli eder. </p></div>



<div class="wp-block-stackable-text stk-block-text stk-block stk-e50e25d" data-block-id="e50e25d"><p class="stk-block-text__text">Sitenizin performansını ölçerek yavaşlığa neden olan problemleri öğrenebilirsiniz. Ölçüm sonrası raporlar ile problemleri çözerek sitenizi hızlandırabilirsiniz. Raporlarda teknik aksaklıklar, yavaşlığa neden olan imaj, yazı, script, sayfa vb. bulgular listelenmektedir. Hatta bazı raporlarda çözüm önerileri de sunulmaktadır. Ancak doğru ve teknik bulguları olan raporlar performans iyileştirmelerini yapabilmek adına kılavuz olabilir. </p></div>



<p><strong>Think With Google ö</strong>ncesinde “Yavaş bir mobil site işinizi kısıtlar.” başlığı ile sunulan şimdi ise yeni ve daha güçlü arayüzüyle sunulan bu araç sayesinde sitenizin hızını test edebilirsiniz.</p>



<p><a rel="noreferrer noopener" href="https://www.thinkwithgoogle.com/intl/en-gb/feature/testmysite/" target="_blank">Buradan(Think With Google)</a> ilgili sayfaya ulaşabilirsiniz. Test etmek istediğiniz sitenin adresini yazmanız yeterlidir. Sonrasında size güzel bir rapor oluşturacaktır.</p>



<div class="wp-block-stackable-heading stk-block-heading stk-block stk-0edc5cd" data-block-id="0edc5cd"><h2 class="stk-block-heading__text"><strong><span style="color: #000000;" class="stk-highlight">Örnek</span><span style="color: #ffffff;" class="stk-highlight">;</span></strong></h2></div>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*Viy-JKPA1kS3eJ2E7y3DOg.png" alt=""/><figcaption>Analiz için site adresinin girilmesi</figcaption></figure>



<figure class="wp-block-image is-resized is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*wnZWheakKDmrNT153ucc1A.png" alt="" width="790" height="375"/><figcaption>Analiz İşlemleri</figcaption></figure>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*NXhUme2wPki_8Kf_TFbBTw.png" alt=""/><figcaption><br>Analiz Sonucu</figcaption></figure>



<div class="wp-block-stackable-text stk-block-text stk-block stk-263a796" data-block-id="263a796"><p class="stk-block-text__text"><strong>“Learn how to optimise your mobile site” ve “Get your full report” </strong>ile faydalı raporlara ulaşarak çözüm önerilerine erişebiliriz.</p></div>



<h2>Sitenizin hızını ölçebileceğiniz bazı araçlar</h2>



<p>Aşağıda listelenen bir çok araç ile raporlar elde edebilirsiniz. Bu raporların sonucunda siteniz için bir puan/sınıf kodu oluşturulacak. Bu puanlamayı nasıl daha iyiye çekebileceğiniz hususunda önerileri de olacak. Adım adım siteniz için gerekli işlemleri yaptıktan sonra sitenizin nasıl hızlandığını göreceksiniz.</p>



<ul><li><a href="https://tools.pingdom.com/" rel="noreferrer noopener" target="_blank">Pingdom Website Speed Test</a></li></ul>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*7gi9OUrXlNeqMtBXh3kExw.png" alt=""/><figcaption>Pingdom Website Speed&nbsp;Test</figcaption></figure>



<ul><li><a href="https://developers.google.com/speed/pagespeed/insights" rel="noreferrer noopener" target="_blank">PageSpeed Insights</a></li></ul>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*Jqm97Y1l_APsJllViNRnGg.png" alt=""/><figcaption>PageSpeed Insights</figcaption></figure>



<ul><li><a href="https://gtmetrix.com/" rel="noreferrer noopener" target="_blank">GTmetrix</a></li></ul>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*_G_DxNAjfngCojY2YulaSQ.png" alt=""/><figcaption>GTmetrix</figcaption></figure>



<ul><li><a href="https://www.webpagetest.org/" rel="noreferrer noopener" target="_blank">WEBPAGETEST</a></li></ul>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*FnWKa9apg_acYcH4eJFILw.png" alt=""/><figcaption>WEBPAGETEST</figcaption></figure>



<ul><li><a href="https://www.dotcom-tools.com/" rel="noreferrer noopener" target="_blank">dotcom-tools</a></li></ul>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*4dcW5oFFySFrYl0actGEug.png" alt=""/><figcaption>dotcom-tools</figcaption></figure>



<ul><li><a rel="noreferrer noopener" href="https://tools.keycdn.com/" target="_blank">Keycdn</a></li></ul>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*wc6qsIKL127WhAygI1yiGA.png" alt=""/><figcaption>Keycdn</figcaption></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/sizteniz-ne-kadar-hizli/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Visual Studio Locate In Solution Explorer</title>
		<link>https://blog.ahmetozgunozcan.com.tr/visual-studio-locate-in-solution-explorer/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/visual-studio-locate-in-solution-explorer/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Tue, 17 Dec 2019 01:03:24 +0000</pubDate>
				<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[shortcut]]></category>
		<category><![CDATA[visual studio]]></category>
		<guid isPermaLink="false">http://blog.ahmetozgunozcan.com.tr/?p=1628</guid>

					<description><![CDATA[Visual Studio ile yazılım geliştirirken açık olan dosyanın Solution Explorer kısmında seçili hale getirlmesinin yöntemlerini paylaşacağım. Visual studio editörde aktif olan dosya için otomatik seçim yapabiliyor. Bu özelliğin aktif olması için aşağıdaki çerçeve ile gösterilen seçeneğin seçili olması gerekmektedir. Tools-&#62;Options-&#62;Projects and solutions-&#62;General-&#62;”Track Active Item in Solution Explorer”=true Bu kullanım kimi yazılımcılar için faydalı olabilir. Ama [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Visual Studio ile yazılım geliştirirken açık olan dosyanın Solution Explorer kısmında seçili hale getirlmesinin yöntemlerini paylaşacağım.</p>



<p>Visual studio editörde aktif olan dosya için otomatik seçim yapabiliyor. Bu özelliğin aktif olması için aşağıdaki çerçeve ile gösterilen seçeneğin seçili olması gerekmektedir.</p>



<blockquote class="wp-block-quote"><p><em>Tools-&gt;Options-&gt;Projects and solutions-&gt;General-&gt;”Track Active Item in Solution Explorer”=true</em></p></blockquote>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*7gJpyJxRznE6VJQ7qWAG1g.png" alt=""/><figcaption><em>Track Active Item in Solution&nbsp;Explorer</em></figcaption></figure>



<p>Bu kullanım kimi yazılımcılar için faydalı olabilir. Ama özellikle büyük projelerde beni rahatsız ediyor. Solution Explorer üzerinde “Selected File” değişikliği ve scroll hareketleri oluşuyor. Bilerek açmış olduğunuz bir klasör içinde iken bir anda sizin seçiminizden çıkıp editörde seçilen dosyaya yöneliyor. İşte bu sebeple bu “track” işlemini ben istediğim zaman yapmak istiyorum diyorsanız, “Locate In Solution Explorer” özelliğine veya işlevine ihtiyacınız var.</p>



<h4>Locate In Solution&nbsp;Explorer</h4>



<p>Üzerinde çalışmış olduğunuz dosyayı Solution Explorer içerisinde seçili hale getirmektir.&nbsp;</p>



<p><strong>Shortcut</strong></p>



<p>Tools -&gt; Options ile açılan pencerede, arama kısmına “shortcut” yazıyoruz. Keyboard’u seçiyoruz. Show commands containing kısmına “<strong>SolutionExplorer.SyncWithActiveDocument</strong> “ yazıyoruz. Aşağıdaki gibi bir ekran gelecek.</p>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*PhSPeWndfKC-PED8iXI53Q.jpeg" alt=""/></figure>



<p>Bu ekanda görüldüğü üzere bendeki kısayol “Ctrl+ğ,S” olarak görülmektedir. Yine isterseniz buradan yeni bir shortcut key verebilirsiniz. Kod yazdığınız dosya üzerindeyken bu tuş kombinasyonları ile seçim yapabilirsiniz.</p>



<p><strong>ReSharper</strong></p>



<p>Visual studio ile kod geliştirirken belli bir süre ReSharper kullandım. Bu süre zarfında menüye, context menüye ve toolbara bu özelliği eklemek oldukça basit. Bu işlem için aşağıdaki bağlantı size yardımcı olacaktır.</p>



<p></p>



<p><strong>Sync with Active Document</strong></p>



<p>İsterseniz bu işlemleri yapmadan aşağıda sarı dikdörtgen ile gösterdiğim butonu (Sync with Active Document) kullanarak editörde aktif dosyayı seçili hale getirebilirsiniz. Sanki en kolay yöntemi bu&nbsp;.&nbsp;🙂</p>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*5Sh-b-CsOpaQmc5e6NlQmQ.jpeg" alt=""/></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/visual-studio-locate-in-solution-explorer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress Debug açma kapatma</title>
		<link>https://blog.ahmetozgunozcan.com.tr/wordpress-debug-acma-kapatma/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/wordpress-debug-acma-kapatma/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Sat, 14 Dec 2019 22:12:43 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">http://blog.ahmetozgunozcan.com.tr/?p=1620</guid>

					<description><![CDATA[Wordperss sistenizdeki hataları görmek istiyorsanız aşağıdaki kodu kullanabilirsiniz. define( 'WP_DEBUG', true ); Wordperss sistenizdeki hataları gizlemek istiyorsanız aşağıdaki kodu kullanabilirsiniz. define( 'WP_DEBUG', false); Bu kodu wp-config.php dosyasına yazmanız gerekmektedir.]]></description>
										<content:encoded><![CDATA[<p>Wordperss sistenizdeki hataları görmek istiyorsanız aşağıdaki kodu kullanabilirsiniz.</p>
<p><code class="EnlighterJSRAW" data-enlighter-language="php">define( 'WP_DEBUG', true );</code></p>
<p>Wordperss sistenizdeki hataları gizlemek istiyorsanız aşağıdaki kodu kullanabilirsiniz.</p>
<p><code class="EnlighterJSRAW" data-enlighter-language="php">define( 'WP_DEBUG', false);</code></p>
<p>Bu kodu wp-config.php dosyasına yazmanız gerekmektedir.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/wordpress-debug-acma-kapatma/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHPBB Kullanıcı Şifresi değiştirme PhpMyAdmin</title>
		<link>https://blog.ahmetozgunozcan.com.tr/phpbb-kullanici-sifresi-degistirme-phpmyadmin/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/phpbb-kullanici-sifresi-degistirme-phpmyadmin/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Fri, 13 Dec 2019 17:42:11 +0000</pubDate>
				<category><![CDATA[PhpBB]]></category>
		<category><![CDATA[cPanel]]></category>
		<category><![CDATA[phpbb]]></category>
		<category><![CDATA[PhpMyAdmin]]></category>
		<guid isPermaLink="false">http://blog.ahmetozgunozcan.com.tr/?p=1605</guid>

					<description><![CDATA[PHPBB forum sayfanızın admin şifrenizi unuttunuz. Haydaa. Bir kullanıcının şifresini foruma girmeden veri tabanında değiştirmek istiyorsunuz. Benim başıma admin şifresini unutmak gelmişti. PhpMyAdmin’e girip kendi kullanıcı şifremi aşağıdaki komut ile değiştirmek zorunda kaldım. İşime yaradı. İnşallah cPanel şifremi unutmam. 🙂]]></description>
										<content:encoded><![CDATA[
<p>PHPBB forum sayfanızın admin şifrenizi unuttunuz. Haydaa. </p>



<p>Bir kullanıcının şifresini foruma girmeden veri tabanında değiştirmek istiyorsunuz.</p>



<p>Benim başıma admin şifresini unutmak gelmişti. PhpMyAdmin’e girip kendi kullanıcı şifremi aşağıdaki komut ile değiştirmek zorunda kaldım. İşime yaradı. İnşallah cPanel şifremi unutmam. 🙂</p>



<p></p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">UPDATE phpbb_users SET user_password = MD5('pasword') WHERE username='username';</pre>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/phpbb-kullanici-sifresi-degistirme-phpmyadmin/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PowerShell İle IIS Export ve Import</title>
		<link>https://blog.ahmetozgunozcan.com.tr/powershell-ile-iis-export-ve-import/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/powershell-ile-iis-export-ve-import/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Tue, 10 Dec 2019 20:24:48 +0000</pubDate>
				<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[powershell]]></category>
		<guid isPermaLink="false">http://blog.ahmetozgunozcan.com.tr/?p=1559</guid>

					<description><![CDATA[PowerShell komutları kullanarak IIS içerisindeki site tanımlarını başka bir IIS’te tanımlayabiliriz. Keşke Ctrl+C ve Ctrl+P tuş kombinasyonları ile yapabilseydik. 😃&#160; Her IIS için tüm tanımlamaları ve ayarları tekrar aynı şekilde hiç bir işlemi atlamadan manuel yapmak oldukça zaman alır. Risklidir. Ayrıca bu durum size zaman kaybettireceği gibi iş açısından da sizi zarara sokabilir. Yapacağınız küçük [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>PowerShell komutları kullanarak IIS içerisindeki site tanımlarını başka bir IIS’te tanımlayabiliriz. Keşke Ctrl+C ve Ctrl+P tuş kombinasyonları ile yapabilseydik. 😃&nbsp;</p>



<p>Her IIS için tüm tanımlamaları ve ayarları tekrar aynı şekilde hiç bir işlemi atlamadan manuel yapmak oldukça zaman alır. Risklidir. Ayrıca bu durum size zaman kaybettireceği gibi iş açısından da sizi zarara sokabilir. Yapacağınız küçük bir hata veya unuttuğunuz herhangi bir detay işinizin yanlış ve hatalı olmasına neden olabilir. Aynı sistem farklı makinelerde farklı çalışır veya hiç çalışmaz.&nbsp;</p>



<p>Burada gösterilen Export &amp; İmport işlemleri Copy-Paste kadar kolay olmasa da manuel yönteme göre daha basittir. Ayrıca her IIS birbirinin tıpatıp aynısı olacaktır.</p>



<hr class="wp-block-separator"/>



<h4><strong>Şimdi yapacağımız örnek kopyalama yöntemi ile hem daha çabuk hem de doğru bir kurulum işlemi gerçekleşecek.</strong></h4>



<p>Taşıyacağımız IIS resimlede görüldüğü gibidir. Bir kaç özel ayarları vardır. Mesela;</p>



<ul><li>OrnekSite’nin 8080 portu ile bind edilmesi,</li><li>OrnekSite Application Pool için resimde görüldüğü üzere özel ayarların bulunması. ( Recyling, Rapid Fail Protection, Identity, Idle Time-out)</li></ul>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/0*z84jshdyPl3TLZGQ.jpg" alt=""/><figcaption>Sites</figcaption></figure>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/0*ZRse6QRxcKg43Avz.jpg" alt=""/><figcaption>Applicatiın Pools</figcaption></figure>



<figure class="wp-block-image is-style-default"><img src="https://cdn-images-1.medium.com/max/800/1*DpzjVvDJWGG0jlMrmKPgQA.jpeg" alt=""/><figcaption>App Poo lProperties</figcaption></figure>



<hr class="wp-block-separator"/>



<p>Öncelikle Windows PowerShell veya Windows PowerShell ISE uygulamasından birini açalım.</p>



<h4>Site Export&nbsp;İşlemi</h4>



<p>Export işlemini gerçekleştirecek kod parçacığı aşağıdadır. Bu kod ile C dizininde site.xml adında bir dosya oluşturulur.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$appcmd = $Env:WinDir+'\system32\inetsrv\appcmd.exe'
&amp; $appcmd list site /config /xml > c:\site.xml</pre>



<p><strong>Site.XML İçeriği</strong></p>



<p></p>



<pre class="EnlighterJSRAW" data-enlighter-language="xml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;?xml version="1.0" encoding="utf-8"?>
&lt;appcmd>
    &lt;SITE SITE.NAME="Default Web Site" SITE.ID="1" bindings="http/*:80:,net.tcp/808:*,net.msmq/localhost,msmq.formatname/localhost,net.pipe/*" state="Started">
        &lt;site name="Default Web Site" id="1">
            &lt;bindings>
                &lt;binding protocol="http" bindingInformation="*:80:" />
                &lt;binding protocol="net.tcp" bindingInformation="808:*" />
                &lt;binding protocol="net.msmq" bindingInformation="localhost" />
                &lt;binding protocol="msmq.formatname" bindingInformation="localhost" />
                &lt;binding protocol="net.pipe" bindingInformation="*" />
            &lt;/bindings>
            &lt;limits />
            &lt;logFile>
                &lt;customFields>
                &lt;/customFields>
            &lt;/logFile>
            &lt;traceFailedRequestsLogging />
            &lt;hsts />
            &lt;applicationDefaults />
            &lt;virtualDirectoryDefaults />
            &lt;ftpServer>
                &lt;connections />
                &lt;security>
                    &lt;dataChannelSecurity />
                    &lt;commandFiltering>
                    &lt;/commandFiltering>
                    &lt;ssl />
                    &lt;sslClientCertificates />
                    &lt;authentication>
                        &lt;anonymousAuthentication />
                        &lt;basicAuthentication />
                        &lt;clientCertAuthentication />
                        &lt;customAuthentication>
                            &lt;providers>
                            &lt;/providers>
                        &lt;/customAuthentication>
                    &lt;/authentication>
                    &lt;customAuthorization>
                        &lt;provider />
                    &lt;/customAuthorization>
                &lt;/security>
                &lt;customFeatures>
                    &lt;providers>
                    &lt;/providers>
                &lt;/customFeatures>
                &lt;messages />
                &lt;fileHandling />
                &lt;firewallSupport />
                &lt;userIsolation>
                    &lt;activeDirectory />
                &lt;/userIsolation>
                &lt;directoryBrowse />
                &lt;logFile />
            &lt;/ftpServer>
            &lt;application path="/">
                &lt;virtualDirectoryDefaults />
                &lt;virtualDirectory path="/" physicalPath="C:\inetpub\wwwroot" />
            &lt;/application>
        &lt;/site>
    &lt;/SITE>
    &lt;SITE SITE.NAME="OrnekSite" SITE.ID="2" bindings="http/*:8080:test" state="Started">
        &lt;site name="OrnekSite" id="2">
            &lt;bindings>
                &lt;binding protocol="http" bindingInformation="*:8080:test" />
            &lt;/bindings>
            &lt;limits />
            &lt;logFile>
                &lt;customFields>
                &lt;/customFields>
            &lt;/logFile>
            &lt;traceFailedRequestsLogging />
            &lt;hsts />
            &lt;applicationDefaults />
            &lt;virtualDirectoryDefaults />
            &lt;ftpServer>
                &lt;connections />
                &lt;security>
                    &lt;dataChannelSecurity />
                    &lt;commandFiltering>
                    &lt;/commandFiltering>
                    &lt;ssl />
                    &lt;sslClientCertificates />
                    &lt;authentication>
                        &lt;anonymousAuthentication />
                        &lt;basicAuthentication />
                        &lt;clientCertAuthentication />
                        &lt;customAuthentication>
                            &lt;providers>
                            &lt;/providers>
                        &lt;/customAuthentication>
                    &lt;/authentication>
                    &lt;customAuthorization>
                        &lt;provider />
                    &lt;/customAuthorization>
                &lt;/security>
                &lt;customFeatures>
                    &lt;providers>
                    &lt;/providers>
                &lt;/customFeatures>
                &lt;messages />
                &lt;fileHandling />
                &lt;firewallSupport />
                &lt;userIsolation>
                    &lt;activeDirectory />
                &lt;/userIsolation>
                &lt;directoryBrowse />
                &lt;logFile />
            &lt;/ftpServer>
            &lt;application path="/" applicationPool="OrnekSite">
                &lt;virtualDirectoryDefaults />
                &lt;virtualDirectory path="/" physicalPath="C:\" />
            &lt;/application>
        &lt;/site>
    &lt;/SITE>
  &lt;/appcmd></pre>



<h4>Application Pool Export&nbsp;İşlemi</h4>



<p>Export işlemini gerçekleştirecek kod aşağıdadır. Bu kod ile C dizininde pool.xml adında bir dosya oluşturulur.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$appcmd = $Env:WinDir+'\system32\inetsrv\appcmd.exe'
&amp; $appcmd list site /config /xml > c:\site.xml</pre>



<p><strong>Pool.XML İçeriği</strong></p>



<p></p>



<pre class="EnlighterJSRAW" data-enlighter-language="xml" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">&lt;?xml version="1.0" encoding="UTF-8"?>
&lt;appcmd>
    &lt;APPPOOL APPPOOL.NAME="DefaultAppPool" PipelineMode="Integrated" RuntimeVersion="v4.0" state="Started">
        &lt;add name="DefaultAppPool">
            &lt;processModel />
            &lt;recycling>
                &lt;periodicRestart>
                    &lt;schedule>
                    &lt;/schedule>
                &lt;/periodicRestart>
            &lt;/recycling>
            &lt;failure />
            &lt;cpu />
            &lt;environmentVariables>
            &lt;/environmentVariables>
        &lt;/add>
    &lt;/APPPOOL>
    &lt;APPPOOL APPPOOL.NAME="Classic .NET AppPool" PipelineMode="Classic" RuntimeVersion="v2.0" state="Started">
        &lt;add name="Classic .NET AppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic">
            &lt;processModel />
            &lt;recycling>
                &lt;periodicRestart>
                    &lt;schedule>
                    &lt;/schedule>
                &lt;/periodicRestart>
            &lt;/recycling>
            &lt;failure />
            &lt;cpu />
            &lt;environmentVariables>
            &lt;/environmentVariables>
        &lt;/add>
    &lt;/APPPOOL>
    &lt;APPPOOL APPPOOL.NAME=".NET v2.0 Classic" PipelineMode="Classic" RuntimeVersion="v2.0" state="Started">
        &lt;add name=".NET v2.0 Classic" managedRuntimeVersion="v2.0" managedPipelineMode="Classic">
            &lt;processModel />
            &lt;recycling>
                &lt;periodicRestart>
                    &lt;schedule>
                    &lt;/schedule>
                &lt;/periodicRestart>
            &lt;/recycling>
            &lt;failure />
            &lt;cpu />
            &lt;environmentVariables>
            &lt;/environmentVariables>
        &lt;/add>
    &lt;/APPPOOL>
    &lt;APPPOOL APPPOOL.NAME=".NET v2.0" PipelineMode="Integrated" RuntimeVersion="v2.0" state="Started">
        &lt;add name=".NET v2.0" managedRuntimeVersion="v2.0">
            &lt;processModel />
            &lt;recycling>
                &lt;periodicRestart>
                    &lt;schedule>
                    &lt;/schedule>
                &lt;/periodicRestart>
            &lt;/recycling>
            &lt;failure />
            &lt;cpu />
            &lt;environmentVariables>
            &lt;/environmentVariables>
        &lt;/add>
    &lt;/APPPOOL>
    &lt;APPPOOL APPPOOL.NAME=".NET v4.5 Classic" PipelineMode="Classic" RuntimeVersion="v4.0" state="Started">
        &lt;add name=".NET v4.5 Classic" managedRuntimeVersion="v4.0" managedPipelineMode="Classic">
            &lt;processModel />
            &lt;recycling>
                &lt;periodicRestart>
                    &lt;schedule>
                    &lt;/schedule>
                &lt;/periodicRestart>
            &lt;/recycling>
            &lt;failure />
            &lt;cpu />
            &lt;environmentVariables>
            &lt;/environmentVariables>
        &lt;/add>
    &lt;/APPPOOL>
    &lt;APPPOOL APPPOOL.NAME=".NET v4.5" PipelineMode="Integrated" RuntimeVersion="v4.0" state="Started">
        &lt;add name=".NET v4.5" managedRuntimeVersion="v4.0">
            &lt;processModel />
            &lt;recycling>
                &lt;periodicRestart>
                    &lt;schedule>
                    &lt;/schedule>
                &lt;/periodicRestart>
            &lt;/recycling>
            &lt;failure />
            &lt;cpu />
            &lt;environmentVariables>
            &lt;/environmentVariables>
        &lt;/add>
    &lt;/APPPOOL>
    &lt;APPPOOL APPPOOL.NAME="OrnekSite" PipelineMode="Classic" RuntimeVersion="v4.0" state="Started">
        &lt;add name="OrnekSite" managedRuntimeVersion="v4.0" managedPipelineMode="Classic">
            &lt;processModel identityType="SpecificUser" userName="DOMAIN\serviceuser" password="" />
            &lt;recycling>
                &lt;periodicRestart time="00:00:00">
                    &lt;schedule>
                    &lt;/schedule>
                &lt;/periodicRestart>
            &lt;/recycling>
            &lt;failure rapidFailProtection="false" />
            &lt;cpu />
            &lt;environmentVariables>
            &lt;/environmentVariables>
        &lt;/add>
    &lt;/APPPOOL>
&lt;/appcmd></pre>



<p><strong>Site &amp; Pool Import</strong></p>



<p>site.xml ve pool.xml dosyalarımızda tüm IIS ayarlarımız bulunmaktadır. Şimdi istediğimiz makinede import işlemini gerçekleştirebiliriz. Aşağıdaki kod önce Application Pool tanımlamalarını sonra site tanımlamalarını oluşturacak şekilde hazırlanmıştır.</p>



<p></p>



<pre class="EnlighterJSRAW" data-enlighter-language="powershell" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">$appcmd = $Env:WinDir+'\system32\inetsrv\appcmd.exe'

get-content "c:\pool.xml" | &amp; $appcmd add apppool /in

get-content "c:\site.xml" | &amp; $appcmd add site /in</pre>



<p><strong>PoPowerShell Result:</strong></p>


<p>APPPOOL object “DefaultAppPool” added<br />APPPOOL object “Classic .NET AppPool” added<br />APPPOOL object “.NET v2.0 Classic” added<br />APPPOOL object “.NET v2.0” added<br />APPPOOL object “.NET v4.5 Classic” added<br />APPPOOL object “.NET v4.5” added<br />APPPOOL object “OrnekSite” added<br />SITE object “Default Web Site” added<br />SITE object “OrnekSite” added</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/powershell-ile-iis-export-ve-import/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ARAMA ALGORİTMALARI Giriş ve Temel Kavramlar</title>
		<link>https://blog.ahmetozgunozcan.com.tr/arama-algoritmalari-giris-ve-temel-kavramlar/</link>
					<comments>https://blog.ahmetozgunozcan.com.tr/arama-algoritmalari-giris-ve-temel-kavramlar/#respond</comments>
		
		<dc:creator><![CDATA[Ahmet Özgün ÖZCAN]]></dc:creator>
		<pubDate>Sat, 07 Dec 2019 14:12:55 +0000</pubDate>
				<category><![CDATA[Algorithms]]></category>
		<category><![CDATA[search algorithms]]></category>
		<guid isPermaLink="false">http://blog.ahmetozgunozcan.com.tr/?p=1576</guid>

					<description><![CDATA[&#8220;Bilgi seti içerisinde bir anahtar sözcüğe dayalı olarak bilgiye erişme  ve başka bilgileri de elde etme işlemidir.&#8221;  Sayısal ortamdaki bilgilerin(verilerin)  anlamlı olarak kullanılması ve bu bilgiler ile işlemler gerçekleştirilmesi için bilginin var olup olmadığı varsa bellekte ya da veri seti içerisinde nerede olduğunun önemi vardır. Yani bilgiyi aramak ve bulmak gerekir.  Ancak bilginin türü ve [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p></p>



<p></p>


<div class="mks_pullquote mks_pullquote_left" style="width:300px; font-size: 24px; color: #ffffff; background-color:#000000;">Arama</div> <span style="color: #808080;"><em>&#8220;Bilgi seti içerisinde bir anahtar sözcüğe dayalı olarak bilgiye erişme  ve başka bilgileri de elde etme işlemidir.&#8221;  </em></span>Sayısal ortamdaki bilgilerin(verilerin)  anlamlı olarak kullanılması ve bu bilgiler ile işlemler gerçekleştirilmesi için bilginin var olup olmadığı varsa bellekte ya da veri seti içerisinde nerede olduğunun önemi vardır. Yani bilgiyi aramak ve bulmak gerekir.  Ancak bilginin türü ve bulunduğu ortama göre bir çok değişik yöntem ile arama işlemi gerçekleştirilir.  İşte bu yöntemlerin bir çoğu kabül görmüş bilinen arama algoritmalarıdır. Bu ders serimizde bu algoritmalar üzerinde tek tek inceleme yapmaya gayret göstereceğiz.</p>
<p>Ardışıl Arama (Sequential Search), en yalın arama yöntemidir. Bir veri seti içerisinde aranan veriyi bulmak amacıyla baştan sona doğru  yapılan tarama işlemidir. Kodlaması çok basittir ancak çalışma hızı çok düşüktür.  Genelde ikili arama algoritmaları yaygın olarak kullanılır.</p>
<p>Bir çok arama algoritmasında aşağıdaki üç husus dikkate alınır.</p>
<ul>
<li>Bellek kullanımı</li>
<li>Geçen zaman</li>
<li>Algoritmanın okunurluğu</li>
</ul>
<p>Veri setinin büyüklüğü,modeli ve arama işleminin gerçekleştirileceği ortama göre bu 3 hususta öncelik değişkenlik gösterir.</p>
<p>Şimdi arama algoritmalarında kullanılan bazı kavramlardan bahsedelim. Ayrıca veri seti önceden sıralı ise arama işlemi daha basit olacaktır ya da arama algoritması değişiklik gösterecektir.</p>
<p><strong>Anahtar Sözcük (Keyword):</strong> Arama işlemi belli bir veya birkaç bilgi için gerçekleştirilir. Bu bilgi parçası bir sayısal veri, cümle, tarih, vb. olabileceği gibi tüm bunların biraraya gelmesinden de oluşabilir. Anahtar sözcükler genelde küçük ve sadedirler. Küçüklük ve sadelikleri aksi yönde değiştikçe algoritmaların sonuç üretmesi de zorlaşacak ve zaman alacaktır.</p>
<p><strong>Harici Arama( External Search): </strong>Arama işleminin gerçekleştirileceği veri seti eğer bir disk/disket/ usb/ cd ve harici bir saklama biriminde tutuluyor ise bu verinin arama işlemine harici arama denir.</p>
<p><strong>Dahili Arama( internal Search): </strong>Arama işleminin gerçekleştirileceği veri seti RAM gibi erişimi çok hızlı belleklerde tutuluyor ise bu verinin arama işlemine dahili arama denir.</p>
<p>Yukarıda tanımını yaptığım harici ve dahili arama, algoritmanın seçimini en çok etkileyen özelliklerden bir tanesidir. Harici arama işlemlerinde verilerin yer değişiminin az olmasını sağlayan algoritmalar seçilir. Çünkü harici depolama birimlerinde bu işlemler daha yavaş olacaktır. Kullanacağınız arama algoritması ne kadar hızlı olursa olsun çok fazla yer değişimi yapıyor ise yavaş işlem yapacağından olumlu sonuç alamayacaksınız. Dahili arama işlemlerinde ise verinin bellekte tutulamayacak kadar büyük olmaması gerekir.</p>
<p><strong>Birincil Anahtar Sözcük: </strong>Anahtar sözcüğün aldığı değerin her kayıt için farklı olmasıdır. Birincil anahtar sözcük bir veri setinde aranırken ilk bulunduğu yerde arama algoritması tamamlanır. Diğer veri öğelerine bakılmaz.</p>
<p><strong>İkincil Anahtar Sözcük: </strong>Farklı kayıtlar için aynı anahtar sözcüğün kullanılmasıdır. İkincil anahtar sözcük bir veri setinde aranırken tüm veri setinde arama algoritması tamamlanır.</p>
<p>Örneğin bir personel uygulamasında T.C. Kimlik Numarası birincil anahtar sözcüktür. Ancak personel adı ikincil anahtar sözcüktür.</p>
<p>Ayrıca arama algoritmalarını hızlandırmak adına bir çok düzenlemeler mevcuttur. Veri tabanında kullanılan indexler, konsolide edilmiş datalar bunlara örnektir.</p>
<p>Arama algoritmaları 3 temel sınıfta toplanır.Bunlar;</p>
<ol>
<li>İkili Arama</li>
<li>Bir Çırpıda Arama</li>
<li>Doğrusal Arama</li>
</ol>]]></content:encoded>
					
					<wfw:commentRss>https://blog.ahmetozgunozcan.com.tr/arama-algoritmalari-giris-ve-temel-kavramlar/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
