Uncategorized

Audio Social Network

Am o dragoste aparte pentru a crea produse pentru consumatori, pe de altă parte urăsc să fac soft pentru enterprise. 

SpamBully, Camera Genius, Privesc.Eu, diacritice.ai, Invat.Online, sunt doar cateva din produsele care au avut succes. Evident că multe din proiectele mele au avut eșec, dar asta nu mă oprește să revin la ele, peste ani, din nou. 

Unul din proiectele care am investit foarte mult timp și bani a fost Joketastic, o rețea socială audio pentru bancuri. L-am creat prin 2012. Chiar am fost și în Sillicon Valley și am pitch-uit investitori. Până la urmă l-am închis. Concluzia că rețelele audio încă nu sunt înțelese, poate în viitor. Radu Chivriga îmi aducea aminte cu orice ocazie să revin la el și să-l refac.

Un alt caz l-am avut în martie 2020, când a început pandemia și oamenii erau forțați să stea acasă, însă mulți doreau să comunice. Astfel pe platforma privesc.eu am construit niște beciuri virtuale unde lumea vorbea între ei. Mare mi-a fost mirarea că acele beciuri virtuale durau până la 5 ore de discuții aprinse, iar o mulțime de oameni ascultau online, dar nu participau la discuții.

Aceste 2 cazuri din trecutul meu nu-mi dădeau pace, până în momentul când am aflat de Clubhouse la sfârșitul anului 2020, iar prin ianuarie am reușit să-mi fac și un cont pentru a mă convinge că anume așa lumea se comportă cum intuiam eu. M-a convins că timpul a venit și pentru rețelele sociale audio.

Într-o sâmbătă, într-o oră, am făcut un app iOS care lucra pe agora.io. Le-am dat aplicația lui Alex Mânza și Radu Chivriga și am avut o discuție de vreo oră la care m-am convis că plaforma audio lucrează superb.

Deci, m-am hotărât să fac iar o rețea socială audio, din simplu motiv că acest segment abia acum se descoperă și se poate face foarte multe inovații. M-am pus în regim de sprint/maraton și am hotărât să construiesc Ascult.Eu.

Notă: Mai departe urmează înjurături tehnologice 😀

Am început cu backendul. Este făcut pe asp.net core 5, și hostat pe windows azure, în instance pe linux. Baza de date nerelațională este hostată pe Cosmos DB, probabil cea mai rapidă baza de date din lume și autoscalabilă. 

Când ai mai multe webservere de obice se folosește un serviciu/server de cache comun, aici am folosit Redis, un microservice din Azure.

Pentru comunicarea realtime între utilizatori și server, adică ridicarea mânii, microfon activ, intrarea și ieșrile din room am folosit SignalR, tot de la Azure.

Visual Studio 2019, și template-urile mi-au permis să fac Api pentru backend în 2 zile, inclusiv testarea rapidă prin swagger și postman.

Setările administrative au durat vreo oră. Domen-ul, configurarea CDN-ului în Azure, Cloudflare pentru cache, cumpărarea de email hosting la Google și setarea MX-urilor. Nimic complicat.

De luni, am început să fac aplicația pe iOS. Am ales special iOS, pentru că tocmai terminasem versiunea la iOS pentru privesc.eu pe o tehnologie mai nouă de a scrie UI/UX care se numește SwiftUI.  Off, cât de mult am așteptat eu așa tehnologie să apară, până la ea programatorii aveau un coșmar să scrie UI pentru aplicații. 

Timp de 7 zile am transpus Api din backend în UI. Unele funcționalități cum ar fi evenimente și comunități sunt implementate în aplicație însă ascunse, pentru moment. După 7 zile am pus aplicația pe TestFlight, un serviciu de testare de la Apple care îți permite să distribui aplicația ta fără a fi publicată în App Store. Peste 80 de oameni au descărcat aplicația și am făcut primele teste, au fost unele crash-uri, dar din fericire Firebase Crashlytics le-a colectat pe toate și am găsit imediat codul unde se petrecea crash-ul. Era unul banal.

Push notificările le trimit prin Firebase de la Google.

10 zile, a durat de la scrierea primului cod până la testarea unui room cu toți prietenii mei care au venit să se joace cu aplicația. Mulțumesc lor, am inspirat încă o doză de entuziasm și am pornit la drum să fac Android-ul.

Android-ul a durat ceva mai mult, îl cunosc mai puțin, dar și tehologiile lor sunt cumva în urma iOS-ului. Am folost Jetpack Compose pentru a crea UI, e cumva similar cu SwiftUI de la iOS. Jetpack Compose e încă în Alpha versiune, practic zilnic fac update, nimic documentație. Cinstit să vă spun, dacă Google nu avea această tehnologie nici nu mă apucam de Android. 

Jetpack Compose și SwiftUI, practic m-au făcut să fiu de 10x mai rapid decât alte frameworkuri UI. 

Peste 14 zile de programare în Kotlin, deja începusem să mă consum, Agora.IO și WebRTC nu prea vroiau să lucreze, în plus era și mai greu de testat pentru de fiecare dată trebuie să pornești cel puțin 2 telefoane pentru a testa audio. Aproape dupa 3 săptămâni am reușit să fac și android-ul să meargă, și însă nu sunt sigur că merge totul ok.

Audio, căluțul din spatele la Ascult.Eu, e făcut pe serviciu de voice chat de la Agora.io, adică acelaș serviciu care stă în spatele și la Clubhouse. Spre deosebire de clubhouse, eu am făcut o ajustare. Doar cei care vorbesc, se aud pe serviciul agora.io, pentru care se plătește per minute per user, iar conversația se face restream pe un server hostat pe digital ocean Ant Media. De acolo streamul audio merge spre ascultători. Aceast mi-a permis, după calculele mele să am cheltuieli de 25x - 30x mai mici decât ce de la clubhouse, tradeof e că ascultătorii aud cu întârziere de 2 secunde ce vorbesc speakerii.

Pe lângă Clubhouse, au mai apărut și alți jucători ca Twitter Spaces, Telegram audio, Stereo, probabil vor apărea și mai multe. Ascult.Eu se orientează mai mult pe persoane identificabile, cu nume real și fotografii reale, probabil voi face enforcement ca să pui selfie. Asta nu e un moft, dar consider că în comunicare audio, toți participanții trebuie să fie identificați, fără anonimi, fără trolli. Oamenii, room-urile, evenimentele comunitățile sunt restricționate după limbile de comunicare.

Topul celor celebrităților se face simplu. Cei vobesc în fața la câtor mai mulți oameni acela are mai multe ore/atenție și respectiv se ridică în top. Followerii sunt doar un proxy pentru a genera ore/atenție.

După aceste zile, în care lucram câte 14 ore pe zi, am devenit foarte extenuat. Mi-a trebuit încă o săptămână să nu fac nimic pentru ami reveni. Deci, nu vă prea recomand un așa sprin/marathon.

Discuțiile din camerele pe ascult.eu au fost foarte utile. Am cules o mulțime de idei. Le mulțumesc tuturor pentru aport, le voi implementa cât de curând posibil.

Dacă aveți idei, sunteți bineveniți  să facem împreună viitorul radioului.


Mulți din voi ați observat graficele cum se dezvoltă pandemia. Spre surprinderea multora aceste grafice prezic destul de exact ce se va întâmpla. Nu e nici o magie aici, sunt niște formule matematice în care se ajustează niște coeficienți. Aceste formule lucrează la numere mari. Formule de probabilități și statistică se aplică și pentru alte domenii nu doar cum se propagă virsul, ci și cum se propagă o istorioară.

Zi de zi, oamenii comunică între ei cu miliarde de istorioare, unele dispar iar altele se propagă cu o viralitate uimitoare. Exact ca și virusul care devine pandemie, unele istorioare devin religii.

Dealungul istoriei, milioane de istorioare puteau deveni religii, și doar unora le-a reușit. Exact ca și în cazul virusului, ele au avut succes doar din cauza că au găsit balanța potrivită pentru a se propaga, nici prea fake dar interesante. Iar celelalte miliarde de mutații/istorioare nu a reușit.

Pe parcursul transmiterii virușii mutează, din foarte agresivi devin mai puțini agresivi. Exact ca și religia, pentru a se propaga mai ușor, intră în cultura noastră, în obiceiuri șe ajustează tehnologic. Focul haric, folosing chimia, barometru pentru a prezice ploaia… Inventează noi feluri de distracții sau folosește invenția tiparului, radioului, televiziunii și a online-ului pentru a se propaga.

În concluzie, toate religiile sunt la fel, e pur și simplu o reușită a unor istorioare care au prins la public și iau infectat mental. Religia pentru unii e o metodă de a face bani iar alții mai răi o folosesc pentru a se mențile la putere, exact ca și în cazul virusului.

PS: Iată o carte de care am dat căutând o imagine relevantă acestui articol, pentrul al face mai viral.

Toți plătim taxe, nu și toți sunt satisfăcuți cum ele sunt cheltuite. Taxele noastre se colectează centralizat și se distribuie centralizat. Mai bine zis fiecare instituție a unui stat își face un buget și apoi deputații îl aprobă. Nu neapărat e cea mai bună metodă de a intui ce le trebuie cetățenilor care au plătit acele taxe.

O ideie simplă, ar fi, ca orice instituție publică să-ți poată deschide pentru orice proiect câte un cont trezorial. În care să specifice unele date despre proiect și câți bani sunt necesari pentru a implementa acel proiect. De exemplu o grădiniță vrea să renoveze sala de muzică. O școală vrea să construiască un teren de sport. Un anumit drum să fie reparat. Să fie zeci de mii de astfel de proiecte care sunt create de instituțiile publice și plasate online dar totodată și promovate offline, prin QRCoduri la ușa de la grădiniță/școală/pe drum...

Iar cetățenii să poată transfera taxele lor scanând acel qrcode sau intrând online și semnând digital de pe telefonul mobil. Cumulativ să permitem oricărui cetățean, de exemplu 50% din taxele lui, să le redirecționeze unde el dorește.

Astfel decentralizăm cheltuirea taxelor noastre și motivăm ca cetățenii să declare și să ajute cu taxele lui problema care îl doare cel mai mult.

Un scenariu la renovarea unei grupe în grădiniță.

  1. Directoare descrie pe un site guvernamental, ce vrea să repare, perioada de colectare și suma de bani necesară pentru a o realiza.
  2. Primește un cont trezorial și un qrcode pentru a-l lipi pe ușa grădiniței.
  3. Părinții având o aplicație de management a taxelor, scanează acel qrcode și transferă de pe credit cardul bancar pe contul trezorial bani.
  4. Dacă la expirarea perioadei de colectarea s-a adunat suma necesară, atunci toți banii se duc la grădiniță pentru a repara clasa.
  5. Dacă nu s-a colectat toată suma, banii se întorc înapoi pe conturile bancare a părinților.
  6. La sfârșitul anului Inspectoratul fiscal deduce din taxe părinților sumele redirecționate către grădiniță.

Astfel părinții văd cum se cheltuie taxelor lor și totodată o face responsabilă pe directoare de repararea clasei. Sumele sunt deduse din taxe iar fiecare părinte ar dori să-și declare taxele.

Tehnic, e simplu de realizat. Politic?

Una din întrebările pe care mi le puneau prietenii cu care am discutat despre votemeapp sună în felul următor.

“În sistemul democratic actual, toate voturile au putere egală de decizie. De ce nu și la votmeapp?”

Nu voi discuta aici cum lucrează votemeapp, însă voi încerca să vă conving că voturile care le dați nicidecum nu sunt egale.

În sistemul actual democratic se utilizează o metodă arhaică și nedemocratică de înaintarea candidaților. Ca și rezultat, la alegeri avem o listă de candidați (nu tocmai cei mai buni) care se luptă între ei pentru a învinge. Pentru a câștiga ei utilizează tot felul de tehnici, că uneori îți este scârbă să vezi că au ajuns candidați. În final avem de ales. Trebuie să alegem răul cel mai mic.

În democrația de azi, tu ai două opțiuni. Ori mergi la vot și votezi +1 ori nu mergi la vot 0. E totul binar. Însă fiecare dintre noi chiar dacă merge la vot are o anumită “încredere” despre candidatul pe care îl votează. Să zicem că această încredere eeste de (0…1]. Dacă este 0 nici nu mergi, dacă e puțin mai mare de 0 mergi, dar mai mult cu gândul că votul tău contează în democrație. Dacă încrederea e 1.0 cel mai probabil că tu însuți votezi pentru tine sau mama ta te votează.

Programatorii are scrie asta așa:

votulTau=ceil(max(incredereCandidat1,incredereCandidat2))

Din punct de vedere al candidatului că voturile date pentru el toate sunt egale cu 1.0, însă din punct de vedere al votanților fiecare vot întoteauna este <=1.0.

Această distribuție statistică a încrederii poate fi distribuția Gauss, sau Power Law. Va trebui să fac niște experimente unde oamenii votează cu o valoare de la [0..1] ca mai apoi să găsești distribuția exactă. Însă sunt sigur că nimeni nu votează pentru candidați cu încrederea maximă.

Democrația clasică întoteauna îți forțează încrederea care o ai într-un anumit candidat să o rotunjești în sus până la 1.0 și să o dai candidatului ales. E ca și cum ai cumpăra de la magazin un produs care costă 10 bani însă casierița îți declară că nu are rest, plătește 1 leu.

De aici avem un efect interesant. Candidatul care câștigă, se mândrește că au acumulat numărul maxim de voturi însă încrederea acumulată poate fi mult mai mică. De fapt dacă să trecem de la sistemul binar de calculare a voturilor la unul flotant, bazat pe încredere, putem avea situații când cel cu mai puține voturi poate câștiga.

Ca rezultat avem o clasă politică care continue să câștige voturi însă nu mai poate să câștige și încrederea oamenilor.

Deci voturile pot fi egale sau pot fi inegale, depinde din ce parte privești.

Primul exercițiu electoral cu care se confruntă copiii este pe cine aleg șeful clasei (grupei).  Va fi un șef care va fi competent, modest și uman sau unul toxic, fudul sau tupeist.

Cea mai răspândită metodă este cea simplă, adică fiecare elev scrie numele colegului căruia îi dă votul său pe o foiță, le plasează într-o cutie comuna, apoi se numără, iar cel care acumulează cele  mai multe voturi — câștigă. De obicei diriginta insistă pe această ideie, ca să scape mai repede de acest proces. 

Încă o metodă este că dirigintele oferă copiilor 3-4 candidați (preferați de ea), iar toată clasa e nevoită să aleagă doar dintre acestia.

O nouă opțiune este una mai puțin obișnuită, dar foarte îndrăgită de copii: printr-o aplicație pe telefonul mobil, care ia în considerare nu doar numărul de voturi, ci și influența (ponderea) lor.

Procesul e cât se poate de simplu.

  1. Instalezi aplicația VoteMeApp.
  2. Cineva dintre elevi creează un scrutin, iar linkul îl distribuie prin messenger.
  3. Toți ceilalți intră de pe acest link în aplicatie, aderând anume la acest scrutin (proces de alegere), votează pentru unul sau câțiva colegi, care merită să fie șeful clasei.
  4. În câteva secunde de la finalizarea scrutinului aplicația calculează și anunță câștigătorul.

Mai jos am plasat câteva screen-uri cum se organizează un scrutin.

Nu voi intra în detalii matematice , ca să nu a vă sperii, însă unul din avantajele noului sistem sunt.

  • îți permite să votezi pentru mai mulți colegi, nu doar unul.
  • puterea votului fiecărui elev este diferită în dependență de către cine a fost votat (și nu doar de nr. voturi primite).
  • afișează și lista celor mai influenți copii din clasă.

Succese!

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.

"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ă.