27 Aralık 2008 Cumartesi

Yanardağlar..

1990'lı yıllarda Filipinler'deki Pinatubo Yanardağının yaklaşık 6 civarında bir büyüklükle gerçekleşen patlaması, dünya sıcaklığının 2,5 yıl boyunca ortalamanın 0,5 derece altına düşmesine ve yağışların azalmasına neden olmuştur. 

20 Aralık 2008 Cumartesi

Görevini mutlu etmek olarak bilenlere..

Ah be Ahmet! Ne garip iş şu başıma gelen. Nerden, nereye dedirtiyor insana hayat..
Dört koldan, dört akıncı koşar zihnime, hemde pek bi zamansız..

Belki de herşey senin yüzünden oldu.

04:04..

Gecenin şu saatinde, bir yandan tez yazarken, bir yandan da "doğacak çocuğumun sorumluluğunu alabilecek miyim acaba" diye merak ediyorum.
İşlerini heep son güne bırakan bir adam olarak nasıl bir baba olurum acaba??

Kadınlar ve Enerji..


Kadın metabolizmasında ne varsa, enerji ve enerjinin üretilebilmesi için harcanan kaynak miktarı arasında müthiş bir oran var. Az tüketim ve çok getiri söz konusu. Yani düşünsenize, bir tabak yemek bile ortalama bir kadını gün boyu idare edecek enerjiyi üretmesini sağlıyor ve hatta bir kenara stok dahi yapılıyor.
Erkekler içinse, bir tabak yemek ile en fazla 3 saatlik enerji çıkarılıyor. Önceki stoklarımdan kaybetmemek ve hareket etmeye devam edebilmek için günde defalarca yemek yemem gerekiyor örneğin..
Kadınlar, bu enerji stoklarından şikayetçi durumdalar ve sürekli, stok seviyesini düşürmeye çalışıyorlar.
Şimdi, şöyle bir önerim var. Malum artık evde kendi elektriğimizi üretebileceğiz. Kadınların spor yaparken kullandıkları aletleri enerji üretebilir, bu enerjiyi depolayıp tekrar kullanılabilir bir hale getirirsek eminim evlerimizin, enerji tüketimlerini ortalama %40 civarında düşürürüz.
Aslında, kadın milleti pek bir müsrif. Spor yaparken boşa harcanan enerjiyi bir düşünsenize..

13 Aralık 2008 Cumartesi

Dosta, düşmana..


Güneş bizimle doğar
Yağmur bizimle yağar
Bizimle coşar deniz
Ateş bizimle yanar

Biz Atatürk gençleriyiz
Sesimiz onun sesi
Bizimle yükselecek
ATATÜRK TÜRKİYESİ

Sevgimizle bilgimizle
Ulusumuzun hizmetindeyiz
Aklımızla coşkumuzla
ATAMIZIN İZİNDEYİZ

Fidan bizimle büyür
Çiçek bizimle açar
Bizimle sürer hayat
Ulus bizimle yaşar

Biz Atatürk gençleriyiz
Sesimiz onun sesi
Bizimle yükselecek
ATATÜRK TÜRKİYESİ

Ferhat Umut DİZDAR

Simülasyon..

Yaw bu simülasyon sonuçlarını beklemek pek bir heyecanlı oluyor.
Mesela, şimdi bi tanesinin bitmesini bekliyorum, sinema izler gibi, bir elimde cips, bir elimde kola..
Hele request sayısını arttırınca, ortalık şenlik oluyor. Gerçi o zaman, simülasyon süresinden çok daha fazla beklemek gerekiyor. Yani 1000 sn lik bir simülasyon yapıyosam, genellikle 1,5 yada iki katı bir süre beklemem gerekiyor..

12 Aralık 2008 Cuma

Telsiiiz..

Doğan abim amatör telsizcilik belgesi almış. Haberini duyunca, eski günlerim geldi aklıma.
Antalyada meslek lisesinde okurkene, biraz elektronik dersi görünce, coşup telsiz yapmaya karar vermiştik arkadaşlarla. Bir koşu TRAC' a gittik, anlattık derdimizi.
Sağolsun işin erbabı abilerimiz, pek incitmeden defettiler bizi. Yok, halk bandı bizim ahlakımızı bozarmış, falan filan..
Aslında dertleri, yapacağımız dandik telsizle, mevcut sinyallere parazit oluşturacak olmamızdı sanırım.
Neyse, tıpış tıpış dinledik abilerimizi ve hiiç bulaşmadık bu işe.
Ama içimde de kaldı hani telsiz olayı..
Taa, ben üniversitede okurken uğraşıyordu, Doğan abi radyo ve telsizle. Hatta öncesi bile vardı, şimdi söylenmeyecek. Tebrik ediyorum kendisini valla, yılmamış gene..

Sigara..

Bu arada, şu tezi bi veriym harbiden bırakcam artık şu illeti..

Yeşillik..

Geçen gün Hasret, marketten döndüğünde "Kocaman bi marul aldım!" diye sevinerek girdi içeri. Malum, hamile olduğu için bolca yeşillik yemesi gerekiyor.
Bu gün, hatun yemeğin yanına salata talep edince, offlaya, pufflaya NS-2 nin başından kalkıp, sebzeleri yıkamaya koyuldum. Marulu görünce, harbiden bravo dedim. Gerçekten kocaman, yaprakları da pek bir diri..
Neyse, yıkadım falan derken, bi tadına bakıym dedim marulun.
Ülen, meğersem marul diye lahana almış hatun..

Ailecek cahiliz canım..

11 Aralık 2008 Perşembe

Tirebolu ve Balık..


Adnan Çelebi, dayısı ve Zafer Çelikle geçenlerde balığa çıktık. Açıkcası bu balık olayı beni sarmadı. Üstelik denizin çarşaf gibi olmasına rağmen, midem altüst oldu.
Elimin iğne batmadık yeri de kalmadı. Hayır, tamam ben de tuttum birkaç tane ama, yani ne biliym, balığı tut, sonra oltadan çıkar, sonra bir daha salla ve bekle..
Yok, beni açmadı yaa..

6 Aralık 2008 Cumartesi

Poisson ve inter-arrival time generation..


Sevgili hocam, İbrahim Bey, olayı daha da tatlandırmak için olsa gerek, simülasyona gelecek taleplerin poissona göre olmasını istedi. Yalnız ortada bir sorun vardı ki, bu garip Umut, ne istatistik bilirdi, ne de kafası matematiğe basardı.
Nitekim, Umut, oturdu, bilmem kaç gün uğraştı ve en son bu gün tam "artık başlıyacam atına da, teptiği askerlere de.." derken, dur ülen bi de şunu deniym dedi..
Valla galiba oldu. Hala tam olarak anlamadım bunu ama olsun..

Şimdi şöyle; aşağıdaki C++ koduna taleplerin olmalarını istediğim ortalama değerlerini verdiğimde, kaç adet değer üretilirse üretilsin, ortalamaları nerdeyse belirttiğim değer oluyor.
Yani, matematik ve istatistikten anlamayan bir bilgisayarcı olarak (O zaman bu sektöre ne işim var, dimi..) ancak bunu yapabildim..


int i;
int intervalCount;
double meanInterval;
double nextInterval;
double randomNumber;
double sum;

intervalCount = 8000;
meanInterval = 500;

ofstream fileOut;
fileOut.open ("poisson.txt");

srand( time(0) );
sum = i = 0;
while (i <= intervalCount){
randomNumber = rand()/(RAND_MAX + 1.0);
nextInterval = -meanInterval * log(1 - randomNumber);
sum += nextInterval;
printf("Interval = %f\n", nextInterval);
fileOut << nextInterval << " " << randomNumber << "\n";
i++;
}
printf("---Mean = %f --- \n", sum/intervalCount);

27 Kasım 2008 Perşembe

Ohoooo...

Ortalık tam bir request potporisi oldu.
Hep beraber tüm request tipleri kol-kola verdiler halaya tutuştular. Kim kime izin veriyo, nasıl veriyo, verince naapıyor hepten curcuna oldu..
En temizi kapıya sağlam bi adam dikeceksin, kimlik no falan sorucak akışlar için. Bak o zaman bant genişliği sorunu oluyo mu..

Karıştı bu laaaayn..

26 Kasım 2008 Çarşamba

24 Kasım 2008 Pazartesi

NS2 ve BB Uygulaması..

Ya vallaa, az önce BB için Book-Ahead rezervasyonu bitirdim. Immediate rezervasyonları da yapıyor. Bantgenişliği ayarlaması da yapıyor.
TCL ile simülasyonu da gerçekleştirdim. Rezervasyon yapılan zamanlarda akışlar anlaşılan bantgenişliği ile başlıyor..
Ama İbrahim hocadan hala ses yok. Bakalım ne zaman yanıt verecek..
Tabii bir de ne yanıt vereceği meselesi var..

23 Kasım 2008 Pazar

NS2 TimerHandler..

Tam olarak 4 saattir aptal bir handler ı çalıştırmaya çalışıyorum. Anlamadım ki neden, ama birden çalışmaya başladı. Üstelik başta yaptığım şeyin aynısını yapmışken..

Bu NS2 beni deli ediyor..

20 Kasım 2008 Perşembe

NS2 Scheduler: Event UID not valid!

While I was trying to send more than one packet at a time by C++ codes, like BROADCASTing, this problem occured.
The reason for the error is, giving the send command for the same packet again and again. Created packet had already been sent, so creating another packet with the same header but different destination and sending new packet each time solved the problem..


int tmp;
tmp = here_.addr_;//BBBase must be on the node created finally..
for(int i = 0; i <= tmp; i++){
dst_.addr_ = i;
Packet* gonderiPkt = allocpkt();
hdr_BB* hdr_gonderi = hdr_BB::access(gonderiPkt);
hdr_gonderi->cmd = UALIVE;
send(gonderiPkt, 0);
}
return (TCL_OK);



Ferhat Umut Dizdar..

18 Kasım 2008 Salı

Implementing new agent in NS

in packet.h file you have to add the lines;
static const packet_t PT_BBB = 62; (Certainly, 62 is based on your own packet.h file..)
and
name_[PT_BBB]="BBB";
Also, makefile must be edited to compile agentBB.cc file.
TCL Example;



set ns [new Simulator]

set testTime 20

set namFile [open out.nam w]
$ns namtrace-all $namFile

set traceFile [open out.tr w]
$ns trace-all $traceFile

proc bitir {} {
global ns traceFile namFile
$ns flush-trace
close $traceFile
close $namFile
#exec perl throughput.pl &
#exec nam out.nam &

exit 0
}


set src [$ns node]
set dst [$ns node]

$ns duplex-link $src $dst 10Mb 5ms DropTail
$ns duplex-link $dst $src 10Mb 5ms DropTail


set agentBB1 [new Agent/agentBB]
$ns attach-agent $src $agentBB1
set agentBB2 [new Agent/agentBB]
$ns attach-agent $dst $agentBB2
$ns connect $agentBB1 $agentBB2

$ns at 1.0 "$agentBB2 sendto $agentBB1 0"

$ns at [expr $testTime + 1.0] "bitir"

$ns run




Ferhat Umut Dizdar

Implementing new agent in NS--agentBB.h



#include "agent.h"
#include "tclcl.h"
#include "packet.h"
#include "address.h"
#include "ip.h"

struct hdr_BB{
int cmd;

static int offset_;
inline static int& offset() { return offset_; }
inline static hdr_BB* access(const Packet* p) { return (hdr_BB*) p->access(offset_); }
};

class agentBB : public Agent {
public:
agentBB();
~agentBB();
virtual int command(int argc, const char*const* argv);
virtual void recv(Packet*, Handler*);
int sendto(nsaddr_t, int);
};


Implementing new agent in NS--agentBB.cc



#include "agentBB.h"

#define UALIVE 0 //Are you avlive
#define IMALIVE 1 //Yes I am alive

int hdr_BB::offset_;


static class agentBBHeaderClass : public PacketHeaderClass {
public:
agentBBHeaderClass() : PacketHeaderClass("PacketHeader/BBB",
sizeof(hdr_BB)) {
bind_offset(&hdr_BB::offset_);
}
} class_BBBhdr;

static class agentBBClass : public TclClass {
public:
agentBBClass() : TclClass("Agent/agentBB") {}
TclObject* create(int, const char*const*) {
return (new agentBB());
}
} class_agentBB;

agentBB::agentBB() : Agent(PT_BBB)
{
// printf("agentBB Constructor..");
}

agentBB::~agentBB(){
}

int agentBB::command(int argc, const char*const* argv)
{
if (argc == 4)
{
if (strcmp(argv[1], "sendto") == 0)
{
printf("Packet will be sent to Destination : %s with cmd : %d\n",argv[2], atoi(argv[3]));
return (sendto((nsaddr_t)atoi(argv[2]),atoi(argv[3])));
}
}
return (Agent::command(argc, argv));
}

void agentBB::recv(Packet* pkt, Handler*)
{
int cmd;
nsaddr_t senderAddress;

hdr_BB* hdr_BB_gelen = hdr_BB::access(pkt);
hdr_ip* hdr_ip_gelen = hdr_ip::access(pkt);
cmd = hdr_BB_gelen->cmd;
senderAddress = hdr_ip_gelen->saddr();
printf("Packet Received from %d with cmd : %d\n", senderAddress, cmd);
if(cmd==UALIVE){
printf("--Are You Alive Packet-- is Received..\n");
sendto(senderAddress, 1);
}
if(cmd==IMALIVE){
printf("--I am Alive Packet-- is Received..\n");
}
}

int agentBB::sendto(nsaddr_t destination, int cmd)
{
printf("Prepairing to send packet..\n");
dst_.addr_ = destination;

Packet* gonderiPkt = allocpkt();
hdr_BB* hdr_gonderi = hdr_BB::access(gonderiPkt);

if(cmd == UALIVE){
hdr_gonderi->cmd = UALIVE;
}
if(cmd == IMALIVE){
hdr_gonderi->cmd = IMALIVE;
}

send(gonderiPkt, 0);
return (TCL_OK);
}

16 Kasım 2008 Pazar

Implementing DSCP to NS Environment..

Öncelikle ip headerında DSCP tanımlaması için ip.h dosyası düzenlendi.
ip.cc ile C ve tcl bind gerçekleştirildi.
agent.h dosyasında ve agent.cc dosyasında gerekli düzenlemelere yapıldı. Böylece agent initpkt zamanında varsayılan DSCP ataması yapabilir.
ns-default.tcl de agent için varsayılan DSCP ataması yapıldı.
trace.cc de trace dosyasında DSCP görüntülenmesi sağlandı.
dsPolicy.h dosyasında policyTableEntry yapısında DSCP eklendi.
PolicyEntry eklemesi tcl üzerinden önceden source ve destination için gerçekleştiriliyordu.
$qE1C addPolicyEntry [$s1 id] [$dest id] TokenBucket 20 $cir0 $cbs0
Ancak bundan sonra
$qE1C addPolicyEntry $dscp TokenBucket 20 $cir0 $cbs0
şeklinde DSCP için gerçekleştirilecek. argv2 source argv3 destination argv4 queueType argv5 codePt argv6 cir argv7 winSize idi.
Bundan sonra argv2 dscp argv3 queueType argv4 codePt argv5 cir argv6 winSize(yada diğer parametre ne ise, cbs..) olacak. Yani argv değerleri 1 azaldı..
dsPolicy.cc de;
getPolicyTableEntry(int DSCP) olacak şekilde ayarlandı. Tabii, dsPolicy.h dosyasında da aynı ayar yapıldı.
printPolicyTable DSCP ile görüntüleme yapacak şekilde ayarlandı..

NS ve hatalar..

warning: no class variable Agent/UDP::DSCP_

see tcl-object.tcl in tclcl for info about this warning.
Bu hatanın nedeni C ile bir değişkenin Tcl ile bind edilmesi ancak ns-default.tcl dosyasından bağlantısının yapılmamasıdır.

30 Ekim 2008 Perşembe

Debian Gcc sorunu..

sudo apt-get install gcc
sudo apt-get install build-essential komutu ile halloluyor..

28 Ekim 2008 Salı

----

A physicist, an engineer, and a computer scientist were discussing the nature of God. “Surely a Physicist,” said the physicist, “because early in the Creation, God made Light; and you know, Maxwell's equations, the dual nature of electromagnetic waves, the relativistic consequences....” “An Engineer!,” said the engineer, “because before making Light, God split the Chaos into Land and Water; it takes a hell of an engineer to handle that big amount of mud, and orderly separation of solids from liquids....” The computer scientist shouted: “And the Chaos, where do you think it was coming from, hmm?”
—Anonymous

19 Ekim 2008 Pazar

Dreamweaver ve flash butonlar..

Dreamweaverdaki hazır flash button ları kullanmak istediniz diyelim. Sayfaya bir güzel yerleştirdiniz, linkleri verdiniz. Ama şöyle bir sorununuz var;
Kendi sayfalarınıza verdiğiniz linkler çalışırken, başka sitelere verdiğiniz linkler çalışmıyor.
Merak etmeyin aslında o linkler de çalışıyor ama sizin makinanızda sınırlamalardan dolayı çalışmayacaktır. Eğer hazırlamış olduğunuz sayfayı bir sunucuya upload ederseniz başka sitelere bağlantı verdiğiniz flash butonların da çalıştığını görürsünüz.
Eğer illa benim makinamda da çalışsın diyorsanız, kendi makinenize IIS kurun..

6 Ekim 2008 Pazartesi

QueueDizdar..

First I have to say that I am just a rookie on NS..
Just trying to understand how NS ticks..
And it is reeaally hard for me to get that..
But I am now quite happy that I successfully completed my first queue design..
Well, I know it is not doing anything new..

But this design gives me the opportunity to identify and understand every line of that code..
Hope it helps..
If something is missing or wrong about that .cc and .h files, please make me know..

Ferhat Umut Dizdar

QueueDizdar.cc




#include "queueDizdar.h"

static class QueueDizdarClass : public TclClass {
public:
QueueDizdarClass() : TclClass("Queue/QueueDizdar") {}
TclObject* create(int, const char*const*) {
return (new QueueDizdar);
}
} class_queue_dizdar;

void QueueDizdar::enque(Packet* p) {
if(dusurmeTipi == 0) { //önden düşürme = front drop
if((kuyruk->length()) >= qlim_){//is queue full
//add the received packet to the end of the queue
kuyruk->enque(p);
//will be the first packet in the list
Packet* listedeIlkPaket;
//find the first packet
listedeIlkPaket = kuyruk->head();
//deque the first packet in the queue
//so the head will automaticaly jumps to
//next one on the queue
kuyruk->deque();
//drop that first packet that was just released
drop(listedeIlkPaket);
}else{//if not full add received packet
kuyruk->enque(p);
}

}else{
if(dusurmeTipi == 1) { //sondan düşürme = end drop
if(kuyruk->length() >= qlim_){//is queue full??
drop(p);
}else{
kuyruk->enque(p);
}

}else{ //rastgele düşürme = random drop
if(kuyruk->length() >= qlim_){//is queue full??
kuyruk->enque(p);
Packet* dusurulecekPaket;//this is the one which will be dropped
//find the packet by random number
//this is done by the lookup function
//func. returns the n th. packet
dusurulecekPaket = kuyruk->lookup(Random::integer(kuyruk->length()));
kuyruk->remove(dusurulecekPaket);//remove the selected packet
//from the queue
drop(dusurulecekPaket);
}else{
kuyruk->enque(p);
}
}
}
}

Packet* QueueDizdar::deque() {
kuyruk->deque();
}


QueueDizdar.h



/*
önden, sondan yada rastgele paket düşürmeli
kuyruk boyu ayarlanabilir
kuyruk deneyi 1

front, end or random drop style
queue length can be set
(queue experiment no:1)

Ferhat Umut DİZDAR fumutdizdar@gmail.com
ferhat.umut@gmail.com
*/
#include "queue.h"
#include <math.h>
#include <sys/types.h>
#include "random.h"


class QueueDizdar : public Queue {
public :
QueueDizdar () {
//real queue derived from PacketQueue
kuyruk = new PacketQueue;
dusurmeTipi = 1;
//dusurmeTipi Tcl connection
//so dusurmeTipi can be reached through TCL
bind("dusurmeTipi", &dusurmeTipi);
}
~QueueDizdar() {}
protected :
void enque(Packet* p);
Packet* deque();
PacketQueue* kuyruk;
int dusurmeTipi;
//0=önden düşürmeli=frontdrop
//1=sondan düşürmeli=enddrop
//2=rastgele=randomdrop
};



5 Ekim 2008 Pazar

NS ve ( error: two or more data types in declaration of ) hatası..

Bu hatanın nedeni noktalı virgül. Evet, bu kadar basit. Bana tam olarak 2 saate mal oldu. Yeni bir kuyruk tipini denemek için hazırladığım bir adet .cc ve bir adet .h uzantılı kodu derlemeye çalışırken karşılaştım. Hatayı .cc sayfasında göstemesine rağmen aslında hata header dosyasındaki class tanımlamasından sonra ";" ü unutmuş olmamdan kaynaklanıyormuş..

Agent ve send..

Bir agent için, send komutu verildiğinde, agent, bunu;
send(Packet* p, Handler* h) { target_->recv(p, h); } şeklinde yorumlar.

Agent connector sınıfından türemiştir ve connector de target;
inline NsObject* target() { return target_; } şeklinde tanımlanmıştır.
Yani bir NsObject nesnesinin yerini gösteren bir pointerdır aslında target.

Böylece aslında send komutu bir diğer nesnenin recv fonksiyonuna paketin ulaşmasını sağlar.

Gönderim - Alım zamanı gibi birimler double olarak tanımlanır. Bu değişkenlere o anın zaman etiketi yazılmak istenirse;
hdrCevap->gonderimZamani = Scheduler::instance().clock(); denmelidir.

4 Ekim 2008 Cumartesi

Class Queue ve Class PacketQueue

Aslında Queue sınıfının yaptığı pek bir şey yok. Zaten paket Queue ya ulaşınca recv fonksiyonu çağrılıyor ve önce enque ve sonrada deque çağrılıyor. Bu iki fonksiyon Queue sınıfında virtual tanımlı ve boş.
Queue diğer kuyruk sınıflarına temel olması için tasarlanmış. Ama genel olarak enque ve deque fonksiyonlarını sağlayan PacketQueue kullanılıyor.
PacketQueue sınıfında tanımlı enque fonksiyonu gelen paketi, eğer listede başka paket yoksa en başa kaydediyor. Listede paket varsa, bir önceki paketin "sıradaki paket" yani next alanını yeni gelen paketi gösterecek şekilde ayarlayıp yeni paketi de listeye ekliyor, liste boyutunu arttırıyor ve kuyruk sonu işaretçisini son gelen paketi gösterecek hale getiriyor.
Deque fonksiyonu ise, FIFO mantığı ile, head ile işaret edilen yani listedeki ilk paketi listeden kaldırmak için tasarlanmış. Bu fonksiyon head işaretçisini, listede yer alan sıradaki pakete yönlendiriyor ve kuyruk boyunu bir azaltıyor..

1 Ekim 2008 Çarşamba

ECN ve Çakışma..

ECN ve Çakışma Engelleme..
IP headerında ECN için iki bit ayrılmıştır. Acrıca TCP, TCP headerında yer alan iki adet bayrağı(ECN-Echo ve CWR - Congestion Window Reduced) da kullanır. ECN nin amacı paket düşürmeden, çakışmayı engelleyebilmektir.

TCP de ECN nin kullanımı seçimliktir. Eğer kullanılacak ise iki tarafında bu hususta anlaşmış olmaları gerekir.

Eğer anlaşma gerçekleşirse, gönderici gönderdiği bütün paketleri ECN-capable codepoint ile işaretler. Yaklaşan bir çakışmayı fark eden router paketleri düşürmek yerine Congestion Experienced Codepoint ile işaretler.

Alıcı bu işaretli segmenti alınca, göndericiye, ECN-echo bayrağı set edilmiş bir ACK yollar. Gönderici, congestion window boyutunu düşürür ve bunu Congestion Window Reduced codepoint ile işaretlenmiş bir paket göndererek bildirir..

Tcl dosyalarına komut yollama..

    sprintf(out, "%s recv %d %3.1f", name(),
hdrip->src_.addr_ >> Address::instance().NodeShift_[1],
(Scheduler::instance().clock()-hdr->send_time) * 1000);
Tcl& tcl = Tcl::instance();
tcl.eval(out);

Yukarıdaki kodun bir agent' ın C kodlarında yazıldığını varsayarsak bu durum da bu satıra gelindiğinde, nsin çalışmasına neden olan Tcl dosyası içerisinde yani simülasyonun yapıldığı tcl dosyası içerisinde, recv isimli bir prosedür aranacaktır.
Yani bu yolla C içerisinden Tcl içerisindeki bir fonksiyon çağrılabilir. Eğer Tcl içerisine yazılmış olan fonksiyondan bir değer geridöndürmemiz gerekse idi bunu da tcl.result(void) fonksiyonunu bir değişkene atayarak yapabilirdik.

Bu arada Packet* pkt = allocpkt(); komut verildiğinde yeni bir paket oluşturulur. Ancak bu komutu içinden çağırdığımız agent, muhtemelen başka agentlardan türemiştir ve her agent kendi sınıfına ait olan header kısmını doldurup yollar. Örneğin TCP agent kendi başlığını doldurmadan önce zaten başlığın common header ve IP header kısımları doldurulmuştur.

29 Eylül 2008 Pazartesi

Sakız, sigara ve bıyık..

Eğer bıyıklıysanız ve "sigara içmek yerine sakız çiğneyeyim.." diye düşünüyorsanız, sakııın balon yapmayın!!

Ve sakın sonra "böyle olmadı bari sigara içeyim" demeyin!! Yoksa sigara içmeye kalktığınızda, balon yapış eyleminden bıyıklarınıza yapışıp kalan sakız, sigaraya yapışır, sakızda, sigarada ağzınızda ööle birbirine yapışır kalır alim Allah..

Kaldı da..

24 Eylül 2008 Çarşamba

Bir packet için pointer tanımlanır. Paket header kısmına kullanıcı yeni bir başlık structı ekleye bilir. Bunu yapabilmek için paket manager da aşağıdaki ayar yapılmalıdır;

int hdr_mm::offset_;

// Mulitmedia Header Class
static class MultimediaHeaderClass : public PacketHeaderClass {
public:
MultimediaHeaderClass() : PacketHeaderClass("PacketHeader/Multimedia",
sizeof(hdr_mm)) {
bind_offset(&hdr_mm::offset_);
}
} class_mmhdr;

Bundan sonra artık üretilen paketlerde yeni başlık bilgisi için de bir alan açılır.

23 Eylül 2008 Salı

C++ ve Sınıf Türetme..

Taban sınıftan yeni bir sınıf türetilirken : atomu kullanılır;

class turemisSinif : public tabanSinif{} Bu komut ile, sınıf bilinirlik alanı dışında, türemiş sınıf taban sınıfa ait olan tüm public fonksiyon ve değişkenlere erişebilir, ancak sınıf bilinirlik alanı içerisinde, hem public hemde protected fonksiyon ve değişkenlere erişebilir.

Türemiş sınıfın kurucu fonksiyonu çalıştırıldığında, önce taban sınıfa ait kurucu fonksiyon çalıştırılır sonrasında türemiş sınıf kurucu fonksiyonuna geçilir.

Eğer varsayılan kurucu fonksiyon dışında bir kurucu fonksiyon çağrılacaksa;

turemisSinif :: turemisSinif() : tabanSinif(parametre){} şeklinde çağrılabilir.

22 Eylül 2008 Pazartesi

Assembly, Jal, Pic Basic Pro..

Şu kısa zaman içerisinde önce assembly ile başlayıp, sonrasında "bu ne lan, kaç satır oldu bu kod!?!" şeklinde şaşırmam ilen beraber JAL kardeşimize geçmemle ve ardı sıra "anaa, ne kolay oldu beah!" diyerek şaha gelişimi takiben Pic Basic Pro üstat ile şans eseri karşılaşmam sonucu "bu iş son noktadır abicim!" dememlen son bulan serüvenim sonucunda Pic Basic Pro da karar kılmış bulunmaktayım..

Kral Pic Basic Pro!

Bekleyin robot alemi, ben geliyorum..

21 Eylül 2008 Pazar

Pic programlama ve assembly..

LIST    p=16F628 ; PIC16F844 is the target processor
#include "P16F628A.INC" ; Include header file

sayac1 equ 0x20
sayac2 equ 0x21
sayac3 equ 0x22
sayac4 equ 0x23

basla
bsf 0x03, 5 ; Statusun 5. bitini 1 yap yani bank 1 seçili
   movlw b'00000000' ; w rege 0 aktar
   movwf 0x86 ; TrisB yi sıfırla yani tüm B portlari çıkış
movwf 0x85 ; TrisA yi sıfırla yani tüm A portlari çıkış
bcf 0x03, 5 ; Statusun 5. bitini 0 yap yani bank 0 seçili
yak
movlw b'11111111';w registerine 1 leri doldur
movwf 0x05;sonra bu birleri PORTA ya yolla yani ledleri yak
call bekle1sn
movlw b'00000000';w registerine 0 ları doldur
movwf 0x05;sonra bu sıfırları PORTA ya yolla yani ledleri söndür
call bekle1sn
goto yak

; azalttan itibaren 3 saykıl, bu durumda 0,00000075 zamanda bir
;dongu tamamlanıyor. Bir milisaniye yani sn nin 1/1000 i için
; yaklaşık 1332 kez dönmeli. Bu durumda sayac 222 yapılır ise
;altı kez döndürülür ise bir ms geçmiş olur..
bekle1msn
movlw d'222'
movwf sayac1
movlw d'6'
movwf sayac2
azalt1ms
decfsz sayac1, 1
goto azalt1ms
decfsz sayac2, 1
goto azalt1ms
return

bekle10msn
movlw d'10'
movwf sayac3
azalt10ms
call bekle1msn
decfsz sayac3, 1
goto azalt10ms
return

bekle1sn
movlw d'100'
movwf sayac4
azalt100ms
call bekle10msn
decfsz sayac4, 1
goto azalt100ms
return
end

19 Eylül 2008 Cuma

Bilgiler..

mutable anahtar sözcüğü ile tanımlanan sınıf elemanları, sınıfa ait const fonksiyonlar tarafından da değiştirilebilir.

Const ve Pointer..

int x = 1;
const int *ptr = &x;
dediğimizde artık *ptr integer tipinden bir nesneye işaret etmektedir. Ancak const olarak tanımlandığından yani gösterdiği nesne consttur dendiğinden bu nesneye bir atama yapamaz. Yani aşağıdaki satır yanlıştır.
*ptr = 8; Ancak ptr bir başka nesneyi gösterecek şekilde sonradan ayarlanabilir.

int x = 1;
int const *ptr = &x;
dediğimizde ise artık kendisi const olan integer tipinde bir alanı işaret eden bir pointer tanımlamış oluruz. Pointerın gösterdiği nesnenin değeri yani *ptr ye bir atama yapılabilir ancak ptr nin bir başka nesneyi göstermesi sağlanamaz.

Eğer const int const *ptr = &x; şeklinde bir tanımlama yapmış olsaydık bu durumda hem işaret edilen adres yani ptr hem de işaret edilen nesne yani *ptr değiştirilemez olurdu..

18 Eylül 2008 Perşembe

Bandwidth Broker..

Yapmayı planladığım simülasyonun Delphi ile gerçekleştirilmesi durumunda bunu bilim aleminin inatçı ve referanscı şahsiyetlerine nasıl yediririm bilemediğim için tekrar cümle alemin kabulünü görmüş olan NS e yani meşhur Network Simulator e geri dönmüş ve satırlarında kaybolmuş bulunuyorum..

Hayırlı olsun artık, ne diyim??

İbrahim hocaya..

İbrahim hocam;
Olur ya kaza eseri bu bloga erişirseniz; biliyorum ki beni çook tembel ve yüksek lisansı sadece zaman harcamak için yapan, sorumsuz bir öğrenci olarak görüyorsunuz. Ama inanın her gece en az 3 saat çalışıyorum ben.

Valla..

Ferhat Umut Dizdar

---


They point the finger at me again,
You point the finger at me again,
So I wanna run away,
And never say goodbye..

17 Eylül 2008 Çarşamba

C++ Pointer ve Referans İlişkisi..


Yandaki gibi bir örnekte öncelikle a = 5 diyerek örneğin adresi FFF olan bir bellek hücresine a adını veriyor ve hücre içerisine 5 değerini yazıyoruz. &a yaparak a nın adresini yani FFF değerini elde edebiliriz.

Sonra &r = a diyerek &r içerisine a nın adresini yani FFF i aktarmış oluyoruz ki bu durumda r nin değeri de 5 oluyor. Yani FFF hücresinin adı hem a hem de r oluyor.

Sonrasında ise *p = &a diyerek bellekte örneğin adresi CCC olan bir hücreye a nın adresi olan FFF i yazıyoruz. Yani &p yi sorgularsak CCC elde ediyoruz. Ancak p yi sorgularsak CCC adresinde kayıtlı olan FFF i elde ediyoruz. *p yi sorguladığımızda ise p adındaki hücresinin yani CCC adresli hücrenin içeriğinde adresi yazan(FFF) hücrenin içeriğini sorgulamış oluyoruz ki bu da 5 oluyor.
*p = 7 dediğimizde p hücresinde(CCC) adresi yazan hücrenin(FFF yani adı hem r hem de a olan) içeriğini 7 yapmış oluyoruz. Böylece hem r yi hem de a yı aynı anda 7 yapmış olduk. Çıktı şöyle; Referans değerlere başlangıç anında atama yapılır ve sistem referansın değerini yada adresini tutmak için başka bir bellek alanı kullanmaz. Bu nedenle referanslar sonradan değiştirilemezler. Ancak pointerlar içindeki değer başka bir hücrenin adresi olan hücrelerdir ve değerleri sonrasında değiştirilebilir.

16 Eylül 2008 Salı

C++ Notları..

& atomu ilk tanımlama ile kullanılır. Bu atomun arkasından gelen işleç, kendisine atanan nesne haline gelir.
int a = 20;
int &b = a;
b = 30;
olması durumunda b öncelikle 20 değerini alır, sonra ise b ve a 30 değerini alırlar..
* atomu ise pointer için kullanılır.

int a = 20
int &r = a dememiz durumunda olan şey a integer değerinin saklandığı hücre adresini &r ye aktarmış olmamızdır. Eğer r başında & olmadan kullanılırsa kendisi aslında hücre adresinin gösterdiği yer yani a olur. Bu nedenle zaten buna referans denir. Yani takma isim gibi düşünebiliriz..
Bundan sonra
int x = 5;
r = x; dese idik bu durumda r ve a (yani aynı bellek hücresinin iki adı) 5 e eşit olacaklardı. Referanslar oluştururken atandıkları bellek hücresinden başka yeri gösteremezler. Program içeriside gösterdikleri konum değiştirilemez.
Oysa bir pointer eğer const olarak tanımlanmamış ise program içerisinde farklı değerler alabilir.

Pardus..

Pardusta paket yönetimi için pisi kullanılıyor.
Herhangi bir paketin sistemde yüklü olup olmadığını sorgulamak için check parametresini kullanabilirsiniz;
Pisi check aalib gibi..

11 Eylül 2008 Perşembe

Vmware ve Sata sürücüler..

Malum Pardus 2008 çıktı. Gcc versiyonunu değiştirmişler ve NS i çalıştırmıyor. Valla epey bi uğraştım sanırım doğru kaynaklara ulaşamadım ki, kuramadım eski gcc versiyonlarını. Bende Pardus 2007 ye döneyim dedim.
Vmware' i açıp yeni sanal makine tanımladıktan sonra harddiskte yer alan iso dosyasından kuruluma başladım ki, pardusun makinedeki hard diski görmediğini bildiren bir hata mesajı geldi.
Neyse bunun çözümü için, yeni sanal makine tanımlarken Typical demeyin, Custom u seçin ve SCSI adaptörleri kısmında BusLogic değil LSI Logic i seçin. Bu işlemden sonra kurulum başlıyor..

10 Haziran 2008 Salı

Bandwidth Broker ve Delphi..

Bıraktım NS falan yaw. Kendim yapıcam simulasyonu. Hem de delphide. Zor oluyor gerçi sınıfları oluştur birbirine bağla falan ama naapalım.

NS zor..

Habersiz gelen..

Uğur amca, Ablam hala, Orçun dayı, annem babaanne, babam dede ve ben de BABA oluyorum!

İlginç dimi..

Yeni neslin de hiç zaman mefhumu yok ki kardeşim..

1 Haziran 2008 Pazar

gSaveMap ve Google Maps..

Yüksek lisansta yazdığım bir program var, gSaveMap. Bu program ile google maps te yer alan haritaları kaydedebiliyorsunuz. Coğrafyacı arkadaşların yada köyünün kasabasının büyük boyutlu uydu resimlerini isteyenlerin işine yarayacaktır. Hocam yayınlamamamı istemişti ama dersten geçtim nassı olsa..
Programın URL kısmına download etmek istediğiniz haritanın en üst solundaki resmin adresini yazıyorsunuz. Sonra yatayda ve dikeyde kaç kare ilerleneceğini belirleyip download demeniz yeterli. Belirlediğiniz klasörlere resimler inecektir.
Resim adresleri http://kh2.google.com/kh?n=404&v=13&t=trttrqrtttrtrtqqsss genel olarak bu şekilde. Bu adresleri Firefoxta google maps i açtıktan sonra Araçlar/Sayfa bilgileri/Ortam sekmesinden alabilirsiniz.
Umarım işe yarar.
Programı indirmek için buraya tıklayın..

28 Mayıs 2008 Çarşamba

Yapboz Versiyon 2.1..


Az önce hiç tanımadığım birinin uzun süredir Yapboz' u kullandığını anlattığı bir e-posta aldım. Ne yalan söyliyim mutlu oldum. İnternette Yapboz' a ulaşmak biraz zor. O yüzden aşağıda veriyorum.

Yapboz programına buraya tıklayarak ulaşabilirsiniz.

Eğer yukarıdaki adres çalışmıyorsa, lütfen burayı deneyin..

17 Mayıs 2008 Cumartesi

Ohh beah!!!

En sonunda Bandwidth Broker kodlarını NS ile entegre edebildim. Biliyorum ki İbrahim Hocam henüz bu aşamada olduğumu bilse aazıma sıçar. Ama halledicem..
Hem işi de kavradım. Kodlarla da gayet samimi olduk.
Bekle beni BB dünyası..

Ama önce misafirlerimle ilgilenmem gerekiyor...

BBbase.cc?!?

Sorun arkasına sorun. Tam birini halletim derken bir diğeri çıkıyor. Şimdi de BBbase.cc de cons char* dan char* a illegal çevrim hatası veriyor. Bakalım bulabilcem mi??

---18/05/2007 02:05---
Neyse ki bunu da buldum. Aslında basitmiş. Arkadaşlar Bandwidth Broker kodlarını hazırlarken, tcl.result() çıktısını verebilmek için char* kullanmışlar. char* ları const char* haline getirince sorun çözülüyor. Tabii bunu bütün BB kod sayfaları için yapmak gerekli..

14 Mayıs 2008 Çarşamba

İmdat!!!

Yahu kaç saattir şu salak hata ile uğraşıyorum:

common/ip.h:98: error: declaration of `int& hdr_ip::from_node_()'
common/ip.h:73: error: conflicts with previous declaration `int hdr_ip::from_node_'
common/ip.cc: In member function `virtual void IPHeaderClass::export_offsets()':
common/ip.cc:59: error: ISO C++ forbids taking the address of a bound member function to form a pointer to member function. Say `&hdr_ip::from_node_'
common/ip.cc:59: error: cannot convert `&hdr_ip::from_node_' from type `int&(hdr_ip::*)()' to type `char*'
make: *** [common/ip.o] Hata 1

Network Simulator-2(ns-2) yi yeniden derlemeye çalışırken veriyor bu hatayı. Mevcut tanımlı değişkenler gibi integer bir değişken tanımladım oysa. Nerden çıktı bu yasak işi, nasıl çözülür acaba??

Bilen varsa iyi olur beah..
Ferhat Umut DİZDAR

---18/05/2008 01:50---
Sorunu çözdüm, biraz ara vermek iyi oluyor sanırım. Fonksiyon adını yazarken de yanlışlıkla değişkenin adını kullanmışım. Fonksiyonu from_node şeklinde düzenleyince sorun ortadan kalktı.

11 Mayıs 2008 Pazar

Pardus : yarım kalan paketleri yeniden yüklemek..

Eğer bir pakette sorun varsa yada yükleme işleminde hata olduysa:
sudo pisi it paketadı --reinstall
komutunu verin.
pisi check
komutu ile hangi paketlerin sorunlu olduğunu görebilirsiniz..
Örn : sudo pisi it firefox --reinstall

Pardus libqt-mt.so.3 dangalak hatası..

error while loading shared libraries: libqt-mt.so.3: cannot open shared object file: No such file or directory şeklinde bir hata alıyorsanız, ne tasma, ne pisi ne de firefox çalışıyorsa muhtemelen siz de benim gibi yarım kalan bir paket kurulumu kurbanısınız.
Mesele şöyle; bu libqt-mt.so.3 aslında olması gereken yerde duruyor ancak ne yazık ki bulunamıyor. Path e baktığımızda LD_LIBRARY_PATH kısmının boş olduğunu görürüz. Yani en azından bende öyle. Şöyle yapalım:
export LD_LIBRARY_PATH=/usr/qt/3/lib:$LD_LIBRARY_PATH
Valla bunu yaptıktan sonra ben en azından konsoldan uygulamaları başlatabildim...
Daha iyi bir yolunu bilen varsa yada soruna tam çözüm olabilecek bir şey biliyorsanız lütfen yorum olarak ekleyin..

30 Nisan 2008 Çarşamba

JK Flip Flop ile 4 bit sayaç devresi..



Yanda 555 entegresi ile yapılan sinyal üretecinden giriş tetiği alan 7476 JK Flip Flop entegresi ile yapılmış 16 lık sayaç görülüyor. Sayaç çıkışında 4 adet led sürülürken bir yandan da BCD çıkış 7446 entegresi ile 7 segmentli displaye aktarılıyor..

Ferhat Umut Dizdar

24 Nisan 2008 Perşembe

MakeFile...

Linux konsolundan make komutu verildiğinde içinde bulunulan dizin içerisinde makefile dosyası aranır ve bulunur ise çalıştırılır.
Compiler kaynak dosyaları alır ve hedef dosyaları üretir
Linker ise hedef dosyaları alıp çalıştırılabilir dosyaları üretir.
Temel makefile şöyledir;

hedef:bağımlılıklar
[tab]sistem komutları

g++ yi düşündüğümüzde -c parametresi "compile et ve birleştir ama link etme" derken -o parametresi "çıktı dosyasın bu olacak" demektir.

Örnek olarak üç dosyamız olduğunu düşünelim: merhaba.h merhaba.cc ve program.cc..
---merhaba.h---
void merhabaDeBize();
void hoscakalDeBize();

---merhaba.cc---
#include "merhaba.h"
#include iostream // bunu küçük büyük işareti içine al

using namespace std;

void merhabaDeBize(){
cout << "Merhaba" << style="color: rgb(255, 102, 102);">---ana.cc---
#include "merhaba.h"
#include iostream // bunu küçük büyük işareti içine al

int main(){
merhabaDeBize();
hoscakalDeBize();
return 0;
}

Eğer ana.cc dosyasını "g++ ana.cc" şeklinde derlemeye çalışırsanız olmayacaktır. Çünkü ana.cc içerisinde kullanılan merhabaDeBize ve hoscakalDeBize fonksiyonları merhaba.h header dosyasında tanımlanmış ve merhaba.cc dosyasında da ne yapacakları belirlenmiştir. Ancak ana.cc yi derlemeye kalkan compiler ın bundan haberi yoktur. Derleyebilmek için ise "g++ ana.cc merhaba.cc" dememiz a.out isimli çalıştırılabilir dosyayı üretmemizi sağlar. a.out dosyasını çalıştırabilmek için ise konsolda "./a.out" yazmalıyız.
Burada ki "./" a.out dosyasının içinde bulunulan klasörde olduğunu ifade eder.

Tekrar makefile a dönelim;
Temel olarak makefile içerisindeki hedefler karşılaşılma sıralarına göre çalıştırılırlar. Programımızı derleyecek makefile şöyle olmalıdır;

---makefile---
all: tumunuDerle
# "all" makefile dosyaları için temel hedeftir.

# (1) tumunuDerle ye gidecek

# (2) ana.o ve merhaba.o hedeflerine git
tumunuDerle: ana.o merhaba.o
g++ ana.o merhaba.o -o selamPrg
# (5) merhaba.o ve ana.o yu kullanarak
#slmPrg çalıştırılabilirini oluştur..

ana.o: ana.cc
g++ -c ana.cc
# (3) sadece ana.cc yi compile et


merhaba.o: merhaba.cc
g++ -c merhaba.cc
# (4) sadece merhaba.cc yi compile et


22 Nisan 2008 Salı

Random Drop..

Random Drop : Düşürülmesi için rastgele seçilen paketlerin, yoğun olarak paket gönderen kullanıcılara ait olma olasılığının daha yüksek olması fikrine dayanır. Son gelen paket değil, kuyrukta mevcut olan paketlerden rastgele birisi atılır. Slow-Start kullanmayan göndericilerin, kullananlara göre çok daha fazla kaynak kullanmaları ile sonuçlanır. Kuyruk boyu 2000 ve drop olasılığı 0,001 ise 200 de 1 oranında düşürme yüzdesi vardır.

Early Random Drop..

Early Random Drop – Hashem – Kuyruk boyu önceden belirlenen bir drop level değerini aşarsa, gelen paketler yine önceden belirlenen bir drop probability ye göre düşürülür. İleri ki uygulamalarda drop level ve drop probability ağ yoğunluğuna göre otomatik olarak ayarlanabilecektir. Gücünün temelinde, Drop Tail gatewaylerde kuyruk boyu aşıldığında bütün paketlerin düşürülmesi sonucu paket gönderimi yapan kaynakların, window boyutlarını toplu halde düşürmeleri ve bu nedenle az önce sıkışıklık yaşanan gateway de bu kez de büyük bir kaynak israfı yaşanacağı fikri vardır. ERD de ise, sadece rastgele seçilerek düşürülen paketlerin göndericiler window boyutlarını yeniden düzenleyecek ve böylece kaynak israfının önüne geçilecektir.

Queue vesaire..

Round-Robin : First Come First Served tersidir. Farklı kuyruklara ayrılmış paketlerin dönüşümlü olarak aktarılmasını sağlar. Boyutları farklı paketlerden oluşan kuyruklar için iyi değildir çünkü paket boyutu gözetilmeksizin önceden belirlenen N adet paket gönderilir..

Fair Queueing : Paketler gönderici-alıcı çiftine göre ayrı kuyruklara alınır. Round robin ilkesi ile paketler gönderilir. Çakışma olursa, en uzun kuyruktaki paketler düşürülür. Uzun boylu paketlerin daha çok bant genişliği kullanması ile sonuçlanır. Örneğin birim zamanda bir paket gönderilmesine izin veriliyor ise, uzun paketlerin göndericileri daha uzun süre hat sahibi olmuş olurlar.

Bit-Round Fair Queueing : Round robin yerine bit-by-bit round robin kullanılır. Böylece paket boyutları arasındaki farklılıkların yarattığı sorunlar ortadan kaldırılır.

MDRR

Her turda kuyruklardan belirlenen miktarda byte gönderilir. Quantum değeri ayarlanan byte miktarıdır yani bir turda kuyruktan gönderilmesine izin verilecek ortalama byte miktarıdır. Deficit counter ise her kuyruktan sırası geldiğinde gönderilen byte miktarını tutar. Bunun nedeni eğer gönderilen byte miktarı bir turda aşılırsa öteki turda daha az veri göndererek ortalamayı yani quantumu tutturmaktır.

Bandwidth Broker ve NS2

Bu konuda söyleyecek bir şeyim yok valla..
Ne işmiş bu yaw.
Neyse linux ta, iki dosya arasındaki farkları merak ettiğinizde dosyaları yan yana iki pencere halinde açıp "ehe, ööö, iiih" şeklinde gözlerinizi kısa kısa aramanıza gerek yokmuş. Ben de bir süre böyle yaptıktan sonra farkettim ki bu linuxun diff diyen bir uygulaması var. Arkadaş sizin için nerede ne değişmiş, hangi satır silinmiş, hangisi eklenmiş söylüyor. Hatta arkadaşlar sağ olsunlar arayüzünü bilem yapmışlar;
kompare -caption "%c" %i %m -o %U yazın konsola ne güzel açılıyor valla..
İşimi çok kolaylaştırdı çoook.
Da, ben şu bandwidth broker olayını bir anlayamadım gitti...

17 Nisan 2008 Perşembe

Evlenmeden Önce ve Sonra..

Evlenmeden önce;

Erkek : Evet, en sonunda, beklemek çok zordu..
Kadın : Gitmemi ister misin?
Erkek : Hayır! Böyle bir şey aklımın ucundan bile geçmez..
Kadın : Beni seviyor musun?
Erkek : Elbette, hem de sürekli, defalarca..
Kadın : Beni hiç aldattın mı?
Erkek : Hayır! Böyle bir şeyi yapacağımı nasıl düşünürsün!!
Kadın : Beni öper misin?
Erkek : Evet, imkanını bulduğum her an hem de..
Kadın : Peki, beni dövecek misin?
Erkek : Deli misin, ben öyle bir adam değilim!
Kadın : Sana güvenebilir miyim?
Erkek : Evet..
Kadın : Sevgilim!!

Evlendikten sonra nasıl olduğunu merak ediyorsanız bir de aşağıdan yukarıya doğru okuyun bakalım..

6 Nisan 2008 Pazar

Oy men ölmüşem... Gavim gardaş nerdesen?







Oğuzam
Türk menem...
Bayatlardan Türkmenem...
Damarlarındaki asil kan
Aslına çektiğin ırk menem...
Yaprağın asılı dallar,
Gövdeni taşıyan kök menem...
Yolunu gözleyen yar
Aşkınla çarpan yürek menem...
Can içre canan bilmişem gavim gardaş, nerdesen...
Yedi koldan,
Yirmidört boydan
Gelmişem Orta Asyadan...
Yayından fırlayan ok
Huduttan hududa atılan mızrak
Deli havalar soluyan kısrak
Gibi esmişem...
Az gitmişem, uz gitmişem
Dere tepe düz gitmişem...
Kuş uçmaz kervan geçmez dağları
Göçebe adımlarla gezmişem...
Irağı yakın, yurdumu Irak eylemişem...
Tırnaklarımla oymuşam tortu kayaları
Kıraç toprakları gözyaşlarımla sulak etmişem...
Kızgın tohumlar serpmişem,
Emek vermişem,
Aşa getirmişem...
Türk illerine haber salmışam
Gavim gardaş, nerdesen...
Selçuklu şah-ı sultanlarım adım atmış otağıma
Kapıda karşılamışam civan mert erlerimi
Başım gözüm üstüne berhudar ağırlamışam...
Musul’da Zengiler
Kerkük’te Kıpçaklar
Erbil’de Beg Teginliler
Yiğit yatağı Atabegler kurmuşam
Dokuz başlı tuğlar aparmışam yad ellere
Türk’ün adını âlemlere duyurmuşam...
Bayındır Kızanı torunlarımı kucaklamışam
Bahar coşkusu Akkoyunlar gibi ovalara yayılmışam...
Sultan Cined’in emaneti
Şah İsmailimle pişirmişem ham yanlarımı
Ocağımda tüten Safevi ateşiyle alev alev yanmışam...
Genç Osmanlıyla açmışam Bağdat’ın kapısını
Cahiliye devrini hepten kapatmışam...
Dil, din ve ırk özgürlüğüyle donatmışam halkları
Çıra gibi aydınlatmışam kör karanlık tarihi
Çevreme ilim, irfan, ışık saçmışam...
Derin hülyalara dalmışam gavim gardaş, nerdesen...
Ne zaman ki
Türk birliğine diş bilemiş düşman
Çapraz fişek silahıma davranmışam...
Zırnık ödün vermemişem haa sevgimden
Korkmamışam heç
Ölümleri kuşanmışam...
Yalın ayak koşmuşam Kafkas cephelerine
Sarıkamış harekâtına katılmışam...
Buz kesmiş yüreğim Allah-u Ekber Dağlarında
Katmer katmer kefensiz donmuşam...
Çanakkale’de etten duvar olmuşam
Göğüs göğüse çarpışmışam Allah vekil
Bir adım geçirmemişem gâvuru öteye
Üst üste cansız yığılmışam...
Nasıl ki
Harb-i cihanlarla zayıflamışam
Güçten kudretten düşmüşem heyhat!
Yeraltı kaya yağlarım sulandırmış ağızları
Hemhal manda manda paylaşılmışam...
Öyle ki
Et ve tırnak misali ayrılmışam
Süt kuzu yavru gibi koparılmışam Anadolu’dan
Yılanlar tıslamış
Köpekler hırlamış ardımdan,
Sahipsiz kalmışam gavim gardaş,nerdesen...
Lord planları tayin etmiş kaderimi
Misak-i milli sınırlar dışına çıkarılmışam...
İtilmişem, kakılmışam, horlanmışam külliyen
Tekme tokat yerlere yatırılmışam...
Dağ ayılarının önüne atılmışam yaralı
Çöl develerinin hörgücüne tepe taklak asılmışam...
Türk menem demişem
Türkçe söylemişem
Eskiyaka’da kurşunlara dizilmişem...
Emeğimin hakkını istemişem
Gavurbağ’da linç edilmişem...
Adalet beklemişem
İplere gerilmişem...
Eşitlik yeğlemişem,
Zab suyu kana bulanmış
Altunköprü’de ekin gibi biçilmişem...
El insaf vicdan dilemişem
Zindanlara sürülmüşem...
Çığlıklarım katlimin sâlası
Diri diri gömülmüşem gavim gardaş, nerdesen...
Duy hele
Kimliğim değiştirilmiş
El-Temim olmuş Türkmen Kerkük
Hafızalardan kazınmışam...
Baas Baas bağırmışlar partizanca
Kin kusmuşlar yüzüm barabarı,
Evimden yurdumdan göçe zorlanmışam...
Kollarım kırılmış omuzlarımdan
İşkencelerle yoğrulmuşam...
Gözlerim kan çanağı
Fincan fincan oyulmuşam...
Ölmem yetmemiş kâfire
İp sarılmış cesedime
Sokaklarda dolaştırılmışam...
Cıncık gibi ortalığa saçılmış cism-i bedenim
Lime lime dağılmışam gavim gardaş, nerdesen...
Beterin beteri var...
Biri getmiş, ötekiler gelmiş...
Yağmurdan kaçarken doluya tutulmuşam...
Mavzerler çevrilmiş üzerime
Tetiklere sarılmış Puştlar
Merhamet beklerken, zulüm bulmuşam...
Böyük devletlerin böyük oyunu
Yok etmek Türk’ün soyunu
Çoraplar örülmüş
Çuvallar geçirilmiş başıma
Aslanım; kediye boğulmuşam...
Okumak yazmak yok...
Dilim damağıma bağlanmış
Düşünmem, konuşmam, kızmam yasak...
Başın kaldırıp bakmak
Gözün ucuyla süzmek ne cüret...
Elim ayağıma dolanmış
Oturmam, yürümem, gezmem yasak...
Taş kesilmişem gavim gardaş, nerdesen...
Di gah gel...
Di gel ölem di gel...
Adına gurban olam di gel...
Alnına kanım çalam di gel...
Bayrağım göğün mavi gülü, ay yıldızım sen...
Yurdum Türkmen eli, can özüm sen...
Soyum sopum Türkoğlu, yüzüm sürdüğüm izim sen...
Oy men ölmüşem gavim gardaş, nerdesen

TÜRK MİLLETİ YANINDA GAVİM GARDAŞ...
SEN AĞLAMA...
SEN ÖLME!..

4 Nisan 2008 Cuma

Proje..

Malum proje tabanlı beceri yarışmasına katıldık. Önceden de beklediğim derece alamama sonucuna erdik ama kırıcı oldu benim için. Çok çılgın projeler vardı gerçekten. Erinmemiş, oturmuş, çalışmış, üretmiş öğretmen arkadaşlarımız. Kendilerine gıpta ile bakar ve tebrik ederken, kendimi dünyaa proje işinden tevkif ederim..

25 Mart 2008 Salı

MSN Messenger ve Hotmail..

"Cross Site Scripting" ile kimlerin şifreleri gitti kim bilir.
İnternette dolaşırken güvenlik isteyenlere önerim Mozilla Firefox kullanmalarıdır. Tabii sadece bununla kalmayıp, Firefox için geliştirilen NoScript eklentisini mutlaka kurmalısınız. Nette dolaşırken ıvır-zıvır sitelerde yer alan tehlikeli scriptler bu ikisinin birleşimi ile gayet başarılı şekilde engelleniyor.
Bilindiği üzere, masum kullanıcıların makinelerine tehlikeli dosyaları gönderebilmek yada sistemden temizlenmemiş cookie dosyalarını ele geçirebilmek için en temel yöntem script kullanmaktır.
NoScript eklentisi sayfalardaki scriptleri tarar ve zararlı bulduklarını engeller. Böylece nette rahaat rahat dolaşma imkanı sağlar.
Ayrıca, paranoyaklık olarak görülebilir ama, e-posta hesaplarına ulaşırken, başka sayfalarda gezinmeyin. Ve hatta, hesabınızdan çıktıktan sonra mutlaka sistemdeki mevcut cookieleri(çerez deniyor buna, aslında kurabiye oluyor sanırım??) yada sadece e-posta cookielerini temizleyin.



Mozilla Firefox Web Browserını(İnternet Gezginini) buraya tıklayarak indirebilirsiniz.



NoScript eklentisini ise Firefox u yükledikten sonra buraya tıklayarak kurabilirsiniz.

13 Mart 2008 Perşembe

Yazı yayın komitesi..

Bildiğiniz gibi okullarda panolara asılacak olan herhangi bir öge, okulda oluşturulan kontrol komitesi tarafından incelenir ve eğer bir sakınca görülmez ise arkası komite üyeleri tarafından paraf edilip asılır. Adnan Çelebi hocamızda bizim okulda bu komitede..
Bu gün F.Murat hoca, okulun öğrenci giriş kapısını yerinden söktü ve tamirini gerçekleştirdikten sonra tekrar taktı. Sonra da masum bir şekilde sigara içme odasına döndü.
Tam o sırada Erdem hoca, Adnan hocaya "yazıları size paraflatıyormuşuz hocam" şeklinde yanaşıyordu. Adnan hoca, durumdan dalga geçerek herşeyi kendilerine imzalatması gerektiğinden bahsediyordu ki, durdu, F.Murat hocaya
-Murat, sen az önce kapıyı astın değil mi?
-Evet.?.?
-Kardeşim, kapının arkasını paraflattın mı bize..
dedi ki ben "püöööhööüo" şeklinde gülmeye başladım. Valla okulda şu zamana kadar yapılmış en iyi espri olduğu kanısındayım. Koptum. Sağolsun Adnan hocam uzun süredir böyle gülmemiştim..

APR9600 Ses Kayıt Cihazı..


Apr9600 entegresi ile yapılan ses kayıt cihazının prototipi hazır. Bilgisayar kasasından söktüğüm hoparlörden ses alamadım, ben de masaüstü hoparlörü bulup jack a krokodillerler bağlantı yaptım. Çalışıyor. Sonra şema falan da yayınlarım herhalde..

12 Mart 2008 Çarşamba

Flip-Flop Devresi..


Solda bayağı bir flip-flop devresi görülüyor. Kendisi gayet basit ve harbiden bayağı bir devre olup yine de bir flip bir flop yapmaktadır.

Proteus simülasyonunda 0.1uF kondansatör kullanılmış ve başarıya ulaşılmışsa da pratikte devreye 22uF kondansatör bağladık.

20 Ocak 2008 Pazar

Windows CardSpace..


Windows CardSpace uygulaması, dijital kimlik kartı olarak yorumlanabilir. Kullanıcılar kendi kartlarını oluşturabildikleri gibi, bankacılık yada sanal ticaret gibi daha fazla güvenik gerektiren uygulamalar için sunucu tarafından da kart edinebilirler.
Kartlar kullanıcı bilgisayarında şifrelenmiş olarak tutulurlar ve birden fazla siteye giriş amacıyla kullanılabilirler.
Ülkemizde site tasarımcılarının ne zaman destek vermeye başlayacaklarını bilemiyorum ama Windows CardSpace gelecek vaat ediyor gibi.
Bu arada, sunucu tarafında Windows CardSpace desteği için https ssl kullanılması gerekiyor.
Siteye üye olunması için yine bir kart kullanılabiliyor. Bu kart sonrasında site ile ilişkilendiriliyor ve üyeliğin tamamlanmasının ardından kullanıcı sayfaya yerleştirilen bir düğmeye tıklayıp, site ile ilişkilendirdiği kartı seçtikten sonra kullanıcı adı yada şifre girmeksizin siteye giriş yapabiliyor.






----Bilgi Başlangıcı----
Sign-in yada giriş butonuna basılması kullanıcının makinasında yer alan Identity Selector yani kimlik seçiciyi çalıştırır. Kullanıcı kimliğini seçip sunduğunda we sitesi kullanıcı tarafından gelen güvenlik anahtarını alır. Sonrasında web sitesi güvenlik anahtarını çözerek içindeki PPID(Personal Private Identifier=Kişisel Özel Tanımlayıcı) ve public key i çıkarır. Sonrasında bu bilgiler veritabanından kontrol edilerek eşleşme olması durumunda kullanıcıya giriş hakkı tanınır.
PPID dinamik olarak oluşturulur ve web sitesinin SSL sertifikasının public anahtarı ile ilişkilendirilir.
----Bilgi Sonu----
Yine bu arada diyerek ekleyeyim, şimdiki yetkilendirme kontrollerinde ve kullanıcılar hakkında oluşturulan veritabanlarında kullanıcı ile ilgili bir çok detay saklanıyor. Oysa bu sistem ile siteler kullanıcıların kimlik kartlarında belirli verilerin olmasını şart koşabiliyorlar. Bu sayede verilerin site veritabanında saklanması yerine kullanıcı tarafında depolanması sağlanabiliyor.

13 Ocak 2008 Pazar

Yine NS..

Bir de şey var; tam "hah, şimdi oldu beah" derken yada bir konu ile ilgili veri ararken, "Aaa, benim kullandığımın daha gelişmişi varmıış.." demek insanı deli ediyor.

NS yani Network Simulator..

Taa Allah belasını versin bunun. Yahu ne zor işmiş. En basitinden bir diziye veri yüklemeyi arıyorum, bulmam yarım günümü alıyor. Yok mu kaynak neyin. Hem bu kadar karmaşık olmak zorunda mı. Bırakıcam TCL falan ver edicem C++ ı valla..