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