Despre simularea si disimularea creierului

Posted in 112, Premiul n00bel on April 8th, 2011 by Mihnea

Motto-ul site-ului scientia.ro este “Stiinta pe intelesul tuturor”. Pe bune, chiar al tuturor? Si al astora? Si al lui Silviu Ardelean? Din ce s-o fi tragind convingerea fondatorilor ca oricine poate intelege “stiinta” – sa fie noblete, naivitate sau comunism? Sa fie oare posibil sa prezinti “stiinta” asta (orice ar fi ea) intr-un asemenea mod incit s-o poata pricepe si cea mai intunecata minte de miner?

Din fericire putem gasi raspunsul negativ la aceasta ultima intrebare pe forumul cu care este inzestrat scientia.ro, unde care cei ce se simt in target – “tuturorii”, daca-mi permiteti – ne arata ce-au inteles si dau glas intrebarilor ce le framinta starea de veghe. Sa-i dam cuvintul lui Sorin_dan84:

Salut. Am vazut de curand o stire despre computere uriase care pot simula clima de pe pamant, si alte chiestii(chiar formarea unei galaxii)…ce spuneti in cati ani credeti ca se poate simul toata viata de pe pamant?     Si de aici ideea unor regizori de filme sf., gen Matrix.

Si daca ar fi creat un simulator al Terei, plecand de la tehnologia actuala(punand in acest simulator cam toate cunostintele stintifice actuale si apoi “furand” noi descoperiri stintifice de la simulator?…..sa zicem ca in simulator 1 an=cu o secunda la noi.
Ar fi un computer cat o metropola…un oras calculator?, daca nu pun in aplicare nanotehnologia.

In caz ca n-ati inteles pentru ca inca asteptati sa se inchida paranteza aia, propunerea lui Sorin este ca cercetatorii sa simuleze niste mini-cercetatori si doar sa se uite ce mini-cerceteaza aia. Eu imi permit sa-i propun o chestie si mai simpla, pe care am vazut-o intr-un film: pentru a obtine ORICE, te apuci si faci un robot care produce acel ORICE, dar de asemenea poate calatori inapoi in timp. Nici nu termini bine de gindit cu gindul la aceasta idee, ca robotul va si aparea linga tine cu obiectul dorit, ca doar te-ai gindit sa-l faci, deci l-ai facut, deci el s-a intors in timp la tine. Nici nu mai e nevoie sa-l faci.

Simtind ca a dat peste o idee de valoare, Sorin continua:

Astept pareri de la specialisti in domeniu….sau poate am dat o idee de proiect, care ar putea fi impartasit(japonezilor sau americanilor – ca la noi e criza ) pt. accelerarea stiitei ……Multumesc.

Cine se baga la implementarea proiectului? Oportunitatile ca asta nu cresc in copaci, o singura data in viata ai sansa sa-ti dea cineva o asemenea idee (daca o ai si p-aia). Ar fi pacat sa dati cu piciorul. Nu faceti ca florin_, care s-a impotmolit in calculele unor alti “specialisti”:

Acum vre-o multi ani in urma citisem undeva ca specialistii in domeniu au venit cu cea mai acurata prezicere a cite PC-uri de pe vremea aia (cam Pentium III la 0.5-1GHz) ar fi necesare sa faca toate operatiunile pe care le face creierul uman (toate functiile si cele constiente si cele inconstiente).

Ei bine cantitatea de PC-uri necesare ar fi  asa de mare ca nu ar fi  incaput in intreg universul vizibil de azi.

Ei bine, eu as propune pur si simplu sa simulam un univers mai mare, in care sa incapa toate PC-urile necesare pentru a simula universul nostru mai mic. Nu stiu daca propunerea mea e fezabila, caci nu ma pricep la calcul polinomial cu n arbitrar:

Explicatia lor tinea de faptul ca sinapsele si retelele neuronale pot executa calcul polinomial cu n arbitrar de mare in timp linear (cu alte cuvinte retelele neuronale ar putea rezolva probleme ce necesita xn operatii intr-un timp proportional nu cu xn ci cu x1 (linear)).

Noroc ca a venit Dendros sa le deschida si mai mult orizonturile:

E doar o parere. Dar daca e adevarata afirmatia lui florin_, suntem departe de a atinge intregul potential al creierului sau poate nu-l vom atinge niciodata pe deplin, fiindca ar putea fi nelimitat, doar sa avem timp suficient.

Luati aminte, daca ai suficient timp, poti sa numeri pina la infinit si poti atinge limita potentialului nelimitat. Totusi trebuie sa recunoasteti ca omul are dreptate, participantii la discutie nu au prea multe sanse de a atinge vreodata pe deplin potentialul unui creier.

Subiectul neuronilor si al retelelor pe care acestia le formeaza apare frecvent in discutiile de pe scientia.ro. Este si normal, caci oamenii care fac diferenta nu se multumesc cu status quo-ul, ci incearca tot timpul sa obtina ceea ce n-au. tavy ne explica cum sta treaba cu translatoarele automate, aceste unelte ale diavolului ce-l sperie pe Silviu Ardelean:

Traducerile nu sunt chestiuni exacte, de multe ori sunt subiective și de multe ori nu se pot face sau dau aberații mari dacă sunt scoase din context. Din acest motiv, la traduceri se pretează mai bine rețelele neuronale în dezavantajul calculului algoritmic.

Stiu ca acum sinteti pe cale sa va inlocuiti toate calculele algoritmice cu retele neuronale, dar mai zaboviti oleaca. Inainte de a te arunca cu capul inainte in truda, e bine sa te intrebi daca meseria pe care incerci s-o practici chiar exista, asa cum face XploreDesign in thread-ul Meseria de programator – mit sau realitate:

Una dintre cele mai căutate profesii  este cea de programator. Sunt foarte multe motivele care te-ar putea determina să optezi pentru o asemenea opțiune, dar cel mai important, după părerea mea, este faptul că această profesie îți oferă o deschidere internațională

Ce coincidenta, si ing. Boata Cristian zice la fel.

Simpla cunoaștere a unui limbaj de programare, sau a unei tehnologii, nu iți poate asigura statutul de programator, mult dorit. E nevoie de mult mai mult. E nevoie de experiență, e nevoie de cunoașterea mai multor limbaje de programare sau de scripting, e nevoie de cunoașterea celor mai noi tehnologii precum și de un portofoliu consistent de lucrari care să te diferențieze de ceilalți concurenți și, un lucru foarte important, e nevoie de ”atitudine” ”pro-to-do”.

Atitudine? Protodo? Portofoliu de lucrari? Inseamna ca Silviu si-a asigurat “statutul de programator virgula mult dorit”. Unde mai pui ca are si inteligenta emotionala…

Afirmatiile provocatoare ale lui Xplorica au alimentat nesiguranta alle_csandr_ei, care n-a mai rezistat si a pus intrebarea ce statea pe buzele tuturor:

As avea si eu o intrebare cat de bine este sa fii programator? ???in comparatie cu alte meserii ma refer

Nici un post despre imbecilitate nu poate fi complet fara un citat din viorel2005, singurul om in viata a carui retardare iese in evidenta chiar si pe codexpert. Sa vedem ce are el de zis despre… pula mea, n-am inteles. Poate gasiti voi vreo legatura intre propozitiile din comunicarea sa, sau macar intre cuvintele din interiorul propozitiilor:

In prima versiune a cartii lui Charles Petzold de programare in Windows, era o propozitie despre niste “eroi necunoscuti” care au pus bazele sistemului Windows(chiar daca a fost inspirat de la Apple, totusi el este un succes comercial). Acum hardware-ul dicteaza totul si apoi software-ul. De aceea nu exista tablete Windows. Si atunci se ajunge intr-o directie managed. Legea lui Moore va limita puterea lui C++.

Cine sloboz e Moore asta, ca eu nu l-am votat?

LE: inca una repede, ca am dat de ea dupa ce am postat. Din putul gindirii numit wikipedia in romana aflam ce-i ala un “systems programmer”:

Programatorul de sistem este persoana care se ocupă de instalarea / generarea și întreținerea sistemului de operare furnizat de producătorul unui calculator pentru a-l adapta la cerințele utilizatorului. Sistemul de operare este frecvent distribuit pe un suport de date într-o formă standard, conținând un maxim de funcțiuni. Din această formă standard programatorul de sistem poate instala sau genera un sistem de operare concret, potrivit configurației hardware individuale și nevoilor utilizatorului.

Zic ca merita un loc caldut in panoplia esecurilor wikipedofile, linga articolul despre CoBra. Tu cind ti-ai generat ultima oara Windows-ul?

 

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

In cautarea minerului

Posted in Regula 0 on April 6th, 2011 by Mihnea

Presupun ca ati vazut ca e la moda sa arati search string-urile cu care ajung diversi rataciti la tine pe blog. Gratie unor surse din interiorul ograzii cu experti, noi sintem si de data asta cu un pas in fata tendintelor: nu va vom arata ce cauta aia care vin la noi, ci cuvintele cheie la care raspunde blogul lui Silviu Virgula Ardelean:

 

algorithmic intellection
algoritm editare posturi
alianta impotriva enumurilor
alternative capete tirnacop
angajari secretare
animal de companie ovidiu cucu
aplaudac
ardelenii au talent
asa nu
ascunderea urmelor
asta seara ridem cu silviu
automaton
balade mineri
baterii lampas
batman si enumurile
bilete peluza programarii
birou traduceri engleza
biserici unde se leapada enumul
bitdefender disponibilizari
blog tehnica mineritului
cel mai miner dintre ardeleni
ce maninca minerii
ce urmeaza pe standup programming
ce vraji a mai facut minerul
cine-i mic si da din mina si-are patru la romana
clasament prostie
clasici in viata
clasicism in programare
CNH
coco singe instalatie
codexpert consiliu
codexpert mascota
codexpert tv episodul 2
comunist
corectaci
cu cati de i se scriu cuvintele
cum blochez haterii
cum instalez folie fumurie la tirnacop
cum invat sa fiu analfabet
cum ma lepad de enum
cum sa ai o opinie despre orice
cum sa atragi vizitatori din africa de sud
cum sa te prefaci ca stii programare
cum scapi de hateri
cum se joaca programarea pe pedepse
cum sterg poze picasa
cuvintul lui dumnezeu
dating opportunities romania india
definitie analfabetism
demagogie
despre ce e vorba standup programming
dictionar limba shakespeares
droguri munitie PNL
echivalent bula programatori
editor posturi profesionist
editura tutorialistica
efect Dunning-Kruger exemple
enumerarea ardeleana
enumul din capernaum
este pacat sa folosesti enumuri in postul pastelui
e voie sa vopsesti oua cu enum
exemple analfabeti
exemple incompetenta
exemple prostie
exemple retard avansat
expert
expert C++
expert emerit
expert STL
filme porno maximus_x
film porno programatori
firewall impotriva enumurilor
flori de mina
frustari
fustari
fustrari
ghid utilizare virgula
glume cu programatori
greseli de ortografie
hateri ma-nconjor
how stupid are romanian programmers
how to delete wordpress comments
how to edit posts
how to optimize file size
how to speak english
how to treat EEG flatline
impartasania vindeca enumul
indian dating site
inlocuire enum
instructions how to make best algorithms
international programming stars
introducere in retardare
iubitul larisei
laocoon blogosfera
lepadarea de enum
limba lui shakespeares
lucruri de evitat in programare
lumea mea
marian pop clona silviu
marius bancila nu are prieteni prosti
maximus_x supererou
metode pentru cresterea sentimentului de autoimportanta
miner
miner am fost miner sint inca
mineriada
mineriada de la pagina 5
mineriada online
miner prost
miner standup
miner taliban
minerul si marea
moarte masinilor de scris automate
mos craciun si prietenii lui
motive emigrare
motive sinucidere
mr proper wordpress
muie steaua
mvp candidates
nascut miner
netezire creier pro sau contra
noi nu ne ascundem dupa toruri
nu mersi
oameni care cred ca nu au fata de prost
oameni cu iq sub 80
oamenii mai si gresesc
oameni pe care nu ii pacalesti usor
omul cu compilator in cap
ovidiu cucu
pacatul enumerarii
paranoia
parfum cu miros de miner
parfum de galerie
pilda lui onan despre enum
piticul porno la timisoara
postac
poze cu enum
preacuviosul vector si pacatosul enum
prefer prostii pe forumuri
preziceri programare
programarea pe ghicite
programa scoala ardeleana
programator dupa ureche
programator enumuri
programatori care citesc infractoarea
programator idealist
programatori protejati unesco
programator miron cosma
programator naiv pentru lumea in care traieste
programator retardat
programe care reactioneaza la cuvinte cheie
program vaccinare sarcasm
prost
prostanac
raspundaci
rastignirea enumului
recital silviu ardelean
reeducare c++
reguli destructor virtual
retardare
retardare avantaje si dezavantaje
retardare online
retrospectiva mineriada
revista cosmpolitan
romanian brides
romanian mining industry
romanian optimization
romani celebri
romanii au talent
rugaciune enum
sfaturi contra enumului
sf gheorghe in lupta cu enumul
siemens lampase
sihastrie
silva ardelean
silviu ardelean 0 friends
silviu ardelean cautare map
silviu ardelean cv
silviu ardelean gramatica
silviu ardelean manual informatica
silviu ardelean mina
silviu ardelean pescar ratat
silviu ardelean puscarie
silviu ardelean standup programming
silviu ardelean viata si opera
silviu duce tava
silviul semantic
silviu muie steaua
sint comunist si miner
sint un retardat comunist
sisteme propulsie vagonet
site testare sarcasm
site validare tutoriale
someriada
south africa programmer dating
standup programming
steaua fara nume
studiu imunitate ironie
superprogramator
tarnacop
tendinte in retardare 2011
teorie enumuri
there is no i in team
tipuri clasice
tirnacop viteza
tuning tirnacop
tutorial editare posturi
umor programatori
un miner avea o casa
unskilled and unaware of it examples
vagonet lane departure warning
vedeta standup programming
viata dupa bitdefender
viitorul programarii
wikileaks codexpert

Coco poate confirma autenticitatea informatiilor.

Update: Coco a confirmat informatiile in post-ul ala in care tot incearca sa ne dea replica, crezind cumva ca asta ne pune pe noi intr-o lumina proasta. De asemenea a sters comentariile incomide de la respectivul post, ca vorba aia, exista sansa sa le vada noii colegi si sa rida suplimentar de el. Stai linistit Silviu, noii colegi vor ajunge la tine pe blog ca tot restul lumii, dind click pe un link de la noi, asa ca incercarile tale de a cosmetiza trecutul nu fac decit sa amuze publicul care stie deja ce scursura esti.

 

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

Stiri pe scurt

Posted in Regula 0 on March 21st, 2011 by Mihnea

Un cititor binevoitor ne-a semnalat ca referer.us e mai breaz decit anonym.to sau alte servicii similare si scoate de tot referrer-ul, asa ca am upgradat JS-ul care proceseaza link-urile spre abataj si ograda expertilor sa treaca pe la aia in caz ca nefericitul cititor nu foloseste Chrome. Cu ocazia asta m-am pus la curent cu haosul care domneste prin ce zic browserele la user agent si mi-am intarit convingerea ca web-ul trebuie sters si facut din nou.

Gardianul Ovidiu a simtit ca pozitia lui de postac al intrebarilor de interviu este amenintata de activitatea lui 0ptr si a trecut in modul smartass. Sintem convinsi ca daca chiar ar fi la un interviu si cineva l-ar pune sa implementeze atoi(), ar cere intii specificatiile complete ale functiei in 3 exemplare semnate si parafate de director si de ofiterul politic. Obisnuit din vechiul regim sa puna intrebari si sa raspunda singur la ele, el a declarat:

Cum gandesc? Gandesc pragmatic. Daca nici tu nu sti exact ce vrei, nu te astepta sa obtii de la mine exact ce vrei!

Sau, cum ar zice mai rimat protejatul sau, “noi muncim, noi nu gindim”. E demn de mentionat ca daca Ovidiu punea intrebarea si 0ptr facea pe desteptul, s-ar fi facut urgent apel la Pravila 0 si probabil la butonul de ban.

Si ca tot veni vorba de miner, iata ce a inteles el din faptul ca am facut misto de pChar += sizeof(char):

Atat amar sa fie… unii au fantezi si se gandesc sa migreze atoi() la wide-char… ca doar atoi() nu vine de la ASCII si de _wtoi() nu s-a auzit.

Lasind la o parte razboiul contra i-urilor pe care-l duc minerul si militianul pe codexpert, propun sa meditam cu totii 5 minute la uimitoarele capacitati de intelegere de care da dovada Silviu prin afirmatia asta. Srsly, the fuck.

Un prieten care a absolvit Bitdefender Bucuresti mi-a comunicat o veste soc: Silviu a parasit multinationala emblematica in decursul saptaminii ce a trecut. Aparent a gasit o firma unde departamentul de HR n-are acces la Google si a zis ca e o oportunitate pe care nu trebuie s-o rateze.

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

O noua propunere

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

Zarva mare in comunitatea expertilor, caci 0ptr iar e pus pe sotii. Dupa ce s-a lamurit cu Regula 0 a codului portabil, a revenit cu o intrebare parca special facuta pentru a-l activa pe Silviu Virgula Ardelean: cum ati implementa atoi()?

Intrebarea asta e pentru miner ca un laser pointer pentru o pisica: irezistibila. Silviu traieste pentru momentele astea, cind cineva pune o intrebare banala si el crede ca stie raspunsul, pentru ca ii permit sa-si afirme si sa-si confirme statutul de connaisseur. Cu serotonina refulind prin nas si urechi, el a atins duios tastatura si a scris cuvintele ce-i sint atit de dragi: Eu propun urmatoarea implementare.

Propunerea nu dezamageste. Prin truda afunda, ortacul scoate din abataj o noua floare de mina desavirsita, un memento al zbuciumului ce-i cuprinde fiinta de fiecare data cind se vede pus in fata unei masini de scris automate. Dat fiind ca el n-are un compilator in cap, o sa fac eu pe compilatorul si voi incerca sa descifrez linie cu linie ce se petrece in mintea greu incercata a unui miner cu 9 ani de experienta in C++.

bool isNegative = (*pChar == '-') ? true : false;

Ostilitatile incep in forta. Silviu nu are incredere in compilatoare si alte “tool-uri automate”, asa ca foloseste operatorul ? pentru a converti true la true si false la false. Asta e doar pasul 1 din planul lui. Cind va implini 10 ani de experienta in C++, isi va autoimpune sa transeze definitiv problema bool-ului prin urmatoarele tipuri de constructii:

bool a = true ? true : false;
bool b = false ? true : false;
if( ((true == a ? true : false) || (false == b ? true : false)) ? true : false)
    a = b ? true : false;

Urmeaza o prima trecere prin string, cu scopul de a verifica daca instructiunile de branch ale procesorului functioneaza corect sub stres:

while (*pChar != '\0')
{
   if ((isNegative && length == 1 && (*pChar != '-') && (*pChar < '0' || *pChar > '9')) ||
      (length > 0 && (*pChar < '0' || *pChar > '9')))
         break;

   length++;
      pChar += sizeof(char);
}

If-ul asta e reprezentativ pentru miner. In opinia lui, “loop-ul ala e un ‘strlen()’ mai special”. Da, special ca aia care baga cubul in gaura rotunda. Pe Silviu nu l-a dus capul sa incrementeze pointerul ala nenorocit daca string-ul incepe cu minus, dar el e puternic, asa ca a impins cit a putut de tare cubul si pina la urma a intrat in gaura. De asemenea, observam citeva reguli de stil bine conturate: ultima linie din bucla se indenteaza suplimentar, si se pun paranteze doar in jurul expresiilor care implica operatorul !=. length == 1 nu are nevoie de paranteze, dar *pChar != ‘-‘ are.

E important de observat si cum aduna Silviu sizeof(char) la pointer. Minerul a facut asta crezind ca e “best practice” sa fii explicit, ca nu stii cind treci la Unicode si trebuie sa aduni sizeof(wchar_t). Da, el habar n-are ce-i ala pointer arithmetic si chiar crede ca daca pChar era pointer la wchar_t, acolo trebuia sa adune mai mult de 1.

Ajungem, insa, la partea cu adevarat epica din cod, pe care o reproduc integral:

while (length > 0)
{
  decimal = 1;
  if (isNegative)
  {
     if (!isFirst)
     {
        length--;
        if (0 == length)
           break;
     }

     isFirst = true;
  }

  for (int i = 1; i < length; i++)
     decimal *= 10;

  ret_val +=   decimal * (int(*(pChar - length) - '0') % 10);
  length--;
}

Stiti cind ziceam ca ifdef-ul ala cu WIN32 e chintesenta incompetentei lui Silviu? Ei bine, bucla asta nu e la fel de concisa, dar tot e un imn al prostiei de o frumusete rar intilnita. Te astepti de la Silviu sa nu fie in stare sa faca atoi() intr-o singura trecere prin string, dar nici in cele mai umede vise nu speram sa ne ofere un asemenea festin al retardarii. Intii si intii, observam revenirea unui design pattern intilnit si in prima bucla: si asta verifica la fiecare iteratie daca a inceput. Ortacul nu e in stare sa scoata muia aia cu semnul in afara buclei, asa ca tot verifica daca bucla lui face ce fac buclele, si anume daca a reusit sa treaca la a doua iteratie.

Partea misto incepe insa dupa confirmarea abilitatii procesorului de a incrementa numere. Minerul a reusit sa faca atoi() in timp patratic. Dupa cum a mai demonstrat, el e un om simplu, deci prin definitie nu se preocupa de complexitate, dar ma surprinde iar in mod nespus de placut calculind exponentul ala in fiecare ciclu. Incercati sa va imaginati cum ar trebui sa decurga procesul deductiv prin care ajungi sa faci asa ceva. Eu n-am reusit. Voi va dati seama ca asta asa programeaza zilnic, la job? Si ca cineva ii da bani pentru ca sa scrie cod d-asta?

Ca sa incheie apoteotic, intii si-ntii mai arunca o sfidare in ochii compilatorului punind un cast explicit la int, spunindu-i parca “uite ba, iar fac eu treaba ta pentru tine”, dupa care baga un mod ca un chef care pune delicat cireasa in virful celui mai frumos tort pe care l-a facut pina acum. Pai de ce sa beneficieze doar partea booleana de verificari cu operatoru’ intrebare, si aia aritmetica nu? Ortacii programeaza defensiv, ca nu stii cind 9 se face brusc mai mare ca 10 si trebuie sa iei atitudine. De acum incolo, codul lui Silviu va fi de 3 ori mai sigur si mai conform cu standardele MISRA (despre care minerul a auzit linga automatul de cafea cind lucra la xerox la Siemens), caci aritmetica se va face in felul urmator:

pChar += sizeof(char) % 2;
int bytes = mb * (1024 % 1025);
int bits = bytes * (8 % 10);
int doi = 2 % 3;
int unu = 1 % doi;
for(int i = 0; i < size % (size + 1); ++i)

Ortacul si-a pregatit deja apararea: “nu are nimeni pretentia variantei perfecte”. Sa inceapa corecturile, deci.

LE: minerul a si dat prima replica: si-a editat al doilea post din thread si a scris ca patrujdoi sint eu, intr-o noua iesire de Poirot. Simt ca toata munca de reeducare pe care am dus-o aici tocmai s-a dus pe pula. A ajuns din nou sa creada ca eu sint jos8cal, 0ptr, patrujdoi si toti ceilalti care i-au aratat vreodata ca-i prost. Silviu se simte ca-n Matrix, el singur incojurat de o armata de eu. Pentru a doua oara intr-o singura zi s-a inundat de serotonina cind a putut face niste corecturi in codul lui patrujdoi, crezind ca ma corecteaza pe mine. Va dati seama ca a avut orgasm crezind ca m-a prins in sfirsit cu o greseala.

 

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

Haters gonna hate

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

 

 

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

Optimizing QuickSort and staff

Posted in Premiul n00bel, Slagare internationale, Stand-up philosophy on February 3rd, 2011 by jos8cal

Frunzaream recent revista celor de la codexpert.ro. Cum ce revista? Pai si-au lansat revista! E scrisa de un bot. In fine!

Evenimentul lansarii a fost unul sters, ca sa nu mai zic de lipsa totala a fundamentului ideologic. Dat fiind ca sintem familiari cu curentul codexpertian, ne-am zis sa incropim noi doua trei rinduri despre necesitatea si misiunea acestui ziar in lume, si nu numai. Asadar:

Pentru noi, cei care am supravietuit prigoanei, raspunderea pentru idealurile miscarii codexpertiste este atit de mare incit de multe ori simtim ca este o povara care ne copleseste si, daca n-ar fi legatura tainica cu C++-ul, poate demult s-ar fi stins nadejdea in sufletele noastre.

Profesorii Ardelean, Cucu si Bancila ne-au invatat sa gindim. Dupa cum Capitanul Bjarne a despartit hotarele lumii vechi de lumea noua, cei trei au despartit lumea formelor sterpe de lumea cugetarii realiste.

Dar cugetatorii si-au sacrificat darul mintii pentru adincul omenesc.

De cind au luat la cunostinta de C++, limbaj atit de apropiat de conceptia lor de viata, nu s-au putut desparti de drumul lui. Si si-au inceput viata intr-o apoteoza de neinchipuita frumusete morala. Ziarul trebuie sa pastreze nealterat spiritul miscarii si sa-l exprime in linia de cugetare a celor trei.

Un ziar de lupta si de idei, dar fara verbalism si entuziasm usor!
Fiecare cuvint trebuie sa se nasca din adincurile sufletului si sa fie insotit de intreaga raspundere a celui care il scrie.

“Ziarul Codexpert” este o batalie si pornim la ea cu aceeasi incredere in Victorie!

Acum ca avem si sprijinul ideologic, putem porni la drum sa ne scaldam printre titlurile care ne sint supuse atentiei in ziar.

Gasim o optimizare de quicksort. Gasim la autor si justificarea ideologica pentru batutul din taste:

“The idea for doing this is that instead of each new recursion copying the same code and using up more memory, it reuses the same code.”

Deja vu. Zbucium. Silviu Ardelean nu este un om, este o modalitate de a vedea lumea.

Ridicam bezmetici capul si privim codul in ochi. 10 numere sint torturate si fortate sa se alinieze de la mic la mare, in numele unei noi ideologii optime, acest pleonasm minier. Luam codul si-l virim sub nas, linie cu linie. Tragem incet si simtim cum ne ia cu ameteala. Trebuie sa gasim o modalitate de a salva numerele din mina ideologiei mirsave! Pregatim siringa pe care sta scris Array.sort() si batem incet vena. Milioane de numere ne trec prin fata ochilor. Eminescu. Truda. Pierdem vena. Intepam de 10 ori si ne intindem pe spate cu ochii tintiti la tavan. Senzatia de timp dispare. Ceasul numara de la kilometrul zero, over and over:

Optimized QuickSort: 00:00:01.2692034
Array sort: 00:00:01.1664805
Optimized QuickSort: 00:00:01.2490031
Array sort: 00:00:01.1632019
Optimized QuickSort: 00:00:01.2463744
Array sort: 00:00:01.1634480
Optimized QuickSort: 00:00:01.2695249
Array sort: 00:00:01.1568251
Optimized QuickSort: 00:00:01.2440373
Array sort: 00:00:01.2517662
Optimized QuickSort: 00:00:01.2694608
Array sort: 00:00:01.1581570
Optimized QuickSort: 00:00:01.2646042
Array sort: 00:00:01.1657108
Optimized QuickSort: 00:00:01.2499172
Array sort: 00:00:01.1557011
Optimized QuickSort: 00:00:01.2406120
Array sort: 00:00:01.1544470
Optimized QuickSort: 00:00:01.2434693
Array sort: 00:00:01.1576033

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

Nimeni nu e mai presus de lege

Posted in Glume de autobaza, Regula 0 on February 2nd, 2011 by Mihnea

In Comunitatea Expertilor C++ din Romania e o forfota de nedescris de o vreme incoace, dupa cum se poate deduce din ritmul sustinut cu care creste site-ul nostru. De parca problemele cu array-uri, fisiere si biti n-ar fi fost de ajuns, Steaua l-a calauzit in directia staulului lor pe 0ptr, care a adus in dar o intrebare demna de premiul memcpy: nici unul din experti n-are vreo tangenta cu subiectul, dar pare suficient de accesibil incit sa incerce sa-si dea cu parerea. Primul s-a inscris la cuvint Gardianul Ovidiu. As dori sa trecem raspunsul sau prin sita Regulii -1, pe care a redactat-o tot el impreuna cu tovarasii sai de mvpeala:

Eu unul am avut o experienta foarte scurta pe planeta *NIX si cam astea sunt impresiile[1]:

  1. trebie sa fii expert in goooooooogle search[2];
  2. daca n-ai ureche muzicala iti vine destul de greu sa prinzi ce se ciripeste-n jur[3];
  3. daca nu esti SUDO-maso n-ai ce cauta pe-acolo.

Litera legii:

[1] sunteti familiar cu subiectul discutat; nu oferiti raspunsuri bazate pe pareri sau impresii

[2] raspunsul este in acord cu intrebarea formulata; evitati raspunsurile sau mesajele in afara subiectului

[3] 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

Ovidiu termina aceasta prima mansa cu un total de 75 de puncte, dar serata de intrebari si raspunsuri abia incepe. Ne-am dori sa aflam si care este optica CNH in problema dezvoltarii cross-abataj.

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

Deja vu

Posted in Codare cu premeditare, Premiul n00bel on January 28th, 2011 by Mihnea

Vazindu-se din nou trasi in poze pe site-ul nostru, expertii au dat fuga la butonul de edit si au incercat sa-si corecteze “micile scapari“. Din fericire insa, doar Marius a reusit. Repetind performanta din saga dimensiunii fisierelor, Silviu ne prezinta varianta imbunatatita a tehnologiei indexarii array-urilor:

const int rows = 10, cols = 12;
unsigned char* bmp1 = new unsigned char[cols * rows];

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

delete [] bmp1;
bmp1 = NULL;

Nu, Silviu-Marius. Nici asa nu e bine. Apreciem faptul ca ai inversat for-urile intre ele, ca sa nu para ca ai copiat de la Marius, dar tot n-ai reusit sa iei un numar dintr-un array. Hai sa vedem daca poti sa-ti depasesti recordul anterior de 4 corecturi.

Oricum, in urma acestui esec plenar, in comunitatea expertilor au inceput sa se puna intrebari. Vazind faptul ca personaje ca viorel2005 si mesajflaviu ii tot pun in dificultate cu probleme de clasa a 5-a, unii experti au inceput sa se intrebe daca nu cumva respectivii sintem noi. Mai tineti minte cind expertii erau convinsi ca jos8cal si cu mine sintem aceeasi persoana? In curind vor ajunge sa se banuiasca si intre ei.

Edit: 1 minut. Atit i-a trebuit minerului pentru a-si curata trecutul. La 1 minut dupa ce am postat “corectura”, si-a sters de tot codul. Urmele prostiei sale se pastreaza doar in reply-ul lui viorel2005 de pe pagina urmatoare, care a inglobat aberatia minerului in aberatia proprie, dar din pacate cind a dat el quote era varianta cu “coloum”, nu asta extinsa. Nu-i nimic Silviu, noi stim, si tu stii ca noi stim, la fel cum stii ca poza din articolul asta e o reprezentare destul de fidela a modului in care-ti petreci 3 sferturi din zi.

Tags: , , , , , ,