26 Ocak 2014 Pazar

Kent Beck TDD adımları

Leave a Comment


Kent Beck, yazmış olduğu Test-Driven Development Example adlı kitapta TDD için atılması gereken adımların şunlar olduğunu belirtmiştir :

1) Hemen bir test oluştur.

2) Testleri çalıştır ve eklenen son testin çalışmadığını gör.

3) Testin çalışması için küçük bir değişiklik (refactoring) yap.

4) Testleri çalıştır ve tüm testlerin hatasız bir şekilde çalıştığını gör.

5) Tekrarları yok et.
Read More

25 Ocak 2014 Cumartesi

Extreme Programming (XP) nedir? XP değerleri nelerdir?

Leave a Comment
Extreme Programming (XP); çevik süreçlerin en çok tercih edilenlerinden bir tanesidir. 1996 yılında Chrysler firması bünyesinde, Kent Back ve arkadaşları tarafından temeli atılmıştır.

XP projelerinde müşteri ve müşteri gereksinimleri merkezi rol oynar. Yazılım geliştirilirken değişen müşteri isteklerine ayak uydurulabilir. Bu konvensiyonel yazılım geliştirme yöntemlerinde mümkün değildir. Çünkü konvensiyonel yöntemlerde proje başlangıcında gereksinimler tüm detaylarıyla kağıda dökülür ve ileride değişiklik yapılmasına izin vermez.

XP projelerinde bürokrasi ve formalite asgari seviyeye çekilmeye çalışılır. Çünkü çevik olabilmek için olabildiğince az yükle yola çıkmak gerekir. Bu yüzden proje öncesi çok büyük çapta dökümantasyon veya tasarım yapılmaz. Ancak bu hiç yapılmadığı anlamına da gelmez.

XP Değerleri


XP, dört değer üzerine kuruludur. Bunlar; Basitlik (Simplicity), İletişim (Communication), Geridönüm (Feedback), Cesaret (Courage).


Read More

24 Ocak 2014 Cuma

JavaScript klavyeden girilen sayının faktöriyelini hesaplama

Leave a Comment


JavaScript ile klavyeden bir sayı girilmesini isteyeceğiz ve girilen sayının faktöriyelini hesaplayıp ekranda göstereceğiz.

İlk olarak prompt komutu ile klavyeden girilen sayıyı alıyorum ve bunu bir değişkene atıyorum.

var sayi = prompt("Sayıyı girin : ");

Ardından carpim adında bir değişken oluşturuyorum ve başlangıç değerine 1 veriyorum.

var carpim=1;

Şimdi 1'den başlayarak sayi değişkenine kadar birer birer artan bir for döngüsü oluşturuyorum.

for(var i=1;i<=sayi;i++)
{


}

Döngünün içinde carpim değişkenini i değişkeni ile çarpıyorum ve sonucu carpim değişkenine yeni değer olarak atıyorum.

for(var i=1;i<=sayi;i++)
{
carpim = i * carpim;

}

Son olarak çıkan sonucu göstermek için document.write komutunu kullanıyorum.

document.write("<b>" + sayi + "</b> sayısının faktöriyeli : <b> " + carpim + " </b>");
Read More

Java - JFrame'ler arası geçiş

2 comments
Bu yazıda Java'da frameler arası geçiş işleminin nasıl yapıldığını anlatacağım.

Frame1 ve Frame2 adında iki frame olduğunu düşünelim. Frame1 üzerinde bir butona tıklandığında Frame2'nin açılması işlemini gerçekleştireceğiz.

Frame1 adında yeni bir JFrame oluşturuyorum. İçerisine bir JButton koyuyorum.



Şimdi Frame2 adında bir JFrame oluşturuyorum. Bir JLabel ekliyorum.


Frame1 içindeki butona çift tıklayarak butonun actionPerformed metoduna aşağıdaki kodu yazıyorum.

Frame2 frame = new Frame2();
frame.setVisible(true);

Frame1'i çalıştırıyorum.



Butona tıklıyorum ve Frame2 açılıyor.






Read More

Shannon - Fano sıkıştırma algoritması

1 comment
Veri sıkıştırma algoritmalarından Shannon-Fano algoritmasının nasıl kullanıldığını anlatacağım.

Daha önce Huffman Kodlama yazısında Huffman veri sıkıştırma algoritmasını anlatmıştım.

Shannon-Fano algoritması da Huffman algoritmasına benzer. Huffman da olduğu gibi olasılıklar büyükten küçüğe doğru sıralanır. Daha sonra olasılıklar toplanır ve ikiye bölünür. İkiye bölerken olasılık toplamlarının birbirine en yakın şekilde bölünmesi gerekmektedir.

Bu şekilde anlatıldığında tam olarak anlaşılamayabilir ancak örnek üzerinden anlattığımda ne kadar basit olduğunu göreceksiniz.

Örnek

A, B, C, D ve E olaylarımız olsun. Bu olayların frekansları da sırasıyla 6, 7, 15, 6 ve 5 olsun.

İlk olarak frekansları büyükten küçüğe doğru sıralıyoruz.


Şimdi frekansları birbirine en yakın olacak şekilde ikiye bölüyoruz. 

15 + 7 = 22 ve 6 + 6 + 5 = 17 yani 22 ve 17 birbirine en yakın olduklarından dolayı B'den sonra bir çizgi çiziyorum ve çizginin üstünde kalanlara 1 altında kalanlara 0 yazıyorum.


Aynı işlemi tekrarlamaya devam ediyorum. Çizginin yukarısında iki tane olay kaldığı için tek bir çizgi çiziyorum ve C'nin yanına 1 B'nin yanına 0 yazıyorum.

Aşağı kısımda ise tekrar ikiye bölmeye devam ediyorum. 6+6 / 5 veya 6 / 6+5 şeklinde bölünebilir. Ancak toplamların birbirine en yakın halini almak gerektiğinden 6 / 6+5 şeklinde bölüyorum. Yani A'nın altından bir çizgi çekiyorum. Çizginin üstüne 1 altına 0 değerini veriyorum.


C, B ve A ile işimiz bitti. Yalnızca D ve E'nin arasına bir çizgi çiziyorum ve D'nin yanına 1, E'nin yanına 0 ekliyorum.


İşlemlerin sonuna geldik. Şimdi olayları Shannon-Fano kodlarıyla ifade edelim.

C : 11
B : 10
A : 01
D : 001
E : 000
Read More

23 Ocak 2014 Perşembe

JavaScript fonksiyon kullanımı

Leave a Comment


Bu yazıda JavaScript'te fonksiyonların kullanımını anlatacağım.

Fonksiyon; matematikte değişken sayıları girdi olarak kabul edip bunlardan bir çıktı sayısı oluşmasını sağlayan kurallardır.

JavaScript'te fonksiyon oluşturmak için function komutu kullanılır.

Şimdi bir HTML sayfası oluşturuyorum. <script> ... </script> etiketlerimi ekledikten sonra arasına aşağıdaki kodları yazıyorum.

function goster()
{
document.write("Fonksiyon çalıştırıldı.");
}

Yukarıdaki kod ile goster adında bir fonksiyon ürettim. HTML sayfamı tarayıcıda çalıştırdığımda ekranın boş olduğunu görüyorum.

Şimdi sayfaya goster(); kodunu ekliyorum. Sayfayı tekrar çalıştırıyorum ve ekrana "Fonksiyon çalıştırıldı." yazıldığını görüyorum.

Burada goster() komutuyla fonksiyonu çalıştırdım. Fonksiyonlar bu şekilde çalıştırılmadıkları sürece içlerinde yazılan kodlar da çalışmıyor.

Parametre kullanma

Yukarıda normal bir fonksiyon oluşturmayı öğrendik. Şimdi fonksiyona dışarıdan parametre göndermeyi öğreneceğiz.

function daire_alani_hesaplama(yaricap)
{
var r = yaricap;
var alan = 3 * r * r;
document.write(alan);
}

Koduyla daire alanını hesaplayan bir fonksiyon oluşturuyorum. Fonksiyon dışarıdan yaricap değişkenini alacak.

daire_alani_hesaplama(4); koduyla da fonksiyona 4 değerini gönderiyorum. Sayfayı çalıştırdığımda ekrana 48 yazıldığını görebilirim.

daire_alani_hesaplama(5); şeklinde kaydedip çalıştırırsam ekrana 75 yazılır.
Read More

PHP ile XML dosyasından veri çekme

Leave a Comment


Şu ana kadar PHP ile ilgili birçok yazı yayınladım ancak XML dosyasından veri okuma ile ilgili hiçbir şey anlatmadım. Bu yazıda XML dosyasından PHP ile veri okumayı anlatacağım. Bu işlem gerçekten çok basit.

Öncelikle kullanicilar.xml adında bir dosya oluşturuyorum. Dosyamın içerisine aşağıdaki kodları yazıyorum.

<kullanicilar>

<kullanici>
<ad>Ahmet</ad>
<yas>21</yas>
</kullanici>

<kullanici>
<ad>Ali</ad>
<yas>24</yas>
</kullanici>

<kullanici>
<ad>Ayşe</ad>
<yas>42</yas>
</kullanici>

<kullanici>
<ad>Mehmet</ad>
<yas>13</yas>
</kullanici>

</kullanicilar>

Dosyamı kaydediyorum ve şimdi bir PHP dosyası oluşturuyorum.

Oluşturmuş olduğum PHP dosyasında ilk olarak XML dosyasına bağlanmam gerekiyor. Bunun için simplexml_load_file() fonksiyonunu kullanıyorum.

$xml = simplexml_load_file("kullanicilar.xml"); satırı ile XML dosyasına bağlandım.

Şimdi sıra kullanıcı bilgilerini görüntülemeye geldi.

echo $xml->kullanici[0]->ad; komutunu yazarak sayfayı çalıştırırsam ilk kullanıcının adının ekrana geldiğini görebilirim. Yani ekrana Ahmet yazılır.

Şimdi bir for döngüsü oluşturuyorum ve bu döngü içinde tüm kullanıcıların bilgilerini ekranda gösteriyorum.

$xml->kullanici[0]->ad;
for($i=0;$i<=3;$i++)
   {
echo $i . ". kullanıcı : <b>" . $xml->kullanici[$i]->ad . "</b> yaş : <b>" . $xml->kullanici[$i]->yas . "</b><br />";
   }

Ekran görüntüsü



Read More

Microsoft SQL Server error:26 hatasının çözümü

Leave a Comment
Microsoft SQL Server kullananların karşılaşabileceği hatalardan bir tanesi aşağıdaki resimde görmüş olduğunuz hata.


Bilgisayarınıza yüklediğiniz bir programdan sonra veya yapmış olduğunuz güncelleştirmelerden sonra bu hatayla karşılaşabilirsiniz. Hatanın oluşmasının sebebi Windows hizmetlerinde SQL Server'ın statüsünün değişmesi. Sorunu çözmek için de SQL Server'ı başlatmak yeterli.

Bunun için bilgisayarıma sağ tıklayıp Yönet seçeneğine tıklıyoruz.


Aşağıdaki resimde görüldüğü gibi Hizmetler sekmesini seçiyoruz.


SQL Server (SQLEXPRESS) adlı hizmeti bularak sağ tıklayıp Başlat dememiz yeterli oluyor.




Read More

PHP ile Fibonacci dizisi oluşturma

Leave a Comment


Bu yazıda Fibonacci serisinin PHP'de oluşturulmasını ve ekrana yazılmasını anlatacağım.

Fibonacci dizisi ile ilgili detaylı bilgiyi http://tr.wikipedia.org/wiki/Fibonacci_dizisi adresinden edinebilirsiniz. Kısaca bahsetmek gerekirse Fibonacci dizisi, iki sayı ile başlar ve ardından gelen sayı, son iki sayının toplamı olur. Dizinin 4 - 4 şeklinde başladığını düşünelim. Bu durumda dizi;

4, 4, 8 (4+4), 12 (8+4), 20 (12+) ... şeklinde devam eder. Şimdi bu işlemi PHP'de yapacağım.

İlk olarak yeni bir dizi oluşturuyorum.

$dizi = array();

Dizinin 0 ve 1 indisli yani birinci ve ikinci elemanlarına 4 değerini atıyorum.

$dizi[0] = 4;
$dizi[1] = 4;

Daha sonra bir for döngüsü oluşturuyorum. Döngüyü 2'den başlatıyorum ve kendisinden önceki son 2 elemanı toplayarak bu değişkene atıyorum.

for($i=2;$i<=10;$i++)
{
$dizi[$i] = $dizi[$i-1] + $dizi[$i-2];
}

Dizi elemanları oluşturuldu. Şimdi sıra bunları ekranda göstermeye geldi. Tekrar bir for döngüsü oluşturuyorum. Bu döngüyü 0'dan başlatıyorum çünkü tüm elemanların gösterilmesini istiyorum.

for($k=0;$k<=10;$k++)
{
echo $dizi[$k] . "<br />";
}

Kodun tamamı

<?php

$dizi = array();

$dizi[0] = 4;
$dizi[1] = 4;

for($i=2;$i<=10;$i++)
{
$dizi[$i] = $dizi[$i-1] + $dizi[$i-2];
}

for($k=0;$k<=10;$k++)
{
echo $dizi[$k] . "<br />";
}

?>

Read More

30 Aralık 2013 Pazartesi

C# - ListBox'taki değerlerin toplamını ve ortalamasını bulma

Leave a Comment
C#'ta listbox içindeki sayıların ortalamasını alan programın nasıl yazılacağını anlatacağım.

Yeni bir form oluşturuyorum ve içine bir ListBox ekliyorum.


Şimdi listbox'a birkaç tane eleman ekliyorum.


Bir buton ekliyorum ve butonun click eventına kodları yazmaya başlıyorum.


Öncelikle int türünde toplam adında bir değişken oluşturuyorum. Başlangıç değerini 0 yapıyorum. double türünde de ortalama adında bir değişken oluşturuyorum. ortalama değişkeninin türünün double olmasının sebebi küsüratlı sayı olabilme ihtimali.

int toplam = 0;
double ortalama;

Daha sonra bir for döngüsü oluşturuyorum. Döngü sıfırdan başlayarak listbox'ın eleman sayısına kadar gidiyor.

Eleman sayısını bulmak için listBox1.Items.Count komutunu kullanıyorum.

for (int i = 0; i < listBox1.Items.Count; i++)

Şimdi yapmam gereken döngü içerisinde elemanları tek tek toplam değişkenine eklemek.

listBox elemanlarını alırken listBox1.Items[i] komutunu kullanıyorum.

for (int i = 0; i < listBox1.Items.Count; i++)
            {
                toplam = toplam + Convert.ToInt32(listBox1.Items[i]);
            }

Toplama işlemini gerçekleştirdim. Artık sadece ortalamayı bulmak kaldı.

ortalama = toplam / listBox1.Items.Count;  koduyla ortalamayı buluyorum.

MessageBox.Show("Ortalama : " + ortalama.ToString()); komutuyla da bulduğum ortalamayı gösteriyorum.

Programı çalıştırıp butona tıkladığımda ortalama gösteriliyor.


Kodun tamamı


private void button1_Click(object sender, EventArgs e)
        {
            int toplam = 0;
            double ortalama;

            for (int i = 0; i < listBox1.Items.Count; i++)
            {
                toplam = toplam + Convert.ToInt32(listBox1.Items[i]);
            }

            ortalama = toplam / listBox1.Items.Count;

            MessageBox.Show("Ortalama : " + ortalama.ToString());
        }
Read More