Eskiler, Fotoğraf, Kişisel, Resim

İzmir Ender

19.02.2008

Ulan şu Goblins ailesi olarak İzmir'e gelişimiz ne makaraydı ne eğlenceydi bee! Deli gibi özlüyorum walla o günleri. Sözde demo için çizim falan yapcaktık ama paso pizza yedik anasını satayım :) Fil Pizza evimiz Ender liderimiz olmuştu :) Sevgiler saygılar işte fotoğraflar.

Not : Fotoğraflardan biri Ender biraderimin zamanında web sayfası olan "Compu's Place" e ait olan ve Krokiller'ın yapmış olduğu bir logo çalışması.

 


Eskiler, Oyun, Resim

Mortal Kombat 2 – Amiga

18.02.2008

Hacı bu AMIGA'daki "Mortal Kombat 2" gibi oyun bilmem ben amiga zamanından. 4 Disketlik bu harika oyun tam da Arcade salonlarına geldiği dönem bizim elimizdeydi ve hatta Arcade'e gelmeden önce Krokiller'in 2.5 Mbyte'lık Amiga'sında kastırıyorduk (o zamanlar benim Amiga yoktu daha). Kroki'nin Sega Master System'den kalma joypad'i ne hikmetse Amiga'ya uyuyodu ve MK2 de 2 tuş destekliyordu. Benim de C64 zamanında aldığım Python Joystick'in 2 tuşlu olduğunu hesaba katarsak nasıl bir zevk ilen oynandığına dari bir sonuç elde edebiliriz sanırım.

Aslında Krokiller'da işin en iyi tarafı 1 Mbyte RAM'de adam bir fatality yaptığı zaman disket üstüne disket isterken Kroki'deki 2.5 Mbye RAM'dan dolayı oyun ilk yüklenirken ne kadar disket istiyecekse istiyor ondan sonra veriyor RAM'den veriyor RAM'den hastası ediyor çevresindekileri :)

Yalnız MK2 Amiga oyunu olduğuna inanılmayacak kadar iyi bir oynanabilirliğe sahipti ki sonuçta oyunun yapımcısı Midway firması Amiga için bu kadar kasmasa da satardı bu oyunu çünkü deli gibi tanınıyordu ama canım Midway öyle mi yaptı? Tabii ki hayır! en güzel kodlarla hem muhteşem grafik hem de muhteşem oynanabilirliği sundu bizlere.

Ben kendi 1 Mbyte'lık Amiga'mda genelde Reptile'ı seçerdim çünkü Fatality olayında ek disket istemiyordu Reptile. Zaten bir Fatality'sinin disketlik bir tarafı yoktu. Görünmez olup adamı ortadan kesiverdiği için görünmeyen adamın sprite'larını yüklemiyordu haliyle :) Diğer Fatality'de ki benim en sevdiğim ölümlerden biri idi, adamın kafasını bir zıplama mesafesinden diliyle alıverirdi mideye. İşte bu Fatality de disket istemiyordu bu yüzden severdim keratayı.

Oyunun en dertli elemanıysa Shang Tsung isimli şahsiyetti çünkü mna kodumun herifinin diğer karakterlere dönüşebilme yeteneği vardı ve her değişimden sonra yeni disket istiyordu :)

MK2'yi güzel yapan şeylerden biri de konusunun iyi olmasıydı. Bir oyunu oynarken neden oynadığınızı ne yaptığınızı bileceksiniz kardeşim. Mortal Kombat 1'den devam eden konuyu gayet güzel işlemişlerdi ve hatta Sonya'nın Kano'nun esir alınması falan oyuna zevk katıyordu. Açık onuşmak gerekirse resmen büyüleyici bir konusu vardı MK 2'nin. 3 ve sonrasında bozdular içine ettiler konunun.

Ayrıca bu konunun yanı sıra oyunun içine gizlenmiş karakterler, mekanlar falan derken uzunca bir süre oyun ile alakalı olmanı sağlıyordu. Mesela oyunun sonunda sana şifreler veriyordu bu şifrelerin harflerinden anlamlı cümleler çıkarıyordun ve bazı şeyleri nasıl yapacağını öğreniyordun. Arkadaşlar arasında uzun süre muhabbet etmişizdir bu konular hakkında.

Sanırım MK2 en çeşitli platforma çıkan oyundur. Bildiğim tüm makinelerde Amiga, PC, Arcade, SNES olan bir oyundu ve işin güzel tarafı Fatality hareketini birinde nasıl yapıyorsan diğerinde de aynı şekilde yapıyordun (Amiga'daki tuş olayının azlığından dolayı tuş kombinasyonları biraz farklı oluyordu) O dönem PC sahibi olan Başar ve Barış kardeşlerde oyunun PC versionunda (Arcade'in aynısıydı) yok "ormanda ağaçlar konuşunca aparkat vuracaksın" yok "sonya'yı şöyle kurtarıyorsun" gibi oyun hakkında çıkmış çeşitli hurafelerin gerçek olup olmadığını test ediyorduk. Barış'ların yaklaşık 1.5 metre boyunda olan iki tane kolon'undan çıkan Come Here!, Hayt! Huyt! sesleri ile oyunu oynamak da ayrı bir zevkti. PC'nin yanında bir Amiga ve onun akabinde de Atari makinesi olduğu için her türlü makinede o kolonlar ile ses almak ayrı bir zevk oluyordu :)

İşte MK2 böyle bir oyundu. Hakkında daha bir sürü şey yazılabilecek tarihte az oyun vardır. Eğer bu oyunu oynamadıysanız önce Mortal Kombat 1'i ve bu hikayenin devamı olarak Mortal Kombat 2'yi oynamanızı kesinlikle tavsiye ederim.

Eskiler, Kişisel, Resim

Goblins

18.02.2008

İşte sonunda benim üşengeç biraderim Krokiller Goblins zamanlarını en iyi anlatacak resimleri göndermeyi başardı. E ben de bunları hemen akabinde sizlerle paylaşmak istedim tabii ki. Aşağıda bu resimlerin birer kopyalarını görmeniz mümkün ama unutmayınız bu resimleri izinsiz dağıtmak suç sayılmaktadır. Eğer ki böyle bir şey yaptığınızı görürsem veya duyarsam aramızda şöyle bir diyalog geçebilir :

Ebola-X    :  Abi bizim resimleri yayınlamışsın sitende?
Hayın Kişi  :  Evet Abi oldu öyle bir yanlışım affet beni.
Ebola-X    : Seni Kınıyorum ve Sana Laflar Hazırladım!
Hayın Kişi  :  Abi yapma bokunu yiyim!
Ebola-X    : Show me Love!

Hadi Kolay Gelsin

Eskiler, Kitap, Programlama, Resim

Kitaptan Öğrenme Olayı

15.02.2008

Şahsi görüşümdür ki  bu bilgisayar aleminde konu bir şeyi kitabından öğrenme olayı olunca insanlar ikiye ayrılıyor. Yapanlar veya yapamayanlar. Sanırım bilgisayar'ın temelindeki 1 ve 0 mantığı doğrudan işin bu kısmını da etkiliyor :) Şimdiye kadar kimi tanıdıysam ya bilgisayar kitaplarını okumayı seviyordu veya konunun tam bir düşmanıydı "ben internetten öğrenirim" şeklinde şiddetli bir savunmaya geçiyordu.

Ben şimdiye kadar bilgisayarda grafik ve müzik konuları dışında (ki bunlar programlama oluyor) ne öğrendiysem işin kitabından öğrendim. Aslında örneğin bir PHP konusunu kafama taktığım anda gider hemen bir PHP Kitabı alırım (ve özellikle ALFA yayınlarını tercih ederim. Dizgisine, şekline şemaline alıştım artık en büyük sevme nedenim bu. Alfa Yayınları! Sizin için en iyisi!) Öncelikle roman okur gibi hiç bir uygulama yapmadan okurum kitabı ve işte seven ile sevmeyenin en iyi ayrıldığı nokta! Ben kitabın teorik kısımlarını, PHP tarihçesini, nerede kullanıldığını falan filan her yerini okurum! İşte bir çok kişi işin bu kısmını sevmiyor ama bana göre bir şeyi öğreneceksen tam olarak öğreneceksin. Mesela PHP'nin ilk zamanlarda Personal Home Page anlamına geldiğini öyle herkes bilmez :) Daha Sonra PHP Hypertext Preprocessor olarak adlandırıldı (GNU : Gnu is Not Unix gibin).

İkinci aşamada kitapta okuduğum yerin üzerinden bilgisayarın başında uygulayarak ve hızlı bir şekilde (bu sefer teorik yok) kitabı bir daha okurum. Bu işlemlerin sonunda halen dili öğrenemediysem ya salaklaşmışımdır (şimdiye kadar olmadı çünkü), ya kitap boktandır ya da bu dili öğrenmesi hakkaten yükten başka bir şey değildir :) Yalnız bu işlemleri yapabilirsem dediğime dikkat edin çünkü C++ konusunda bu işlemleri akıl sağlığımı koruyarak tamamlayamadım bir türlü. Kafada tutmanız gereken o kadar çok şey varki belli bir yerden sonra "Ulan bu ne bee!" diyorsunuz. Oysa C# olsun Java olsun öyle mi hiç canlarım benim. Ben bir dili kullandığım kadarından ziyade tam olarak öğrenmek istediğim için geliyor bunlar hep başıma :)

Bu işlemlerin başında belirttiğim gibi işe kitap ile başlarım fakat kitaptan sonra bitirmem tabii ki. Artık programlama dili veya program her neyse onun temel bilgisine sahibimdir. Bundan sonra internette döküman avı başlar. PDF veya CHM formatında ne kadar döküman varsa indiririm (yaşasın Emule :) onun dışında çeşitli sayfalarda yararlı bilgiler varsa bunları da sayfa sayfa çeker koyarım bir köşeye.

Tüm bunların dışında kitap yazmış arkadaşlarım da vardır. "Atılım Çetin - Bilgisayar Grafikleri" buna en güzel örnek değil midir sayın okuyucular? Ayrıyeten ekteki resimlerdeki kitapları okuyarak bilgi konusunda doruğa ulaşmanız da pek mümkün görünmektedir.

Çizgi Roman, Eskiler, Kişisel, Kitap

Çizgi Roman

02.02.2008

Ulen ne zamandır bir boşluk bulup şu çizgi roman konusunu yazamadım. Uzun zamandan sonra böyle çalışınca afalladım açıkçası :) İşyerine "Dead Can Dance" grubunun full albümlerini getirdim bütün gün takılıyoruz :)

Ne diyorduk bu çizgi roman olayı... Ben çizgi roman kültürünün Türkiye'de yerleşmeye başladığı zamanları bilirim ve her konuda olduğu gibi o zamanları daha bir severim. Marvel Comics firması Amerika ellerinde o Örümcek Adam benim bu Kaptan Amerika senin şeklinde coşarken Türkiye'ye ne yazıkki bu çizgi romanlardan yalnızca bazıları gelmekteydi. Örneğin 10 tane kadar bulunan Örümcek Adam serilerinden yalnızca Amazing Spider Man serisi geliyordu diye hatırlıyorum. Ayrıca Amerika'da 1. sınıf kağıda renkli olarak basılan çizgiroman'lar TR'de renksiz ve sıradan bir kağıda basılıyordu yalnız ben bu sıradan halini şu anki haline tercih ederim.

Türkiye'de çizgi roman olayı 3'e ayrılmıştı diyebiliriz. benim favorim olan Marvel Comics yayınları, DC Comics yayınları (Batman, Superman...) ve klasik Texas Tommiks :) Ben Marvel'in tarzını ve kahramanlarını daha çok sevdiğim için diğerlerine pek bulaşmadım açıkçası ama elime geçtikçe de okudum yani. Mandrake falan vardı mesela Apdullah vardı kankası :)

Daha okumayı öğrenmeden önce Teyzemin Oğlu'na ait olan Örümcek Adam Cilt #3 geçmişti elime. Örümcek Adam çizgi romanını 2 tip halinde bulabilirdiniz o zamanlar. Süper Seri ve Normal Cilt olaraktan. Normal Cilt 15 günde bir yayınlanırdı ve Süper Seri'ler 2 adet normal cildin birleştirilmesinden ibaretti (haliyle ayda bir yayınlanırdı). Ayrıca bu ciltlerin çıkış tarihleri de farklıydı. Yani süper cilt 5. sayıdayken normal cilrt 15. sayıda falandı. Daha sonraları Mega Seri şeklinde 2 adet süper seri birleştirdiler falan ama bu ellerinde kalmış olan çizgi romanları satma tekniğinden başka bir şey değildi ve artık o dönemin sonuna yaklaşılmıştı.

Tek derdim onca zaman Örümcek Adam okuduğum halde bir türlü ilk sayısını okuyamamış olmamdır. Bir gazetenin verdiği yeni dönem renkli Örümcek Adam'lardan biriktirdiğim dönem okudum ama o eski cildi hiç bulamadım. En fazla 2. sayısını okuyabildim.

O zamanlarda Marvel Comics'in Türkiye'deki yayın hakları "Alfa Yayınları"na aitti ve sanırım bu Alfa bugünkü Bilgisayar Kitapları ile ün yapmış alfa Yayınları ile aynı Alfa :) Adamlar gayet güzel iş çıkardılar ve Çizgi roman dünyasında tanınmış ne kadar kahraman varsa hepsini getirdiler. Bunlar arasından Kaptan Amerika, Hulk, Thor, ROM, Silver Surfer, Demir Adam, Fantastik Dörtlü, Punisher, Conan, Kaptan Marvel... sayılabilir ve hemen hepsinin o dönemde yayınlanan bütün sayılarını okumaya özen göstermişimdir :)

Dedim ya daha okumayı sökmeden resimlerine bakmak olsun, gece yattığım zaman anneme okutmak olsun çizgi roman olayına girmiştim bir şekilde. Teyzemin oğlu Deniz de hastası olduğu için bizim de süper güçlerimizin olduğunu düşünemiz gayet normaldi ve çocukluğumuzda sıklıkla süper kahraman olduğumuzu hayal etmemiz kaçınılmazdı :) Bu arada okumayı öğrendikten sonra kendim çizgi romanlara verdiğim için deli gibi okuyordum ve ilkokulda da okuma birincisi olmuşluğum vardır bu sayede :)

Örümcek Adam'ın halen aklıma gelen ve beni gerçekten etkileyen sayıları da vardır hani. Mesela Çakal isimli karakterin Gwen Stacy'nin robotunu uyaptığı ve bir kaç cilt süren seri, Yılan kafalı yaratıklarla olan ve Örümcek Adam'ın zamanda geriye Kral Kull zamanına gittiği hikaye falan bir sonraki ay devamının çıkmasını sabırsızlıkla beklediğim hikayelerdendir.

Örümcek Adam'ın bazı sayılarında Prens Namor'un hikayeleri vardı ki ben bu kısımları hiç sevmezdim. Ulen ben Örümcek Adam okumak için almışım bana ne Namor'dan? Ama yapacak bir işimiz olmadığı için o kısımları da okurduk tabi doyasıya :)

Belirtmiş olduğum gibi Marvel'a ait olan diğer karakterler de Türkiye'de yayınlandı fakat hiç biri Örümcek Adam gibi ünlenmedi. 10-20 tane kadar cilt çıktıktan sonra olayları bitti. Yalnız bir tanesi daha Örümcek Adam kadar dayandı ki bu Ati'nin hastası olduğu Conan'dan başkası değildir. Elime geçtiği sürece okuduğum fakat sürekli bir takip olayına girişmediğim bir çizgi romandır Conan. Adamın süper güçleri bile yoktu yani nesini takip edecektim :)

Örümcek Adam'dan aklıma gelen önemli bir hadise de sanırım arada sırada Türkiye'ye gelen orijinal çizimlerin bozuk olmasından dolayı yayınlanan çizimlerin çok amatör ellerden çıkması idi ve arkadaşlar arasında buna "türk çizmiş" diyorduk. Elin Amerikalısının onca güzel çiziminden sonra bu çizimler pek kesmiyordu açıkçası. Aslına bakarsanız bunları ucuz olsun diye tamamen TR'deki çizerlerin uydurup çizdiğini de düşünmüyor değilim ve şu anda bu fikir bana çok olası geldi :)

Öyle veya böyle yakın zamana kadar özeliikle sahafların da yardımıyla aldığım Örümcek Adam kitaplarını okudum yalayıp yuttum ve yeni çıkan hikayelerle de pek ilgilenmiyorum açıkçası. Yalnız el emeği göz nuru biriktirdiğim kitapları annemin eşe dosta vermiş olması da beni ayrıca yaraladı ama napalım çok yer kaplıyor kitaplar :)

Yani sözün özü her şeyde olduğu gibi "o zamanlar" çizgi roman olayı da güzeldi. Bir sonraki seri çıksa da şu hikayenin devamını okusak derdik. Şimdi o kadar çok çizgi roman var ki hangisini alacağını şaşırıyor insan.

Abiiii! Bu ne yaa! araştırma yaparkene bir siteye rastladım ki olmaz böyle bir yazı :) Alın size ufak bir pasaj :

"Görüldüğü gibi örümcek de muhteşem özelliklere sahip bir hayvandır. Bütün bu özelliklerin örümcekte tesadüfen oluşması ya da hiçbir akla sahip olmayan örümcek gibi bir canlının bu özellikleri planlayıp vücuduna yerleştirmesi elbette imkansızdır. Örümcekteki bu üstün özellikler bize Allah'ın tüm canlılar gibi örümceği de kusursuzca yaratmış olduğunu gösterir.

İşte bugünlerde sinemalarımızda konuk ettiğimiz Örümcek Adam, küçük bir örümceğin sadece birkaç özelliğine sahiptir. Bu özellikleri sinemadaki bir sanal karakterde görüp de heyecanlanırken, aslında çok daha fazlasına sahip olan bir örümcek hakkında düşünmeli ve Allah'ın muhteşem yaratma sanatı karşısında çok daha fazla heyecan duymalıyız. "

Offf sayfada daha neler neler var bu ne yaa :)

Sayfa : http://www.harunyahya.org/guncel/040713_orumcek_adam.html

Alın İşte bulabildiğim kadarıyla bir kaç resim koydum bakın bakın ağlayın.

Kişisel, Komik

Rakı muhabbetsiz gitmez

20.01.2008

Ebola-X:

o paraya biz ne iş kurardık be

Krokiller:

gene kurarız

Krokiller:

ati ibnesi ne bok yiycek acaba

Ebola-X:

öyle olsa flash'in manyak bir ortamı olacaktı

Krokiller:

adam grafik dışında bi zikimden anlamıo

Ebola-X:

olm ne alaka

Ebola-X:

adam c++ bilio köküne kadar

Ebola-X:

ayrıca süper programlama kafası var adamda

Ebola-X:

bariz senden benden zeki yani

Krokiller:

haha

Krokiller:

olsun o kadar ibne

Krokiller:

ben adamla tanıştığımda

Ebola-X:

java c# falan c++'in yerini almaz hiç bir zaman

Krokiller:

(ilkokul yeni bittiydi)

Krokiller:

adam program yazıodu amstradda

Ebola-X:

yaw bir de onun yazdığı zamanlar program yazmak daha da zordu

Ebola-X:

şimdi ne ararsan gir google bulsun

Ebola-X:

o zaman bir şeyi bilemedin mi ara dur mna koyim

Krokiller:

evek

Ebola-X:

kitap yok adam yok

Krokiller:

olm biz zaten

Krokiller:

o zaman ööörenmesek öğrendiklerimizi

Krokiller:

şimdi afedersinde bi zikim olamazdık

Krokiller:

sıradan olurduk daha doğrusu

Krokiller:

şimdiki salaklarda problem çözme kafası yok

Ebola-X:

ya şu anda bilgi çöplük olmuş durumda

Ebola-X:

millet içinde yüzüo

Krokiller:

evet

Ebola-X:

ben sana istediğin programı yapayım yeterki internetim olsun

Krokiller:

eskiyi düşününce dumur direk

Ebola-X:

c++ olsun c olsun hatta perl olsun yani

Ebola-X:

ne istersen

Krokiller:

:D

Ebola-X:

ortam göt oldu duygu

Ebola-X:

yeni projeme bel bağladım artık

Krokiller:

göt ortam, ibne ortam

Krokiller:

hahaa

Krokiller:

devlet sırrı olanamı ?

Ebola-X:

yes

Ebola-X:

çok gizli duygu

Ebola-X:

ama öyle matah bir şey değiş

Krokiller:

bende bi tene develop edem ööle bişey

Ebola-X:

bir tek işleme olayına iyi kasıcam

Krokiller:

hmmzz

Ebola-X:

ulan emule bir zik almaz oldu laaan

Ebola-X:

durduk duyguu

Krokiller:

burdan yapalım

Krokiller:

şimdi

Krokiller:

hafifçe gaza basarken, ayağını debriyajdan çek emre

Ebola-X:

larry 7 gelemedi bir türlü

Krokiller:

oda dursun

Krokiller:

kırmızı yanıo

Krokiller:

sen estetik a yı bitirip estetik b'ye başladınmı emre

Ebola-X:

hit'i çok az abi dosyaların

Ebola-X:

en tırtları kaldı artık

Krokiller:

lan kaç manyak var larry 7 çekçek

Krokiller:

bulduğuna şükret

Ebola-X:

ecstatica 2'yi bu sefre bitirecem abi

Krokiller:

hepiiiimizzzziiin şaaaahsiyeetttitiiiii

Ebola-X:

işte jon joooon cumhuriiyeetiiii

Ebola-X:

eheh olm adam topla adaaam

Ebola-X:

ilk 10 olmalı duygu

Ebola-X:

sen de gel aralarda "yow yow" atarsın

Krokiller:

peki abi

Krokiller:

yow yow

Ebola-X:

yalnız kimle konuşsam bu muhabbeti yapıom

Ebola-X:

ilk 10'a girersek arkamızda bir yow korosu olacak

Krokiller:

vocal yaparım uzun hava gibi arkada

Ebola-X:

soliste ihtiyacımız var aslında

Krokiller:

kanon yaparız yowlardan

Ebola-X:

sen nakarat kısmını iyi söylersin

Krokiller:

dimi

Krokiller:

bunu kaç kişiye söyledin ibne emre

Krokiller:

kaç kişiyle solo yapcam ahahaa

Ebola-X:

aha geldi supersound

Ebola-X:

ben en iyi nakarat'dan önceki piç gibi söylediğim yerleri yapıom

Krokiller:

hahaha

Krokiller:

harbi süper olm orası yaaa

Ebola-X:

jon jon'u doldura doldura söylemişim ikinci kısımda da

Krokiller:

abi çok cingen gibi söylüyon

Krokiller:

jonjon jumhuriyeti gibi çıkıo

Ebola-X:

abe jan jan cumhiriyatı!

Ebola-X:

jan jan jan jan

Ebola-X:

9/8 'lik de yaparız şarkıyı

Krokiller:

:D

Ebola-X:

canlı performansda coşarız

Krokiller:

olur oda

Ebola-X:

böyle bele bağlı eşarplar falan

Ebola-X:

şıkkıdı şıkkıdı

Krokiller:

of ki ne of

Ebola-X:

walla konsepti bulduk gibi

Ebola-X:

güneş gözlüğüyle çıkacam olm ben

Krokiller:

hahaha

Krokiller:

ben maskeyle

Krokiller:

tanınmamak için

Ebola-X:

HAHAHAHA

Ebola-X:

ulan kahkahayı basıodum walla

Krokiller:

adımı sööölesinler tamamda

Ebola-X:

o halimizi gözümüzün önüne getirdim de

Ebola-X:

sen maskeli falan

Krokiller:

suratım bari kazınmasın kamuoyunun zihnine

Ebola-X:

sahneye deliler gelmiş

Ebola-X:

sana kenshin kostümü yaptıralım en kralından

Krokiller:

sonunda deliririz falan

Krokiller:

JON OJN OJOOBBONO JON

Krokiller:

diye

Ebola-X:

iyi iyi konsept iyice şekillendi

Krokiller:

olm sondaki kısım çok sıkı lan

Krokiller:

oraya hastayım

Ebola-X:

tam bateri girince jon jon jon jon

Ebola-X:

jon jon lafını duyduğum anda aklıma bu rap ritmi geldi zaten

Krokiller:

tam film soundtrack'i olur aslında o kısım

Ebola-X:

jon jon jon jon diye

Ebola-X:

eheh sulukule belgeseli

Ebola-X:

abe jan jan cımhiriyatyası

Krokiller:

:D

Krokiller:

isimlerde tutuo

Krokiller:

hayriye, jale, melaaat

Krokiller:

sahne isimlerimizde hazır

Ebola-X:

kopçik deniz, tırtıl emre, kapkaç duygu

Krokiller:

ben jale, deniz, hayriye, sen melaat

Krokiller:

LAN YARILDIM BURDA

Krokiller:

KAPKAÇ DUYGU YAAA

Ebola-X:

yapalım en kralından

Ebola-X:

şu muhabbeti blog'a atayım bari.

Programlama

Flash ile Realtime Birşeyler

11.01.2008

Sabah sabah Krokiller kardeşimin açtığı muhabbet üzerine yazıyorum bu yazıyı. Flash'da realtime multiplayer oyun nasıl yapılır? Evet bir çoğunuz bu sorunun cevabını merak ediyorsunuz! O zaman bu yazı tam size göre gençler taaam size göree. 

Şimdi efendim Flash'da sayfa yapanlarınız vardır elbet lakin hep dusunmussunuzdur "ulen bu sayfalar zıplıyor oynuyor ama bir dinamizm olsun bir coşku patlaması olsun ne bileyim". İşte bu hayallerin sonu ya bakırköy'e gider ya da "ulaaaan realtime oyun yapacam!" şeklinde bir düşünceye dönüşür. Flash'da kayda değer çok az uç konu varıdr. Bunlardan biri 3D olabilir (Flash'da Director gibi hazır bi 3D destegi olmadığını belirteyim) ve biri de mutlaka socket programlamadır. Bu işin en zor yanı, yalnızca flash içerisinden halledilememesidir. Ya kendiniz bir server yazmak zorundasınızdır veya hazır server'lardan birinin kurallarına uymak zorundasınızdır. Aslında Macromedia Firması bu işler için Macromedia Flash Communication Server programını çıkarmıştır ve gayt güzel çalışmaktadır ama ben her zaman kendi işimi kendim halletmek isterim :) - Tabii chat falan sorun değil ama video konferans gibi coşkulu işlerde kendi server'ını yazmak çüğünüzü kendi k.çınıza sokmak kadar zordur :) 

Şimdi size basit olarak bir C# yani dotnet Server ve buna bağlanan Client mantığını yazacağım. Öncelikle

Server'dan başlayalım :

Aşağıda açıklamaları ile beraber C# kodlarını okuyabilenzi

// Bunlar socket programming için çağırılıan gerekli sınıflar

using System;
using System.IO;
using System.Net.Sockets;
using System.Net;

// simpleServer diye bir isimuzayında saklanıyor

namespace simpleServer
{
 class Class1
 {

  // 2 oyunculu bir sistemin 1. ve 2. oyuncularının konumlarının başlangıç noktaları
  static int p1_x = 30;
  static int p1_y = 30;
  static int p2_x = 50;
  static int p2_y = 50;
 

konumarın listesini veren fonkiyon
  static string listeVer()
  {
   return p1_x.ToString() + ":" + p1_y.ToString() + ":" + p2_x.ToString() + ":" + p2_y.ToString();
  }

  [STAThread]
  static void Main(string[] args)
  {

   // Local ip adresi belirtiliyor ve TcpListener adındaki dinleyici 2800 numaralı portu dinlemeye alıyor.
   IPAddress ipAd = IPAddress.Parse("127.0.0.1");

   TcpListener TcpDinleyicisi = new TcpListener(ipAd,2800);
   TcpDinleyicisi.Start();

   // Sunucu ile ilgili Console'a bilgi gonderiliyor

   Console.WriteLine("Sunucu baslatildi...");

  // İlgili Port'dan gelen çağrı alındığı zaman ne yapılacağı

  Socket IstemciSoketi = TcpDinleyicisi.AcceptSocket();

   if (!IstemciSoketi.Connected)
   {
    Console.WriteLine("Sunucu baslatilamiyor...") ;
   }
   else
   {  
    // Mesaj sonlandirici (Flash icin Gerekli)
    char EOF = (char) 0x00;

    while(true)
    {    

     İlgili port'dan gelen giden veriyi kontrol etmek içinbi NetworkStream, StreamWriter ve StreamReader nesneleri yaratılıyor
     NetworkStream AgAkimi = new NetworkStream(IstemciSoketi);     
     StreamWriter AkimYazici = new StreamWriter(AgAkimi);
     StreamReader AkimOkuyucu = new StreamReader(AgAkimi);

     try
     {

      // Gelen bilgi işleniyor
      string IstemciString = AkimOkuyucu.ReadLine();     

      String[] plBilgi = IstemciString.Split(':');     
     
      if (plBilgi[0].Trim().Equals("1"))
      {
       p1_x = int.Parse(plBilgi[1]);
       p1_y = int.Parse(plBilgi[2]);
      }
      else
      {
       p2_x = int.Parse(plBilgi[1]);
       p2_y = int.Parse(plBilgi[2]);
      }

      String message = listeVer();
      Console.WriteLine(listeVer());
     

      // oyuncuların konumları WriteLine metodu ile client'a gönderiliyor
      AkimYazici.WriteLine(listeVer() + EOF);
      AkimYazici.Flush() ;
     }
        
     catch
     {

      // Konsola bilgi gönderiliyor
      Console.WriteLine("Sunucu kapatiliyor...");
      return ;
     }
    }
   }

   // Bitti ulan

   IstemciSoketi.Close();
   Console.WriteLine("Sunucu Kapatiliyor..."); 
  }
 }
}

işte gençler basit bir server bu şekilde kodlanabilir.Tabii bu server tek bir portdan bilgi alıp veriyor. Aslında bilginin bir portdan alınıp client'in boş olan diğer portlardan birine yönlendirilmesi lazım. Bir portdan aynı anda yalnızca bir client bağlı kalabilir (kalıcı bir bağlantıdan söz ediyoruz) Sağolsun Poison kardeşim bu konuda beni aydınlattı Öpüyorum yanaklarından :)

Neyse bir de flash kodunu yazalım da tam olsun :

Bunda açıklama falan yok uğraşın anasını satayım. Bir tek htırlatma ekranda mov1_mc, mov2_mc isimli iki tane movieclip olması br de log tutmak için log_txt isminde bir dynamictext olması lazım. Aşağıdaki kodları ilk frame'e yazdıktan sonra eğerki yukarıdaki server'ı yapmış ve çalıştırmışsanız flash da çalışacaktır. Ama yapamamışsanız e ben ne diyim size bilmiyorum ki?

var xs_xmlsocket = new XMLSocket();
var data_xml = new XML();

// Baglaninca yapilacak islemler
xs_xmlsocket.onConnect = function(success) {
 if (success) {
  log_txt.text = "Bağlantı Başarılı!";
 } else {
  log_txt.text = "Bağlantı Başarısız!";
 }
}

// Data alininca yapilacak islemler
xs_xmlsocket.onData = function(msg)
{
 log_txt.text = msg;
 var plYer = msg.split(":");
 mov1_mc._x = parseInt(plYer[0]);
 mov1_mc._y = parseInt(plYer[1]);
 mov2_mc._x = parseInt(plYer[2]);
 mov2_mc._y = parseInt(plYer[3]);
}

// Bagklanti kapandigi zamanki islemler
xs_xmlsocket.onClose = function(doc) {
 log_txt.text += "Server Bağlantısı Kesildi";
}

// Mesaj Gonderme Fonksiyonu
function sendMsg(a)
{
 xs_xmlsocket.send(a + "\n");
}

// Baglan
if (_root.plNumber == 1)
{
 xs_xmlsocket.connect("localhost", 2800)
} else {
 xs_xmlsocket.connect("localhost", 2900)
}


// ****************************************************************
// Hareket Kontrolü
mov1_mc._x = _root.pl_1.x;
mov1_mc._y = _root.pl_1.y;
mov2_mc._x = _root.pl_2.x;
mov2_mc._y = _root.pl_2.y;

_root.onEnterFrame = function () {
 if(Key.isDown(Key.DOWN))
 {
  eval("_root.pl_"+_root.plNumber).y += 1;
 }
 if(Key.isDown(Key.UP))
 {
  eval("_root.pl_"+_root.plNumber).y -= 1;
 }
 if(Key.isDown(Key.LEFT))
 {
  eval("_root.pl_"+_root.plNumber).x -= 1;
 }
 if(Key.isDown(Key.RIGHT))
 {
  eval("_root.pl_"+_root.plNumber).x += 1;
 }
 
 message = _root.plNumber + ":" + eval("_root.pl_"+_root.plNumber).x + ":" + eval("_root.pl_"+_root.plNumber).y; 
 sendMsg(message); 
}

stop();

Kitap, Resim

Ursula K. LeGuin – Dispossessed (Mülksüzler)

10.01.2008

Selamlar beyler bayanlar,

Fazla zamanım yok konunun en ince noktalarını belirtip gidecem :)

Başlıkta belirttiğim Ada Sahip olan kitap tartışmasız hayatımda okuduğum en iyi kitaptır. Bir kere en sevdiğim konulardan birinin üzerine (Fizik) kurulmuş olup konunun geçtiği ortamın da süper tasarlanmış olması kitaba bir çok değer eklemiştir. Yazarı olan Ursula K. LeGuin hanımefendi nasıl oluyor da yazıyor bu romanları aklım almıyor :) Şimdiye kadar ne kadar romanını okuduysam beğendim hatunun.

Kitap Türkiye'de "Mülksüzler" adı altında çıkmış olup rahatlıkla bulunabilmektedir :) Yalnız kapak konusunda aşağıda da göreceğiniz üzere bu amerigonyalılar harika canım

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... :)