A patra corectura

Posted in Codare cu premeditare, Premiul n00bel, Regula 0, Stand-up philosophy on November 27th, 2010 by Mihnea

Truda afunda continua in galeria sapata de Silviu Ardelean. Cu ajutorul cititorilor nostri a reusit sa-si corecteze si “micile scapari” legate de character set, a aflat de FindFirstFile() si chiar a incercat sa trateze path-urile care contin wildcard-uri, lucru care nu prea i-a iesit. In momentul de fata, codul pentru cazul in care nu vrei sa folosesti WinAPI este:

long long GetFileSizeFast(const TCHAR *szFilePath)
{
    if (!szFilePath || !szFilePath[0] ||
        !PathFileExists(szFilePath))
        return -1;

    long long nSize = -1;
    struct __stat64 buf;
    nSize  = (_tstat64( szFilePath, &buf ) == 0) ?
        buf.st_size : -1;
    if (S_ISDIR(buf.st_mode)) nSize = -1;

    return nSize;
}

Sigur, ne-am putea intreba de unde frica asta de WinAPI, avind in vedere ca _tstat64() e o functie care exista doar pe Windows, deci oricum poti sa te bazezi ca ai WinAPI la dispozitie. De asemenea, ne-am putea intreba cum eviti folosirea lui WinAPI, cit timp chemi PathFileExists(), o functie WinAPI. Cei mai circotasi ar putea comenta chiar despre inutilitatea apelului la PathFileExists(), avind in vedere ca functia _tstat64() trateaza singura caile cu wildcard-uri prin ele. Eu va spun doar atit: “mici scapari”.

In cazul in care nu tinem sa scriem cod portabil cu functii care exista doar pe Windows, miinile negre ne intind si o varianta cu WinAPI:

long long GetFileSizeFastest(const TCHAR* szFilePath)
{
    if (!szFilePath || !szFilePath[0] ||
        !PathFileExists(szFilePath))
        return -1;

    WIN32_FIND_DATA sFileData;
    HANDLE hFind = FindFirstFile(szFilePath, &sFileData);
    if (hFind == INVALID_HANDLE_VALUE)
        return -1;

    FindClose(hFind);

    return  (sFileData.nFileSizeHigh * (MAXDWORD+1LL)) +
        sFileData.nFileSizeLow;
}

Din nou clevetitorii ar putea sa se intrebe cum e functia asta “Fastest”, daca ea interogheaza filesystemu’ de 2 ori despre fisier. In cei 9 ani care l-au facut expert in C++, Silviu n-a invatat inca sa compare string-uri; vorba aia, abia a aflat despre fisiere, sa avem un pic de rabdare cu el. Inca o data: “mici scapari”.

Intr-unul din comentariile pe care probabil le va sterge in curind, minerul a marturisit ca lucreaza la o aplicatie care valideaza numele de fisiere folosind expresii regulate. Stie ca se poate si fara, dar nu e “profesional”. Chestia asta suna intr-un asemenea hal, incit ma tem ca ar putea sa fie o tentativa de sarcasm din partea lui, poate chiar prima in cei 30 de ani de cind e expert in Atitudine. Daca e pe bune, e doar o noua “mica scapare”, nimic grav.

Problema e ca se cam aduna “micile scapari” si ca numarul lor creste dupa fiecare corectura, in loc sa scada. Cam de cite “mici scapari” o fi avind nevoie pentru a realiza ca de fapt are de-a face cu o “mare scapare” in ceea ce priveste programarea?

Retorica aceasta este flasca, evident. Puroiul are o intreaga pleiada de justificari pentru faptul ca de 9 ani si 4 zile nu reuseste sa scrie o functie care sa afle dimensiunea unui fisier. In primul rind, in mintea lui (pardon, a unui “prieten”) e acceptabil sa publici cod care nu se compileaza, pentru ca ala care-l ia trebuie sa mai munceasca si el, futu-l in gura de oportunist. Cu alte cuvinte, cind unu’ e asa de incepator incit cauta pe net cum se afla dimensiunea unui fisier, in mod cert este calificat sa recunoasca cazurile limita care pot aparea si sa le trateze singur (sau sa stie cum sta treaba cu WIN32). Silviu i-a aratat ce era mai important, si anume numele unei functii. Mai departe se descurca incepatorul ala, desi Silviu nu s-a descurcat, cu toti cei 9 ani de dat la tirnacop cu care se lauda. Cred ca asta insemna “and staff” ala de dupa pleonasmul cu “CRT run-time library”.

Un suflet mare a incercat sa-i explice ca lumea are tendinta sa te creada prost daca publici prostii, aratind chiar cu degetul in directia lui Bullschildt, dar Silviu nu e un om care sa faca legaturi (desi ocazional il mai paleste cite un moment Poirot). Putem doar specula motivul pentru care Silviu n-a sters acel comentariu eretic si speram ca-i implicat un anumit tip de morcov, dar oricum, a explicat pe blog-ul de atitudine de ce are el dreptul sa faca pe Domnul Trandafir:

În cariera mea am întâlnit mulţi oameni talentaţi, foarte buni profesionişti, dar la toţi am văzut slăbiciuni tehnice. Cu siguranţă şi Mihnea are, la fel cum am şi eu.

Trebuie sa recunosc ca asta m-a enervat un pic. Acest Pitic Porno al forumurilor romanesti de programare, care nu stie sa caute intr-un map sau sa afle dimensiunea unui fisier, poate vedea “slabiciuni tehnice” la altii, pisa-l-as in inima. Mai mult, lacunele mele le scuza pe ale lui, chiar daca ale lui sint in subiecte care i s-ar parea banale unui elev de liceu, iar pe ale mele poate doar sa le conjectureze in baza filosofiei “nimeni nu-i perfect”. Desi i-am mai explicat de vreo doua ori, el continua sa ignore faptul ca eu nu scriu tutoriale, deci nu conteaza cit de incompetent sint. Cind scrii ceva, nu te raportezi la ceilalti gaozari care scriu timpenii pe codeguru sau pe blogurile lor “tehnice”, bai pula. Te raportezi la rezultate, ca programarea e o stiinta exacta, nu e expresionism abstract. Daca postezi cacaturi care nu merg si pe care nici tu nu le intelegi, puti demonstrabil a prost si faptul ca mai sint si altii ca tine nu e o scuza.

Tot in ultima lui luare de pozitie, ortacul revine la o tema mai veche, cea a Adversarului Colectiv. In urma cu ceva vreme el era convins ca jos8cal si cu mine sintem aceeasi persoana pentru ca ne luam de timpeniile lui, desi acum neaga ca ar fi zis asa ceva. Acum ma face pe mine raspunzator de faptul ca cineva a pus niste cod gresit intr-un comentariu la el pe blog. Aparent eu trebuia sa ma iau si de ala, dar n-am facut-o pentru ca si eu gresesc, sau ceva; n-am inteles, logica subterana imi scapa uneori. Minerul n-a priceput inca faptul ca tintele predilecte ale acestui blog sint oamenii care persista in prostie chiar si dupa ce li se spune ca ar fi mai bine sa stea in banca lor si sa se rezume la pus intrebari, iar el primeste atit de multa atentie pentru ca e cel mai penal reprezentat al acestei subspecii.

In finalul justificarii si-asa destul de dezlinate, Silviu recurge la o manevra des intilnita la imbecilii ramasi fara argumente: expresia “m-am plictisit”. Laolalta cu acuza “f(r)ustratule”, sau eventual dupa ce aceasta se dovedeste ineficienta, aruncarea lui “m-am plictisit” intr-o discutie se face in speranta ca il vei inchide pe interlocutor cind realitatea iti e potrivnica, dar vrei totusi sa cazi in picioare. Pentru a completa starea de spirit in care era el cind facea apel la respect (din pacate a sters apelul intre timp), ma vad fortat sa reiau un pasaj liric citat de colegu’ jos8cal intr-un post mai vechi despre felul in care societatea si Internetul il dezamagesc zilnic pe Silviu:

Când plini de praf cu paşi trudiţi,
Ieşim din mina obosiţi,
Ne doare ca-n lumina sa
Pământul ţine-o lume rea.

Deoarece un bou nu poate supravietui niciodata singur, Ovidiu “MVP” Cucu a tinut sa-si arate in mod subtil solidaritatea cu cauza mineriadei. Cititorii nostri fideli sigur n-au nimic mai bun de facut decit sa tina minte cum speculam acum citeva post-uri ca Ovidiu este cel care-l ajuta pe Silviu sa-si spele trecutul fara sa lase urme. Atasatul politic pe linga uzina Codexpert a decis sa-si dea jos masca, semnind citet ultima editare a periplului codexpertic al lui Silviu prin lumea fisierelor. Motivul trecut de MVP in condica este “Few cosmetics“. Asta e noul eufemism aprobat in Sedinta Extraordinara de catre AXTI pentru “facut sa mearga dupa un an”. Cosmetica e ce le va trebui lor daca Mos Craciun imi aduce anul asta aruncatorul ala de flacari de care-i tot zic.

PS: avem doua pagini noi la care se poate ajunge din coltu’ rusinii, adica din dreapta-sus: Idei in Monolog, cu citate din viata si opera personalitatilor din programarea romaneasca, si Intreaba-l pe Capitanul Kirk unde invitatul nostru semi-permanent Iacob Tiberu ia interviuri acelorasi personalitati.

Tags: , , , , , , , , , , , , , , , ,

A treia corectura

Posted in Regula 0 on November 24th, 2010 by Mihnea

Gata. Third time’s a charm, and “staff”. “unsigned long” s-a facut “long long” in codul minerului. Tineti minte: asta a fost ideea lui de la inceput, doar a zis si-n comentariu (pe care l-a si editat, ca nu i-a placut cum zisese “unsigned”). In nici un caz n-a facut modificarile astea pentru ca i-am aratat noi ca e prost. De fapt, ce modificari? Asa a fost codul de la inceput.

In momentul de fata, sentimentele mele fata de miner sint amestecate. Pe de-o parte, sint surprins si dezamagit ca dupa atitea mui pe care si le-a luat aici, inca mai scrie pe blog-ul ala. Incapatinarea lui este fenomenala, chiar si pentru un cretin ca el care crede ca poseda “inteligenta emotionala”. Ar putea macar sa verifice banalitatile pe care le posteaza, dar cred ca-i atit de incompetent ca nu-si da seama cum.

Pe de alta parte, sint satisfacut. Desi si-a editat toate timpeniile avind grija sa nu lase urme sau atribuind corecturile diversilor “Sorini” pe care i-a gasit prin preajma, el stie cine i-a zis, si eu stiu. Chiar si dupa ce gogoritele vor disparea din cache-ul lui Google, chiar si cind va pretinde pe blog-ul de atitudine ca noi mintim aici, chiar si cind va cenzura asiduu adresa acestui blog din screenshot-urile sale, chiar si dupa ce toata lumea va trece mai departe, noi doi – el si cu mine – vom sti cum a fost de fapt. Haterii au avut dreptate iar el a recunoscut asta fata de el si fata de noi scriind pina la urma codul dupa dictare. Toata “inteligenta emotionala” si pseudopsihologia din lume nu vor putea schimba adevarul asta pe care noi il impartasim, si asta e tot ce conteaza. Cind el va privi in ochii mei si eu voi scuipa intre ai lui, vom sti.

Tags: , , , , , ,

A doua corectura (la sugestia lui Sorin)

Posted in 112, Codare cu premeditare, Premiul n00bel on November 24th, 2010 by Mihnea

Nici n-am dat bine submit la post-ul anterior, ca Silviu a luat iar atitudine. De data asta a pus “unsigned long” in loc de “long”, dar nu pentru ca ar bijbii in jurul solutiei dupa ce citeste aici, ci pentru ca:

According to Sorin’s observation I changed the long type to unsigned long.

Putin mai devreme, inainte de a vedea post-ul meu, Silviu ii raspunsese direct lui Sorin in felul urmator:

Absolutely. Nobody stops you to replace long with long long or unsigned long long.

Absolutely. Nimeni nu te oprea, dar o faceai degeaba, ca folosea _wstat(), care-ti returneaza dimensiunea pe 32 de biti. Dupa aia poti sa inlocuiesti tu ce vrei, ca e prea tirziu. Acum ar merge inlocuit, dar cineva totusi l-a oprit pe miner si nici dupa a doua corectura nu se descurca cu fisiere mai mari de 4 GB. Poate din a treia ii iese?

Probabil tot in urma “observatiei lui Sorin”, minerul a sters #ifdef-ul rusinos si din FAQ-ul la care tocmai dadusem link. Noroc ca o vreme de acum incolo pagina aia va fi in cache la Google cu aberatia originala. Probabil dupa ce va expira cache-ul, Silviu va pretinde ca a fost asa dintotdeauna (observati ca nu scrie “last edited”, deci MVP Ovidiu Cucu sau MVP Marius Bancila i-au dat o mina de ajutor cu editarea). Nu uitati: el isi recunoaste greselile.

PS: totusi, trebuie sa recunosc ca nu m-as fi gindit ca o functie care returneaza dimensiunea unui fisier poate genera atita amuzament. Inca o dovada ca tot ce-ti trebuie pentru ca sa te poti distra e o problema banala si un miner prost.

Tags: , , , , , , , , , ,

Prima corectura

Posted in 112, Codare cu premeditare, Premiul n00bel on November 24th, 2010 by Mihnea

Dupa cum preziceam in post-ul anterior, Silviu “Virgula” Ardelean si-a modificat pe furis codul la scurt timp dupa ce l-am vorbit de bine pe-aci. Din pacate pentru el, in loc sa-si intrebe prietenii cum se face de fapt (dupa cum i-am sugerat), el a incercat sa ne arate ca poate si singur, ajungind la urmatoarea varianta:

long GetFileSize(const TCHAR *szFilePath)
{
   long nSize = -1;

   struct __stat64 buf;
   nSize  = (_wstat64( szFilePath, &buf ) == 0) ? buf.st_size : -1;
   if (S_ISDIR(buf.st_mode)) nSize = -1;

   return nSize;
}

Problema e ca nici asa nu e bine. Acum foloseste _wstat64() si pe 32 de biti, dar degeaba, ca pune rezultatul intr-un long, unde nu incape. A scapat de macro-ul ala penibil care arata ca dupa 8 ani de Visual Studio nu stie cum sa detecteze platforma, dar functia tot e limitata la 2 GB pe 32 de biti.

In timpul ce s-a scurs de la postarea originala, colegu’ jos8cal mi-a aratat ca de fapt dilema nu-i una noua, asa cum credeam eu. Lampasul lui Silviu a mai poposit si in urma cu un an pe spinoasa problema a dimensiunii fisierelor. Atunci avea inca blog cu ceas si sigla lu’ Steaua pe el, deci a avut nevoie de un alt canal prin care sa-si impartaseasca descoperirea cu restul expertilor in C++. Si cum nu-i loc mai bun pentru discutii intre experti decit insasi Comunitatea Expertilor C++, a pus-o de un FAQ la ei. Acum tot va ajunge la vorba mea, ca pentru a corecta post-ul ala fara sa scrie “edited by miner” va trebui sa apeleze la prietenii lui MVP-ei si fondatori de comunitati, cum l-am sfatuit sa faca de la inceput. Poate cu ocazia asta reuseste sa scrie si codul cum trebuie.

Tags: , , , , ,

Portretul expertului la 30 de ani

Posted in 112, Codare cu premeditare, Premiul n00bel on November 24th, 2010 by Mihnea

Dupa ce a excavat problemele incrementarii si interschimbarii variabilelor, Silviu “Virgula” Ardelean a tras o flegma strasnica in palma, a pus mina pe tirnacop si a lovit din nou in programare. Gaura ce s-a cascat cind virful uneltei a interactionat cu realitatea i-a aratat o lume cu totul noua, pe care n-o mai intilnise pina atunci in cariera sa: lumea fisierelor.

La capatul a 9 ani de succese si progres continuu, Silviu a fost nevoit pentru prima data sa afle dimensiunea unui fisier. Un perfectionist ca el are datoria morala de a utiliza numai solutii optime, dar sa nu credeti ca atunci cind le descopera, le tine doar pentru el. Nu. Silviu este in primul rind un Invatator, o persoana care nu s-ar da inapoi de la nimic pentru a se asigura ca si ceilalti programatori care au nevoie sa incrementeze variabile sau sa afle cit de mari sint fisierele stiu cum se face asta optim. Si cine stie, poate intr-o zi, daca scrie suficiente articole d-astea de indrumare, va primi si el o diploma d-aia de Invatator Microsoft cum au prietenii lui (link-ul duce la Wikipedia deoarece momentan pagina oficiala a Invatatorilor nu merge, probabil intr-un gest de solidaritate cu Ronua, care fiind site-ul unora care fac site-uri, merge cam 2 zile pe saptamina).

Pilda de azi poarta titlul File size fast detection si a fost inscrisa in ceaslovul tehnic al marelui formator de programatori. In textul sau se vorbeste despre multitudinea de optiuni prin care un programator putin naiv (naiv pentru lumea in care traim), asa cum a fost si Silviu odata, ar putea sa-i puna calculatorului intrebari despre “una din cele mai importante proprietati” ale unui fisier: dimensiunea sa. Inarmat cu legendara sa inteligenta, Silviu isi croieste drum prin acest adevarat hatis de functii, si ajunge la urmatorul cod:

long GetFileSize(const TCHAR *szFilePath)
{
   long nSize = -1;

#ifdef WIN32
   struct _stat buf;
   nSize  =  (_wstat( szFilePath, &buf ) == 0) ?
      buf.st_size : -1;
   if (S_ISDIR(buf.st_mode)) nSize = -1;
#else
   struct __stat64 buf;
   nSize  = (_wstat64( szFilePath, &buf ) == 0) ?
      buf.st_size : -1;
   if (S_ISDIR(buf.st_mode)) nSize = -1;
#endif

   return nSize;
}

Haideti sa incercam sa deslusim impreuna vorbele duhovnicului-ortac, ca si cum am fi la un codecamp. In primul rind, el ne spune ca:

there are a lot of API that allows finding this property, but major needs additional file operations: open file, find file size and close file.

Asa ceva nu-i acceptabil. Daca maiorul are nevoie sa deschida fisierul, minerul va cauta o alternativa. Si tot cautind el, a dat peste _wstat(), care nu are aceleasi nevoi ca perversul maior, deci e “fast”. Dat fiind gradul avansat de analfabetism pe care-l manifesta indrumatorul nostru, e greu de spus la ce s-a referit exact cind a spus “fast”. Probabil se gindea la timpul de executie, un subiect drag inimii lui, caz in care ma declar profund dezamagit de faptul ca tocmai el, un cititor autoproclamat al surselor STL-ului (in care e expert de 9 ani, sa fie clar), n-a citit sursele CRT-ului, acest Vechi Testament al programarii. Ca si in adevaratul Vechi Testament, unde Doamne-Doamne bea in fiecare dimineata laptic plus dupa care isi scoate evreii la un meci de ultra-violenta cu restul Creatiei, CRT-ul ne dezvaluie ororile lui _wstat(), care isi petrece o buna bucata din zi extragind si procesind date care n-au nici o legatura cu dimensiunea fisierului. Fast indeed.

Sigur, dupa cum ne-am invatat deja, Silviu nu greseste niciodata, motiv pentru care ii este si foarte usor sa-si recunoasca greselile cind e cazul. Riposta lui la defaimarea din paragraful anterior va fi ca prin “fast” vroia sa spuna “putin de scris”, deci e “fast” de dezvoltat aceasta functie de o importanta capitala, pe care trebuie s-o dezvolti de sute de ori pe zi cind ai 9 ani de experienta in C++. O solutie care sa foloseasca FindFirstFile() ar incetini dramatic viteza cu care Silviu zboara prin cod la multinationale, pentru ca ar avea o intreaga linie in plus pentru inchisul handle-ului.

Totusi, partea cu adevarat savuroasa din codul asta nu e cit de “fast” sau “nefast” e apelul la _wstat(), ci #ifdef-ul ala cu WIN32. Uitati-va bine la el, caci cu greu se poate gasi un exemplu mai concis al incompetentei minerului. In primul rind, e vorba de incompetenta la nivel practic: Silviu habar n-are ca macro-ul ala e definit implicit prin setarile proiectului si in configuratiile de 64 de biti, deci partea a doua n-o sa se compileze niciodata (eventual doar pe platforme diferite de Windows, care din pacate n-au _wstat64() deloc). El se va apara spunind ca “n-are un compilator in cap”, cum a mai facut-o. Intr-adevar, este un efort supraomenesc ca inainte sa postezi niste gunoi pe internet, sa incerci sa-l compilezi ca sa vezi daca merge, sau sa te uiti in MSDN la cum se diferentiaza build-urile de 64 de biti de alea de 32.

Si mai misto decit necunoasterea acestor lucruri practice de catre un expert cu 9 ani de multinationalism in spate este logica gresita care a stat la baza testului aluia cu #ifdef. In capul minerului, functia _wstat64() este inseparabila de un OS pe 64 de biti. Daca ai OS pe 32 de biti, dimensiunea fisierelor se tine pe 32 de biti. Daca e pe 64, se tine pe 64. Este imposibil, inuman si imoral sa ai un fisier mai mare de 2 GB pe un OS de 32 de biti (macar daca returna un tip unsigned, sa aiba limita la 4 GB, dar nu s-a putut). Un asemenea fisier i-ar provoca lehamite lui Silviu si l-ar determina sa scrie un post despre el pe blog-ul de atitudine, sub tag-ul “demagogie“.

Minerul e abonat la blog-ul nostru si timpul sau de reactie este de ordinul minutelor. Deindata ce va citi ce-am scris aici, expertul isi va folosi cunostintele acumulate cu sirg in aia 9 ani pentru a intreba in stinga si-n dreapta cum sa corecteze timpenia pe care a scris-o. Dupa ce va repara codul de pe blog (uitind sa mentioneze cine i-a pus iar vagonetul deraiat inapoi pe sina, cum a mai facut), va corecta si in softul la care lucreaza pentru Bitdefender, unde probabil ca tocmai a scris abominatia aia. Imediat dupa aia o sa dam mail la Bitdefender sa le cerem bani pentru training-ul pe care il facem de citeva luni bune cu programatorul lor “senior”, expert in C++, STL, CRT si Visual Studio si – speram cu totii – viitor MVP.

Tags: , , , , , , , , , , ,

Inevitabil

Posted in Regula 0 on November 13th, 2010 by Mihnea

Tags: , , , , , , , , , , , , , ,

Filmoteca de aur

Posted in Premiul n00bel, Stand-up philosophy on November 12th, 2010 by jos8cal

Prin Octombrie 2009 RONUA a sarbatorit cincinalul. Dupa paranghelia de la Sacele, datul cepului si cununia cu Existenta au avut loc la Sinaia citeva zile mai tirziu, intr-un codecamp pe teme tehnice, tehnologice si tehnocratice.

Ce reusesc Gianni Morandi, Dan Spataru, Faramita Lambru sau Maria Lataretu pe gura si la instrument, Aurelian reuseste pe tastatura si la Paint. Afumat vizibil cu ceai chinezesc facut la temperatura camerei, dinsul s-a decis ca este timpul sa ia atitudine pentru siguranta job-ului tau. Si cum orice atitudine are nevoie de o baza ideologica solida (multumim colegului Nemesis pentru quote-uri, pentru ca din pacate manifestul original a fost sters s-a pierdut), a cerut un La minor si a deschis Paint-ul:

E toamnă. E început de an fiscal. E timpul lui Visual Studio 2010. Versiunea 4 de Framework. MVC-ul. Versiunea 2 de MVC. Și da… Silverlight 3!

Căștigă sute de ore-om în celelalte 360 de zile prin alocarea acestor 5.

La servici e imposibil să învăț chiar dacă folosesc resurse de instruire gratuite disponibile oricui!

Dacă aș privi programarea ca pe un sport, atunci acesta sigur e unul de echipă și un sport în care antrenorul face diferența…

Mai nou nu contează așa mult abilitățile tehnice, ci abilitățile de comunicare și de colaborare armonioasă într-o echipă

Ajutându-i pe alții dezinteresat, te ajuți și pe tine aproape automat fără vreun efort în plus.

De fapt mă poți observa cum învăț și în ce mod dobândesc abilități noi cu tehnologiile “sângerânde”.

Este ca și cum am învăța amândoi cot la cot stând la același birou.

De ce codul scris de tine se întoarce deseori de la testare sau de la client cu multe defecte de funcționare.

De ce mediul de dezvoltare (IDE) este mai important decât limbajul de programare, framework-ul sau tehnologia în sine…

Cum poți face ca orice aplicație pe care o scrii să se prezinte cu o interfață ergonomică cu un efort minim alocat acestui aspect în timpul construirii aplicației

Cum poți face task-uri evaluate în mod normal la 3-4 zile-om în sub 1 oră!

Cât ar valora pentru tine un proiect în care să fii vedeta, vip-ul echipei datorită noilor abilități dezvoltate?

Întreaga lui cunoaștere dobândită cu acest preț așteaptă să-ți fie revelată ție.

Dacă TU nu vii ți-o vor lua oricum alții înainte. Pot fi chiar unii dintre colegii tăi. Iar tu vei rămâne ne-codecamp-uit toamna asta.

Cere și ți se va da!

RONUA a organizat un concurs video in care pentru o reclama buna la adresa partidului cistigai un loc la acest Cenaclul Flacara al IT-ului romanesc. Din pacate n-am respectat la singe cerintele, drept pentru care am ramas ne-codecamp-uiti toamna trecuta. Mai jos filmul care mi-ar fi putut salva job-ul:

Tags: , , , , , , , , , , , , , , , , , , , , , ,

Instantanee din viata de ortac

Posted in 112, Premiul n00bel on November 8th, 2010 by Mihnea

Tags: , , , , , , , , , ,

ZĂ Lolffice 2010!

Posted in Premiul n00bel, Stand-up philosophy on November 7th, 2010 by jos8cal

Sint convins ca motivul pentru care domnul Tatomir a fost data afara s-a carat din fruntea Microsoft Romania este de fapt asta!

Office 2010 s-a lansat si in Romania. Fundatia conceptuala a campaniei este articolul hotarit “the”, cel care face diferenta intre general si particular, intre Programator si Silviu Ardelean. Numai ca niciunul dintre cei listati acolo ca fiind imaginea diversilor functionari nu pare a fi vreo personalitate romanesca, cineva care sa fie un ZĂ Cineva. Ei sint doar ZĂ Nimeni, niste nimeni caucazieni cu dinti albi gasiti probabil cu google images. Aici este punctul in care campania a gresit fundamental (ἐκλογή). Bine, ar mai fi si faptul ca daca dai click pe una din poze si inchizi cu X dreapta sus, a doua oara cind dai click pe cineva, dispar toate pozele. Detalii …

Cu poza de mai sus incerc sa aduc lansarea Office-ului in Romania la nivelul dorit de conceptul campaniei “the” office. Il voi numi Lolffice 2010 pentru Romania.

Un alt motiv pentru care campania este una neobisnuit de proasta ar fi manifestul, ZĂ Mein Kampf-ul celor care merg la slujba direct din circiuma:

ZĂ este un articol hotărât. Silaba care face diferența între ce e remarcabil și “restul”

Doar ca in cazul asta voi ati pus poze cu resturi pe post de remarcabila Magda Catone. Pina si Dero s-a prins ca Romanul Recent doreste sa se gindeasca la dinsa cind isi spala chilotii. N-am luptat noi acum 20 de ani ca mai apoi sa ne identificam cu necunoscuti de pe google images. Ei dracia dracului!

De la ZĂ shaorma pentru care traversezi jumătate de oraș la 3 dimineața, până la ZĂ bicicletă, în orice domeniu poți găsi acel lucru desăvârșit.

Sa-ti spun un secret: cei care viseaza la 3 dimineata la lucrul desavirsit numit ZĂ Shaorma sint cei care cauta potol dupa ce au rupt mesele prin circiumi toata noaptea. Pe asta cu bicicleta n-am prins-o, dar probabil e unul din textele pe care le produci la primele ore ale diminetii la birou, dupa o noapte in care ai traversat orasul in cautarea desavirsirii.

ZĂ comedie romantică îi face și pe cei mai înrăiți microbiști să schimbe postul în minutul 25 al primei reprize.

Oh Da! Tu stii ca microbist inseamna deja unul dus cu capul pentru fotbal, nu? Daca mai adaugi si “inrait” acolo automat i-ai conferit o sensibilitate cehoviana, iar mina lui se va muta de pe pet-ul de Skol direct pe telecomanda.

Pentru că un lucru cu adevărat ZĂ îți schimbă perspectiva, reinventează standardele și aruncă direct la coș tot ce e mediocru și irelevant

A se vedea cazul Tatomir.

E timpul să eliminăm din vocabular expresia “merge și așa” pentru bucuria pe care numai un lucru ZĂ, ne-o poate oferi.

Ironic. “Merge si asa” ar fi fost mai potrivit ca nume al campaniei, pentru ca asta a iesit de fapt!

Bucuria pe care Lucrul “ZĂ” ar fi trebuit sa mi-o dea, mi-a fost rapita in totalitate de acei indivizi necunoscuti din poze cu textele lor despre cum investitorul duce gemul la bunica peste ocean. Srsly! Imi ramine doar sa-mi imaginez bucuria de a-i vedea pe Fizz, Nikita si profa de sex folosind Lolffice 2010.

As fi deraiat de fericire sa o vad pe Naomi aratind poze cu ea batuta dar folosind PowerPoint in direct la OTV. Sau pe Fizz cum isi numara banii folosind Excelul pentru calcul tabelar. Sau pe Profa de Sex folosind Outlook Express pentru a-l convinge pe Silviu Ardelean ca laba este arta. Sau pe Silviu Ardelean folosind Word ca sa scrie “products requirements documents“.

Srsly guys, ZĂ fuck!

Tags: , , , , , , , , , , , , , ,