Rutina

28 February 2009

Am scris mai puțin săptămâna asta. În principal pentru că am fost destul de ocupat cu serviciul. Și nu zic asta în sensul că nu am mai avut timp nici să intru pe blog, ci pentru că momentan am intrat într-o rutină de nine-to-fiver – cafea, servici, acasă, puțin TV, puțin citit și somn. Oricum afară e frig, deci nu e de ieșit în lume.

Așa că nu am mai trecut prin nicio aventură care să merite să fie menționată aici. Cel mai palpitant lucru pe care l-am făcut săptămâna asta a fost că am mâncat ardeiul ăla iute la restaurantul chinezesc. Iarăși încep să mă plâng că am îmbătrânit. Păi acum câțiva ani atâtea tâmpenii făceam într-o săptămână că puteam povesti ore în șir ce și cum. Dar na, nu se mai poate. Om serios, la casa mea, chestii. Și ca să vedeți cât de mult m-am maturizat, acum în loc să ies zilnic în oraș la bere, stau acasă și mă joc cu soldăței.

Vreau să spun că nu am avut cea mai activă săptămână. Dar e bine, nu mă plâng. Stres puțin, o carte bună, mâncare și mai bună – pot trăi și nepalpitant.


Filme (aproximativ)

27 February 2009

Aș vrea să scriu din nou un post lung despre filme dar din păcate nu am mai văzut decât două filme noi. Am revăzut câteva filme, ca Dead Birds, dar asta nu se pune.

A apărut în sfârșit Futurama: Into the Wild Green Yonder. Am fost ieri să-l iau și deja se vânduseră toate blue-ray-urile, a trebuit să-l iau pe DVD. Înțeleg din asta că aici sunt mulți fani Futurama. Sau că nu sunt singurul ciudat care se uită la desene animate. Filmul a fost super, desigur, dar parcă nu atât de reușit ca Bender’s Game. Finalul a fost un final din care reiese că s-a gătat. Cu totul. C’est fini. No more Futurama. Trist.

Al doilea film pe care l-am văzut este End of the Line. Este un horror atât de prost, încât a trebuit să-l văd până la capăt. E despre niște oameni care merg cu metroul, printre ei fiind și o trupă de sectanți din ăștia la costum, toți cu biblii și cruci și chestii. Și la un moment dat le sună pagerele la sectanți și încep să înjunghie lumea. Și tot filmul se fugăresc prin tunelurile de metrou. Măcar sfârșitul a fost drăguț. Restul – jenant.

Aș vrea să văd Slumdog Millionair, care mi-a fost recomandat încă dinainte să ia o tonă de oscaruri, și… nu știu. Atât. Oare de ce nu se mai fac filme bune?


C# Custom Indexers

25 February 2009

To add an indexer to a class, similar to the ones on Dictionary or List for example, all you need to do is to create a property object this[object indexer]. For example:

class MyClass
{
    public string this[int index]
    {
        get
        {
            return "Hello world!";
        }
    }
}

The class can now be indexed using an integer and returns a string (“Hello world!” in our case). An example of using this indexer:

class Program
{
    static void Main(string[] args)
    {
        MyClass myClass = new MyClass();


        Console.WriteLine(myClass[10]);
    }
}

Indexing an instance of MyClass with any value yelds our string. Of course, any types can be used as indexer and returend values. And it is enough to implement a setter ( set { } ) to enable attributing to the indexed element.


Implicit Typecasting in C#

25 February 2009

To enable a class to be implicitely typecasted to or from another class, create a public static method marked with the implicit operator keywords as follows:

public static implicit operator ClassToCastFrom(ClassToCastTo object) {...} 

Either ClassToCastFrom or ClassToCastTo must be the containing class. As an example, consider the class MyClass:

class MyClass
{
    private string value;

    public MyClass(string value)
    {
        this.value = value;
    }

    public override string ToString()
    {
        return value;
    }

    public static implicit operator int(MyClass myClass)
    {
        return 10;
    }

    public static implicit operator MyClass(int int32)
    {
        return new MyClass("From int " + int32);
    }
}

The class encapsulates a string and implements operators that enable it to be implicitely casted to and from int. When typecasted to int, it will become 10. When typecasted from int, its value will become “From int ” + the value of the int.

An example of implicit typecasting:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(20 + new MyClass(""));

        MyClass myInstance = 10;
        Console.WriteLine(myInstance.ToString());
    }

    static void ToInt32(int int32)
    {
        Console.WriteLine(int32);
    }
}

Notice that you can add an instance of MyClass to an int and you can assign an int to a MyClass instance.

We need  to call myInstance.ToString() instead of just passing myInstance to WriteLine because WriteLine doesn’t have an overload that accepts MyClass parameters. We would expect to upcast MyClass to object and call the inherited ToString() method but implicit typecasting takes precedency over upcasting, so calling Console.WriteLine(myInstance) would in fact convert it to an int instead of an object.


La chinezesc

24 February 2009

Tocmai am fost la un restaurant chinezesc. Cu toate că locuiesc în Richmond de ceva vreme și aici majoritatea populației e formată din chinezi, nu știu cum se face că nu le-am încercat bucătăria până acum (de fapt știu de ce, mergeam la Irish Pub).

Impresii:

Mâncare minunată și niște porții imense. M-am ghiftuit, s-a ghiftuit și soția și nu am mâncat nici jumătate din porții. Felicitări bucătarului!

Tanti care ne-a servit a fost foarte amabilă, ne-a făcut recomandări și ne-a explicat una-alta despre felurile de mâncare. Din păcate nu am înțeles o boabă din ce ne-a zis, dar cu asta sunt obișnuit.

Am băut 青岛啤酒. Adică bere chinezească. Tsingtao. Sunt de părere că, dacă vrei să experimentezi ceva specific unei țări, berea este un punct grozav de plecare. Din păcate a fost rea :(

Am învățat să fiu foarte foarte atent ce mănânc. Am comandat ceva pui cu tot felul de legume și mâncam fără să fiu atent când, mestecând, am simțit că îmi ia foc gura. Mi-au trebuit vreo 10 minute ca să-mi revin. Pe urmă m-am uitat atent și am văzut că printre legume erau și ardei din ăia mici și roșii și iuți. Și eu tocmai înfulecasem unul întreg.

Per total, o experiență culinară grozavă, care merită menționată pe blog. Voi mai merge acolo. În ziua de salar, cum ziceau în Academia Cațavencu.


Fast Food Fight

23 February 2009

Extra_value_combo_alpha_by_lysol_jo


Cărți – “Reloaded”

22 February 2009

Spre rușinea mea trebuie să recunosc că nu am mai citit atât de mult în ultima vreme. Dar recuperez. Deocamdată am mai citit două cărți, m-am apucat de a treia și am adăugat câteva titluri pe wishlist.

Refactoring to Patterns de Joshua Kerievsky este o completare la Refactoring: Improving the Design of Existing Code, introducând niște refactorings noi și făcând legătura între refactorings și design patterns. Cartea prezintă situații în care este avantajos să faci refactoring spre un design pattern și când este avantajos să faci refactoring îndepărtându-te de un design pattern. O carte informativă care merită citită după clasicul Refactoring.

Lisey’s Story de Stephen King a fost un roman superb, nu atât de horror ca altele dar superb oricum. Nu are rost să scriu mai mult despre el – e Stephen King (da, sunt fan înrăit).

Acum citesc Snow Crash de Neal Stephenson. Am citit o mulțime de review-uri care o poziționează pe locul 2 în topul romanelor cyberpunk, după clasicul Neuromancer. Și după ce am citit Cryptonomicon de același autor, sunt sigur că nu voi fi dezamăgit.

Wishlist, adică ce voi căuta să citesc după Snow Crash:

Am tot auzit de H. P. Lovecraft și mitologia Cthulhu. Pentru cine nu știe, H. P. Lovecraft a fost un autor de horror foarte apreciat care a inventat o lume fantastică având în centru pe Cthulhu, o eintitate cu puteri extraordinare. Idea a prins atât de bine încât o mulțime de alți autori au început să se folosească de universul creat de Lovecraft, contribuind la dezvoltarea mitologiei. Așa că voi căuta Tales of the Cthulhu Mythos.

Mai vreau să citesc The Forever War de Joe Haldeman, despre care am scirs și mai demult.

Mă tentează să citesc și ceva ficțiune din universul Warhammer 40.000. Deși nu sunt 100% convins de calitatea romanelor scrise pe baza jocului care are la bază, la rândul său, alte romane (am mai scris și despre asta, universul Warhammer e “inspirat” din Dune, Fundația, Starship Troopers și alte cărți clasice ale genului). Dar probabil că le voi da o șansă, așa că trec pe listă și Horus Rising de Dan Abnett.


Marketing Fail

21 February 2009

Cică reclamă la nu știu ce pastă de dinți de o tot văd la televizor: “Cu pasta X de dinți te simți de parcă abia ai ieșit de la dentist”. Probabil că făceau referire la cât de bine curăță dinții pasta lor – la fel de bine ca un dentist. Să fim serioși. Cum te simți când ieși de la dentist după jumătate de oră de tortură scuipând sânge? Cine ar vrea o pastă de dinți care să te facă să te simți la fel?


Puncte puncte puncte

20 February 2009

Aici ne facem cumpărăturile de la Save On Foods, care este un mare lanț de magazine alimentare și nu numai în Canada așa cum e Billa sau Kaufland în România. Și dacă îți tot faci cumpărăturile acolo, poți să îți faci un card Save On More, un fel de card de fidelitate.

Partea bună cu cardul ăsta e că primești ceva reduceri la diferite lucruri cumpărate, în funcție de oferta zilei. Partea amuzantă e că dacă faci cumpărături și prezinți cardul, primești puncte. Și punctele se dau ca la Super Mario Brothers. Cumperi o ceapă? Ai 5 puncte. Cumperi un măr? Ai 10 puncte. Scanezi cardul înainte să intri în magazin? Ai 300 de puncte. Ești ecologic și aduci plasă de acasă? Ai 10 puncte.

Așa am adunat eu câteva mii de puncte și mă simțeam foarte împlinit. Ieri am aflat și ce valoare au punctele respective, când tanti de la casă m-a întrebat dacă vreau să achit laptele cu puncte. Eu deja calculam ce chilipir – îmi ia vreo 100-200 de puncte și primesc laptele gratis. Afacere, ce mai. Ei bine, nu a fost chiar așa. Am pierdut 500 de puncte pentru o reducere de câțiva cenți, nici pe departe lapte gratis.

Acum de plâns nu mă plâng că nu am de ce, asta e metoda lor de promovare și pe mine nu mă costă nimic să primesc reduceri, deci toată lumea câștigă. Ce nu înțeleg eu este sistemul ăsta cu puncte. Și câte mai trebuie să fac ca să trec la nivelul următor…


Despre somn

20 February 2009

clock

Somnul este foar important pentru mine. Și pot să mă laud că nici nu am avut niciodată probleme cu somnul. 8 ore și sunt ca nou. Dar se mai întâmplă să fie neapărat nevoie să mă trezesc cu nopate în cap câteodată.

Acum câțiva ani, rezolvam foarte simplu problema – nu mă trezeam. Am folosit telefonul mobil pe post de deșteptător ani la rând, până mi-a făcut cadou soția un ceas deșteptător ca cel din imagine. Țin minte că o dată trebuia neapărat să mă trezesc la 7 să ajung la școală pentru ceva prostie de oră. Ei bine m-am trezit pe la 9 și auzeam ceva sunând surd și nu îmi dădeam seama ce și de unde. Până la urmă mi-am dat seama - telefonul meu suna de sub pernă. Se pare că m-a trezit la 7 și, fiind prea adormit ca să intru în meniu să-l opresc, l-am băgat sub pernă și m-am pus peste ele ca să nu-l mai aud.

Asta era acum câțiva ani. Acum, din păcate, când trebuie să mă trezesc, chiar trebuie. Plus că mă ajută deșteptătorul – sună atât de tare că degeaba îl bag sub pernă. Așa a trebuit să mă trezesc miercuri, ca să ajung mai devreme la lucru. Pentru asta a trebuit să prind naveta de la 7:30. Pentru ca să prind naveta, a trebuit să mă trezesc pe la 6:30 – 6:45. Mai are rost să spun că am fost mort de somn toată ziua? N-am fost în stare să fac nimic. Absolut nimic. Plus că dimineața, în drum spre lucru, aveam o senzație foarte ciudată – ca și cum, adormit, am făcut ceva prostie gen să-mi iau cămașa pe dos sau să îmi iau doi papuci diferiți în picioare. Din fericire nu a fost cazul, era doar imaginația mea adormită.

Am descoperit că mai nou pot recupera o noapte nedormită dormită pe jumătate. Miercuri seara m-am culcat la ora 7 și am dormit fix 12 ore, pâna joi dimineața la 7. Este a doua oară când mi se întâmplă deja anul acesta. Se pare că dacă pierd câteva ore de somn, le recuperez noaptea următoare fără nicio problemă. Mă bucur, pentru că somnul este o parte foarte importantă a lenevitului. Și eu sunt foarte serios în privința asta.