Archive for the “hatalar” Category


  • TObject sinifindaki degisiklikler
  • TObject sinifina yeni eklenen 6 adet metod var.

    
    class function MethodAddress(const Name: string): Pointer; overload;
    function FieldAddress(const Name: string): Pointer; overload;
    class function UnitName: string;
    function Equals(Obj: TObject): Boolean; virtual;
    function GetHashCode: Integer; virtual;
    function ToString: string; virtual;
    

    Bunlardan ilk ikisi olan MethodAddress ve FieldAddress zaten eski delphi surumlerinde de mevcuttu. Delphi 2009 da sadece unicode degisikliginden dolayi String tipinde parametre alan yeni surumleride ilave edilmis o kadar.

    Diger dort metod ise Vcl.net uyumlulugu icin eklenmis. Zira ToString metodunun yaptigi tek sey Classname degerini geri dondurmek.

    
    function TObject.ToString: string;
    begin
    Result := ClassName;
    end;
    

    GetHashCode ve Equals metodlari ise system unitinde su sekilde tanimlanmislar.
    (more…)

Comments No Comments »

3 arkadas para birlestirip bir radyo almaya gidiyorlar. Radyo 30 lira. Hepsi 10′ar lira koyup radyoyu alip gidiyorlar. Fakat sonra tezgahtar radyonun indirime girdigini ve 25 liraya düstügünü hatirliyor. Çiragina 5 lira verip,gidip para üstünü iade etmesini istiyor. Çirak 5 lirayi 3 kisiye bölüstüremeyecegini düsünüp 2 lirayi cebine atiyor ve 3 lirayi 3 kisi arasinda bölüstürüyor. Böylece elemanlar radyoyu 9′ar liraya almis oluyorlar.
toplamda 10X3 = 30 lira vermislerdi. 1 ‘ er lira geri alinca adam basi 9 ‘ ar lira vermis oldular.
9×3=27 lira
2 lirayi da cirak cebe atmisti. 27+2 = 29 lira
eeee peki ama 30-29 = 1 lira nerede?

Bu sasirtmacali soruyla karsilasmayaniniz yoktur sanirim. Soru bizi oyle zayif bir noktamizdan vuruyor ki saatlerce hesap kitap yapmamiza ragmen 1 liranin nerede oldugunu bir turlu bulamiyoruz. Buyrun bakin, hafizanizi tazeleyin. Google : 1 lira nerede ?

Cikan arama sonuclarina biraz goz atarsaniz “matematik bunu cozememistir” cevabindan tutunda “1 lira saticinin cebinde” diyene kadar, “soyut somut” olayina girip ortaya teoriler dokenine kadar bir cok cesitli cevaplar mevcut. Hatta soru bizi oylesine sartlandirmis ki gozlerimiz kor olmus adeta. Bazi sayfalarda cevabi dogru veren kisilere bile “hesabin hatali arkadasim, ortada 30 lira var ve 1 lirasi kayip” diye cevaplar yazilmis. Kisaca sebepsiz yere , sorunu tam olarak algilamadan, dusunmeden kendimizi 30 lirayi bulmaya sartlandirmisiz. 30 lira gercekten var midir ? Bulmamiz gereken sonuc gercekten 30 mudur diye hic dusunmeden.

ilerde kendi yazilim sirketimi kurdugumda is basvurusu icin gelen kisilere hangi dilleri biliyorsun sorusundan ziyade bu soruyu sormak istiyorum. Cunku sirkette bu soruyu cozmek icin epey ugrasan bir kisi zaten var. Bir tanesine daha gerek yok :)

delphi.blogda bu sorunun ne isi var diye dusunenlerden biraz daha sabir rica ediyorum. konuya girmeme az kaldi.

Kendimizi sartlandirma olayini sadece bu soruda degil malesef yazilim gelistirkende yapiyoruz. Sebepsiz yere kendimizi yanlis bir noktaya sartlandirip sonsuz bir donguye giriyoruz. Hobi amacli gelistirdigim bir projede teste dayali yazilim gelistirme yontemi kullanarak hobi amacli bir proje gelistiriyordum. TDD yontemini kullanirken yazdigim kodun % 100 u nu test edecek kodlar yazmam. Sadece yazilimin cekirdegini olusturan siniflarin kritik metodlari icin testler yazarim. Arabirim, bazi siniflarin birbiri ile iletisimi ve onemsiz ayrintilar icin test yazmak bana pek cazip gelmez. Boyle bir ortamin icerisindeyken projenin bazi calisma zamanlarinda yanlis isler yapip yanlis sonuclar dondurdugunu fark ettim. Hatayi duzeltmek icin ilk once birim testlerini kontrol ettim. her hangi bir sorun yoktu. Oyleyse test yazmadigim kodlar icerisinde gozden kacan bir kisim olmaliydi. aradim aradim aradim ama bulamadim. tekrar aradim aradim aradim yine bulamadim. artik oyle bir noktaya geldim ki sorunun delphin ya da windowstan kaynaklandigini dusunecek noktaya geldim. kafami toplamak icin biraz mola verdim. test yazmadigim kodlari yeniden kontrol ettim, hatali ya da hataya acik olabilecek cok fazla bir kod yoktu. Test yazmis oldugum kodlari incelemeye basladim. onlarda da bir hata gozukmuyordu. sonradan aklima yukarida anlattigim hikaye geldi. 1 lira nerde hikayesi. zamanin da 1 liranin nerde oldugunu cok aramis fakat sorunun beni sartlandirdigi yoldan gittigim icin bulmam biraz zor olmustu. Ne zaman ki farkli bir yol izleyerek soruyu cozmeye calismis o zaman “haaaaassssssseeekkkkttttooooorrrrr” demistim kendi kendime. ortada 1 lira yok ki 1 lirayi ariyorum iki saattir.

farkli yol ise suydu.
radyo 30 lira degilde 60 liraydi.
3 arkadas 20 ser lira verdiler radyoyu aldilar
sonra dukkan sahibi 10 lirayi geri gonderdi. cirak 10 lirayi 3 kisiye pay edemem diyerek
7 lirayi cebe atti ve 1 er lirayi geri verdi.

simdi elemanlar radyoyu 19 sar lira vererek kaca almis oldular soruya gore ?
57 liraya
e 7 lirayi da cirak cebe atmisti. 57+7 = 64 lira
hobaaaaa!
diger soruda 1 lira eksikti. bu soruda 4 lira fazla var :)

iste benim jeton burda dustu :)

bu dusunceyle varolan testlere alternatif olsun diye degisik rakam ve mantiklarla birer test daha yazdim. ve hobaaaa !

test ciftlerinden birisi testi gecerken birisi gecemedi.

1 lirayi ararken on yargilarim beni iki farkli yerde yaniltti.
1. si test yazdigim kodlarda hata yoktur diye iyice kontrol etmemem.
2. si test icerisinde yapilan islemi tek bir yolla kontrol etmenin beni hatalardan koruyacagini dusunmem.

Comments 1 Comment »

Delphi 2007 for win32 daha once bir kac beta blogger tarafindan incelendi ve izlenimlerini kendi bloglarinda yazdilar. Delphi 2007 Release olduktan sonra urunu inceleme altina alan bloggerlar da cogalmaya basladi. incelemelerden birisini bu adreste bulabilirsiniz.

18 e yakin hatayi QC ye kaydettigini belirten Fernando Madruga bu hatalarin bircogunun onemsiz hatalar oldugunu belirtesede piyasaya surulmeden once “RockSolid (Tas gibi)” olarak nitelendirilen Delphi for win32 icin RockSolid:=False; tanimlamasi yapmis ve son olarakta “Codegear henuz mukemmeli yapamadi ama yapmaya calisiyolar” diye fikrini belirtmis.

QC Client ile Delphi 2007 icin bildirilen hata listesine ulasip son karari siz verebilirsiniz :)

mesela rapor edilen garip hatalardan bir tanesi

Tool palette siralama yapildiginda ide nin kilitlendigini ve gorev yoneticisinde ide nin cevap vermedigi gibi bir hata var. yazilan aciklamaya gore bu hata 25 gun den daha fazla sure acik kalan pc lerde (hibernate olayi da buna dahil) Sleep(Delay - ElapsedTime); kodunun bu kilitlenmeye neden olduguymus. 25 gun den sonra ElapsedTime negatif bir deger donderdiginden sleep komutu uzunca bir sure sleepleyip duruyormus.

Comments No Comments »