Siri așteaptă întrebarea.

Siri așteaptă întrebarea. (Siri - asistent virtual cu Inteligență Artificială)

La conferința ICEEFEST 2018 am asistat la un panel despre politică, internet, revolte și AI. La întrebarea mea paneliștilor “Cum arată sfârșitul democrației în contextul tematicii panelului” ei au arătat nedumeriți, să nu spunem că m-au considerat un țâcnit.

Mai jos voi încerca să răspund ce am avut eu în vedere. Stați cu mine.

Rezultatul electoral depinde în mare măsură de faptul cum candidații sunt arătați de mass-media. Odată cu popularizarea Internetului și a rețelelor de socializare tot mai mulți politicieni recurg la dialogul cu electoratul prin Internet. Pentru cei sceptici, în anul 2019 timpul petrecut în Internet va întrece timpul petrecut în fața TV-ului. Adică consumul neliniar de informație va întrece consumul liniar și centralizat (Radio/TV). De ziare nu mai vorbim, ele sunt duse.

Însă în epoca Internetului există o mare problemă cu informația, ea este mult prea multă. La început au fost multe search-uri care au dat faliment după ce a apărut google cu un nou algoritm de aranjare a informației (PageRank) și care practic a acaparat tot Internetul. Mai târziu Google a introdus un nou sistem, BrainRank. Atunci când cauți ceva informație pe o anumită temă, AI (Inteligența Artificială) decide ce rezultate vei vedea.

Pe de altă parte, Facebook-ul vine cu o altă invenție destul de revoluționară, News Feed. Unde informația curge spre tine, nu tu o cauți. Însă acest șir informațional la fel este generat în dependență de preferințele tale, prietenii tăi, timp și multe alte semnale care Facebook-ul alimentează EdgeRank-ul lor pentru a scoate ceva relevant pentru ochii tăi în timp ce tu faci scroll de pe mobil. Deci și aici șirul informațional va depinde sau deja depinde de AI pentru că Facebook investește resurse considerabile în acest domeniu.

Similar e și la Twitter, Youtube, Netflix... și alte servicii unde abundă informația, iar tehnologiile de growth hacking încearcă să te facă să revii și să revii pentru că îți arată doar ceea ce dorești.

Marea majoritate din noi având dispozitive mobile transmitem cantități enorme de date la companiile care produc telefoane sau aplicații. Acestea la rândul lor ne servesc informațiile care nouă ne plac.

Viralitatea revoltelor mult lăudate din Chișinău și #rezist din București este dependentă de diciziile AI-ului. AI decide cât de viral poate fi un eveniment sau grup, sau o postare; în dependență de numărul de like-uri, share-uri, comentarii, locație, timp… La un eveniment care a avut succes posibil sunt sute de evenimente la care organizatorii nu au reușit să adune lume. De ce? Pentru că creierul artificial a decis că nu se merită de promovat în news feed-ul oamenilor.

Facebook are atât de multe date despre fiecare din noi că își permite să genereze liste de oameni în baza unei alte liste de oameni (Lookalike). De exemplu, dacă vrei să-ți mărești numărul membrilor în partid, îi dai Facebook-ului lista tuturor membrilor de partid care au cont în Facebook și el îți face o altă listă de oameni care au viziuni similare, însă încă nu sunt membri de partid. Îți rămâne să plasezi un îndemn și să îi chemi în partid.

Scandalul Cambridge Analytica i-a făcut pe congresmeni să înțeleagă puterea unui sistem cu inteligență artificială și cum el poate influența alegerile. Alegeri care până mai ieri se făceau de pe ecranele TV-ului.

Deci sistemele bazate pe AI deja controlează fluxul informațional și totodată știu foarte mult despre comportamentul nostru.

În viitorul apropiat când majoritatea populației va fi în Internet (în unele țăre majoritatea deja este în Internet) partidele politice pot adopta o altă tactică, cea de simulare a candidatului cu cea mai mare probabilitate de câștig în dependență de preferințele electoratului. Vor lupta în a găsi candidatul, nu în promovarea lui. De aceea în viitor mult va conta brandul personal. La alegerile parlamentare lista candidaților se va face în dependență de simulările membrilor de partid care au cele mai mari șanse de câștig a electoratului. Sau se va încerca diversificarea listei. De exemplu, un candidat este popular printre bucătari, altul printre ingineri, al treilea pe instagram….

Democrația devine broasca care încetul cu încetul se fierbe în apă și nu-și dă seama că moare. Vom avea iluzia că am găsit candidatul cel mai bun însă cine este acest candidat îl va decide inteligența artificială.

În final vom ajunge să întrebăm de Siri pe cine să votăm.

Există vreo soluție pentru a evita această dependență de AI? Dacă aveți și voi una sunteți bineveniți să o lăsați în comentarii.

Eu am una. Vă aștept să o citiți în articolul viitor.

bell curve

Când fac un sondaj, organizatorii încearcă să aleagă eșantionul cât mai reprezentativ pentru ca sondajul să fie cât mai corect.  După ce se colectează un număr relativ mare de respondeți, se declară marja de eroare și se anunță în presă rezultatele sondajului. Atenție însă, marja de eroare este de fapt o eroare tehnică (adică câte % din oameni au greșit indicațiile). Aceasta nu e o eroare de la purul adevăr care sondajul trebuie să-l găsească. Recomandarea mea este ca această eroare să nu fie inclusă în slide-uri pentru a nu induce în eroare jurnaliștii.

Părerea mea subiectivă este că toate sondajele realizate până acum sunt făcute greșit. Vă explic și de ce.

Problema este în alegerea eșantionului reprezentativ.

Noi, oamenii, când încercăm să facem eșantionul ne străduim să inventăm câteva categorii de persoane, apoi vedem care este distribuția lor în societate și repectiv extrapolăm în eșantion.

De exemplu: Eșantionul e de 1000, iar studenți în țară sunt 5% înseamnă că în eșantion trebuie să avem exact 50 studenți, nici mai mult nici mai puțin.

Aceste categorii în domeniul Machine Learning se mai numesc features.  Noi, oamenii, încercăm să gândim ce categorii de oameni poate să voteze diferit de o altă categorie și să le includem în sondaj pe ambele; Machine Learning ia în vedere orice bifă care indică fiecare om și încearcă să și calculeze care anume din aceste bife influențează deciziile omului.

Extragerea features sau embed-urilor nu este o noutate în domeniul deep learning. Mai țineți minte cum Google Translate și-a inventat propriul limbaj de comunicare? Sau cum diacritice.ai plasează corect diacritice fără să știe măcar regulele limbii române?

Deci cum ar trebui să arate un sondaj făcut corect?

  1. Trebuie să colectăm cât mai multă informație despre persoanele care au votat în trecut și cum au votat ei.
  2. Crearea unor embed-uri în baza acestor date.
  3. Crearea unui sondaj și colectarea a cât mai multor respondenți.
  4. Eliminarea repondenților care nu sunt relevanți conform proporției de embeduri.
  5. Publicarea datelor statistice de la respondenții rămași.

Știu, veți spune că niciodată nimeni nu va declara cu cine a votat și cu atât mai mult o mulțime de bife care indică totul despre el. Sunt de acord cu voi.

Ne rămâne până atunci să ne jucăm de-a pseudo-sondajele.

4 Comments

Orice decizie care face o persoană normală în - Andrew Ng

Recent experimentam cu Inteligența Artificială, mai exact cu Machine Learning, mai exact cu Deep Learning… pentru geeks… mă jucam cu LSTM.

Mi-a venit un gând să încerc să corectez cu ajutorul LSTM diacriticele în limba română.

Am cumpărat cel mai puternic GPU găsit prin țară, un NVIDIA Geforce GTX 1080 TI. Fără GPU în Deep Learning nu faci nimic. Cumperi cât te ține buzunarul, altfel pierzi timpul. Am construit un model AI, am colectat texte în limba română de pe Internet. I-am dat GPU-ului să ”rugume” acest text și rezultatul l-am pus pe server online.

Țin să menționez că modelul AI nu are idee de limba română, cuvinte în limba română sau reguli de care să se conducă. Simplu, îi dai cât mai mult text și îl lași singur să se descurce. Serverul a muncit din greu câteva zile până am primit precizia uimitoare de 99.97%.

Boom! AI-ul a învățat să pună diacriticele în dependență de context. Încercați: "Langa casa mea nu creste iarba. Langa casa creste un copac." ;-)

Vedeți ce mi-a reușit pe https://diacritice.ai sau să vă instalați extensiunea Chrome.

Pentru curioși urmează detalii.

Machine Learning deschide noi perspective în rezolvarea problemelor care până acum nu se puteau rezolva pe cale algoritmică. Diacriticele sunt un exemplu.

Nu e ușor să construiești un algoritm care să corecteze diacriticele pentru că unele din ele reies din context. Exemplu: “Lângă casa mea crește un copac. Lângă casă nu este nimeni”. În același cuvânt casa și casă se pune sau nu diacritic în dependență de context.

Pentru a rezolva astfel de probleme îți trebuie multă informație. Eu am colectat tocmai 7.3 GB de texte în limba română scrise cu diacritice.

Apoi îți trebuie putere de calcul. În cazul meu, am cumpărat NVIDIA Geforce GTX 1080 TI, una din cele mai puternice cartele grafice găsite în Moldova. Antrenarea rețelei neuronale se face pe cartele grafice cu cele 3584 de CUDA procesoare care lucrează în paralel. Anume această tranziție de la procesor la cartele grafice a dat un imbold mare dezvoltării acestui domeniu.

Ne mai trebuie și un framework pentru a crea rețeaua neuronală. Eu am ales Keras pentru simplitate și Tensorflow pentru execuție.

Ideea este următoarea. Să căutăm în text literele a, i, s, t și apoi analizăm 30 de litere în dreapta și 30 din stânga și le transmitem la intrare în rețeaua neuronală, iar la ieșire îi spunem că trebuie să avem a, i, s, t, ă, â, î, ș, ț. De ce 30 din stânga și din dreapta? Am încercat și câte 15 caractere și câte 20, însă cu 30 am ajuns la un rezultat bun. Posibil că există și alte lungimi mai bune, rămâne pe viitor să mai încerc.

Deep learning se reduce până la urmă la înmulțiri de matrici (aka tensori). X*W + b = Y. Unde X este matricea de intrare (textul nostru codat într-o anumită formă), Y este rezultatul în baza căruia se învață, în cazul nostru e un vector cu 3 elemente căruia îi indicăm dacă este simbolul diacritic sau nu.

Cum transformăm textul în matrice? Îi atribuim fiecărei litere din alfabetul român o poziție în spațiul creat de noi. Pentru simplitate tot textul este convertat la minuscule.

alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r',
's','t','u','v','w','x','y','z',' ','.',',','!','?','-']

Facem o matrice 32x61 adica lungimea afabetului (32 caractere) și fereastra care noi o analizăm (61 caractere).

Să luam de exemplu textul:
langa casa creste un copac
Prima literă din șir 'l' este în afabet pe locul 11, deci primul rând în matrice va avea totul cu 0 și doar pe locul 11 va fi scris 1.
[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
A doua literă din șir 'a', al doilea rând va fi pe locul 0 scris 1 și restul va fi 0....
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
și așa încă 59 de rânduri.

Așa căpătăm matricea X care trebuie servită la intrare. Vectorul Y de la ieșire e din 3 elemente și poate fi [1, 0, 0] sau [0, 1, 0] sau [0, 0, 1]. Mai jos urmează explicația de ce Y anume așa este reprezentat.

Matricea W și vectorul b se inițializează cu niște valori arbitrare. Apoi în procesul de antrenare Deep Learning încearcă să schimbe valorile la W și b cât mai exact pentru ca la înmulțirea a cât mai multor X*W+b  să ne dea cât mai exact rezultatul indicat de noi în Y.

O problemă observată de mine aici e că dacă folosești LSTM doar într-o singură direcție, la texte scurte sau la începutul textului, apar dificultăți cu detectarea corectă. Așa că am trecut la LSTM bidirecțional. Modelele bidirecționale se mai folosesc și la recunoașterea vorbirii, traduceri, recunoașterea scrisului de mână. Adică indic rețelei neuronale cele 61 caractere de la dreapta la stânga și apoi de la stânga la dreapta.

Schematic arată așa:

Bidirectional LSTM

Codul exprimat în frameworkul Keras arată așa:

Modelul LSTM pentru corectarea diacriticilor în limba română.

Modelul LSTM pentru corectarea diacriticilor în limba română.

Pentru a face iterații cât mai multe testăm pe un text mai mic, am luat toate transcrierile de la privesc.eu (aproximativ 62 MB) și după un weekend am ajuns la performanța de 98.98% la training set, 98.97 la validation set și 97.71 la test set (1MB de texte din arhiva revistei contrafort.md)

Primul lucru încercat a fost ca la ieșire rețeaua să aleagă din cele  9 caractere, a, i, s, t, ă, â, î, ș, ț. Însă teoretic ar fi mai bine să ne dea răspunsul 0 sau 1. Adică dacă trebuie să fie diacritic pus pe locul 31 ori nu. Și deoarece noi știm că dacă pe locul 31 este i atunci și rezultatul 1, atunci pune î. Problema e că unii scriu cu â din a și la a avem 3 opțiuni a, ă, â. Pentru a minimiza spațiul de răspunsuri am ales vector cu 3 categorii [1, 0, 0] - nu este diacritic, [0, 1, 0] - este diacritic [0, 0, 1] - este â.

Dacă ați observat nicăieri nu indic sistemului că, de fapt,  caracterul diacritic care noi îl căutăm e anume pe poziția 31. Însă după câteva milioane de iterații el își dă seama singur :D .

După training cu Keras și Tensorflow urmărim rezultatul cu Tensorboard. Dacă nu avem overfit sau underfit e super, am găsit modelul corect. Am exportat modelul pentru a fi servit cu Tensorflow Serving. Am arendat pe Digitalocean un server de 5$/lună, am instalat Tensorflow Serving. Pentru a nu mă complica cu web serverul, am utilizat Flask.

Job done.

Vă invit să vă expuneți cu idei, sugestii, laude sau critici pe site-ul diacritice.ai.

PS: Ce urmează?
Versiunea curentă 1.1 e antrenată pe un volum de text de 1.4 GB. O epocă (iterație peste tot textul) durează aproximativ 15 ore. Urmează să încep să fac training pe cele 7.3 GB, însă va dura câteva săptămâni până voi face câteva epoci. Calitatea de 99.97% care o are sistemul acum e destul de acceptabilă. Nu mă opresc aici, sper să ajung la 99.99%

Coder Dojo la Tekwill.

Coder Dojo la Tekwill.

Dojo - cuvânt japonez, înseamnă locul iluminării.

Cercul de fotografie și aviamodelism au fost Dojo-ul generației mele. Pe care le așteptam în fiecare săptămână. Mi-am cumpărat și aparat foto și restul pentru a developa fotografiile alb-negru. Cele color erau peste puterile noastre.

La cercul de aviamodelism construiam avioane din lemn, piesă cu piesă și am învățat cum pornește, cum funcționează un motor cu ardere internă micuț-micuț.

Mai târziu au apărut calculatoarele și toți copii stăteau nopțile prin Internet cafenele. A fost o perioadă de lipsă de calculatoare, însă era oportunitate de comunicare cu oricine din lume.

Generația tânără acum are de toate: calculatoare, tablete, telefoane, youtube, e-book-uri. Le lipsește doar îndrumare.

Le lipsește un Dojo, un CoderDojo.

Dacă știi să contruiești ceva cu ajutorul tehnologiilor informaționale, să codezi, să construiești jocuri, site-uri, web design, aplicații pe IOS sau Android, te invit să aderi mentor la CoderDojo.

O mulțime de copii deștepți și doritori de cunoștințe te așteaptă să-i îndrumi.

Aici găsiți un formular de înregistrare. Veronica Eșanu (soția mea dragă) vă stă la dispoziție pentru mai multă informație.

"Bots are the new apps." Microsoft CEO Satya Nadella

Acum câțiva ani m-am lăsat de făcut aplicații pentru dispozitive mobile din simplul motiv că acest segment a devenit supraaglomerat.

Cu un cost per install de la $0.35 până la $3.35 pentru o aplicație care o dădea-i gratuită era destul de greu să-ți întorci banii în 3 luni (statistic un utilizator ține instalată o aplicație la el în dispozitivul mobil).

Cu timpul, oamenii au început a păstra aplicațiile rețelelor sociale și chat-urile. Deși unele rețele sociale permit să faci aplicații pentru ele, de obicei sunt doar pentru desktop. Însă în chat-uri integrarea e universală și este mult mai simplă. Prin boți!

Ce este un bot?

E o aplicație care rulează undeva pe un server și nu are o interacțiune directă cu utilizatorul. Comunică doar cu serverele sistemului de chat. Botul nu se instalează, trebuie doar să începi să comunici cu un anumit @nickname din acel sistem de comunicare.

Sistemele de comunicare, skype, facebook messange, kik, telegram… toate au metode de interacțiune cu boți și practic iau asupra lor toată comunicarea cu oamenii.  Rămâne doar să primiți mesajele, să le procesați și să dați un răspuns.

Începând cu anul trecut s-a început o bătălie între companiile mari pentru crearea de platforme pentru boți. Iată câteva: Microsoft cu luis.ai, IBM cu Watson, Amazon cu Lex, Google cu api.ai, Facebook cu wit.ai, Apple cu SiriKit.

Pe șleau spun, aceste platforme nu sunt așa de inteligente precum declară ei pe site.  Practic totul să reduce la crearea de către programator a unei liste de Intent-uri și Entities. Apoi, sistemul inteligent să poată din textul pe care îl scrie omul să aleagă un intent deja definit de programator, să separe o entitate și să dea răspunsul corespunzător.

O altă formă de comunicare este restricționarea răspunsurilor, unde persoana poate culege doar unele cuvinte sau apăsa unele butoane direct în chat.

O problemă și mai mare este că ele lucrează doar cu engleza sau cu limbile de circulație largă. Nu și cu româna. :(

Nu v-ați plictisit? Vă invit să citiți cum am construit bot-ul pentru privesc.eu care comunică în română și răspunde la orice întrebare despre serviciile privesc.eu.

După o lungă cercetare a platformelor de boți am dat peste http://dev.botframework.com/  . O platformă care combină orice chat cu orice platformă de inteligență artificială. Practic face toată munca de integrare a botului care îl faci cu mai toate sistemele de comunicare populare: SMS, Email, Skype, Telegram, Facebook Messanger, Slack…. Îți rămâne să faci logica și să apelezi după caz prin REST la alte servicii de procesare a informației textual cum ar fi: LUIS, Wit.AI, Watson, Lex…

Bot framework integration

Pentru a răspunde la întrebările frecvente la privesc.eu am apelat la serviciul https://qnamaker.ai de la Microsoft. Face un lucru simplu. Îi dai paginile cu FAQ-uri pentru a-și construi cu baza de date,  încearcă să înțeleagă ce întrebare îi adresează omul și caută răspunsul corect din lista de răspunsuri. Nu-ți generează el un răspuns, doar îți returnează cel mai probabil răspuns conform întrebării adresate.

După cum și am spus mai sus, aceste sisteme lucrează doar cu limba engleză. Am tradus în engleză cele 3 pagini de FAQ de pe privesc.eu și le-am dat la procesare. Am mai adăugat și unele întrebări care nu erau în FAQ. Am dat Train & Publish. Buh.. Gata de utilizare.

Codul acestui bot e destul de simplu și practic se reduce la chemarea altor servicii de procesare a informației.

Mesanger Controller

Prin REST, facem un apel la acest serviciu cu întrebarea în engleză și el ne întoarce în engleză răspunsul corect.

Deh.. moldovenii noștri nu prea știu engleza. Pentru a rezolva problema am utilizat https://cloud.google.com/translate/docs/. Traduce întrebarea din română în engleză, apoi întreb de qnamaker și apoi traduc răspunsul în română. Done.

Code for bot Privesc.Eu

Acest bot e destul de prostuț, nu prea înțelege întrebările. Doar 30 de întrebări-răspunsuri am în baza de date. Rezolvarea e simplă, vă rog pe voi să întrebați orice, botul îți va răspunde aiureli însă eu voi urmări logurile și voi adăuga răspunsurile.

Din botframework îmi rămâne să conectez cu sistemele de comunicare dorite, se face foarte simplu. De obicei se reduce la preluarea unor key-uri din sistemele de chat și salvarea lor în botframework.

Vă invit la o degustare testare.

1 Comment

Puișori
M-am întâlnit cu mulți politicieni care auzind de Silicon Valley, doresc să replice acest model la noi în țară. Pentru a evita populismul din partea lor, am identificat o serie de probleme și provocări care împiedică dezvoltarea ecositemului de startup-uri la noi.

  1. Startup-urile IT, e adevărat, pot fi lansate cu bani puțini. Un SRL se deschide ușor, însă e foarte greu să-l închizi. Doar 5% din startup-uri au succes, restul mor. E important să-ți închizi ușor afacerea.
  2. Pentru ca ulterior să poți atrage investiții, să dai cote părți și drepturi de vot, e nevoie să fie creată o companie de tip Corporate. Legislația învechită nu prea permite acest lucru.
  3. Legislația muncii din Moldova și Europa prea mult favorizează angajații, astfel ecosistemul de startup-uri practic nu există în această regiune. Antreprenorii au frică să angajeze.
  4. Sistemul de impozitare de tip TVA, fac toate startup-urile locale necompetitive cu cele americane.
  5. Dacă ai o companie care lucrează pe piața internațională trebuie să ții conturile bancare în valută, însă statul îți mai taxează odată conturilor în valută ca și profit, atunci când crește cursul leului. E adevărat că dacă scade cursul se dă la pierderii. Problema e că leul nu scade.
  6. Lipsa juriștilor cu cunoștințe în IT. (Chiar am asistat la o judecată unde 2 avocați și un judecător vorbeau aiureli în domeniul IT).
  7. Lipsa Angel Investors care să investească în startup-uri. Aceștia de regulă sunt persoanele care fac parte din foarte multe board-uri și contribuie la dezvoltarea noului startup prin intermediul relațiilor pe care le au.
  8. Antreprenori care nu au cunoștințele necesare pentru a înțelege cum lucrează investițiile. Le tratează ca pe împrumuturi bancare.
  9. Investitori puțini și cu gândire sovietică, atunci când îți dau bani, iar înapoi cer 51% din companie.
  10. Accesul la procesoarele de carduri internaționale practic inexistent (bine că Paypal a venit), astfel e foarte greu să-ți construiești o afacere digitală internațională cu sistemul de plăți local rudimentar.
  11. Lipsa acceleratoarelor.
  12. Suntem o națiune care nu știe să vândă. (spre deosebire de SUA sau Israel)

Rezultatul este:

  1. Companii de IT care au afaceri cu statul, având ca proprietari funcționari sau birocrați. Aceste companii de obicei fiind folosite la furtul banilor din buzunarul cetățenilor.
  2. Deși se vehiculează că 10% din PIB este generat de către ITC, în realitate doar 2% sunt generate de IT și 8% de comunicații (Orange, Moldcell, Moldtelecom).
  3. Marea majoritate a companiilor de IT sunt de tip outsource, adică primesc banii din afară doar atât cât să plătească salariile și taxele aferente.
  4. Chiar dacă se fac o mulțime de evenimente pentru crearea startup-urilor, de obicei vin aceiași concurenți. Iar după eveniment noua echipa de regulă se desființează.

PS: Doar cu Internet de calitate superioară nu poți face un startup.

Mining Rig

4x HD Radeon 7950 Cards mining rig


În secolul 13, Leonardo di Pisa, știut sub nickname-ul Fibonacci, unul dintre cei mai talentați matematicieni din istoria omenirii, a fost în Africa de Nord unde a învățat despre matematica arabă. Când s-a întors în Italia a scris o carte “Liber Abaci” unde a arătat beneficiile sistemului Hindu-Arabic de numerație. Pe acele timpuri se utiliza sistemul Roman de numerație.

Păi iată, noul sistem de numerație arabic, din cauza rivalității dintre biserica creștină și musulmani, a fost interzis de către autorități. Au fost invocate multe motive: ce se va întâmpla dacă toată prostimea va reuși să învețe a număra, că cifrele pot fi ușor modificate și pot fi manipulate cifrele contabile…. Cine utiliza sistemul de numerație era considerat criminal!

A luat tocmai 200 de ani ca Europa să înțeleagă avantajul noului sistem de numerație.

Am impresia că acum am revenit în Evul mediu. A apărut un nou mediu de comunicare - Internetul și tututor le-a întunecat mintea. Cele mai mari crime au apărut aici. Iar cei care fac legile aberează cum pot: percheziții informatice, spionare de trafic, protecția dreptului de autor, plasare de linkuri "piratate".

Mai nou, rușii vor să bage la pușcărie pe cei care produc bitcoini. Adică pentru faptul că rezolvă o puzzle matematic (SHA256) și sunt răsplătiți cu un număr să stea la pușcărie 7 ani.

Să o ținem tot așa, să mai batem pasul pe loc încă măcar o sută de ani până ne vom da seama!

PS: Linkul cu pricina și în engleză.

1 Comment

Password
Astăzi a mai avut loc o conferință din partea poliției dedicată acestei legi. Și cum jurnaliștii nu prea au citit acea lege, iar dacă și ar citi-o nu ar înțelege totul, pentru că se vehiculează cu niște termeni tehnici, voi încerca eu să lămuresc în cuvinte mai simple, aș zice țărănești.

Mai întâi de toate țin să amintesc că această lege este la cea de-a III-a încercare, până acum nici nu ajungea la guvern. La prima încercare, era ministru Dl Recean, am fost și eu la discuții unde providerii i-au spus pe șleau dlui ministru că autorii legii sunt duși cu pluta. La a doua încercare, Dl Gaburici deja știa unde-i șmecheria și a întors legea. Acum când a venit un guvern nou — iarăși se încearcă.

Ca și în cazul tuturor legilor deocheate, se face în felul următor. Se ia o problemă din societate, de exemplu pedofilia sau terorismul, care poate să nu fie foarte importantă și la acea problemă se mai adaugă niște articole dubioase. Se fac niște conferințe, press release-uri pentru a umfla oaia. Proiectul de lege fiind deja pregătit, se înaintează guvernului și parlamentului. Când unii oameni observă că ceva nu e în regulă, susținătotii legii contraatacă: ”Ești pentru pedofilie? Ești pentru terorism?”. Caz clasic de manipulare pentru a băga în lege ce articole dorești.

Trecem peste articolele cu pedofilie, unde se mărește pedeapsa, asta e binevenit și trecem direct la articolele dubioase.

  1. Se mărește pedeapsa pentru accesul la sistemele informatice, de la (1-3 ani) la (3-7) ani. În timp ce Statele Unitem, după cazul cu Aaron Swartz, au înțeles că au sărit calul cu pedepsele pentru accesul neautorizat la sistemele informatice.
  2. Percheziția informatică. Încă un articol dubios. În primul rând, cu greu îmi închipui un terorist care să nu utilizeze criptarea discului și parolarea telefonului, iar fără acordul lui percheziția este inutilă. Nimeni nu poate decripta datele, nici chiar poliția.
  3. Interceptarea și înregistrarea datelor informatice. Deși ministrul MAI a raportat la ședința de guvern că nu sunt necesare fonduri pentru a implementa această lege, sunt necesari bani enormi pentru ca providerul să-și facă upgrade la sistemele informatice pentru a satisface necesitățile poliției. Iar datele vor fi păstrate timp de 180 de zile pentru toți utilizatorii, nu doar pentru un presupus terorist care poate fi moldovean. Ca mai apoi la cererea poliției providerul să scoată din arhiva ce are despre acel client. (Uniunea Europeană a interzis această lege acum un an)
  4. Pedepsirea providerilor dacă nu comunică vreo ilegalitate. De exemplu cineva are un video la el pe servere. Practic se impune ca providerul să fie polițist.
  5. Impunerea providerilor să sisteze anumite pagini web care contravin unor criterii. Lista criteriilor, evident,  se va extinde într-o modificare ulterioară. Aici nu e clar care provideri, cei care hostează serverele sau cei care asigură transmisiunile de date. Pentru că un provider de transmisiuni de date, nu poate sista doar o pagină web, ci doar un site întreg sau un IP unde pot fi mai multe site-uri.

La prima vedere se pare că totul e ok… Creăm un suport legislativ și o infrastructură la provideri care ne vor permite ca nici un pedofil sau terorist să nu se folosească de infrastructura de telecomunicații a Moldovei. În realitate acesta e pasul 2, primul pas a fost ceva mai devreme, cel care ne aruncă într-un sistem totalitar care controlează Internetul.

Pericol și mai mare e că statul practic dă dreptul providerilor să acumuleze informațiile despre toți clienții lor, să fie un fel de SIS. Ghiciți ce se va întâmpla dacă în loc de baza de date a clienților cu nume, parole, IP, și adresa de domiciliu, cum a fost în cazul Starnet-ului, se va scurge baza de date cu informațiile despre toate comunicațiile tuturor, toate email-urile, toate parolele care au trecut prin trafic necriptat? V-ați închipuit? Ce veți spune atunci când veți afla că încă nici un terorist nu este din Moldova sau poate a și fost prins un pedofil, dar el, de fapt,  nu are idee ce este Internet?

Pasul 3 va fi simplu, la criteriile de pedofilie, terorism ș.a. vor fi adăugate încă unele criterii convenabile, iar la conferința de presă vor spune: ”Păi totul deja este făcut, noi adăugăm niște criterii noi, pentru a bloca unele site-uri neconvenabile puterii”.

Astfel vom ajunge în situația când poliția va veni la tine acasă și la vecinii tăi, vor lua toate calculatoarele, toate telefoanele, toate dispozitivele care au posibilitate de a se conecta la Internet. Eu personal cred că am vreo 30.

Întrebarea voastră ar fi: ”De ce să-mi ia mie și tuturor vecinilor din scară dispozitivele?”. Pentru că poliția deja face asta, și nu pentru terorism, nu pentru crimă cibernetică, nu pentru pedofilie. Știu caz real. Ci pentru că unul din vecini are Wi-Fi deschis, iar Starnet bagă wifi deschis pentru toți clienții săi, iar toți care îl văd sunt potențiali criminali. Și li s-au luat toate calculatoarele, telefoanele și încă după un an de zile nu le-au întors.

Dacă acum poliției îi este destul de greu să demonstreze dacă Dvs ați făcut ceva anume, prin legea nouă, ei au backup la provider, iar în lege e scris expres că dacă e emis ordin de la judecător pentru calculatorul Dvs, iar el are legătură cu providerul, atunci nu este necesar de alt ordin pentru a avea acess la celălalt sistem.

Țineți mine, dictatura nu vine peste noapte, vine gradual! Sindromul broaștei fierte!

PS: Opera de artă o puteți găsi aici.
PPS: În acest context poftim datele personale a 49 mln de turci.

1 Comment

HackersAzi, 19 decembrie 2015 pe Ziarul de Gardă a apărut un articol cu titlu "Centrul de Telecomunicaţii Speciale al R. Moldova l-a votat pe Plahotniuc prim-ministru. Lista postacilor de partid".

Și au început să curgă share-urile și comentariile depsre CTS capturat, despre utilizarea resurselor administrative, blablabla.

Pentru început vă spun că nu un fan al Dl Plahotniuc, însă așa articole manipulatorii mă scoate din sărite. Deci să le luăm pe rând.

1. Din titlu reiese că Centrul de Telecomunicaţii Speciale al R. Moldova l-a votat pe Plahotniuc prim-ministru. De unde? Conform textului de pe niște IP-uri care aparțin CTS-ului s-a votat masiv. CTS nu are de unde ști ce se petrece pe rețeaua sa internă, el într-o oarecare măsură protejează rețeau însă nu contra navigării normale a unui utilizator pe zdg.

2. "Această manipulare/falsificare a sondajului de pe zdg.md." Dragii mei de la zdg, orice sondaj se face conform ip-urilor unice care au votat, asta v-o spune orice studente de la IT. Deci dacă făceați aceasta de la CTS nu se vota masiv. Această situație cu voturile masive este absolut la orice sondaj, fie el pentru Plahotniuc sau Papa de la Roma.

3. "de câteva luni, știrile și investigațiile publicate pe zdg.md înregistrează tot mai multe comentarii care provin de la un număr restrâns de IP-uri", e normal să specificați că aceste IP-uri deja aparțin Moldtelecomului și nu CTS-ului.

Lumea mai puțin școlită tehnic își face concluzia, că o armată de postaci stau pe o instituție guvernamentală de care Șeful CTS-ului știe și îi protejează și ei fac postari de laudă lui Pahotniuc.

În realitate cineva de la un calculator a unei instituții de stat, deservit de CTS, a apăsat un buton, sau chiar și-a făcut un script în câteva minute să se apese singur (pentru că sondajul e varză tehnic) și care nu poate fi numit utilizarea resurselor administrative. Iar cu totul de la un alt provider, pentru utilizatorii casnici, stau niște postaci să scriu despre Plahotniuc.

În martie, la conferința F8, Facebook a adăugat posibilitatea de a face upload la video prin API. Un mic/mare progres. Imediat am implementat această funcționalitate pe site-ul privesc.eu sub forma de video citate.

Video citat, este o frântură de video cu conținut viral. Bine, nimeni nu poate garanta viralitatea unui video sau altul, însă una e sigur, probabilitatea ca să găsești un video viral e direct proporțională cu numărul de încercări.

Deci, trucul constă în a găsi un eveniment interesant de pe privesc.eu, apăsați butonul Citat și tăiați cu foarfeca un moment interesant. După aceea, postați pe wall-ul personal sau pe o pagină de pe Facebook. În câteva clipe citatul video va apărea pe Facebook ca video uploadat, nu ca embedat.

Acum încep a curge views-urile, live-urile, share-urile și comentariile. Și cu cât e mai mare engagement-ul cu atât facebook-ul îl distribuie mai mult. Pentru a mări engagement-ul privesc.eu automat include embedul cu acel video pe prima pagină de pe site-ul privesc.eu și totodată pe pagina cu înregistrarea evenimentului. Dacă ai un blog, poți include și tu acel embed.

Acum iată și viralul cu pricina.

Mai jos un screen despre viralitatea lui.
Privesc.Eu data from Facebook

Pentru comparație reach-ul de 525824 e mai mare decât toți moldovenii de pe Facebook, care e de 440000, adică au văzut thumnail-ul în newsfeed și o bucată bună din românii de pe Facebook. 187929 views sunt oamenii care au dat play la acest video. E comparabil cu auditoriul unui TV. Ca rezultat pagina Privesc.Eu s-a ales cu +1000 de fani noi.

Îți rămâne să găsești în cele peste 19 mii de evenimente un fragment interesant din domeniu tău de activitate și să alegi un citat.

Succes.