Feedback loop

Posted in Regula 0 on December 7th, 2015 by Mihnea

O sa rup un pic tacerea aici ca sa va infrumusetez acest inceput de saptamina cu o noua isprava a tovarasului Ovidiu Cucu. In ultimul timp, vajnicul militian duce o lupta acerba cu botii de spam care au luat cu asalt ograda expertilor. Din pacate insa, cind iti petreci tineretea in comitetul disciplinar al unei uzine comuniste redactind autodenunturi, autocritici si compendii de reguli, iti distrugi iremediabil partea din centrul limbajului care ii ajuta pe oameni sa faca diferenta dintre un postac onest si unul cu intentii capitalist-antisociale.

In fapt: utilizatorul haleema, originar pare-se din Bistrita-Nasaud, cu fix un post la activ, lanseaza o intrebare: “Cum fac o aplicatie similara cu File Explorer-ul din Windows, care eventual sa aiba caracteristici noi ca de exemplu view-uri multiple, taburi, paneluri docabile etc.” Intrebarea zace fara raspuns vreme de 9 luni, pina o vede Ovidiu si o ia personal: Windows, multi-view, docking, MFC, FAQ! Daca nu el, atunci cine? Si unde mai pui ca are si raspunsul potrivit, caci intimplator a scris un articol pe blog despre asta, acum mai bine de un an?

haleema intreaba

 

Din pacate insa, imboldul raspundac pe care l-a simtit Ovidiu nu era izvorit doar din pasiunea pentru MFC. Familiaritatea cu subiectul merge mai adinc, deoarece cu vreo 4 luni inainte, Ovidiu insusi se intrebase pe sine, in aceeasi sectiune a site-ului: “Cum fac o aplicatie similara cu File Explorer-ul din Windows, care eventual sa aiba caracteristici noi ca de exemplu view-uri multiple, taburi, paneluri docabile etc.

cucu raspunde

Observati vreo similitudine? Sa fie haleema un bot care reproduce alte postari de pe forum, ca sa para ca spune ceva coerent, ca sa poata apoi sa bage un link la Viagra in semnatura, sau la homepage? Greu de spus. Nu e ca si cum ar mai exista exemple pe forum. Si in fond, Ovidiu are chiar un protejat care raspunde la intrebari pe care nu le intelege copiind chestii gasite pe internet, si despre el stim ca nu e un bot, nu?

Nea’ Ovidiu, daca auzi un tiuit puternic in urechi de citeva zile, nu-l baga in seama pe doctorul care-ti spune ca e tinitus. Se cheama feedback si e ca atunci cind pui un microfon linga boxa la care e conectat, doar ca la matale s-a inchis circuitul prin intermediul forumului.

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

Incompetenta de miercuri dimineata

Posted in Premiul n00bel, Slagare internationale on October 5th, 2011 by Mihnea

Pe linga ziarul ce are pe post de editor-sef un bot (nu, nu ala), codexpertii au si o agentie de stiri de la tribuna careia informeaza Universul despre lucrurile care-i umplu de uimire si bucurie. Vislind prin torentul de platitudini si fantezii Metrosexuale marca Kanal 9, azi dimineata am dat de citeva cugetari programatoricesti ce cred ca au nevoie de un plus de mediatizare cum numai site-ul nostru le poate oferi.

Prima propunere codexpertica ne indreapta pasii spre reputata publicatie a doctorului Dobbs, unde reputatul Mark Nelson, ce ne-a mai delectat in trecut cu bijbiielile sale in lumea STL-ului, expune o metoda revolutionara de a automatiza login-urile in putty. Odiseea lui Mark zugraveste in culori tipatoare dirzenia unui erou pornit pe drumul consacrarii. El se ia la trinta cu toate obstacolele aruncate in cale-i de zei si soarta, descinde in pintecul bestiei si intr-un final o struneste magistral dupa ce-i umbla prin surse si-i infige un WM_COPYDATA direct in inima. Sigur, ce vrea el acolo se putea face un pic mai simplu folosind public key authentication, dar o poveste despre cum sa pui calea catre un fisier in setari SI ATIT nu e la fel de captivanta ca un poem epic pe 4 pagini despre perseverenta si viol.

Pentru a doua propunere raminem tot pe tarimul bunului doctor, caci Dan Saks, de profesie profesor profesionist, are o opinie si nu se teme s-o foloseasca. In fiecare secol se naste un geniu care schimba modul in care semenii sai privesc lumea. Dan isi depune candidatura pentru acest titlu cu un articol despre unde sa pui keyword-ul const. Pentru colectia de toamna-iarna 2000-2099, el ne propune un “stil neconventional”, spargind tiparele si preconceptiile pentru a redefini normalul si a lasa codul sa zburde liber si aspirational, scapat din ghearele ternei ambiguitati. Cam ca astea:

Practic Dan rezolva in acest articol ultima dar si cea mai mare problema a filosofiei esteticii gnoseologiei programarii. Generatiile viitoare nu-si vor mai pune intrebari despre CUM sa scrie codul, ci se vor preocupa doar de banalul CE sa scrie. Oricum, cred ca e timpul ca drdobbs.com sa se afilieze la AXTI, sa publice Regula 0 pe prima pagina si sa comaseze (sau consolideze, cum se zice acum) toate categoriile alea din stinga sub un singur stindard: “Working is the delight me, thinking is the disgust or revolting me”.

Ultima propunere a zilei ne trimite la un blog mesedenistic unde un indian neidentificat ne arata cum sa ne alegem algoritmul de sortare paralela. Intentiile sale sint bune, pina ajungem la cod si vedem ca singele indian apa nu se face:

std::vector<int> GetInputRandom(const size_t& numElems)
{
    std::vector<int> v;
    for(int i=0; i < (int)numElems; ++i)
    {        
        int e = i;
        if ((rand() % 2) == 0)
            e = -e;
        v.push_back(e);
    }

    std::random_shuffle(v.begin(), v.end());
    return v;
}

Sa-mi spuna si mie cineva de ce cacat ai vrea sa trimiti un intreg ca un pointer const, in loc sa-l trimiti direct. Obligi compilatorul sa puna intregul ala undeva in memorie (chiar si cind e o constanta), ca sa poata sa dea adresa lui catre functie, ca functia sa ia adresa de pe stiva si s-o dereferentieze ca sa obtina valoarea, iar adresa aia are fix aceeasi dimensiune ca intregul respectiv. Si e mai mult cod de scris. DE CE? De ce scriu oamenii “cod didactic” in halul asta, si de ce returneaza vectori by value, in loc sa-i trimita ca parametru? De ce nu face reserve sau resize pe vector, daca tot stie cite elemente va avea, si de ce isi da numElems ca size_t, daca stie ca ii trebuie ca int si il si casteaza la int cum il prinde? De ce acesti muisti invata generatiile urmatoare sa scrie cod in halul asta, si de ce sint lasati sa publice asemenea dejectii pe MSDN? Cine e seful astuia si de ce nu-l incuie intr-o pivnita fara internet, de unde sa nu poata otravi mintile fragede? Sau poate asa scrie indianul cod si in practica, si d-aia are nevoie Visual Studio de 5 ani ca sa porneasca?

Ca bonus, iata la ce se ajunge cind incepi sa returnezi vectori by value si pe drum vrei sa te dai si (cod)expert in C++11:

std::vector<int> sawtoothData(std::move(GetInputPreSorted(toothSize)));

Incredibil.

Acum vreo doua saptamini am mai vazut un articol (pe codeguru, parca) ce primise binecuvintarea codexpertilor in care un cretin explica pe 5 pagini cum sa faci un state machine si in tot codul pasa si returna vectori si string-uri by value. Mi-e lene sa dezgrop link-ul, dar cum pula mea ba? De ce au astia voie sa scrie articole?

Muie Internet.

 

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