Diverse metode de autentificare pentru proiecte web

E inevitabil ca programator sa ajungi sa creezi un produs web care sa aiba nevoie de autentificare. Ideal ar fi sa cunosti cat mai multe variante de implementare si sa alegi cazul care se potriveste cerintelor tale.

O sa enumar mai jos variantele pe care le-am folosit de-a lungul timpului si care te pot ajuta si pe tine candva.

HTTP basic authentication

Folderul pe care incerci sa-l protejezi va contine doua fisiere: unul .htaccess si unul .htpasswd care va contine efectiv userul si parola.
Usurinta consta in faptul ca-l poti implementa direct din cPanel la rubrica Directory Privacy si e independent de codul aplicatiei in sine (nu trebuie sa faci pagina de login)

Dezavantajul major ar fi ca pe conexiunile necriptate (http), userul si parola pot fi interceptate pentru ca sunt trimise in headerele request-urilor.

Cookie/Sesiune simpla

Primul sistem de autentificare pe care imi aduc aminte ca l-am facut a constat in verificarea datelor introduse de om in pagina de login si daca se regaseau cu cele din codul sursa, faceam $_COOKIE[‘logged’] = true; si mai apoi in fiecare pagina verificam existenta si valoarea acelui cookie.

Dezavantajul major era ca in cazul mai multor useri, nu stiam cine e persoana logata pentru ca nu aveam nicio alta referinta in afara de valoarea “true” a cookie-ului respectiv.

Prima rezolvare care iti vine in minte in cazul asta e sa pui in loc de “true”, ID-ul acelui user. In cazul asta gandeste-te ca userul poate modifica cookie-ul si inlocuieste 1 cu 2 si deja e logat cu alt user.

O rezolvare destul de safe pentru majoritatea cazurilor e ca in loc de cookie sa folosesti sesiuni. Functioneaza la fel ca un cookie doar ca nu mai poate fi editata de catre utilizator.

Cookie/Sesiune complexa

Cu timpul obisnuindu-te sa lucrezi din ce in mai profi, vei ajunge sa ai cereri de genul login history, nu lasa un user logat logat de mai multe ori in acelasi timp, blocat contul dupa x logari nereusite etc.

In cazul asta varianta e ca la logarea reusita sa generezi un token (un sir de caractere aleator) pe care sa-l stochezi la utilizator prin cookie/sesiune si in baza ta de date la tine. Verificarea daca e logat se face comparand acel token cu ce ai tu salvat in baza de date si in felul asta afli ID-ul utilizatorului.
Mai departe imaginatia e limita, poti verifica daca IP-ul cu care s-a logat e acelasi cu cel care incearca accesarea, poti seta o durata de viata pt acel token, poti face verificarea doar cu ultimul token (pentru interzicerea accesului multiplu) etc.

Daca ai de gand sa tii parola in baza de date, n-o pastra niciodata asa cum o introduce utilizatorul ci cripteaz-o folosind o cheie unica (ex: functia crypt in PHP). Ideea e ca daca cineva ajunge sa aiba acces la baza de date sa nu vada ce parola exista (pt ca stim ca mai sunt cazuri in care unii folosesc aceeasi parola pt mai multe site-uri si mai mult ca sigur acea parola e asociata cu o adresa de email).

Sunt curios voi ce fel de verificari faceti atunci cand vine vorba de autentificari sau daca ati primit cerinte ciudate de la clienti pentru acest aspect.

 

Roadtrip Europa 2016. Povestea celor 30 zile.

Atentie: articol lung si care-ti va face chef de duca

Cand te gandesti la 30 zile prin Europa cu masina iti trec prin minte tot felul de activitati pe care le-ai putea face: vizitat orase super cunoscute, mers pe munte, stat la plaja, vizitat castele, muzee si multe altele. Ai asa o diversitate de activitati incat nu te poti plictisi si nu te gandesti ca toata vacanta ai de mers 8000km.

Cel putin cu planul asta am plecat noi de acasa. Am creionat pe Google Maps traseul si ne-a dat 8000km (la final au reiesit 8100). La traseu am ajuns de-a lungul ultimilor 2-3 ani de cand Lavinia a cumparat o harta a Europei si-am inceput sa punem pin-uri prin locurile unde am vrea sa mergem. Am unit pin-urile si ala a fost in proportie de 90%.

13652869_1390524760961269_391856339_n

Ca si pregatiri pentru plecare am facut revizia la masina (cu care am depasit 200.000km odata cu drumul asta), am facut asigurari de calatorie (doar unele companii ofera acoperire pe toata Europa fara a specifica anumite tari) si in plus am facut o asigurare auto de vacanta de la 9695.ro (pentru 50lei/2sapt esti asigurat pentru eventuale defecte care fac sa ramai pe marginea drumului – nu accidente).

Am avut randuri de haine pentru o saptamana, apa, chestii de rontait. Bineinteles niste medicamente pentru posibile dureri, chestii de stomac, raceala.

Cort, saci de dormit, saltea gonflabila, lanterna, baterii, ciocan. O singura data am mai stat la cort in Navodari dar n-as zice ca mi-a placut. Vei afla pana la final daca m-am dat pe brazda de data asta 🙂

Si-am pornit la drum.

Am ales sa plecam in mijlocul saptamanii pentru a nu prinde traficul de weekend si am ajuns la Budapesta destul de lejer dupa masa pe la 6. In mare parte doar pe autostrada (exceptand Valea Oltului, vreo 20km de autostrada care se reconstruiesc + altii 60 neconstruiti).

Dat fiind ca in prima zi am mers destul de mult (vreo 11h), am hotarat ca vom sta la Budapesta 2 nopti pentru revenire.

Pentru cazari am folosit booking si a lor aplicatie mobila si stabileam cu o zi inainte sau in ziua respectiva unde vom sta.

Budapesta in principiu e oras de city break asadar planul a fost sa luam orasul la pas. Si l-am luat.. pentru vreo 30.000 de pasi conform telefonului din dotare (~24km). Ar mai fi fost vreo 8km pentru o tura completa pe jos dar n-am mai rezistat si am luat metroul. Pe langa clasicul metrou modern am descoperit in centru un metrou care avea aspect de tramvai.

Aici m-am lovit de costurile civilizatiei cand a trebuit sa platesc 15e/zi parcarea in conditiile in care hotelul era 35-40.

In cea mai turistica piata a lor am descoperit ca se faceau repetitii pentru un teatru in aer liber. E putin spus teatru pentru ca parea mai degraba un musical cu super decoruri (cai, masini, motociclete, soldati etc). Din ce am inteles cat am stat pe acolo ar fi fost vorba de istoria Ungariei de pe la 1700 pana la WW2.
In filmuletul de mai jos am prins cand era fluturat steagul Romaniei 🙂

Tare mi-ar place sa se faca si la noi un astfel de spectacol despre Romania.

Dupa ce-am terminat cu Budapesta am pornit spre Venetia cu un food stop la Ljulbjana. Aici am avut norocul sa gasim o piata ambulanta cu diverse feluri de mancare facute in familie asadar am avut de unde alege. Nu mai stiu ce am ales dar am o poza cu desertul 🙂

13422372_1358413777505701_8678787459578201867_o

Seara am ajuns la Venetia, mai exact in Marghera, un orasel apropiat de pe continent. Orasel foarte pustiu. Am iesit seara sa cautam ceva de mancare si era neobisnuit spre inspaimantator de pustiu. Nu stiu daca era zona rau famata sau oamenii aia nu au treaba in afara casei. Dimineata am purces spre Venetia. Masina am lasat-o intr-o foarte mare parcare pe insula (scump, 24e pentru jumatate de zi). De la parcare pana unde intri pe canele am luat un tren suspendat fara sofer pentru 1.5e/pers timp de 3-4 minute.

13872383_1390568977623514_2100053356_n

Traseul turistic in Venetia consta in traversat insula de la un capat la altul (care are vreo 3km) dar nu exista un anume traseu ci pur si simplu bantui pe stradute in directia inainte. Din loc in loc mai vezi indicatoare spre “Pza. San Marco” dar din ce mi-am dat seama uneori sunt puse la deruta de catre comercianti ca sa treci si pe strada unde au ei magazine. Mergand fara o directie anume am facut cam 1h pana in San Marco, unde am gasit puhoaie de oameni (surprinzator avand in vedere ca drumul pana acolo fusese destul de liber).

Dupa Venetia, planul initial era direct Milano dar cu cateva zile inainte de plecare am auzit de Cinque Terre si am vazut ca nu era la mare distanta de Milano. Unde mai pui ca drumul spre trecea si prin Pisa. Asadar am plecat spre Milano via Cinque Terre via Pisa.

Prin Pisa daca treci si nu ai habar ca acolo e un turn inclinat, e ca si cum ai trece prin Dragasani, nu-ti atrage atentia cu nimic. Daca mergi pentru un city break acolo, probabil iti plangi in pumni dupa ce ajungi, vezi turnul si dupa aia iti dai seama ca mai trebuie sa stai 2-3 zile.

De fapt, in restul zilelor ramase, poti merge sa te amuzi pe seama celor care incearca sa faca o poza pentru facebook cu turnul.

Seara am ajuns intr-o comuna de langa La Spezia (unde e plecarea spre Cinque Terre cu trenul). Vremea urmatoarea zi se anunta cu cer variabil si am hotarat sa nu facem nimic, doar ne-am mutat cu cazarea in La Spezia ca sa fim aproape de gara de unde urma sa plecam.

La prima cazare le-am explicat unor englezi cum sa deschida sticla de vin fara tirbuson prin varianta pernei pe perete dar tot ce am reusit a fost sa trezim vecinii prin bubuiturile in perete.

Urmatoarea zi ne-am luat rucsasul, bocancii de trekking si-am plecat in Cinque Terre. Sunt 5 orasele pe o distanta de vreo 15km iar noi am luat trenul pana la cel mai indepartat, planul fiind sa mergem pe jos distanta dintre 3 orase apoi sa luam trenul inapoi in oras.

Era foarte cald asadar am mers doar 2h distanta intre 2 orase. Toata zona e o coasta continua la Mediterana asadar se merge pe marginea marii cand prin padure, cand prin vegetatie pitica prin soare. Destul de fortat pe unele portiuni.

Foarte aglomerate aceste orasele si scumpe. Am lasat 50e la un restaurant pt o mancare destul de saraca si am luat trenul o statie la urmatorul oras care era destul de asemanator.

Trenul care trece prin toate oraselele circula din 30 in 30 de minute.

Urmatoarea destinatie era Milano dar ne-am cazat intr-un oras alaturat unde am baut niste beri cu niste prieteni. Aici am avut o cazare misto. Dupa ce am facut rezervarea pe booking am primit pe whatsapp adresa unde sa mergem, codul de interfon si codul de la un seif unde se gasea cheia. Cand am plecat am lasat cheia in seif si asta a fost. Nu am avut contact uman cu nimeni de acolo.

In Milano aveam pe lista doar dom-ul dar ne incurca o zi intreaga asa ca i-am zis pas si am plecat spre Elvetia la statuia lui Freddie Mercury.

Italia a fost prima tara unde am platit autostrazi asadar a fost un soc sa aflu ca ajungi sa dai pe 100km de autostrada mai mult decat dai pe motorina.

Drumul spre Elvetia trece prin pasul Sf. Bernard la 2500m asadar ne-am bucurat sa dam de zapada dupa caldura de la Mediterana. Ca spectaculozitate e asemanator cu Transfagarasanul doar ca mai inzapezit pentru perioada asta a anului.

In creierii muntilor am intrat in Elvetia. Aici vigneta costa 40e/an si se poate lua pe o perioada minima de 1 an asadar am zis pas mai ales ca noi tranzitam tara doar 2 zile. Fara vigneta poti merge pe drumurile nationale dar nu si pe autostrada.

Am fost surprins in Montreux sa aflu ca desi se foloseste francul elvetian, la automatele de parcare poti plati si euro.

Freddie era bine mersi, se tot uita in zare.

Desi urmatoarea destinatie era la 70km distanta am hotarat sa dormim aici unde am nimerit la un complex de casute cu toate cele necesare unde si unde fiecare casuta avea loc de parcare chiar langa usa. Liniste si pace.

Urmatoarea zi am ajuns in Franta la Chamonix unde am prins o oferta last minute si am ajuns la 4* unde am avut parte de o zi de relaxare la piscina/jacuzi cu super soare si cu muntele la picioare.

La Chamonix am ajuns pentru a urca pe cel mai inalt varf pe care am fost vreodata si anume la 3824m. Cu telecabina. Urcarea costa 55e/pers si dureaza cam 15 min. View-ul face toti banii.

Cascam gura pe terasele de acolo si aud la un moment dat un zumzet de genul “ooooh” care-mi atrage atentia ca si cum s-ar fi intamplat ceva si cand sa ma uit atent unde se uitau alti oameni vad un tip care se aruncase de acolo cu wingsuit-ul, pacat ca am ratat momentul.

O alta experienta inedita a fost intrarea in “Step in the void”, o incapere de plexiglas cu un hau de 1000m dedesubt care iti ofera un gol in stomac atunci cand pasesti inauntru.

Urmatoarea destinatie era Coasta de azur dar era cam departe pentru o singura bucata asa ca am hotarat sa dormim pentru prima data la cort la Grenoble mai ales ca gasisem un camping cu piscina si vremea cerea un scaldat.

Pentru gasirea camping-urilor am folosit Google Maps. Am aflat aici ce inseamna un camping civilizat si mi-a disparut teama de a sta la cort. Am gasit si masina de spalat rufe pentru ca se cam terminasera schimburile.
Aici ne-am imprietenit cu vecinul de parcela care in schimbul catorva tigari a facut hotspot cu telefonul lui si am avut net toata noaptea.

Urmatoarea bucata de drum spre Coasta de Azur e una cunoscuta drept Napoleon Road o ruta istorica pe care Napoleon s-a intors din nu stiu ce campanie in Italia. Vreo 300km fara nicio bucata de autostrada si ultimii 100km numai drum virajat. Obositor. Spectaculos pe foarte mici bucati din toata lungimea lui.

Dupa experienta reusita cu cortul la Grenoble, am hotarat ca in fieful milionarilor pe Coasta de Azur sa stam tot la camping. L-am ales pe cel mai apropiat de plaja si ca sa vezi, ca om bun la toate pe acolo lucra un roman.

Aici planul a fost de stat la plaja si luat la pas Monte Carlo, Nisa si Cannes. De-a lungul coastei e un drum care merge pe langa mare asadar am mers in ritm de croaziera dintr-o statiune in alta.

Ziua cea mai ok de plaja a fost pe o plaja in Antibes (intre Cannes si Nisa) unde era nisip si parea ca e frecventata de localnici.

In rest, ciment, foarte mult ciment peste tot.

De mentionat ca in Monte Carlo 1MB pe mobil la Vodafone costa 9.8e … adica 10000e un GB …

Tot mergand pe coasta spre vest am ajuns in Cassis, un orasel asemanator cu cele din Cinque Terre dar renumit pentru traseele de trekking catre niste golfulete cu apa turcoaz.

Aici planul era sa luam caiace si sa mergem prin golfurile respective dar am primit indicatii gresite de unde sa luam caiace si am ajuns intr-un port de unde se faceau excursii de grup cu caiacul nu pe cont propriu asa ca am luat-o pe jos spre primul golf pret de vreo 45min.

Izolat, plin de localnici, apa turcoaz dar foarte rece.

Dupa atatea zile de plaja deja intrasem in mood-ul de vacanta vegetativa si imi trecuse cheful de condus. Dar urma prima experienta la ocean langa Bordeaux. Pana acolo drumul ne-a dus prin Carcassone si Toulouse.

Carcassone, o Sighisoara mai compacta, plina de restaurante si magazinase.

Tot de pe booking am ajuns la un hotel unde aveai automat de checkin, bagai numarul rezervarii, cardul cu care ai platit si iti printa cardul magnetic pentru a intra in camera.

IMG_7848

De acolo pe autostrada pana la Bordeaux. Autostrazile in Franta sunt la fel de scumpe ca in Italia, adica o medie ochiometrica de vreo 6-7E/100km.

O alta chestie car related e ca sunt unele benzinarii express, unde platesti direct la pompa cu cardul si-ti vezi de drum. Pana aici totul bine, doar ca indiferent cat vrei sa bagi in rezervor, iti blocheaza de pe card 120e. M-am speriat initial crezand ca am uitat sa butonez eu valoarea pe care o vreau dar se pare ca aste e suma si nu se poate schimba. Mi-a dat ceva emotii avand in vedere ca bagasem de vreo 30e dar m-am gandit ca ar fi logic sa primesti diferenta inapoi pe card si asa a si fost (in 2-3 zile).

Din Bordeaux pana la ocean inca vreo 60km. Tot camping si aici…oricum variante mai moderne nu existau pentru ca era parc natural zona. Sunt o multime de statiuni de-a lungul coastei dar aici mi-a placut camping-ul care era intr-o padure de pini si foarte aproape de plaja.

Oceanul, exact cum mi l-am imaginat. Plaja cat vezi cu ochii, valuri mari, surferi, nisip super fin.

Aici am cam exagerat cu statul la soare si urmele au ramas pana in ziua de astazi 🙂 Nu pun poze.
Odata cu oceanul s-a terminat cu statul la plaja in vacanta asta si ne indreptam spre castelele de pe Valea Loarei.

Pe Valea Loarei sunt vreo 70 de castele, ne-am uitat ce drum ne duce spre Paris, am cautat ce castele sunt in zona respectiva si am avut norocul ca cele mai misto sa se gaseasca in zona asa ca am ales top 5 si-am purces.

Intrarea costa 10-12e/pers iar turul unui castel dureaza aprox. 2h.
In interior destul de asemanatoare toate, diferenta se facea la exterior si eventual la gradinile din jurul castelului.

Dupa castele, drumul ne-a dus in Paris unde am luat la pas cele mai importante obiective turistice. Din toate orasele mari pe unde am umblat, asta mi se pare asemanator cu Istanbulul dpdf al traficului. Adica ambuteiaj continuu tot centrul (noxe si claxoane). Poate si ca era perioada Euro. Whatever, nu prea mi-a placut.

Nu ne-am cazat aici si am plecat catre Luxembourg unde am stat 5 zile pentru ca odihna si pentru ca stat la rude. Deja trecusera peste 2 saptamani de la plecare.

In Luxembourg am vazut centrul, nu e chiar cel mai turistic oras dar e linistit si placut pentru plimbare.

Dupa pauza asta binemeritata am pornit iar la drum.
Prima oprire la Koln unde am ajuns cu gandul sa urcam in atractia orasului, domul de 158m. Ne-am multumit doar cu vizita la sol cand am realizat cat e de urcat.

 

Restul zilei l-am petrecut la gradina zoologica.

Pe autostrazile Germaniei, aglomeratie, multe lucrari, portiuni mai proaste decat A1 …se vede ca nu e sustenabil sistemul de autostrazi gratuit.

Drumul spre urmatoarea destinatie Frankfurt l-am facut pe valea Rinului, zona UNESCO si unde sunt la fel ca pe valea Loarei, zeci de castele/cetati doar ca multe sunt ruine pentru ca aveau in mare parte scop militar si au mai fost bombardate de-a lungul timpului.

Am ales sa-l vizitam pe cel mai putin distrus din ele.

Seara la Frankfurt am vazut finala Euro in compania unor prieteni.

Mai departe trebuia sa ajungem la castelul Neuschwanstein, dar am citit pe site ca in urma unor alunecari de teren accesul la un podet de unde vedeai castelul in toata splendoarea, era inchis si nu ne-a mai atras asa mult ideea (mai ales dupa ce vazusem atatea castele in Franta).

Asa ca la Nurenberg dupa ce am vizitat muzeul propagandei partidului nazist am hotarat ca in loc sa mergem in sud spre Munchen sa mergem in nord spre Praga.

Turistica Praga, aici am mancat prima inghetata cu cornet facut din Kurtos.

De aici varianta logica ar fi fost Viena, dar avand in vedere ca e mai accesibila pentru alte dati, am zis sa mergem in Polonia la Auschwitz-Birkenau distanta fiind asemanatoare.

Tot de pe booking am nimerit intr-un conac din mijlocul padurii intr-un sat la vreo 15 km de muzeu.

Bilete pentru vizita am luat de pe net cu o zi inainte. Trebuie sa alegi limba ghidului si ora. Numarul de oameni intr-un grup sunt limitati si pe cont propriu in sezon nu te poti plimba. Ei spun ca dureaza 3h turul dar noi am stat vreo 5.

Turul e impartit in 2 parti, prima parte Auschwitz, apoi la 5 minute distanta cu autobuzul, Birkenau.

Turul trist, unii oameni plangeau, povesti care mai de care mai creepy si imagini pe masura. A fost o lectia de istorie buna.

De aici destinatia acasa fara a mai avea in plan vreun obiectiv turistic.
In Slovacia, l-am intalnit pe Bambi care era gata-gata sa ne strice vacanta:

Am ajuns acasa fix la 30 zile de la data plecarii, cu un total de 8100km auto si 230km pe jos.

Update: Am primit intrebari legate de cost. Nu stiu cat e de relevant avand in vedere ca 7 nopti am stat la prieteni/rude, vremea ne-a permis statul la cort timp de alte 8 zile si doar 15 zile la hoteluri. In cazul nostru vorbim de 3300e distribuiti egal intre drum/mancare/cazare/diverse.

Instagram nu mai vrea sa ofere continut gratuit

Am facut saptamana trecuta o aplicatie pentru o campanie de hashtag-uri pe instragram si am ramas surprins ca nu exista niciun fel de acces public si programatic la postarile cu un anume hashtag.

Cautand o solutie, am aflat ca din noiembrie anul trecut au facut trecerea la o versiune de API noua (facebook style) si trebuie sa inregistrezi o aplicatie, sa spui la ce foloseste si cineva sa o aprobe.

Ce nu poti face e incercuit:

Screenshot_1

Tot pe durata research-ului am gasit o multime de 3rd parties care ofereau diverse pluginuri/widget-uri care se plangeau ca n-au gasit nicio rezolvare discutand cu instagram pe tema asta, asadar se vor inchide.

Intr-un final am gasit o rezolvare (care nu stiu daca e bug sau feature) cu token-ul generat de o aplicatie aparent care are un deal cu instagram) si cu care am 5000 de call-uri/ora la dispozitie inclusiv pentru continut public.

Deznodamantul se afla la festivalul gastronomic din weekend-ul asta de la Baneasa.

13391021_10154292942979525_2071770001_n

Online e mai ieftin

Cautandu-mi niste incaltari de vara, am ajuns zilele trecute intr-un magazin Otter dintr-un mall. Am probat, mi-au placut si-am iesit spunandu-i tipei de acolo ca-i voi cumpara online (stiam deja marimea/modelul plus ca erau o marca destul de cunoscuta asadar sanse sa-i gasesc la mai multe magazine).

In mall pretul era 300 lei.
Online i-am gasit doar pe site-ul Otter la acelasi pret initial insa:

  • in timp ce navigam pe site observ un mesaj cu 15% reducere la prima comanda daca ma abonez la newsletter. done
  • stiind ca ING are un marketplace cu reduceri la unii comercianti, m-am uitat sa vad daca exista si Otter si chiar aveau 10% la platile online. done
  • deasemenea magazinul Otter este inscris si in 2parale si ofera si acolo 8% comision. done

dsc_3600_2

Asadar intr-un final i-am luat cu 33% mai ieftin online.

 

Notificari audio 2parale + Raspberry PI

Aveam prin casa un Rasperry PI de vreo 2 ani primit de la un prieten. Am fost incantat crezand ca trebuie doar sa-l bag in priza si e gata de joaca. Dupa ce am aflat ca nu e asa, l-am aruncat intr-un dulap si acolo a ramas pana saptamana trecuta cand am observat ca fara sa vreau facusem rost de alte chestii necesare functionarii lui (un usb wireless si de un card de 16gb). Tot ce-mi mai trebuia era un cablu HDMI pe care l-am luat cu 10 lei de la emag.

RASPBERRY_PI_A_01

Odata avute toate accesoriile (mai putin tastatura), am copiat pe card sistemul de operare Raspbian, l-am conectat la TV si cu 2-3 clickuri de mouse am instalat sistemul de operare (care btw e un Linux cu o interfata gen Windows). Dupa ce s-a instalat trebuia sa ma conectez la wireless ca sa-l pot comanda de pe laptop. Dar nu aveam tastatura ca sa bag parola asa ca a trebuit sa intru pe router si sa dezactivez parola. Odata conectat la net am instalat un programel care sa-mi ofera o tastatura virtuala care poate fi folosita cu mouse-ul asadar am pus din nou parola la router si m-am conectat folosind tastatura virtuala.  Din pasul asta tot ce a trebuit sa fac e sa-l las in priza pe undeva si-l puteam controla de pe laptop.

raspbian

Poti face chestii interesante cu el atata timp cat ai accesoriile si senzorii potriviti (de presiune, temperatura etc) dar tot ce aveam prin casa era o boxa care se conecta prin usb. Si m-am gandit ca boxa respectiva poate fi folosita ca sistem de notificare pentru diverse chestii.

13183152_10154219538349525_1140783662_n

Daca faceam pentru mail-uri era stresant sa cante non-stop asa ca am hotarat sa fac un sistem de notificari atunci cand apare un comision nou in 2parale.

Lucrand cu PHP, primul pas a fost sa instalez Apache+PHP+mySQL.
Folosind API-ul 2parale, am facut un script PHP care citeste ID-ul ultimului comision si-l salveaza intr-un fisier .txt. La fiecare apelare a scriptului, daca ID-ul citit e diferit de cel din fisierul .txt inseamna ca a aparut un comision nou. In acest caz cu shell_exec rulez 2 programele instalate in prealabil (mpg123 pentru redare mp3 si espeak pentru text2voice).

Am combinat si contul meu de afiliat si al Laviniei si fiecare avem o melodie separata, asadar cand incepe sa cante sa stim care din noi a facut un comision. Espeak e folosit pentru a spune valoarea comisionului.

Acest fisier e accesat printr-un cron in fiecare minut.

Rezultatul:

Trebuie musai sa-mi iau niste senzori sa fac chestii mai interesante.

© 2016 Ciprian Dragoi

Theme by Anders NorenUp ↑