27 Aralık 2008 Cumartesi
Yanardağlar..
20 Aralık 2008 Cumartesi
Görevini mutlu etmek olarak bilenlere..
04:04..
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..
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İ
Simülasyon..
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..
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..
Yeşillik..
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...
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ı..
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..
Bu NS2 beni deli ediyor..
20 Kasım 2008 Perşembe
NS2 Scheduler: Event UID not valid!
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
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..
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..
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 build-essential komutu ile halloluyor..
28 Ekim 2008 Salı
----
—Anonymous
19 Ekim 2008 Pazar
Dreamweaver ve flash butonlar..
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..
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ı..
Agent ve send..
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
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..
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);
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..
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
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..
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..
Kral Pic Basic Pro!
Bekleyin robot alemi, ben geliyorum..
21 Eylül 2008 Pazar
Pic programlama ve assembly..
19 Eylül 2008 Cuma
Bilgiler..
Const ve Pointer..
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..
Hayırlı olsun artık, ne diyim??
İbrahim hocaya..
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
---
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ı..
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..
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..
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..
NS zor..
Habersiz gelen..
İlginç dimi..
Yeni neslin de hiç zaman mefhumu yok ki kardeşim..
1 Haziran 2008 Pazar
gSaveMap ve Google Maps..
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!!!
Hem işi de kavradım. Kodlarla da gayet samimi olduk.
Bekle beni BB dünyası..
Ama önce misafirlerimle ilgilenmem gerekiyor...
BBbase.cc?!?
---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!!!
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..
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ı..
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..
24 Nisan 2008 Perşembe
MakeFile...
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"
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
g++ ana.o merhaba.o -o selamPrg
#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
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..
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..
25 Mart 2008 Salı
MSN Messenger ve Hotmail..
İ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..
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ı..
12 Mart 2008 Çarşamba
Flip-Flop Devresi..
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.