Omul nu este o insula

Posted in Codare cu premeditare, Premiul n00bel on October 28th, 2010 by jos8cal

Agrafa are dreptate. Omul are nevoie de dragoste, de intelegere si de iubire pentru a putea face ceva cu viata lui, pentru a lasa ceva in urma lui. Pentru ca a face ceva in viata e bine, iar a nu face e rau.

Acum vreo 20 de ani vizionare precum Melinda French sau Karen Fries (un fel de Aurora Liiceanu si Alice Nastase) au decis sa lupte impotriva singuratatii in secolul vitezei. Dinsele au inteles ca a sta 12 ore in fata calculatorului este efemer daca nu iti apare din cind in cind o agrafa pe ecran care sa-ti bage maxime si sa-ti asculte opintelile. Dar cum natura umana impinge la dezmat si abuz, oamenii au voit mai mult de la agrafa. Asa ca s-a infiintat Agentia de Asistenti responsabili cu asistarea deciziilor din viata ta. Agrafa, Vrajitorul Merlin, spiritul din sticla, Peedy papagalul, delfinul Kairu si ciinele care iti aduce fisiere cind dai Find File.

Cu timpul insa agentii au fost inlocuiti de chiar Om. Facebook, Twitter, mIRC sau Forumuri sint toate Agentii cu Asistenti in care Omul mascat in Agrafa ofera suport Omului mascat in Om. Inevitabil Microsoft a fost fortat sa puna pe libera Agentia de Asistenti odata cu Windows 7. RIP Agrafa.

Un astfel de Om Mascat in Agrafa (OMA) este, dupa cum probabil ati intuit deja, si Silviu Ardelean. Datul este simplu. Un om intreaba ceva pe un forum. OMA Silviu isi face aparitia zimbind dintr-o poza distanta sub care stau enumerate 4 stele, simbolul calitatii. Dupa cum stiti discutia cu o Agrafa nu se termina niciodata. Te tot intreaba chestii, tu tot dai Next ca nu esti multumit si dupa citeva pagini de Next o inchizi nervos si ii dai Disable din Options. Asa e si cu OMA Silviu. Doar ca forumurile in care dinsul s-a aciuat nu au suport pentru disabled on sight pe userul lui.

Asa, deci omul ala pune o intrebare total retardata si baga urmatoarea eroare de compilare pe codul asta:

error C2440: ‘=’ : cannot convert from ‘int’ to ‘enum DrawShape’

Si vine raspunsul OMA Silviu:

Nu am timp sa fac un proiect si sa-ti testez codul, dar tin sa cred ca obtii eroarea la linia CDrawTool::c_drawShape = m_nToolTemp;

Wow. Avind o singura linie de cod in care se face o atribuire Agrafa a reusit sa se prinda DIN PRIMA fara compilator pe care linie este eroarea. Si ca orice Agrafa nu-si uita menirea: sa ofere solutii:

In rezolvarea problemei, eu as renunta la acest tip enumerare si as folosi tipuri clasice, un vector, structura, etc.

Recomandare luata parca dintr-un tablou de Botticelli. Cu o singura tusa OMA Silviu a reusit sa redea culoare unui thread monocromatic.  El foloseste structuri in loc de enum-uri. Deci asta era secretul lui.

Scoala Ardeleana este adepta clasicismului. Si vocea parca ii este grava si apasata de bruma anilor in care si-a sedimentat cunostintele:

E o eroare clasica… nu poti atribui runtime noi valori unei variabile enumerare.

Dupa ce Marius Bancila a indraznit sa arate ca se poate si a oferit o solutie practica pe codul ala si anume un cicat de cast la int, au sarit Agrafele ca arse, una ca nu se poate, alta ca nu e etic. Deci da: Options->Preferences->OMA Silviu Agent->Disabled.

Intr-un alt thread un alt maximal se intreaba cum sa implementeze o metoda c_str() pe o clasa String, metoda care te duce cu gindul la c_str() din std::string. In ciuda faptului ca are 8 ani de cind se joaca MFC pe nivel expert, OMA Silviu nu stie despre CString ca-si schimba parul in functie de ce caracter set ai setat la proiect. Recunoaste intr-un final ca e prost si habar n-are ce vorbeste si baga urmatoarea maxima:

My bad, se compileaza, dar de fapt nu face ce se asteapta omul sa faca (adica sa copiezi un sir de caractere, chiar daca aloci memorie ptr asta)

Din nou, in cei 9 ani de STL pe nivel expert el crede ca lumea cind vede un c_str() se asteapta sa se intimple o copiere de memorie. Si ca si suport practic pentru retardarea asta ne ofera un sample de gindire Ardeleana, care inca nu m-am prins ce trebuie sa evidentieze in afara de mintea lui bolnava:

Dupa 2 pagini de discutii intre Agrafe despre cum sa faci un return _ptr, Silviu si-a schimbat pozitia si a oferit implementarea lui c_str():

char* c_str() const { return str.c_str(); }

N-a reusit sa-l faca const din prima (desi el citeste sursele STL inca de pe vremea iteratorilor), dar noroc cu varul Cucu care s-a facut ca vede un “typing error” acolo in loc de “retard error”.

Tags: , , , , , , , , ,

Ingineriada in metru antic

Posted in Codare cu premeditare, Premiul n00bel, Stand-up philosophy on October 15th, 2010 by jos8cal

Pentru mine viitorul este o prioritate. La fel si cariera. Nu mai zic de destin … Asa ca deseori bat intr-o tabla cu butoane pe care stau lipite aptibilduri cu numere si litere. Folosesc circa 7 degete pentru genocidul asta iar cel mai Silviu Ardelean dintre ele este degetul mare, care bate doar tasta spatiu. Ele (ca am doua) nu se misca precum restul degetelor in cautarea Sensului deasupra tastaturii sau prin multinationale. Nu. Ele stau pitite linga tasta spatiu si o pocnesc la un interval regulat in speta de fiecare data cind posesorul degetelor face o pauza in vorbire. Pauza e muzica. Pauza e bataie. Fara bataia la doua miini a spatiului nu exista viitor, cariera sau armonie muzicala. Bataia lui ordoneaza si da sens apasarilor derutate a celorlalte 4 degete. Eins zwei, eins zwei!

Inainte sa existe masinile de scris automate, degetul mare nu avea niciun sens, nu juca niciun rol pe scena vietii. Constientizind aceasta provocare Omenirea a inventat burghiul prin profesorul Burghiu. Directia si Sensul au fost dezvaluite asadar omenirii iar victoria asupra materiei a fost dedicata in intregime degetului mare. Modest si sub acoperire (a se citi “regula burghiului“) El ofera acum directia pentru oricare doi neaveniti care se bat cap in cap, perpendiculariceste.

Grecii nu stiau de burghiu, deci automat nu stiau ce sa faca cu degetul mare. Il foloseau la flotari in doua degete pentru a le face in ciuda atenienilor care pazeau pe la spring time-urile vremii. Dar au gasit alta modalitate sa bata spatiul. Prin muzica. Ei au stiut primii ca daca taci din cind in cind in timp ce cinti, lumea incepe sa-si apropie miinile linga piept si sa le bata, ceea ce-ti produce tie o descarcare si simti ca Ai Reusit!

Ca sa bati spatiul muzical iti trebuie niste materie pe care sa o ordonezi si sa-i zici Instrument Muzical. N-am fost niciodata fanul instrumentelor muzicale pe care trebuie sa le imbraci inainte sa te produci in ele, cum ar fi acordeonul. Dar cind viitorul si cariera trag de tine iti imbraci tastatura si pui mina sa realizezi ceea ce ai de realizat. La fel a facut si Inginer Boață Cristian. Colegul naicul l-a reperat prin Bucuresti vorbind prin gura stilpilor de telegraf pe care si-a lipit afise cum ca si dinsul ofera Directii. Cu alte cuvinte un atac la degetul mare. La regula burghiului. La umanitate si la acordeon!!

Si-a facut si dinsul acordeon 101-102 si pentru o suma modica te invata cum sa bati spatiul la domiciu proprietate personala. Sa vedem asadar cum arata dialogul dintre un cetatean si un stilp pe care sta lipita poza de mai jos cu luarea de pozitie:

Am terminat IPB fac. Automaticã in 1983 .
20 de ani am fost ing. programator la un institut de cercetare al Armatei. Un an am lucrat in invatamant. In domeniul IT, învãţãmântul romanesc oferã opogramã depãşitã …timp pierdut …un start ratat.

In  caz ca nu stiti in ce cheie cinta Cristian, luati aminte:

Un ing. IT poate schimba radical lecţiile în domeniul informatic.
Urmare : …un elev incepãtor va aborda domeniul IT fãrã complexe.
Astãzi 90% din soft == aplicaţii in reţea, aspect foarte important !

Asa ca dati-va jos mastile! Lasati dracului complexele si iata ce va asteapta:

Pentru o Carierã IT de Top, …eventual in Vest, …Stabileşte Prioritãţile !Unica modalitate de a sãri pragul mediocritãţii este studiul Extra-Şcolar.Nu pierde Timpul …Învaţã Programare (matematica şi engleza in planul 2)

Este el Vestul (muzical sau nu). Pentru viitorii ingineri IT se recomanda studierea asidua a lectiilor template de pe site.

LE: Intre timp cineva vadit deranjat de regula burghiului s-a uitat mai atent la degetul mare si a descoperit ca are linii (mostenite din CFigure) pe fata. Le-a botezat amprente si multumita lui acum sintem identificati toti dupa degetul mare. Now that’s a turn off!

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

Ichi ni san shi

Posted in Codare cu premeditare, Premiul n00bel on October 6th, 2010 by jos8cal

Retardarea minerului este maxima. Dinsul crede ca ai nevoie de un geam ca sa scrii niste numere sau text pe disk folosind CArchive:

Înteţeg că versionarea în aplicaţii MDI s-ar putea demonstra folosind şi o aplicaţie consolă după mintea coroiului […]

Cum poţi demonstra un concept dintr-o arhitectură  OOP Windows (MFC) altfel decât creeând o astfel de aplicaţie MDI (Multiple Document Interface)?[…]

Dar fireşte, un luceafăr al huilei ca tine sau Mihnea făceaţi treaba aia în juma’ de oră. În 45 de minute era gata şi articolul în Word.

Deschide in pula mea Visual Studio macar o data in viata ta si da-i sa-ti faca o aplicatie consola cu suport de MFC si baga codul asta in .cpp:

Deci se poate si fara geam si a si durat exact 3 minute sa-l scriu, nu 3 ani de cind sta plina de bug-uri mizeria ta de aplicatie pe codexpert si ai reusit sa o faci sa mearga abia in august 2010, dupa lungi negocieri purtate cu retardarea ta. Si nu e nevoie de niciun Word care sa explice nimic, ca orice om care stie sa citeasca cod, citeste in pula mea. Si ca sa-i faci multiversionare mai bagi un int si mai faci un if() deci inca 3 minute. Asa ca mars la tirnacop.

Daca n-ai prins ce ziceam despre triunghi n-am sa stric poanta explicindu-ti. Si nu-ti fa griji ca lumea este dezinformata doar pentru ca nu ne cunoaste personal. Munca ta vorbeste de la sine. Am dat link la cod si la poze, este indeajuns pentru cineva care stie despre ce e vorba sa se prapadeasca de ris.

Flame-ul cu operatorul post versus pre incrementare pe iteratori a pornit de la un banal FAQ util la interviuri.

Citeste titlul FAQ-ului: Intrebare: Care din operatorii ++, prefix (++i) sau postfix (i++) ar trebui folosit?

Unde pula mea vezi tu scris cuvintul interviu? Deci sugi pula. Raspunsul corect este nu conteaza (implicit vorbim in release unde /O2 este BY DEFAULT ON). Inteleg ca esti un retardat prost si nu crezi ca zic eu, dar vezi ca mentorul tau este de acord cu mine:

Point taken. Lucrurile n-au stat insa asa tot timpul. Te invit sa adaugi un comentariu la FAQ.

Am adaugat un coment la FAQ-ul pizdii dar evident ca mi-a fost sters. Deci sugeti pula amindoi.

Cit priveste aptitudinile tale despre care crezi ca s-au schimbat in timp, te invit la o retrospectiva pe acest blog, sa vezi ca esti in continuare o cauza pierduta in programare. Cautari in map-uri, manevre, versionari si serializari, copiere de memorie, you name it.

Cât de tembel poţi să fi să califici un om după un nivel de acum şapte ani şi jumătate? Chiar nu aveam timp să reinventez roata[…]

Codul asta luat de tine de pe net cum zici tu, aduna niste numere la un sir de caractere, nu vad nicio roata de reinventat. Si btw, uita-te prin codul articolelor tale si corecteaza pe unde intorci CString prin valoare de prin functii, ca acum 7 ani.

Tags: , , , , , , , , ,

M-a facut mama ortac

Posted in Codare cu premeditare, Premiul n00bel, Stand-up philosophy on October 5th, 2010 by jos8cal

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.

Asta fredona Silviu Marius Ardelean in timp ce-si sapa cariera de programator din galeriile reci si ude ale Vaii Jiului catre Timisoara. Cind a dat de lumina neonului de multinationala s-a pus pe scris despre normalitate. Pentru ca lui ii pasa. Si pentru ca scriind poti schimba ceva. Mai ales cind te citeste doar nevasta-ta si restul care rid de tine.

Asa ca automat s-a luat de postul in care se discuta despre imbecili ca el care reinventeaza nimicul pe unde-l prind. Prin MFC sau prin 3D, dupa caz. Dind curs lecturii si neintelegind nimic, spusele lui Mihnea si a altora citati i s-au parut nelalocul lor si asta pentru ca si el are un sistem personal de a defini spatiul. Sa vedem asadar cum defineste Silviu Marius Ardelean un triunghi:

Deci CTriangle deriveaza din CFigure iar Figura ca si concept general are un punct in stinga si unul in dreapta. Directii clare de a defini spatiul, timpul si retardarea. Daca ne uitam in cod sint si mai epice, ca se cheama m_ptUpperLeft si m_ptBottomRight.

Poza asta face parte dintr-un tutorial despre OOP scris de miner pe post de jurnal tinut prin tunelul carierei pe care o sapa de mic. Jurnal tip briceag elvetian care contine nelipsitele sectiuni pentru un programator specialist, sectiuni precum: Bancul Zilei, un ceas, IP-ul celui ce-l citeste si emblema Stelei Bucuresti. Coperta te imbie sa o deschizi deoarece pe dinsa sta scrijelit urmatorul text:

Bine ati venit pe site-ul unui specialist in domeniul software.

Din pacate nu s-au salvat si pozele. Am avut noroc ca poza cu triunghiul am salvat-o cu mult inainte ca Silviu sa decida sa-l copieze pe Marius Bancila si sa-si faca bloage tehnice si de atitudine dinamitindu-si trecutul.

Ca orice labar prost cu idei putine si fixe el se ofera sa ajute lumea bolnava in care se invirte, sa o schimbe, sa-i ofere acces la dimensiunea sa. Asa ca n-am scapat nici eu de momentul in care i-am zis ca abereaza FAQ-uind lumea printr-un indrumar patimas catre programatorii mai saraci cu duhul, despre cum ca pre incrementarea la interatorii containerelor STL este recomandata in favoarea post incrementarii. Evident noi vorbim despre cod in Release, ca doar asta ajunge la clienti (fie ei si colegii tai carora le faci softul de facturi).

Fara o legatura directa dar izvorind in acelasi imbold onanist de a te baga in seama cu chestiuni pe care nu le stapinesti, el are o mai veche pasiune pentru optimizat cicaturi inutile:

Observam cum parametrii vin si pleaca ca-n gara, cum se aloca spatiu intr-un CString si cum se face un undefined behaviour cind esti miner si optimizezi tu incrementarea.

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

Vorbe, nu fapte!

Posted in Glume de autobaza, Stand-up philosophy on October 4th, 2010 by jos8cal

Am 10 minute pauza la ospiciu si am zis sa aduc o mica completare la postul anterior. Scriu de pe telefon fix si sint foarte sedat, so bare with me. Asa, deci doresc o completare la partea cu Fordul in care minierul se identifica cu succesul, cu atitudinea, cu reusita, cu binele din lume, cu futaiul si niciodata cu laba, cu pula-n pizda si niciodata in cur. Acum citeva zile o ardea intelectual pe twitter si se identifica din nou cu oameni care au schimbat fata programarii si au avut ceva de zis in domeniul IT: Einstein, Gandhi, Lao-Tzu, Dijkstra, Antoine De Saint-Exupery.

Emisfera lui dreapta, condamnata sa substituie lipsa celei stingi si sa invete o limba, orice limba, a decis inca o data s-o pise nostalgic in ochi pe consoarta sa muribunda pentru a-i permite Silviului inca o identificare cu colectia de proverbe despre programare sub forma unor Mari Idei Spuse De Oameni Care N-au Nicio Treaba Cu Programarea.

Cum materia lui cenusie a fost salvata de la negreala totala prin distanta de 50Km instituita inca de la o virsta frageda intre el si Valea Jiului, aceasta i-a mai facut un favor Silviului si a comandat serotonina de toti banii, moment in care Silviu s-a pus pe subliniat predicatele proverbelor cu o linie si le-a tras pe nas:

“If you want to build a ship, don’t drum up the people to gather wood, divide the work, and give orders. Instead, teach them to yearn for the vast and endless sea.”

— Antoine De Saint-Exupery

Citatul oglinda pentru captat gindirea miniera. Imi si imaginez cum a dat din cap aprobator ca un tirnacop cind a realizat ca daca vrei sa codezi tot ce trebuie sa faci este sa-ti doresti. O da.

Slabiciunea juvenila catre metafora l-a facut pe Silviu sa-l aprobe si pe Lao Tzu, un Cornel Dinu in materie de razboi care-si scria numele cu Tz in loc de Ț si care nu stia ca era programator undercover inca din anii de inceput ai existentei umane.

A leader is best when people barely know that he exists.
Less good when they obey and acclaim him.
Worse when they fear and despise him.
Fail to honor people, and they fail to honor you.
But of a good leader, when his work is done, his aim fulfilled,
they will say, “We did this ourselves.”

— O Lae-Tzu

Si acum una care-l coafeaza la fix:

We reject kings, presidents, and voting.
We believe in rough consensus and running code.

–Dave Clark (1992)

A se observa aici si aici cum Silviu vorbeste pe “running code” si nu o da-n telenovele si-n teorii retardate care poate poate se pot mula pe retarzenia care-i bintuie existenta.

Abraham Lincoln reportedly said that, given eight hours to chop down a tree, he’d spend six sharpening his axe.

— TidBITS 654, quoted by Derek K. Miller, via Art Evans

Asta cred ca e true story. E ca de la miner la miner. In 8 ore la birou el sta 6 ore sa-si ascuta tirnacopul.

The significant problems we face cannot be solved by the same level of thinking that created them.

— Albert Einstein

Einstein pe prozac vorbind pe limba lui Silviu Ardelean pe serotonina.

“There’s no time to stop for gas, we’re already late”

— Karin Donker

OMGFUCKOFFDIEANDEATSHIT!

Cacat! M-au reperat doctorii ca am inceput sa strig prea tare la telefon de nervi si acum s-au pornit spre mine cu camasa alba. Fuck! Hai c-am taiat-o ca mi-au promis ca nu ma string prea tare de pat daca ma gasesc la mine-n camera.

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

Psihologia nu e tirnacop

Posted in Regula 0 on October 2nd, 2010 by Mihnea

Silviu Marius Virgula Ardelean si-a gasit un aliat in psihologie. Ca si optimizarea copierii, psihologia este curva tuturor, pentru ca pare foarte usor de practicat. In fond, ce-i asa de mare lucru sa te gindesti de ce fac oamenii ce fac? Ba mai mult, folosita corect, psihologia este un puternic instrument de mentinere a imaginii de sine, caci iti permite sa analizezi riguros motivatiile celor care te injura si sa concluzionezi stiintific ca sint niste mitocani, ceea ce te absolva de orice vina. Jargonul psihologiei ofera chiar un termen pe care il poti folosi atunci cind cineva iti zdruncina piedestalul pe care te-ai cocotat: frustrat (respectiv “fustrat” cum credea Silviu ca se scrie pina i-am reglat noi lampasul). Cind cineva iti arata ca esti prost, ii spui ca e f(r)ustrat si l-ai inchis. “Frustrat” este un fel de abracadabra, sah mat, solutia finala, nodul terminal, cheat-ul pentru god mode in discutiile online, deus ex machina, echivalentul cuvintelor care se termina in “nt” la Fazan.

Ca oricarui om cu mici dificultati in exprimare, lui Silviu Marius Ardelean ii plac citatele si proverbele. Imbinind aceasta pasiune cu alinarea pe care i-o aduce psihologia, el a ciripit zilele trecute urmatoarea revelatie:

Psychologists say that blog posters who post negative, sarcastic or angry posts actually reflect their own inner anger and insecurity

“Psychologists say”, adica psihologii in general. Daca te impiedici de un psiholog pe strada, sint sanse foarte mari sa-ti spuna fraza de mai sus, pentru ca asta e o chestie pe care o spun ei de obicei. “Psychologists say” e de fapt o forma specializata a clasicului “Some argue“, deci evident ca citatul nu este urmat de un link spre sursa, unde cititorii care nu cred ca un lucru este adevarat doar pentru ca e scris pe Internet ar putea sa vada modul in care “psihologii” au ajuns la aceasta cugetare.

Este totusi interesant de analizat ce inseamna de fapt aceasta zicala a psihologilor-ortaci. Eliminind cuvintul “insecurity”, care este doar un mod de a spune “f(r)ustrat” in engleza si deci nu inseamna nimic, raminem cu concluzia ca aia care scriu posturi negativiste, sarcastice sau suparate o fac din cauza ca sint suparati. Cacator frate. Ce spirite patrunzatoare sint “psihologii” astia! Ma rog, cititorul atent a observat ca am sarit peste adjectivul “inner” si ar putea crede ca “inner anger” asta inseamna altceva decit supararea ordinara. Inseamna un cacat. E un alt termen inventat de labarii aia cu dezvoltarea personala, “self help” si alte gunoaie d-astea pentru luat banii prostilor.

Lui Silviu ii scapa doua chestii aici. Prima e ca aforismul “psihologilor” nu spune nimic despre validitatea post-urilor alora negativiste, sarcastice sau suparate. Faptul ca ele izvorasc din “inner anger”, “insecurity” sau smegma de unicorn nu inseamna ca sint false. In particular, preluarea citatului nu demonstreaza ca ce am scris noi aici despre el este gresit. El ramine un imbecil colosal, indiferent de motivele sau afectiunile mintale care ne fac pe noi sa tot repetam asta. A doua chestie care-i scapa e ca majoritatea post-urilor de pe blog-ul lui sint “negativiste si suparate” (sarcastice n-au cum sa fie, din cauze evidente). Ca sa vezi ironie. Din pacate Silviu n-a citit textu’ mic de pe instructiunile de folosire ale psihologiei, unde scria ca daca esti un miner cu neuronii aglutinati de falnicia multinationalelor, risti sa-ti dai cu ea in coaie.

Acest post s-ar putea incheia aici, dar imediat sub ciripeala psihologica, Silviu a mai ciripit ceva ce ma obliga sa rascolesc suplimentar sterilul mintii sale:

As a Ford car owner, I feel better when I see this movie: http://www.youtube.com/watch?v=4TshFWSsrn8

Link-ul duce la filmuletul ala in care se da Ken Block cu un Fiesta de 650 de cai. Toti cei care au simtit nevoia sa dea mai departe clipul asta au atasat de el un text de genul “uite ba ce face asta”, insa un om special ca Silviu nu se putea multumi cu atit. El se face cu forta parte din performanta lui Ken, pentru ca are si el un Ford cu care incurca traficul. El “se simte mai bine” vazind ce face unu’ cu o masina care are aceeasi emblema ca a lui, la fel cum se simte mai destept pentru ca lucreaza intr-o firma in care altii fac un antivirus destul de popular. Silviu e pizdos prin osmoza.

PS: ieri trebuia sa se lanseze standupprogramming.ro, dupa ce fusese deja aminat o luna. Din pacate se pare ca Silviu nu vrea sa ne ofere material suplimentar, caci n-a facut decit sa mai amine lansarea cu inca doua luni. Cum ar spune Silviu prin tag-uri pe blog, “pacat”, “lehamite”, “demagogie”, “lipsa respect”.

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