16 Kasım 2009 Pazartesi

Tasarım Desenleri (Design Patterns) Nedir?

bilyaz.com da çok önemli ve ilgi çeken bi konu olduğunu düşündüğüm tasarım desenleriyle ilgili bi yazı dizisi yazmaya karar verdim. İlk yazımı burdan okuyabilirsiniz:

http://www.bilyaz.com/tasarim-desenleri-design-patterns-nedir.html/

7 Kasım 2009 Cumartesi

Öğrenciyken Çalışmak mı?

İki hafta önce işe başladım. Çok ani oldu aslında bi arkadaşım telefon etti bilgisayar mühendisliği öğrencisi arıyorlar dedi, öyle deyince hiç kendimi olasılık dahilinde saymayarak kime söylesem diye düşündüm, ertesi gün babam sen gitsene olmadı yapamazsan yarın gelme derler zaten dedi, kaybedecek bişey yok dedi, aynı gün içersinde tamam ben gelcem dedim arkadaşıma ve başladım. Eskişehir Organize Sanayi içerisinde Atard Havacılık Savunma Sanayi AR-GE diye bir firmada. Part time gidiyorum tabi okulum var sonuçta haftada bir buçuk gün gitmeme rağmen zor geldi gene de. Bunda en önemli etken çok uzak oluşu ve ulaşımın tabana kuvvet gücüne paralel seyretmesi. Daha pek birşey yapmadım şimdilik bilgisayarları virüslerden kurtarma ve yedek alarak çöken hard diskleri kurtarma gibi kahramanca işlerde bulundum. Ama asıl benden istedikleri farklı tabi. Bir veritabanı sistemi kurup isteklerini karşılayack programları yazmamı ve bir server kurmamı istiyorlar. Burada işin can alıcı noktası şu: henüz veritabanı ve network dersi almadım. Tamamen kendi genel kültürümle yapacağım:) "Bu nası bi gaz kim verdi sana bu deli cesaretini yarısını da bana ver" diyenler oldu ama kaynağını bilmediğim bu güdü beni buraya kadar getirdi. Geçtiğimiz yaz 2.sınıfın sonunda yaz boyu 3 ayrı yerde yaptığım stajlarda edindiğim tecrübelere(!) dayanarak bişeyler yapmaya çalışacağım elimden geldiği kadar artık. Sonuçta ben öğrenciyim daha hiç hata olmasın diyolarsa paraya kıyıp hakiki öz bilgisayar mühendisi alsalardı canım. Öyle bi durum olursa adım hıdır elimden gelen budur derim çıkarım valla işin içinden...Tabi hızlı davranıp onlar beni kovmadan önce:)
Şaka bi yana öğrenciyken çalışmak bi ayrı zormuş onu da söylemeden edemeyeceğim. Ama o kaynağını bilmiyorum dediğim güdü var ya o sanırım "bu işleri halledip altından kalkarsan daha da bişey olmaz sana kızım öğrendiklerin paha biçilemez" güdüsü. İşte o olmasa çoktan bırakmıştım...

readmee.com tam gaz devam

Şu günlerde derginin kasım sayısı çıkacak ama ben ekim sayısını daha şimdi duyuruyorum kusura bakmayınız malum bir süredir işlerimden dolayı blog inputuna ve msn gibi iletişim araçlarına rağbet edemedim. Lafı fazla uzatmadan içeriği görelim.

Java Programlama Dizisi -5-
Bilişim Çağında Nanoteknoloji Olgusu
Google Servisleri -2-
Network Planlaması -3-
Captcha Kontrolü
IRONPYTHON
JQuery
VMware Tools, Settings ve DNS Kurulumu
Imagine Cup 2010
Actionscript 3.0 ile Platform Oda Oyunu Örneği -2-

Tüm yazılara http://www.readmee.com/ adresinden ulaşabilirsiniz. Bu sayıda da actionscript serime devam ettim. Stajda yaptığım oyunun ikinci kısmını anlattım. Gerçi yazması biraz aceleye geldi ama gene de başarılı diye düşünüyorum en azından kodların tamamı var başka hiçbişey olmasa bile bu yeterli olurdu zaten. O zaman niye makale yazıyosun kardeşim git kendi kendine bi source kod bankası yap madem diyebilirsiniz tabi bu durumda, haklısınız:) neyse ki ben açıklamasını da yazdım canım bu tarz düşünsel saldırılara maruz kalmayacağım çok şükür:)

9 Eylül 2009 Çarşamba

İstanbul 2.0:)

İstanbul gezimiz muhteşem geçti!:) 2 günlüğüne arkadaşlarla gezmeye gittik bi süredir yapmamıştık ara uzadı hadi gidelim dedik kendimizi istanbulda bulduk.:) ben de çok sevdiğim istanbulumla bir kez daha görüşmüş oldum:)


MSP sonuçları

Sonuçları heyecanla bekle bekle derken 5 eylülde açıklanması gereken sonuçlar sonunda gece 12.30u gösterirken açıklandı. Bu yıl msp seçilemedim. Geçen yıl msp olan arkadaşımız Selim Özenç tekrar seçildi. Kendisini tebrik ediyorum. Bir tek üzüldüğüm nokta okuldan sadece bir kişi seçilmesi oldu. İnşallah seneye iki kişiye çıkar böyle ümit ediyorum. Seçilen arkadaşlara başarılar. Seneye başvurularda tekrar görüşmek üzere.:)

2010 msp sonuçları: http://www.msakademik.net/msp2010.htm

31 Ağustos 2009 Pazartesi

readmee.com eylül sayımızı çıkardık

Evet eylül sayımız da çıktı sonunda sizi bekliyor şu an:) Bu ay gene okuyanı "allahım bu nasıl bir konu seçimi, bu nasıl bir bilgi pınarı" diye dehşete düşürecek bir sayı oldu. Linke tıklamadan önce iki kere düşünmek lazım bağımlılık yapıyor çünkü feedbacklerden bunu anlıyoruz.:) Şaka bi yana dergimiz çok sevildi ve müthiş bir okuyucu kitlesi yakaladık birçok farklı ilden. 6. sayımızı işte bu şevkle yayınlıyoruz. Bu ayki konularımız:

Sanallaştırma Teknolojileri ve VMware
Java Programlama Dizisi-4-
Yazılım Akademisi 2010
Network Planlamak -2-
Actionscript 3.0 ile Platform Oda Oyunu Örneği - 1
Prototype
Profiling
Google Servisleri
QT ile Veritabanı Bağlantıları
Armed Assault II

Bu ay gene oyun konuma devam ediyorum. Sevildiğini duyuyorum, en azından basit anlamda oyun yazmayı sevdirebilirsem ne mutlu bana. Herkese teşekkürler..
Yazıma burdan erişebilirsiniz: http://www.readmee.com/?p=854

IEEE Öğrenci Kongresi

İzmir teknokentte stajımı yaparken çok güzel bir tesadüf de oldu. Ben oradayken ieee'nin her yıl yapılan öğrenci kongresi denk geldi, çok iyi denk geldi ben böyle denklik görmedim:) Çeşme'de çıktığımız yat turundan bi kareyi paylaşayım. Rüzgardan saçım yüzüme karısmış ama maviliğin aktarımında kusur yok:) Denizin mavisi ve mangalda balıklar unutulmazdı... Darısı önümüzdeki sene yapılacak bi sonraki kongrenin başına:)

25 Ağustos 2009 Salı

Action Script 3.0 ve Flash ile Basit Bir Oyun Örneği

Action Script’ nin mantığını iyice öğrenebilmek için basit bir oyun yazmakla işe başlayabilirsiniz. Bunun için örnek olarak Action Script 3.0 ve Flash kullanarak bir oyun hazırlayacağız.
Oyunumuz şöyle olsun: Karelerden oluşan bir platform çizelim ve oyuncu, bu platform üzerinde gizleyeceğimiz bir kareyi kendi koyduğumuz belli zaman dilimi içersinde platforma tıklayarak bulmaya çalışsın. Bulduğunda bir üst levela geçsin ve bir üst levelda gizlediğimiz bu kare bir önceki levela göre daha küçük olsun. Öncelikle platformumuzun ve gizleyeceğimiz karenin çiziminden başlayalım. Bir flash dosyası açıp ekrana soldaki menüden çizgi çizme kısayolunun yardımıyla aralıkları sabit 45×45 olan kareler çizelim. Platformumuzun görüntüsü şöyle olacak:

Yazımın devamı: http://www.readmee.com/?p=636

C üzerine yazdığım makalelerim

C ile ilgili şimdiye kadar bilyaz.com da yazdığım yazıların linklerini bir araya getirdim. C de biraz daha kafa karıştıran konularda yazılar yazdım. Çünkü zamanında ben de öğrenirken bu konularda daha çok zorlanmıştım:) Kendime baktım ve nelerin daha zor anlaşıldığını ve bu dilin yapıtaşı olan konuları belirledim, bunlar üzerine yazılar yazdım. Umarım yararlı olmuştur veya olmaktadır.;)

C de Dinamik Hafıza Ayırma
C de Pointerlar
C de Dosya İşlemleri
C de Döngüler
C ye Giriş
Bağlantılı Listeler (Linked Lists)

MSP Yolunda:)

Msp başvuruları bu yıl biraz geç de olsa başladı. Evet geç diyorum çünkü iki hafta içinde hazırlamamızı bekliyorlar videoları:) Başlarda yaparım diyordum da süre azalınca bi stres sardı tabi. "eeee..."lemeden nasıl konuşacagım diye en önemlisi. Çünkü birkaç deneme çekimi yaptım ve doğaçlama konuşmak istediğimden söylediğim şeylerin arasında bi "es" kaçınılmaz oluyor. Benim de birinin konuşmasında en çok takıldığım şey aralardaki bu garip seslerdir. Tabi kendi konuşmamı izleyince de takıldım ben bu garip seslere! Aslında öyle vahim bir durum yok ama takıldım işte. Ama bu arada şunu fark ettim kendimden bahsederken. Gerçekten çok güzel işler yapmışım şimdiye kadar, sadece okula gidip gelmemişim. Kendimi geliştirmek için çok şey yapmışım. Hem de can-ı gönülden. Kendime bir alkış!:)
Msp olmayı gerçekten çok istiyorum. Çünkü mesleğimi çok seviyorum. Bu yüzden de sadece derse girip çıkmakla tatmin olmuyorum ve sosyal anlamda şimdiye kadar katettiğim basamaklardan bir üst basamağa çıkmak istiyorum. Hayallerime giden yolda Microsoftun yeri çok büyük çünkü. Ve hayatımda mutlaka Microsoft olsun istiyorum. Yani onu hayatıma koyacak kadar seviyorum ve istiyorum. Umarım bu 2009-2010 döneminde okulumzdaki microsoft student partner ben olacağım. Büyük sabırsızlıkla bekliyorum.:) Ama önce videomu çekmem lazım tabii. Hadi kolay gelsin bana.:)
http://www.msakademik.net//haberdetay.aspx?id=215

19 Ağustos 2009 Çarşamba

My Way

Evet bi tatil kokusu alıyorum:) Bir iki hafta sonra sonunda bi tatil yapmayı düşünüyorum. Okul bittiğinden beri stajdı çalışmaktı derken ilk defa bu yaz tatil yapma fırsatı bulamadım.. Ha üzülüyor muyum hayır.. Zaten benim tercihim. Bu yaz çalışmayı tercih ettim. İçimden gelen bir şeydi, zaten şu bölüme girdiğimden beri hep üstümde aklımda fikrimde bu var, zamanımı boşa harcamayıp bir şeyler öğrenmeyi bir hayat felsefesi haline getirmek. Bu sadece "böyle yapmalıyım" diyerek yapılacak bir şey değil, bunu yapmak için hayata bakış açın böyle olmalı. Öğrenmek senin için hayatın "default" olarak getirdiği bir şey olmalı ve sen buna karşı koymamalısın. Herkesten bir şeyler öğrendiğimin bilincine vardığımda 3 ay önceydi sanırım... Okuldaki bir arkadaşından köşedeki bakkala, kazı kazancıdan henüz tanıştığın birine kadar herkes. Herkesten bir şeyler öğrenebileceğini bilmek de aslında herkesi sevmekten geçiyor. İnsanları seversen ve onları hem iyi hem kötü yanlarıyla kabul edersen işte o zaman onlardan bir şeyler öğrenebilirsin. Ben de bu düşüncede hayatımda seyrederken bir bakmışım kendimi izmir teknokentte, bir bakmışım eskişehirin bağlar caddesinde bi firmada, bir bakmışım istanbulun nevizadesinde buluyorum. İşte bu benim yolum, I did it my way...

18 Ağustos 2009 Salı

Action Script 3.0 ve Flash Programlamaya Giriş

ActionScript, Flash geliştiricilerinin kullandığı, yapılan sunumun mantıksal işlemlerinin yapılmasını sağlayan script bir dildir. Nesne yönelimli programlama mantığıyla çalışması en büyük artılarından biridir. Java Scripte benzer yanlarıyla da bilmeyen biri için anlaşılması kolaydır. Anlatımına bazı kod parçalarıyla örnekler vererek devam edecegim.

Öncelikle uygulamamız için, aynı dosya içinde olmak üzere bir actionScript file ve bir flash file oluşturmamız gerekiyor. Adobe Flashın File/New seceneginden bu dosyaları oluşturun ve isimlerinin aynı olmasına dikkat edin. Aşağıdaki örnekte bu ismi Test olarak belirledim. Daha sonra flash dosyasının özelliklerine girin ve document class yerine de aynı ismi yazın. Oluşturduğumuz bu dosyaların isimleri ve koddaki public classımızın ismi de aynı olmalı. Çünkü mantık olarak düşünürsek bir arayüz yaratıyoruz, arayüze mantıksal işlem yapan kod kısmını bağlıyoruz. Bu kod kısmının hangi class olduğunun anlaşılabilmesi için aynı ismi veriyoruz.

Şimdi basit bir, ekranda bir textfielda “hello world” yazan, ana syntaxı tanıyacağımız bi kod yazacağız. Bunun için de şu an kod yazacağımız kısımı .as uzantılı olan actionscript fileı kullanıyoruz.

AS3 kodlarımızı her zaman package{ } içine yazıyoruz ve ardından kodumuzun çalışması için gereken classları çağırıyoruz. Bunun için import deyimini kullanıyoruz. Sprite classı AS3 te temel classtır ve grafikler de dahil nesneleri göstermemize yarar. Diğer classlar yazdığımız koda göre değişir. Burada bie textfield oluşturduğum için TextField classını da çağırdım ve bu yeterli oldu. Daha sonra public classımızı oluşturuyoruz. Bütün kodlarımızı bu bloğun içine yazıyoruz.

package
{
import flash.display.Sprite; //base class
import flash.text.TextField;

public class Test extends Sprite //public class
{
var tField:TextField;
public function Test() //constructor
{
init();
}
private function init():void
{
//textfield nesnesini yarat
tField = new TextField();

//textfieldın özellikleri
tField.autoSize = "left";
tField.background = true;
tField.border = true;
tField.x = 20;
tField.y = 20;
tField.text = "Hello world";

//ekranda göster
addChild(tField);
}
}
}

Değişken tanımlama AS3te var ifadesi kullanarak tanımlanıyor. Ardından değişkenin adı ve hangi türde olduğunu yazıyoruz. Burada TextField türünde bir değişken tanımladık. Tamsayı türünde bir değişken tanımlamak istersek var sayi:int; olarak tanımlıyoruz. Ardından classımıza bir constructor tanımlıyoruz. Constructorın farkı diğer fonksiyonlardan önce yazılmasıdır. Bu constructorımızda bir fonksiyon çağırdık. init() fonksiyonumuzu geriye bir değer döndürmediği için void tipinde ve private olarak tanımlıyoruz.

Fonksiyonumuzun içeriğine geçelim şimdi de. Fonksiyonda yapmak istediğimiz şey bir textfielda “hello world” yazdırmak. Bunun için bir textfield nesnesi yaratıyoruz. Nesneyi yarattıktan sonra textfieldın özelliklerine erişiyoruz. İstediğimiz şekilde özelliklerini tanımladıktan sonra x ve y koordinatlarına göre nerede olacağına da karar verdikten sonra bu textfielda ne yazacağımızı yazıyoruz.

Sonrasındaki satır unutmamanız gereken bir satır. Yarattığımız nesne hangi türde olursa olsun ekranda göstermek istiyorsak addChild(nesneAdı) ifadesini yazmamız gerekiyor.

Çalıştırdığımızda kodumuzun flash tarafındaki görüntüsü ise




olacaktır. Şimdilik ana AS3 kod yapısını ve tanımlamaları gördük ve ekrana “hello world” yazdık. Daha sonraki aşamalarda daha renkli ufak uygulamalarla devam edeceğiz. Herkese kolay gelsin.

Action Script 3.0 İle Webservicelere Bağlanma

AS3ten .NET veya php de olabilir, websericeler aracılığıyla bağlanmak için şöyle bir fonksiyon kullanıyoruz. Diyelim ki ben asp.net projeme bağlanmak istiyorum. Bunun için bağlantı yoluna .asmx uzantılı dosyamdaki bağlanmak istediğim webmethodun adını yazıyorum.

function sendService (id,cmd,args)
{
//bağlantı yolu
var scriptRequest:URLRequest = new URLRequest("http://localhost:81/ws.asmx/sendCMD");
var scriptLoader:URLLoader = new URLLoader();
var Vars:URLVariables = new URLVariables();

scriptLoader.addEventListener(Event.COMPLETE, handleLoadSuccessful);
scriptLoader.addEventListener(IOErrorEvent.IO_ERROR, handleLoadError);

//methoda gönderecegimiz parametreler
Vars.to =id;
Vars.cmd=cmd;
Vars.args=args;

//post olarak gönderiyoruz veri alacaksak get kullanıyoruz
scriptRequest.method = URLRequestMethod.POST;
scriptRequest.data = Vars;

scriptLoader.load(scriptRequest);

function handleLoadSuccessful(e:Event):void
{
trace("mesaj gönderildi.");
//eger kullandıgınız method bir şey döndürüyorsa bunu kullanmak için söyle yazın
trace(e.target.data);
}

function handleLoadError(e:IOErrorEvent):void
{
trace("mesaj gönderilemedi.");
}
}

Action Script 3.0 da Sürükle Bırak işlemi

AS3te movie clip haline getirilmiş bir nesneyi sürükle bırak (drag n drop) yapmak için, öncelikle key ismini verdiğim movie clipi nesnesini oluşturuyorum.

MyKey = new key();
MyKey.x = 5;
MyKey.y = 15;
addChild(MyKey);

Ardından nesnemiz için sürükle bırak eventlarını tanımlıyorum.

MyKey.addEventListener(MouseEvent.MOUSE_DOWN, dragStarter);

MyKey.addEventListener(MouseEvent.MOUSE_UP, dragStopper);

function dragStarter(e:MouseEvent)
{
foundKey.startDrag();

}


Burada herhangi bir koordinat belirleyelim ve eğer nesne bu koordinatlar içerisinde bir yere sürüklendiyse bırakılmasını isteyelim.

function dragStopper(e:MouseEvent)
{
if(MyKey.x > 180 && MyKey.x <> 100 && MyKey.y < 150)
{
MyKey.stopDrag();

}
}