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