Stare avansata de Tutorialism.

Posted in Codare cu premeditare, Premiul n00bel on March 30th, 2011 by jos8cal

El este Marian Pop si este intr-o relatie stabila cu un Mac OS X de peste 6 ani. Cind intr-o relatie anii devin unitatea de masura a tolerantei, este evident ca secretia de feromoni a crescut proportional cu durata relatiei.

Unii dintre voi or sa spuna ca o relatie sta in picioare datorita fundamentului de cunostinte comune cu care ne-am impaunat reciproc de la primele intilniri. Ei bine, nu! Relatia daca ar fi sa o reprezentam 2D ar fi o linie pe orizontala, nu pe verticala, deoarece “fundamentul de cunostinte comune” se transforma in Obicei, iar acesta stim cu totii ca e neplacut iar neplacerea se reprezinta pe orizontala. Este o enumerare. De ce credeti ca puscariasii isi numara zilele tragind linii verticale, ca mai apoi sa le taie cu una orizontala? Pentru a exemplifica moartea sperantei si nasterea Obiceiului.

Bun. Acum ca avem clar stabilite bazele vietii in doi, sa trecem sa mulam aceasta schema metafizica pe viata familiei Marian Pop OS X.

Marian se considera un geek datorita pasiunii lui pentru computere dusa la limite extreme. Dupa cum vom vedea mai jos, computerul nu pare insa sa-si aduca aminte de unde-l stie pe Marian.

El s-a decis sa programeze in C/C++, PHP si MySQL, deci este evident ca are nevoie de un Mac, ca PC-ul e pentru jocuri. S-a oprit la primul bordel Apple si a platit pentru un Mac OS X, toate serviciile incluse. G4. MILF. XCode.

Dupa cum am vazut, daca vrei doar sex de la un Mac, vei avea parte de un gay porn numit XCode. Cind esti in schimb intr-o relatie cu Mac-ul, secretia mare de feromoni emisa de dinsul va face ca experienta cu XCode sa-ti para o sansa unica in viata.

Odata ajuns applosexual, Marian a inceput sa-si filmeze orgiile cu XXXCode si sa le puna online sub forma unui Decalog speram noi.

Primul Film. Introducere in C++.

Aici se poate observa cum folosirea cuvintelor “variabile” si “using namespace std” l-ar face pe orice incepator sa se urce pe pereti de placere, neintelegind nimic dar incercind sa simta apasarea tastelor care nu se apasa pe tastatura de Mac.

Al doilea film. Structuri conditionale in C

Vizibil stresat din cauza unui algoritm, Marian isi face totusi timp sa readuca in atentia publicului recurenta tema a variabilelor. Aflam astfel ca variabilele sint niste cutii in care stocam date. Acum mai ramine sa aflam ce sint alea date. Climaxul acestui film incepe la minutul 6, cind Pauza devine subiect principal pentru 35 de secunde. Mai aflam ca

for (int a=0; a>0; a++)

il incrementeaza pe a cu a.

Daca Gaddafi si-ar fi luat gindul pentru o secunda de la lumea modei si ar fi deschis XCode, ar fi propus (te pup Silviu) ca si Marian urmatoare alternativa la scris numere pe ecran:

int a;
cin >> a;
for (int i=a; i > 2; i++){
	cout << i;
	break;
}

sau

while (a == 2){
	cout << a;
	break;
}

Al treilea film. Functii in C++.

Sau cum sa nu faci cout << 40;

int fun(int n){
	n = n + 20;
	return n;
}

int main(){
	int n=20;
	int i;
	for (i=n; i>0; i++){
		cout << fun(i);
		break;
	}
	return 0;
}

Al patrulea film.

Aici aflam ca pointerii sint ca niste muschi si trebuie sa facem zilnic exercitii pentru a-i mentine in forma. Si aici Pauza primeste un rol in scena in care Marian cauta punctul si virgula pe tastatura lui Apple.
Mai aflam ca putem scrie cod oriunde vedem loc liber in pagina, asa ca pe ciorna, si mai tirziu il copiem unde trebuie. Cind te trece creativitatea trebuie sa ai un loc liber sa o depui in cel mai scurt timp.

Disclamer: Nu a fost ranita nici o masina in timpul efectuarii cercetarilor pentru acest material. In schimb se pare ca alti oameni au fost raniti in timpul orgiilor familiei Pop OS XXX.

PS. In caz ca doriti autografe, codexpert.ro il are invitat permanent in platou.

PS2. Si da, ca si pe Silviu Ardelean sistemul de invatamint romanesc l-a avut la cirma si pe Marian Pop.

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

Aventuri 2D in Valea Jiului

Posted in 112, Premiul n00bel on January 27th, 2011 by Mihnea

Dupa cum ne-a obisnuit deja, minerul nu se lasa cu una, cu doua cind spune o timpenie. El continua sa loveasca problema iar si iar, pina aceasta recunoaste ca a ascuns droguri, armament, munitie si masini de scris automate la peneteu, caci cu totii stim ca perseverenta e mama mineritului. Dupa ce i-a explicat lui viorel2005 cum sa reduca numarul de apeluri catre o functie facind parametrii sai variabile globale, a atacat chestiunea de fond, si anume o tehnologie pe care el a descoperit-o cu multi ani in urma: cum sa tii o matrice 2D intr-un array 1D. Daca va amintiti, aceasta problema a mai framintat ograda expertilor, deci clar e o chestie importanta, care ar merita FAQ-ul sau. Oricum, Silviu explica cu cuvintele lui tehnologia in cauza:

Edit: imi cer scuze, din greseala scrisesem corect “column” in subtitrari.

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

Inflexible special tool that could fail.

Posted in Codare cu premeditare, Premiul n00bel, Stand-up philosophy on January 16th, 2011 by jos8cal

Nu cred ca-l cunoasteti pe mesajflaviu. El este un impatimit al jocului “La Perete, La perete, Stop!”. Jocul asta este pentru el ce a fost birna pentru Nadia Comaneci, adica o rampa de lansare. Antrenamentele si meciurile oficiale se desfasoara pe codexpert.ro.

Regula jocului este simpla: mesajflaviu sta cu spatele la Programare si se uita printr-o gaura aflata in peretele cu care pare ca se stie intim. Lumea din gaura este o lume fascinanta pe care mesajflaviu o urmareste hipnotizat, dar ca orice lume fascinanta, pare o utopie.

In spatele sau, la o distanta considerabila, stau in ordinea stelelor si diplomelor, Raspundacii. Aliniati precum negustorii de la sosea care vind ceapa sau echipament rustic pentru imobile, ei ofera Raspunsuri.

Mesajflaviu se intoarce confuz din cind in cind si intreaba multimea de experti despre semnificatia a ceea ce vede prin gaura. Rolul si misiunea raspundacilor este de a inlatura ceata din ochii lui si de a-i conferi o siguranta in privire si in ziua de miine. Cind unuia dintre raspundaci i se pare ca a atins un moment cairotic, creierul da startul unei stari de bine, stare care nu poate duce decit la lucruri marete. FAQ-ul este produsul acestei stari cairotice. Odata conceput, el este aplicat pe gaura cu menirea clara de a corecta vederea celui ce priveste prin ea.

Tematica intrebarilor este Programarea in general si viata de programator in particular. Intrebari precum “Pot trimite un string prin WM_CHAR“, “Cum pot trimite un CString prin PostMessage” sau “Cum se stocheaza o variabila membru tip custom?“, au tinut cu sufletul la gura firme si birouri intregi de programatori, toti in asteptarea raspunsurilor. S-au facut pariuri si s-a dat in bobi. Cum lesne se poate intui, marele pariu era pentru momentul aparitiei starii cairotice la vreun raspundac, adica momentul unui FAQ.

Si iata ca momentul cairotic l-a lovit pe Silviu Ardelean. Again.

Se poate schimba numarul versiunii de program automat, pentru cazul cand programul isi face update?” zice mesajflaviu fara sa-si dezlipeasca ochiul de la gaura. Neintelegind intrebarea, dar totusi in posesia unui raspuns care contine cuvintele “versionare” si “program“, Silviu pune tirnacopul jos si ia atitudine PROPUNIND de la sine citire o solutie la intrebarea pusa in joc. Vazind ca MVP Ovidiu Cucu n-a inteles nimic, dar totusi a ramas profund fascinat de raspuns, Silviului i se aprinde lampasul. Pune mina pe tirnacop si il arunca in departare. Unde-si va gasi tirnacopul hodina, acolo va pune Silviu de un FAQ. Sau cu cuvintele sale:

“Subiectul cred ca se preteaza unui FAQ si cu permisunea d-voastra il voi supune curand spre aprobare.”

Din pacate si Microsoft si-a aruncat tirnacopul acum 6 ani in aceeasi directie si au pus-o si ei de acelasi FAQ. Bineinteles ca asta nu este un motiv sa nu faca si Silviu unul in care sa nu mentioneze sursa si sa PROPUNA dinsul un workaround la o problema de mult apusa:

“Manually editing of binary files version in the resource editor of Visual Studio IDE is not a viable solution.”

“We can use a special tool that does this thing for us. ”

“Unfortunately this approach is not the most flexible and could fail.”

“In order to avoid this issue and edit the version only in a single place I propose the following workaround:”

Deci sa nu folositi NICIODATA un “special tool” pentru ca nu e flexibil si oricum nu o sa mearga. S-a auzit acolo in spate, da? Am sters si eu rusinea mea de tool scris in python care face asta in 8 linii de cod. Sa-mi fie rusine pentru inflexibilitate tool-ului si pentru abordarea sortita esecului.

Bine, daca este sa fim corecti, noi stim ca Silviu se mai inspira de pe net pentru a-si gasi cuvintele, dar niciodata nu ofera sursa. Acum ceva timp s-a inspirat cu copy/paste pentru a gasi rima cuvenita intr-o oda adresata XML-ului.

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