Electrocasnice

9 November 2009

Nu mă mai înțeleg bine cu electronicele din casă. De loc. În primul rând, ce mă enervează cel mai tare, e că bipăie. Cuptorul cu microunde, după ce a gătat de încălzit, începe să bipăie. Dacă pun ceva mâncare acolo, oricum iese atât de fierbinte că nu poate fi mâncat în următoarele 5-10 minute. Și poate aș vrea să las mâncarea în cuptor că mă uit la televizor la ceva interesant. Sau tocmai m-am tolănit în pat. Dar nu. Cuptorul cu microunde bipăie de zici că e capătul lumii. Aș vrea să port o discuție cu cine l-a proiectat.

Bine, cuptorul nu e problema cea mai mare pentru că oricum nu-l folosesc atât de des. Nemesisul meu este mașina de spălat vase. O urăsc! Mașina de spălat vase, la fel, după ce și-a terminat treaba, începe să bipăie. Tare. Nu poți să o ignori. Trebuie să lași baltă orice faci și să o deschizi că parcă se topesc vasele dacă mai stau acolo 5 minute. Unde mai pui că durează o grămadă până gată de spălat așa că sunt șanse foarte mari să te prindă cu bipăitul fie când tocmai te-ai așezat în pat, fie când ești la WC, fie când e finalul filmului.

Cine s-a gândit, când a construit mașinăriile astea infernale, că treaba trebuie totdeauna încheiată cu alarme? Noroc că mașina de spălat nu face la fel, că nu știu ce mă făceam. După ce mă mut în State, am hotărât că primul lucru pe care îl fac e să-mi iau o șurubelniță și să reduc toate electrocasnicele la tăcere.

Și ajung la preferatul meu din ultimele zile – aerul condiționat. De fapt panoul ăla mic cu care poți să programezi aerul condiționat. E atât de deștept încât poate regla temperatura în funcție de oră, zi, poate ține minte programele anterioare etc. Cel puțin asta am înțeles eu din manual și din rotița aia cu zece opțiuni. Cum noi am vrea temperatură constantă în casă însă, am trecut rotița aia pe Manual. Simplu până aici? Așa am crezut. Pe urmă poți să-ți alegi ce temperatură ai vreau și ai un ecran care îți spune cât ai vrea tu să fie și cât este de fapt. Și mai ai încă un buton pe care îl poți pune în patru poziții – Auto, Răcire, Încălzire și Oprit. Citind opțiunile, mă gândesc că Oprit înseamnă să nu mai meargă, Răcire/Încălzire să răcească dacă e mai/încălzească dacă e mai frig decât temperatura aleasă și Auto ca să încălzească sau răcească cum îl duce capul, în final menținând temperatura pe care am ales-o. Așa că l-am pus pe Auto și – surpriză – ba ne trezim că ne coacem încet ba că dârdâim de frig. Și când mă uit la ecranul ăla văd o chestie de genul – eu aș vrea 23 de grade, de fapt sunt 18 grade și aerul condiționat, în prezent, răcește. WTF much? Încep să regret că nu mi-am continuat studiile pentru că, recunosc, cu rușine, nu știu să programez aerul condiționat. Și am terminat informatica. Poate, dacă eram PhD, tainele micului panou mi-ar fi fost dezvăluite.

A început să-mi fie cald. Merg să depanez.


Vreau pușculiță

8 November 2009

Mi-e destul de greu să scriu acest post pentru că, doar gândindu-mă la subiectul despre vreau să scriu, mă emoționez. Am fost la mall. Și am văzut un Lamborghini Murcielago. Superbă mașina. Și când zic am văzut, nu zic că a trecut pe lângă noi pe stradă sau ceva. Era expusă în mijlocul mall-ului. Am putut să o admir. De la faruri la interior și la motorul care se întrevede în spate.

Era expusă pentru ceva reclamă la ceva club auto canadian. Cică te abonezi și timp de un an poți să faci test drive la tot felul de mașini. Costă doar 4000 de dolari. Doar 4000 de dolari. Să pun lucrurile în perspectivă: pentru că după ce mă mut în State va trebui să-mi iau o mașină, mă gândeam mai în glumă mai în serios să-mi iau un Ford Mustang. Ei bine un Murcielago costă cam cât 20 de Mustang-uri :| O să-mi cumpăr o pușculiță din aia în formă de purceluș și o să încep să strâng bani. Peste câteva sute de ani o să-mi cumpăr unul.


Am gătat cu treaba

7 November 2009

Plus minus câteva chestii care trebuiesc finisate, simt vacanța din ce în ce mai tare. Luni și marți la lucru să pot pune punct și pe urmă urmează bine-meritatul concediu (n-am mai avut unul de anul trecut). Așa că pot spune că am gătat. Sau nu? În ultimele săptămâni, două persoane cu care vorbeam mi-au spus că nu știau ce înseamnă expresia “a găta”. Că și-au dat seama din context, dar că nu au mai auzit-o până acum. Bine, de existat există (DEX Online zice – GĂTÁ vb. v. epuiza, isprăvi, încheia, sfârși, termina.) dar sunt curios, e regionalism? Mie nu mi se pare. Adică gataa gătagătat – îmi sună foarte natural și, cel puțin de unde vin, sunt folosite toate. Adevărul e că nici nu mă pricep atât de bine la gramatică, mai ales dacă nu e independentă de context (geek joke). Dar totuși. Am zis că am gătat treaba, nu că am mâncat crumpeni. Dacă aș fi zis că am mâncat crumpeni, atunci da, nu m-ar fi surprins să nu știe toată lumea că de fapt crumpenii sunt barabule :)

 


Așa da!

7 November 2009

Balta

Am fost atât de impresionat că am făcut și o poză. Explic: a început să plouă de câteva zile. Mai des, mai mărunt, s-a mai oprit dar, în orice caz, vremea s-a stricat. Și azi dimineață era o baltă imensă în fața blocului. Dacă treceau mașini pe banda respectivă, făceau un duș la pietoni. Eu stăteam pe balcon la o bere și o țigară – m-ați prins, beau de diminineață, dar asta pentru că deja mă simt ca în vacanță :) – și, uitându-mă la baltă, mă gândeam “uite că se întâmplă și la casele mari”. În sensul că da, Canada, civilizație, chestii, dar tot văd șoseaua inundată. Și pe când gândeam eu asta, a venit mașina din imagine și doi nenea cu pelerine galbene pe ei au făcut ce au făcut și au făcut balta să dispară. Așa că no comment.

În Hunedoara, când ploua tare, nu știu exact motivul – canalizare înfundată probabil – se inunda strada chiar sub balconul apartamentului. Și se inunda serios, nu așa. Apă până la trotuar. Ne puteam distra ore în șir uitându-ne la mașini cum rămân împotmolite. Nivelul apei era atât de mare că reușea să le oprească motorul. Oare de aia sunt gipurile atât de populare în România?


Deja-vu. La propriu

1 November 2009

Mă uit la Futurama. Cele mai tari desene animate. De vreo săptămână nu mai e nimic intersant la TV, că e nu știu ce (eveniment sportiv?) în State de ocupă tot timpul așa că serialele au oprit producția vreo 2-3 săptămâni. Și cum nu mai aveam la ce mă uita, joi mi-am cumpărat sezoanele 3 și 4 din Futurama pe DVD (1 și 2 nu erau în stoc, dar le găsesc eu până la urmă), mi-am cumpărat o grămadă de doze de bere și am început să mă uit. Și aici intervine deja-vu-ul: așa am petrecut cam 75% din anul întâi de facultate – bând bere și uitându-mă la Futurama.

Pe vremea aia trebuie să recunosc, cu rușine, că le luam de pe DC++ dar acum am zis că să la cumpăr frumos, că de uitat la ele sigur mă uit. Pentru că în anul întâi de facultate le-am văzut și re-văzut pe toate de cel puțin 10-15 ori, așa că ce mai contează dacă le revăd de încă 10-15 ori. Bere să fie. Și cum am un Liquor Store la parter, nu văd să fie nicio problemă.

Iar la vară (Good news, everyone!), prin iunie din câte am înțeles, după o pauză de mulți ani, va începe un sezon nou. Abia aștept.

Apropo, am o chestie din asta în birou:

paid_think


SQL Good Idea/Bad Idea

30 October 2009

The following is a SQL function that splits the string provided as an argument into a table of values on the comma character:

CREATE FUNCTION Split
    (@Argument NVARCHAR(MAX))
RETURNS
    @List TABLE (Item NVARCHAR(20))
AS
BEGIN
    -- While a comma still exists in the argument
    WHILE (CHARINDEX(',', @Argument) > 0)
    BEGIN
        -- Add substring from start of argument to comma to result list (trim string to remove spaces)
        INSERT INTO @List
            VALUES (RTRIM(LTRIM(SUBSTRING(@Argument, 1, CHARINDEX(',', @Argument) - 1))))

        -- Remove the item from argument
        SET @Argument = SUBSTRING(@Argument, CHARINDEX(',', @Argument) + 1, LEN(@Argument))
    END

    -- Add last item to the list
    INSERT INTO @List VALUES (RTRIM(LTRIM(@Argument)))

    RETURN
END
GO

So if passed the argument ‘1, 2, 3, 4′, the function will return a table containing ‘1′, ‘2′, ‘3′ and ‘4′. The reason I wrote the function was because I had to wrap a set of queries in SQL stored procedures to provide an interface. The queries were pretty complex but for this example, I will only use a single table, let’s say a table containing employee information:

CREATE TABLE Employee
(
    ID INT PRIMARY KEY,
    Name NVARCHAR(200),
    Salary INT
)
GO

We need to wrap a query that returns the salary for a given list of employees, the list being provided as a comma-separated string of IDs. There are multiple ways to do this, I will just give a good idea and a bad idea.

Good Idea

CREATE PROCEDURE GetSalaries
    (@Employee_IDs NVARCHAR(MAX))
AS
    SELECT ID, Salary
        FROM Employee
        WHERE ID IN (SELECT CAST (Item AS INT) FROM Split(@Employee_IDs))
GO

Using the initial function, the input is split into individual IDs and cast as INT. ID and Salary are extracted from the table with the condition that ID is in the list. So for the sample data

INSERT INTO Employee VALUES (1, 'John Doe', 10000)
INSERT INTO Employee VALUES (2, 'Jane Doe', 20000)
INSERT INTO Employee VALUES (3, 'John Doe the 2nd', 30000)
GO

Calling

GetSalaries '1, 2, 4'

should return

1 10000
2 20000

(as ID 4 doesn’t exist in the table and ID 3 is not in the argument).

Bad Idea

CREATE PROCEDURE GetSalaries
    (@Employee_IDs NVARCHAR(MAX))
AS
    EXEC ('SELECT ID, Salary FROM Employee WHERE ID IN (' + @Employee_IDs + ')')
GO

The above procedure, using dynamic SQL, should behave similar to the previous procedure:

GetSalaries '1, 2, 4'

should still return

1 10000
2 20000

It’s even shorter. And it doesn’t require a Split function to parse the input. So why I call this a bad idea? The stored procedure will be provided as an interface, meaning the input will be beyond our control. And input could also be

GetSalaries '1); DROP TABLE Employee --'

Run it and see what happens ;)


Pe scurt

28 October 2009

Știți cum mi-am dat seama că am câștigat ceva vechime la locul de muncă? Deși am un milion de lucruri de terminat în două săptămâni ca să pot pleca liniștit în vacanță, trebuie să pierd câte o jumătate de zi explicând la unii și la alții cum funcționează una și alta. Cred că un senior developer nu mai are timp de loc să lucreze.

Pe scurt, nu mai am timp de blog, nu mai am timp nici de X-Box :( , trebuie să termin chestii. Asta ca să nu stau cu un ochi pe mail și celălalt în Visual Studio și în timpul vacanței. De fapt timp să scriu două rânduri pe blog am, dar nu am subiecte. În parte NDA-ul e de vină – nu prea pot povesti cu lux de amănunte la ce lucrez, în parte e faptul că iară lucrez de dimineața până noaptea și nu mai am când să mă întâlnesc cu tot felul de chinezi ciudați care să-mi dea subiecte de dezbătut aici. Eh, dacă aș fi bloagăr profesionist, altfel ar sta treaba. Dar cum îmi place mai mult să scriu software decât povești, fiind astfel un bloagăr amator, când lucrurile se aglomerează, blogul este cel care suferă. Asta este. Când voi avea mai puțin de lucru, voi avea mai multe de povestit. Revin. Curând. Sper.


Vacanță

25 October 2009

Managerul meu mi-a spus o vorbă foarte înțeleaptă când discutam când să îmi iau concediu – că indiferent când îl plănuiesc, sigur atunci voi avea mai mult de lucru. Și se pare că e adevărat. Merg în România în 3 săptămâni. Până atunci trebuie să termin un proiect. Dacă nu aș fi plecat în vacanță, aș fi avut vreo săptămână-două în plus să lucrez la el. Oricum, zilele astea bag mare. Să nu mai zic că vineri am avut o urgență – prioritate zero, chestii – de am stat până noaptea târziu cu niște colegi să investigăm o problemă. Bine, n-am stat la lucru, am stat conectat la net de acasă, în pijamăluțe, dar tot nu a fost o experiență grozavă.

Și tot zic că am nevoie de o vacanță. Iarna asta chiar aș fi vrut să merg o săptămână în Hawaii – visez de mult la asta, problema e că mă transfer în State dar zilele mele de concediu nu se transferă. Așa că probabil amân Hawaii încă un an și mă mulțumesc cu vacanța din România. Și nu scriu despre Hawaii doar ca să impresionez – avionul din Vancouver și cazarea la hotel o săptămână în Hawaii costă cât un bilet dus-întors până în România.

Mor de curiozitate ce impresie îmi va face România după un an trăit într-o țară civilizată. Cât îmi va lua să mă obișnuiesc cu serviciile din țară? Cu vânzătorii și chelnerii scârbiți și toate cele… cocalari, manele, BMW, semințe :D  Cum o fi o fi, chestia e că am nevoie de o vacanță. Să îmi “încarc bateriile”. Cu prietenii. La Bierhaus. Încă 3 săptămâni.


Nicovala lui Greg Bear

25 October 2009

A venit momentul să mai scriu un post despre cărți, chit că nu am mai citit atât de mult în ultima vreme. Nu de alta dar m-am blocat la un roman pe care îl citesc mai greu.

Am citit Nightmares and Dreamscapes de Stephen King, o mulțime de povestiri, unele mi-au plăcut, altele nu chiar atât de mult. Aștept să mai scrie un roman – cred că am citit aproape toate romanele lui, mai puțin câteva foarte vechi și seria The Dark Tower, care e mai mult fantasy. Poate mă apuc totuși de serie…

Am recitit Spook Country de William Gibson. Nu mai intru în detalii pentru că am mai scris despre carte acum câteva luni, când am citit-o prima dată. Super. Probabil că voi reciti curând și Pattern Recognition, așteptând cu nerăbdare Zero History, care este încă în lucru.

Și ajung la romanul la care m-am blocat, Anvil of Stars de Greg Bear. Am fost puțin dezamăgit de The Forge of God iar Anvil of Stars vrea să fie o continue. Ce să spun, sunt faze mai interesante și faze mai puțin interesante dar e destul de greu de citit – în sensul că nu-mi vine să stau noaptea târziu cu cartea pentru că vreau să văd ce urmează să se întâmple. Mie personal mi se par puțin cam ratate romanele astea două. Dau impresia că nici autorul nu știa exact încotro merge povestea când a scris-o și nici nu a mai revizuit manuscrisul. Se putea și mult mai bine.

După ce termin Anivil of Stars trebuie să caut ceva mai interesant. Cărțile pe care le-am luat data trecută au fost o alegere mult mai bună (1984, A Scanner Darkly) și chiar nu le-am putut lăsa jos din mână.


Fumatul dăunează grav checului

21 October 2009

Aseară ne-au venit prietenii în vizită. Cred că am mai scris despre întâlnirile noastre cu ei, dacă nu, pe scurt, ne-am împrietenit cu un cuplu de români, soț și soție, el venit tot la Microsoft, deodată cu mine. Și toată vara, weekend de weekend, ori am mers la ei la grătare ori am ieșit prin Richmond sau Vancouver la puburi.

Ei au plecat în vacanță în România pentru o lună de zile și abia de curând s-au întors. Așa că i-am invitat la noi să vedem ce am mai făcut unii și alții cât timp nu ne-am văzut. Eu am luat niște bere, ei au adus niște chec și ne-am apucat de povești.

La bere, desigur, merg foarte bine țigările (dacă sunteți nefumători credeți-mă pe cuvânt nu știți ce pierdeți :P ). Așa că am ieșit toți pe balcon să fumăm. Pentru că în apartament, normal, nu e voie, sunt alarme… Ca scrumieră folosim o ceșcuță care, după câteva beri și câteva povești, s-a umplut. Eu, că tot intram în casă să reînoiesc berile, m-am oferit să golesc și “scrumiera”.

Aici trebuie să fac o mică paranteză să explic ce facem noi cu gunoiul - nu avem coș de gunoi pentru că nu am găsit mărimea potrivită ca să încapă sub chiuvetă, așa că folosim pungi. Până nu demult nu era nicio problemă pentru că orice cumperi pe aici, de oriunde, primești în pungi de diferite mărimi. Doar că, pentru ca să salvez planeta, am cumpărat niște plase din material. Tot făcând cumpărături cu ele, rezerva noastră de pungi s-a micșorat dramatic, până am rămas fără. Așa că, înainte să ne vină musafirii, aveam în bucătărie o grămăjoară de lucruri care trebuiau aruncate.

Când am ajuns eu în bucătărie, grămăjoara dispăruse, fiind înlocuită de o pungă. N-am mai stat să mă întreb de unde avem punga respectivă, m-am gândit că a găsit-o soția pe undeva, așa că am luat ceșcuța plină ochi de chiștoace și am golit-o. De fapt, în pungă nu erau lucruri de aruncat ci checul adus de musafiri.

Încă nici nu mi-am dat seama. M-am întors la povești până când a zis soția că merge să taie checul. S-a întors cu o privire din aia priceless și m-a întrebat de unde mai exact am luat eu punga în care am golit chiștoacele. I-am zis că de pe masă. Mi-a zis că bine, m-am uitat ce era în ea? Am zis bănuiesc că gunoi, sau nu? Mi-a răspuns că nu… Când mi-am dat seama ce am făcut nu mă mai puteam opri din râs (trebuie să recunoașteți că e amuzant - gen dulceață în șoșoni). Mi-am cerut scuze așa, râzând, și sper că nu s-au supărat foarte tare pe mine. Ce să-i faci? Se mai întâmplă :)