Cumartesi, Mayıs 30, 2009

Bu fotoğrafta ne görüyorsunuz?

Ertuğrul Özkök dün, bu başlığı attı.


Ve, bu fotoğrafı koydu yazısına... Tekerlekli sandalyede oturan kişi, zırhlı aracının altındamayın patlaması sonucu bacağını kaybetmiş Amerikalı bir asker... Etrafındakiler ise, gönüllü bir kuruluşun üyeleri... Çeşitli mesleklere sahip olan bu gönüllüler, gaziler için evinşa ediyormuş... İşi, sadece devlete, sadece askere bırakmamışlar yani... "Şehityakınları ve gaziler, feragat ve fedakárlık isteyen savaşların kutsal emanetleridir"diyor Ertuğrul Özkök ve soruyor: "Bizler, yani, evladını oralarda kaybetmemişinsanlar, bu tarifsiz ıstırabı paylaşmak için ne yapıyoruz?"

*

Onu da ben yazayım.

*

Birincisi...

Askerlik mecburi olmadığı halde, ABD’yi yöneten insanların çocukları da o savaşlaragidiyor... Bizde, Mümtaz Soysal’ın oğlu gibi istisnalar hariç, Güneydoğu’da askerlik yapanmilletvekili-bakan çocuğu bulamazsınız... Çoğu, askerlik bile yapmaz... Bundan öncekiBaşkan’ın babası, Baba Bush, savaş pilotuydu, vuruşurken Japonlar tarafından düşürüldühatta... Şimdiki Başkan Obama, savaş kahramanı değil... Ama, hiç olmazsa, Şehit ve Gazilerden Sorumlu Devlet Bakanlığı’na, 4 yıldızlı bir generali, sol bacağından yaralanmış,Vietnam gazisi Eric Shinseki’yi getirdi... Ki, bizde, bırakın bir savaş kahramanı generalinkabineye alınmasını, tutuklanmamaları mucize.

*

İkincisi...

Hakkári’de aracının altında mayın patlaması sonucu, 5 arkadaşıyla birlikte şehit düşenuzman çavuş Ziya Bener’in Yozgat Arslanhacılı Köyü’ndeki baba ocağı...

*

Bu fotoğrafta ne görüyorsunuz?

Bir silah arkadaşı.

Bir bardak soğuk su.

Hürriyet/Yılmaz ÖZDİL


Salı, Mayıs 26, 2009

wxWidgets Olaylar(Events)-3

Dinamik Olay İşleyici
Dinamik olay işleyicisi statik olay tablolarına bir alternatiftir. Burada makrolar değil olay tipleri kullanılır. Dinamik olay işleyici wxEvtHandler sınıfının üyesi olan Connect fonksiyonudur. Bu fonksiyonun 3 tane aşırı yüklenmiş hali var. Bu 3 farklı kullanım şekli aşağıdaki gibidir.

void Connect(int id, int lastId, wxEventType eventType, wxObjectEventFunction
function, wxObject* userData = NULL, wxEvtHandler*eventSink = NULL)
------------------------------------------------------------
void Connect(int id, wxEventType eventType, wxObjectEventFunction
function, wxObject* userData = NULL, wxEvtHandler* eventSink = NULL)
------------------------------------------------------------
void Connect(wxEventType eventType, wxObjectEventFunction function, wxObject*
userData = NULL, wxEvtHandler* eventSink = NULL)

Parametre Tanımı
İd Olay işleyici fonksiyonla ilgili ID
lastId Olay işleyici fonksiyonla ilgili ikinci ID aralığı
eventType Gerçekleştirilecek olayın türü (Bkz:wxEventType)
function Gerçekleşmesini istediğimiz fonksiyon
userData Bilgi olay tablosu girişi ile alakalı olarak
userSink Üye Fonksiyon nesnesi

Örnek:
.h dosyasına fonksiyonları tanımlayalım
------------------------------------------------------------
void olusturButon(wxCommandEvent& event);
void olusturText(wxCommandEvent& event);
------------------------------------------------------------
.cpp dosyasına fonksiyonları yazalım
------------------------------------------------------------
void NesneYaratmaFrame::olusturButon(wxCommandEvent& event)
{
long ID_Buton = wxNewId();
wxString isim;
isim.Printf(_("Buton%d"),++sayacButon);
butonY +=25;
yeniButon = new wxButton(panelim,ID_Buton,isim,wxPoint(kX+50,butonY),wxSize(75,20));
//Tıklandığında butonu siler
Connect(ID_Buton,wxEVT_COMMAND_BUTTON_CLICKED,
(wxObjectEventFunction)&NesneYaratmaFrame::silButon);
}
void NesneYaratmaFrame::olusturText(wxCommandEvent& event)
{
long ID_Text = wxNewId();
wxString isim;
isim.Printf(_("MetinKutusu%d"),++sayacText);
textY +=25;
yeniText = new wxTextCtrl(panelim,ID_Text,isim,wxPoint(kX+200,textY),wxSize(100,20));
//Değişiklik olduğunda text kutusunu siler
Connect(ID_Text,wxEVT_COMMAND_TEXT_UPDATED,
(wxObjectEventFunction)&NesneYaratmaFrame::silText);
}
------------------------------------------------------------

Bu örnek ile dinamik olay işleyicilerinin (Connect() ) faydasını görmekteyiz. olusturButon() ve olusturText() fonksiyoları ile nesneler oluşturulduğu anda olaylarıda eklenmiş olacak. Yani çalışma anında olaylar atanmış olacak.

Pazar, Mayıs 24, 2009

wxWidgets Olaylar(Events)-2

Olay Tabloları
wxWidgets de olayları kontrol etmenin farklı yolları vardır. Bunlardan biri olay tablolarını kullanmaktır. Bunu için önce sınıfımızın içinde olay tabloları kullanacağımızı haber vermek için yazılmış olan DECLARE_EVENT_TABLE() fonksiyonunu kullanırız. Ardından sınıf dışında aşağıdaki bloklar içine olaylarımızı yazarız. Bu olayları yazarken wxWidgets'ın bize sunduğu nimetlerden biri olan olay makrolarını kullanırız.

BEGIN_EVENT_TABLE(benimSınıfım,mirasAlınanSınıf)
/*
Olaylarımızı bu aralığa yazarız
*/
END_EVENT_TABLE()

Alttaki resimde kendimce önemli gördüğüm makrıları,ne işe yaradıkları ile beraber açıklamaya çalıştım. Yok bana bunlar yetmez derseniz buradan daha fazlasına ulaşabilirsiniz.


Cuma, Mayıs 15, 2009

C++ 0x

Nedir bu c++ 0x?
Ben c++ 0x terimini ilk 2008 yılında duydum. Ufak bir araştırmadan sonra c++ denince Türkiye’de akla gelen ilk isimlerden olan Kaan ASLAN’ın bu konuda verdiği seminere ulaştım (başka bir Türkçe kaynak ta bulamadım ne yazıkki). Buradan seminer videosuna buradan da seminer sunusuna ulaşabilirsiniz. C++ 0x bir çeşit c++ güncellemesi (tabir ne kadar doğru bilmiyorum)olduğunu öğrendim. 0x olmasının sebebi henüz standartların tam olarak ne zaman getirileceğinin belirlenmiş olmamasından kaynaklanmakta. Ama 2009 da çıkmasının muhtemel olduğu söyleniyo. Zaten içinde bulunduğumuz yıl da çıkmazsa 0x ismi yalan olur gider : ) . Bu güncellemelerle c++’a yeni kütüphaneler ekleniyomuş veya eklenen kütüphaneler de düzenlemeler yapılıyomuş. İlk güncelleme 98 yılında yapılmış buna c++ 98 adı verilmiş. Daha sonra 2003 yılında bazı düzenlemeler yapılmış buna da c++ 03 denmiş. Bu güncellemelerde ki prensip aşağıdaki şekilde sıralanmış,
  • Geçmişe Uyumun Korunması
  • Performansın İyileştirilmesi
  • Modern sistemlerin gereksinimlerin karşılanması
  • Tür güvenliğinin artırılması
  • Standart Kütüphanenin Genişletilmesi
  • Daha kolay öğrenim ve kullanımın sağlanması

Kaan Aslanın kişisel sitesinden daha detaylı bir anlatıma ulaşabilirsiniz. Ayrıca siteye uğramışken bloğunu da incelemenizi şiddetle tavsiye ederim.

İngilizcesine güvenen arkadaşlar da bizzat Bjarne Stroustrup tarafından yazılmış c++0x yazısına buradan ulaşabilirler.

Pazar, Mayıs 03, 2009

Reklamcılıkta bir sanat işi gerçekten. Gecenin bir yarası nette gezinirken google chrome'un bu videosuna keşfettim. Süper düşünmüş adamlar :)). Ben çok beğendim. 54 saniyede heralde en güzel böyle anlatılabilirdi bir tarayıcı.