28 Mayıs 2009 Perşembe

Veri Yapıları ve Algoritmalar Ders Notları


Hacettepe Üniversitesi Bilgisayar Mühendisliği Bölümü, Veri Yapıları ve Algoritmalar 1 ve 2 derslerinin ders notlarıdır.
Derste kullanılan defter fotokopisinin bilgisayara geçirilmesiyle oluştu. Ayrıca ders kitabı olarak kullanılan Ellis Horowitz 'in "Fundamentals of Data Structures in C" kitabından da istifade edildi. Bir de dersteki diyaloglar eklendi.
Malum, piyasada Veri Yapıları alanında bir Türkçe kaynak boşluğu var. Bu notlar mühendislik öğrencilerinin bu ihtiyacını bir yere kadar görecektir. 

Bil234 - Veri Yapıları ve Algoritmalar 2  | alternative (Hâlen yapılacak değişiklikler olmasına rağmen tamdır denebilir)


Ders notu deyip geçmeyin, küçük bi kitap gibi oldu. Önsözü bile var :D

Not: Mart 2012'de notların fotokopide dolaşan halini kimin yazdığını öğrendim. Rukiye (Sütbaş) Çelik Hanım'a verdiği yoğun emekten ötürü buradan teşekkür ediyoruz.


Önsöz (vya2)
Elinizde bulunan bu ders notları, Hacettepe Üniversite Bilgisayar Mühendisliği Bölümü’nde okutulan Veri Yapıları ve Algoritmalar 2 dersindeki konuları içermektedir. Yazılanlar, büyük ölçüde defterden, dersteki diyaloglardan ve ders kitabından (Ellis Horowitz – Fundamentals of Data Structures in C) alınmıştır
Oluşum…
Bu notlar; öncelikle Yasin KAVAK’ın, fotokopisi elden ele dolaşan Veri Yapıları defterinin sanal ortama aktarılmasıyla oluşmaya başladı. (Yasin KAVAK’a kalıcı teşekkürler…) Fotokopi makinelerinde gittikçe solan o siyah‐beyaz sayfalar; şekiller renlendirilerek ve kodlar MinGW & Eclipse C/C++ editörlerinden âşina olduğumuz vurgu ve renklendirmelere uygun şekilde biçimlendirilerek daha ilgi çekici ve daha anlaşılır hâle getirilmeye çalışıldı.
Defterdeki notlarla yetinilmedi, 2008‐2009 güz döneminde Mustafa hocamızın verdiği Veri Yapıları dersleri bilfiil takip edildi. Bu derslerde defterden fazla olarak edinilen birikim de notlara yansıtılmaya çalışıldı. Hocamızın, ‘görmüş‐geçirmiş bir mühendisin genç meslektaşlarına birikimlerini aktarması’ sadedinde ders esnasında bizlere sunduğu ufuk açıcı görüşlerinin de yer yer dâhil edilmesi notları renklendirdi ve derse mühendislik ruhu, ders notlarına ayrı bir zenginlik kattı. Kendisine ait cümleler, belki ufak düzeltme ve uyarlamalarla, ama büyük çoğunlukla hocamızın ağzından, kendine has nükteli üslûbu özellikle korunarak aktarılmaya çalışıldı.
Tüm bunlara ek olarak; notlardan istifade etmek isteyenleri araştırmaya sevk etmede bir ilk adım, bir teşvik olması amacıyla ek bilgiler eklendi; konular Wikipedia ve Vikipedi ağırlıklı dış bağlantılarla beslendi. Arzu edenler, konuyla ilgili daha detaylı bilgilere açılan bir kapı olarak bu bağlantılara başvurabilecekler…
2009 ders yılında sınavlarda sorulan sorular ve öğrenci çözümleri de en sona bir ek olarak eklendi.
Amaç ve Sonuç…
Bu ders notunun oluşumu öncelikle kişisel fayda amaçlanarak başlamıştır. Daha sonra ise yalnızca herkesin faydalanabileceği bedava bir kaynak ortaya koyma maksadının dışına taşmadan; severek isteyerek, içten gelerek, ama bir görev bilinciyle devam ettirilerek oluşturulmuştur. Sonuçta, yapanı da okuyanı da memnun eden güzel bir gayri resmi eser meydana gelmiş oldu.
Teşekkürler...
Öncelikle veri yapıları ve algoritmaların Bilgisayar Mühendisliği’nin can damarı mesabesinde olduğunu anlamamıza yardım eden Mustafa EGE hocamıza…
Dersin standardı hâline gelmiş defterinden bolca faydalandığımız Yasin KAVAK arkadaşımıza ve varsa kendisinin faydalanmış olabileceği, bilemediğimiz daha eski defter sahiplerine…
Yanlışları ve eksikleri çekinmeden söyleyen ve bu iyiliklerinden ötürü teşekkürü gerçekten hak eden tashihçi arkadaşlarıma…
“%60’a %40” sloganıyla yaptığımız işin bir kıymeti olduğunu zihnimde somutlaştıran girişimci ruhlu arkadaşlarıma…
Notların oluşumu döneminde (özellikle sınav zamanlarında) her köşe başında beni yakalayıp memnuniyetlerini dile getirerek gazıma gaz katan, gayretimi diri tutan bölüm arkadaşlarıma…
Ve “İndirilme sayısı: 180” sayısına bir bir artırarak katkı yapan her ferde bir bir teşekkür ederim.
Muhammed DEMİRBAŞ - Ankara 2009


23 Mayıs 2009 Cumartesi

Hangi Web Tarayıcıyı Kullanıyorsunuz?


HUBBM haber grubunda yazmıştım:

Ben uzun süredir Opera kullanıyorum. Zaman zaman Firefox ve Chrome kullanma denemelerim de oluyor tabi. Firefox'a kötü diyemem. Ama bence Opera'nın eline su dökemez.

Şimdi anlatacaklarım biraz Opera methiyesi olacak ama baştan belirteyim komisyon falan almıyorum :) Sadece web tarayıcılarını tanımak için bi fikir alışverişi / beyin fırtınası olsun maksadıyla konuyu açtım.

Sadede gelelim. Bi kere Opera kullanımı rahat. Kendime evimde hissediyorum. Internet Explorar'da bi yere basacan da hemen yanlış bi şeyler olacak gibi diken üstünde duruyorsun. Firefox'ta da çok rahat ettiğimi söyleyemem. Bence en önemli etken budur, diyebilirim. Ve bunu uzun uzun açabilirim:

Opera'da daha rahat kullanım için düşünülmüş farklı özellikler var. Mesela Opera açıldığında Hızlı Erişim özelliği sayesinde kendi belirlediğiniz 9 siteye tek tıkla girebiliyorsunuz. Yer imleri ya da Sık Kullanılanlar gibi bi menüden site aramayla vakit geçirmiyorsunuz. (Tabi kullanmak isterseniz yer imleri de var) Buna benzer bi özellik Google Chrome'da var. Ama sık kullanılandığınız siteleri listeliyor. Sizin dahliniz yok.

Çoklu sekme özelliği: Artık her tarayıcıda var. Ama opera'da sekmeler açıkken Opera'yı kapatırsanız tekrar açtığınızda kaldığınız yerden devam edebiliyorsunuz. Firefox'ta yanlış bilmiyorsam buna benzer bi özellik 3. sürümüyle eklendi.

Sonra Opera'da oturum kaydetme özelliği var. Mesela bi A konusunu araştırırken 15 tane sekme açtınız. Bi de yeni bir pencerede B konusuyla ilgili 20 sekme açtınız. Bunları ayrı ayrı kaydedip daha sonra istediğiniz biriyle çalşmaya devam edebiliyorsunuz. Yani bir tıkla o kaydettiğiniz 20 sekme açılıveriyor.

Bi de belki küçük ama beni mest eden bi özellik: "Yapıştır ve git". Adres çubuğuna ya da "Google'da ara" çubuğuna bişey yapıştırdığınız zaman komutu göndermek için enter'a basmanız gerekiyor. Tabi bu diğer tarayıcılarda. Opera sizin yerinize enter'a da basıyor :)

Firefox'un eklentileri gibi Opera'nın da "bileşenleri" var. 3. parti gadgetlar...

Özel fare hareketleri olan bir tarayıcı daha bilmiyorum. Mesela farenin bir sol bir sağ tuşuna hızlıca peşpeşe basarsanız "İleri", önce sağ sonra sola basarsanız "Geri" komutu vermiş oluyorsunuz. Firefox'taki gibi klavyeden Alt tuşunu bulup basılı tutarken sol/sağ oklara basmak için başınızı klavyeye eğmeniz gerekmiyor. Ya da fareyle ekranın belli biyerindeki ileri-geri tuşlarına nişan almak...

Opera'da yolunuz açık. Herşey daha verimli, hızlı ve rahat çalışmanız için tasarlanmış. Çok güzel.

Ha bi de hız deyince en hızlı tarayıcı da Opera'ymış diye bi söylenti dolaşıyo... 


21 Mayıs 2009 Perşembe

[BİR KİTAP] Yalnızca Eğlenmek için - Linus Torvalds


Okulun kütüphanesinden aldım ve finallere aldırmadan bi çırpıda okudum. (ya da bi kaç çırpı diyelim)

Kitap, Linux'un mucidi-yazarı-babası olan Linus Torvalds'ın hayatını anlatıyor. Sıkıcı/soğuk bir biyografi çalışması değil, çünkü anlatan Linus'un kendisi. Bir sohbet havasında bitiveriyor koca kitap.
Sıkıcı değil dedim ama, kitap yazma fikrinin nasıl çıktığını anlatan tiyatrovâri ilk kısmı bitirmeden kitabı bırakıyor
dum az kalsın. Çok sıkıcı ve gereksiz gelmişti çünkü. Sonra takip eden bölümlerin tiyatro tarzı yazılmadığını gördüm ve kitaba bir şans daha verdim. Sabrettim, okumaya devam ettim.
İlk bölümün daha ilk sayfaları,  fikrimi değiştirmeye yetti: gerçekten "okunası kitap"tı. Linus'un esprili (belki sadece bilgisayar tutkunlarının espri anlayışı bağlamında esprili) üslubu, yaşanmış bir devrimin öyküsünü daha bir cazibeli kıldı. Kitap aktı, gitti. Son kısımlardaki bilişim hukuku/felsefesi yüklü sayfalara kadar da zevkle devam etti. Son sayfalar da belki kötü değildi, ama beni pek açtığını söyleyemem.
Linus, hayatımızdaki motivasyon kaynaklarını basitçe 3 maddede özetliyor. (Bu, kendi kuramı tabii ki...) :
1 - Yaşamda var olmak
2- Toplumda bir yeri, itibarı olmak; bir topluluğun parçası olmak.
3- Eğlenmek
Linux'un nasıl olup da gönüllü binlerce kişi tarafından bu kadar benimsenerek hiç para almadan geliştirildiğini bu bağlamda açıklıyor. "Bilgisayarı olan herkes az-çok "yaşamda var" olacak refah seviyesindedir. Bilgisayar delileri, gününü odasına kapanıp bilgisayarının başında geçiren kişiler olduğu için Linux için kod geliştirdiklerinde hem bir oluşumun parçası olmak suretiyle toplumsallaşma güdüsüyle güdülenmiş oluyorlar; hem de bu onlara zevk veriyor, eğleniyorlar." diyor.
Elbetteki anlatmaya daha öncesinden, tâ çocukluğundan başlıyor.
7 yaşındayken, İstatistik profesörü olan dedesinin onu kucağına oturtup klavyeden bilgisayara yazılması gereken istatistikle ilgili şeyleri girdirdiğini...
Dedesi öldüğünde ise bilgisayarın yeni sahibinin tartışmasız kendisi olduğunun ailece kabul edildiğini...
10 yaşlarında, akranları bilgisayarla henüz tanışmamışken, Assembly diliyle kendisine bilgisayar oyunları yazdığını...
Çocukluğunu bilgisayar başında oturarak ve (tâ üniversitede asistan olana kadar) kız arkadaşı olmadan geçirdiğini...
Annesinin "Linus'u yetiştirmek çok kolay oldu. O dolabında bilgisayarıyla sürekli haşir-neşirdi. Arada bir içeri makarna atarsanız mutlu oluyordu." dediğini...
Bilgisayar sektörünün donanımlar açısından ilerlemesiyle bilgisayarını yükseltme gereksinimi duyduğu için taksitle bilgisayar aldığını...
3 yıl boyunca ödeyeceği taksitlerin 1 yıl sonra Linux çıktığında Linux severler arasında toplanan parayla ödendiğini...
Linux projesinin ilk başta kendi kişisel kullanımı için bir terminal emülasyonu olma niyetiyle oluştuğunu...
İşletim sistemine dönüşünce ona hem FreeX'i çağrıştıran hem de sefiller manasına gelen Freaks ismini vermeyi düşündüğünü...
"Hayatımı değiştiren kitap" dediği "Operating Systems - Design and Implementation" kitabının yazarı ve Minix'in de programcısı olan Andrew Tanenbaum ile e-posta listelerinde yaşadıkları gerginlikleri...
Linux kullanıcı kitlesi çığ gibi büyürken artan şöhretin kendisini pek de değiştirmediğini (ama şöhretin iyi bişey olduğunu)...
Ve günün birinde -belki 20 yıl sonra- Linux'un devrinin de kapanıp yerine Fredix ya da Diannix gibi bir isimle yepyeni fikirlerle yeni bir işletim sisteminin çıkmasını memnuniyetle karşılayacağını...
Yine de o gün, işlerin eskisi gibi olmayacağını, Linux'un dünyaya önceden yapılamayacağı iddia edilen yeni bir şeyler öğrettiği gerçeğinin kendisine huzur verdiğini...
Ve hayatıyla, gelişmeler karşısındaki tavrıyla, piyasayla ve hacker'larla ilgili daha birçok ayrıntıyı kitabında paylaşıyor.
Mesleğini seven ve eğlenceli bulan tüm bilgisayar tutkunlarına tavsiye ederim;
Yalnızca eğlenmek için...

WSO2 ESB + ClientAccesPolicy.xml + CrossDomain.xml

ClientAccesPolicy.xml and CrossDomain.xml files have to be found at root of your services Silverlight and Flex clients to be able to acce...