:::: MENU ::::
Browsing posts in: Dezvoltare web

Google Optimize, unealta de A/B testing

Acum multi ani sa faci A/B testing ca marketer era crima, trebuia sa ai la dispozitie non stop un developer pentru implementarea modificarilor si analizat rezultatele.

Tot acum multi ani Google s-a hotarat sa implementeze in Analytics (apropo, aici povestea Urchin, predecesorul Analytics) un feature pentru AB testing dar tot era anevoios pentru ca trebuia sa ai un URL diferit pentru fiecare varianta si trebuia modificata implementarea pentru fiecare experiment in parte.

Dupa o vreme, a aparut Optimizely cu varianta full non-developer unde implementai o singura data un cod in site si in rest se descurca marketerul singur pentru crearea experimentelor si analiza lor. De atunci a inceput nebunia cu A/B testingul cu adevarat pentru ca era la indemana aproape oricui.

Se pare ca Google s-a hotarat sa acapareze si aceasta nisa si au lansat Google Optimize. De inteles daca 80% din banii Google vin din de la marketeri prin Adwords.

 

google optimize

Se integreaza nativ cu Analytics, permite crearea experimentelor cu ajutorul unui plugin de Chrome si poti seta ca obiective ale unui experiment, goal-urile deja setate in Analytics. Implementarea se face prin adaugarea unei linii de cod in codul Analytics deja existent.

Pare mai simplu si natural de folosit decat oricare varianta deja existenta si il recomand.


Trecerea de la Windows la MacOS

Cand vine vorba de tehnologie nu sunt fan declarat al vreuneia. Adica folosesc ce-mi rezolva problema in parametrii asteptati de mine (cateodata e vorba de bani, timp, chef de invatat chestii noi etc.). Am descoperit calculatorul cu Windows 3.1 (pe care in cateva ore am reusit sa-l sterg si am ramas cu Norton Commander) si timp de 15 ani pentru mine Windows a insemnat calculator.

norton commander

Dupa primul an de internet am aflat ca mai exista si alte variante de sisteme de operare dar aveam impresia ca sunt chestii pe care nu poti face tot ce poti face pe Windows si ca tot ce conteaza si despre care e toata lumea la curent, se intampla pe Windows. Si asa era, cred ca Win avea share de 90% chiar mai mult in anii de glorie.

De Mac nu stiu cand am auzit prima data dar din totdeauna am avut 2 pareri despre el: ca e super scump si ca arata super bine (vorbesc de laptop-uri). N-am avut cunostinte cu Mac-uri asadar in 15 ani nu cred ca am stat in fata unuia mai mult de 1h adunat. Asadar tot ce stiam despre el erau chestiile pur mainstream.

Dupa ce am desfacut laptopul vechi sa-l suflu de praf, cateva taste au inceput sa functioneze mai greu asa ca am avut motiv sa caut inlocuitor. Si s-a intamplat sa fiu in starea de a vrea ceva mai cool si nou. Si-am luat un MacBook Pro de 13 in ideea ca in curand sa ma apuc sa invat si programare pentru aplicatii iOS.

Trecerea a fost mai smooth decat ma asteptam, in 2 zile m-am obisnuit cu toate chestiile noi si mi-am instalat/configurat tot ce aveam pe Windows pentru dezvoltare PHP. Nu pot sa spun ca sunt mai productiv dar simt ca stau in fata calculatorului cu ceva mai multa placere decat inainte 🙂

Strict legat de programare, imi place ideea de a folosi terminalul mai mult mai ales ca in ultimii ani mi-am bagat nasul in configurat VPS-uri si a inceput sa-mi placa. Pe Windows in afara de a da ping nu tin minte sa fi folosit vreodata terminalul pentru chestii legate de webdev (ba da, atunci cand rulam scripturi de parsare si voiam sa ruleze cu orele).

 

 


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.

 


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


Daca ai blog, iti trebuie HTTPS

Zilele trecute am observat in Feedly ca la unele bloguri nu apareau imaginile sau unele embed-uri din cauza lipsei de https ( pe un site https poti afisa elemente servite doar de pe https).

Credeam totusi ca bloggerii A-list s-au gandit la asta pana acum…

Pentru cei neinitiati in internet, exista un site care ofera certificate https (pe langa altele) fara niciun cost.

Se numeste CloudFlare si in ultima vreme toate site-urile pe care le-am avut pe mana, le-am bagat in acest serviciu.

Singura modificare necesara, e schimbatul DNS-urilor cu unele date de ei si sa astepti 1 zi.


Pages:1234567