31 Aralık 2010 Cuma

2010'dan 2011'e

2010'u artık geride bıraktık.

*Tekel işçilerinin 78 gün süren eylemi,
*2010 Fifa Dünya kupasını İspanya'nın Hollandayı 1-0 yenerek alması ve bu süreçte Paul isimli ahtapotun maç sonuçlarını bilmesi nedeniyle kahin ilan edilmesi,
*2010 Dünya Basketbol şampiyonasının Türkiye'de düzenlenmesi ve finalde Türkiye'nin ABD'ye kaybetmesi,
*Zonguldak'ta grizu patlaması sonucu 28 kişinin hayatını kaybetmesi ve toprak altında kalan 2 işçiye aylarca ulaşılamaması,
*Gazze'ye yardım götüren Mavi Marmara gemisine İsraillilerin çıkarma yapmasıyla gemideki 9 sivilin hayatını kaybetmesi ve Tayyip'in aylarca özür beklemesi,
*Allianoi antik kentinin üstünün kumla kapatılması ve bunu önlemeye yönelik yapılan eylemlere Çevre bakanı Eroğlu'nun herkes işine baksın aslında Allianoi diye bir yer yok demesi,
*Kpss'de kopya ortaya çıkması ve eğitim sınavının tekrarı,
*12 Eylül referandumunda yüzde 57 evet ile anayasanın bazı maddelerinin değişmesine onay verilmesi,
*2010 Avrupa kültür başkentinin İstanbul olması,
*Altın Portakal ödülünü Seren Yüce'nin yönettiği Çoğunluk filminin alması,
*60. Berlin Uluslararası Film Festivali'nde Altın Ayı ödülünü Semih Kaplanoğlu'nun yönettiği Bal isimli filmin alması,
*Dünya gündemini sarsan Wikileaks belgeleri,
*Haydarpaşa yangını...

İşte bu olayların hepsini geride bıraktık.

Yeni yılın herkese güzel umutlar getirmesiyle hoşgeldin 2011.

30 Aralık 2010 Perşembe

Bubble Sort(Kabarcık Sıralama)

Sıralama algoritmalarından Bubble Sort yani Kabarcık Sıralamanın nasıl olduğunu açıklamaya çalışacağım.
Bubble sort, sıralama algoritmaları içerisinde algoritması ve programlanması en kolay sıralama tekniğidir zannımca.

Bir sayı dizisini ele alacak olursak, bu dizide öncelikle dizinin en başındaki elemanı alırız ve bir sonraki elemanla karşılaştırırız. Büyük olanı öteleriz. Dizinin sonuna kadar bu işlemi tekrarlarız. Böylelikle en büyük sayı dizinin sonuna atılmış olur. Sonra dizinin ikinci elemanını alır yine karşılaştırma yaparak büyük olanı öteleriz. Bu işlem sürekli tekrar eder. Sonrasında dizi sıralanmış olur.




Bu algoritmayı Java koduna dökecek olursak, kod aşağıdaki gibi olacaktır.
public void bubbleSort(int[] arr) {
boolean swapped = true;
int j = 0;
int tmp;
while (swapped) {
swapped = false;
j++; // j for döngüsünde sıralanmış diziyi yeniden
for (int i = 0; i < arr.length - j; i++) //kontrol etmemek için
{
if (arr[i] > arr[i + 1]) {
tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
swapped = true;
}
}
}
}


Kolay gelsin.

Linked Lists ( Java'da Bağlı Listeler )

Bağlı liste(Linked List); her bir elemanın sahip olduğu veriye artı olarak bir de kendi tipinde bir yapıyı gösteren işaretçiye sahip olduğu veri yapısıdır. Bağlı listeler en çok kullanılan veri yapısıdır.
Listedeki her elemana düğüm daha çok kullanılan tabiriyle node adı verilir. Listenin ilk elemanına dışarıdan bir işaretçi yardımıyla ulaşılır. Java'da bu liste, ayrı bir sınıfta tutulur.

Bağlı listelerin dizilere göre avantajı, bir grup eleman arasına eleman eklemede ve bir grup eleman arasından eleman çıkarmada ortaya çıkar. Listede bu iş daha uzun ve zaman alıcıdır. Bir eleman çıkarılacağı veya ekleneceği zaman tüm dizide bir oynama yapılması gerekir. Bağlı listede ise tüm elemanlarda bir değişim söz konusu değildir. Ayrıca  her yeni eleman için hafızada yeni yer ayrılır. Dizilerdeki gibi daha önceden yer ayırmaya gerek yoktur.

Bağlı listenin çeşitleri vardır. Bunlar;

Tekil Bağlı Liste(Singly Linked Lists): Son node herhangi bir elemanı işaret etmez. Gösterdiği değer Null olur.


Dairesel Bağlı Listeler (Circular Linked Lists) : Son node ilk node'u işaret eder. Böylece dairesel bir bağ oluşur.


Çift Bağlı Listeler (Doubly Linked Lists) : Tüm elemanlar hem bir sonraki yapıyı hem de bir önceki yapıyı işaret eder. Son node un gösterdiği değer Null'dur.




Dairesel Çift Bağlı Listeler (Circular Doubly Linked Lists) : Çift bağlı listeye artı olarak son node ilk node'u işaret eder.


Hep yapılanın aksine en basit örnek değil de en karmaşık olanın java kodunu vererek işi koda dökelim şimdi.

Dairesel Çift Bağlı Listeler (Circular Doubly Linked Lists)
Node Sınıfımız:
public class Node {

String isim;
Node sonraki;
Node onceki;

public String getIsim() {
return isim;
}
public void setIsim(String isim) {
this.isim = isim;
}
public Node getSonraki() {
return sonraki;
}
public void setSonraki(Node sonraki) {
this.sonraki = sonraki;
}
public Node getOnceki() {
return onceki;
}
public void setOnceki(Node onceki) {
this.onceki = onceki;
}
}
Asıl işlemin yapıldığı CircularDoubleLinkedList sınıfımız:
public class CircularDoubleLinkedList {
Node head;

public void ekle(String isim)
{
Node yeniNode=new Node();
yeniNode.setIsim(isim);
if(head==null)
{
head=yeniNode;
head.setSonraki(yeniNode);
head.setOnceki(yeniNode);

return;
}
Node temp=head.getOnceki();
temp.setSonraki(yeniNode);
yeniNode.setOnceki(temp);
yeniNode.setSonraki(head);
head.setOnceki(yeniNode);
}
public void sil(String ad)
{
if(head==null){System.out.println("Liste boş"); return;}
Node temp=head;
while(temp.getIsim()!=ad)
{
temp=temp.sonraki; 
}
temp.onceki.setSonraki(temp.sonraki);
temp.sonraki.setOnceki(temp.onceki);

}
public void listele()
{
if(head==null)
{
System.out.println("liste boş");
return;
}

System.out.println("Listesi: ");
System.out.println(head.isim);
Node temp=head.sonraki;
while(temp!=head)
{
System.out.println(temp.isim);
temp=temp.sonraki;
}
}

}
Bu da Main sınıfımız:
public class Main {
public static void main(String[] args) {

CircularDoubleLinkedList d=new CircularDoubleLinkedList();
d.ekle("ozgur");   
d.ekle("ozan");
d.ekle("burcu");
d.ekle("metin");
d.listele();
d.sil("metin");
System.out.println();
d.listele();


}
}

Çıktı aşağıdaki gibi olacaktır.

Listesi:
ozgur
ozan
burcu
metin

Listesi:
ozgur
ozan
burcu

Kolay gelsin.

26 Aralık 2010 Pazar

Blogger Kod Renklendirme (Syntax Highlighter)

Blog yaşamımızda bayağı yer tutmaya başladı. Artık nerdeyse herkesin bir blogu var. Bilgi çokça paylaşılıyor. Tabi paylaşılan kod olunca, özellikle blogger'ın dosya yükleme işlemine izin vermemesi sebebiyle kimi zaman düzyazı halinde ya da resim halinde aktarmak zorunda kalınıyor. Bu da hiç kullanışlı olmuyor.

Şimdi bir bloga kod yazmanın nasıl daha renkli hale geleceğini paylaşacağım. Böylelikle hemen yan köşeye tıklayıp kodun tamamını kolaylıkla kopyalayabilirsiniz.

Blogunuzda, Kumanda Paneli>>Tasarım>>HTML'yi düzenle yolunu takip edin. Html de body tagının hemen altına aşağıdaki kodları yazın ve kaydedin.
Eğer dosyaları kendi sunucunuzda barındıracaksanız adres değerlerini sitenize göre değiştirmelisiniz.




















Bu işlemi gerçekleştirdikten sonra her şey hazır.

Kullanmak için ise gönderilerimizde;
Kodumuz buraya yazılacak
bu şekil bir yazım yapıyoruz.

Kolay gelsin.

8 Aralık 2010 Çarşamba

İstanbul Manzaraları

Haydarpaşa Garı, İstanbul'u simgeleyen en önemli yapılardan biri.


Kadıköy'den Haydarpaşa Garına vapur ve martılar eşliğinde bakmak.

Avea Kırmızı Kuşak olmak (AveaMasters)




2009-2010 dönemi içinde Avea Kırmızı Kuşak (şimdiki adıyla AveaMasters) olmayı başarmış biri olarak bu programın süreci hakkında bir şeyler paylaşmanın faydalı olacağını düşündüm.


Kırmızı Kuşak, üniversitelerin 2.,3.,4. ve yüksek lisans öğrencilerine yönelik Avea'nın oluşturduğu bir program. Bu program ikiye ayrılıyor. İdeavea ve Kampavea.
Bu programa internet üzerinden başvuruyorsunuz ve hemen size bir mail gönderiliyor. Mailde online testi yapabilmeniz için sisteme giriş şifreniz yer alıyor.Bu Kırmızı Kuşak programının seçme ve eleme sürecinin ilk aşaması oluyor. Sisteme girişi yaptıktan sonra karşınıza bir test çıkıyor. Bu test 20 dakika süre verilen toplamda 60 soru bulunan bir genel yetenek testi. Öncelikle hedefiniz, bu testte sorulan tüm soruları kısıtlı zaman diliminde cevaplamak. İlk eleme bu süreçte gerçekleşiyor. Sonucu sabahın erken saatinde telefon sesiyle uyanarak öğrenmiştim. Kazandığınıza dair bir telefon alıyorsunuz ve size şu tarihte panel mülakatımız olacak uygun musunuz diyerek bir onay alıyorlar. Tabi o günü değiştirme şansınız da oluyor. Gün ve saati belirledikten sonra artık bekleme sürecine geçiyorsunuz.

Avea'nın Maçka'daki binasında panel mülakat yapılmıştı.Bu mülakat için çok da takım elbise olayına girmenize gerek yok.Rahat olmanız yeter. Ben gömlek ve kot pantolon ikilisiyle idare etmiştim durumu. Belirtilen saatte orda olduğumda benim gibi yaklaşık 20 kişi bulunuyordu. Bir süre girişte bekliyorsunuz ve sonra biri gelip sizi odaların bulunduğu kata alıyor. Orada da bir süre geçirdikten sonra isimleriniz okunuyor ve 4'erli gruplar halinde odalara dağılıyorsunuz. Odaya geçtikten sonra Avea çalışanlarından iki kişi odaya giriyor. Yanınızda oturan kişiye kendinizi anlatmanız isteniyor siz de karşılıklı olarak kendinizi yanınızdaki kişiye anlatıyorsunuz. Sonra sırayla herkes yanındaki arkadaşını anlatmaya çalışıyor. Bu arada anlatılan özelliklere bağlı olarak size sorular soruyorlar. Sonrasında arkadaşınızın anlattığı şeylere ek olarak söylemek istediğiniz şeyler var mı diye soruluyor. Bu tanışma faslından sonra sırayla herkese sorular sormaya başlıyorlar.Tabi benim sürecimde masada Avea çalışanlarına en yakın oturmam sebebiyle tüm sorular ilk bana soruldu. Bu biraz da zorlu bir süreç haline geliyor. 5 yıl sonra kendinizi nerede görüyorsunuz, karşılaştığınız zorluklarla nasıl mücadele edersiniz, idol olarak gördüğünüz kişi ve nedeni gibi sorular soruluyor.Hatta hayatınızda biriyle hiç kavga ettiniz mi ve tokat attınız mı gibi bir soru da gelmişti. Tabi gerçekçi olmakta fayda var. Sorular bitince bir kaç sayfalık vaka veriliyor. Bize piyasada çıkış yapmak isteyen bir cips markası ve başvurduğu reklam yolları verilmişti. Herkese savunması için farklı bir yol verilmişti. Ben bu şirketin üniversitelerde bu marka adı altında konserler etkinlikler düzenlemesi yoluna gitmesi gerektiğini savunacaktım, diğer yollar televizyona internete ağırlık vermek veya sokaklarda tanıtım yapmak ve promosyon ürünler dağıtmak gibi şeylerdi. Herkes bir süre önünde yer alan kağıdı okudu şirketi tanıdı ve savunacağı reklam yolu üzerinde fikir yürüttü sonrasında ise herkes vakasını savunma yoluna gitti. Tabi kendi yolunuzu kabul ettirme gibi bir zorunluluğunuz yok. Hatta ben kendi yolumu pek beğenmeyip diğer fikirlere daha çok önem verdim. Sonunda bir yolu seçip orada sizi gözlemleyen Avea yetkililerine neden bu yolun en doğru yol olduğunu anlatcaktık. İçimizden biri gönüllü oldu. Tabi burada kendinizi ön plana çıkarma adına son raporu sizin vermeniz gerektiği gibi bir durum olmuyor. Hatta mümkünse her şeye atlayan biri olmayın. Bu sunum da bittikten sonra görüşme bitiriliyor. Sonrasında sonucu beklemeye koyuluyorsunuz.

Sonuç mail ile bildiriliyor. Kazandıysanız artık siz de bir Kırmızı Kuşaksınız. Sonra Kırmızı Kuşak günü adı altında ileriki süreçleri anlatmak ve Avea çalışanlarıyla tanışmak adına bir etkinliğe davet ediyorlar. Tabi buna katılmayabilirsiniz de. Sonra size siteye giriş yapabilmeniz için kullanıcı adı ve şifre gönderiliyor. Sisteme giriş yaptıktan sonra bilgilerinizi doldurup Kampavea ya da İdeavea seçeneklerinden birini seçiyorsunuz. Kampavea seçecekseniz eğer motivasyon mektubu türünden bir yazı gönderiyorsunuz. Bu yazıya bağlı olarak seçiminiz yapılıyor. Bu biraz zorlu bir aşama çünkü Kampavea'ya sadece 40 kişi katılabiliyor. Seçilirseniz eğer yeniden bir görüşme yapılıyor ve çeşitli etkinliklerin ve eğitimlerin yer aldığı bir kampa giriyorsunuz. Diğer seçenek İdeavea.İdeavea'da ise bir proje belirliyorsunuz ya da Kırmızı Kuşak sitesinden diğer üyelerin projelerine dahil olarak bir grup oluşturuyorsunuz. Toplamda 3 proje sunma hakkınız var. Bu süreçte de sunduğunuz projeler kabul görürse eğer artık Avea'nın atadığı yetkililerle projenizi geliştirmeye başlıyorsunuz.

Kırmızı Kuşak olma süreci işte bu şekilde ilerliyor. Herkese bol şans.