Legislaţia privind SPAM-ul (comunicările comerciale nesolicitate)

Ce este SPAM-ul ?
Comunicările comerciale în România. Abordări greşite.
Legislaţia română privind comunicările comerciale.
Modalitatea în care se pot trimite comunicări comerciale legal.
Principiul Opt-In
Cum ne afectează SPAM-ul viaţa.
Acte normative

Ce este SPAM-ul ?

Un mesaj nesolicitat/nedorit transmis in masă unui număr mare de utilizatori este denumit comun SPAM. “Termenul SPAM desemneaza transmiterea masiva si uneori repetata a mesajelor electronice nesolicitate, mesaje avand de cele mai multe ori caracter comercial, de publicitate pentru produse si servicii, practicata in general in industria e-marketingului si de proprietarii de website-uri pornografice. SPAM-ul nu se reduce insa doar la comunicarile comerciale nesolicitate (SPAM-ul comercial), ci se aplica si altor comunicari electronice, unele fiind tentative de frauda electronica cu implicatii grave (scrisori nigeriene, phishing etc.). In general, expeditorul unor astfel de mesaje nesolicitate isi deghizeaza ori isi ascunde identitatea. SPAM-ul este asociat, de regula, cu transmiterea de mesaje prin intermediul postei electronice, insa acest fenomen poate fi atribuit si forumurilor de discutie sau mesajelor instantanee. Desi se pune adeseori semnul egal intre termenul de comunicare comerciala nesolicitata si cel de SPAM, cele doua notiuni nu se suprapun in totalitate” (Dan Cristian Georgescu – fost Preşedinte al Autorităţii Naţionale de Reglementare în Comunicaţii (ANRCTI))

Transmiterea de mesaje publicitare nesolicitate este un fenomen prezent pe internet de ceva vreme, ce a căpătat proporţii uriaşe de câţiva ani. Trimiterea de mesaje electronice publicitare (comunicări comerciale) nesolicitate este interzisă în România (cât şi în majoritatea ţărilor importante). În legislaţia română nu se
vorbeşte însă in mod explicit despre SPAM ci doar despre comunicarile comerciale, ce reprezintă doar o parte a mesajelor electronice nesolicitate. Răul pe care SPAM-ul îl face nu este cuantificabil pentru un singur mesaj. Daunele se pot vedea decât dacă privim întregul fenomen ce cauzează tuturor pierderi de timp şi bani prin prezenţa într-o proporţie mare a acestor mesaje în căsuţele poştale şi nevoia de a citi numeroase mesaje nedorite.

Comunicările comerciale în România. Abordări greşite.

Transmiterea de mesaje publicitare de către persoanele fizice sau juridice în România a apărut ca o alternativă la publicitatea clasică din dorinţa de a ajunge cu mesajul publicitar la un număr cât mai mare de utilizatori ai internetului, metodă apărută iniţial în Statele Unite.

Mesajele sunt rareori direcţionate către un public realmente interesat şi listele de distribuţie nu sunt întocmite având consimţământul destinatarilor, aceasta când nu se apelează la o firmă specializată ce-şi asumă responsabilitatea rezultatelor şi a respectării legii. Foarte puţină lume tratează acest subiect cu profesionalism pentru a se asigura de ajungerea campaniei publicitare la publicul ţintă dorit şi că întregul proces respectă legislaţia română în vigoare. Nu de multe ori legislaţia este chiar sfidată prin definiţii şi interpretări proprii ale normelor în condiţiile nerespectării lor, dar a prezenţei unei note de subsol prin care utilizatorul este informat că mesajul nu este SPAM sub argumente ce nu au temei legal.

Iată un exemplu al unei astfel de note de subsol:

<<Acest mesaj nu este SPAM. Conţine datele noastre de identificare şi instrucţiuni de dezabonare. V-a fost oferit din urmatoarele motive: aţi solicitat primirea ofertei noastre, sunteţi un client al firmei noastre, sunteţi în baza noastră de date ca urmare a unor corespondenţe anterioare, adresa Dvs. a fost selectată dintr-o bază de date la care aţi subscris, adresa dvs a fost facută publică prin afişări cu caracter publicitar. Ne cerem scuze dacă mesajul ajunge la Dvs. dintr-o eroare sau dacă acest e-mail nu va aduce informaţii utile. Dacă nu mai doriţi să primiţi mesaje din partea noastră, trimiteţi un mail cu textul “DEZABONARE”>>

Din start expeditorul SPAM-ului ţine să ne asigure că ceea ce tocmai am citit nu este SPAM, că ni s-a părut. Ne frecăm la ochi şi mai citim încă o dată întregul mesaj. Chiar dacă legislaţia din România nu defineşte termenul SPAM, se defineşte în schimb termenul de comunicare comercială. În cazul de faţă, corpul mesajului are un caracter publicitar, comercial, promovând anumite produse şi servicii şi este fără urmă de tăgadă o formă de comunicare. Prin urmare îl putem considera comunicare comercială din perspectiva Legii nr. 365/2002 privind comerţul electronic. Aşadar trebuie să respecte întocmai normele metodologice privind comunicările comerciale şi nu subpunctele care ne avantajează plus supoziţii şi interpretări proprii. Putem identifica lesne prevederi importante pe care acest mesaj nu le respectă:

  1. nu a fost obţinut acordul expres al destinatarului ori adresa de e-mail nu a fost obţinută în urma unei relaţii comerciale anterioare
  2. nu conţine în câmpul subiect cuvântul PUBLICITATE (scris cu majuscule)
  3. nu conţine toate datele de identificare ale expeditorului definite de lege deşi se afirmă acest lucru.

Motivele invocate pentru legitimarea mesajului nu stau în picioare:

- aţi solicitat primirea ofertei noastre (nu s-a solicitat acest lucru);

- sunteţi un client al firmei noastre (nu au existat relaţii comerciale anterioare);

- sunteţi în baza noastră de date ca urmare a unor corespondenţe anterioare (acest argument nu este suficient pentru a putea trimite comunicări comerciale);

- adresa dvs. a fost selectată dintr-o bază de date la care aţi subscris (consimţământul de primire a mesajelor nu este transmisibil. Dacă s-a dat consimţământul unui furnizor, nu înseamnă că se doreşte primirea de mesaje de la orice furnizor);

- adresa dvs a fost facută publică prin afişări cu caracter publicitar (se face confuzie între informaţia publică şi caracterul privat al e-mail-ului. Chiar dacă adresa de poştă electronică apare pe un site, acest lucru nu înseamnă că ea este afişată pentru a fi bombardată cu mesaje publicitare nesolicitate. Acesta este exact motivul pentru care a fost dată această lege, urmărindu-se stabilirea modului legal în care se pot transmite mesaje publicitare via e-mail).

Putem delimita analizând internetul românesc mai multe tipuri de comunicări comerciale nesolicitate:

  • newslettere (buletine informative) la care destinatarul a fost înscris fără acord prealabil.
  • Mesaje publicitare (oferte comerciale) trimise către liste de distribuţie alcătuite prin colectarea de adrese în mod ilegal din diverse surse (site-uri, email-uri, forumuri,
    achizitionare ilegală de la alţi operatori) fără legătură cu activitatea sau interesele destinatarului
  • Mesaje publicitare (oferte comerciale) trimise în mod repetat fără acord prealabil, având legătură cu activitatea sau preocupările destinatarului, nedorite însă de acesta
  • Stiri/comunicate privind lansarea de noi produse/servicii ce includ adeseori metode de inginerie socială (mesajul pare a veni de la o cunoştinţă)

Legislaţia română privind comunicările comerciale.

Prin comunicare comercială se înţelege orice formă de comunicare destinată să promoveze, direct sau indirect, produsele, serviciile, imaginea, numele ori denumirea, firma sau emblema unui comerciant ori membru al unei profesii reglementate; nu constituie prin ele însele comunicări comerciale următoarele: informaţiile permiţând accesul direct la activitatea unei persoane fizice sau juridice, în special pe nume de domeniu sau o adresă de poştă electronică, comunicările legate de produsele, serviciile, imaginea, numele ori mărcile unei persoane fizice sau juridice, efectuate de un terţ independent faţă de persoana în cauza, mai ales atunci când sunt realizate cu titlu gratuit;

Articolul 6 din Legea nr. 365/2002 prevede:

(1) Efectuarea de comunicări comerciale prin poşta electronică este interzisă, cu excepţia cazului în care destinatarul şi-a exprimat în prealabil consimţământul expres pentru a primi asemenea comunicări.

(2) Comunicările comerciale care constituie un serviciu al societăţii informaţionale sau o parte a acestuia, în masura în care sunt permise, trebuie să respecte cel puţin următoarele condiţii:

  • să fie clar identificabile ca atare;
  • persoana fizică sau juridică în numele căreia sunt făcute să fie clar identificată;
  • ofertele promoţionale, precum reducerile, premiile şi cadourile, să fie clar identificabile, iar condiţiile care trebuie îndeplinite pentru obţinerea lor să fie
    uşor accesibile şi clar prezentate;
  • competiţiile şi jocurile promoţionale să fie clar identificabile ca atare, iar condiţiile de participare să fie usor accesibile şi clar prezentate;
  • orice alte condiţii impuse prin dispoziţiile legale în vigoare.

(3) Comunicările comerciale care constituie un serviciu al societăţii informationale sau o parte a acestuia, atunci când acest serviciu este furnizat de un membru al unei profesii reglementate, sunt permise sub condiţia respectării dispoziţiilor legale şi a reglementărilor aplicabile profesiei respective, care privesc, în special, independenţa, demnitatea şi onoarea profesiei, secretul profesional şi corectitudinea faţă de clienţi şi faţă de ceilalţi membri ai profesiei.

(4) Furnizorii de servicii ale societăţii informaţionale care efectuează comunicări comerciale au obligaţia de a respecta prevederile alin. (1)-(3).

Este interzisă efectuarea prin poştă electronică de comunicări comerciale în care identitatea reală a persoanei în numele şi pe seama careia sunt facute este ascunsă sau în care nu se specifică o adresa valabila la care destinatarul să poată transmite solicitarea sa referitoare la încetarea efectuării unor asemenea comunicări.

De reţinut că legislaţia din România nu pedepseşte SPAM-ul ci doar comunicările comerciale nesolicitate sau nerespectarea normelor privind comunicările comerciale. Astfel mesajele de tip religios, politic, non-comercial, nu pot fi incadrate momentan din punct de vedere juridic.

Modalitatea în care se pot trimite comunicări comerciale legal.

Consimţământul pentru a primi comunicări comerciale poate fi obţinut în orice formă şi poate fi probat cu orice mijloc de probă. Sarcina probei revine furnizorului de servicii.

Consimţământul comunicat printr-un mesaj transmis prin poştă electronică este valabil exprimat dacă sunt îndeplinite cumulativ următoarele condiţii:

  • este expediat din cutia postala în care destinatarul doreste să primească comunicările comerciale;
  • subiectul mesajului este format din concatenarea textului “ACCEPT COMUNICĂRI COMERCIALE DIN PARTEA”, scris cu majuscule, şi numele sau denumirea persoanei în numele căreia se vor transmite comunicările comerciale.

Subiectul mesajelor transmise prin poştă electronică, care constituie comunicări comerciale, trebuie să înceapă cu cuvantul “PUBLICITATE” scris cu majuscule.
Comunicările comerciale trebuie să cuprindă cel puţin următoarele informaţii referitoare la persoana în numele careia sunt facute:

  • numele sau denumirea completă;
  • codul numeric personal sau codul unic de înregistrare, după caz;
  • domiciliul sau sediul;
  • numerele de telefon şi fax;
  • adresa de poştă electronică.

Destinatarul comunicărilor comerciale are dreptul de a-şi revoca consimţământtul de a primi asemenea comunicări prin simpla notificare a furnizorului.

Furnizorul are obligaţia de a implementa o procedură gratuită, accesibilă inclusiv prin mijloace electronice, prin care destinatarul să poată să îşi revoce
consimţământul.

Revocarea consimţământului prin mijloace electronice trebuie să-şi producă efectele în cel mult 48 de ore de la iniţierea procedurii.

Furnizorul trebuie să facă publică procedura privind revocarea consimţământului pe pagina proprie de internet şi în cadrul mesajelor care conţin comunicări
comerciale.

Dacă o persoană fizică sau juridică obţine în mod direct adresa de poştă electronică a unui client, cu ocazia vânzarii către acesta a unui produs sau serviciu, în conformitate cu prevederile Legii nr. 677/2001 pentru protecţia persoanelor cu privire la prelucrarea datelor cu caracter personal şi libera circulaţie a acestor date,
persoana fizică sau juridică în cauză poate utiliza adresa respectiva, în scopul efectuarii de comunicări comerciale referitoare la produse sau servicii similare pe care acea persoana le comercializează, cu condiţia de a oferi în mod clar şi expres clienţilor posibilitatea de a se opune printr-un mijloc simplu şi gratuit unei asemenea utilizari, atât la obţinerea adresei de poştă electronică, cât şi cu ocazia fiecarui mesaj, în cazul în care clientul nu s-a opus initial.

Principiul Opt-In

Cel mai important principiu care se regăseşte în toată legislaţia româneasca este că nu pot să fie trimise mesaje comerciale prin e-mail dacă ele nu au fost solicitate. Acest lucru înseamnă că trebuie să ai acordul fiecărei persoane care este în spatele unui e-mail pentru a primi comunicări comerciale de la tine. De asemenea, înseamnă că o adresă care este găsită public – fie pe internet, fie într-un ziar, fie în Pagini Aurii sau oriunde altundeva – nu poate fi folosită pentru a-i trimite mesaje comerciale, dacă nu a solicitat, în prealabil, acest lucru.

Principiul înseamnă şi că nu se poate trimite un prim mesaj, la care utilizatorul trebuie să se desubscrie dacă nu mai vrea să primeasca astfel de mesaje (acesta ar fi principiul Opt-Out care exista în SUA).

Principiul Double Opt-In presupune re-confirmarea acceptului beneficiarului în urma unei cereri anterioare de subscriere, din care identitatea sa nu a putut fi verificată. (beneficiarul trimite o cerere de inscriere la buletinul informativ prin intermediul site-ului, furnizorul trimite cererea de confirmarea primire comunicări comerciale la acea adresă pentru a se asigura că utilizatorul căsuţei postaţe doreşte intr-adevăr acest lucru, iar destinatarul trebuie să trimită înapoi acceptul).

Cum ne afectează SPAM-ul viaţa.

Mesajele electronice nesolicitate primite de o companie pot reprezenta chiar peste 90% din totalul e-mail-urilor. De aceea, spamul costă spaţiu de stocare pe servere e-mail, trafic suplimentar pentru livrarea lor către angajaţi, precum şi timpul de lucru al destinatarilor. În medie, fiecare utilizator poate pierde chiar şi 50 de minute pe zi pentru a verifica, sorta şi şterge mesajele nesolicitate. Nucleus Research un consultant independent a estimate costul primirii şi ştergerii mesajelor SPAM fără deschiderea acestora la 874 dolari pentru fiecare salariat.

Acte normative

  1. Legea nr. 365/2002 a comerţului electronic (art. 1 pct. 8, Art. 6)
  2. Legea nr. 506/2004 privind prelucrarea datelor cu caracter personal şi protecţia vieţii private în sectorul comunicaţiilor electronice (art. 12)
  3. Normele metodologice pentru legea comerţului electronic (art. 7-9)
  4. Ordonanţa nr. 130/2000 republicată privind protecţia consumatorilor la încheierea şi executarea contractelor la distanţă (art. 15)

————————————————————-
av. Alexandra Grigore (avocatmarta.ro)
ing. Lucian Sabo

stumbleupon digg rss

O ţară tristă, plină de umor

Ţară a contrastelor, ţara ţăranilor mutaţi la oraş, dezrobiţi de complexe, teamă de ridicol şi orice ruşine sub stindardul democraţiei înteleasă anarhic e totuşi ţara unde m-am născut, ţara viselor mele, a sufletului meu, a oamenilor buni, calzi, inimoşi, săritori, isteţi, profunzi şi plini de veselie. Ţara burtoşilor opulenţi, a obrazului gros, a incompetenţei, intoleranţei şi prostiei în formă pură dar şi ţara oamenilor chibzuiţi, modeşti, credincioşi, curaţi la suflet, atenţi şi demni de respectat. Ţara oamenilor obtuzi, pricepuţi la toate şi nimic, lăudăroşi dar incapabili. Ţara lenei, a lui „lasă-mă să te las” şi a lui „lasă mă că merge aşa”. Ţara lui Papură Vodă, ţara lu` Peşte. Ţara mea. Ţara noastră.

Ce s-a întamplat cu ea între timp? Curentul ăsta trendy-fancy, lipsa asta totală de interes, de miez, de direcţie, atâta superficialitate… E gandirea mea desuetă ?
Acum nu mai mergem la muncă, ci avem un giob bun. Când facem o şedinţă foto într-un loc deosebit, numit asta un photo-şuting într-o locaaţe cuul. Apropos – locaţie inseamnă chirie incă in DEX şi nu are sensul de loc. Ne îmbrăcăm din moluri (mall) şi ne facem de cap în cluburi şi paburi (pub) până dimineaţa, cu fluiere la gât şi morţi de beţi. Dansăm pe haus (house), clabin (clubbin’), gigei celebri (Gigel Tiesto, Gigel Aligator, Gigel Crocodil de Nil) ne încantă cu maniera lor de a uni bucăţi de ritm şi gângureli monosilabice cu celebra linie melodică Do Do Do Do Do Do Do Do şi….. Re. Ce-i cu romgleza asta? Ce-i cu scrisul asta pocit, amputat, în jargon internautic ? Ne pocim limba. Cam in felul asta se scrie pe messenger:
-nush dak mai vin
-dc
-tre să plek la bunika la tzara
-u 2?
-dap, culegem prune sa fac3m tzuica
-cool

Eu ma simt lăsat pe dinafară într-o comunitate restrânsă de oameni care încă mai pun preţ pe valoare, pe calitate. Învăţăm să identificăm oamenii de calitate, in lipsa unor elemente mai profunde după repere superficiale precum: genul de muzică preferat, cât de atent este la felul cum scrie şi se exprimă, la felul cum se îmbracă, la ce prieteni are, ce cărţi citeşte, cum îşi petrece timpul liber. Adică nişte detalii nesemnificative pentru calitatea omului, dar care îl definesc în fond… şi a dracului chestie, deşi incerc sa fiu cât mai deschis, se cam potriveşte…
In domeniul internetului fenomenul mesajelor publicitare nesolicitate (SPAM) a capătat proporţii monstruoase – circa 90% din mesajele ce circulă sunt SPAM. În practică determinarea SPAM-ului se face acordand scoruri unor indicii, care astfel adunate dau un scor de SPAM. De ex. 2 puncte ca e identificat de altii ca spammer, 1 pentru ca ai cuvantul viagra in text si 0.5 pentru ca ai folosit doar majuscule in subiect. La oameni cam acelaşi lucru. Pornim de la încredere şi adunăm indiciile care ne fac sa credem ca este ceva in neregulă cu acel om. Mi-e mai uşor să fiu ca SpamAssassin. „Marcheaza ca SPAM orice OM cu un scor mai mare de 5, apoi Discard.” :)

stumbleupon digg rss

Concepte noi pe web. Confuzii in legatura cu WEB 2.0

La o conferinta in 2004, Tim O’Reilly a conturat pentru prima data conceptul de WEB 2.0, ca fiind a doua generatie de comunitati web si servicii oferite pe web. Se dau ca exemplu retelele sociale, website-urile colaborative tip wiki, conceptul de folksonomie (aplicat prin tag-clouds). Toate acestea faciliteaza colaborarea si partajarea infiormatiilor intre utilizatori.

Cu aluzie la sistemul de denumire a modificarilor aplicate programelor pe calculator (versiuni), web 2.0 poate sugera o imbunatatire a web-ului. Sustinatorii acestui concept considera ca weblog-urile (stiute de mulţi drept blog-uri), semnele de carte create prin inteligenta colectiva (social bookmarking), website-urile colaborative tip wiki, podcast-urile video, feed-urile RSS, API-urile web, standardele web si serviciile online au contribuit major la raspandirea utilizarii internetului.

In prelegerea de deschidere a primei conferinte Web 2.0, Tim O’Reilly si John
Battelle au facut un sumar asupra a ceea ce considera ca fiind elementele cheie ale aplicatiilor Web 2.0:

  • the web as a platform (web-ul ca o platforma)
  • data as the driving force (datele reprezinta forta principala)
  • network effects created by an architecture of participation (crearea unor retele bazate pe o arhitectura de participare)
  • innovation in assembly of systems and sites composed by pulling together features from distributed, independent developers (a kind of “open source” development) ()
  • lightweight business models enabled by content and service syndication the end of the software adoption cycle (the so-called perpetual beta)
  • software above the level of a single device, leveraging the power of the “Long
    Tail”
  • ease of picking-up by early adopters

Cred ca nu mi se pare nimic spectaculos in conceptul asta WEB 2.0 pentru ca am
evoluat odata cu web-ul.
Dar am citit cu interes articolul lui O’Reilly si comentarii pe marginea
acestuia.
Lucrez din ’99 cu tehnologii web si le folosesc din ’96; nu ma pot minuna la
ceea ce toti spun schimbare, fiindca eu o percep ca pe o trecere fireasca a
timpului peste web, o maturizare si o evolutie daca vreti.
Mereu se vor inventa concepte noi, vor aparea idei si modele de urmat. Eu spun
noul val, fiindca versiunile sunt controlate si au data certa de lansare…
spuneti-mi data de lansare web 2.0 !
Eu unul nu pot vorbi despre o noua etapa fiindca totul s-a facut treptat; daca
as fi privit din exterior, poate m-as fi minunat ca inteligenta colectiva joaca
un rol foarte important pe web, dar era de asteptat.

M-am minunat de AXAJ cand a aparut, dar mi-am pus imediat problema
supra-folosirii, cum s-a intamplat cu intro-urle flash. Au aparut o gramada de
framework-uri AJAX care se misca ingrozitor de prost – greu le-as gasi o
utilizare. Prefer metode mai rapide, chiar daca nu asa spectaculoase. Apoi nu
toti au calculatoare atat de performante incat sa se comporte bine intr-un site
cu mult DHTML. Desi urmaresc cu atentie programe ca Visual Studio .net sau Delphi for PHP.

Fiind un fan declarat al conceptului RAD de la Borland, m-am bucurat cand am vazut Delphi for PHP.
Ca o paranteza, nu mai stiu acum ce inseamna pentru ei Delphi. Pentru mine insemna Object Pascal, IDE-ul si VLC-ul. Acum Delphi nu mai inseamna Object Pascal, iar VLC-ul win32 nu are nicio legatura cu framework-ul din Delphi4PHP. Oricum dupa instalarea programului, am incercat un exemplu dat de ei care umplea un listbox cu ceea ce scriam intr-un camp Edit. Din nefericire la mine nu functiona treaba, desi alte proprietati/metode le puteam folosi. Asadar am lasat deoparte Delphi for PHP, desi s-ar putea ca peste cativa ani sa merite banii. In fond este doar la prima versiune acum.

Trebuie sa recunoastem ca web-ul se apropie mult de a deveni o platforma, si
aceste noi tendinte web toti cred ca le aplicam in munca noastra.

Ideea de aplicatie s-a mutat catre web. Acum exista convertoare media gratuite online care fac inutile pentru un incepator aplicatiile de conversie. Google a lansat Google Docs, care ofera un editor text si de calcul tabelar, ambele cu facilitati colaborative. Exista aplicatii web diverse: clienti IM, editoare grafice, jocuri, playere, utilitare.

Scopul principal al unui site din punctul de vedere al utilizatorului e sa
aiba continut de calitate si sa fie cat mai usor de utilizat, si nicidecum sa
fie neaparat web 2.0.
Am impresia ca mai nou scopul este web 2.0, ceea ce este o tampenie totala.

Partea proasta cu web 2.0 este ca are prostul obicei sa isi asume diverse
chestii ce nu ii apartin in mod direct, de exemplu standarde ca CSS, tehnologii
ca AJAX sau look&feel-uri ca stilul Clean/Minimalistic.
Tocmai sustinatorii acestui curent observ ca fac confuzie intre ceea ce
reprezinta web 2.0 si tehnologia curenta care e doar o evolutie tehnologica
fireasca.
Web 2.0 inseamna “web-ul ca o platforma”… si asta spune multe, dar cam atat.
Nu inseamna ca daca folosesti AJAX, RSS, CSS si ai niste gradienti cum zicea
cineva pe lista WebExpert, site-ul e WEB 2.0.

Ca sa nu fiu gresit inteles: sunt incantat de directia in care a luat-o web-ul;
O’Reilly a fost inspirat cand a numit fenomenul web 2.0. Nu sunt multumit insa
de faptul ca _scopul_ devine WEB 2.0, inainte poate de a fi inteles acest
concept, doar pt ca e trendy-fancy. Nu sunt multumit ca se fac confuzii grave
dintre tehnologii si concepte.

stumbleupon digg rss

Trupa Trafic Blues Band in FiordPub

Trupa sibiana Trafic Blues Band a sustinut o cantare in Fiord Pub pe 21 decembrie 2007. Barul micuţ dar plin ochi de obisnuitii localului, care in mare parte au gustat blues-ul “greu” al celor de la Trafic, s-a dovedit a fi neîncăpător. Chiar doi prieteni au stat in picioare (lucru care nu i-a deranjat foarte tare). Au cantat o muzica destul de dificil de rumegat pentru o persoana neavizata, dar si un “sweet home alabama” care a infierbantat seara. Cel putin eu si Mihalcioiu am cantat la unison cu ei pe refren :) ). Tobarul era artist, dar locul era atat de stramt incat parca lovea cu bratele lipite de corp, iar chitaristul era foarte aproape cu chitara de capul unui tip care statea la o masa. Ce mai tura-vura – locul este extrem de stramt pentru o cantare.
Nu cred ca nu ar avea succes tipul asta de local in Targoviste, dar sa fie mai mare si mai lipsit de fum.

stumbleupon digg rss

Păreri despre sine, despre ceilalţi

Nu există calităţi sau defecte în forma pură. Ele sunt greşit dobândite prin comparaţie sau analogie, prin norme etice subiective aplicate unor obiceiuri statornicite denumite contextual aici morala.
Toti suntem câteodată răi/buni, egoişti/mărinimoşi, tăcuţi/comunicativi, nesăraţi/glumeţi, leneşi/ambiţioşi.
Şi am pus voit răul înainte pentru că atât de uşor – mult prea uşor – suntem „ştampilaţi” într-un anume fel, doar datorită unui eveniment nesemnificativ:
Nu vrei să stai cu mine în bucătarie => eşti rău. Ai uitat că trebuia să duci punga cu gunoi => eşti uituc.
Dar când aceste evenimente se întamplă des oamenii trag astfel de concluzii radicale, de cele mai multe ori pe bună dreptate.
Este cineva care nu spune despre guvernanţi că sunt hoţi şi proşti ?
Atâta timp cât le spunem cu scop caricatural, de a întări ideea, de a atrage atenţia asupra însuşirilor, nu văd în asta un pericol mai mare decât l-ar prezenta un pamflet, spre exemplu. Dar să crezi cu adevărat că indivizii sunt în mod pur răi, proşti, hoţi, e o abordare imatură, de clică imflamată, nocivă. Şi uite aşa se trece uşor în extremism, xenofobie, ură rasială.
Ku Klux Klan, Noua Dreapta, Al Quaeda. Ele pornesc de la astfel de prejudecăţi pe un teren fertil de nemulţumire, formând morala într-un cadru închis, controlat, modelând caractere, spălând creiere în chipul cel mai perfid.
Gândirea noastră colectivă, deşi nu funcţionează într-un mod similar cu cea a albinelor, are însă o foarte mare putere. Ea ne justifică faptele sau suntem judecaţi prin aceasta.

Aşadar vă propun ca atunci când puneţi pecetea asupra unor oameni să vă gândiţi de două ori daca vreţi sa fiţi radicali pentru a sublinia ceva, sau sunteţi pur şi simplu radicalişti.

Până acum am discutat despre părerile noastre în legătură cu ceilalţi.
Însă cel mai puţin obiectivi suntem cu noi înşine. Este suficient ca o fată să citească într-un horoscop obscur (toate-s obscure dacă mă intrebaţi pe mine) că zodia ei (adică toţi născuţi în luna martie, adică şi ea) este ambiţioasă, comunicativă şi idealistă că imediat găseşte motive pentru care ar fi întocmai. Şi nu este fals. Fiindcă toţi suntem cateodată ambiţioşi, comunicăm cu prietenii sau visăm la binele omenirii. Dar nu este de fapt nici în mod vizibil comunicativă, nici ambiţioasă nici leneşă, şi vorbeşte doar nimicuri. Fetei îi propun un exerciţiu simplu: să citească orice zodie, la întamplare. Oricum îşi va regăsi calităţile, şi de ce nu (e de bonton) să fim modeşti şi să recunoaştem în treacăt cateva defecte minore în acelaşi text.
Voi fi considerat misogin, anti-horoscopist. :) Misogin nu sunt, iar anti-horoscopist nu-mi pasă dacă ma consideră cineva.

stumbleupon digg rss

CRIOSWEB_HTMLCleaner pe hotscripts.com si phpclasses.org

CRIOSWEB_HTMLCleaner este o clasa PHP care incearca sa rezolve o problema des intalnita in domeniul editarii documentelor web folosind ca surse documente generate de editoare vizuale.
Clasa este folosita pentru a curata codul sursa HTML generat de etichetele si atributele superfluue, inutile.
O aplicabilitate speciala se poate imagina in randul CMS-urilor, dar nu numai.
Fiind nevoit sa folosesc tone de cod HTML generat de Microsoft Word, am creeat aceasta clasa, poate si fiindca nu am gasit la momentul respectiv nimic potrivit.
Ajunsa la versiunea 0.8, am considerat clasa suficient de matura incat sa poata fi publicata online. Desi de dimensiuni reduse, isi face treaba exemplar din punctul meu de vedere, mai ales in conjunctie cu extensia tidy, de care se poate lipsi, de altfel.
Am combinat puternica librarie HTML Tidy cu curatarea bazata pe expresii regulate. Am vrut o metoda simpla de a elimina etichetele (tag-urile) si atributele inutile (in principal stiluri) mentinand totusi compatibilitatea cu standardul W3C.

Nu se face verificarea sintaxei decat in conjunctie cu tidy, pentru ca unealta este destinata curatarii pana la cod HTML de baza, nu corectare, sanitizare sau verificare.

In conjuctie cu tidy, clasa poate aplica toate actiunile tidy (curatare, corectare erori, conversie in XHTML, etc), apoi optional toate actiunile clasei (eliminare stiluri, comprimare, etc).

Momentan urmatoarea metoda de curatare este implementata: tag whitelist/attribute blacklist.
Licenta este Creative Commons LGPL pentru uz personal , non-comercial.

Mai multe detalii aici:
http://luci.criosweb.ro/blog/2007/08/04/html-cleaner/

Clasa a fost aprobata de hotscripts.com si phpclasses.org, deci o puteti gasi si in cele mai importante ‘depozite’ de scripturi/clase:
http://www.hotscripts.com/Detailed/75250.html
http://www.phpclasses.org/browse/package/4225.html

stumbleupon digg rss

Cine a scris asta?

Nascuti la sfarsitul anilor 70 inceputul anilor 80, vedem acum in anul 2007 cum casa
parintilor nostri este de 50 de ori mai scumpa decat atunci cand au
cumparat-o si realizam ca noi o sa platim pentru casele noastre in jur de 50
de ani. Nu avem amintiri despre primii pasi pe luna, nici despre razboaie
sangeroase, dar avem cultura generala, pentru ca asta insemna ceva o data.

Suntem ultima generatie care a jucat “Ascunselea”, “Castel”, “Ratele si
v ana torii”, “Tara, tara! Vrem ostasi”, “Prinsea”, “Sticluta cu otrava”,”Pac
Pac”, “Hotii si vardistii”, ultimii care au strigat “Un doi trei la perete
stai”, ultimii care au folosit telefoanele cu fise, dar primii care am facut
petreceri video (inchiriam un video si stateam sa ne uitam la filme 2 zile
inchisi in casa) primii care am vazut desene animate color, primii care am
renuntat la casete audio si le-am inlocuit cu cd-uri.

Noi am purtat jeansi elastici, pantaloni evazati, geci de blugi de la turci,
iar cine avea firme gen Lee sau Puma era deja lider de gasca.

Noi nu am dat examene de Capacitate, nu am dat teste grile la admitere. Noi
am fost ultimii “Soimi ai Patriei” si ultimii “Pioneri”.

La gradinita am invatat poezii in romaneste, nu in engleza… Si am cantat
MULTI ANI TRAIASCA nu HAPPY BIRTHDAY la aniversari.

Am sorbit din ochi Sclava Isaura, Beverly Hills , Melrose Place , Twin
Peaks, Dallas .. si cine zice ca nu s-a uitat ori minte ori nu avea inca
televizor.

Reclamele de pe posturile straine ne innebuneau, si abia asteptam sa vina si
la noi inghetata Magnum, sau pustile alea absolut superbe de apa.

Intre timp, ne consolam cu Tango cu vanilie si ciocolata si clasicele
bidoane umplute cu apa de la robinet, care turnate in cap ne provocau
pneumonii.
Si uite un motiv bun sa nu mergem la scoala.

Noi am ascultat si Metallica, si Ace of Base, si DJ Bobo, si Michael
Jackson , si Backstreet Boys , si Take That, si inca nu auzisem de manele,
singurele melodii de joc fiind horele la chefuri, la care nimeni nu stia
pasii, dar toti dansam! Dar spre deosebire de copiii din ziua de azi, am
auzit atat de Abba, si de Queen, cat si de noile nume gen 50 Cent si Britney
Spears. Am citit “Licurici”, “Pif” Ciresarii, si am baut Cico si Zmeurata
si ni s-a parut ceva extraordinar cand au aparut primele sucuri “de la TEC”
fara sa ne fie teama ca “au prea multe E-uri”, iar la scoala beam toata
clasa dintr-o sticla de suc fara teama de virusi.
Noi am baut prima Coca-Cola la sticla si am descoperit internetul.

Noi nu ne dadeam bip-uri, ne fluieram sa iesim afara, noi nu aveam dolby
surround system, taceam toti ca sa auzim actiunea filmului, nu aveam
Nintendo sau Playstation ci jocuri tetris de care ne plictiseam la o luna
dupa ce le cumparam si le uitam pe dulap, pline de praf.
Abia asteptam la chefuri sa jucam “Fantanita”, sau “Flori, fete sau baieti”,
sau “Adevar sau Provocare”, sau orice ne dadea un pretext sa “pupam pe gura”
pe cine “iubeam”.

Noi suntem cei care inca au mai “cerut prietenia”, care inca roseam la
cuvantul “sex”, care dadeam cu banul care sa intre in farmacie sa cumpere
prezervative, pe care apoi sa le umplem cu apa si sa le aruncam in capul
colegilor, care am completat mii de oracole, sperand ca perso ana iubita va
citi acolo unde scrie “De cine iti place?” ca ne place de el/ea.
Este uimitor ca inca mai suntem in viata, pentru ca noi am mers cu bicicleta
fara casca, genunchiere si cotiere, nu am avut scaune speciale in masini, nu
am aruncat la gunoi bomboanele care ne cadeau din greseala pe jos, nu am
avut pastile cu capac special sa nu fie desfacute de copii, nu ne-am spalat
pe maini dupa ce ne-am jucat cu toti cainii si toate pisicile din cartier,
nu am tinut cont de cate lipide si glucide mancam, parintii nostri nu au
“child proof the house”, ne-au trimis sa cumparam bere si vin de la
alimentara, si cate un pachet de tigari de la tutungerie.
Noi am auzit cum s-a tras la Revolutie, noi am fost martorii a trei
schimbari de bancnote si monede, noi am ras la bancuri cu Bula, noi am fost
primii care au auzit-o pe Andreea Esca la Pro TV, noi suntem cei care mai
tinem minte emisiunea “Feriti-va de magarus”.
Suntem o generatie de invingatori, de visatori, de “first-timers”…

Daca citesti si ai cazut macar un pic pe ganduri, esti de-al nostru!

stumbleupon digg rss

HTML Cleaner

How many of you needed to clean up those messy MS Word files in order to integrate them into valid W3C pages, or just integrate them in the overall design ?
I’ve looked for a good HTML Cleaner and didn’t find a good free one.

Meanwhile, I’ve developed my own HTML Cleaner class in PHP, because I needed to clean up tons of word generated code in that time.

I’ve combined the strong HTML Tidy library with my own regular expression-based cleaning algorithms. I wanted a simple method to strip all unnecessary tags and styles yet to keep it W3C standard compliant.

Syntax checking is being done only when using Tidy.
Note that this tool is designed to strip/clean useless tags and attributes back to HTML basics and optimize code, not sanitize (like HTMLPurifier).

Without the tidy PHP extension, the class can:
- remove styles, attributes
- strip useless tags
- fill empty table cells with non-breaking spaces
- optimize code (merge inline tags, strip empty inline tags, trim excess new lines)
- drop empty paragraphs
- compress (trim space and new-line breaks).

In conjunction with tidy, the class can apply all tidy actions (clean-up, fix errors, convert to XHTML, etc) and then optionally perform all actions of the class (remove styles, compress, etc).

Currently the following cleaning method is implemented: tag whitelist/attribute blacklist

Properties:

var $html;
var $Options;
var $Tag_whitelist=‘<table><tbody><thead><tfoot><tr><th><td><colgroup><col>
<p><br><hr><blockquote>
<b><i><u><sub><sup><strong><em><tt><var>
<code><xmp><cite><pre><abbr><acronym><address><samp>
<fieldset><legend>
<a><img>
<h1><h2><h3><h4><h4><h5><h6>
<ul><ol><li><dl><dt>
<frame><frameset>
<form><input><select><option><optgroup><button><textarea>’
;
var $Attrib_blacklist=‘id|on[\w]+’;
//array of inline tags that can be merged
var $CleanUpTags=array(‘a’,‘span’,‘b’,‘i’,‘u’,‘strong’,‘em’,‘big’,‘small’,‘tt’,
‘var’,‘code’,‘xmp’,‘cite’,‘pre’,‘abbr’,‘acronym’,‘address’,‘q’,‘samp’,
‘sub’,‘sup’);
var $TidyConfig;
var $Encoding=‘latin1′;

$this->Options = array(
                        ‘RemoveStyles’          => true,        //removes style definitions like style and class
                        ‘IsWord’                => true,        //Microsoft Word flag – specific operations may occur
                        ‘UseTidy’               => true,        //uses the tidy engine also to cleanup the source (reccomended)
                        ‘CleaningMethod’        => array(TAG_WHITELIST,ATTRIB_BLACKLIST),       //cleaning methods
                        ‘OutputXHTML’           => true,        //converts to XHTML by using TIDY.
                        ‘FillEmptyTableCells’ => true,  //fills empty cells with non-breaking spaces
                        ‘DropEmptyParas’        => true,        //drops empty paragraphs
                        ‘Optimize’                      =>false,                //Optimize code – merge tags
                        ‘Compress’                      => false);      //trims all spaces (line breaks, tabs) between tags and between words.

// Specify TIDY configuration
$this->TidyConfig = array(
       ‘indent’         => true, /*a bit slow*/
       ‘output-xhtml’   => true, //Outputs the data in XHTML format
           ‘word-2000′          => false, //Removes all proprietary data when an MS Word document has been saved as HTML
           //’clean’            => true, /*too slow*/
           ‘drop-proprietary-attributes’ =>true, //Removes all attributes that are not part of a web standard
           ‘hide-comments’ => true, //Strips all comments
           ‘preserve-entities’ => true// preserve the well-formed entitites as found in the input
           ‘quote-ampersand’ => true,//output unadorned & characters as &amp;.
           ‘wrap’           => 200); //Sets the number of characters allowed before a line is soft-wrapped
 

Methods:

function RemoveBlacklistedAttributes($attribs) //removes specified attributes
function cleanUp($encoding=‘latin1′) //actual cleanup function
 

See it in action:
http://luci.criosweb.ro/scripts/HTMLCleaner/
Download latest version

Licenced under Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported (http://creativecommons.org/licenses/by-nc-sa/3.0/)
for personal, non-commercial use

For commercial use one developer licence costs 15 EUROs

Changes:
v.1.0
-taken from RC6

v. 1.0 RC6
-added option to apply tidy before internal cleanup
-added function TidyClean() that cleans only with Tidy the source from html, modifying it
-changed license to Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported

v. 1.0 RC5
-tidy cleanup works also with PHP 4.3 now. Correction: class is compatible with PHP >=4.3. PHP 5 recommended. Basic cleanup (no tidy) can work with earlier versions of PHP 4
-removed drop-empty-paras option from default tidy config since there is already an internal drop-empty-paras mechanism
-Optimize now defaults to true since is very useful
-new default tidy config options:
‘preserve-entities’ => true, // preserve the well-formed entities as found in the input (to display correctly some chars)
‘quote-ampersand’ => true,//output unadorned & characters as & (as required by W3C)
-default Encoding set to latin1

v. 1.0 RC4
-the class is now compatible with PHP 4.4 or higher (maybe 4.0, but never tested)
-minor bugfix for Optimize (loop until optimized now works correctly)

v. 1.0 RC3
-cleaning is now done case insensitive
-improved optimize, removed EXPERIMENTAL tag
-default tidy config now sets word-2000 to false

stumbleupon digg rss

javascript isset()

Have you ever wanted to test the existence of a javascript variable
(an array item for example) ?
Just like in PHP, I’ve found a method to do this.

The function returns true if the variable is set or false if the variable was not set.
A variable to be set must be initialized.
The starting point was that an uninitialized variable has the type ‘undefined’.

A basic method can look like this:

function isset(varname){
return(typeof(varname)!=‘undefined’);
}
 

Some problems appear with this implementation, as Glen reported.

One problem is that when you pass an undefined variable, javascript throws an exception.
The other problem is that function member names can mess up the detection. (ex: pop() for array)
So here is a modified version. Please note the try/catch trick:

<script type="text/javascript">

function isset(varname)
{
try
{
var t = typeof(varname);
}
catch(e) {return false;}

if(t!==‘undefined’ && t != ‘function’) return true;
else
 return false;
}

var global_var = new Array();

function test()
{
var local_var = "xx";

try
{         
document.writeln("Test for function name (should be false) global_var[\"pop\"].Answer: " + isset(global_var["pop"]) + "<br>"); // returns false – as global_var.pop() is a function
}
catch(e) {alert(e) /*code for not set*/}

try
{         
document.writeln("Test for global var (should be true).\nAnswer: " + isset(global_var) + "<br>"); // returns true as global_var is set
}
catch(e) {alert(e) /*code for not set*/}

try
{         
document.writeln("Test for defined local var (should be true).Answer: " + isset(local_var) + "<br>"); // the script does not support testing local vars… always returns false
}
catch(e) {alert(e) /*code for not set*/}

try
{         
document.writeln("Test for bogus var which is not defined (should be false).Answer: " + isset(bogus) + "<br>"); // returns false as bogus var is not defined
}
catch(e) {alert(e) /*code for not set*/}

}

test();

</script>
 

stumbleupon digg rss

javascript nl2br

After many torments while finding a working nl2br() javascript function, i came across this idea…

For those that are not familiar with the nl2br function from PHP, this simply converts regular line breaks (carriage return ASCII characters) to HTML breaks.

The function converts to XHTML format: <br />

Here is the code:

function nl2br(text){
text=escape(text);
return unescape(text.replace(/(%5Cr%5Cn)|(%5Cn%5Cr)|%5Cr|%5Cn/g,‘<br />’));
}
 

The function uses regular expressions to find all carriage return occurrences.

This can be \r\n or \n\r or \r or \n.

Why escape and unescape? Just because on a text with quotes the regular expression crashes. To be sure everything will be ok, i’ve escaped all special characters and then return the unescaped HTML-break-based content.

To preserve Unicode characters you must use urlEncodeComponent and urlDecodeComponent instead of escape and unescape.
Support for these functions was added with javascript 1.5, so only modern browsers would know about this.

The function may look like this:

function nl2br(text){
if(urlEncodeComponent){
        text=urlEncodeComponent(text);
        return urlEncodeComponent(text.replace(/(%5Cr%5Cn)|(%5Cn%5Cr)|%5Cr|%5Cn/g,‘<br />’));
        }
else{
        text=escape(text);
        return unescape(text.replace(/(%5Cr%5Cn)|(%5Cn%5Cr)|%5Cr|%5Cn/g,‘<br />’));     
        }
}
 

replace was introduced in javascript 1.2 as far as I know…

Have fun using this snippet…

stumbleupon digg rss