shw.rice
 
 

Archive for August, 2007

Gmail Movie (UNCESORED)

Thursday, August 30th, 2007

Codziennym zwyczajem przegladania sieci trafilem na filmik “od Google’a”. Otoz Google zorganizowal jakis czas temu akcje – uzytkownicy sieci mieli przesylac filmiki promujace Gmaila – dzieki znanej z uslugi kopercie. W rezultacie powstal mix 1100 filmow od internautow z 65 krajow. Czy udany – no coz.. o gustach sie nie dyskutuje. Jednak co warte zauwazenia (a zapewne nie kazdy skojarzyl) – porusza on pewien istotny problem z punktu widzenia teorii spiskowych nt. Google’a. Zauwazyliscie bowiem ile osob ma stycznosc i dostep do jednego maila? Ja jestem przerazony!

[youtube]http://www.youtube.com/watch?v=qKAInP_tmHk[/youtube]

.NET Cast VS as

Thursday, August 30th, 2007

Swego czasu, przyzwyczajony maniera z C++, w C# castowalem zmienne do typów korzystając znanego z C++ castownia

SomeType obj = (SomeType) otherObj;

I wszystko dziala ok do momentu problemu z castowaniem – tutaj pojawia sie wyjatek, ktory w jakis sposob trzeba obsluzyc. Nie zawsze wlasnie na tym nam zalezy, ale o tym za chwile.
W C# jest inna konstrukcja, o ktorej programista C++ moze nie wiedziec i nie korzystac:

SomeType obj = otherObj as SomeType;

Teoretycznie – moznaby pomyslec – to to samo. I tu cast i tu cast. Otoz jest pewna znaczaca roznica – w drugim przypadku nie wyrzuci nam wyjatku – jedynie objekt bedzie null’em.

Purysci stwierdza – ale przeciez wyjatki sa potrzebne – trzeba je obslugiwac, bo po to sa wyrzucane – zeby wiedziec, ze wystapil blad. Ok – moge sie z tym zgodzic, ale rzeczywistosc bywa zupelnie inna. Pierwszy lepszy przyklad – w przypadku importu danych czasami moga wystapic bledy, ktore po prostu chcemy ignorowac i zaimportowac poprawne dane. Mozna w tym wypadku korzystac z wyjatkow i je ignorowac, ale byloby to wysoce niewydajne – sprawdzenie wartosci == null jest tutaj wrecz idealne (mozecie sobie sprawdzic ile trwa obsluga 1000 wyjatkow, a 1000 != null).

Wybierz tło:
Gotowe Gotowe