Mâncare românească

29 May 2009

După atâția hamburgeri și won ton și fish and chips și alte mâncăruri de pe aici, mi s-a făcut poftă de ceva mai românesc. Poate veți râde dar mi-am dorit neapărat să mânc o iahnie de fasole cu cârnați. Culmea că mâncarea respectivă nu e printre preferatele mele și în România mâncam așa ceva cam o dată pe an. Dar acum mi s-a pus pata. Și atât am pomenit de fasole cu cârnație până i s-a făcut poftă și soției așa că s-a pus ieri și a gătit un ceaun de fasole (care a ieșit grozav). Între timp eu m-am biciclat până în Steveston la Nicu și am luat o pâine românească așa că am avut o cină tradițională. Ne-am ghiftuit.

Și dacă tot vorbesc despre mâncare românească, o chestie care mă enervează aici este cum se servesc cartofii prăjiți. Oriunde mergi – la restaurant, la pub, la KFC – cartofii prăjiți se servesc cu ketchup. Ketchup! Aici nu s-a descoperit încă mujdeiul?


Fotbal

27 May 2009

Mor de râs. Apropo de reclama asta, pe care am văzut-o mai demult:

Astăzi am dat de asta pe failblog:

:)


Texas Hold’em for Dummies

24 May 2009

Mă plimbam printr-o librărie și am văzut că aveau un raft – un raft întreg – cu cărți despre Texas Hold’em. A Beginner’s Guide to Texas Hold’em, Texas Hold’em for Dummies, The Complete Idiot’s Guide to Texas Hold’em.

Regulile nu sunt atât de complicate cât să necesite o carte întreagă. Chiar deloc. Strategia, cât timp joci pe bețe de chibrit, iarăși nu e destul de complicată cât să necesite o carte. Deduc de aici că toate cărțile respective se referă la jocul serios – pe bani. Acolo într-adevăr intră multe elemente de strategie.

Dar cine, după ce citește Ghidul Idiotului Complet, merge să-și joace banii? Chiar nu pot înțelege. Nu e paradoxal? Ai nevoie de o carte pentru proști sau idioți compleți ca să înveți să joci și după ce citești cartea te simți în stare să-ți joci banii? Nu ți-e un pic frică? Stai la masă cu un tip care trăiește din poker dar ești sigur pe tine pentru că tocmai ai terminat de citit ghidul idiotului complet? WTF?

Probabil că nu tuturor li se pare ridicol. Se pare că sunt destui idioți compleți care își pierd banii la poker astfel încât o mulțime de jucători buni pot trăi din asta. Așa că idioții își doresc să joace și ei bine. Așa că se tipăresc cărțile respective care încurajează idioții să joace. Așa că își pierd banii. Cerc vicios.


The New Sightseeing

23 May 2009

Astăzi plănuiam să fac o plimbare grozavă cu bicicleta dar sincer mi-e lene. Problema e că am fost cam peste tot pe unde se poate merge prin zonă, mai rămâne doar Vancouver. Adică să mă îndrept spre downtown. Problema e că, spre deosebire de zona Richmond, unde totul este plat, drumul spre Vancouver urcă. Și nu îmi vine să pedalez nu știu câți kilometri în amonte. Dar am găsit ce să fac în loc de ciclism: merg la pub :D


Terminator: Salvation

22 May 2009

Aseară am fost să văd Terminator: Salvation. Am înțeles din review-urile inițiale că actorii nu joacă grozav, povestea e cam abureală, Christian Bale e Christian Bale (http://www.youtube.com/watch?v=g4NP7-0LHws) dar roboții sunt cool. Și de fapt eu roboți voiam să văd, pentru că îmi plac. Când eram mic mă uitam la Macron 1, pe urmă am crescut și am început să urmăresc pe Bender Bending Rodriguez. Așa că am fost la cinema.

Filmul a fost drăguț, roboții au fost bestiali dar am rămas cu câteva nelămuriri: John Connor nu era încă liderul rezistenței așa că de ce ar fi vrut Skynet să-l omoare? La fel, de unde știa computerul cine va fi tatăl lui John Connor când de fapt tipul se întoarce în timp abia peste câțiva ani? Și cum merg la final în mijlocul cartierului general al roboților cu 3 elicoptere și nu pățesc nimic? Eh, detalii. Dacă mergi să vezi filmul pentru poveste pleci dezamăgit. Noroc că pe mine nu povestea mă interesa :D

Vreau doar să spun că, lucrând în domeniu, trebuie să apreciez Skynet. Nu pentru faptul că era un program conștient ci pentru că era autonom. O ce fain ar fi dacă am putea face software așa. Să nu aibă nevoie de update, hotfix, patch, service pack, să nu aibă nevoie de operatori care să supravegheze funcționarea… Da, SF. În realitate, probabil s-ar ajunge în câteva luni la ceva de genul “Skynet has run out of disk space”…


Răceală și medicamente

20 May 2009

Gata, mi-a trecut răceala, a ieșit soarele, noaptea trecută am tras un somn epic din ăla de 11 ore și totul a revenit la normal. Păcat că majoritatea weekendului lung l-am petrecut suflându-mi nasul – nici vorbă de mers cu bicicleta răcit și prin ploaie, inspirație de scris pe blog nici atât. Dar acum sunt bine. Se pare că nu a fost gripă porcească, din moment ce m-am pus pe picioare cu pracetamol.

Apropo de paracetamol, mă distrează reclamele la medicamente de aici. Se pare că sunt obligați să înșire toate efectele secundare de pe prospect. Cam un sfert de reclamă este despre medicament și trei sferturi despre nenorociri. Ceva de genul – Te doare capul? Iei un X și ești ca nou. Atenție: efectele secundare includ somnolență, amețeli, lipsă de apetit, vomă, diaree, probleme respiratorii… etc. Ați prins ideea. Pe când se gată reclama nu-ți mai vine să te apropii de medicamentul respectiv. Nu mai bine ar formula invers? “Medicamentul nostru poate provoca aia, aia și aia DAR măcar scapi de durerea de cap.”


Books

16 May 2009

Am gătat cu Horus Heresy. Cu chiu-cu vai am reușit să termin Descent of Angels. Pe urmă am citit Legion pe nerăsuflate și am înțeles de ce toți cititorii seriei așteaptă un volum scris de Dan Abnett. Pe urmă am citit Battle for the Abyss, care a fost OK. Nu grozav, dar OK. Și am terminat cu Mechanicum.

Mechanicum mi-a plăcut, cu o singură excepție: da, știu că universul Warhammer e inspirat din diferite romane SF clasice și atunci, implicit, ficțiunea construită acest universul aduce când cu Dune, când cu Fundația, când cu Starship Troopers, când cu Jocul lui Ender etc. etc. Dar nenea Graham McNeill, ce ai făcut tu cu peștera dragonului cu o “geometrie ciudată” se cheamă plagiat. Capitoulul 3 din Tha Call of Cthulhu de H. P. Lovecraft all over again. Păi treabă-i asta?

Și cu asta am terminat pentru moment cu Horus Heresy. Mai este un volum dar ăsta e de povestiri așa că nu mă grăbesc să-l citesc. Următorul, Prospero Burns, tot de Dan Abnett, apare mai încolo. Singura chestie nasoală e că, din moment ce romanele sunt scrise de mai mulți autori, lumea cumpără și Warhammer are o poveste destul de complexă, cine știe când se va termina seria. Probabil nu se va termina cât timp Games Workshop face profit din ea, deci voi mai citi câțiva ani buni noi apariții.

Am mai citit și The Forever War de Joe Haldeman. Voiam să-l citesc de mult. Este, într-adevăr, un clasic. Bine, paralela cu războiul din Vietnam nu mai e de actualitate, dar încă se poate aprecia idea autorului.

Ce urmează? Păi mai am ceva cărți necitite prin bibliotecă – Agents of Artifice, mai am câteva povestiri de Lovecraft din antologia despre care am scris mai demult și pe urmă… Nu știu. Ar fi cazul să mai învăț ceva. Probabil o carte tehnică.


Mizerabil

16 May 2009

Ce săptămână mizerabilă. În primul rând a plouat. Zilnic. Deprimant. Nici nu am mai putut merge cu bicicleta… În al doilea rând, am avut meeting-uri de dimineață. Am mai scris despre asta. Trebuie să mă trezesc cu noaptea în cap, să mă târăsc la lucru și să asist, rupt de somn, la jumătate de oră sau o oră de flecăreală. Și da, dacă dimineața când mă trezesc e soare și frumos și cântă păsărelele atunci parcă mă înviorez mai repede, dar când nu am mai văzut soarele de o săptămână, sunt ca un zombie toată ziua. Așa că din cauză de meeting de dimineață și din cauză de nori și ploaie, n-am mai dormit bine de câteva zile.

Eu dacă nu dorm 8 ore nu sunt odihnit. Am mai scris despre asta. Și de obicei, după o zi din asta în care sunt forțat să mă trezesc cu noaptea în cap, mă culcam seara la 9 și trăgeam 10-12 ore de somn de recuperare. Dar acum m-a pus naiba să stau noaptea să citesc în loc să dorm.

După câteva zile din astea, ieri în sfârșit am dormit ceva mai bine, a ieșit și soarele de am tras o plimbare scurtă cu bicicleta – părea că totul revine la normal, când, surpriză: am răcit :(

Bine că măcar e long weekend – luni e Victoria Day. Astăzi stau în pat la căldurică, beau ceai cu miere și înjur.


Ultimele vizionări

10 May 2009

Am văzut Wolverine. A fost OK. Adică exact cum mă așteptam, având în vedere că nu îmi pusesem mari speranțe în film. Merită văzut dacă vreți să vedeți cum face Logan pe durul. Plus, după cum am ciripit și pe Twitter, tot filmul se bate cu Sabertooth ca Peter Griffin cu cocoșul ăla. Drăguț. Cât timp nu urmează X-Men Origins: Cyclops, X-Men Origins: Storm, X-Men Origins: Rogue etc. Și tare mă tem că vor urma, pentru că așa merge treaba la Hollywood. E clar

Am văzut și Searching for Bobby Fischer. Știu, e vechi, dar nu apucasem să-l văd și l-am prins din greșeală la TV. E despre Josh Waitzkin, tipul care prezintă niște lecții de șah în Chessmaster – copilăria lui ca jucător de șah talentat. Mi-a plăcut filmul. Cică e docudramă. Nici nu auzisem de genul acesta până acum.

Am revăzut The Shawshank Redemption, despre care cred că am scris mai demult. Superb filmul, încă și mai fain în HD :D Ce pot spune mai mult despre el decât locul 1 în Top Movies pe IMDB.

Am găsit la reducere și mi-am cumpărat pentru colecție Natural Born Killers, un film excelent. Poveste scrisă de Tarantino, producție suprarealistă, violență, umor…  Natural Born Killers nu este chiar filmul meu preferat dar este cu siguranță în top. Plus că mi se pare genial felul în care filmul satirizează mass-media și televiziune.

Am revăzut și clasicul Pulp Fiction despre care, din nou, nu are rost să scriu. Încă 3 luni până la Inglorious Bastrads. Aștept cu nerăbdare.


The Singleton Pattern in C#

10 May 2009

What

The singleton pattern is used to restrict a class to a single instance. This is useful when some global state is required across the application or when a single instance of the class is sufficient and multiple instances are not desired – for example the class consumes a lot of resources. The singleton is implemented with a private constructor to prevent outside instantiation and a static method (or property) that creates and returns the unique instance when called.

Why

When implementing a singleton in C#, a natural question arises: why use a singleton instead of a static class? It is true that a static class accomplishes the same thing – provides a single instance of the class. The difference comes from the fact that static classes cannot implement any interfaces and can only derive from the base Object class.

Sometimes it is needed for the class to implement a certain interface. In these cases, singletons become useful because they don’t have these limitations.

staticvssingleton

It is true that a static class implementation is cleaner and easier to use than a singleton, as it can be seen above. We can use Processor.Process() with the static class while the singleton is called using Processor.Instance.Process(), not to mention that the static class doesn’t need the private attribute and doesn’t have to explicitly declare a private constructor. Still, the following can’t be implemented using static classes:

derivedsingletons

Both OnlineProcessor and OfflineProcessor unique instances can be passed as Processor objects.

How

A simple C# implementation of a singleton looks like this:

public sealed class SingletonClass
{
    private static readonly SingletonClass instance = new SingletonClass();

    private SingletonClass() { }

    public static SingletonClass Instance
    {
        get
        {
            return instance;
        }
    }
}

For a more detailed explanation, visit MSDN.

Although the constructor doesn’t do anything, it is important to declare it as private to hide it from the outside code. When the constructor is declared as private, the class cannot be instantiated from outside itself.

The static readonly attribute holds the unique instance. Note that declaring it this way ensures lazy instantiation – the object will be created at runtime only when it is first referenced. The static Instance property is used to retrieve the instance by the outside code (SingletonClass.Instance).

Finally, the class is declared as sealed. On MSDN it is stated that this will prevent other classes to derive from this class and possibly duplicate the instance. The truth is that as long as all class constructors are declared as private, other classes won’t be able to derive from it. This happens because during instantiation constructors have to be called for all classes in a hierarchy starting from the top-most class and this won’t be possible from a derived class as long as all its parent’s constructors are private. It is still good practice to seal the class to make it obvious that it is not meant to be derived from (plus there is a gain in performance when calling virtual methods on a sealed class).

Singletons can be implemented based on this skeleton. Additional methods and properties shouldn’t be static, as they can only be accessed through the Instance property. This is the mechanism by which singletons can implement interfaces or be derived from any class.

Note that this simple implementation is not thread-safe as two threads could simultaneously reference the Instance property and, because of this, receive different objects. Again, look on MSDN for thread-safe implementation considerations.