Invataturile minerului Silviu Ardelean catre cine l-o asculta

Ieri seara un incepator extrem de ghinionist s-a ratacit pe codexpert, punindu-si astfel serios in pericol sansele de a invata vreodata sa programeze. El a intrebat de ce compilatorul ii da eroarea “non-lvalue in assignment” in codul if(x%20=0).

Ovidiu i-a dat omului rezolvarea, dar Silviu a simtit ca e loc si pentru o contributie a sa, caci schema de desfasurare a discutiilor aprobata in sedinta plenara de consiliul suprem al expertilor este intrebare – raspuns (optional) – propunere. Ca si in episoadele anterioare, utilajul minier semi-autonom s-a activat la un cuvint cheie fara sa inteleaga contextul si a emis urmatoarea Cugetare Predefinita:

Aditional la cele spuse de Ovidiu iti recomand ca atunci cand ai conditii cu constante sa pui constanta in stanga. La astfel de greseli compilatorul iti va da peste degete inainte de-a rula aplicatia, evitand astfel de buguri: if(0 == x%20) …

Deci: daca scrii 0 = x%20, compilatorul iti va da eroare, spre diferenta de cazul in care scrii x%20 = 0, cind iti va da exact aceeasi eroare. Bug evitat! Vorba aia, Regula e Regula. In programare e ca-n minerit: trebuie sa te bazezi pe reflexe, nu ai timp sa gindesti.

Este amuzant si cum a ratat ocazia de a o da la intors spunind ca de fapt a zis altceva decit a zis. Daca n-ar fi ilustrat propunerea cu cod, ar fi putut pretinde ca vorbea despre cazul real in care se aplica gaozaria aia cu literalu’ in stinga, dar din exces de zel s-a coborit in mocirla concretului si acum nici nu se mai poate baza pe Ovidiu sa-l ajute cu “few cosmetics”. Ca tot ii plac lui citatele, o sa citez si eu din operele unui instalator cu care am avut mai demult onoarea sa port o discutie: “Meseria asta (mineritul, n.r.) e mai grea decit carnea de porc”. Amin!

Tags: , , , , , ,

16 Responses to “Invataturile minerului Silviu Ardelean catre cine l-o asculta”

  1. RRR Says:

    Saguaro Technology e pe mâini bune.

  2. Catalin++ Says:

    Acum acolo lucreaza ? De cand am inceput sa citesc blogul tau a lucrat la vreo 4 fime :)

  3. Mihnea Says:

    Cind am inceput site-ul lucra la multinationala emblematica, dar in primavara s-a mutat la Saguaro. Parcursul de dinainte de Bitdefender poate fi analizat pe linkedin, desi stilul formal de acolo lasa cititorului un gust amar. Mult mai misto era povestea pe blog la el, cu “power manufacture base on water”. Intre timp a incercat o reconciliere cu Shakespeares si a mai sters din picanterii, dar din fericire am salvat noi o parte din ele.

  4. Catalin++ Says:

    A muscat pestisorul la ce a scris 0ptr =)) Incredibil. Faci o treaba foarte buna Mihnea ca le dai unora ca acest miner peste bot. Sa ii mai aduci cu picioarele pe pamant pe acesti seniori :)

  5. jos8cal Says:

    Hai ca s-a ajuns si in cazul lui intr-un final si asta pentru ca o echipa imaginara de quality asteapta constante in stinga expresiei:
    Pentru ca codul nostru sa treaca de un review al echipei de quality chiar daca am pus if (s==20) atunci trebuie sa mutam constanta in stanga. // if (20 == s)

    Si geniala argumentatie dupa ce a citit la noi ca abereaza si ca primeste acelasi mesaj de eroare indiferent de parerea lui de miner prost pe care tine sa si-o faca publica cu orice ocazie:
    Daca obisnuim sa mutam constanta in stanga si uitam al 2-lea egal obtinem aceeasi eroare “left operand must be l-value” si rezolvand-o codul e mai safe.

    Deci practic cind rezolvi o eroare, codul e mai safe. Incredibil. Muie ma!

  6. thefatredguy Says:

    Sa inteleg ca orice cod in care if (x == ceva) nu trece de right value nazis iar nefericitul e anchetat de Gestapo ?

  7. Mihnea Says:

    Fac un cacat. Datul peste bot se implineste atunci cind posesorul botului isi da seama ca e bou. Silviu nu-si da seama ca e bou, el crede ca are dreptate indiferent ce argumente ii aduci. Nu ne facem iluzii ca aducem vreun cretin d-asta cu picioarele pe pamint; toti protagonistii scrierilor noastre sint prea prosti si se iau prea in serios ca sa mai poata fi adusi undeva. Sint minerii supremi. Tot ce putem face este sa ridem de imbecilitatea lor, iar daca rid si altii de risu’ nostru, cu atit mai bine.

    PS: iar a bagat-o p-aia cu embeddedu’, baga-mi-as pula in experienta lui de 2 saptamini pe embedded la Siemens de unde a fost dat afara dupa ce a intrebat pe codeguru cum se optimizeaza inmultirea cu 1. Literalu’ in stinga salveaza vieti!

  8. Şocat Says:

    Silviu isi face mari griji ca intra if-ul doar pe ramura de then, dar ca fute valoarea lui s nu pare ceva ce merita mentionat.

  9. raduangelescu Says:

    yoda conditions… am incercat o perioada sa scriu asa… nu mi-a placut. Nu cred ca e o greseala facuta atat de des incat sa sacrifici lizibilitatea codului.

  10. Mihnea Says:

    Oricum orice compilator din era noastra da warning cind faci if(x=2). Probabil echipa aia imaginara de nazisti ai comparatiilor tine foarte tare sa pui constanta in stinga, dar nu tine sa compilezi cu -Wall, /W4 sau cum i-o zice pentru compilatorul local. In lumea lui Silviu asa functioneaza lucrurile: compilezi fara warning-uri, dupa care trimiti codul echipei de profesionisti sa-l citeasca si sa-ti sublinieze cu rosu locurile in care Forma nu corespunde cu Dogma. E un fel de interviu perpetuu, de unde si obsesia codexpertilor cu intrebarile de interviu.

    Exista sanse ca pe unele platforme embedded sa dai peste compilatoare facute pe genunchi de talibani si sa nu iei warning, dar opinia mea este ca aia care le folosesc isi merita soarta.

  11. Flocea Says:

    ba ce pula mea s-a intamplat cu programare.org ?

  12. Mihnea Says:

    Pai scrie pe programare.org: a murit serverul si urma sa fie mutat in alta parte, dar probabil ITist s-a luat cu altele, i-a fost lene/lehamite sau a avut alte motive personale sa-si bage picioarele. Oferim la schimb http://standupprogramming.com/autobaza.

  13. Mihnea Says:

    In caz ca nu ati prins drama, Cucu a avut aseara o iesire nervoasa pe thread-ul in discutie. 0ptr a intrebat daca Silviu chiar e om si nu bot, iar Cucu a sarit ca “da, daca ai vreo problema cu asta, explica”. Ulterior si-a sters post-ul si a revenit intr-un stil mai calm, povestind ce a citit la noi pe site ca in cazul respectiv iei aceeasi eroare chiar daca folosesti Comparatia Minerului, dar ca in general e bine sa te obisnuiesti sa muncesti, nu sa gindesti.

    Dupa aia a venit si minerul sa mai spuna o data de misterioasa lume embedded si de pclint. Aparent nu poti sa rulezi pclint daca nu pui constanta in stinga, sau ceva. Aia a inteles el din pclint. In nici un caz nu poti sa-i spui lui pclint sa te lase cu cacaturile irelevante de stil si sa se concentreze pe problemele reale, aia ar fi o incalcare a doctrinei codexpertice. Mi se pare amuzant cum acum minerul se increde orbeste intr-un “tool automat”, dupa razboiul declarat acestor dispozitive in 1990 si ulterior in 2010.

  14. Mihnea Says:

    Si acum a inchis thread-ul…

  15. Mihnea Says:

    Brace for epic: http://www.codexpert.ro/forum/viewtopic.php?f=13&t=1884&p=12650

  16. cine plm e silviu ardelean Says:

    first: cine plm e silviu ardelean.

    second: bag pl in tigaia ta.

    third: MUIE Ardeleanule.

Leave a Reply

Optionally add an image (JPEG only)