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

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

Internetul, memoria si Ardeleanul

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

Azi e o zi importanta pentru Silviu Virgula Ardelean: in sfirsit a gasit un articol care explica pe intelesul sau ce-i cu pointerii si cu memoria. Surescitat de descoperirea sa, expertul ce duce-n spate nu mai putin de 9 ani de tras la saiba C++-ului si-a aruncat tirnacopul in zare, sa stie toata lumea:

A nice and simple tutorial of “C/C++ Memory Corruption and Memory Leaks”: http://bit.ly/jWwEd

Vreau sa subliniez “pe intelesul sau”. Articolul nu e in nici un caz pe intelesul oricui, ci doar al lui Silviu, asa cum discutiile intre doi boschetari beti nu-s pe intelesul oamenilor de rind. Sa spicuim:

char *oldString = "Old String";
char newStrig = strdup(oldString);
if(newString == ENOMEM) ... // Fail!!!!

...

free(newString);

Nu-i asa ca aveti un deja-vu? Cod care nu se compileaza, pentru ca “omul nu are un compilator in cap”, si pentru ca “tutorialele nu-s facute sa iei cu copy/paste din ele”? Bifat. Autor care e asa de prost incit crede ca malloc() returneaza ENOMEM cind nu mai are de unde da, dar posteaza totusi tutoriale pe net? Bifat. Utilizarea limbii lui Shakespeares pentru a ne asigura ca mesajul de pace si incompetenta este inteles si de oamenii din “India, Africa de Sud, Columbia, Rusia, etc”?

Memory allocated by copy constructors for pointer duplication. Check in destructor and delete if necessary. Memory allocated in passing class by value which invokes copy constructor.

Bifat.

Numarul de ineptii din articolul respectiv este aproximativ egal cu numarul de propozitii (doar daca socotim drept propozitii si enunturile alea fara predicat, altfel ineptiile cistiga), dar n-o sa stau acum sa fac analiza pe text. Mai interesant ar fi de aflat cum si de ce a ajuns minerul sa-si gaseasca sufletul-pereche in persoana acestui Greg Ippolito. “Cum” e simplu: a scris in google free memory tutorial si a dat pe primul link. “De ce” are legatura cu site-ul asta si cu utilizatorii sai.

Acum ceva vreme, minerul a postat un articol in care ataca spinoasa problema a convertirii numerelor in string-uri. La momentul creatiei l-am sarit pentru ca nu ni s-a parut ca ar avea suficient potential umoristic, dar un cititor fidel ne-a urecheat ca n-am semnalat faptul ca Silviu punea destructori virtuali in niste clase goale, ca un automaton constiincios ce este. Sigur pe textele invatate pe de rost de prin surse dubioase, Silviu (care, tineti minte, nu se ascunde dupa nick-uri pentru ca are singe in instalatie) a venit deghizat in Coco si a lasat urmatorul comentariu veninos:

Coco Says:
January 26th, 2011 at 4:32 pm
@thefatredguy: prima data trebuie sa scrie un FAQ special pentru tine despre destructori virtuali.

Dupa risetele ce au urmat, el si-a inmuiat intrucitva pozitia:

Coco Says:
January 26th, 2011 at 4:58 pm
Discutia cu destructor virtual / nevirtual e cu dus-intors oricum ai intoarce-o. Voie buna!

Vazind totusi ca voia buna nu inceteaza, a dat fuga la articol si a scos destructorii aia virtuali, ca nu se stie. A ramas totusi cu un ghimpe, ca n-a inteles de ce i-a scos, asa cum n-a inteles nici de ce i-a pus. Neintelegind ca e atit de prost incit nu va intelege niciodata, el a continuat sa caute raspunsuri sub forma de tutoriale si asa a dat peste Greg.

Un om de calibrul lui Silviu, care isi recunoaste greselile, nu putea dormi noaptea fara a scorni o justificare pentru faptul ca orice spune se dovedeste a fi gresit. El e un suflet nobil si mare, care vede dincolo de corecturi. Atita timp cit Adevarul iese la iveala, pe Silviu nu-l intereseaza cum se ajunge la asta. Cum ne-a obisnuit, minerul iar da cu tirnacopul in peretele gresit, crezind ca noi ne luam de el pentru ca isi corecteaza post-urile, asa ca ma voi preface ca incerc sa-l indrept pe calea cea buna, inainte sa-si darime abatajul in cap.

Nu, draga Silviule. Noi nu ridem de tine pentru ca iti corectezi scrierile, ci pentru ca trebuie s-o faci. Tot ce scrii este gresit si tu nu vrei sa vezi in asta un semn al incompetentei colosale care-ti caracterizeaza existenta. Post-urile tale ar trebui sa-i avertizeze pe cititori sa nu ia nimic de bun pina nu apare articolul corespunzator la noi pe site. Daca vrei, facem noi plug-in-uri de wordpress si phpbb care afiseaza un disclaimer in ce postezi si adauga automat link-ul catre noi in momentul in care publicam corecturile. Visez la ziua in care vei putea imprumuta de la cineva un sfert de creier si vei putea vedea ironia faptului ca ai invatat despre pointeri, constructori si destructori de la un idiot ca tine, care nu stie despre ce vorbeste, dar totusi vorbeste. Tu, in prostia ta, ai preluat prostia lui si o dai mai departe altora. Daca Fibonacci ar fi trait azi, i-ar fi dat pulii de iepuri si ar fi studiat pe tine rata de crestere a prostiei pe internet.

Sigur, incercarile acestea de a-l face pe Silviu un ortac mai bun sint nascute moarte. Un intelept ne-a lasat mai demult pe failbook urmatorul mesaj, ce ilustreaza cu mare concizie si absoluta precizie imposibilitatea comunicarii cu minerul-programator:

Cand Silviu-Marius Ardelean greseste si incerci sa ii spui, sunt trei variante:

1. Faci misto si nu se prinde;
2. Ii spui discret si nu intelege;
3. Ii spui direct si nu te crede.

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

Futurologie aplicata

Posted in Premiul n00bel, Regula 0, Stand-up philosophy on March 5th, 2011 by Mihnea

Noi in anul 2000
Cand nu vom mai fi copii
Vom face ce-am vazut candva
Toate visele indraznete
In fapte le vom preschimba
Vom fi mesteri iscusiti
Sa va facem fericiti
Pe voi parintii ce veti fi
La a doua tinerete in 2000

Web 2.0 este un mod de a folosi internetul inventat de Tim O’Reilly intr-o zi din toamna lui 2003, dupa ce bause la micul dejun 5 pahare de Guiness indoit cu Tullamore. Tim a concluzionat pe propria piele si pe banii lui ca al 6-lea pahar nu e o simpla diferenta cantitativa, ci un salt calitativ, caci in loc de 5 pahare goale cit se astepta sa vada pe masa, acum vedea cam 10. Tim si-a notat aceasta revelatie pe un servetel si a decis sa tina a doua zi o conferinta in care sa spuna lumii ca de la al 6-lea pahar incolo se cheama ca bei agheasma 2.0, chiar daca nu schimbi licoarea. Cind s-a trezit din nou pe inserat cu gust de placenta felina in gura si durere de cap 2.0 si-a dat seama ca o conferinta despre epistemologia trotilarii s-ar putea sa nu-l duca pe culmile faimei si bogatiei, asa ca a decis sa faca o schimbare de disciplina. El a aplicat acelasi principiu web-ului, un domeniu unde e mult mai usor sa monetizezi platitudini, iar restul e istorie.

Inainte de Revelatie, oamenii foloseau internetul pentru porn; in prezent, oamenii folosesc internetul tot pentru porn, dar acum nu mai merge butonul de back din browser. In afara de revolutia tehnologica ce a dus la caderea in dizgratie a butonului de back, Web 2.0 inseamna si o miscare ideatica ce doreste sa convinga societatea moderna sa se intoarca la obiceiurile anilor ’70, cind te conectai cu terminalul dumb la mainframe, desi un procesor cu mult mai multa putere de calcul decit vei avea vreodata nevoie costa azi cam cit doua pungi de pufuleti. A da, mai inseamna si Failbook, “web social” si alte eufemisme d-astea pentru cyberstalking.

Dar probabil stiati toate astea. Ce nu stiati, si veti afla acum, este ce inseamna Web 3.0.

Simpla existenta a lui Web 2.0 dovedeste cu rigurozitate aritmetica faptul ca va exista un Web 3.0. Numerele naturale nu se termina la 2. Rocky, Rambo si Robocop nu s-au terminat la 2. Star Wars nici macar n-a inceput inainte de 4. Practic, atunci cind Tim a pus numarul 2 in coada web-ului, el a inventat si toate versiunile care vor urma, { Web x.0 | x∈ℕ }. Noua nu ne ramine decit sa descoperim ce inseamna aceste web-uri deja inventate, ca sa nu ne ia prin surprindere atunci cind vor aparea.

In Romania, manusa a fost ridicata de worldit.info, o organizatie ce se auto-caracterizeaza drept “blog de tutoriale si articole de programare web, soft si photoshop, securitate, probleme de algoritmica si viata“. Dat fiind ca natura lui Web 3.0 este in mod cert o problema de algoritmica dar si de viata, worldit.info a organizat pe aceasta tema “prima conferinta online din Romania a pasionatilor de IT”, titulatura ce-mi aminteste de un afis din Zalau ce anunta deschiderea unui magazin pentru sudori si pasionatii de sudura. Conferinta s-a desfasurat pe IRC, un mediu cam medieval pentru subiectul futuristic ce urma sa fie abordat, daca ma intrebi pe mine. Din pacate mi-am planificat gresit timpul si pina am terminat de scris comenzile de BitchX pentru intrat pe server si facut un geam nou pentru canalul #rocybercon, conferinta se terminase (doar nu credeati ca o sa intru cu mIRC sau altceva, ca lamerii), asa ca standupprogramming nu a putut sa va ofere o transmisiune live de la conferinta. Voi incerca sa ma revansez acum cu o prezentare la rece a concluziilor.

Nostalgicii ce vor sa retraiasca clipele magice de pe canalele #bucuresti, #romania, #constanta etc. circa 1998 pot parcurge acest PDF (cel mai bine intra cu o coloana sonora potrivita). Pentru ceilalti voi face eu o introducere fortata in atmosfera:

[20:00] == Andrei [webchat@B43EC253.130FC46A.3CEC8F46.IP] has joined #rocybercon
[20:00] <Andrei> .op
[20:00] == mode/#rocybercon [+o Andrei] by Guardian
[20:01] <@Andrei> in primul rand Buna seara si bine ati venit
[20:02] == bcman [webchat@F92DF582.EC5945EF.96EEA9AC.IP] has joined #rocybercon
[20:02] == nutzu2010 [webchat@132ABC0C.1AC69BAC.EF37DABA.IP] has left #rocybercon []
[…]
[20:03] <@Andrei> Si cum suntem in 2011, consider ca e foarte bine sa incercam sa vedem cum va
decurge acest an in acest domeniu
[20:03] == Revelation [webchat@21ACC422.8C1DDB65.1DE3F0FD.IP] has quit [Quit: Page closed]
[20:04] <@Andrei> Subliniez ca informatiile va pot ajuta in vederea unor noi proiecte care sa se remarce de restul, in aplicarea la un job, in dobandirea noilor cunostinte
[20:04] == Revelation [s@21ACC422.8C1DDB65.1DE3F0FD.IP] has joined #rocybercon

Ma rog, intelegeti voi. Cam jumatate din timp vorbitorul a fost acoperit de scirtiitul usii pe care tot intrau si ieseau oamenii din sala de conferinte. Spre bucuria voastra insa, filtratul mental al mesajelor de join si part de pe IRC e ca mersul pe bicicleta, asa ca am putut parcurge log-ul pentru a extrage urmatoarele opinii despre Viitor:

<shady21> parerea mea ca web 3.0 v`a creea fiecarui utilazator o identitate proprie cat maiapropiata de cea reala lasand la o parte “masca ” din ziua de astazi ceva de genul “da esti altul in spatelemonitorului”

<Johane> Andrei, Eu cred ca web 3.0 va o chestie gen yahoo mesenger, dar mult, mult maibine integrata in OS

<Johane> Nu cred ca vom mai folosi browsere ci doar aplicatii mici cu procesare cloud

<sventek> Privesc web 3.0 ca perioada interactiunii utilizator – web. Însemnând ca paginileweb vor “învata” pe masura ce sunt accesate, toate paginile vor fi user-friendly iar totul va fi în realtime.

<bcman> eu zic ca ar fi util ca sistemele de operare sa se bazeze mai mult pe cloud dar nu sunt de accord cu OS care sunt tinute in cloud

<Dieliric> cloud nu foloseste cumva web 3.0?

<s3v3n> CUDA e doar folosirea GPU pe post de CPU .. kinda
<bcman> @s3v3n pai tehnologia ccuda e folosita pe serverele din nori

<Dieliric> si eu am dat exemplul cu CUDA a carei tehnologie este gratis fata de cloud care costa

<Dieliric> dar te rog sa te mai documentezi putin de tehnologia CUDA si despre cum se potface softuri bazate pe ea
<bcman> @dierlic stiu despre ea dar nu toti au cuda
<bcman> un server din nori il poate accesa oricine

<Andrei> hmm, nu e problema noastra asta. Problema noastra este – de ce nu putem fi noi ceicare cream noul Visual Studio pentru ceva nou? Trebuie sa fim smecheri si sa incercam sa intelegemtendintele si sa o luam inaintea altora

<Neo> ma scuzati daca devien de la subiect
<Neo> cine se pricepe la backtrack?

<ghitzZza> da, gama css3 cu svg si ecmascript inlocuieste tot flashul

Si asa mai departe. Rubrica “Flori de mina” incepuse sa puta a statut de cind cu tacerea inexplicabila a expertilor, dar cyberconferinta asta o va revergora viguros. Totusi, sa nu uitam intrebarea de la care am pornit: ce este acest Web 3.0? Ei bine, Web 3.0 este web-ul semantic:

<MarianPetre> suntem aproape deja la semantic web, 3.0
<George> ce reprezinta semantic web?
<Andrei> Semantic web poate fi noua arhitectura a proiectelor din 2011, o arhitectura ce se bazeaza pe colectarea a foarte multe informatii
<MarianPetre> data mining
<MarianPetre> unde masinile vor intelege informatia si o vor utiliza corespunzator
<Andrei> informatii care sunt organizate si se interconecteaza intre generand alte lucruri foarte interesante pentru utilizatori, practic calculatorul devine un micut robot capabil sa interpreteze tot ce te caracterizeaza

Tovarasi, trebuie sa va marturisesc ca nu sint entuziasmat de vestea asta. Cum ar veni, hipsterii care fac cacaturi gen noi2, twitter si failbook au terminat de distrus butonul de back si acum au facut o pasiune pentru corelat chestii. Chiar ma intrebam cit va mai dura pina cind unul din acesti mesajflavii ai internetului 2.0 va auzi de “inteligenta artificiala” si va decide ca asta e viitorul, ignorind ultimii 40 de ani de esecuri in domeniu. In viitor, paginile web vor trage concluzii despre tine pe baza cacaturilor pe care le postezi pe failbook si a geotag-urilor din pozele pe care le pui pe flickr. Daca ati folosit vreodata un sistem cu comanda vocala sau vreun gunoi care incearca sa interpreteze limbajul natural, probabil ca acum sinteti la fel de speriati ca mine. Aparent, s-a decis ca viitorul e asta, dar la scara universala; sisteme care reactioneaza la cuvinte-cheie, fara context, sau mai rau, care incearca sa inteleaga si contextul, pentru amuzament total. Si ca bonus, aceste sisteme vor fi scrise in Ruby de catre oameni care merg la prelegeri despre MVC si nu sint in stare sa tina in picioare un site gen twitter mai mult de 5 minute. Opriti internetu’, vreau sa ma dau jos.

In viltoarea conferintei, sau poate din cauza curentului facut de aia care tot intrau, ieseau sau doar bagau capul sa intrebe daca aici e camera unde se fac temele, conferentiarilor le-a scapat faptul ca printre ei se afla deja un “agent inteligent” care se straduia din rasputeri sa le arate potentialul web-ului semantic. Respectivul agent era un bot numit Cyborg, care credea ca lumea il pune sa caute chestii pe google atunci cind cineva scria “google”. De exemplu:

<Revelation> google buzz , yahoo pulse ambele esecuri..
<Cyborg> http://v-top-40.blogspot.com/2011/01/music-star-usher.html

<Revelation> google face asta deja
<Cyborg> http://www.youtube.com/watch?v=oqiGbTlQymU

<George> google o va duce la extrem
<Cyborg> http://www.euractiv.ro/uniunea-europeana/articles%7CdisplayArticle/articleID_18960/Lucian-Croitoru-In-2010-cresterea-economiei-va-duce-lacresterea-veniturilor-bugetare.-Creditarea-se-va-relua-dar-modest.html
<TheJudger> ignorati botul care a crezut ca vrei sa cauti ceva

Dar nu e nevoie sa privim asa de departe pentru a intelege ce dezastru ne paste. Am mentionat mai sus gunoaiele care incearca sa inteleaga limbajul natural – pai dragilor, trei sferturi din site-ul asta sint dedicate unui astfel de gunoi.

Cind a intrebat unu’ cum “vede” ce e intr-un director, Silviu s-a activat la cuvintul-cheie “a vedea”, fara sa inteleaga contextul. Silviul Semantic stie ca de vazut vezi cu ochii, asa ca i-a spus omului cum poate sa aduca pe ecran un geam care prezinta ochiului ce-i intr-un director. Cind a intrebat mesajflaviu cum schimba versiunea dintr-un exe, Silviu n-a inteles intrebarea, dar s-a activat la cuvintul-cheie “versionare”, si a pus-o de un FAQ (bine ca nu i-a zis-o p-aia cu versionarea in MDI). Cind a vazut ca doi useri de pe un forum ii spun ca bate cimpii, a corelat actiunile lor si a concluzionat ca ei sint de fapt o singura persoana. Ambele sale luari de pozitie impotriva noastra sint un lung sir de reactii pre-programate la cuvinte-cheie. Silviu are chiar si un modul de invatare si stie sa ceara detalii cind isi da seama ca nu intelege (foarte rar, din pacate, ca orice automaton).

Acum citeva zile se afirma pe programare.org ca un “agent inteligent” trebuie sa treaca testul Turing. Cu totii stim deja ca, gratie “inteligentei emotionale” cu care este programat, Silviu a trecut testul Kirk, o varianta a testului Turing dezvoltata de catre CNH Petrosani, asa ca si aici e cu un pas in fata propunatorilor web-ului 3.0.

Deci viitorul web-ului este Silviu Ardelean, “un micut robot capabil sa interpreteze tot ce te caracterizeaza”. “Sa interpreteze”, nu “sa inteleaga”. Cam de cacat, parerea mea.

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

Mineriada de la pagina 5

Posted in Premiul n00bel, Stand-up philosophy on March 3rd, 2011 by jos8cal

Citeodata unele afirmatii ma bintuie! Intrebarile sau raspunsurile ma plictisesc, dar afirmatiile ma ustura pe creier. De ceva vreme tot dau cu nidoflor pe urmatoarea afirmatie, care chipurile ar explica poza de mai sus:

Dupa cum se poate observa, la câte aberaţii spun, sunt “ignorat” de întreaga audienţă.

Afirmatia apartine protagonistului pozei, adica Silviu Virgula Ardelean si ar deslusi misterul paralelismului dintre masa si membrul superior. Dar eu nu pricep! Nu inteleg ce face Silviu acolo de atrage privirea intregii crisme.

Asa ca ma aplec spre domniile voastre, stimati trei cititori, (who touched me?) si va chestionez cu privire la ce credeti ca se intimpla sau discuta in poza aia? Pentru spiritele artistice, accept si poze explicatorii, ca nu-i asa, pina si Lumea a inceput cu unii privind la altii explicind poze pe pereti.

Cele mai bune explicatii sau poze isi vor urma propriul destin!

Tags: , , , , , , , ,