Configurarea Aspectului Unui Site
CUPRINS
Dezvoltarea mediilor de comunicare computerizate
Internet
Descriere
Termenul Internet, sau și internet, are mai multe sensuri strâns înrudite, în funcție de context:
Numele propriu Internet (scris cu majusculă) se referă la rețeaua mondială unică de computere interconectate prin protocoalele (regulile) de comunicare Transmission Control Protocol și Internet Protocol, numite pe scurt TCP/IP. Precursorul Internetului datează din 1965, când Defense Advanced Research Projects Agency (en:DARPA) (Agenția pentru Proiecte de Cercetare Înaintate de Apărare – a Ministerului Apărării, Department of Defense sau DoD din SUA) a creat prima rețea de computere interconectate sub numele Arpanet. Super-rețeaua din zilele noastre a rezultat din extinderea rețelei Arpanet.
Substantivul comun internet (scris cu minusculă) desemnează in marea majoritate a cazurilor aceeași rețea, însă văzută ca un mediu de comunicare de mase, împreună cu informația și serviciile care sunt oferite utilizatorilor prin intermediul acestui mediu.
Tehnic, termenul mai poate desemna și o rețea ce interconectează 2 sau mai multe rețele autonome aflate la mare depărtare unele față de altele. Exemple de rețele mari, pentru care folosința acestui nume este justificată, sunt SIPRNet si FidoNet.
Cuvântul "Internet" provine din împreunarea artificială și parțială a două cuvinte englezești: interconnected = interconectat și network = rețea.
Fig. 1.1 – Legăturile Internet
Accesul fizic la Internet
Există un șir întreg de metode de cuplare fizică a unui calculator sau aparat inteligent la Internet:
printr-un modem și o linie de telefon și legătură telefonică normală, prin formarea unui număr,
linie de telefon dedicată / închiriată unui singur utilizator sau unei singure firme,
legătură radio la un așa-numit Hotspot sau Active Point, utilizând tehnicile WLAN sau Wi-Fi,
legătură radio, de la un telefon mobil la antena celulară terestră
World Wide Web (www)
Termenul World Wide Web (abreviat WWW; numit scurt și Web sau web, care în engleză înseamnă "rețea" și se pronunță aproximativ 'ueb, cu diftong – într-o singură silabă) este un sistem de documente și informații de tip hipertext legate ele între ele care pot fi accesate prin rețeaua mondială de Internet. Documentele, care rezidă în diferite locații pe diverse calculatoare-server, pot fi regăsite cu ajutorul unui URI univoc. Hipertextul este prelucrat cu un ajutorul unui program de navigare în web numit browser care descarcă paginile web de pe un server web și le afișează pe un terminal.
WWW este numai unul dintre multele servicii și aplicații informatice disponibile în Internet. Alte servicii sunt de exemplu: afișarea de informații mai mult sau mai puțin statice cu formă de text, imagini și sunete (așa-numitele pagini web), poșta electronică e-mail, transferul de fișiere de date și informații FTP, chat, aplicații video și video on demand, servicii telefonie și telefonie cu imagine prin Internet de tip VoIP, posturi de radio și televiziune prin Internet, e-commerce, sondări de opinie, răspândirea știrilor prin metode RSS, toate genurile de grafică și muzică, lucru pe un calculator de la distanță prin Internet, grupuri de discuții pe diverse teme, sisteme de jocuri interactive ș.a. Totuși, WWW este cel mai important și mai răspândit serviciu.
Istoric
Webul a fost inventat în 1989 la Centrul European de Cercetări Nucleare (CERN)în Geneva (Elveția). Propunerea inițială de creare a unei colecții de documente având legături între ele a fost făcută de Tim Berners-Lee în martie 1989. Această propunere a apărut în urma problemelor de comunicare pe care le întâmpinau echipele de cercetători ce foloseau centrul, chiar și folosind poșta electronică.
Fig 1.2 – Primul server web (Tim Berners-Lee)
Primul server web folosit de Tim Berners-Lee, acum la Microcosm, muzeu al CERN. Primul prototip al acestei colecții (mai întâi în format de text simplu) a apărut nu mult înainte de decembrie 1991, când s-a făcut prima lui demonstrație publică. Studiul a fost continuat prin apariția primei aplicații grafice Mosaic, în februarie 1993, realizată de cercetătorul Marc Andreessen de la centrul universitar National Center for Supercomputing Applications (NCSA) din orașul Urbana-Champaign din statul federal Illinois, SUA. Apoi web-ul a evoluat până la ceea ce este astăzi, un serviciu integrativ și multimedia, având ca suport fizic Internetul.
Tim Berners-Lee și echipa sa au realizat primele versiuni pentru patru componente cheie necesare serviciului web, și anume:
protocolul de intercomunicație HTTP;
limbajul de descriere a hipertextului HTML;
serverul de web;
browserul.
Funcționare
La baza funcționării webului stau 3 standarde, și anume:
(HTTP) – HyperText Transfer Protocol, stiva de protocoale OSI prin care serverul web și browserul clientului (utilizatorului) comunică între ele;
(HTML) – HyperText Markup Language, standard de definire și prezentare a paginilor web.
(URI) – Uniform Resource Identifier, sistem universal de identificare a resurselor din web, folosit pentru a identifica și localiza paginile web;
Următoarele Standarde vin mai târziu:
Cascading Style Sheets (CSS).
JavaScript.
Hypertext Transfer Protocol Secure (HTTPS).
World Wide Web Consortium (cunoscut și sub denumirea de W3C), care astăzi este condus de Tim Berners-Lee, dezvoltă standardele – HTML și CSS; alte standarde provin din Internet Engineering Task Force, ECMA sau makers ca Sun Microsystems.
Programul de navigare sau browserul cheamă pagina folosindu-se de URI și HTTP, o interpretează conform formatării paginii (hipertext) și o prezintă utilizatorului pe un monitor. Unul dintre principiile Web-ului este modelul client-server, browserul fiind aplicația client iar serverul HTTP (serverul web) fiind aplicația server. Pentru a putea interpreta și reda informațiile sub forma hipertextului, browserul apelează la standardul de limbaj HTML (HyperText Mark-up Language), definit încă de la începutul dezvoltării web-ului.
În perioada 2004-2005 web-ul a cunoscut un salt calitativ cu privință la aplicațiile de mare răspândire pe glob, care e cunoscut sub numele Web 2.0.
Fig. 1.3 – Reprezentarea grafica a mai puțin de 0,0001% din WWW
Web 2.0
Web 2.0 este un termen care desemnează o mulțime întreagă de aspecte interactive și colaborative ale Internetului, și aici în special ale World Wide Web, de natură foarte recentă – apărute prin anii 2004-2005. Deci la Web 2.0 nu este vorba de versiunea doua a unui software sau a unei tehnici Web. Inventatorul și promotorul termenului Web 2.0 este Tim O'Reilly. Pentru diferențiere, tradițiile Web care existau până la apariția Web 2.0 sunt numite Web 1.0.
Caracteristicile Web 2.0
Web 2.0 desemnează (destul de vag) noi căi de a considera și exploata posibilitățile organizatorice ale Web-ului. Conform acestora, conținutul și informația din Web nu mai e oferită vizitatorilor numai de către mass media, guverne și firme particulare, ci și de persoane particulare, legate între ele prin rețele informale bazate pe Internet, și care contribuie și participă activ la punerea la dispoziție și răspândirea informațiilor pe întregul glob prin intermediul Web-ului. Exemple tipice pentru acest nou aspect sunt așa-numitele Wikis, Weblogs sau mai simplificat blogs, precum și portalurile și bursele de schimb de imagini, muzică, filme/video și software din Internet, cum ar fi Flickr, YouTube și siturile pentru File sharing.
Mediile din întreaga lume au reacționat intens la aceste puncte de vedere noi, bănuindu-se chiar că ele vor avea efecte sociale și economice directe. Există însă și voci critice care, conștiente că îndărătul lui Web 2.0 nu stă nici o nouă tehnologie, se plâng de faptul că termenul nu e definit exact și poate fi deci exploatat după pofte de către unele companii – de exemplu cu scopuri publicitare sau economice sau chiar pentru trafic de influență. Un exemplu mai pozitiv sunt activitățile de marketing ale unor firme care încearcă să-și convingă clienții să participe activ chiar ei la proiectarea și realizarea paginilor web oferite de firma respectivă. Deci, în loc de metoda "push" (paginile web ale firmei trebuie să-i împingă pe clienți să cumpere), se încearcă principiul "pull" (clienții sunt atrași să participe la crearea paginilor web ale firmei, dar bine-înțeles tot cu scopul de a-i determina să cumpere).
Web 2.0 – o nouă calitate
Inițial WWW-ul a constat din pagini statice, care erau actualizate doar ocazional de către deținătorii lor.
Ulterior au fost realizate și sisteme de gestiunea automată a informațiilor dintr-un site Web, numite Content Management Systems. Acestea puteau construi pe loc – în mod dinamic, la cerere – versiunea cea mai nouă posibil a paginii web, și anume prin consultarea unei bănci de date (sigur că și aceasta trebuia actualizată permanent, dar asta se face pe căi tradiționale, nelegate direct de WWW). Dar și această tehnică împarte oamenii în "creatori" de pagini Web și "consumatori" mai mult sau mai puțin pasivi ai acestor pagini/informații/documente.
Cam din anul 2005 încoace însă, unii specialiști afirmă că Internetul oferă din ce în ce mai des o nouă calitate, idee care a fost susținută și de mediile de mase, și anume prin folosirea deasă a noilor termeni, specifici pentru Web 2.0:
Stocarea datelor utilizatorilor, care avea loc în primul rând pe calculatorul local, urmând să fie publicate în Web abia ulterior, se face acuma în primul rând direct în Web, de exemplu pentru fotografiile private ș.a. Programele locale accesează din ce în ce mai des aplicațiile Web, deoarece se pleacă de la ipoteza unei legături permanente cu Web-ul. Unele motoare de căutare Web sunt în stare să acceseze și datele locale ale utilizatorului.
Diferențele între aplicațiile locale și cele Web se atenuează. Multe programe se actualizează singure, luând legătura cu situl autorului lor în mod automat, uneori chiar pe ascuns. Rolul browser-ului devine din ce în ce mai important, deoarece cu ajutorul lui pot fi implementate azi aplicații Web extrem de complexe (vezi Dynamic HTML). Practic vorbind, browser-ul devine cel mai important program al utilizatorului.
Rolurile de "creator" și "consumator" de pagini Web încep să se încalece, deoarece "consumatorii" de până acum încep să contribuie activ la crearea de noi conținuturi, cum se întâmplă de exemplu cu așa-numitele blog-uri. Mulți utilizatori își mută și transformă sfera lor privată de la echipamentul local la Web, în acest fel făcând-o publică.
Mashup este tendința de a accesa simultan și a cupla unele cu altele mai multe servicii Web, de la ofertanți diverși, rezultatul însă apărând ca fiind "dintr-o bucată", fără întreruperi sau alte dezavantaje.
Noile aplicații bazate pe Web duc la efectul că utilizatorii, chiar și atunci când nu sunt foarte versați tehnic, participă direct la răspândirea prin Web a informațiilor și opiniilor.
Toate aceste fațete recente ale Web-ului sunt ocazional desemnate drept "software social".
Realitatea virtuala – Jocurile multiplayer on-line
Așa numitele MMORPG (Massively multiplayer online role-playing games) sunt un gen de joc in care un numar mare de jucatori interactioneaza intr-o lume virtuala. Termenul de MMORPG a fost pentru prima data folosit de Richard Garriott, creatorul jocului Ultima Online, creditat pentru popularizarea genului in 1997.
Fig. 1.4: Imagine din “Ultima Online”, un MMORPG clasic
Principala caracteristica a genului e ca jucătorii își asuma rolul unui caracter fictiv ( cel mai adesea intr-o lume fantezista ) si preiau controlul asupra acțiunilor caracterului. MMORPG-urile se diferențiază de genul similar in varianta single-player sau multi-player prin numărul mult mai mare de jucatori ( pot fi de ordinul milioanelor ) si prin faptul ca jocul continua indiferent de numărul celor aflați on-line.
Genul este foarte popular, veniturile mondiale in 2005 depășind o jumătate de miliard iar in 2006 doar in SUA si vestul Europei s-au înregistrat profituri de peste un miliard.
Trasaturi generale
Cu toate ca variantele moderne ale genului diferă foarte mult de predecesorii lor, majoritatea împart o serie de trăsături caracteristice:
Tematica de role-playing (altfel spus „intrarea in pielea personajului”)
O metoda de a progresa, de a-ti îmbunătăți caracterul
Interacțiune social in cadrul jocului
Arhitectura generala a sistemului
Nu in toate variantele se permit discuțiile intre jucători, dar o forma sau alta de a interacționa si de a-ti coordona acțiunile cu alții a existat întotdeauna.
Tematica
Majoritatea MMORPG-urilor de succes au o tematica de fantezie in stil clasic, in majoritatea cazurilor e in similara ca atmosfera cu Dungeons & Dragons. Unele apelează la un amalgam de fantezie si science fiction, capa si spada, magie si/sau mistere. Altele folosesc tematici mai obscure / bizare bazate pe romane si centralizate pe o sarcina (quest).
Odată cu maturizarea genului si cu lărgirea pieței in care se caută clientela, aceasta diversitate de jocuri poate doar sa crească.
Progresul caracterului
In aproape toate MMORPG-urile, îmbunătățirea caracterului este un scop principal. Oferirea unui sistem prin care se poate progresa este „vital” pentru captivarea jucătorului.
Modalitatea de a te „îmbunătăți” in cadrul jocului este cel mai des prin lupta cu alte caractere „reale”, adică jucători ca si tine sau cu cele ghidate de calculator (NPCs). De asemenea se poate avansa in joc prin îndeplinirea unor sarcini (quest-uri) date de NPCs; acestea pot fi făcute singur sau in grup.
Avansul necesita lupte iar luptele necesita arme, armuri, magie si poțiuni magice iar pentru toate acestea e nevoie de bani; bani vin din … lupte. Acest perpetuu-mobile in care lupta generează mai multa lupta a fost criticat si ironizat deseori.
Faptul ca unele lucruri se pot face doar in grupuri mari necesita o sincronizare cu alți jucători si acest lucru de multe ori înseamnă ca trebuie organizata viata reala conform orarului din joc. In funcție de cat de des se întâmpla acest lucru el poate deveni o problema si este unul dintre cele mai criticate aspecte ale genului.
Fig. 1.5: Un caracter evoluat din EverQuest2
.
Interacțiunea „sociala”
In acest gen de joc comunicarea intre participanți este întotdeauna permisa. In funcție de alte forme de interacțiune implementate in joc pot apărea diverse forme de socializare.
Multe MMORPG-uri exploatează predispoziția de socializare a jucătorilor si permit formarea așa numitelor clanuri sau guild-uri. Aceste forme de asociere vor apărea fie ca jocul o permite sau nu, faptul ca este „built-in” face doar sa fie mai captivant.
In cadrul alianțelor se exista anumite reguli printre care cele de ajutare si non-combat intre aparținătorii clanului. După un anumit timp de joc este inevitabil sa nu fi atras intr-un guild sau altul sau chiar sa ajungi intr-o funcție de conducere in cadrul lui.
Luptele organizate intre guild-uri sunt la scara impresionanta de cele mai multe ori si pot fi datorate liderilor sau pot fi rezultatul direct al implicării așa numiților „moderatori”, cei care au serverul respectiv.
Chiar daca un jucător nu ia parte la un guild, pentru ca nu vrea sau nu este implementat, el tot va fi implicat intr-o acțiune de grup la un moment dat. In cadrul acestori mici grupări temporare cauzate de un inamic prea puternic pentru a fi atacat de un singur individ, apar diverse roluri pentru participanți. In general rolurile sunt:
„tank” – un caracter specializat in apărare si care e plasat frontal pentru a proteja grupul
„healer” – are rolul de a vindeca membri grupului, in special pe cel „tank”
„DPS” – (eng. Damage Per Second), specializat in atac
Alte roluri
Unele jocuri pot pretinde si sa joci un anumit rol; caracterul virtual sa se comporte așa cum ar fi de așteptat daca ar fi real in ceea ce privește dialogul si / sau atitudinea. Acest lucru nu este foarte des întâlnit, mai mult in jocurile de realitate virtuala non-combat.
In general acest gen de interacțiuni sociale necesita supravegherea unui moderator „Game Moderators” sau “Game Masters”. Aceștia pot fi angajați plătiți sau voluntari neplătiți care încearcă o supraveghere a lumii. Ei au posibilitatea de a interacționa cu jocul in moduri nepermise jucătorilor simpli.
„Cultura”
Datorita numărului mare de jucători ( zeci de milioane pentru unele jocuri ale genului ) si a numarului relativ mare de elemente in comun ale genului, s-a dezvoltat o adevărata cultura a MMORPG-ului adiționala celei prezente in jocurile obișnuite.
Un exemplu ar fi „clasele” de caractere, fiecare având proprietăți relativ distincte; s-a ajuns la dorința de echilibru intre clase pentru a nu fi dezavantajați anumiți jucători.
Alt exemplu ar fi modul in care se acumulează experiența; in variantele inițiale se putea face prin omorarea aceluiași tip de monstru de nenumărate ori. Aces procedeu este pe cale de dispariție deoarece jucătorii au ajuns la un consens ca, deși vor sa avanseze, ar trebui sa li se ofere alternative interesante si sa fie chiar descurajate aceste cai plictisitoare.
Dependența de aceste jocuri, care a fost întotdeauna un motiv de îngrijorare pentru părinți si pentru cei apropiați de jucatori, face parte tot din cultura genului. Unii jucători au o părere proasta despre cei care-si pierd o mare parte a timpului in joc pe când alții, din contra, ii desconsidera pe cei care nu-si permit investiția de timp pentru a juca „așa cum trebuie”.
Unii jucători chiar aseamănă, in gluma, viața reala cu un MMORPG.
Trenduri in 2008
Deoarece exista foarte multe jocuri de acest gen și evoluția se produce intr-un ritm accelerat atât de la un joc la altul cat si in cadrul aceluiași joc de la o versiune la alta cat si in aceeași versiune prin update-uri si patch-uri este greu de prevăzut o direcție clara de evoluție.
Cu toate ca schimbările se produc non-liniar evoluând simultan in mai multe direcții, se pot observa totuși unele comune mai multor jocuri si care par a se impune in cultura jocului:
„raid group quest” – quest-uri ce implica mai multe persoane si care au scopul de a stimula actiunea in grup si comunicarea
„instance dungeons” ” – zone in care grupul intrat este izolat de celelalte caractere „reale” ale jocului, putand interactiona doar cu monștrii si personajele artificiale, ghidate de calculator; Acest lucru este o incercare de a reduce cantitatea de date transmisa de server către clienți.
Adaugare posibilitatilor de joc „single” pentru ai captiva si pe cei care inițial nu cunosc pe nimeni in joc;
Stimularea jocului in grup prin acordarea de bonusuri jucătorilor care s-au organizat si au colaborat in rezolvarea unei misiuni, bonusuri pe care nu le-ar fi primit jucând individual;
Posibilitatea ca jucătorii sa contribuie la dezvoltarea lumii virtuale:
Crearea de artefacte: cărți, arme, armuri, … ; Acestea pot fi vândute altor jucători sau „magazinelor” virtuale;
Construcția de case, magazine, …
Cumpărarea si modificarea unor arii ale jocului: grădini, parcuri, zone de pădure
Administrarea magazinelor virtuale, a barurilor, hanurilor, …
Jocuri licențiate după cărți, filme, seriale, …
Un trend interesant este apariția unor filme inspirate de jocuri MMORPG ( filmul „Project 880” va apărea după jocul lui James Cameron din care este inspirat).
Evoluția site-urilor
Sit Web
Expresia Sit Web (sit web, web sait, uneori și web site sau website) provine din cuvântul englez website și desemnează o grupă de pagini web multimedia (conținând texte, imagini fixe, imagini mișcătoare și chiar sunete), accesibile în Internet în principiu orișicui, de obicei pe o temă anume, și care sunt conectate între ele prin așa-numite hyperlinkuri. Paginile web sunt descrise pe scurt ceva mai jos.
Diversele situri web pot fi oferite de către o companie, un proiect, o rețea de utilizatori, o persoană particulară, o administrație publică și multe altele. Actualmente (2007) numărul de situri web din Internet a depășit deja 100 de milioane.
De obicei un sit web este administrat (creat, întreținut și actualizat) de către un așa-numit webmaster, dar există și alte posibilități:
situl web se actualizează automat și permanent pe baza unei bănci de date;
paginile sale se creează în mod dinamic și automat în funcție de acțiunea utilizatorului în cadrul unei aplicații web;
situl web se creează și e administrat chiar de către utilizatorii ("vizitatorii") săi (vezi și Web 2.0).
La începuturile Internetului fiecare sit web se accesa prin indicarea adresei sale numerice specifice (adresa IP), de ex. 155.284.317.027. Ulterior pentru siturile web s-au introdus și numele de domenii, care permit indicarea adresei respective în mod mult mai comod, prin cuvinte sau nume ușor de reținut, ca de ex. www.wikipedia.org. Adresele de situri web trebuie să fie clar stabilite, unice pe lume, și chiar garantate pentru posesorul respectiv.
Pagina web
Un sit web este alcătuit de regulă din mai multe pagini web. O pagină web este un document creat cu ajutorul unui limbaj de programare cum ar fi HTML, PHP, ASP sau AJAX, fiind accesibil vizitatorilor prin intermediul protocolului HTTP, care transferă informația de la server la browser. Pagina web se numește așa deoarece afișată pe un monitor, ea se aseamănă cu o pagină de ziar: de obicei paginile web au o lățime care încape în întregime pe ecran. În schimb, pagina poate fi chiar mult mai înaltă decât înălțimea ecranului, ea putând fi totuși ușor afișată cu ajutorul funcțiilor normale ale mausului și browser-ului folosite, prin "tragere" în sus și în jos. De asemenea, un sit web poate fi vizualizat pe orice dispozitiv conectat la Internet capabil să afișeze informații prin intermediul protocolului HTTP (telefoane mobile, PDA-uri, etc.).
Un sit web alcătuit din mai multe pagini are de obicei o pagină inițială sau principală numită homepage, de la care pleacă legături către paginile interioare, secundare. Structurile și schemele de "navigare" din interiorul siturilor web sunt foarte diferite, în funcție de scopurile, dorințele și posibilitățile ofertantului de informații. De obicei această homepage este chiar pagina de start a sitului, pe care ofertantul o face cunoscută la public.
Tipuri de situri web după conținut
Siturile web se pot clasifica după o mulțime de factori, dar principalul factor rămâne subiectul de activitate (sau conținutul) sitului. Din punct de vedere tehnologic un sit web poate fi alcătuit, din orice tipuri de date și informații statice, camere de discuții, produse și servicii de vânzare, anunțuri, formulare de completat online, sunete digitalizate, clipuri video, imagini statice și animate, efecte speciale, meniuri dinamice și multe, multe altele.
Vorbind la un nivel mai înalt, subiectul (tema) un sit web poate fi: un așa-numit blog, portal, catalog web, magazin virtual, bancă, universitate, bibliotecă, enciclopedie, revistă, ziar și aproape orice altceva. Un exemplu de sit web oarecum surprinzător este CouchSurfing, un sistem de mijlocire de locuințe particulare pentru găzduirea pe timpul concediului a călătorilor interesați de contacte cu noi persoane particulare și noi culturi.
Dacă la început nu s-a pus accent prea mare pe latura estetică, în zilele de azi se acordă o importanță din ce în ce mai mare nu numai conținutului de informații al unui sit web, dar și esteticii, dinamicii și atractivității lui.
La ora actuală (2007) Internetul conține sute de milioane de pagini web, pe cele mai variate subiecte și limbi. În octombrie 2006, Netcraft, o companie de monitorizare a Internetului care produce statistici despre Internet încă din anul 1995, a anunțat că în web există 101.435.235 situri, fiecare cu nume de domeniu propriu (față de 18.000 situri în august 1995).
Web design
Prin web design sau webdesign se întelege în general realizarea de situri web, de la momentul conceperii structurii și interfeței grafice și până la finalizarea programării și introducerea propriu-zisă a datelor – imagini, text, fișiere și alte elemente – care alcătuiesc conținutul sitului.
Scurt istoric
Primul webdesigner a fost chiar inventatorul www-ului, Tim Berners Lee, care a publicat primul sit din istorie în anul 1991. La început siturile nu erau nici pe departe atât de complexe și încărcate grafic cum sunt în prezent, limbajul utilizat – HTML – fiind nu prea puternic și permițând numai o serie limitată de formatări, precum și inserarea de link-uri, pentru a putea "lega" paginile între ele, webdesignul fiind, de fapt, mai mult "programare" web.
În prezent preocuparea pentru aspectul grafic al siturilor, devenite puternice instrumente publicitare și comerciale, justifică în întregime denumirea de "webdesign", iar tehnologiile utilizate s-au diversificat și au devenit din ce în ce mai complexe. Firmele care produc situri lucrează cu angajați specializați pentru fiecare etapă a dezvoltării unui sit, de la stadiul de concepție grafică la programare și editare de conținut pentru SEO (optimizarea siturilor pentru motoarele de căutare). Siturile actuale sunt din ce în ce mai mult axate pe animație interactivă și dinamism, aceste deziderate fiind îndeplinite de exemplu de cunoscutul program Adobe Flash, precum și de alte programe apărute după acesta, care pot genera automat fișiere animate cu extensia .swf.
Realizarea unui sit
Siturile, în forma în care ele se afișează în browsere, sunt de fapt interpretări vizuale, menite să fie înțelese de orice persoană, fără să fie necesare cunoștințe în domeniul informaticii sau al secvențelor de cod redactate de programatori. Aceștia lucrează ori în diverse limbaje din care apoi se generează limbajul specific de script al internetului HTML (HyperText Markup Language), ori direct in HTML. Dacă nu ar exista browserele care știu să interpreteze limbajul de script și să afișeze rezultatul pe ecran, siturile ar fi doar înșiruiri de texte neformatate și, cel mai probabil, fără imagini. În principiu, limbajul HTML indică locul în care să se afișeze diversele elemente vizibile, dimensiunea, culoarea, precum și alți parametri care conferă unei pagini web atât aspectul dorit cât și funcționalitate optimă.
Orice sit web trece în mod necesar prin mai multe etape:
Concretizarea ideilor
Schițarea elementelor vizuale și compunerea structurii sitului
Programarea paginilor web în (HTML, CSS, Javascript etc.)
Testarea sitului
Schimbarea părților care nu corespund țintei
Publicarea sitului pe Internet sau intranet
Modificarea ulterioară și relansarea pe Internet, după nevoile clienților sau ale timpului
După stabilirea structurii sitului se intră în etapa conceperii unei interfețe grafice care, pe lângă scopul pur estetic, trebuie să faciliteze accesul vizitatorilor la toate secțiunile publice ale sitului, să fie comprehensivă și, nu în ultimul rând, să asigure și încărcarea rapidă a paginilor, prin modul în care vor fi realizate diversele elemente grafice.
Din punctul de vedere al designului, siturile sunt în mare parte alcătuite din tabele cu linii invizibile în care se inserează imagini (siglă, imagini-simbol, butoane etc.) și texte, în așa fel încât aspectul să fie unitar și să nu se sesizeze vizual organizarea tabelară. Celulele tabelelor *pot avea fundaluri colorate,
pot fi alcătuite din imagini și desene care se repetă pe orizontală sau pe verticală,
pot fi umplute cu texturi mai mult sau mai puțin neregulate (ca pietrișul, frunzișul etc.)
sau pot rămâne și albe.
Este de notat că actualmente locul tabelelor a fost luat de popularul mod de formatare CSS, care reprezintă o soluție mai "curată" din punctul de vedere al programării decât utilizarea tabelelor.
Astfel, graficianul utilizează inițial un program de grafică (de exemplu, Adobe Photoshop sau Corel PhotoPaint) pentru a concepe un "instantaneu" al sitului respectiv. El creează forma butoanelor, dimensionează și poziționează sigla sitului, stabilește locația meniurilor, dimensiunea și aspectul textului, schema de culori a sitului, precum și alte aspecte specifice. Datorită faptului că această imagine primară este apoi "tăiată" în imagini mai mici, care urmează să fie inserate în tabele sau definite în CSS, din punct de vedere grafic, siturile se supun acelorași reguli de compoziție ca și lucrările grafice tipărite, îmbinate însă cu o serie de parametri tehnici care permit implementarea ulterioară a elementelor de programare. Astfel, un "grafician de web" va lucra altfel decât un "grafician de print", încercând să anticipeze locurile unde pot apărea probleme potențiale și să găsească soluții pentru a evita orice deformare a sitului, indiferent dacă urmează să fie utilizate dimensiuni relative sau absolute. De exemplu, un grafician de web știe că este preferabil să utilizeze fundaluri de tip "culoare indicată din cod" sau de tip "imagine repetată pe axa x sau y", decât fundaluri dintr-o singură imagine foarte mare, care ar reduce mult viteza de încărcare a sitului.
După ce imaginea inițială a fost împărțită în mai multe imagini mici, acestea se introduc în tabele sau se poziționează cu ajutorul CSS, fie prin scrierea directă a codului HTML într-un program simplu de editare text, cum ar fi Notepad, fie prin utilizarea unui editor HTML, în general de tip WYSIWYG, cum ar fi Dreamweaver. Astfel se generează un prim "schelet" al sitului, denumit "mock-up", care simulează situl și toate funcțiile lui, fără a avea însă conținutul real, ci numai texte de tip lipsum și imagini provizorii. În cazul în care este vorba de un sit simplu, cu puține pagini, tot ce mai rămâne de făcut este introducerea conținutului final. În cazul în care este vorba de un site complex, de exemplu un catalog sau un magazin virtual, mock-up-ul intră în etapa de programare complexă, care poate utiliza limbaje mai complicate (de tip server-side ca de exemplu PHP, ASP, sau și de tip client-side) precum și baze de date.
Progresul Web-ului
Limitările hardware si depășirea lor
Apariția web-ului s-a făcut in perioada de început a erei informaticii si a fost supus drasticelor limitări tehnologice ale timpului. O viteza de 1Kb ( 1 kilo bit ) era uneori tot ce puteai obține din maximul 14 Kb oferiți de modem.
Fig 2.1: Fax Modem 14Kb
Apariția pe laptop a internetului s-a făcut la viteze mult mai modeste. Intr-o vreme in care dimensiunile exprimau direct proporțional performanta nu ne mira ca acest modem ( figura următoare ) este de doar 2,4 Kb:
Fig. 2.2: Modem pentru laptop 2.4 Kb
Modemul a fost principala modalitate de conectare la internet si rămâne si azi foarte popular. Evoluția lui descrie in mare parte evoluția internetului. O lista a vitezelor de dialup poate ilustra foarte bine capacitatea de a dezvolta conținut multimedia pe internet in situația in care dorim sa fie accesibil utilizatorilor / clienților:
Astăzi demarcarea intre LAN si WAN e din ce in ce mai ștearsa, Ethernetul devenind protocolul standard de comunicare si conexiunile telefonice fiind înlocuite de astăzi familiarul conector RJ45
Fig. 2.3: Conector RJ45
care mâine va fi si el schimbat pe mai rapida conexiune bazata pe fibra optica:
Fig. 2.4: Conector fibra optica
Viteza uzuala de download a devenit 1Mb / s si este in continua creștere. Ținând cont ca noile cabluri CAT-5 E oferă posibilitatea de conectare la 1 Gb / s iar fibra optica poate duce ușor la 100 Gb / s, fiind teoretizate chiar si soluții de 1.000 – 10.000 Gb / s ne putem imagina ușor dispariția oricăror limite in construcția site-urilor.
Apariția site-ului modern
Când vorbim de viitoarea dispariție a limitelor de realizare a conținutului on-line, vizate sunt, evident, cele tehnologice; mai răman cele de imaginație. Interesant este ca acestea au fost împinse pana acum mult peste tehnologia disponibila, fapt căruia i se datorează frustrarea in navigarea pe internet când timpul de așteptare pentru conținutul unor site-uri poate depăși cu mult limitele răbdării. Aceste limite au fost chiar teoretizate si e de așteptat ca după 1 minut de încărcare sa-l fi pierdut chiar si pe cel mai tenace client, după ce in primele 15 secunde i-am pierdut pe 90% dintre ei !
Ne mai existând problema tehnologica software-ul a explodat iar conținutul internetului se dublează la fiecare 5 ani proporțional cu timpul pe care il petrecem pe internet.
Site-ul de azi înlocuiește 50% din text cu imagini si 50% din imagini cu video. Majoritatea site-urilor realizate in ultimii 2-3 ani conțin muzica de fundal sau diverse sunete corespunzătoare acțiunilor utilizatorului: click pe link-ul devenit buton sau trecerea mouse-ului ( hoover ) peste anumite zone active.
Linkurile text clasice au fost înlocuite cu imagini active, butoane si meniuri pop-up similare aplicațiilor desktop si mai ales jocurilor.
In exemplele de mai jos sunt prezentate doua perechi de site-uri. Prima poza este prezentarea clasica 90% din importanta conținutului este in text iar a doua imagine este prezentarea aceluiași obiect ( joc respectiv film ) dar in varianta moderna in care textul este mai puțin de 10% din valoarea site-ului:
Fig. 2.5 Site prezentare joc – varianta text
Fig. 2.6 Site prezentare joc – varianta flash
Fig. 2.7 Site prezentare film – varianta text
Fig. 2.8 Site prezentare film – varianta flash
Prezentarea lucrarii
Tehnologii folosite
Photoshop
Adobe Photoshop este un software folosit pentru editarea imaginilor digitale pe calculator, program produs și distribuit de compania americană Adobe Systems și care se se adresează în special profesioniștilor domeniului.
Fig. 3.1: Interfața programului Adobe Photoshop
Date curente
Adobe Photoshop, așa cum este cunoscut astăzi, este vârful de lance al gamei de produse software pentru editare de imagini digitale, fotografii, grafică pentru tipar, video și Web de pe piață. Photoshop este un program cu o interfață intuitivă și care permite o multitudine extraordinară de modificări necesare în mod curent profesioniștilor și nu numai: editări de luminozitate și contrast, culoare, focalizare, aplicare de efecte pe imagine sau pe zone (selecții), retușare de imagini degradate, număr arbitrar de canale de culoare, suport de canale de culoare pe 8, 16 sau 32 biți, efecte third-party etc. Există situații specifice pentru un profesionist în domeniu când alte pachete duc la rezultate mai rapide, însă pentru prelucrări generale de imagine, întrucât furnizează instrumente solide, la standard industrial, Photoshop este efectiv indispensabil.
Alături de aplicația Photoshop (ajuns la versiunea CS3), este inclusă și aplicația ImageReady, cu un impresionant set de instrumente Web pentru optimizarea și previzualizarea imaginilor (dinamice sau statice), prelucrarea pachetelor de imagini cu ajutorul sistemului droplets-uri (mini-programe de tip drag and drop) și realizarea imaginilor rollover (imagini ce își schimbă aspectul la trecerea cu mouse-ul peste), precum și pentru realizarea de GIF-uri animate.
Avantaje
Principalele elemente prin care Photshop se diferențiază de aplicațiile concurente și prin care stabilește noi standarde în industria prelucrării de imagini digitale sunt:
Selecțiile
Straturile (Layers)
Măștile (Masks)
Canalele (Channels)
Retușarea
Optimizarea imaginilor pentru Web
Formate fișiere
Photoshop poate citi majoritatea fișierelor raster și vector. De asemenea, are o serie de formate proprii:
PSD (abreviere pentru Photoshop Document). Acest format conține o imagine ca un set de straturi (Layers), incluzând text, măști (mask), informații despre opacitate, moduri de combinare (blend mode), canale de culoare, canale alfa (alpha), căi de tăiere (clipping path), setări duotone precum și alte elemente specifice Photoshop. Acesta este un format popular și des răspândit în rândul profesioniștilor, astfel că este compatibil și cu unele aplicații concurente Photoshop.
PSB (denumit Large Document Format) este o versiune mai nouă a formatului PSD, conceput special pentru fișiere mai mari (2GB) sau cu o informație prezentă pe o suprafață definită de laturi mai mari de 30.000 de pixeli (suportă până la 300.000×300.000 pixeli).
PDD este un format mai puțin întâlnit, fiind asociat inițial aplicației Adobe PhotoDeluxe, astăzi (după 2002) compatibil doar cu aplicațiile Adobe Photoshop sau Adobe Photoshop Elements.
Ultimele instrumente
Camera RAW: Instrumentul oferă acces rapid și facil la imaginile tip RAW produse de majoritatea camerelor foto digitale profesionale și de mijloc. Camera RAW se folosește de toate detaliile acestor fișiere pentru a obține un control total asupra aspectului imaginii, fără a modifica fișierul în sine.
Adobe Bridge: Un browser complex, de ultimă generație, ce simplifică gestionarea fișierelor, poate procesa mai multe fișiere de tip RAW în același timp și pune la dispoziția utilizatorului informația metadata de tip EXIF etc.
Multitasking: Adobe introduce posibilitatea de a folosi toate aplicațiile sale din suita "Creative suite 2" în sistem multitasking.
Suport High Dynamic Range (HDR) pe 32 biți: Creează și editează imagini pe 32 biți, sau combină cadre fotografice de expuneri diferite într-una ce include valorile ideale de la cele mai intense umbre până la cele mai puternice zone de lumină.
Shadow/Highlight: Îmbunătățește contrastul fotografiilor subexpuse sau supraexpuse, inclusiv imagini CMYK, păstrând în continuare echilibrul vizual al imaginii.
Vanishing Point: Oferă posibilitatea de a clona, picta sau lipi elemente ce automat se transpun în perspectiva obiectelor din imagine.
Image Warp: Capacitatea de a deforma imaginile plane după o matrice ușor editabilă, folosind mouse-ul.
Corectarea deformărilor cauzate de lentile: Lens Distort corectează cu ușurință efectele obișnuite date de lentilele aparatelor foto precum cele cilindrice, sferice, tip pâlnie, "efectul de vignetă" (funcție de poziționarea față de lumină, colțurile fotografiilor sunt fie întunecate, fie luminate în contrast cu restul fotografiei) sau aberațiile cromatice.
Personalizarea aplicației:Posibilitatea de a personaliza orice scurtătură sau chiar funcțiile din meniul aplicației și posibilitatea de a salva modificările pentru fiecare mod de lucru în parte.
Control îmbunătățit al straturilor (layers): capacitatea de a selecta mai multe straturi în același timp.
Smart objects: abilitatea de a deforma, redeforma și a reveni la starea inițială a obiectelor fără a pierde din calitate
Flash CS3
Adobe Flash sau mai pe scurt Flash este o aplicație utilizată pentru dezvoltarea obiectelor-aplet de tip Flash disponibile în cadrul unor pagini WEB. Prin intermediul obiectelor flash, veți putea crește dinamismul unei pagini precum și facilita interacțiunea cu utilizatorul. Inițial dezvoltată de Macromedia, aplicația Flash a fost preluată de către Adobe© odată cu achiziționarea companiei sus amintite.
Fig. 3.2: Interfața programului Adobe Flash
Avantajele folosirii Flash-ului pe web
Dimensiunea unui fișier SWF versus dimensiunea unui GIF ambele reprezentînd o animație simplă. Elemente grafice vectoriale: dimensiuni mici și scalabil: Pentru a “memora” imaginile un calculator poate recurge la două metode: prima este reținerea pixel cu pixel a imaginii, cea de-a doua este memorarea unor “puncte critice” cu ajutorul cărora imaginea poate fi refăcută. Astfel pentru a afișa un cerc, acesta poate fi memorat într-o imagine de tip raster (cum ar fi formatul BitMap sau Jpeg) – dacă avem un cerc cu o rază destul de mare vor fi memorați nu numai pixelii de pe circumferința cercului ci și cei din interiorul acestuia sau care sunt în jurul său. Spre deosebire, în cadrul formatelor vectoriale (SVG – Scalable Vector Graphics, SWF – ShockWave Flash) sunt reținute doar centrul și raza cercului, calculatorul găsind imediat metoda de afișare a tuturor punctelor ce vor alcătui cercul. Este evident faptul că dimensiunea unui fișier în format rasterizat (jpg, bmp, gif) este mai mare decât cea a unui fișier în format vectorial (din cauza numărului de informații ce vor fi reținute). Atunci când mărim o imagine de tip vectorial nu facem decât să redesenăm o parte a sa, calculatorul putând reda cercul cu aceeași claritate – se cunoaște forma geometrică reprezentată și mărirea imaginii nu reprezintă decât trasarea (la scară) a fostei imagini vectoriale. Atunci când mărim o imagine de tip raster calculatorul nu “cunoaște” despre ce este vorba și operația va consta doar în supra dimensionarea pixelilor (un pixel al cercului va fi afișat în mai multe puncte de pe ecran).
Independența de platformă (browser/sistem de operare): Imaginile vectoriale, deși mai utile, necesită o aplicație care să genereze imaginea (pentru formatul SVG de exemplu există Adobe SVG Player iar pentru SWF avem Playerul de Flash). Independența de platformă apare din cauză că acest program ce „știe” să afișeze imaginile a fost construit pentru o gamă largă de hardware și sisteme de operare: Astfel dacă vom vizualiza obiectul Flash în Windows se va folosi automat Playerul de Flash versiunea Windows, dacă utilizăm un telefon mobil (SmartPhone), se va folosi playerul disponibil pentru telefoane (Flash Player Lite 1.0), sau dacă vom folosi MacOS există un player separat (evident toate playerele vor afișa aceeași imagine finală).
Animații de lungă durată ușor de realizat: animațiile sunt punctul forte al Flash-ului, interfața aplicației dă posibilitatea de a sincroniza (în funcție de timp) diversele obiecte, poziții sau forme ale acestora. Flash-ul nu numai că realizează această sincronizare, dar poate și interpola poziția (sau forma) unui obiect pentru a ușura munca utilizatorului.
Se pot adăuga interfeței elemente multimedia: în interiorul obiectelor Flash puteți importa și manipula (înainte, înapoi, salt la un anumit moment) MP3-uri sau AVI-uri.
Nu necesită cunoștințe de HTML, XHTML: în cazul în care vă hotărâți să realizați un întreg site în Flash, aplicația vă poate furniza odată cu obiectul flash și codul HTML necesar – în acest fel tot ce mai trebuie făcut este doar publicarea sitului pe un server WEB.
Editoare puternice și lucrul facil: (Macromedia) Flash este un editor puternic care dă posibilitatea de atașări de comportamente diverselor obiecte fie folosind interfața de desenare grafică fie prin atașarea de scripturi obiectelor.
Ușurința îmbinării elementelor grafice cu scriptul: atașarea codurilor ActionScript obiectelor din flash se realizează prin selectarea obiectului și introducerea codului asociat obiectului într-o fereastră specială.
Transferabil ca flux de date: pentru ca un film Flash să ruleze pe mașina clientului nu este necesar să fie încărcat în întregime – playerul va afișa doar cât va putea din film așteptând (eventual) încărcarea în continuare. Din acest motiv se pot realiza scripturi speciale care atașate obiectelor Flash pot furniza informații privitoare la procentul de fișier care a fost încărcat.
Dezavantaje ale utilizării Flash-ului
Depinde de player: deși acesta vine instalat pe o suită de browsere (și în cazul în care nu este preinstalat instalarea este destul de rapidă – dimensiunea Playerului Flash este destul de mică și descărcarea acestuia în contextul rețelelor actuale este rapidă), totuși există cazuri în care obiectele Flash ajung pe mașini ce nu au instalată aplicația necesară interpretării obiectelor Flash, ajungându-se în imposibilitatea folosirii fișierelor (Pentru a rula aplicațiile Flash pe aceste calculatoare trebuie exportat obiectul Flash ca un executabil).
Mare amator de resurse: deoarece trebuie să „reconstruiască” de fiecare dată elementele grafice, Playerul Flash (precum și aplicația de dezvoltare) este mare consumator de memorie și procesor (în cazul graficii raster este clar unde trebuiau afișați pixelii ce formează cercul – în cadrul graficii vectoriale trebuie ca pozițiile pixelilor să fie recalculate).
Motoarele de căutare nu pot indexa textul: Flashul lucrează cu mai multe tipuri de texte, majoritatea dintre acestea (textul static) nu poate fi indexat de motoarele de căutare deoarece obiectul Flash este tratat ca element grafic/obiect și roboții de căutare nu au cunoștințele necesare „disecării” obiectelor Flash și extragerii textului intern.
Ușurința utilizării îl face sa fie folosit în cele mai absurde moduri (de exemplu, flash-urile – sperietoare). Pentru aceste tipuri de Flash-uri, făcute de obicei de începători, în limba engleză există un termen special: "flashturbation".
Tehnologie licențiată: fiind o aplicație dezvoltată de o serie de programatori (plătiți pentru a dezvolta Flashul), instrumentul de dezvoltare costă cel puțin 600€[necesită citare]. Totuși specificațiile formatului obiectului Flash sunt disponibile și din acest motiv au apărut (și încă apar) destule instrumente care să utilizeze acest format în scopuri mai mult sau mai puțin productive sau legale. Dintre acestea amintim: Swift3D, Swish, ImperatorFLA, ActionScript Obfuscator.
ActionScript 3.0
ActionScript este un limbaj de scriptare bazat pe ECMAScript. ActionScript este folosit in principal pentru dezvoltarea site-urilor web si a softaware-ului bazat pe platforma Adobe Flash Player ( sub forma fisierelor SWF incadrate in pagin web), dar este folosit si in aplicații cu baze de date( cum ar fi Alpha Five).
Produs inițial de Macromedia, limbajul este acum proprietatea Adobe, care a achiziționat compania Macromedia in 2005 si a continuat proiectele acesteia. ActionScript a fost inițial conceput pentru a controla animații vectoriale simple, 2D, create in Adobe Flash ( anterior numit Macromedia Flash ).
Versiunile ulterioare au adăugat funcționalitatea necesara pentru crearea jocurilor Web-based si a unor aplicații internet grafice cu posibilitatea rulării stream-urilor video si audio.
Sintaxa
Codul ActionScript este free-form astfel poate fi scris cu oricâte spatii libere dorește autorul. Sintaxa de baza este similara limbajului Java.
ActionScript 3.0 are o sintaxa similara cu ActionScript 2.0, dar un set diferit de API – uri pentru crearea obiectelor. Codul minimal necesar in ActionScript 3.0 poate fi in multe cazuri mai voluminos decât in versiunile anterioare datorita gradului mai mare de separare de IDE-ul Flash-ului.
package com.example
{
import flash.text.TextField;
import flash.display.Sprite;
public class Greeter extends Sprite
{
public function Greeter()
{
var txtHello:TextField = new TextField();
txtHello.text = "Hello World";
addChild(txtHello);
}
}
}
Tipuri de date
ActionScript conține in mare parte tipuri de date fundamentale sau simple care sunt compuse pentru a crea date mai complexe. Aceste tipuri sunt similare cu cele din Java.
Deoarece ActionScript 3.0 este o rescriere completa fata de ActionScript 2.0, atât tipurile de date simple cat si cele complexe si moștenirea intre cele din urma s-au schimbat.
Tipurile principale
Boolean – Acest tip are doar 2 valori posibile: true si false. Nici o alta valoare nu este valida.
int – Tipul int reprezintă un număr întreg intre -2,147,483,648 si 2,147,483,647
Null – Tipul Null conține doar o valoare: null. Aceasta este valoarea default pentru tipul String cat si pentru toate tipurile complexe, inclusiv pentru clasa object.
Number – Acest tip poate reprezenta întregi, întregi fără semn si numere in virgula mobila. Tipul de date Number folosește precizia pe 64 bits conforma cu standardul IEEE-754.
String – tipul string reprezintă o secvența de caractere pe 16 bits. Stringurile sunt stocate intern in format Unicode, UTF-16. Versiunile anterioare de Flash foloseau formatul UTF-8
uint – acesta reprezintă întregi fără semn, pozitivi, intre 0 si 4,294,967,295.
void – acest tip de date conține o singura valoare: „nedefinit”. In versiunile anterioare acesta era tipul default al variabilelor moștenite din Object. In AS 3 tipul default este null.
Tipurile complexe (listare partiala)
Object – Tipul de date Object este definit de clasa Object. Clasa Object este clasa de baza pentru toate clasele din ActionScript.
Array – conține o lista de date. Cu toate ca ActionScript 3.0 este un limbaj puternic tipizat, el nu prezintă posibilitatea definirii array-urilor tipizate; obiectele conținute intr-un array pot avea orice tip.
MovieClip – Obiect pentru animații; un descendent ușor modificat al timeline-ului Flash.
Bitmap – un bitmap simplu, fără animații
Shape – un obiect grafic vectorial fără animații
ByteArray – Conține un array de date binare
TextField – un câmp de text dinamic, opțional interactiv
SimpleButton – un buton interactiv simplu, suportand stările: „up”, „over” si „down”; are o suprafața de interacțiune arbitrara
Date – Un obiect de tip data, conținând timpul curent al sistemului.
Error – Un obiect de eroare generic care permite raportarea erorilor in timpul rulării, când este „aruncat” ca o excepție.
Function – clasa de baza a tuturor definițiilor de metode din Flash.
RegExp – un obiect expresie regulata pentru string-uri
Video – un obiect de playback video, suportând download direct (progressive) sau transport pe baza de streaming.
XML – Un obiect XML revizuit, bazat pe standardul E4C; nodurile si atributele sunt accesate in mod diferit fată de cum se făcea in Action Script 2.0.
XMLList – Un obiect bazat pe array-uri pentru efectuare diverselor catari in obiectul XML.
XML
XML ( Extensible Markup Language ) este un limbaj general, mai mult o specificare a unui mod de a declara si structura datele.Este clasificat ca fiind un limbaj extensibil deoarece permite utilizatorului sa-ti definească propriile elemente.
Scopul principal al limbajului este de a facilita schimbul de date structurate in mod independent de platforma si in special prin intermediul internetului. Este folosit atât pentru codarea sau structurarea intr-o anumita forma a documentelor, cat si pentru serializarea datelor. In contextul serializarii poate fi comparat cu alte limbaje de serializare bazate pe text cum ar fi JSON sau YAML.
A început ca un subset simplificat al SGML ( Standard Generalized Markup Language ) si este conceput sa fie relativ usor inteligibil. Prin adăugarea unor constrângeri semantice, limbaje aplicatie pot fi implementate in XML. Acestea includ XHTML, RSS, MathML, GraphML, Scalable Vector Graphics. MusicXML si multe altele. Limbajul XML poate fi folosit chiar si pentru specificarea acestor limbaje aplicație la nivel semantic si funcțional.
XML este recomandat de World Wide Web Consortium (W3C). Este un limbaj gratuit si cu standarde accesibile tuturor iar recomandările in privința sa conțin atât modul de formatare a documentelor cat si modul de parsare.
Documente XML bine formatate si documente valide
Exista 2 nivele de „corectitudine” in formatarea documentelor XML:
Bine formatate – Un document bine formatat se conformează tuturor regulilor de sintaxa XML. De exemplu, daca o eticheta de început apare fără eticheta de final corespunzătoare, nu este bine formatat. Un document care nu este bine formatat nu este considerat XML; un parser care se conforma normelor trebuie sa dea eroare la parsare si sa o abandoneze.
Valide – Un document valid se mai conformează si unor reguli semantice. Aceste reguli pot fi definite de utilizator sau incluse intr-o schema XML sau DTD. De exemplu, daca un document conține un element nedefinit, un parser de validare nu îl va procesa.
Exemplu de xml bine formatat:
<recipe name="bread" prep_time="5 mins" cook_time="3 hours">
<title>Basic bread</title>
<ingredient amount="3" unit="cups">Flour</ingredient>
<ingredient amount="0.25" unit="ounce">Yeast</ingredient>
<ingredient amount="1.5" unit="cups" state="warm">Water</ingredient>
<ingredient amount="1" unit="teaspoon">Salt</ingredient>
<instructions>
<step>Mix all ingredients together.</step>
<step>Knead thoroughly.</step>
<step>Cover with a cloth, and leave for one hour in warm room.</step>
<step>Knead again.</step>
<step>Place in a bread baking tin.</step>
<step>Cover with a cloth, and leave for one hour in warm room.</step>
<step>Bake in the oven at 350(degrees)F for 30 minutes.</step>
</instructions>
</recipe>
Suport pentru folosirea internationala
XML suporta in definirea numelor de elemente, a atributelor, a datelor si a instrucțiunilor de procesare folosirea directa a oricărui caracter Unicode care nu are o semnificație speciala in formatul XML, cum ar fi „<”, „>”, „&” … si alte câteva caractere.
Prin urmare următorul document este bine formatat deși conține caractere chinezești si chirilice:
<?xml version="1.0" encoding="UTF-8"?>
<俄語>Данные</俄語>
Avantaje
Este bazat pe text.
Suporta Unicode astfel permițând transmiterea oricărei informați, in orice limba scrisa.
Poate reprezenta structurile de date comune in programare: liste, arbori, …
Formatarea sa este auto-documentata, descriind elementele, structurarea si relațiile lor cat si valorile acestora.
Cerințele stricte de sintaxa si parsare fac algoritmii necesari pentru a parcurge documentul extremi de simpli, eficienți si consecvenți.
XML este folosit intensiv ca format pentru stocarea documentelor si procesarea lor, atat on-line cat si off-line.
Este bazat pe standarde internaționale
Poate fu updatat incremental.
Permite validarea folosind limbaje schematice cum ar fi XSD si Schematron, ceea ce face unit-testing-ul mai eficient si ușurează in general toate procedeele de testare si validare automatizata
Structura ierarhica este potrivita pentru majoritatea documentelor
Este independent de platforma si astfel relativ imun la schimbările in tehnologie.
Compatibilitățile cu alte versiuni sunt relativ ușor de menținut.
Predecesorul sau, SGML, este folosit încă din 1986, deci exista o vasta experiența si o mare diversitate de software disponibil
Dezavantaje
Sintaxa XML este redundanta si mult mai voluminoasa comparata cu reprezentarea binara a acelorași date.
Redundanta poate afecta performantele prin costuri sporite de stocare, transport si prelucrare.
Comparata cu alte formate de transmitere bazate pe text, sintaxa XML este complexa si greu lizibila (ex: comparare cu formatarea documentelor Word).
Modelul ierarhic de reprezentare este limitat in comparație cu un graf orientat pe obiecte.
Descrierea relațiilor non-ierarhice intre noduri necesita efort suplimentar.
Namespace-urile in XML sunt problematic de folosit si dificil de implementat in parser
Calitatea de auto-documentare provoacă ambiguități in înțelegerea semanticii structurilor.
Distincția intre conținutul si atributele unui element poate fi vaga de multe ori.
Realizare
Paginile ( CPage)
Descriere in XML
Descrierea paginilor este făcută integral in XML. După încărcarea acestuia, toate detaliile despre pagina sunt cunoscute: icoanele pe care le conține, poziționarea acestora, categoria paginii, s.a.m.d.
O descriere XML a paginii este in genul:
<?xml version="1.0" encoding="UTF-8"?>
<page>
<properties>
<name>Main</name>
<category>Main</category>
<frame>
<use>YES</use>
<path>./xmls/FramePage.xml</path>
</frame>
</properties>
<icons>
…
</icons>
</page >
Exista mai multe categorii de pagini. Atât conținutul acestora cat si comportamentul lor este diferit. Principalele categorii de pagini sunt: Main, MainCategory si Game.
“Cuprins-ul”
Încărcarea paginilor se face la intrarea pe site. Toate paginile sunt încărcate si este afișat un progress bar pentru a da utilizatorului o idee despre progresul încărcării. Acest lucru se face deoarece o așteptare inițiala mai mare însoțita de un indiciu al timpului rămas de așteptare este de preferat unor așteptării ulterioare la încărcarea fiecărei pagini.
Toate paginile care aparțin site-ului sunt listate intr-un „cuprins” sub forma :
<?xml version="1.0" encoding="UTF-8"?>
<page>
<properties>
<name>PageIndex</name>
<category>Main</category>
<frame>
<use>NO</use>
<path></path>
</frame>
</properties>
<pageList>
<link type="MainCategory">./xmls/…/TBSGamesPage.xml</link>
<link type="MainCategory">…</link>
<link type="MainCategory">…</link>
…
<link type="Game">./xmls/…/HeroesOfMightAndMagic5.xml</link>
<link type="Game">…</link>
<link type="Game">…</link>
…
</pageList>
</page >
Încărcarea, clasele Loader
Încărcarea unei pagini se face in mod diferențiat funcție de categoria paginii. Pentru fiecare categorie de pagina exista o clasa CLoader specializata.
Principalele categorii de pagini sunt: Main, MainCategory si Game. La acestea urmează a fi adăugate categoriile: Forum si Store. Pentru categoriile deja existente au fost create clasele de încărcare: CMainLoader, CCategoryLoader, CGameLoader.
Toate clasele de loadere sunt derivate din CFrameLoader, care este la rândul ei derivata din CPageLoader. Aceasta derivare implica o mai mare ușurința in adăugarea de elemente comune cum ar fi:
Încărcarea unui frame (icoane si elemente grafice comune site-ului)
Reacționarea la anumite evenimente comune
Trimiterea unor evenimente ( toate paginile urmăresc progresul încărcării elementelor ce le aparțin si comunica statusul încărcării către progress bar-ul de la încărcarea site-ului.
Fig. 3.3: Ierarhia claselor Loader
Clasa CLoader
Aceasta este de fapt o clasa tip „Factory” care parseaza conținutul XML-ului descriptor al paginii si in funcție de tipul paginii, creează categoria de loader corespunzătoare si-i pasează obiectul XML.
…
switch(pageType)
{
case CSite.PAGE_TYPE_MAIN:
var mainLoader:CMainLoader = new CMainLoader(xml, stage);
mainLoader.addEventListener(CPageLoader.E_PAGE_LOADED,…);
mainLoader.Load();
break;
case CSite.PAGE_TYPE_MAIN_CAT:
var catLoader:CCategoryLoader = new CCategoryLoader(xml, page);
…
break;
case CSite.PAGE_TYPE_GAME:
var gameLoader:CGamePageLoader = new CGamePageLoader(xml, page);
…
break;
…
default: // unknown page type -> do nothing
…
break;
}
…
Clasa CPageLoader
Din aceasta clasa sunt moștenite toate clasele ce efectuează încărcările efective. Tot aici sunt implementate elementele comune dintre care notabil ar fi ca aici este funcționalitatea de urmărire a încărcării paginii.
…
protected var iTotalFrameItems:uint = 0;
private var iTotalFrameItemsLoaded:uint = 0;
private var bFrameDrawn = false;
protected var iTotalPageItems:uint = 0;
private var iTotalPageItemsLoaded:uint = 0;
private var bPageDrawn = false;
…
…
protected function PageItemLoaded(e:Event)
{
…
}
…
protected function FrameItemLoaded(e:Event)
{
…
}
…
protected function PageLoaded()
{
…
}
…
Clasa CFrameLoader
Aici se încărca toate elementele comune paginilor site-ului. Acesta reprezintă cel mai ușor mod de a menține un aspect unitar si in același timp de a nu avea duplicări inutile de cod, care ar face site-ul mai greu de întreținut, chiar imposibil după ce depășește un anumit număr de pagini.
O pagina poate alege totuși sa nu încarce frame-ul prin setarea corespunzătoare a câmpurilor din XML-ul descriptor.
De asemenea frame-ul nu este unic, el poate fi specificat diferit in funcție de setarea din XML-ul descriptor al paginii. Totuși nu este permisa ( momentan ) încărcarea mai multor frame-uri pentru aceeași pagina. Acest lucru se poate dovedi util si poate fi inclus in versiuni ulterioare ( comerciale ) ale framework-ului.
…
<properties>
…
<frame>
<use>YES</use>
<path>./xmls/FramePage.xml</path>
</frame>
</properties>
…
Clasa CMainLoader
De aceasta clasa aparține de fapt o singura pagina, pagina main. Ea are ca particularitate modul circular de aranjare a icoanelor. Meniurile icoanelor păstrează acest mod de orientare in forma de masa rotunda.
Fig. 3.4: Icoanele circulare ale paginii principale
Pagina main păstrează totuși icoanele din dreapta, utilitarele de navigare, sesiune si informare, adică încarce frame-ul.
Clasa CCategoryLoader
Toate paginile conținând listele de jocuri dintr-o anumita categorie sunt încărcate de acest Loader.
Acest gen de pagina are ca specific listarea, sub forma de rânduri si coloane,a icoanelor jocurilor din respectiva categorie. Aceste icoane au intre intrările meniului asociat si linkul către pagina descriptiva a jocului.
Clasa CGameLoader
Aceasta clasa de loader încarcă paginile specifice fiecărui joc. Conține o poza in format mare cu jocul, sub aceasta exista o scurta intrare informativa despre joc iar in dreapta ei exista un text in care este prezentat pe larg jocul.
Fig. 3.5: Pagina unui joc
Textele sunt încărcate si ele de subclase care permit o ușoara formatare prin XML-ul descriptor. Ambele regiuni de text prezintă posibilitatea de scrool si sunt pe fundal transparent, care permit vizualizarea fundalului general al site-ului.
Icoanele (CIcon)
Descriere XML
Icoanele reprezintă principalul mod de interacțiune cu site-ul. Linkurile text au fost înlocuite cu meniuri pop-up aparținând icoanelor.
Descrierea acestor elemente se face in XML si este încadrata in descrierea paginii. Parsarea si crearea icoanelor se face la crearea paginii de care aparțin.
O descriere de icoana se face in următorul format:
<icon type="Game category" >
<urlSelectedIcon>./…/pic1.png</urlSelectedIcon>
<urlUnselectedIcon>./…/pic2.png</urlUnselectedIcon>
<relatedPics>
<pic…</pic>
<pic…</pic>
…
</relatedPics>
<infoText>Action games</infoText>
<menu …>
<entry …>…</entry>
<entry …>…</entry>
…
</menu>
</icon>
Încărcarea, clasa CIcon
Încărcarea se face prin crearea unui obiect al clasei CIcon, căruia i se pasează in constructor un obiect XML conținând descrierea icoanei.
Clasa efectiva a fiecărui obiect este determinata la construcție prin interpretarea atributului type din descriere:
<icon type="Game category" >
In funcție de acesta se iau unele decizii privind modul de interacțiune al icoanei cu utilizatorul si despre poziționarea icoanei in pagina.
switch(nodes[i].attribute("type").toString())
{
…
case "Login":
Icon = new CLoginIcon(page, nodes[i]);
…
break;
case "Profile":
Icon = new CProfileIcon(page, nodes[i]);
…
break;
…
// None of the above …
default:
Icon = new CIcon(page, nodes[i]);
Icon.visible = false;
break;
}
// Add on load event listener to every icon
Icon.addEventListener(CIcon.LOADED, FrameIconLoaded);
this.iTotalFrameItems++;
La încărcarea icoanei se citesc si cele doua câmpuri „urlSelectedIcon” si „urlUnselectedIcon” ce reprezintă de fapt imaginile pe care le va avea icoana când mouse-ul este pe ea si când nu este.
Decizia de a încărca doua poze diferite s-a făcut in detrimentul memoriei ocupate si al timpului de încărcare dar in favoarea calității imaginii si al timpului de execuție.
Secțiunea „infoText” reprezintă un chenar cu un text explicativ ce va apărea in momentul in care utilizatorul are mouse-ul poziționat pe icoana.
In regiunea meniului s-a redus prin „…” dimensiunea; se va reveni in capitolele următoare asupra unor aspecte importante din aceasta parte. Momentan trebuie doar menționat ca aici sunt descrise intrările meniului fiecărei icoane si ca acestea sunt unica modalitate de interacțiune cu site-ul: navigare, logare, s.a.m.d.
Poziționarea in pagina
Poziționarea icoanei in pagina se face atât in funcție de pagina in care e încărcată cat si in funcție de tipul icoanei.
In principiu modul de poziționare se hotărăște in cadrul clasei CIcon iar apoi se trimit coordonatele spre a fi translatate unei clase statice de poziționare.
// Position the icons on a circle
public static function SetIconOnCircle( pCircleCenter:Point,
iItemIndex:Number,
iTotalItems:Number,
iMaxDimension:Number,
movIcon:CIcon,
bAlsoSetIconMenuCenter:Boolean)
{
…
}
…
Poziționarea poate fi in cerc ( pe care o face funcția data in exemplul de mai sus), in tabela pe rânduri si apoi pe coloane sau pe coloane si apoi pe rânduri sau doar pe un rând respectiv o coloana.
Interacțiunea
Interacțiunea cu icoana se face la intrarea mouse-ului pe suprafața ei activa cat si prin acționarea lui in cadrul acestei suprafețe.
La interacțiunea cu icoana se afișează poza specificata in secțiunea <urlSelectedIcon> a XML-ului descriptor. De asemenea se afișează si meniul, daca a fost definit unul pentru ea.
Meniurile (CMenu)
Descriere XML
Ca toate celelalte elemente ale site-ului, meniurile sunt descrise prin tag-uri XML in cadrul icoanei de care aparțin.
<menu placementMode="circle" alphaSelected="1.0" alphaUnselected="0.5" colorEnabled="0xFFFF99" colorDisabled="0x999999">
<entry id="Browse" linkPageName="" linkPageCategory="Main">…</entry>
<entry id="Store" linkPageName="" linkPageCategory="Main">…</entry>
<entry id="Help">…</entry>
…
</menu>
In aceasta descriere avem următoarele câmpuri mai importante:
<menu …> … </menu> – intre aceste tag-uri apare descrierea meniului
placementMode – atribut care identifica modul de plasare al meniului relativ la icoana
alphaSelected – transparenta intrării din meniu pe care se afla mouse-ul ( 1.0 este echivalent cu opac 100%)
alphaUnselected – transparenta intrărilor inactive din meniu ( 1.0 este echivalent cu opac 100%)
colorEnabled – culoarea intrării in meniu daca ea poate fi accesata
colorDisabled – culoarea intrării in meniu daca ea nu poate fi accesata
<entry …> … </entry> – aici se face descrierea unei intrări in meniu
id – un identificator al acțiunii pe care aceasta intrare o va executa la mouse-click
linkPageName – atribut opțional care, daca id-ul o permite, arata numele paginii la care duce apasarea pe acest item al meniului
linkPageCategory – împreuna cu linkPageName identifica in mod unic o pagina in cadrul site-ului la care acest link duce ( daca id-ul nu are alta semnificație)
Icarcarea, clasa CIconMenu
Încărcarea meniului in site se face prin crearea unei clase CIconMenu, căreia i se pasează ca parametru la constructor descrierea meniului sub forma de element XML (clasa din AS3).
Acest lucru se face din codul icoanei de care aparține meniul si se face la încărcarea icoanei. Tot aici se face si plasarea lui, astfel încât la accesarea icoanei meniul nu trebuie desenat sau încărcat ci doar făcut vizibil.
In cadrul obiectului CIconMenu se instantiază atâtea obiecte CMenuItem cate sunt descrise in XML. Acestea vor avea atributele descrise si vor executa acțiunile desemnate de id-ul fiecăreia.
Poziționarea relativ la icoana
Poziționarea meniului se face relativ la icoana de care apartine si este conforma cu descrierea din XML:
<menu placementMode="circle" …>
…
</menu>
Poziții valide pot fi:
Right
Left
Circle
…
Poziționarea tip „circle” este unica pentru meniul icoanelor de pe pagina Main, care sunt plasate in maniera round-table si meniurile păstrează acest aranjament.
Evenimente si acțiuni
Meniurile au mai multe „intrari” sau item-uri care pot fi accesate. Prin accesarea unui item se trimite evenimentul asociat cu id-ul acestuia si el este „prins” de unul sau mai multe event-handlere, obiecte al căror scop este ascultarea acestor evenimente si execuția codului asociat.
Unele evenimente sunt executate local si au repercusiuni doar asupra paginii curente iar altele sunt executate la nivel de site ( ex: login) si afectează întreaga sesiune.
Păstrarea stării sesiunii (CSite)
Mecanismul de Back si Forward
Orice navigare pe internet, in orice browser permite in mod tradițional navigarea spre o pagina anterior accesata cat si înapoi spre pagina de la care s-a pornit cu navigarea in urma.
In flash stările nu pot fi urmărite de către browser. Daca aplicația flash a făcut o navigare interna, adică nu a schimbat efectiv pagina html pe care o poate urmări browser-ul, acesta din urma nu poate oferi funcționalitatea de „history”. Acest lucru trebuie oferit intern in ActionScript.
Păstrarea stării in cadrul aplicației oferite ca suport practic aici se face prin înregistrarea intr-o stiva „back” a tuturor paginilor anterioare; similar se înregistrează si o stiva”forward”. La accesarea meniului de navigare înapoi, pagina curenta este plasata in stiva de navigare „forward” iar ultimul element (pagina) introdus in stiva de navigare „back” este extras si devine pagina curenta.
Fig. 3.6: Incoana de navigatie
Pentru optimizare s-a apelat la mai multe elemente care păstrează datele necesare mecanismului si permit sa nu se efectueze navigarea daca pagina anterioara sau viitoare este tot cea curenta. Acestea nu vor fi nici înregistrate in stive.
Fig. 3.7: Mecanismul „history”
Login si Logout
Mecanismul de login si logout este implementat la nivel de Site pentru a permite păstrarea stării de la o pagina la alta.
Fig. 3.8: Dialogul de Login
Anumite elemente de funcționalitate nu sunt permise decât userilor înregistrați, iar acest lucru se reflecta in meniuri unde anumite „entry”-uri sunt „disabled”, adică au o alta culoare si nu trimit acțiunea asociata lor in cazul unui click.
La login, toate icoanele primesc eventul si îl transmit meniurilor asociate pentru a permite accesul la entry-urile interzise anterior.
Baza de data pentru login este un XML cu useri. In acest XML, pe lângă datele de login se mai tine si link-ul către un XML cu date specifice userului. Acest lucru permite salvarea stării site-ului la nivel de utilizator.
Păstrarea datelor despre utilizator
Pentru fiecare utilizator se păstrează, pe lângă parola si nume, anumite date pentru a ajuta la personalizarea site-ului si pentru a oferii posibilitatea păstrării anumitor date pe care acesta dorește sa le salveze.
<?xml version="1.0" encoding="UTF-8"?>
<profile>
<name>vali</name>
<password>vali</password>
<real_name>d. vali</real_name>
<profile_xml>./xmls/User Profiles/vali.xml</profile_xml>
<age>25</age>
<address>Timisoara, here and there</address>
<email>[anonimizat]</email>
<favorites>
<game_pages>
<page>page 1</page>
<page>page 2</page>
…
</game_pages>
<forums>
<forum>forum 1</forum>
<forum>forum 2</forum>
…
</forums>
<users>
<user>user 1</user>
<user>user 2</user>
…
</users>
</favorites>
…
</profile>
Pe lângă tag-urile XML descrise mai sus, pot fi adăugate altele care sa salveze anumite preferințe despre aspectul site-ului, notițe personale despre anumite pagini, s.a.m.d. .
Posibilitatea configurării aspectului site-ului
Posibilitatea configurării aspectului site-ului se bazează pe informațiile cuprinse in fisa utilizatorului.
In funcție de setările din acest XML, pentru fiecare user site-ul poate afișa alt background, alte animații de fundal, etc.
Posibilitatea de configurare a acestor preferințe va fi inclusa in funcția de Edit Profile, care momentan nu este implementata.
Concluzii
Intr-o lume dinamica, in care ecuația capitalista „timpul = bani” ne este cunoscuta încă din copilărie, nu mai e loc de text. Cel mai bine completează ecuația precedenta o fraza din înțelepciunea populara: „O imagine face cat 1000 de cuvinte”.
Intr-adevăr daca textul alcătuia in mod tradițional marea parte a unui site web, azi, când limitările de viteza sunt aproape dea a fi un capitol încheiat al istoriei cibernetice, pozele au luat primul plan. Dinamica spațiului virtual in care ne cufundam din ce in ce mai mult si mai mulți împinge chiar mai departe limitele tehnologiei si conținutul multimedia devine o componenta obișnuita a oricărui site.
O pagina fără imagini grafice nu tine utilizatorul conectat mai mult decât e necesar pentru apăsarea butonului „back”, privit ca o scăpare rapida si binevenita din anosta si sărăcăcioasa pagină la care s-a ajuns. Mai mult, un site interesant se remarca prin grafici dinamice si conținut capabil sa reacționeze la interacțiunea cu utilizatorul in maniera pe care odinioară doar jocurile o făceau.
Sunetul si video-clipurile au fost pionierii migrării conținutului web de la static la dinamic, dar acum si acestea sunt elemente prea obișnuite pentru a mai prezenta interes. Capacitatea unui site de a tine utilizatorul conectat depinde strict de modul interactiv in care este realizat. Lumea virtuala este noul trend si este deja foarte bine reprezentat de jocurile MMO ( Massive Multiplayer Online) al căror reprezentant principal este genul MMORPG ( Masive Multiplayer Online Role Playing Games). Planșele interminabile simulând lumi de fantezie, in care majoritatea daca nu toate personajele au in spate un jucător real sunt modul in care este perceputa acum interacțiunea on-line.
Magazinul de arme din MMORPG, in care discuția se poarta cu un vânzător condus de un alt jucător real sau cel puțin cu un personaj ghidat de inteligenta artificiala, este predecesorul tuturor magazinelor virtuale. Interacțiunea clasica „add to cart”, „remove from cart” va fi cat se poate de repede înlocuita cu vânzători reali, întruchipați de personaje virtuale, care vor fi capabili sa facă recomandări si sa vândă marfa in mod similar celui in care suntem obișnuiți in realitatea noastră limitata ca viteza, blocata in trafic sau pur si simplu dependenta de limite geografice de care nu mai vrem sa știm de acum încolo.
Viitorul înseamnă dinamica web, înseamnă programare si generare de grafici 3D, inteligenta artificiala, o lume virtuala complexa si aproape de nedistins de cea reala si mai ales ușurința de a schimba si de a reconfigura toate aceste aspecte de la o zi la alta, ținând pasul cu gusturile mereu schimbătoare ale personajelor … pardon, persoanelor pe care dorim sa le atragem drept clienți.
Bibliografie
http://ro.wikipedia.org/wiki/Internet
http://ro.wikipedia.org/wiki/Web
http://ro.wikipedia.org/wiki/Web_2.0
http://ro.wikipedia.org/wiki/Photoshop
http://ro.wikipedia.org/wiki/Adobe_Flash
http://ro.wikipedia.org/wiki/Sit_web
http://ro.wikipedia.org/wiki/Web_design
http://en.wikipedia.org/wiki/MMORPG
http://en.wikipedia.org/wiki/Adobe_Flash
http://en.wikipedia.org/wiki/ActionScript
http://en.wikipedia.org/wiki/Xml
http://en.wikipedia.org/wiki/Modem
http://en.wikipedia.org/wiki/List_of_device_bandwidths
http://en.wikipedia.org/wiki/The_Spiderwick_Chronicles_%28film%29
http://en.wikipedia.org/wiki/The_Witcher_(video_game)
http://www.thewitcher.com/
http://www.spiderwickchronicles.com/
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Configurarea Aspectului Unui Site (ID: 149642)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
