luni, 7 ianuarie 2008
XML is the new Database
Odata cu tema 4, am descoperit XQuery - care ofera interogari asupra XML-urilor. Sintaxa este destul de usor de inteles, mai greu e pana incepi. :P
Asadar dupa ce am realizat ca putem avea o baza de date intr-un XML si putem face interogari/rapoarte/selectii asupra datelor aflate in XML, trebuie sa gasim o modalitate de "executie" a XQuery-ului.
Eu am gasit un program destul de intuitiv, care permite si debug: Stylus Studio 2007, din pacate nu este free, dar merita incercat.
Partea de identificare a campurilor in XML se face destul de frumos:
for $x in doc("file.xml")/books
return $x/text()
Aceasta linie de cod printeaza toate campurile aflate in fisierul "file.xml" continute in tag-ul books. Simplu nu?
Probabil o sa radeti, dar cel mai greu lucru de facut in XQuery a fost sa declar o variabila. :D
Dupa mai multe cautari:
declare variable $avgr as xs:decimal external;
pentru ca mai tarziu, sa se faca si o asignare : $avgr := 1.9;
Concluzia : Avem un fisier XML - plain text, care poate contine orice tip de informatii, grupate in orice fel. Acest fisier poate fi manevrat manual - notepad, in cod - fopen, prin scripturi XQuery si probabil in multe alte feluri nedescoperite. XML power :)
vineri, 14 decembrie 2007
Sezonul cadourilor

Stiu ca multi mi-ati cumparat deja cadoul ideal de Craciun, dar pentru cei care inca se mai gandesc, iata cateva idei pentru prietenii vostri:
- Transparent toaster :
- Cup & Cookies

- DayClock
sâmbătă, 8 decembrie 2007
Yui calendar - the story of a manelo man..
Eu mi-am ales Calendarul si am folosit libraria YUI Library(Yahoo! User Interface) si a iesit chiar bine zic eu... iata!
Alex a ales sa faca Autocomplete, Cristi - Top-ul, iar Ciprian - Counter-ul Intern!
Spor la treaba!
vineri, 7 decembrie 2007
Database vs. Interfete evoluate
- Ce este o baza de date?
- De ce spun ca este optim sa folosim baze de data?
Asadar, "let me be the better person" si voi privi cu alti ochi ideea de a lucra cu bazele de date... cine stie poate o sa imi placa.
Poate revin cu ceva detalii dupa research...
Cateva link-uri utile pentru inceput:
Ajax tutorial, Ajax database, Ajax- MySql
joi, 6 decembrie 2007
Interfete evoluate - mobile devices
Iata ce a facut Google - Google maps Without GPS.
In Retele de Calculatoare se specifica exact tehnologia folosita de posturile de GSM si e o chestie extraordinara ca cineva s-a gandit sa faca o aplicatie de genul asta - mai ales free.
PS: Sunt rea cand spun ca as vrea sa fie Open Source ? Sau macar un API!! Imaginati-va posibilitatile :P
marți, 4 decembrie 2007
Web Crawler
Internetul este o sursa nelimitata de informatii, dar in ultimul timp a devenit si un loc de joaca, fara sa iti incarce sistemul cu aplicatii mari, costisitoare si mai ales scumpe. O noua strategie in aceasta privinta o reprezinta jocurile online multiplayer sau MMOG (Massive multiplayer online game).
Aparut relativ de curand in Romania, Travian, a reusit intr-un timp destul de scurt sa isi stranga fani, fiind disponibile 5 servere : s1 (7900), s2 (9300), s4 (13760),s3(9500), s5(13100) - ultimul a fost lansat pe 5.11.2007 si are deja peste 13000 utilizatori.
Ce legatura are Travian cu un crawler web? Simplu: EU!
Am facut un parser care poate scoate orice informatie de pe server. As vrea totusi sa ma opresc asupra unuei singure facilitati: aceea de a structura toate aliantele din top 20. Cu alte cuvinte, dandu-i-se o alianta de pe server, gaseste toate relatiile sale : Razboi, PNA sau Ally. Un asemenea tool este de ajutor pentru cei din conducerea aliantelor, pentru a vedea cine ce a mai schimbat in relatiile de alianta, si mai ales, cine cu cine se razboieste!
Sa incepem descrierea tacticii de atac a crawler-ului:
1. Conectarea la server. (How to login to travian web site)
Conectarea din pacate a fost una dintre cele mai dificile taskuri, din cauza autentificarii care nu este documentata (evident) si a trebuit sa fac putin de reverse engineering :)
Asadar am folosit un tool de sniffing :WIREshark - care este free dar e destul de dificil de utilizat - tip puteti folosi IEWatch care se integreaza de minune cu InternetExplorer (pentru fainii acestui program), dar din pacate ca orice creeat de Microsoft nu este gratuit. Folosind Wireshark, am descoperit secventa de POST HTML care este trimisa la login. Spre fericirea mea userul si password-ul se trimit in plain text, deci e destul de simplu sa indentific secventa, in schimb partea mai grea a fost restul de campuri. Dau un indiciu mic mic, restul pe privat.
TIP:
Cam atat!!! Asteptam comentarii si sugestii.
Tehnologia AJAX
Aparut de curand,
Inovatia AJAX s-a declansat ca urmare a nevoii de imbunatati viteza de navigare a siturilor, prin micsorarea timpilor de raspuns la actiunile utilizatorilor. Pentru fiecare actiune a utilizatorului, siturile obisnuiau sa reincarce complet pagina pentru a o actualiza cu noi date, chiar si in cazurile in care schimbarile erau minore. Astfel, inainte de
Este important de inteles ca multe din aceste asteptari sunt utile si necesare atunci cand ele se intampla natural, ca urmare a navigarii intre diverse pagini. Cel mai simplu argument este ca aceste reincarcari de pagini (page reloads) sunt modalitatea prin care adresa paginii se schimba, astfel incat ea sa poata fi insemnate (bookmarked) pentru referinte ulterioare. Totusi aceasta tehnica este folosita excesiv pentru multe alte circumstante, cand acea asteptare nu isi are sensul. Exemplele sunt nenumarate; un exemplu relevant este cazul cand este necesara completarea unui formular intreg, si apasarea butonului „Submit”, pentru a afla care sunt greselile facute in el. In mod natural, aceste greseli ar trebui semnalizate pe masura ce sunt facute. Alte exemple pot fi vazute in multe locuri pe internet, unde situri moderne permit utilizatorului sa faca diverse actiuni (spre exemplu, sa voteze prin butoane „Yes/No”), fara ca acestea sa cauzeze asteptari sesizabile.
Eliminarea reincarcarilor inutile de pagini a fost acel mic pas care a declansat o avalansa de eforturi in directia imbunatatirii interfetei siturilor web. Facilitati precum drag-n-drop, validare automata a datelor, unelte web de colaborare interactiva, si multe altele sunt noi in lumea aplicatiilor web, acestea fiind asociate in mod traditional cu aplicatiile care ruleaza local. Toate acestea, desi uneori fara temei tehnic, sunt atribuite fenomenului
Intr-adevar, in momentul acesta totul suna bine despre
