Programlama

Call By Reference

03.01.2008

Efendim yazma peiyodumuz oldukça uzadı bari yazmışken düzgün bir şeyler yazalım kaygısıyla şöyle teknik olarak siz okuyucularımı bilgilendirecek bir şeyler yazmak ister bu gönül. Bugünkü konumuz da Call By Reference yani türkçesi ile Referans Olarak Çağırma. Şimdi nedir bu Referans olarak Çağırma? (Referans olarak Atama şeklinde de söylenir).

Bu şudur efendim:

Şimdi diyelim ki sizin güzel bir fonksiyonunuz var. Bu fonksiyonun da çok şık bir parametresi mevcut. Yalnız bu parametre o kadar güzel bir parametre ki bu fonksyonu kullandığınız zaman bu parametreye atadığınız değer fonksiyon içerisinde değişiyorsa (başka bir değer alıyorsa) fonksiyondan değişik halde çıkıyor ve hayatına böyle devam ediyor. İşte böyle büyülü bir olay Call By Reference! Şimdi böyle kuru kuru bir b.k anlamayanlar olacaktır elbet. Şöyle güncel C# diliyle bir örnek vermek ister bu deli gönül:

Değer Olarak Atama (Call By Value) :

function degistir(int a)
{
    a = 18;
}

int b = 10;
degistir(b);
Console.WriteLine(b); // Sonuc 10 yani fonksiyon içerisinde atanan deger olmadı.

Bakınız bu fonksiyon Call By Value kullanarak aldığı a değişkeninin bir örneğini oluşturuyor. Ve artık ne yaparsa bu oluşturduğu örnek üzerinde yapıyor ve fonksiyon bitiminde bu örneği atıyor çöpe. Oysa ki;

Referans Olarak Atama (call By Reference) :

function degistir(ref int a)
{
    a = 18;
}

int b = 10;
degistir(b);
Console.WriteLine(b); // Sonuc 18 yani referans olarak atanan b değişime uğradı.

İşte bu harika örnekte "ref" anahtar kelimesi kullanılmak suretiyle Referans olarak atanan b değişkeni fonksiyon içerisinde 18 değerini almıştır. Yani referans olarak atama işleminde örnek oluşturulmaz doğrudan o değişken üzerinde işlem yapılır.

Yani böyle işte sayın okuyucular. Gelin şimdi de hangi dilde bu işin nasıl yapıldığına bakalım. Dilden dile o kadar fark ediyor ki bu meret şaşar kalırsınız :)

C# 'da yukarıdaki örnekde olduğu gibin "ref" anahtar kelimesi ile. Bir de "out" var ve ref'den farklı olarak ilk değer almamış olan değişkenleri için kullanılıyor.

Java'da durum çok dertli. Bütün her şey Değer Olarak Atama kullanıyor. Yalnız kendi sınıfınızı yazıp onun bir üyesini ayarladıktan sonra sonra değişken parametre olarak atarsanız ve atadığınız object'in üyelerini fonksyion içinde değiştirirseniz ahanda değişmiş olarak çıkıyor! yoksa kıçınızı yırtsanız nafile :)

PHP'de function deneme(&$degisken) olarak yazıyoruz.

C++'da void (int& a);

C'de void (int* a); // değişken olarak &b gibi adresini göndermemiz gerekiyor.

Javascript'de de Java'da olduğu gibi Object kullanıyorsunuz. a.deger = 10; diyip a'yı gönderiyoruz mesela.

Falan filan işte okuyun anasını satayım uf amma yazdım be!:)

Programlama

C++’ın Geleceği

13.12.2007
Biliyorum biliyorum "ne lan bu C++ aşşaaa C++ yukarı" diyorsunuz içinizden (ulan sanki milyonlar okuyor :) ama napayım sardım bir kere bu dile, iyice öğrenmeden çıkmak yok :) Bugün de dll'ler konusunda bir iki birşey yaptım artık dll kullanımı konusunda rahatım denilebilir. Aslında C++ gerçekten hayran olunacak bir dil. Mesela şu aşağıdaki kodu inceleyelim :
using namespace std;
int a;
int& getir()
{
     return a;
}
int main()
{
    getir() = 80;
   
    cout << a << endl;
    return 1;
}
bu kodun çalışması sonucunda a'nın 80 döndüğünü görmek gerçekten heyecan verici ha değil mi dostlar? Kod çalışmassa falan sakın buraya yazmayın kafadan yazdım kodu :)
Neyse şimdi bu C++ olayının gelecekte ne gibi bir hal alacağını inceleyelim. Şimdi öncelikle şöyle bir durum var. C++'ı öyle notepad ile yazıp console'dan derlemek falan büyük projelerde olacak bir iş değil. O yüzden C++ dendiği zaman akla otomatik olarak IDE'ler geliyor. Nedir bu IDE? Integrated Development Environment'dir açılımı ve entegre gelirştirme ortamı olarak çevirdim gitti.
IDE dediğimiz zaman da C++ için (hatırlatalım her dil için ayrıdır) öyle çok fazla IDE gelmez aklımıza. Aslında baya bir IDE kasılmış durumda ama şu anda piyasada lider olan 2 tane IDE var ve bunlar Borland C++ Bıuilder ve Visual C++. Bu iki IDE'yi birbirinden ayıran en önemli özellik program yapmak için kullandıkları framework'ler. Şöyle açıklıyıvereyim :
Borland C++ Builder : Efendim gönüllerin baştacı olan bu IDE'nin altyapısında deplhi'de yazılmış olan VCL (Visual Components Library) dediğimiz kütüphane vardır ki of aman allahım oooof! Muhteşem düzenli, neredeyse Dotnet Framework kadar rahat kullanılan bir kütüphanedir. C++ builder ve VCL kullanaraktan Windows Form'ları oluşturmak bunlara kod yazmak ı kadar basit o kadar hızlı gerçekleşen bir süreçtir ki hemen bu IDE'nin asıl olayının RAD (Rapid Application Development) olduğunu anlarsınız :) Yalnız bunca güzelliğin içerisinde öyle lanet öyle beter bir editoru vardır ki illallah dersiniz. İşin kötüsü bu editor'u visual assist gibi ek programlarla güzelleştiremessiniz (Ben baya bi araştırma yaptım bu konuda) öyle kötü bir görünümle yavaaaş mı yavaş çalışır durur. C++ Builder'ın bir sonraki sürümü Delphi 2006 (Kod Adı Dexter) ile bütünleşik olacak ve görünen o ki editor'un en azından görüntüsü konusunda baya bi ilerleme kaydedilmiş durumda heyecanla bekliyoruz :)
Visual C++ : İşte Microsoft'a "öyle veya böyle adamlar IDE yapmayı biliyıor kardeşim" sözlerini ithaf etmemize sebep olan IDE. Borland'dan farklı olarak MFC (Microsoft Foundation Classes) isimli kütüphaneyi bünyesinde barındırır ki MFC kullandığımız zaman aaaah ah VCL'in gözünün çapağını yalıyim! yakınmalarınu durmadan yaparız. Lakin WXWidgets, QT gibi C++ için önemli kütühanelere Borland'dan daha güzel bir destek vermektedir ve editorü... OOOOF OF! o editörü harikadır harika! Hele hele Visual Assist ile beraber kullanırsanız kodların parmaklarınızdan akıp gittiğini hissedersiniz. VCL Form design olayı ile VC++'ın editorunu birleştirmeye çalışsam da Borland'ın C++ standartları dışında kullandığı keyword'ler yüzünden (öncelikle __published keyword'u) ne yazıkki bu çabam başarısızlıkla sonuçlandı. Yeni gelecek olan Visual Studio 2005 ile MFC 5.0'ın çıkacağı ve bu kütüphanenin managed (yani dotnet tabanlı) olacağı şeklindeki haberler zaten soğuk olduğum MFC kütüphanesinden iyiden iyiye soğumama sebep oldu. Lakin hastası olduğum bir program olan Adobe Premiere programının MFC ile hazırlanmış olması da bu kütüphaneye tamamen sırtımı çevirmemi engelliyor a dostlar :)
Benim görüşüme göre MFC 5.0 Dotnet Framework'un biraz daha performanslısı olarak yoluna devam edecektir ki microsoft'un MFC'yi bitirme planlarından döndüğünü de unutmamak gerekir. Yalnız dotnet framework gibi derli toplu bir kütüphane varken ne diye managed MFC kasılır onu hiç bilemiyecem. Artık performans o kadar da ön planda değil. Hadi performans önemli ise managed'a hiç bulaşmadan C++ ile işlerimi hallederim rahatlarım be birader.
Bu arada halen gelişmekte olan Wxwidgets ve QT kütüphanelerini de unutmamak gerekir. QT'nin kodları daha çok hoşuma gitse de bir türlü tam anlamıyla kuramadım :) Wx ile bir iki bir şey yaptım ama daha taşaklı olarak tabir edebileceğimiz bir çalışma çıkmadı. Şimdilik DLL aşşağı DLL yukarı kasıyorum işte :)
Hadi yeter parmaklarım yoruldu be birader.
Programlama

ASP ne boktan bir şey yaw :)

11.10.2007

Selam yoldaşlar, 

Bu yazımızda size ASP yani Active Server Pages isimli microsoft teknolojisinden bahsedeceğiz. Hiç unutmam ASP ile ilk tanışmam 2000 yılında bir okulun web sayfası projesinde olmuştu. Tek satır kod yazmadığım halde işi kabul etmiş ve yaklaşık 9 saat kadar yemek yemeden, su içmeden bilgisayar başında kalmış ve ancak sınıftaki öğrencilerin listesini almayı başarabilmiştim :)

Daha sonraları proje yattı ve ben Macromedia Flash ağırlıklı bir şirkete girdim ve kendimi Actionscript üzerinde geliştirdim ki programlama alemine ilk dalışım Actionscript ile olmuştur denebilir. Zaman böyle akıp giderken Askerden döndüm ve kendimi yine ASP sayfalarının içerisinde buldum. Aslında askerde de şansıma web tasarım bölümünde olduğum için ASP sayfalarının içindeydim ama hali hazırda çalışan sisteme hiç dokunmadım yalnızca içerik değiştirdim :)

Neyse efendim ASP ile uğraştık durduk asker dönüşü. Sonra malumunuz üzerine iş değiştirdim ve full PHP üzerine çalışmaya koyuldum ve geldik günümüze. Şu anda tekrar ASP ağırlıklı çalışıyorum (bu arada ASP.NET de kastım) ve bunca zamandan sonra yorumum şudur.

Amuga Koyayım ASP :)

Sakın yeni bir dil öğrenme aşamasındaysanız ASP'yi seçmeyin. Doğrudan PHP ile dalın olaya. ASP.NET falan da kesinlikle PHP'nin verdiği rahatlığı vermiyor. Şimdiye kadar en hızlı proje zamanını PHP ile elde ettim hatırlatırım :) Özellikle şablon olarak yöneteceğiniz bir sayfa tasrımı yapıyorsanız yani bir proje olsun her projeye uygulayayım diyorsanız sakın sakın sakın ha inanmayın siz ona. PHP rulez kardeşler :)

Genel

Peygamber Aranıyor

13.09.2007
- Konusunda 4 yıl tecrübeli
- İngilizce bilen
- Tercihen yılana dönüşen asa sahibi
- Java bilen
Peygamberler aranıyor.

Yaw. Elektromak diye bir firma (www.elektromak.com) IT bölümü için adam arıyor. Hürriyet IK'ya eşşek kadar hem de 2. sayfadan ilan vermiş bu adamlar. Toshiba Türkiye distributoruymus. Bakınız özelliklere :

Bilgi İşlem Sorumlusu :
- Delphi, .NET, Javascript, JAVA programlama dillerine hakim
- MS SQL, MySQL veritabanı uygulamaları geliştirebilir.
- PHP ve ASP uygulamarında kod geliştirebilir yeteneğe sahip.
- Adobe Photoshop, Macromedia Freehand, Adobe Illustrator kullanarak masaüstü ve web'e yönelik tasarım oluşturabilen.
- Windows 2000/2003 Server, Linux Enterprise Sunucuları yönetebilecek.
- Active Directory, TCP/IP, VPN yapıları hakkında bilgi sahibi
- Cisco Routers, Cisco Pix yönetimi konusunda tecrübe sahibi
- Askerliğini tamamlamış
- Ehliyet sahibi
- alanında en az 4 yıllık üniversite mezunu
- Seyahat engeli olmayan
Abi böylesini görmedim yemin ederim. Bu adamı bulurlarsa tanışmak istediğimi belirten bir mail atmayı düşünüyorum adamlara :) "Tanrı Aranıyor" - şimşek atabilen... :)
Genel, Kişisel

“Biz eskiden” diye başlayan bir yazı…

13.08.2007
Uzunca bir zamandırbu başlıkta bir yazı yazasım vardı aha da yazıyorum işte okuyun gari :

Abicim ben yeniliği seven bir insanımdır aslında ama şöyle durup olduğum yere, yaptığım işlere bakıyorum da... "ulan eskiden daha güzeldi be" demekten alamıyorum kendimi.

Ben bilgisayarı aldığımdan beri hayatımın 1 numarasına koymuş bir adamım. Gecemin, gündüzümün, herşeyimin bilgisayar olduğu dönemler oldu, oluyor ve büyük ihtimalle olacak :) Blog'u okuyanlar bilirler tarihim ufak kolları aşağı çekerek oyun değiştirilen ve ayar yapılan makine ile bilgisayar (aslında bu oyun makinesiydi) olayına girdim ve commdore 64 ile ilk programlama, grafik gibi deneyimlerime ulaştım.

Özellikle Amiga'yı hayatım boyunca uğraştığım makineler sıralamasında 1 numaraya koyarım. O kadar da sorun çıkaran bir makinem vardı ki kasa açık olarak çalışıyordum artık ama sorun gidermesi bile zevkli bir makineydi Amiga.

Bence işin sırrı teknolojinin sınırlarının olmasında yatıyor. Amiga, Commdore 64 gibi makinelerin büyüsü standart olmalarında yatıyordu. Yani Commodore 64'ün işlemcisi sabitti, hafızası sabitti, yapılabilecekler sınırlıydı ve bu işi güzel yapan da buydu. Şu anda standart namına hiç bir şey kalmamış durumda. Bir şey üretiyorsunuz ve "bu yaptığım tüm Amiga'larda çalışır hacı" gibi bir cümle ne yazık ki kuramıyorsunuz. Yaptığınız şeye "Bu tüm windows'larda çalışır" bile diyemiyorsunuz yok artık öyle bir muhabbet. "%90 çalışır" aha bütün diyip diyebileceğiniz bu kadar :)

Aslında şu internet işin bokunu çıkaran asıl unsur bence. Özellikle bant genişliklerinin artması ile birlikte tamamen tüketim toplumu halini aldık. Eskiden haftalar, aylar boyunca bir albüm dinlerdim ama şu anda 1 haftada 10 albümü hatmediyorum ve eskiden aldığım zevkin yanına bile yaklaşamıyorum.

Eskiden böyle her yıl düzenli çıkan programlar, oyunlar falan yoktu. Bir oyunu aldın mı çok uzun süre oynardın. (Sağolsun bünyem halen bu şekilde davranıyor oyun konusunda) ama şu anda bir çoğumuz haftada bir değil bir çok oyunu bitiriyor, sıkılıyor falan filan ve işin en acı yanı şu anki oyun teknolojisi ile bir Amiga oyun teknolojisinin karşılaştırılamayacak olması ama aynı tadı bir türlü vermiyor işte.

Böyle yeni düzenin ta mna koyim ben be :)

Kitap

Stephen King – Dark Tower

12.06.2007

Yaw ben bu Stephen King denen adamın hastasıyım lakin hiç buraya entry girmemişim garip :)

Herkese bildiği için Stephen King hakkında pek yorum yapmanın alemi yok lakin şunu belirtmek lazım ki adam "o bunu kesti, bu bunu biçti hah hah haaaay" şeklinde korku romanları yazmıyor. Stephen King romanlarının ilk kısımları her zaman için sıkıcıdır çünkü tamamen karakterlerin nasıl bir geçmişe sahip olduklarından, psikolojilerinin ne alemde olduğundan bahseder ve sen kişileri tanıdıktan sonra verir gazı verir action'ı :)

Ben şahsen Stephen King'in kitaplarında hareket başladığı zaman kitabı pek bırakamam. İlk olarak Çağrı kitabını (asıl ismi Dead Zone yani Ölü Bölge'dir ve kitabın konusuna çok yakışır çağrı ne alaka bilmem ) okuduğum zaman bu konuya hayran olmuştum. Kkitapta eleman insanlara, insanlara ait eşyalara dokunduğu zaman geleceklerine veya bilinmeyen geçmişlerine dair bilgiler veriyordu ama o sahneler öyle güzel anlatılmıştı ki resmen yaşadım yani. Sonrasında da King'in ne zaman okumadığım bir kitabına rastlasam alırım işte ama denizde kum King'de kitap oku oku bitmiyor meret.

İşte efenim King'in bir seri olarak yazdığı ve bir çok kitabında bu kitaptaki konuya göndermeler yaptığı (Ör: Peter Straub'la yazdığı "Kara Ev") ve bu kitabın içeriğinde de bütün kitaplarının aslında bu konuya bağlı olduğuna dair göndermeler yaptığı "Kara Kule" serisi vardır.

Seri Silahşor Roland Deschain'in Kara Kule'ye ulaşma mücadelesini konu alır ve bir şiirden yola çıkarak yazılmıştır. Aslında Stephen King'in kendisini de kitaba dahil etme olayını ben pek sevmedim ama onun dışında muhteşem bir seri.

Seri 7 kitaptan oluşmakta ve son kitabı olan "Kule" - bütün kitaplarına yeniden basıldı bu arada - 3 gün önce falan elime geçti ve 200 sayfayı bitirdim (800 sayfalık eşşek gibi bir kitap).

Aslına bakarsanız bu serinin kitaplarını çok uzun aralıklarla okudum. Konunun tamamen bütünleşmesi için kitapları alıp baştan sona seriyi okumak lazım ama Annem bütün kitaplarımı başkalarına verdiği için okuduğum kitaplara tekrar para vermem gerekecek bu çok koyar bana :)

Diyeceğim şudur ki alın okuyun inşallah beğenirsiniz. Açık konuşalım skimde değil beğenmeniz :)

İşletim Sistemi

Linspire

10.05.2007

Sevgili okuyucular,

Bir dönem Lindows isimli bir işletim sistemi çıkagelmişti hatırlar mısınız? Beyle windows ve linux programlarını bir arada çalıştırmayı vaadediyordu ve iyi reklam yapmıştı açıkçası. Neyse efendim bu sistem duyurulduğu zaman beta aşamasındaydı ve çıkmasını merakla bekliyorduk ama sonra bir şey oldu... sistem çıktı ama kimsenin haberi olmadı :)

Öncelikle Microsoft "Lindows" ismi "Windows" u çok çağrıştırıyor diye bir dava açtı ve sanırım bu dava'yı kazanmış olacaklar ki sistem şu anda "Linspire" ismi ile dağıtılmakta.

Temel olarak debian linux tabanlı olan sistem diğer linux sistemlerinden farklı olarak 50 kusür dolara mı ne satılmakta. E insan bir linux sistemini para ile satıyorsa vardır bir bildiği diyorsunuz ve emule kardeşim sağolsun parasız bir şekilde sisteme ulaşabiliyorsunuz :)

Efendim çektim kurdum sistemi hafta sonu güzel güzel. Kurulum kısımları az biraz ingilizcesi olan şahıslar için gayet kolay ve isterseniz CD'yi live olarak da (yani sisteminize kurmadan) kullanabiliyorsunuz. KDE arayüzünü kullanan sistem gayet güzel özelleştirilmiş ve windows ile machintosh arasında güzel bir görsellik kazanmış. Adamların grafik tasarımcıları iyi bir iş çıkarmış yani.

Sistemde diğer linux dağıtımlarından en farklı olan özellik CNR (Click And Run) özelliği ve bu anladığım kadarıyla şu şekilde çalışıyor. Siz bir windows executable'ına tıkladığınız zaman sistem internetten bu dosya ile ilgili bilgileri alıyor ve sisteminizde en iyi şekilde çalıştırmaya çalışıyor fekat benim evimde böyle bir şey olmadığı için ne yazıkki deneyemedim bu sistemi. Dedim acaba sistemde ön tanımlı bir şeyler var mıdır falan ufak windows programları denedim ama sonuç olumsuz.

Linspire anladığım kadarıyla wine isimli windows emulatorunu kullanmıyor. Adamlar kasmış kendi tekniklerini geliştirmişler (ki zamanında Lindows'un isim yapmasının nedeni de buydu). Wine'i kendilerine göre özelleştirmiş de olabilirler bilmiyorum fakat windows programları için internete bağlanma gereksinimi yüzünden benim gözümden baya bir düştü sistem ve bu yüzden hemen shift + delete'e maruz kaldı ve üzerine tüm zamanların en iyi işletim sistemlerinden biri olan Greenie Linux 1.7.2 versionu kuruldu ve JBuilder 2006 ile çalışmaya hazır hale getirildi ;)

Benim çektiğim version Linspire 5.059 versionuydu ve adamlar linux kullanmak isteyenler için güzel bir sistem yapmışlar açıkçası. Linux'un console'una pek bulaşmadan işlem yapıyorsunuz ki console'a ulaşmak için pratik bir icon, link falan yok (diğer linux sistemlerinden en ön plandadır ;)

Deneyin görün derim ben size.

Kişisel, Komik

Bu buraya yazılmaz ama…:)

13.04.2007
Efendim Krokiller ile yaptığım bir muhabbet çok güldürdü beni ama küfürlü kısımlar için özür diliyorum sizden :)

Krokiller says:
çok manyak bi movie database yapıom kendime

Ebola-X says:
yap yawrım
reuiem for a dream de benden

Krokiller says:
programcıyıda çalıştırıom hehe
netten son anime, movie gelişmelerini takip edebileceniz gare
hemide süper detaylı olaraktan

Krokiller says:
hehe
var bende o da
çekimini sevmemiştim
vhs'den çekim gibiydi 
o yüzden seeeretmedim tam olarak
şey çok güzeldi bak o tarz
jim carey'in bi filmi vardı
hah
eternal sunshine
eternal sunshine of the stateless mind 
çok çok iyi bi film
eleman süper oynamış
ki duygusal bi film yane
direk komedi nerdeyse 0
hazır tarz'a girmişken seyret bence
ahhaa
spotless mind lan bu arada o
Eternal Sunshine of the Spotless Mind
konusu falan güzel, direk aşk neden iiiiirençtir konulu bi yapıt

Ebola-X says:
sokmuşum jim keriye

Krokiller says:
yok lan
adam onda süper oynamış

Krokiller says:
hatta ve hatta
direk bende aynı girişi yapmıştım filmde

Krokiller says:
sonradan lan dion adam ne oynasa verio hakkını piç

Ebola-X says:
sokmuşum da kararlıyım

Krokiller says:
:)
bu arada
alltime top 10 best anime listesini tamamladım kardeşim 
ne kadar varsa çektim, izledim

Ebola-X says:
helal

Krokiller says:
full metal alchemist cidden en iyi olmayı hakkeden bi diziymiş buna karar verdim
gelmiş geçmiş en iyi dizi olarak geçio
bununla beraber boyum 3 santim daha uzadı tam oldu

Ebola-X says:
sokarım hepsine

Krokiller says:
sen izledinmi len lilium'u
sktir
neydi onun adı
elfen lied

Ebola-X says:
kafasını izledim ben

Krokiller says:
aferin o zaman sana D:

Ebola-X says:
eheheh
ulan işim var krokiller
bi saattir bir şeyler yazıon
g.tümden cevaplıom

Krokiller says:
farkındayım
sokmuşum x'e dedinmi anlıom zaten düşünmeden yazdığını

Ebola-X says:
abi çok komik diyalog olmuşi yaa
HAHAHAH süper cevaplar

Programlama

Web Programlama

13.08.2006

Web Programlamanın kralları olan ASP'den PHP'ye JSP'den ASP.NET'e kadar her konuda web programlama yapmış bir kişi olarak hem insanlara yol gösterebilmek hem de sıkıntıları dile getirebilmek amaçlıdır aşağıda yazılanlar.

Öncelikle ASP : Küçük projeler için ideal. İnsanı yormayan kolay bir platform. Ama Microsoft Dotnet yüzünden elini eteğini çekmiş durumda. Yine de geniş bir kullanıcı kitlesi olduğundan dolayı IIS ile beraber ASP desteği halen veriliyor ve bir süre daha verilecek. Performans konusunda sıkıntısı olmayan projelerde önerilir ama her byte'in degerli olduğu ince projelerde kullanmak başa bela açar. Web programlamaya yeni başlayan ve kısa vadede bir sonuç düşünenlere önerilir. Ayrıca uzun vade için de iyi bir başlangıç sayılabilir. Recordset gibi konularda takdirimi almıştır (bu özellik windows'un temelinde olan ve her dilde kullanılabilecek bir şey olmasına rağmen asıl olarak ASP'de kabul görmüştür)

Sonra PHP : Hayran olduğum dil ve platform. Özellikle Zend firmasının ipleri eline almasıyla ve doğru stratejiler izlemesiyle coştukça coşan PHP'nin bana göre tek eksiği standartlar. Standart'ları pek sevmeyen GNU dünyasında bu standartları kazanması zor görünse de Zend'in işi belli olmaz PHP 5 oldukça iddialı özellikler içeriyordu. Yalnız PHP 6 için en sıkı özelliğin unicode desteği olacağı konusunda yazılar okudum. Eğer en baba özellik bu olacaksa hayal kırıklığı kapıda demektir. PHP'nin Dotnet ve Java gibi standartlara ihtiyacı var. Hatta Zend Studio içine php'nin kullanabileceği derleme işlemi de olursa o zaman tadından yenmez işte PHP ;) Küçük ve orta ölçekli projeler için birebir. Takım çalışması için (standartları olmadığından dolayı) pek uygun değil ama kendi kurallarınızı belirletyerek güzel bir ortam oluşturabilirsiniz.

Nihayet Java (J2EE) : 2 Tam Teşkilatlı geliştirme ortamından biri. İçerdiği kütüphane (JRE) ve güçlü bir dile sahip olması (Java) web programlama konusunda büyük projeler için kendisini tercihlerde bir anda ön plana çıkartıyor. Her türlü ince detayı ayarlayabildiğiniz hatta kendi Server'inizi bile programlayabildiğiniz bir ortam. Server seçenekleri çeşitli ve hepsinin kendine göre güzellikleri mevcut. Belli standartlara sahip olduğu için (örneğin config dosyaları, class'ların yerleri vs.) takım çalışması için uygun. Birinin yazmış olduğu koda adapte olmanız PHP veya ASP'ye göre çok daha kolay ama Java'nın da kötü yönleri mevcut tabi. Öncelikle kavramlara çok boğulmuş bir ortam. EJB, RMI, JMS gibi bir sürü kavrama sahip ve bu kavramları öyle bir anlatıyorlar ki Java ortamından üstün zannedersiniz ama örneğin bir RMI'nin class'ları ağ üzerinde taşımanızı ve uzakta oluşturabilmenizi sağlayan bir program olduğundan bahseden yok. Çok fazla kavram insanların gözünü korkutuyor ama birilerinin bu kavramların aslında çok karışık teknolojiler olmadığını söylemesi lazım. Ayrıca büyük projelerin en büyük sorunu bana göre zaman kayıpları. Yapılan her değişiklikten sonra kodların derlenmesi, Container'in (Server'in) tekrar başlatılması falan derken her değişiklik yarım dakika kadar zamanınızı alıyor. Özellikle test sürecinde bu işlem çok dertli. Session değerinin kaybolmasından ve örneğin 5 adımda test edebildiğiniz bir sayfanın Session'ın kaybolması yüzünden her seferinde o 5 adımı tekrar etmenizden bahsetmiyorum bile ;) IDE (Integrated Development Environment) konusunda sıkıntısı yok. Özellikle Oracle'ı arkasına almış olması gücüne güç katıyor. Ayrıca geliştirdiğiniz ortam (Windows, Linux, ...) konusunda da sıkıntı yok.

Ve Dotnet (ASP.NET) : Tam teşkilatlı takımından ikincisi. Microsoft'un Java'ya cevabı ve özellikle C# konusunda önceleri iyi adımlar attığına inandığım fakat sonra C# 3.0'da gelecek olan "var" keyword'u ile işi çocuk oyuncağına çevireceğini tahmin ettiğim Platformu. ASP.NET hemen hemen Java ile aynı mantıkta çalışıyor ve kendine has standartları olduğundan dolayı takım çalışmasına uygun ve güçlü bir platform. Java ile aynı sıkıntılara sahip denebilir. Derleme yüzünden kod değişimlerinde zaman kaybı fazla ve derleme sonucunda Session değişkenlerinin yokolması insanı çileden çıkartıyor. Server Side (runat=server) componentlerin kullanılması (ve ne yazık ki bunların kullanılmasının yaygın olması) sonucu performans kayıpları hat safhada. Her ne kadar kendi ortamı olsa da kod yazma işini ASP stilinde inline olarak yazılması taraftarıyım. Belli başlı işleri yapacak olan kodları dll içinde bulundurmak en akıllıca çözüm gibi geliyor. Geliştirme Ortamı (IDE) konusunda belki de en iyi IDE'ye sahip (Visual Studio). Fakat Microsoft'un Visual Studio 2003 gibi süper hızlı bir IDE'den sonra 2005'de yavaşlıktan sürünen bir IDE yapması ve yapılmış olan değişikliklerin bu yavaşlığı açıklayamıyor olması sıkıntı veriyor. Java için kullanılan geliştirme ortamları yine Java ile yazılmış oldukları için genelde yavaştırlar ama Visual Studio 2005 C++ ile yazılmış olmasına rağmen Java IDE'lerinin çalıştığı hızlarda çalışması IDE'nin belki de en büyük avantajını yok etmiş durumda.

İşte Web Programlama Savaşları :)

Müzik

Götik Rock

13.05.2006
Kibar olsu diye öyle söyledim yanlış anlaşılmasın :)

Efendim emule'ye girip "Dream of the" şeklinde bir arama yaparsanız Dream of The Dragon, Warrior, Wolf, Killer, Snake, Witch... gibisinden zilyon adet Gothic Metal Compilation albümleri bulacaksınız. Oldukça güzel hazırlanmış olan bu albümler bu işten anlayan insanlarca da kabul görmüşlerdir :) Benim şahsi göüşüm Gothic Metal'in bir süre sonra sıktığıdır lakin beğenen beğenmekte, hasta olan iyileşmemekte özgürdür tabii.

"In Flames" ve hemen hemen kardeş grubu diyebileceğimiz "Soilwork" un bütün albümleri gelmiş olması lazım. In Flames "Reroute to Remain" albümünü dinledikten sonra her albüm böyle gibi bir ruh haline sokuyor sizi ama bence en iyi albüm olmuş ve diğerlerinden bazı parçalar hariç yanına yaklaşan yok ne yazık ki. Aynı şekilde Soilwork'un de "Figure Number Four" albümünden aldığınız zevki diğerlerinden alamıyorsunuz.

Efendim bunların dışında Hammerfall, Darksun, The Gathering gibi gruplar geldi lakin hepsi bir anda geldiği için yorum yapamıyorum :) Yalnız "Hammerfall - Glory To The Brave" parçasını dinlemenizi çok sıkı bir şekilde önerebilirim. "Scorpions - Wind of Change" hissi verse de dinlemeye değer bir parça. Bir de "Spock's Beard - She is Everything" parçası son dönemde hoşuma gidenlerden.

Bu arada In Flames Moonshield isimli parçasınının Commodore 64 Karaoke versiyonunu yapmış (ben daha önceden dinlemiştim bu parçayı ama In Flames'in olduunu bilmiyordum) ve gönlümü ayrı bir şekilde fethetmiştir. İlk dinlediğimde şarkı eski bir C64 oyunuun müziği sanırım demiştim ama adamlar bariz bir şekilde kendilerine ait olan bir şarkıyı C64 enstrumanları ile çalmışlar ki öperim ben öyle insanları :)

"Intellij IDEA" (www.jetbrains.com) isimli Java IDE'sinin 5.1.2 versionu çıkmış haberiniz olsun.

Greenie Linux'un temelini oluşturan Slax Linux'un de 5.1.7 versionunun RC1 hali sitesinden çekilebilir durumda. Release olduktan sonra Allah'ın izniyle bir Greenie Linux yaparız artık siz değerli okuyucularımız için :)

Borland Jbuilder'in eclipse tabanlı olacak yeni versionunu bekliyoruz bakalım başımıza neler gelecek.

Roger Waters isimli baba müzisyen Türkiye'den büyülü bir şekilde geçti. Başta Mormenekshe olmak üzere bir çok arkadaştan "o neydi öyle beee", "olmaz böyle şey" vb. yorumlar alıyorum ki konsere gidemediğim için iyiden iyiye üzülür oldum :)

Geçen Kusmuk ile son Street Fighter kapışmamızda  Blanka ile Kusmuk'tan bir temiz sopa yedik. Yendiğimizi söylediğimiz gibi yenildiğimizi de söyleriz elbet delikanlılık budur :)

NBA'de Miami Heat şampiyon oldu. Aslında Detroit Pistons şampiyon olmasın da kim olursa olsun diyordum ama içten içe de Miami'ye karşı bir sempatim vardı mutluyum yani :) Dwyane Wade Michael Jordan'ın gerçek varisidir bu böyle biline. Ayrıca bahsetmişkene kapak adamının Tracy Mcgrady olduğu NBA Live 2007 oyunu ile ilgili güzel haberler kulağıma çalınmakta fakat ben Nba Live 2005'de bıraktım olayı :)

Kusmuk kardeşimin överekten getirdiği Flatout isimli oyunu zar zor da olsa çalıştırmayı başardım. Oyunun başında eşşek gibi NVIDIA logosu var fakat kitlenmeler, açılmamalar gırla gidiyor:) Fizik motoru konusunda gerçekten aşmış bir oyun fakat araba kullanma konusunda NFS Underground'dan daha fazla sevemedim ne yazık ki. Bugün uninstall edilmesini umuyoruz :)

Akşam CNBC-E'de "Prison Break" isimli şu ara takip ettiğim tek dizi var. E bundan size ne hadi bye bye :) (şu diziyi emule'de bir aratayım bakalım)

Programlama

Java Servlet

13.03.2006
Ya ben nasıl olduğunu anlamadım ama sabah İnanç Gümüş isimli arkadaşla konuşuyordum ve 1 saat kadar sonra kendimi Servlet nedir nasıl çalışır konusunu araştırırken buldum :) Yaptığım kısa araştırmanın notlarını da hemen aktarayım efenim durmayayım.

Şimdi öncelikle bu Servlet denen şey aslında HttpServlet'den türetilmiş bir Java Class'i ve belli başlı metodları ile gelen request'leri değerlendirip HTML olarak Response üretebiliyorsunuz. Aslında ben daha karışık bir şey bekliyordum ama bütün olay bir Class yapıp bunun doGet(), doPost() gibi methodlarını override etmekten ibaret.

Şimdi bu servlet denen şeyin çalışabilmesi içi öncelikle bir Application Server'a ihtiyacı var. Bu Jboss, Jetty veya Apache tomcat gibi bir sunucu olabilir. Yazdığınız Servlet'leri .war isimli bir pakette topladıktan sonra bu sonucuya gönderiyor ve http üzerinden web sayfası çağırır gibi çağırabiliyorsunuz.

Özellikle Borland Jbuilder gibi bir IDE'ye sahipseniz Servlet yapmak yaklaşık olarak 5 dakikanızı falan alacak olan bir iş ama tabii olayın arka planını bilmekte her zaman için fayda vardır ;)

Şöyle bir Servlet örneği yazayım buraya da görün bakalım :

public class myServ extends HttpServlet
{
    private static final String CONTENT_TYPE = "text/html; charset=windows-1254";
    //Initialize global variables
    public void init() throws ServletException
    {
    }
    //Process the HTTP Get request
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head><title>myServ</title></head>");
        out.println("<body bgcolor=\"#ffffff\">");
        out.println("<p>The servlet has received a " + request.getMethod() + ". This is the reply.</p>");
        out.println("<p>The servlet has received a " + request.getParameter("deneme") + ". This is the reply.</p>");
        out.println("</body>");
        out.println("</html>");
        out.close();
    }
    //Process the HTTP Post request
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        doGet(request, response);
    }
    //Clean up resources
    public void destroy()
    {
    }
}
Aha böyle bir şey işte servlet dedikleri Class. Bu servlet'e çağrıda bulunmak için internet explorer'da
http://localhost/myServ?deneme=merhaba
gibi bir adrese gitmeniz (tabii uygulama sunucusu devredeyken) yeterli olacaktır.

Bu servlet, JSP gibi şeyler Java'nın Enterprise (J2EE) tarafını oluşturan kısımlar. Şahsen J2SE'den pek çıkmak istemesem de İnanç Kardeşim öl desin ölürüm yani :)

Servlet'den bahsetmişken işin en alt yapısından da bahsedeyim. Şimdi efendim CGI gibi bir arabirim kullanıyorsanız web sayfanıza yapılan her Request ayrı bir program tarafından işlenecektir. E 1000 tane request için 1000 tane program çalıştıracağınız için sıçış söz konusu olacaktır. Ama servlet'de böyle mi ya? Yalnızca 1 adet program var ve her Request bir thread olarak işleniyor. 1000 Request için yine bir zorlanma söz konusu tabii ama C ile CGI birleşiminden her zaman iyidir :) Ayrıca 2 CGI programının birbiriyle haberleşmesi zor (bazen imkansız) iken Servlet'ler birbirleri ile gayet kolay bir şekilde haberleşebiliyorlar.

Son olarak JSP'den bahsedelim. JSP de özellikle tasarım kaygısı olan sitelerde kullanılabilecek bir J2EE çözümü olarak karşımıza çıkıyor. JSP'nin mantığı ASP ve PHP gibi dilleri kullananların aşina olacağı şekliyle <% %> tagları arasına yazılmış Java kodlarının kullanılmasına dayanıyor. Aynen Java'da ne varsa çatır çatır JSP altyapısında kullanabiliyorsunuz yalnız Session, Response gibi ek objeler de geliyor tabi internete özgü olaraktan. Veee JSP'nin en can alıcı özelliğini söyleyelim. JSP sayfaları ilk kez çalıştırılırken Servlet olarak derleniyor ve sonraki Request'ler her zaman bu Servlet Class'ini kullanıyor. Ta ki JSP'nin içeriği değişene kadar durum böyle kalıyor.

Bir de Bean denen olayı anlatayım. Bean bean bean duyuyordum da ulan ne acaip bir şey bu diyordum. Meğer bean dediğimiz olay belli interface'leri uygulayan sınıflardan başkası değilmiş. Mesela Message Bean'i oluşturmak için MessageBean interface'ini uyguluyorsunuz alın size Message Bean. Daha sonra bu bean'i isteğin yerde kullan. Sanırım asıl amacı Container olarak kullanılması bu bean denen zamazingonun.

Hey Allaaaam ya!