Silviu Ardelean in groapa cu potential

In directia ograzii cu experti in C++ a fost aruncata o intrebare de catre un ratacit asudat de drumul lung al vietii de programator:

Exista o functie care sa returneze structura de foldere? Adica, vreau sa “vad” ce este in folder-ul “E:\Alin\”. Deci imi intoarca toate folderele din directorul de la o cale data.

Cum era si de asteptat cand vine vorba de o clisma, cine altul decit Silviu Ardelean este mai in masura sa-si faca efectul in mentalul colectiv. Cel mai patrunzator spirit de miner de pe forumurile romanesti de programare si-a imbracat de indata costumul de supozitor si a trecut la treaba:

Daca aplicatia ta e una nativa Windows, potzi folosii SHBrowseForFolder().

De indata ce raspunsul corect a fost dat de altcineva, vagonetarul nostru fruntas in intrecerea socialista (*) din ograda expertilor a simtit cum il invaluie un miros de malitia amestecat cu cacat pe care a incercat sa-l redea in cuvinte:

Tocmai de aceea am precizat “Daca aplicatia ta e una nativa Windows” (cu ferestre).

Adevarul e, ca Alin nu a precizat foarte clar ce vrea…

Adevar! Pai bine mai Aline cine este ma elefantul si cine este vrabiuta in intrebarea ta? Cine este ma bursucul? Tu nu stiai ma ca revolutia i-a prins pe mineri cu cartile si caietele de engleza in vine dar in schimb vorbesc o romana ad-literam la perfectie?

Ah da, si muie Nick Vujicic.

(*)

Clipa, stai, opreste-ti zborul!

Se pravale compresorul.

Tags: , , , ,

67 Responses to “Silviu Ardelean in groapa cu potential”

  1. Silviu Ardelean Says:

    Haa…. haaa…. haaa… Ce am mai ras. =))
    De autorul mirificului articol. Articol de pus in rama la gazeta de closet.

    Tzutule, vezi ca iti dispar vizitatori. :P

  2. jos8cal Says:

    Pune mina pe dex si da-ti cu el in mecla.

    LE. Nu mai ai hit-uri pe blog sau cum contorizezi vizitatorii nostri?

  3. Silviu Ardelean Says:

    Tzutule, imi place… esti un fin moderator si dai in omul ala care pare a-ti oferi un ignore profund.
    Sunt un amic de-al tau mai vechi dar tu la cat de bou esti nu iti dai sema…

  4. Mihnea Says:

    Da coaie, am putea spune chiar un ignore afund: http://traindprinromania.blogspot.com/2010/07/mai-jegule.html .

    PS: un amic mai vechi al cui, mai exact?

  5. Silviu Ardelean Says:

    Hai ca esti prost si nu te mai retin… Ai fost, esti si vei ramane un mocofan.
    M-am distrat cu tine, hahalero! :P

    PS. Nu uita sa-l acuzi pe Silviu si sa-i atribui textul meu. ;) Mersi ptr. serviciu.

  6. Mihnea Says:

    Ba, eu refuz sa cred ca exista mai multi oameni pe planeta asta suficient de prosti incit:

    a) sa scrie in mod repetat “fustrat” in loc de “frustrat”
    b) sa creada ca jos8cal (adica standupprogramming aici) si cu mine sintem aceeasi persoana.

    De aceea imi permit sa fac putin pe Silviu Poirot la rindul meu si sa proclam ca tu esti Silviu.

    Don’t let the door hit you on your way out.

    PS: tare asta cu “m-am distrat cu tine”. Stii tu cum negarea e primul pas… negarea “fustrarii” ce te aduce aici in fiecare zi, in cazul de fata.

  7. Silviu Ardelean Says:

    Bre Silvica, ce pula mea stai acolo in barlogul tau si nu ii raspunzi la om?
    Omu’ iti face reclama, fie ea si negativa si pe mine ma ia drept. Mie nu-mi convine ca nu sunt atat de expert. :P

  8. George Says:

    Din majoritatea articolelor acestui blog, inteleg ca autorul a dezvoltat o obsesia fata de persoana lui Silviu.

  9. Mihnea Says:

    Ne cerem scuze inca odata ca pare asa. Avem o lista mai lunga de “programatori” pe care-i vom indosaria cit de curind posibil, dar multi din ei nu mai sint activi si nici unul nu este asa de prolific, deci aberatiile lui Silviu au avut prioritate.

    Evident, primim cu bratele deschise orice propuneri din public, caci nu putem urmari toate forumurile si blog-urile romanesti legate de programare, desi ne straduim din rasputeri.

    Redactia.

  10. George Says:

    Inteleg ca a luat aproximativ 12 ore moderatorului sa-mi posteze comment-ul. Chiar ma intrebam daca imi va fi postat.
    Sincer, nu inteleg ce e atat de epocal in tot ce ne-ai zis de Silviu. Trag concluzia ca ai vizitat putine formuri de-l iei pe el oaia neagra. ;)

  11. Mihnea Says:

    Comment-urile nu sint moderate, dar filtrul de spam al lu’ wordpress mai face exces de zel din cind in cind (si nu poate fi dezactivat).

    Eu am vizitat multe forumuri de programare de la noi, dar Silviu e un tip special de idiot. E idiotul care nu stie nimic, dar scrie articole. Nu e singurul, dar e emblematic, cum ii place lui sa spuna. A primit atita atentie deoarece atunci cind ii spui ca mai bine s-ar rezuma la intrebat, face spume la gura si il cheama pe mentorul sau in eticheta online care-ti da in cap cu Regula 0.

    Gogoritele lui cu cautat liniar prin map-uri, switch pe constante si optimizat incrementarea nu-s foarte amuzante luate individual (Superdarie sau BlaxxunRomania au chestii mult mai zemoase, dupa cum se poate citi tot aici), dar reusesc sa formeze un tot mult mai inalt si mai frumos decit suma partilor. Cred ca-l ajuta modul exasperant in care se ia in serios, o chestie care de altfel pare un criteriu de baza pentru acceptarea in inner sanctum-ul “comunitatii expertilor C++”.

    Ca sa fim totusi obiectivi, unul din cei doi scribi de aici a luat ban pe cloaca aia cu experti pentru ca a avut tupeul sa-i spuna lui Silviu ca abereaza, deci exista oarece animozitati (eu am luat ban acolo pentru ca i-am spus altui cretin ca bate cimpii, dar Silviu isi atribuie si victoria aia, ca un modest ce e). Totusi, nu vrem sa-l scoatem pe el oaia neagra a forumurilor romanesti. Site-ul e la inceput; pe masura ce se dezgroapa penali si se string articole, dominatia lui Silviu va slabi.

    PS: trebuie sa recunosti totusi ca inabilitatea lui Silviu “Laocoon” Ardelean de a se aseza coplanar cu misto-ul si sarcasmul este legendara, chiar daca nu-i o chestie legata strict de programare.

  12. George Says:

    Trebuie sa recunosc ca acest blog e unul mai inedit in peisaj, chiar daca nu e unul etic.
    Fiind un vizitator destul de frecvent, am urmarit firul discutiilor si am incercat sa aflu sursa conflictelor.
    Chiar daca nu iti place, parerea mea e ca cei doi useri la care face Silviu pe blogul lui ca raspuns la actiunile tale, pe codexpert.ro pare ca au fost banati din acelasi motiv: atac la persoana.
    Una e discutie contradictorie pe o tema tehnica si alta e atacul la persoana. ;)

  13. Mihnea Says:

    Nu cred ca ai putut vedea de ce am fost banat eu pe forumul ala, pentru ca MVP Ovidiu Cucu mi-a sters constiincios aproape toate post-urile, inclusiv pe alea tehnice (el e de formatie pre-decembrista, deci asasinarea de caracter ii curge prin vene). Motivul oficial a fost penibil si nu stau sa-l povestesc ca sa nu plictisesc audienta, iar ala neoficial a fost ca Ovidiu avea demult o rica cu mine, de cind si-a facut o clona pe programare.org ca sa ma injure “anonim” ca la usa cortului (ceea ce pare sa faca si aici). Asta apropo de atac la persoana, Regula 0 si alte idealuri inalte pe care le promoveaza acum in ograda proprie.

    Vezi tu, atacul asta la persoana e o chestie foarte subiectiva. E discutabil cind apare, de ce apare, ce e atac la persoana si ce nu e si cine e sanctionat pentru atac la persoana. De obicei te astepti ca o discutie tehnica in contradictoriu sa aiba un final, pentru ca ne invirtim intr-o stiinta exacta, unde chestiile sint masurabile si demonstrabile. Cu sleahta lui Ovidiu insa n-ai spor in felul asta, pentru ca Silviu ti-o baga p-aia cu “se ajunge si in cazul lui”. Indiferent cum ii explici, el e programator la Bitdefender, deci are dreptate. Cu Cucu nici macar nu ajungi la asa ceva; aluia ii arati cifre si el iti cere buletinul, cum s-a obisnuit in anii in care era probabil atasat politic la uzina. Cind evenimentele se desfasoara in acest fel, ajungi usor la concluzia ca interlocutorul e prost. Cind ii spui ca e prost nu e un atac la persoana, e pur si simplu o concluzie logica.

    Privind altfel problema, nu s-ar ajunge la atacuri la persoana daca moderarea forumurilor tehnice s-ar face pe criterii tehnice. Cind un bou o tine pe-a lui dupa ce ii explici de 3 ori ca greseste, ban. Asta ar trebui sa fie Regula 0. La fel, cind un cretin raspunde cu bazaconii auzite in fata blocului la toate intrebarile din dorinta de a se auzi vorbind, ban. In comunitatea expertilor n-are cum sa se intimple asta, pentru ca Ovidiu Cucu stie niste MFC si cam atit, deci n-are cum sa-si dea seama care-s timpeniile, iar Marius Bancila e prieten cu Silviu, deci ii e tirsa sa-i spuna “mai taci ba ca esti prost”.

    In fine, mai e si problema auto-luarii in serios, care pe mine ma scoate din minti. Unde te intorci dai peste un Luceafar al bunului simt si respectului reciproc, monument de seriozitate si atitudine profesionista. Sintem pe internet, loosen up ffs. Vezi un bou, faci un pic misto de el. Nu se pierde nimic, ca prostii de speta asta nu-s educabili. Sint forumuri mult mai mari care au supravietuit fara Regula 0 a lui Cucu (desi e drept ca n-au fost blestemate cu moderatori care cred ca asta e umor).

  14. George Says:

    Iti respect punctul de vedere. E un drept universal. :)
    Totusi, prin actiunile de pe acest blog crezi ca ai/ati actionat etic, moral si profesinist?

  15. Mihnea Says:

    Nu inteleg ce rost are sa-l amestecam pe Spinoza in toata ciorba asta. Aici se face bascalie. Eu nu-mi pun probleme de etica atunci cind ma uit la failblog sau la filmulete cu Hitler pe youtube.

  16. George Says:

    Iarta-ma, dar din moment ce tu vorbesti aici serios despre pataniile tale cu “amicii” tai, ma asteptam sa vorbim si putin serios. As aprecia un raspuns obiectiv la intrebarea mea. Multumesc!

  17. Mihnea Says:

    Pai ti-am dat un raspuns serios si la obiect. Pe site-ul asta facem misto. Daca umorul ar fi mai de calitate, am putea spune ca-i un pamflet, dar deocamdata ne descurcam cum putem. Scuzata fie-mi comparatia, dar tu iti pui probleme de etica cind citesti Catavencu sau cind rizi de Becali?

  18. George Says:

    Insist sa imi raspunzi sincer la aceasta intrebare pentru ca maine, subiectul unor astfel de “articole” poate fi oricare din noi… chiar tu sau eu. Deci… please! :)

  19. Mihnea Says:

    Eu ti-am zis sincer ca noi incercam sa facem aici un pamflet, deci nu ne punem probleme de etica. Evident ca oricine scrie o timpenie online devine o tinta. Acum n-o sa ne legam de incepatori si de greseli oneste (uite etica, daca insisti); subiectii trebuie sa aiba ceva special: o reputatie, o imagine exagerata a sinelui, o placere de a se auzi vorbind, un IQ sub temperatura camerei, o tendinta de a se lua in serios, diverse mecanisme menite sa substituie gindirea (“cine esti tu”, “nu critica daca nu vii cu alternative”) sau alte astfel de trasaturi incintatoare. Pe forumurile unde am activat sau activez am ajutat o multime de oameni care au intrebat “cum fac X”. Sper ca nu e nevoie sa scriu un tratat despre diferentele dintre oamenii normali si personajele trecute in revista pe acest site.

    Totusi, cred ca am dezbatut suficient deontologia mistoului. Eu vreau sa vin aici sa “ma rid”, nu sa expun criterii de selectie sau istoria trolling-ului. Daca se amuza si altii care citesc, bine. Daca se enerveaza tintele si fac spume la gura pe propriile canale mediatice, si mai bine, ca mai furnizeaza material. Deci gata cu justificarile ca m-am plictisit.

  20. George Says:

    Totusi, din experienta mea programator perfect nu exista. Cu toti face greseli… mai mici sau mai mari. Uneori, poate, chiar nici tehnica/tehnologia aleasa nu e ceea mai buna.
    Inteleg ca aveti o experienta bogata in programare si puteti impartasi multe cunostinte. Daca tot v-au ejectat de pe codexpert.ro, nu credeti ca era mai interesant sa faceti propriul site de programare, sa le dati clasa la “experti” si sa faceti legea?
    Cu rahat… poate aruca oricine. De la manelisti la politicieni. :)

  21. Mihnea Says:

    Eu iti zic ca aici tratam cazurile speciale si tu mi-o bagi p-aia cu conditia umana si imperfectiunea. “Demograficu'” acestui site (scuzati jargonu’ de hipsteri) se prinde ca e o diferenta intre “toti gresim” si Hitler. Daca tie nu ti se pare iesit din comun ce fac Superdarie si Silviu, iti pierzi timpul pe-aci.

    Nu ma intereseaza sa fac nici o lege. Ma intereseaza sa fac misto. De cite ori sa repet? Am conturi pe vreo 3 forumuri de programare si impartasesc acolo cunostinte alora vrednici de ele. Deocamdata n-am porniri megalomane care sa duca la fondarea comunitatilor de experti si nu ma preocupa educarea cu forta a populatiei. Aici vreau sa arunc cu cacat. Asa se manifesta simtul meu civic: identific imbecilii si-i minjesc cu cacat. Singura clasa care ma intereseaza este legata de eleganta miscarii in momentul propulsarii cacatului spre tinta. Manelistii, politicienii si lacheii lui Cucu care comenteaza pe aici arunca si ei cu cacat, dar intr-un mod neinteresant. Eu vreau s-o fac cu stil.

    PS: e a doua oara cind fac apel la legea lu’ Godwin pentru a pune capat acestei discutii. Reusim de data asta?

  22. George Says:

    Chiar m-ai facut curios… ne dai si noua un exemplu de switch() cu constante? :D

  23. Mihnea Says:

    http://silviuardelean.ro/2010/07/23/versionable-object%E2%80%99s-serialization-in-mdi-applications/

    PS: “voua”?

  24. George Says:

    Mihnea, no offence, ori esti rau intentionat ori tu confunzi variabilele statice int cu constantele.
    Cred ca te referi la folosirea lui CURRENT_VERSION care e un static int. Chiar daca sintaxa arata ca o constanta, nu e constanta.
    Deci daca nu ai alte exemple, faza cu switch-ul la constante cade in cazul lui Silviu.

    PS. De ce folosesti http://anonymouse.org/ ? Nu merge. :)

  25. Mihnea Says:

    A pardon, vad ca s-a corectat dupa ce a ris jos8cal de el in groapa cu experti. Era niste copy/paste powah pe-acolo cu switch(CURRENT_VERSION) si in partea de load care o sa zici ca ni se intimpla tuturor, da’ lui i se intimpla fix in codul pe care vroia sa-l propovaduiasca lumii, deci nasol.

    N-am inteles-o p-aia cu anonymouse.

  26. George Says:

    Intamplarea face ca de ceva timp am aflat si eu de acel site si din cand in cand ma mai dau pe acolo… discret.
    Stiu despre ce vorbesti caci si eu m-am amuzat la semnalarea bug-ului de catre jos8cal. Totusi, si atunci folosea static int pasat la switch(). Omul se pare ca a rezolvat-o la un caz mai general (suport multi-version in mdi).
    Daca prietenul tau mai are vechiul proiect de pe codexpert (SerAdressBookMDI.zip – pe care l-a analizat atunci) vei observa si acolo ca omul foloseste tot un static int pasat la switch().
    Legat de anonymouse.org, href-ul tau observ ca-l foloseste.

  27. Mihnea Says:

    “Omul” citea versiunea din fisier dupa care facea switch pe variabila gresita, deci incarca fisiere versiunea 1 cu cod de versiunea 2. In plus, daca tin bine minte codul, pe variabila aia cu nume de macro n-o schimba nimeni tot programul, deci chiar daca nu scria “const” acolo, se cheama ca era constanta. Si totusi, switch-ul ala e cel mai mic pacat al lui Silviu iar enumeratia unde am amintit de el asta spunea, ca nu-i spectaculos luat separat.

    De care link zici? Ala de mai sus nu e cu anonymouse si nici n-am de ce sa ma complic cu proxy-uri aici, ca doar IP-ul de la birou e stigmatizat de catre AXTI, iar acum sint in alta parte.

  28. jos8cal Says:

    In primul rind n-a rezolvat nimic la “cazul general”. Cu codul de la el de pe site nu poti salva decit in ultima versiune a programului si asta din cauza switch-ului ala retardat. Deci la revedere multi-version.

    In al doilea rind, cazul ala general de care zici, adica suport multi-cacat in MDI pula-n cur este o mare laba existentiala. Care pula mea este legatura intre MDI si salvat niste numere si string-uri pe disk? Ce legatura are CArchive cu geamuri si alte mui muncitoresti?

    In al treilea rind, cit de prost trebuie sa fii sa implementezi gresit un asemenea “articol” pe care oricum il gasesti spus la obiect la microsoft pe site. Si uite si ce greu este sa dai de el.

    In al patrulea rind este nasol sa ai prieteni experti in C++ care nici macar nu se sinchiseasc sa citeasca aberatiile din articolul ala si sa-ti spuna sa lasi pixul in favoarea tirnacopului.

  29. George Says:

    Mai baieti, cand vorbiti de un switch(const) si de fapt e switch(static int) ma puneti pe ganduri. Cu accesarea “asociativa” in map la fel. Omu’ foloseste iteratori si operatorul [] ca sa ia referinta la obiectul mapat dorit (gasit cu iteratori).
    La fel, povestea cu bufferul… nu m-ati lamurit ce era asa de amuzant.
    Imi dati impresia ca focusati pe persoanele ce v-au deranjat si aruncati, povesti chiar inventate (uneori) pe care unii chiar vi le cred fara a cerceta.

    @jos8cal: calca, te rog, pe mandrie, descarca fisierul de pe codexpert.ro sau site-ul omului si vezi ca merge la cazul foarte general: salvare din v2 in v1 si invers (cu extensii diferite).
    MDI inseamna arhitectura doc-view si serializare. Deci, inevitabil ajungi sa fac ce a facut el. Cand vorbesti despre serialize in MDI nu cred ca te apuci sa faci un demo intr-un proiect consola. ;)

    Radem noi radem… dar si sa avem argumente pentru a o face.
    Sorry, am incercat sa va inteleg dar cred ca suntem pe alta frecventa. Nu va mai retin…

  30. jos8cal Says:

    Aia cu reactorul nu, aia cu switch pe CURRENT_VERSION nu, aia cu map nu, aia cu array-ul nu, aia cu MDI nu. Deci tu n-ai inteles nimic din ce povestim noi aici. Daca crezi cumva ca noi sintem aici sa facem pe domnu’ Trandafir cu lumea, te inseli amarnic. Noi ridem de niste chestii evidente pentru cine a lucrat cu asa ceva. Pentru restul exista usa. Deci pa pa.

    LE: Mi-am calcat pe mindrie cu mult inainte sa ne ridem aici ca doar n-am comentat la articolul lui de pe codexpert citind in urina. Si nu, nu stie sa salveze din v2 in v1. Incearca dar nu poate. Adica e fail exact la ce incearca sa ne explice in acel “articol”.

  31. Fan Ronua Says:

    George draga, tu ai citit atent codul legat de cautarea in map? Si nu ma refer la o versiune modificata dupa ce a fost semnalata problema(Silviu isi editeaza si postarile pe blog in functie de cum bate vantul). Daca ai citit si parerea ta e ca treaba asa se face, stai jos, nota 2. Eu unul am ras cu lacrimi la acest “fine touch” marca Silviu Ardelean.

  32. George Says:

    Draga fan… stai linistit. Si aici am vazut ca se practica “fine touch”. :P

  33. Mihnea Says:

    Deci stai, caci doresc lamuriri. Tu chiar nu gasesti nimic in neregula cu cautarile alea doua prin map? D-aia te temeai ca “miine” ai putea fi chiar tu o tinta?

  34. Fan Ronua Says:

    Sunt foarte linistit. Fine touch-ul practicat aici are o cu totul alta conotatie decat cea la care ma refeream. Din postarile tale am realizat ca nu prea intelegi de ce anume se rade pe acest site, dar hop si tu ca musca-n….era sa zic lapte, dar cacat suna mai potrivit.

  35. George Says:

    @jos8cal: Legat de bugul de la serializare de care vorbeai, cred ca vorbim de prototipuri diferite. Tu despre primul, eu despre al doilea.
    Da o geana, aici: http://silviuardelean.ro/wp-content/uploads/2010/07/SerAddressBookMDI.zip

  36. Gogu Says:

    Baieti, ce faceti? Ati intrat in vacanta? :D

  37. Mihnea Says:

    George, n-ai cum sa scrii un articol despre serializare si sa gresesti tocmai codul de serializare. Ala nu e un “prototip”, e niste cod care nu are ce cauta online. Unii oameni care nu-s asa de preocupati sa fie emblematici testeaza codul atasat articolelor inainte sa le publice.

    Oricum, e interesanta data uploadarii celui de-al doilea “prototip”, ca sa nu mai vorbim de solutia magistrala pe care a gasit-o Silviu cu variabila aia globala pe care o tot freaca (daca-mi zici ca nu e o variabila globala ci un static int, te banez).

  38. George Says:

    Care e variabila “globala” sau “statica” o “tot freaca”? CSerAddressBookDoc::m_uiFileVersion? Come on… aia e “globala” cand face plopul mere si rachita misunele.

    Legat de faza cu data arhivei, mai uita-te si la data fisierelor. Apoi, analizeaza versiunea din atasamentul vechi ce o stiai tu cu bug, cu articolul omului si te vei convinge ca, codul din articol nu pusca cu cel din arhiva veche de care ziceai ca are bug.
    Omul a si precizat pe codexpert.ro:
    “In urma procesului de update din 22.07 s-a strecurat o greseala.
    Atasamentul ce era disponibil dupa acel update continea versiunea initiala cu bug-ul semnalat. Daca se analiza codul din articol cu cel din vechea arhiva se puteau observa diferentele semnificative.
    Vechiul atasament continea clase cu prefixul CSerAdressBook in loc de CSerAddressBook , cum e in acest articol. Prima versiune nu suporta versiune multipla de fisiere (extensi de fisiere *.sab1, *.sab2).”

    Cat priveste ban-atul, esti liber s-o faci cat timp tu tai si spanzuri pe tarlaua ta… :) Ar fi frumos daca ai lasa si pe alti sa-si exprime parerile, chiar daca ele nu coincid cu ale tale.

  39. Mihnea Says:

    Am zis ca te banez pentru ca doresc sa mentin un anumit nivel al discutiei, daca tot facem pe seriosii aici. Daca eu iti arat imbecilitati in codul lui Silviu si tu nu le intelegi, imi pierd interesul fata de discutia cu tine si nu vreau sa aud cramponari legate de terminologie (vai, nu e constanta ca nu scrie “const” si nu e globala pentru ca e de fapt un static intr-o clasa).

    “Globala” la care ma refer e CURRENT_VERSION ala pe care-l tot freaca Silviu acolo. E un state global care-i spune unei metode oarecare ce sa faca, adica unul din cele mai nasoale lucruri pe care le poti face intr-un design. Faptul ca Silviu a facut atrocitatea asta intr-un caz atit de banal ca serializarea unui cacat de agenda (si ca nici nu i-a iesit din prima) duce la dezgust sau amuzament, dupa caracterul fiecaruia. De parca muia aia nu era suficienta (apropo, de ce se cheama ca un macro?), mai sint si jongleriile alea cu mintit contactu’ ca e o anumita versiune, chemat metoda care scrie versiunea falsificata in fisier, apoi restaurat versiunea originala (linia 69 in contact.cpp, daca insisti; de asemenea remarcam cum sa-ti chemi explicit propriile metode la linia 68, ca poate compilatoru’ nu se prinde singur). Omul asta ii invata pe altii sa faca asa. Din partea mea n-are decit sa duca aplicatiile de salarii din companiile emblematice de securitate pe noi culmi in halu’ asta, dar mi se pare de prost gust sa inceapa sa scrie articole. Daca vede cineva si crede ca asa se face?

    Apropo, nu mi-ai zis cu mapu’.

  40. George Says:

    Inainte de toate, si tu imi esti dator cu lamuriri legate de buffferul ptr. care te prapareai de raz. Intre timp, am observat ca la Marius pe blog l-ai propovaduit. Cum saracie? Tocmai tu care te prapadeai de ras? Chiar ma faci sa rad…

    1. Serializare: pai normal ca trebuie s-o frece cu versiunea aia curenta prin clasa Contact. Are o lista de contacte pe care o parcurge si serializeaza. Nu crezi ca pentru fiecare entitate Contact trebuie sa serializeze. Si nu crezi ca ar fi utila si versiunea?
    Eu zic ca da… Daca ai alta parere, astept argumentele solide… altele decat un rahat de sintaxa a la macro/const/static, etc.

    2. MAP: Da, in acele metode nu foloseste in cel mai inspirat mod map-ul.
    Putea sa foloseasca direct std::find() si avea iteratorul pe care-l seta. Numai ca mai trebuia operatorul == suprascris, plus functia predicat de comparare.
    Foloseste iteratori ca sa obtina cheia cautata si operatorul []. Nu uita, ca si cu acest operator obti obiectul dorit din map daca dai cheia buna (If x matches the key of an element in the container, the function returns a reference to its mapped value). Daca nu ar folosi acel for si if ci doar operatoru direct, exista riscul sa insereze in nou item in map daca cheia nu exista.
    Uita-te tu ce implica apelul unei astfel de metode ce se executa ptr. un eveniment de click si gandeste-te ce castig ai scriind un cod mai optim. Ce performanta obyi?

    Legat de operatorul ++ mi-a placut flame-ul vostru. El iti vorbea despre implementare avantajele operatorilor pre/post incrementare din punct de vedere al implementari in sursele STL (la pre nu mai creezi obiectul temporar ca la post), iar tu o tot tineai cu optimizarea de release /O2.

    Inteleg de gluma, dar uneori la tine pare a fi vorba si de rautate… Am impresia ca esti un gica contra. Fireste ca se pot face lucruri altfel, si poate mai bine.
    Bete in roate e usor sa bagi daca sti ceva. Pune tu pe web un articol si facem pariu ca eu sau alti iti vom gasi bete in roate, la fel cum faci tu…

  41. jos8cal Says:

    Fa in pula mea diferenta intre userii care posteaza aici. Unul sint eu si altul este Mihnea. E chiar atit de greu?

    Eu ma rideam de buffer-ul ala si nu-ti mai explic de ce, pentru ca e inutil. Te-am si intrebat acolo ceva si “ai uitat” sa raspunzi. Poate te prinzi raspunzind.

    1. Gunoiul ala de versionare si serializare MDI a stat pe codexpert o gramada de timp pina cind acum 4 luni m-am sinchisit sa-i spun ca abereaza si are bug-uri pentru care merita dat afara de la locul de munca. Acum a corectat si mi-a sters comment-urile in care ii explicam unde greseste, asta ca un adevarat Om Care-si Recunoaste Greseala, cum ii place lui sa se prezinte. Cind ma tot futeai la cap cu lasatul mindriei, codul ala nu mergea. Uita-te la data unor fisiere si vezi ca sint cu 2 ore dupa ce am zis in comment ca nu merge. Asa ca scuteste-ma in pula mea de link-uri la o mizerie de program care nu a facut ce zicea ca face decit din 6 august ora 11 seara.

    Si in pula mea, spune-mi tu mie de ce trebuie sa mostenesti clasa Contact din CObject, la modul in care este scris codul ala? Hai, astept lamuriri. Si du-te spune-i la Silviu sa corecteze repede si metodele care returneaza CString-uri by value, dupa care hai aici si baga un comment cum ca a mers dintotdeauna. MUIE!

    2. Tu esti prieten cu Silviu? Nu de alta, dar stati amindoi cu spatele la problema si exact in aceeasi directie. De ce pula mea trebuia operatorul == suprascris? Ce functie predicat de comparare in pula mea?

    Nu baga pastila ca nu e vorba de performanta in cazul ala si nu conteaza ca faci cautare liniara in map. NIMENI care stie ce este ala map nu face 2 cautari cind cauta ceva. Nu conteaza cite elemente ai in map. Silviu ar fi facut cautarea aia in orice situatie pentru simplu motiv ca este un miner prost care habar n-are ce e ala map. Pentru asa un cod nu exista nicio scuza.

    3. NU EXISTA NICIUN AVANTAJ LA STL PENTRU ++it sau it++ si asta din cauza lui /O2. Marsh in pula mea si pune burta pe carte.

    4. Intelegi o pula de gluma. N-ai prins nicio poanta de aici si n-ai inteles nici macar de ce ridem. Si da, te-a lovit si pe tine sindromul lui Capitanul Evident si te-ai prins ca sintem gica contra. Retine in pula mea, SINTEM, la plural, ca sintem doi oameni, fute-m-as pe voi de lemmings.

    LE. N-am niciun motiv sa pun articole pe net si sa pastoresc lumea cu privire la tehnici despre nimic sau despre chestii evidente. Mihnea are cod pus online, deci poti sa-l iei pe Silviu de mina si sa veniti aici cu toate betele in roate pe care le-ati gasit. Iti promit ca vom ride cu totii de voi.

  42. Mihnea Says:

    Ba Gogule, ce-am zis mai devreme de nivelul discutiei? Tu nu remarci ca pe site-ul asta scriu oameni care stiu sa programeze? De unde zace ba atita nesimtire in tine sa vii aici sa bati cimpii despre predicate la map-uri si operatori de preincrementare cind pina si tu stii ca habar n-ai despre ce vorbesti? Tu ai folosit ba boule vreodata un map? Stii la ce-i bun? Zi-mi si mie in pula mea ce rost are sa faci un map, daca cauti prin el luind elementele la rind si oricum tii cheia si-n value, cum face minerul pulii? Tu ai auzit vreodata de complexitate? Daca nu, macar faptul ca a scris 10 linii in loc de 1 nu-ti sugereaza o problema? Tu nu ti-ai pus niciodata problema ce face operatoru’ [] ala, nu? Nu ti-a percutat nici un neuron cind ti-am dat hint ca Laocoon face 2 cautari in functia aia, nu? In ce hal de prost trebuie sa fii incit sa nu-ti dai seama ca codul ala e atit de varza incit orice programator cu 5 minute de experienta in C++ se prapadeste de ris cind il vede?

    Ma fut pe argumentele voastre cu performanta. Cind scrieti cod de cacat, performanta nu conteaza de fapt si bagati proverbu’ pizdii ala cu optimizarea prematura. Cind va convine in schimb, scrieti tratate despre preincrementare vs. postincrementare. Ba boule, tu te-ai uitat vreodata la codul generat de un compilator din era noastra pentru iteratori din STL? Si ca sa ma pis si pe argumentul vostru cu optimizarea in debug, da, cu /O0 nu se elimina copierea aia, ceea ce procentual reprezinta fix pula din timpul de executie al oricarui program practic. Numai muile cu iterator debugging dureaza de zeci de ori mai mult decit cacatul ala de copiere. Sugeti pula cu optimizarile voastre. Invatati in pula mea sa programati si dupa aia deschideti gura, ca se uita si oameni care stiu si rid de voi. Lumea a trecut demult de cacatul asta cu optimizarea incrementarii. Au ramas sa se cramponeze de asta doar cretinii care acum descopera apa calda.

    Si coaie, fii atent: ti-as da un articol scris de mine si pun pariu ca n-ai putea sa gasesti greseli in el, nu pentru ca n-ar fi, ci pentru ca n-ai intelege nici un cuvint. Incearca sa realizezi ca esti 0 comparat cu niste oameni care stiu un pic de programare. Nu multa, doar un pic. Nu stiu ce cacat programezi tu zilnic la job, dar legat de chestiile despre care vorbim aici nu stii nimic. Tie ti se pare ca stocarea unui array multidimensional intr-un vector – o chestie care apare spontan in capul oricarui elev de liceu – e o tehnologie. Esti la un nivel atit de jos, incit nici nu-ti poti inchipui ce exista putin mai sus. TOTUSI, nu vezi articole scrise de mine pe net. Asta e chestia care-ti scapa tie. Eu nu ma apuc sa dau lectii, desi sint mult mai calificat. Silviu nu stie nimic, dar scrie articole. Pricepi? Nu pricepi, nu-i asa?

    Ia gata, ca m-am enervat. Poti sa-i sugi pula lu’ Silviu cit vrei, dar nu pe tarlaua noastra. Daca vroiam sa explic notiuni de baza din programare persoanelor de nivelul tau, ma faceam profesor la scoala ajutatoare. Hai, la tirnacop cu tine.

  43. George Says:

    Ca sa nu-ti raman dator (spre deosebire de tine cu lamuriri), de ce pula mea trebuia ca acel buffer si parcurgere a lui sa aibe o denumire specifica ? Nu mai puteam sa dorm ca nu stiu cum o numesc unii? Uite ca nu stiu… si nici nu mi-am pus problema. Esti multumit?

    1. Nu mai baga burtologie ca nu ti-a sters nimeni comentariile. Sunt acolo.
    Codul ala mergea… din 22.07. ;) Uita-te si tu in PLM ca atunci a fost publicat articolul si continea toate modificarile din articol.

    Am si eu cont pe codexpert.ro chiar daca sunt discret de prin 2008. Din ce am observat, baieti v-au banat pentru atac la persoana si atat. NU v-au sters nici o postare. Sunt toate acolo. Dar fireste, aici puteti spune orice ca doar e tarlaua voastra. Acum, vad ca voi le dedicati aici gunoaie.

    2. Who knows?
    3. Foloseste in pula mea tasta F12 si uita-te la implementarea operatorilor in std::list. Daca nu observi diverenta, ai o problema pentru care chiar meriti sa fi dat afara. :P
    4. Am retinut. Sunteti multumiti?

    Cu bufferul m-a lamurit dl. Mihnea pe blogul lu’ Marius. Desi aici ati ras de Silviu pe tema folosirii lui, vad ca dl. Mihnea il propovaduieste.

    Hai ca va las… sunt cam singurul care a incercat sa faca dialog ok cu voi pe aici si voi ma luati cu beep-uri…

    Era sa uit… bag de seama ca stati cam prost cu geografia. Eu, moldovean, cred ca stiu mai multe decat voi. Din cate stiu Silviu s-a nascut si facut liceul la Hunedoara, aflata la 80 km de Valea Jiului, implicit de mineri… ce pula mea o tot dati cu mineri? V-a futut unul la mineriade si v-a placut?

  44. Mihnea Says:

    Mai pula, si tu esti d-ala care crede ca daca ai scris un cacat, compilatorul este OBLIGAT sa-ti repete cacatul in codul generat? E chiar asa de greu sa intelegi ca orice compilator din ultimii 10 ani vede ca valoarea aia salvata in postincrementare nu e folosita, si ca taie codul? E o chestie care se face la orice curs de compilatoare. Mai treci pe la scoala in pula mea. Sau pe wikipedia. Sau porneste un compilator si vezi ce face, lasa-ma in pula mea cu citit prin STL.

    Cit despre sters posturi, iar sugi pula. Iti pot da link la diverse thread-uri de unde Ovidiu mi-a sters post-urile. De asemenea, “articolele” lui Silviu aveau comentarii de la jos8cal in care se explicau bug-urile. Comentariile tocmai au disparut.

    Lamureste-ne totusi ce ai vrut sa zici cu predicatu’ si operatoru’ == la map. Vreau sa vad cit de departe merge nestiinta ta.

    PS: daca mai zici odata de bufferu’ ala, aflu unde stai si vin sa te bat. N-ai inteles. Las-o asa.

  45. jos8cal Says:

    Da ma, ai dreptate. Comment-urile mele sint inca acolo la codexpert doar ca de la birou ne-au banat IP-ul si prin proxy nu apar deloc. In rest, tot ce am zis este valabil.

    Si deschide zip-ul ala cu MDI-ul si uita-te la data lui SerAddressBookMDIDoc.cpp. E din 6 August, deci la muie cu 22.07.

  46. George Says:

    Acel fisier contine in plus un UpdateAllViews(NULL) in CSerAddressBookDoc::Seralize() astfel incat sa se updateze view-ul. In rest, nu a fost modificat nimic. Dar, se pare ca acest aspect v-a scapt.

    Legat de predicat ma refeream la folosirea algoritmului de cautare std::find(). Mai multe, nu am ce sa spun… cu voi nu pot discuta in limitele normalului.

  47. Mihnea Says:

    Ba, deci eu nu-mi explic o chestie. Vezi ca ne luam de tine la chestia aia cu cautarea prin map; nu ti-a trecut macar 5 secunde prin cap sa te uiti in documentatia de la STL, sa vezi ce-i un map, la ce e bun, ce metode are? Cum pula mea poti sa vii aici si sa zici de std::find()? Chiar asa de bou esti incit crezi ca ne luam degeaba de timpenia voastra cu cautatul prin map-uri? Pricepi acum ca de fapt noi nu cautam nod in papura, bete in roate sau cum vrei tu sa mai zici, ci pur si simplu vedem chestii pe care tu nu le vezi?

  48. Cozma Says:

    George, cum reusesti sa n-o intelegi p-aia cu minerii? Geografia n-are nicio legatura.
    Seriously.

  49. George Says:

    Miroane, ma bucur ptr. tine ca ai un simt al umorului mai dezvoltat.
    Mihnea, cu bufferul m-ai covins odata ce ai postat la Marius pe blog. Doar vroiam sa afli remarca. Aici hulesti, acolo slavesi. :P
    Despre serializare, am inteles faza cu bugul ce a fost rezolvat. Dar cand o dati prin balari cu frecatu’ acelei variabile ma intreb daca voi chiar intelegeti ce a facut ala acolo… Am incercat sa va traduc si eu. Sper ca ati inteles. :D
    bye

  50. Mihnea Says:

    Ba imbecilule, hai ca-ti fac un pustiu de bine si-ti explic gluma. jos8cal te-a intrebat cum se cheama “tehnologia” cu buffer-ul, dar nu te-ai prins. Cacatul ala nu se cheama in nici un fel pentru ca e un cacat. E o banalitate. Nu e o tehnologie, intelegi? Nu e un subiect de postat pe un forum de programare si intrebat daca are cineva referinte despre el. D-aia te-a intrebat omu’ ala cum se cheama, ca spera ca-ti dai seama si singur ca e un cacat prin virtutea faptului ca n-are un nume. D-aia am facut eu bascalie ca trebuie facut un design pattern din el. Tu n-ai avut cum sa-ti dai seama, ca esti foarte prost.

    N-am propovaduit ba nimic pe blog la Marius. Am facut misto de faptul ca Marius programeaza ca la ora de Pascal din liceu, desi pina si pescarul amator s-a prins cum se tine de fapt un array. Pricepi? Numai intr-un grup de cretini ca al vostru poate fi array-ul un subiect de discutie. Am pus pina si tag cu “atentie sarcasm” in post-ul ala, dar tot nu te-ai prins. Pentru ca esti prost.

    Cu map-ul cum stai? Ai apucat sa te uiti in documentatie la STL? Hai ca am alta idee, ca tu oricum n-o sa intelegi nimic din documentatia tehnica. Ia codul ala si intreaba-l pe Mariusica daca vede ceva gresit. Sau daca nu te stii prea bine cu Marius, cauta un programator de C++ in firma aia in care dai la strung, ca s-o gasi unul, si intreaba-l daca e bine ce scrie acolo. Sau nu, nici nu trebuie sa fie programator C++. E suficient sa stie ce-i ala un map, in orice limbaj sau biblioteca vrea el. Dupa aia mentioneaza si ideea ta cu std::find() si sa-mi zici daca s-a ris.

    Deci: cu buffer-ul ti-am explicat, cu postincrementarea ti-am explicat, cu map-ul ti-am explicat. Cu serializarea nu-ti explic, ca n-am energie sa fac aici expunerea evidentului si sa-ti arat de ce e codul lui Silviu echivalent cu asta:

    int a, b, c;
    void Sum()
    {
         c = a + b;
    }
    
    int main()
    {
        a = 1;
        b = 2;
        Sum();
        printf("%d\n", c);
        return 0;
    }
    

    Nu-ti bate capul, doar crede-ma ca este.

    Alte nelamuriri despre programare mai ai? Besi in pula mea si invata sa faci un hello world inainte sa vii incoace sa-ti dai cu parerea.

  51. George Says:

    Pana apuc eu sa invat sa scriu un “Hello World”, poate reusesti sa scri si tu un program ce se compileaza. :P

  52. Mihnea Says:

    GCC a zis sa sugi pula:

    
    hellgate:~# cat a.c
    int a, b, c;
    void Sum()
    {
         c = a + b;
    }
    
    int main()
    {
        a = 1;
        b = 2;
        Sum();
        printf("%d\n", c);
        return 0;
    }
    hellgate:~# gcc a.c
    a.c: In function âmainâ:
    a.c:12: warning: incompatible implicit declaration of built-in function âprintfâ
    hellgate:~# ./a.out
    3
    

    VC++ doreste si el sa-ti transmita multa muie:

    C:\Temp>type a.c
    int a, b, c;
    void Sum()
    {
         c = a + b;
    }
    
    int main()
    {
        a = 1;
        b = 2;
        Sum();
        printf("%d\n", c);
        return 0;
    }
    
    C:\Temp>cl /nologo a.c
    a.c
    
    C:\Temp>a.exe
    3
    

    Altceva?

  53. George Says:

    Mai plua n-o mai da la intoarcere cu C. Noi vorbim de C++.
    Iar daca in loc de a.c puneai a.cpp aveai:
    d:\cl a.cpp
    a.cpp(12) : error C3861: ‘printf’ : identifier not found
    Date-n pula si mai invata.

  54. Mihnea Says:

    Ia gata. Sugi pula, esti prea prost ca sa se poata purta o conversatie cu tine. Daca n-ar exista Silviu Ardelean ai avea onoarea de a fi cel mai prost om, dar aparent tu esti paradoxul prostiei: esti asa de prost ca nici macar nu reusesti sa fii cel mai prost. Codul ala dorea sa demonstreze altceva, nu cum se include stdio.h. Am omis intentionat include-ul sa vad daca esti chiar atit de retardat incit sa ratezi din nou intregul sens al discutiei si te legi de cacaturi irelevante.

    Si sugi pula si cu C++, nu mai vorbi de limbajul ala despre care nu stii nimic. Ai aflat cum e cu map-ul sau nu?

    Deci muie. Ai ban.

  55. Silviu Ardelean Says:

    Mai prost ca tine nu exista… daca ai fi mai destept, nu te-ai cobora la nivelul la care esti. Sugi pula, virginule.

  56. jos8cal Says:

    Tu ai un blog ceva?

  57. Silviu Ardelean Says:

    Daca nu te-ai prins boule… cam asa faci tu cu restul.
    Ii futi la cap si o invarti pana se potriveste cum iti convine. Dar tu, cum esti prost… pui botu.
    Chiar esti un hater frustrat!

  58. jos8cal Says:

    HA! Te-ai prins cum se scrie frustrat corect.

    LE: Da` pe bune, n-ai un loc in care colectionezi idei? Ca am putea deveni mai intimi decit aruncatul asta aici cu puli si mui.

  59. C+/- Says:

    Nu ma prea bag eu unde nu-mi fierbe oala, dar replica aia cu paradoxul prostiei e “right on the money” si cel mai comic lucru ce l-am citit de-o vreme (in acest context, cel putin). Felicitari autorului.

  60. BL Says:

    V-a făcut minerii ceva? Fustraţilor

  61. jos8cal Says:

    Ce misto e cum folosesti tu diacritice dar te pisi pe limba romana. Ai facut si tu cel mai mic efort posibil sa nu pari miner.

    Hai, rescrie comment-ul aici dar in limba romana de data asta. Daca nu reusesti ai ban.

  62. BL Says:

    Vă făcu minerii ceva? Fustraţilor.

  63. jos8cal Says:

    Hai, inca o sansa de la nasul mare. Ultima.

  64. thefatredguy Says:

    Deci minerii e inima tarii care bate cu putere si bate, bate, bate ….

  65. shootYourself Says:

    Major fuck-up on both sides

  66. vasile Says:

    Vai, cum gasiti chestiile astea :))

  67. Valentin Galea Says:

    Mihnea, azi am descoperit site-ul asta si rad in prostie, cred ca de 5-6 ore in continuu!

    You don’t get enough credit pt ceea ce faci aici. Iti admir simtul umorului si al scrisului si dedicarea cu care ii urmaresti si suporti pe lichelele de la codexpert.ro

    Esti George Carlin al programarii!:)

    PS. Thumbs up si pt jos8cal!

Leave a Reply

Optionally add an image (JPEG only)