Entipic - o imagine pentru fiecare subiect
Numele Entipic vine de la 'Entity picture'. Ideea proiectului este de a oferi pentru fiecare topic/entitate popular/ă o imagine reprezentativă.
Proiectul seamănă cu Gravatar: dacă Gravatar oferă o imagine pentru fiecare adresă de email cunoscută (de sistem), atunci Entipic oferă o imagine pentru fiecare topic popular (ex: Bill Gates, Vlad Filat, Chișinău, CEDO, etc.).
Cel mai simplu de înțeles ar fi print-un exemplu: voi folosi Opinia de pe Click.md.
![opinia.click.md opinia.click.md](/img/blog/opinia-click.png)
Exemplu de imagini asociate unor entități populare
Problema
La prima vedere, să am la mine pe site o imagine asociată unei entități, pare ceva foarte simplu. Dar, în realitate, este o problemă foarte neplăcută și complicată. E clar că această problemă poate fi neînsemnată atunci când numărul entităților este mic și constant.
Pentru a soluționa această problemă avem nevoie de:
- Căutarea și redactarea imaginilor pentru fiecare entitate (mult lucru manual);
- Mărimi diferite (de regulă aceeași imagine o vom folosi cu diferite mărimi);
- Menținerea unei legături între imagine și entitatea din baza de date;
- Stocare pe server și transfer la client;
Soluție
Cea mai bună soluție, după părerea mea, ar fi ca un serviciu să preia toată această funcționalitate.
Astfel serviuciul ar veni doar cu o adresă de la care putem cere imagini.
Entipic
V-ați prins! Entipic.com este acel serviciu.
Dar, să vedem cum funcționează și cum poate fi folosit. În primul rând, e bine de știut că Entipic funcționează fără intervenția umană.
Cum funcționează
Voi explica pe baza unui exemplu concret. Presupunem că un site face următoarea cerere: http://cdn.entipic.com/ro/traian-basescu.jpg
Sistemul reacționează (forma simplă):
- Normalizează numele cerut (traian-basescu);
- Dacă pentru acest nume sistemul deține o imagine, atunci o returnează; în caz contrar, returnează o imagine temporară și trece la pasul 3;
- Salvează numele cerut (traian-basescu) ca nume nou;
- Periodic, un modul, caută imagini pe internet pentru fiecare nume nou;
Cum poate fi folosit
Unicul lucru care trebuie reținut este adresa unei imagini: http://cdn.entipic.com/[language]-[country]/[size]/[name].jpg
Unde:
[language] (semi-opțional) - este codul limbii din 2 litere (en, ro, ru, etc.). Codul limbii este necesar pentru a ajuta sistemul în procesul de căutare a imaginii corecte. De fapt, sistemul nu va căuta imagini pentru cuvinte/nume care nu au asociată limba.
[country] (opțional) - este codul țării din 2 litere (md, ro, ru, etc.). Acest cod este necesar mai ales când cerem [name] scurt(...). Dacă site-ul nostru este din România vom folosi codul ro.
[size] (opțional) - este mărimea dorită a imaginii, care este formată dintr-o literă. Poate fi: x (25x25 px), a (50x50 px), b (100x100 px), c (150x150 px). Dacă nu indicăm mărimea se va folosi a (50x50 px).
[name] (obligatoriu) - este numele entității pentru care dorim o imagine. Poate conține între 2 și 50 de caractere. E de dorit ca [name] să fie scris cu litere mici șă spațiile să fie înlocuite cu un minus(-).
Nu contează forma de scriere a numelor: traian-basescu, traian BaseScu, Traian Băsescu și chiar TrăIAN Bășescu sunt identice pentru sistem. Ceea ce înseamnă că nu trebuie să cunoaștem ce nume folosește Entipic - noi doar vom cere o imagine folosind numele pe care îl cunoaște aplicația noastră.
Dacă vom folosi numele Траян Бэсеску Entipic va returna aceeași imagine ca și pentru traian-basescu, fiindcă este destul de inteligent pentru a căuta și cunoaște sinonime.
Performanță
Entipic folosește pentru deservirea imaginilor u serviciu CDN. Deci, doar dacă imaginea lipsește în cache-ul CDN-ului se va observa încărcarea imaginii. Performanța se poate testa pe site-urile care folosesc Entipic: www.click.md sau www.ournet.ro
Toate imaginile sunt stocate pe Amazon S3.
Condiții de utilizare
Serviciul este gratuit, deci poate fi folosit de orice aplicațe/site.