Entipic - o imagine pentru fiecare subiect

joi, 24 apr. 2014

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

Exemplu de imagini asociate unor entități populare

În imaginea de mai sus vedem personalități și, alături, imaginea (fața) acestora. Anume în felul acesta conținutul site-ului devine mai clar și mai atractiv.

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ă):

  1. Normalizează numele cerut (traian-basescu);
  2. Dacă pentru acest nume sistemul deține o imagine, atunci o returnează; în caz contrar, returnează o imagine temporară și trece la pasul 3;
  3. Salvează numele cerut (traian-basescu) ca nume nou;
  4. 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.