Afla culoare predominanta dintr-o imagine cu PHP

E despre: Dezvoltare web, PHP

Nu credeam ca e asa simplu pana nu m-am interesat :)
Ca si aplicatie practica, daca ai acces la pozele produselor unui magazin online dar n-ai culoarea intr-un camp separat, poti trece prin codul de mai jos toate imaginile ca mai apoi sa poti face o cautare care pe langa clasicul text de cautat sa pui si un color picker. Sunt mici sansele sa fie un produs EXACT cu culoarea aleasa de utilizator, dar mai poti mesteri programatic (pui sa caute intr-un interval de culori) in asa fel incat sa-ti identifice produsele cu o culoare apropiata. Dupa aceea poti creea intervale predefinite pentru cuvintele gen “rosu,verde,gri,cacaniu :d” iar la cautarea “pijamale verzi” sa ii dai exact pijamelele verzi.


function rgb2hex($rgb){ return sprintf("%06X", $rgb); }
$im = imagecreatefrompng('test.png');
$x = 10; //coordonat x
$y = 20; //coordonat y
$arr = imagecolorat($im, $x, $y);
$coloare = imagecolorsforindex($im, $arr);
$final = rgb2hex($culoare['red'].''.$culoare['green'].''.$culoare['blue']);
echo'Culoare predominanta este #'.$final;

Chiar sunt curios ce implementari ingenioase ii mai gasiti.


8 lucruri

E despre: Dezvoltare web, Internet

Anul asta se fac 8 ani de cand am descoperit “View Source” din IE si m-a lovit curiozitatea despre cum functioneaza web-ul, de cand am inceput sa aflu cum se face un site si mai tarziu sa ajung sa fac bani din toate cunostintele astea.
Fac o lista cu chestiile mai putin banale de care te vei lovi in acesti 8 ani si care te pot scoate din plafonarea aparuta din facutul numai a site-uri de prezentare.

      lucrul cu datele altora – sunt o multime de informatii publice agregate de mari jucatori, la care e pacat sa nu apelezi.E un must de exemplu in zilele noastre sa faci un concurs sau o aplicatie pe facebook. Asta presupune sa sti cum sa citesti/generezi un XML, un JSON, cum sa lucrezi cu un API, cu un webservice.
      sisteme de cache – site-urile devin mai complexe pe zi ce trece, nu mai e de ajuns sa ai un SELECT ceva FROM ceva WHERE ceva=ceva pentru afisarea unor informatii in site. Afla cum poti scapa sau imbunatati procesarea pe server generata de fiecare vizitator. Nu-i prea ok sa faci o interogare pentru fiecare afisare, dintr-o baza de date cu cateva milioane de linii.
      mobile – o sa dispara curand nebunia cu “vreau sa avem pagina de facebook” si o sa apara asta cu “vreau site de mobil”. Nu-s prea multe chestii in plus de stiut pentru a face un site de mobil, dar merita sa le cunosti.
      versionare – perioada de pionierat a internetului apune, pentru a face ceva care sa reziste, e nevoie de organizare, de control. Nu-si mai permite nicio companie, sa dea acces la varianta live a unui site, unui programator nou angajat. Va trebui lucrat si testat intr-un mediu de dezvoltare, ca mai apoi cineva sa verifice si daca totul e-n regula, sa publice. Vei avea nevoie sa fii familiarizat cu un astfel de sistem.
      plati online – vor aparea din ce in ce mai multe site-uri bazate pe plata (lumea devine tot mai mult dependenta de internet iar cine are ochi sa vada, profita). Trebuie sa stii ce metode de plata online exista si metode de implementare pentru a alege tot timpul solutia cea mai eficienta.
      backup – se genereaza informatie pe internet mai mult ca oricand. Problema e ca informatia asta e interconectata in modul 1 la n, daca din anumite motive se pierde ceva intr-un singur loc, nu doar acel loc va fi afectat ci numarul sistemelor care se vor strica la randul lor va fi inzecit. Cel mai bine e sa n-ai incredere in nimic, nu spune niciodata “n-o sa se intample” si nu fi dependent de sistemele de protectie ale altora.
      scalabilitate – nu mai e de ajuns sa faci lucrurile doar sa mearga, e nevoie sa nu mai intervii sau sa intervii cat de putin posibil cand valorile variabilelor se vor schimba. Construieste un sistem, nu o chestie punctuala.
      data mining – odata cu cantitatea mare de informatii la care vei avea acces, va veni si intrebarea “si acum ce fac cu ea?”. Data mining-ul inseamna creearea de algoritmi care sa prelucreze toate aceste informatii si sa le transpuna in concluzii intelese de toti oamenii. Asta in curand va deveni un job propriu zis, parerea mea.

Daca te pricepi deja la toate astea, am un citat pentru tine:

Engineers like to solve problems. If there are no problems handily available, they will create their own problems.


Fortumo + wordpress = bani

E despre: Dezvoltare web, Internet, PHP

Am scris acum ceva vreme de modalitatea prin care puteti aparea in blogroll-ul meu. Si anume trimiteti un SMS la un nr. scurt (0.70E) cu linkul si ancora dorita si linkul va intra instant in Blogroll.
Toata treaba asta functioneaza in urma unui plugin de wordpress facut de mine care face legatura cu Fortumo (care pune la dispozitie sms-urile platite).

De astazi pluginul este gratuit la download. Instalati-l, testati-l si faceti ceva bani in plus fara sa va bateti capul prea tare.

Succes!


Masurare timp incarcare pagina din Analytics

E despre: Dezvoltare web, Internet, SEO

V-am spus acum ceva vreme ca Google Analytics au dat in beta o noua varianta.

Printre noile functionalitati se afla si cea de masurare a timpului de incarcare pentru fiecare pagina. Foarte util pentru site-urile mari gen portale/magazine online etc. Asa poti afla pe ce pagini ai probleme cu unele interogari, imagini prea mari, probleme de javascript …

Eu pana acum foloseam un sistem propriu facut in PHP ca sa aflu pe ce pagini am probleme.

Ca sa-l instalezi trebuie doar sa mai adaugi un parametru la codul standard. Si anume:

	  _gaq.push(['_setAccount', 'UA-XXX']);
	  _gaq.push(['_trackPageview']);
	  _gaq.push(['_trackPageLoadTime']);

Template portal

E despre: Dezvoltare web, Internet

Acum ceva vreme am vrut sa fac un portal clasic pentru adsense.
Dupa ce am facut prima pagina m-am gandit ca e putin ciudat sa investesc cateva saptamani de munca in ceva asa “2000-ish” asa ca m-am oprit.

In caz ca vrea cineva sa-si testeze cunostintele de programare, poftim designul.