Sa ma fut in politete

Posted in Regula 0 on September 18th, 2013 by Mihnea

retard-baby2Cum pula mea s-a ajuns sa fie mai important sa fii politicos decit sa stii despre ce vorbesti?

Este o chestie pe care o tot vad pe forumuri, liste de discutii etc. Sa-i spunem sindromul Marius Bancila. Vine un prost – sa-i spunem Silviu Ardelean – si emite o timpenie. Ii arati ca-i prost si-l rogi sa nu mai posteze imbecilitati. Apare un moderator – sa-i spunem tot Marius Bancila, ca sa rimeze cu sindromul – si te avertizeaza sa nu-i mai spui lui Silviu Ardelean sa-si tina gura, ca nu-i frumos. CUM SLOBOZ BA? In loc sa-i spuna Silviului ca e inacceptabil sa vorbesti timpenii (sau sa-l baneze direct), Mariusul e preocupat de mentinerea atmosferei de voie buna si cooperare tovaraseasca. Ca si retardatii e oameni, si are si ei inteligenta lor emotionala, nu?

Da, stiu. Daca iti antagonizezi interlocutorul, comunicarea se duce pulii, asa ca daca vrei sa fii constructiv trebuie s-o iei cu frumosul. Problema cu aceasta regula de cacat este ca presupune existenta unui interlocutor. Eu nu vorbeam de cazurile in care cineva greseste pur si simplu si il corectezi, ci de situatiile in care e implicat un Silviu, unde e evident de la inceput ca n-ai cu cine sa discuti. Presupusul interlocutor e atit de prost incit nu numai ca nu poate, dar nici nu vrea sa inteleaga argumentele pe care le aduci. In mod normal, Mariusul ar trebui sa-i stearga aberatiile. Daca n-o face, ceilalti participanti la discutie au obligatia morala de a face misto de retardat, pentru a se asigura ca viitorii cititori ai thread-ului nu sint indusi in eroare. Eu asa vad lucrurile.

Dar sa lasam numele generice si sa trecem la un exemplu practic. Un domn de la Valve a propus ca VC++ sa dea warning-uri cind dai parametri aiurea la functii care accepta format string-uri, asa cum fac deja diverse alte compilatoare. VC++ da si el warning-uri d-astea, dar doar cind ii dai cu /analyze, ceea ce dureaza inacceptabil de mult IRL. Validarea asta nu e costisitoare (dupa cum ne dicteaza atit bunul simt, cit si faptul ca nu incetineste semnificativ compilarea acolo unde e implementata deja), deci ar putea fi mutata din analizorul static in compilator.

In acest moment se amesteca in discutie Silviul de serviciu, cu numele de scena UnitUniverse, care nu vrea ca compilatorul sa faca “special process” pentru printf, care e o functie ordinara. Fiind foarte prost, el este de parere ca problema reala sta in faptul ca printf foloseste “extractie binara” si “masti binare” pentru a extrage parametrii, deci compilatorul n-are ce face. Ca si Silviul real, este preocupat de noile cuceriri ale tehnicii in materie de generat code bloat si incetinit compilatorul, asa ca face si el o Propunere: sa inlocuim printf cu template-uri variadice (sigur, nu inainte de a inlocui enumurile cu vectori).

Imboldit iar de spiritul civic, am considerat ca-i datoria mea sa-i spun boului ca nu e vorba de printf, ci de un mecanism pentru marcat format string-urile ca sa le poata verifica compilatorul. Care mecanism exista deja in VC++ sub forma macro-ului _Printf_format_string_. Ce a inteles retardatul (care stapineste limba lui Shakespeares la fel de bine ca omologul sau din Valea Jiului):

Yes, providen switchers to enable the detecting is an considerable idea. But, as i written previously, the printf extracting tail arguments with binary cutters, I’m doubt if they could implement such kind of checking mechanism.

I-au zis doi oameni ca e facut. I-am zis si cum e facut si i-am dat si link la cum fac alte compilatoare. De aici, el a concluzionat ca nu se poate face din cauza “taietoarelor binare”. In pula mea.

I-am raspuns ca nu stiu ce-s alea binary cutters si ca-s convins ca nici el nu stie, dar ca indiferent de ce crede el, mecanismul exista deja si trebuie doar mutat din analizor in compilator. De asemenea i-am recomandat sa nu-si mai dea cu parerea in probleme pe care nu le stapineste. Nu i-am zis sa nu-si mai dea IN PULA MEA cu parerea. I-am zis fara mui si puli. Rezultatul a fost ca s-a autosesizat Mariusul local si mi-a sters comentariul.

Lasind la o parte faptul ca-i urez cancer militianului care a facut asta, doresc sa insist un pic asupra unui model de comportament (ca nu pot sa-i spun gindire) ce este des intilnit printre Silvii. Cum ajunge imbecilul sa deduca cu mintea lui ca nu se poate face, dupa ce i-am aratat cum e facut, si i-am dat si link-uri?

Raspunsul e simplu si nesurprinzator: prostia. Silviul porneste cu o Opinie. Desi undeva adinc in fiinta lui licare ideea ca de fapt nu prea stie despre ce e vorba, odata ce-si formeaza si exprima Opinia, vocea interioara este sugrumata si Silviul se lanseaza cu toata forta intru sustinerea Opiniei. Nu conteaza daca ii dai argumente, link-uri sau bucati de cod pe care le-ar putea baga intr-un compilator ca sa verifice ca-i prost. Cind parcurge raspunsul tau, Silviul sare pur si simplu peste partile pe care nu le intelege. Nu le vede. Este un mecanism de aparare: faptul ca nu intelege ceva ar insemna ca e prost. El nu vrea sa fie prost, asa ca lucrurile pe care nu le pricepe trebuie sa fie irelevante. De la irelevant la inexistent este un pas foarte mic, pe care intelectul sau de batracian cu trisomie il face fara ezitare.

Pentru a vedea cum percepe un Silviu o discutie, iti poti sterge toate argumentele. Textul ramas pare o simpla Opinie. Aha! Silviul are si el o Opinie. De ce ar fi Opinia ta mai buna decit Opinia lui?

Revenind: e OK ca intr-o discutie despre compilatoare pe MSDN sa spui ca printf foloseste taietoare binare pentru extras argumente, dar nu e OK sa ii recomanzi unui bou sa nu vorbeasca despre lucruri pe care nu le intelege. Idiocracy.

PS: tag-urile pentru acest post s-au scris practic singure. Le-am luat direct de la ultimul post de pe blogul de atitudine al minerului.

PPS (adica post-post-scriptum, Ovidiu): in curind e ziua de nastere a minerului si i-am pregatit o surpriza.

EDIT: multumim Pintea:

yPuhX91

Tags: , , , , , , , , ,

Problemele infrastructurii locale

Posted in Regula 0 on July 19th, 2013 by Mihnea

Desi tot auzim ca romanii sint fruntasi la internet, publicatia noastra a raportat in trecut ca exista zone din unele orase mari ale tarii unde aprovizionarea cu internet se face greu sau chiar deloc. Un exemplu este strada Venus din Timisoara, mai ales la numarul 33. Aceste lacune ale infrastructurii cauzeaza grave probleme in activitatea agentilor economici, impiedicindu-i sa foloseasca motoare de cautare consacrate in procedura de validare a aptitudinilor candidatilor din cadrul procesului de recrutare, ceea ce in cazuri extreme poate duce chiar la angajarea lui Silviu Ardelean.

Cu toate astea, lucrurile se regleaza uneori de la sine, dupa cum ne invata celebrul mistic si autor de citate pentru Facebook Paolo Coelho. Ne face o deosebita placere sa va informam (cu o oarecare intirziere, ce-i drept) ca S.C. Firma Unde HR-ul Nu Are Acces La Google S.R.L. s-a prins in sfirsit ca Silviu nu este asa de avansat pe cum s-ar putea deduce din titlul postului pe care-l ocupa, asa ca minerul nostru preferat trudeste de vreo 3 luni intr-o noua multinationala emblematica: Visma.

Cititorii cu spirit civic se vor grabi sa se intrebe daca pe strada Coriolan Brediceanu, unde muncesc cei aproximativ 128 de programatori de la Visma Timisoara plus Silviu Ardelean, sunt aceleasi probleme de livrare a agentului internetic ca in zona strazii Venus (mai ales ca se intersecteaza cu strada Circumvalatiunii, si clar nu poti avea internet pe o strada care se cheama asa). De data asta insa, angajarea lui Silviu nu s-a produs din vina unor deficiente de infrastructura, ci ca urmare a unei cumetrii. La Visma lucreaza de ceva vreme ingerul pazitor al lui Silviu, Marius Bancila. Ii uram sa culeaga ce-a semanat.

examen_cnh

Bonus story.

 

Tags: , , , , , , , , ,

Stop. Hamming time.

Posted in Premiul n00bel on October 20th, 2011 by Mihnea

Mai stiti cind zicea Marius Bancila ca distanta Hamming este cea mai rapida metoda de a calcula distanta Hamming (sau ma rog, “Hammering” cum a botezat-o el initial)? Mai stiti cind ziceam eu ca timpeniile codexpertilor sint contagioase? Ei bine, iar am avut dreptate:

Inainte de asta domnul Richard [Hamming, n.r.] s-a jucat cu numaratul bitilor dintr-un string de bytes si, asa cum s-a mai discutat pe acest forum, a generat cea mai optima metoda in acest sens.

Acum crezul asta dublu-pleonastic este intiparit in mintea lui bu7ch3r, iar el ii va infecta la rindul lui pe altii. Deci copii, aveti grija sa va protejati cind intrati in codexpertia, ca altfel luati chestiuni ce nu trec nici cu Moldamin.

Putin mai devreme am primit de la colegul de redactie acest link in care se povesteste cum au dispersat comunistii o rascoala a minerilor stropindu-i cu cacat. N-ar fi frumos ca intr-o zi cacatul cu care aruncam noi inspre codexpertia sa disperseze minerii de acolo?

PS: bu7ch3r a mai avut citeva interventii ce m-au facut sa suspectez ca este un membru conspirat al Rezistentei angajat intr-o campanie de trollaj extrem de fin. Daca e asa, felicitari tovarase. Daca nu, nu.

Tags: , , , , , , ,

Mineguru

Posted in Codare cu premeditare, Premiul n00bel on October 18th, 2011 by Mihnea

Dupa cum remarcam intr-un comentariu anterior, minerul si-a luat putin din pila articolul ala copiat de pe codeguru si l-a pus pe codeguru. Citind el ce i-am zis despre functia imaginara snwprintf() si alte aberatii, a schimbat placa si n-a mai incercat sa fie cross-platform, ci a incercat sa fie cross-character set. Problema de pornire s-a schimbat peste noapte si a devenit:

The writing of this buffer was done using: vswprintf(). As we know, this function is unsafe and is not recommended.

Iar solutia ar fi:

#if defined(UNICODE) || defined(_UNICODE)  
#define usprintf(x, ...) \
   _snwprintf(x, _countof(x)-1, ##__VA_ARGS__); \
   x[_countof(x)-1] = 0
#else
#define usprintf(x, ...) \
   _snprintf(x, _countof(x)-1, ##__VA_ARGS__); \
   x[_countof(x)-1] = 0
#endif

Lasind la o parte faptul ca n-a inteles cind i-am zis ca macro-urile cu mai multe statement-uri nu se scriu asa, trebuie sa ne intrebam totusi urmatoarele:

  • de ce e vswprintf() “unsafe”, si de ce e _snwprintf() mai “safe”?
  • cum inlocuiesti un apel la vswprintf(), care doreste un va_list, cu macro-ul ala imbecil?

Si daca trebuie sa ne intrebam, ne-am intrebat. Ortacul a facut greseala fatala de a posta pe un site unde nu poate sterge comentariile incomide. Veni si raspunsul:

Sorry, I’m not talking about vswprintf() versus _snwprintf(). I just decided to use one of these.

Ok, n-a inteles intrebarea, deoarece era pusa in limba lui Shakespeares si se referea la articolul lui, pe care doar l-a scris, nu l-a si citit. Am incercat o reformulare, pe care a inteles-o si a raspuns cu un copy/paste din MSDN urmat de propria concluzie:

“Using vsprintf, here is no way to limit the number of characters written, which means that code using this function is susceptible to buffer overruns. Use _vsnprintf instead, or call _vscprintf to determine how large a buffer is needed. Also, ensure that format is not a user-defined string. For more information, see Avoiding Buffer Overruns.” Same story with vswprintf().
http://msdn.microsoft.com/en-us/library/28d5ce15(v=VS.80).aspx

Priviti-l, stimati concetateni, in toata splendoarea lui. Acest cercopitec e atit de sigur pe el incit imi da condescendent si un link la MSDN pe care el nu l-a citit. I-am indicat gratios faptul ca o pula “same story”, asa ca a editat articolul, a pus swprintf() in loc de vswprintf() si a declarat:

The functions used in the macro (_snwprintf/_snprintf()) are not proper to replace functions like vswprintf() – this function has different count of mandatory parameters and uses a list of arguments parameter. Sorry, in article I mean swprintf() witch is unsafe. Thanks for observation.

Aha, doar ca nici vrajitoarea swprintf() nu e “unsafe”, dupa cum i-am explicat deja, dar a uitat; si dupa cum scrie in link-ul la care ma trimitea pe mine, pe care tot nu l-a citit. Silviu nu are nevoie de documentatie sau de realitate, el are 11 ani de experienta.

Va tin la curent pe masura ce-si editeaza articolul si-si fabrica noi justificari, ca in vremurile bune. Sper ca se va incheia triumfal cu Bancila sau Cucu (care sint moderatori pe site-ul ala de tutorialisti indieni) operind “small cosmetics” asupra comentariilor mele.

 

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

Subapreciatul loc doi

Posted in Premiul n00bel, Regula 0 on May 12th, 2011 by Mihnea

Desi francezii s-au straduit in repetate rinduri (Agincourt, Maginot etc.) sa ne invete ca important e sa participi, nu sa cistigi, lumea sluta in care traim tine minte doar invingatorii si-i trece in uitare pe ocupantii locului doi. N-as vrea ca site-ul nostru sa fie partas la acest trend dezonorant. In Campionatul National de Tirnacop Viteza a existat si o medalie de argint si e de datoria noastra sa recunoastem si sa laudam efortul celorlalti participanti.

Sa fie clar: nimeni nu poate concura cu Silviu Ardelean. Finetea cu care roteste el tirnacopul din poignet nu are egal. Singurul om ce-l pune uneori in dificultate este viorel2005, dar doar in probele libere, caci stilul dadaistico-involuntar nu este apreciat de jurii in probele impuse, ca cele de azi. Totusi, in umbra (si in urma) marelui miner trudesc alti citiva codexperti si este nedrept sa le ignoram zbuciumul.

Dupa cum spunea colegu’ in articolul anterior, Silviu a ratat startul in cursa de 100 de metri Google. A recuperat pe parcurs, dar Marius Bancila a avut o prestatie buna, ce i-a asigurat medalia de argint:

Vad ca azi e ziua intrebarilor de interviu. Din ce am citit, se pare ca cea mai buna metoda e Hammering weight (sau popcount).

Link-ul dat de seful clasei duce la articolul din wikipedia despre Hamming weight. Hamming, hammer, tirnacop… in viltoarea competitiei e usor sa faci confuzii. E la fel de usor de inteles ca atunci cind te grabesti sa bagi in somaj butonul “I’m feeling lucky”, n-ai timp sa si citesti ce scrie in link-urile pe care le repeti. La Marius, Hamming weight, adica numarul de biti setati dintr-un sir binar, este cea mai buna metoda de a numara bitii setati dintr-un sir binar. Acest rationament este confirmat peste tot in lumea inconjuratoare. De exemplu, adunarea este cea mai buna metoda de a aduna numere.

Felicitari Marius!

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

Haters gonna hate

Posted in Premiul n00bel, Regula 0 on March 19th, 2011 by Mihnea

 

 

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

Antisilviul

Posted in Regula 0, Stand-up philosophy on February 1st, 2011 by Mihnea

Incepem ziua cu o veste buna: Marius Bancila si-a corectat gogorita cu fisierele de care ziceam ieri. Inca o fapta buna in numele dreptatii, inca un cap al hidrei retezat. Go Captain Standupprogramming!

Intre timp in subteran, Silviu “Zhàozhōu” Ardelean, cu tirnacopul intr-o mina si mu (無) in cealalta, continua sa dez-intrebe intrebarile calugarului retardat viorel2005:

Invatacelul Viorel: Problema este acum cum modific valoarea unui const int in Visual C++ 2010?

Maiastrul Silviu: Ce intelegi tu prin const int?

Galeria ar fi ramas tacuta si intrebarile ne-dez-intrebate de nu s-ar fi gasit un Dl. Problema sa rascoleasca praful ce abia se asternuse pe florile de mina. Trezit din somn, unul din experti l-a admonestat prompt de sub invelisul protector al contului de administrator (ca tot le place lor sa spuna ca nu se ascund dupa nick-uri):

Ce-i aia “LLE”?
Inainte de a posta citeste te rog “Inainte de a posta“!

Lasind la o parte faptul ca Gardianul Ovidiu si-a mascat doar numele, nu si stilul inconfundabil in aceasta comunicare, haideti sa citim Inainte de a posta inainte de a posta, ca sa nu ne aposteze pe viitor Ovi daca vrem sa postam un post. Pe linga banalitatile uzuale regasite in regulile oricarui forum, Marius Bancila a adus cu el de pe muntele Sinai si urmatoarea gema:

Atunci cand doriti sa raspundeti la o intrebare, asigurati-va ca:

  • raspunsul este in acord cu intrebarea formulata; evitati raspunsurile sau mesajele in afara subiectului;
  • raspunsul aduce ceva nou celor anterioare; evitati sa raspundeti cu aceleasi informatii care au fost deja oferite;
  • sunteti familiar cu subiectul discutat; nu oferiti raspunsuri bazate pe pareri sau impresii; daca nu sunteti sigur de ceva, specificati acest lucru;
  • sunteti cat se poate de clar cu informatiile furnizate; evitati crearea unor seri de intrebari si raspunsuri care sa aiba ca scop clarificarea unui raspuns anterior dat.

Mie mi se pare amuzant cum punctul 3 descalifica aproximativ 99% din experti din cursa pentru postul de Raspundac in orice subiect legat de programare, dar amuzamentul nu se opreste aici. Si mai tare e cum au reusit sa creioneze atit de exact Antisilviul: omul care stie despre ce vorbeste, nu copiaza raspunsurile anterioare si explica clar solutia. Cu toate astea, nu stiu cum se face ca Regula Antisilviului (Regula -1, daca ar fi sa pastram ordinea cronologica) nu este aplicata, insa Regula Silviului (“Nu faceti misto de prosti”, a.k.a. Regula 0) este invocata iar si iar.

PS (adica “post scriptum”, Ovidiu): mesajflaviu a vrut sa intre si el in rindul expertilor postind FAQ-ul Cum pot face download/upload de fisiere in MFC. Din pacate n-am fost pe faza si expertii l-au sters inainte sa apucam sa ne delectam cu el. Daca va grabiti puteti vedea inca urmele sale pe prima pagina a comunitatii expertilor, jos la “Ultimele FAQ-uri”. Nu ne indoim de faptul ca stergerea a fost justificata, dar ne intrebam cit de grandioasa era aberatia, de s-au prins pina si expertii ca trebuie retezata de la radacina. Inchipuiti-va ceva si mai prost decit ce a stat aici timp de un an pina ne-am sesizat noi, sau mai idiot decit asta.

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

Ma-nvirt in cerc, nu te gasesc

Posted in Codare cu premeditare, Regula 0, Stand-up philosophy on January 31st, 2011 by Mihnea

Cind unul dintre experti intra in contact cu o aberatie, aceasta se propaga in staulul lor mai ceva ca herpesul in puscarie, ajungind in timp record sa-si infiga adinc tentaculele in etosul autoproclamatei comunitati de programatori C++. Dupa aia, aberatia foloseste site-ul lor drept un vector infectios pentru a corupe mintile ratacitilor care, orbecaind prin bezna inceputurilor, esueaza printre Raspundaci. Tratamentul nu-i usor, caci chiar daca-l determini pe unul din experti sa-si corecteze pe furis aberatia, un altul ii va lua locul si o va scoate la iveala pe blog, intr-un FAQ sau intr-un alt astfel de vas Petri.

Bunaoara, nici n-am terminat bine instructia cu minerul in problema dimensiunii fisierelor, ca si apare Marius Bancila cu un articol despre cum sa deschizi un dropdown in configuration manager in Visual Studio. In indispensabilul articol ni se enumera si unele din avantajele compilarii pentru 64 de biti:

Printre avantaje se numara accesul la mai multa memorie, accesul la fisiere mai mari de 4GB, sau accesul la functii specifice sistemului pe 64-biti.

Deci da. Inca un expert care crede ca din 32 de biti n-ai cum sa citesti fisiere mai mari de 4 GB.

Si ca tot am ajuns la spinosul subiect al dublarii numarului de biti, Gardianul Ovidiu are si el un sfat pentru noi:

O problema am avut-o si am pierdut ceva timp din cauza ei, in momentul in care am vrut sa fac build din linie de comanda (devenv.exe… ).
Recomandare: pune cele doua configuratii (pt Win23 si x64) in solutii (sln-uri) diferite.

Din pacate dinsul n-a vrut sa ofere detalii suplimentare despre problema pe care o intimpinase, desi minerul s-a aratat interesat. Noi presupunem ca scria numele configuratiei in command line fara sa puna “|win32” sau “|x64” in coada, asa ca devenv incalca iar Regula 0 si-i compila tot timpul configuratia de 32 de biti. Daca cititorii nostri au alte presupuneri creative, le asteptam in comentarii.

Cum codexpert a ramas in urma comunitatilor-surori din AXTI si nu si-a facut inca televiziune online, ne-am decis sa-i ajutam noi, asa ca pe linga RONUA TV, de azi exista si CODEXPERT TV. In continuare va prezentam filmul artistic Raspundacii, care dramatizeaza zbuciumul interior al expertului in incercarea acestuia de a scapa din ghearele aberatiei:

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

Ani de liceu

Posted in Premiul n00bel, Stand-up philosophy on January 27th, 2011 by jos8cal

In orice clasa exista cite un elev care invata si restul care copiaza de la dinsul. Stupoarea maxima apare cind dupa corectare primesc toti nota 2, deoarece cel de la care s-a copiat a prins o zi proasta si a raspuns pe linga. Caz concret pe bancile scolii ardenele:

Marius Bancila despre accesarea unui array 2D:

unsigned char* bmp1;
bmp1=new unsigned char[rows * cols];
for(int i=0;i<rows;i++)
   for(int j=0;j<cols;j++)
      bmp1[i * rows + cols] = i+j;

Silviu Ardelean confirmindu-si clasa de copiac notoriu:

Viorel, urmeza sfatul lui Marius de-a folosi array-ul uni-dimensional pentru stocarea imaginii. Cu astfel de buffere se lucreaza in procesarea de imagini.

Anyway… renunta la abordarea cu array-ul 2D si rezolva-ti problema cu un banal array 1D via bmp1[i*row + coloum] = i+j;

Stati jos, 2.

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: , , , , , , , , , ,