Powered By Blogger

marți, 16 decembrie 2008

Fun with Javascript

Tot amanand inceperea rezolvarii la tema 3, am dat peste ceva funny. Se ia urmatoarea bucata de cod :

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; var DI= document.images; DIL=DI.length; function A(){for(i=0; i<DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5+"px"; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5+"px"}R++}tag=setInterval('A()',5 );document.onmousedown=function(){clearInterval(tag);for(i=0; i<DIL; i++){DI[i].style.position="static";}}; void(0)

Se da copy la bucata de cod si apoi paste in address bar- ul browserului. Enjoy!
Pentru a intelege mai usor de ce toate imaginile de pe pagina asta au inceput sa zboare (pentru ca sigur ai dat paste fix in tab-ul asta al browser-ului) incearca sa te uiti un pic pe codul de mai sus.

luni, 8 decembrie 2008

CTT - Concurrent Task Tree

CTT inseamna Concurrent Task Tree si este utilizat pentru specificarea modelelor orientate pe sarcini. Modelul CTT este folosit pentru descrierea aspectelor functionale ale aplicatiilor inca din primele stagii de dezvoltare, aducand astfel un plus fata de metodele traditionale utilizate in design-ul aplicatiilor. Aceasta notatie permite proiectantului sa descrie comportarile orientate pe evenimente (event-driven), dar si modificarile de stare ale sistemului.
Caracteristicile CTT :
- structura ierarhica intuitiva, bazata pe tehnica "divide-et-impera"
- sintaxa grafica - sub forma de arbore ce reflecta structura ierarhica, relatiile dintre entitati fiind usor de observat
- notatia concurenta - activitatile aflate pe acelasi nivel de abstractizare pot fi ordonate temporal prin utilizarea de operatori
- focalizarea pe activitati - proiectantii isi concentreaza atentia pe aspectele importante in proiectarea aplicatiei si anume relatiile dintre utilizator si sistem si lasa pentru etapa urmatoare detaliile legate de implementare

Editorul care permite prelucrarea modelelor de sarcini este CTTE si poate fi downloadat de la adresa : http://giove.cnuce.cnr.it/ctte.html .

Interfata editorului este urmatoarea :

Task-urile pot fi de urmatoarele tipuri :
- user - efectuate integral de utilizator
- application - efectuate integral de sistem
- interaction - interactiuni ale utilizatorului cu sistemul
- abstract - actiuni complexe ce nu se incadreaza in nici unul din cazurile anterioare
Tipuri de relatii temporale:
- T1[]T2 - Selectie
- T1 |=| T2 - Ordine independenta
- T1 ||| T2 - Concurenta
- T1 |[]|T2 - Concurenta cu schimb de informatii
- T1 [>T2 - Dezactivare
- T1|>T2 - Suspendare/Reluare
- T1>>T2 - Activare
- T1[]>>T2 - Activare cu transmitere de informatie

Utilizarea editorului pe scurt :
- adaugarea un task nou : se selecteaza task-ul parinte sau frate (depinde de locul unde va fi introdus noul task in arborele deja existent) si apoi se da click pe icon-ul corespunzator tipului de task dorit
- adaugarea unei relatii temporale : se selecteaza task-ul din stanga si apoi se da click pe icon-ul relatiei temporale dorite
- dupa terminarea constructiei arborelui se verifica structura (Check model structure)
- dupa verificare structurii si corectarea tuturor erorilor aparute se poate trece la simularea modelului (Start task model simulator)

Desi ideea de proiectare folosind sarcini pare a fi utila, aplicatia care face acest lucru, CTTE, are inca multe buguri si trebuie sa te inarmezi cu multa rabdare inainte de a te apuca sa proiectezi ceva in aceasta aplicatie. Cateva sfaturi utile :
- salvati cat mai des, folosind optiunea "Save as"
- nu folositi CTRL+Z, CTRL+Y pentru UNDO, REDO, ci folositi optiunile din meniul Edit

luni, 1 decembrie 2008

YUI Library


Acum ceva vreme am auzit de la un prieten ca foloseste o librarie de la Yahoo! pentru o aplicatie care ruleaza in browser deoarece exista deja componente care pot fi integrate fara a fi nevoie sa le scrii chiar tu. Si, din moment ce exista deja componentele de care ai nevoie si care au mai fost si testate, de ce sa reinventezi roata cand ai putea sa folosesti YUI Library? Asa ca m-am gandit sa ma documentez si sa aflu ce este acest YUI Library deoarce ideea care sta la baza acestei librarii mi se pare o idee foarte buna si de un real ajutor in multe cazuri. Mai jos am scris pe scurt ce am aflat.

YUI - Yahoo User Interface- Library este o colectie coerenta de resurse JavaScript si CSS care simplifica construirea unor aplicatii care ruleaza in browsere web ce au un continut bogat in elemente interactive. Unele componente din YUI,cum ar fi Event Utility, opereaza la baza si se gasesc acolo pentru a face programarea in-browser mai usoara. Alte componente, cum ar fi Calendar Control, includ obiecte vizuale care pot fi plasate in pagina cu aspect default.
Libraria YUI este gratis,este licentiata sub o licenta BSD permisiva si deci poate fi folosit atat in scop comercial cat si necomercial. YUI este sustinuta de dezvoltatori de la Yahoo!, unde codul YUI este folosit si imbunatatit pentru pagini care sunt vizitate de miliarde de ori in fiecare zi. YUI este din ce in ce mai cuprinzator, bine documentat si este sustinut de o cumunitate in crestere pe forumurile YUI.
YUI este distribuit de pepagina proiectului de pe SourceForge.
In cazul in care exista probleme de implementare comunitate YUI poate fi de un real folos si este deschisa la intrebari si sugestii pe forumurile YUI. Forumurile sunt cel mai bun loc unde se pot pune intrebari, se pot face cautari si cum mii intrebari au fost deja puse si au primit raspunsuri,o simpla cautare poate fi solutia la problemele aparute in cazul folosirii YUI.
O alta intrebare importanta este : YUI este suportata de toate browser-ele? Raspunsul ar fi: Nu; nu exista nici o librarie in intregime scrisa in JavaScript sau CSS care sa fie suportata de toate browser-ele, dar YUI este suportata de marea majoritate a browser-eleor care sunt folosite pe scara larga.
Pentru a fi la curent cu noutatile si cu update-urile care se fac periodic puteti sa va inscrieti la blogul YUI.

Toate aceste informatii au un caracter pur informativ, dar daca v-au trezit curiozitatea puteti afla mai multe direct de la sursa:http://developer.yahoo.com/yui/. Mie mi se pare aceasta librarie foarte interesanta deoarce in primul rand e gratis, e testata, ofera documentatie bine pusa la punct, daca dai de vreo problema poti afla raspunsul pe un forum pe care exista o comunitate numeroasa de dezvoltatori care folosesc libraria si in cazul in care problema nu a fost rezolvata poti oricand sa adaugi bug-ul descoprit in baza de date si astfel sa semnalezi problema care probabil o sa fie solutionata.Poate in urmatoarea faza a proiectului o sa incercam sa folosim si noi aceasta librarie.

Twitter & Twitter4J





Despre Twitter

Este un site de interconectare sociala, simplu din punct de vedere al structurii sale, informatia de baza pentru un utilizator fiind scurte mesaje ce le poate posta la un moment dat pentru a arata ce face el in acel moment. Acest lucru se poate usor observa inca de pe prima pagina a site-ului, unde apare o simpla intrebare: "What are you doing?" si posibilitatea de raspuns intr-un textbox. In ceea ce priveste relatiile sociale, se pot evidentia 2 liste de contacte: friends si followers. Friends sunt contactele carora userul curent le urmareste evolutia posturilor, pe cand un follower este exact opusul. Pe scurt, daca A este friend pentru B, atunci B este follower pentru A.


Despre Twitter4J

Pentru a putea integra intr-o aplicatie proprie informatiile si functionalitatile puse la dispozitie de Twitter unui utilizator inregistrat, acesta poate folosi cu usurinta API-ul dezvoltat de realizatorii site-lui. Dintre implementarile acestui API, una foarte accesibila si usor de utilizat este Twitter4J. Aceasta librarie poate fi utilizata pe orice sistem ce suporta Java (Windows, Unix), si in special versiunea 5.0 a acestei masini virtuale.
Cum se utilizeaza aceasta librarie? Nimic mai simplu decat includerea arhivei twitter4j-1.1.2.jar in classpath-ul aplicatiei si instantierea claselor puse la dispozitie. Clasa de baza folosita este numita chiar Twitter, si are un constructor ce primeste ca parametrii id-ul userului si parola asociata acestuia. Dupa ce se realizeaza autentificarea userului, se pot face diverse actiuni pe baza obiectului Twitter obtinut, de exemplu updatarea statusului curent:
    Twitter twitter = new Twitter(twitterID,twitterPassword);
Status status = twitter.update(latestStatus);
System.out.println("Successfully updated the status to [" + status.getText() + "].");
Libraria Twitter4J este un software opensource si poate fi folosit de toata lumea, atat in scopuri non-comerciale cat si comerciale.