Cu cat ma uit mai mult la montaj, cu atat constat ca inteligenta mea practica e sub orice critica.
Thank God men have it...
Am gasit un proiect foarte asemanator (realizat cu piese diferite dar foarte bine ilustrat ca finisare practica) aici
M-am apucat (cu greu si fara nici un elan) de lucrarea de diploma care are ca tema principala un travel-guide interactiv folosind Yahoo! si Google maps API.
Primele linii de cod le-am scris pentru Yahoo! maps si am inceput sa ma documentez despre diferentele dintre cele 2 API-uri.
Am gasit niste articole destul de bune, pentru argumentele pro-Yahoo!
Link 1, Link 2 si probabil cel mai putin impartial, Link 3
La prima vedere, API-ul de la Yahoo! este simpatic, usor de folosit (ca si YUI).
Plus ca Yahoo! este simpatia mea personala (stiati ca vin in RO in vara?)
Despre Google inca nu imi pot da cu parerea...
Si pentru ca tot am vorbit de pagini web interactive contruite cu AJAX, DOM si Javascript sa vedem si o aplicatie practica la aceste tehnologii. Ca exemplu o sa folosesc tema de casa 3, care consta dintr-un calendar care afiseaza colorat fiecare zi in care a fost postat un aricol pe acest blog. Un click pe acea data va va trimitie chiar la pagina cu articolul respectiv. Pentru a putea rula aceste scripturi este nevoie de un server web care sa ruleze php, si de Yahoo User Interface Librari (YUI) care poate fi downloadat de aici
calendar.html:
<>
<>
< equiv="Content-Type" content="text/html; charset=ISO-8859-1">
< type="text/css">
/*margin and padding on body element
can introduce errors in determining
element position and are not recommended;
we turn them off as a foundation for YUI
CSS treatments. */
body {
margin:0;
padding:0;
}
< /style>
< rel="stylesheet" type="text/css" href="build/fonts/fonts-min.css">
< type="text/css" rel="stylesheet" href="build/calendar/assets/skins/sam/calendar.css">
< type="text/javascript" src="build/yahoo-dom-event/yahoo-dom-event.js">< /script>
< type="text/javascript" src="build/calendar/calendar.js">< /script>
< type="text/javascript" src="getDates.js">< /script>
< /head>
< class="yui-skin-sam" onload="getDates()">
< id="cal1Container">< /div>
< /body>
< /html>
getDates.js:
var dates;
var xmlHttp;
var calendar;
function createXMLHttp()
{
var xmlHttp;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
return xmlHttp;
}
function getDates()
{
xmlHttp = createXMLHttp();
if (xmlHttp.readyState==4 xmlHttp.readyState==0)
{
var connString="http://localhost/getDates.php";
xmlHttp.onreadystatechange=readDates;
xmlHttp.open("GET",connString,true);
xmlHttp.send(null);
}
}
function readDates()
{
if (xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
var response = xmlHttp.responseXML;
//alert("avem raspuns!zzz");
dates = response.getElementsByTagName("Date");
var i;
/*
for(i = 0; i < calendar =" new" i =" 0;" selected =" args[0];" i =" 0;" nodevalue ="=" xmlhttp =" createXMLHttp();" readystate="=" readystate="=" connstring="http://localhost/getUrl.php?date=" onreadystatechange="openDocument;" readystate ="=" status ="=" response =" xmlHttp.responseXML;" url =" response.getElementsByTagName(" i =" 0;" dom="new">load('http://interfeteevoluate.blogspot.com/feeds/posts/default',LIBXML_DTDLOAD);
$entries = $dom->getElementsByTagName('entry');
createLinkDocument($entries);
function createLinkDocument($entries)
{
$db = new DOMDocument('1.0', 'iso-8859-1');
$root = $db->createElement('root');
$db->appendChild($root);
foreach($entries as $entry)
{
$date = date_parse($entry->getElementsByTagName('published')->item(0)->nodeValue);
#print $date->item(0)->nodeValue . "\n";
#print_r(date_parse($date->item(0)->nodeValue));
$links = $entry->getElementsByTagName('link');
foreach($links as $link)
{
if(strcmp($link->getAttribute('rel'), 'alternate') == 0)
{
$url = $link->getAttribute('href');
#print $url . "\n";
}
}
$dbEntry = $db->createElement('entry');
$root->appendChild($dbEntry);
$dbEntryDate = $db->createElement('Date', $date['month'].'/'.$date['day'].'/'.$date['year']);
$dbEntry->appendChild($dbEntryDate);
$dbEntryURL = $db->createElement('URL', $url);
$dbEntry->appendChild($dbEntryURL);
}
$db->save("db.xml");
}
?>
getDates.php, folosit la incarcarea paginii pentru a determina zilele in care s-au postat articole:
< ?php $dom=new DOMDocument(); $dom->load('db.xml',LIBXML_DTDLOAD);
$entries = $dom->getElementsByTagName('entry');
$result = createDateDocument($entries);
header('Content-Type: text/xml');
echo $result->saveXML();
function createDateDocument($entries)
{
$db = new DOMDocument('1.0', 'iso-8859-1');
$root = $db->createElement('root');
$db->appendChild($root);
$lastDate = '';
foreach($entries as $entry)
{
$date = $entry->getElementsByTagName('Date')->item(0)->nodeValue;
if(strcmp($date, $lastDate) != 0)
{
$dbEntryDate = $db->createElement('Date', $date);
$root->appendChild($dbEntryDate);
$lastDate = $date;
}
}
return $db;
}
?>
getUrl.php, folosit pentru a afla link-ul catre ultimul articol postat in ziua selectata:
< ?php $dom=new DOMDocument(); $dom->load('db.xml',LIBXML_DTDLOAD);
$entries = $dom->getElementsByTagName('entry');
$date = $_GET['date'];
#$date='12/9/2007';
$result = createDateDocument($entries, $date);
header('Content-Type: text/xml');
echo $result->saveXML();
function createDateDocument($entries, $searchDate)
{
$db = new DOMDocument('1.0', 'iso-8859-1');
$root = $db->createElement('root');
$db->appendChild($root);
foreach($entries as $entry)
{
$date = $entry->getElementsByTagName('Date')->item(0)->nodeValue;
$url = $entry->getElementsByTagName('URL')->item(0)->nodeValue;
if(strcmp($date, $searchDate) == 0)
{
$dbEntryDate = $db->createElement('URL', $url);
$root->appendChild($dbEntryDate);
$lastDate = $date;
}
}
return $db;
}
?>
Interfete Evoluate - etapa 2 proiect
Ne apropiem cu pasi rapizi de prezentarea celei de-a doua etape la proiect.
Ca o concluzie dupa aceasta prima luna de bloggerit si ...umm...webmasterit, am facut o lista cu lucrurile bune si cele la care mai trebuie lucrat:
- blogul evolueaza frumos, nice and steady. Am ajuns la aproape 600 vizitatori in Google Analytics in aproape o luna(propozitie care i-ar face pe adevaratii bloggeri sa se tavaleasca de ras dar care consider ca e acceptabila in conditiile unui blog tema cu o tematica nu tocmai populara si care este la concurenta cu inca 20 similare, in conditiile unei "piete" extrem de restranse).In trafic.ro am urcat pana la pozitia 600...sper sa mai urcam, macar 100 de locuri.
- am invatat cate ceva despre SEO, am ajuns si pe prima pagina in google cu blogul, acum tocmai am picat pe 2 :(
- din pacate, site-ul a fost neglijat complet...5 vizite..continut putin...sper ca situatia sa se remedieze odata cu rezolvarea celei de-a treia teme care va trebui integrata cu site-ul.
Ma intreb daca un CMS nu ar fi fost o solutie mai comoda pentru site, am vazut niste exemple extrem simpatice facute cu Joomla.
Comparativ cu etapa trecuta, pot spune totusi ca e o usoara evolutie. - La temele postate, situatia e oarecum ok, avem toate temele 1 dar din pacate o singura tema 2.
- To sum it up, sunt un manager de proiect nu tocmai stralucit :) cel putin la IE, in personal life I like thinking othewise;
Ar trebui sa ne mobilizam mai mult in urmatoarea luna si sa colaboram mai eficient.
Tema 2 a fost implementata in Python 2.5 si s-a folosit pentru baze de date sqlite3 (incluse in pachetul standard Python).
Site-ul analizat este www.photosig.com. Programul pleaca de la un user si creeaza lista prietenilor sau a dusmanilor acestuia prin analiza comentariilor de pe ultima poza isncrisa pe site. Procesul se repeta pentru fiecare user.
Iata codul in Python:
#Ionescu Radu-Dragos 351 C2
import urllib, sqlite3
def cautarePoza(id):
#accesez pagina cu toate pozele userului ID si intorc linkul primei poze
aux="http://www.photosig.com/go/users/userphotos?id="+str(id)
fisierHtml = urllib.urlopen(aux)
s = fisierHtml.read()
index = s.find("/go/photos/view;jsessionid")
indexI=s.find("?id=",index+27)
aux=""
idPoza = ""
indexI=indexI+4
while s[indexI]!="&":
idPoza = idPoza + s[indexI]
indexI=indexI+1
return idPoza
def analizaPoza(idPoza):
global db
global userB
aux="http://www.photosig.com/go/photos/view?id="+idPoza+"&forward=user"
fisierHtml = urllib.urlopen(aux)
s = fisierHtml.read()
filename = "test.dat"
FILE = open(filename,"w")
FILE.writelines(s)
FILE.close()
i = s.find("alt=\"Thumb")
if i==-1:
print "Fara comentarii"
return -1
i1 = s.find("alt=\"Thumb", i+9)
while i1!=-1:
iaux = i1 + 11
if s[iaux]=="u":
relatie="prieten"
if s[iaux]=="d":
relatie="dusman"
indexI = s.find("/go/users/view;jsessioniddas",i1)
indexI = s.find("?id=", idUser+ 25)
indexI = indexI+4
idUser = ""
while s[indexI]!="\"":
idUser = idUser + s[idUser]
indexI=indexI+1
print "Iduser = "+idUser
aux = indexI + 2
numeUser=""
while s[aux]!="<": numeUser = numeUser + s[aux] aux = aux+1 # introducere in baza de date url = "http://www.photosig.com/go/users/view?id="+idUser t1 = (idUser,url,numeUser) e = 0 c = db.cursor() c.execute("SELECT oid FROM utilizator") for row in c: if str(row[0])==idUser: e=1 if e==0: c.execute("INSERT INTO utilizator(oid, url_profil, username) VALUES(?,?,?)",t1) f=0 t2 = (idUser, userB, relatie) c.execute("SELECT oid1, oid2 FROM colaborare") for row in c: if str(row[0])==str(idUser): if str(row[1])==str(userB): f=1 if f==0: c.execute("INSERT INTO colaborare(oid1, oid2, detalii_colaborare) VALUES(?,?,?)",t2) t3 = (idUser, url, numeUser) g = 0 c.execute("SELECT username from useri") for row in c: if str(row[0])==numeUser: g=1 if g==0: c.execute("INSERT INTO useri(oid, url_profil, username) VALUES(?,?,?)",t3) i1 = s.find("alt=\"Thumb", aux) #Program principal db = sqlite3.connect('ie.db') cd = db.cursor() limita = 3 userB = "245246" s = cautarePoza(userB) analizaPoza(s) #ne conectam la useri si alegem cate un user #stergem userul dupa i = 0 while i
analizaPoza(s)
print "Tabela utilizator:"
cd.execute("SELECT oid FROM utilizator")
for row in cd:
print row[0]
print "Tabela colaborare:"
cd.execute("SELECT oid1,oid2,detalii_colaborare FROM colaborare")
for row in cd:
print str(row[0])+"-"+str(row[1])+": "+row[2]
print "Tabela useri[neparcursi]:"
cd.execute("SELECT oid FROM useri")
for row in cd:
print row[0]
db.close()
Interfete evoluate - Tema de curs
Iata si un post de la dl prof Trausan legat de tema de curs:
"Buna seara,
Acesta este primul mesaj referitor la tema de curs.
Reamintesc ca puntajul maxim pentru aceasta tema este de 1,5 puncte.
Dupa cum am spus astazi la curs, tema va avea 3 etape:
Etapa 1 - studiu; termen 20 noiembrie
Etapa a 2-a - conferinta chat. termen 26 noiembrie
Etapa a 3-a - adnotare; termen 10 decembrie
Pentru etapa 1, trebuie sa cautati pe web si sa intelegeti informatiile referitoare la avantajele, dezavantajele, instrumentele de sprijinirea interfatarii cu bloguri, conferinte chat, forumuri de discutie si wiki, precum si posibilitatile de utilizare in lucrul si invatamantul colaborativ.
In etapa a 2-a veti face o conferinta chat in echipe de cate patru, folosind sistemul ConcertChat. Va voi triomite detaliile peste o saptamana.
Echipele vor fi cele de mai jos. Luati legatura intre voi. Daca sunt probleme in formarea echipei de patru, anuntati-ma cat mai repede.
Spor la lucru!
Stefan Trausan-Matu"
Iata grupele membrilor nostri:
17
Monica Ionita
Alexandru Badea
Stefan Daniel Dumitrescu
Razvan Neculai Alecsandrescu
Ionut Ghitescu
Adrian Iscu
Radu Dragos Ionescu
46
Elena Simona Apostol
Catalin Mihai Gabrovschi
Ciprian Lungu
Andrei George Aries
Teme Interfete Evoluate - Daniel Tema 1
DTD
<!ELEMENT PERSOANA (DATE_PERSONALE, CONTACTE_SOCIALE+)>
<!ELEMENT DATE_PERSONALE (IDENTIFICARE,DATE_NASTERE,DATE_CONTACT,STUDII,LOC_MUNCA)>
<!ELEMENT IDENTIFICARE (NUME,PRENUME)>
<!ELEMENT NUME (#PCDATA)>
<!ELEMENT PRENUME (#PCDATA)>
<!ELEMENT DATE_NASTERE (DATA,TARA_NASTERE,JUDET_NASTERE,ORAS_NASTERE)>
<!ELEMENT DATA (#PCDATA)>
<!ELEMENT TARA_NASTERE (#PCDATA)>
<!ELEMENT JUDET_NASTERE (#PCDATA)>
<!ELEMENT ORAS_NASTERE (#PCDATA)>
<!ELEMENT DATE_CONTACT (ADRESA, TELEFON?, EMAIL?)>
<!ELEMENT ADRESA (TARA, JUDET, ORAS, STRADA, NUMAR?, SCARA?, AP?)>
<!ELEMENT TARA (#PCDATA)>
<!ELEMENT JUDET (#PCDATA)>
<!ELEMENT ORAS (#PCDATA)>
<!ELEMENT STRADA (#PCDATA)>
<!ELEMENT NUMAR (#PCDATA)>
<!ELEMENT SCARA (#PCDATA)>
<!ELEMENT AP (#PCDATA)>
<!ELEMENT TELEFON (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT STUDII (SCOALA, LICEU?, FACULTATE?)>
<!ELEMENT SCOALA (#PCDATA)>
<!ELEMENT LICEU (#PCDATA)>
<!ELEMENT FACULTATE (#PCDATA)>
<!ELEMENT LOC_MUNCA (NUME_LOC_MUNCA,VECHIME)>
<!ELEMENT NUME_LOC_MUNCA (#PCDATA)>
<!ELEMENT VECHIME (#PCDATA)>
<!ELEMENT CONTACTE_SOCIALE (NUME_CONTACT?, PRENUME_CONTACT, TIP, OPINIE)>
<!ELEMENT NUME_CONTACT (#PCDATA)>
<!ELEMENT PRENUME_CONTACT (#PCDATA)>
<!ELEMENT TIP (#PCDATA)>
<!ELEMENT OPINIE (#PCDATA)>
XML
<?xml version="1.0"?>
<!DOCTYPE PERSOANA SYSTEM "353C2_IONITA_DANIEL.DTD">
<PERSOANA>
<DATE_PERSONALE>
<IDENTIFICARE>
<NUME>Ionita</NUME>
<PRENUME>Daniel</PRENUME>
</IDENTIFICARE>
<DATE_NASTERE>
<DATA>16-nov-1983</DATA>
<TARA_NASTERE>Romania</TARA_NASTERE>
<JUDET_NASTERE>Bacau</JUDET_NASTERE>
<ORAS_NASTERE>Bacau</ORAS_NASTERE>
</DATE_NASTERE>
<DATE_CONTACT>
<ADRESA>
<TARA>Romania</TARA>
<JUDET>Bucuresti</JUDET>
<ORAS>Sect 4</ORAS>
<STRADA>Aleea Cetatuia</STRADA>
<NUMAR>M22</NUMAR>
<SCARA>4</SCARA>
<AP>200</AP>
</ADRESA>
</DATE_CONTACT>
<STUDII>
<SCOALA>Miron Costin,Bacau</SCOALA>
<LICEU>Ferdinand I,Bacau</LICEU>
<FACULTATE>Automatica si Calculatoare</FACULTATE>
</STUDII>
<LOC_MUNCA>
<NUME_LOC_MUNCA>Capital Software</NUME_LOC_MUNCA>
<VECHIME>2 ani</VECHIME>
</LOC_MUNCA>
</DATE_PERSONALE>
<CONTACTE_SOCIALE>
<NUME_CONTACT>Stanciu</NUME_CONTACT>
<PRENUME_CONTACT>Mihai</PRENUME_CONTACT>
<TIP>Coleg serviciu</TIP>
<OPINIE>Relatii bune</OPINIE>
</CONTACTE_SOCIALE>
<CONTACTE_SOCIALE>
<NUME_CONTACT>Hancu</NUME_CONTACT>
<PRENUME_CONTACT>Andrei</PRENUME_CONTACT>
<TIP>Prieten</TIP>
<OPINIE>Too much time...</OPINIE>
</CONTACTE_SOCIALE>
</PERSOANA>
Teme Interfete Evoluate - CatalinTema 1
DTD
<!ELEMENT profil (DatePersonale, Prieteni)>
<!ELEMENT DatePersonale (Nume, Prenume, Varsta, DataNasterii, Telefon, Studii)>
<!ELEMENT Nume (#PCDATA)>
<!ELEMENT Prenume (#PCDATA)>
<!ELEMENT Varsta (#PCDATA)>
<!ELEMENT Universitate (#PCDATA)>
<!ELEMENT Facultate (#PCDATA)>
<!ELEMENT Telefon (#PCDATA)>
<!ELEMENT Studii (Universitate, Facultate, AnulDeStudii, Specializare)>
<!ELEMENT Prieteni (Prieten*)>
<!ELEMENT Prieten (NumePrieten, PrenumePrieten, link, Relatie)>
<!ELEMENT NumePrieten (#PCDATA)>
<!ELEMENT PrenumePrieten (#PCDATA)>
<!ELEMENT Relatie (#PCDATA)>
<!ELEMENT link (#PCDATA)>
XML
<?xml version="1.0"?>
<!DOCTYPE profil SYSTEM "gabor.dtd">
<profil>
<DatePersonale>
<Nume>Gabrovschi</Nume>
<Prenume>Catalin</Prenume>
<Varsta>23</Varsta>
<DataNasterii>09/07/1984</DataNasterii>
<Telefon>xxxxxxxxxxx</Telefon>
<Studii>
<Universitatea>UPB</Universitatea>
<Facultatea>Automatica si calculatoare</Facultatea>
<AnulDeStudii>5</AnulDeStudii>
<Specializare>C3</Specializare>
</Studii>
</DatePersonale>
<Prieteni>
<Prieten>
<Nume>Ionescu</Nume>
<Prenume>Dragos</Prenume>
<link>dragos_ionescu.xml</link>
<Relatie>Coleg de facultate</Relatie>
</Prieten>
<Prieten>
<Nume>Ionita</Nume>
<Prenume>Monica</Prenume>
<link> www.cs.pub.ro/mionita.xml</link>
<Relatie>Colega de facultate</Relatie>
</Prieten>
</Prieteni>
</profil>
DTD
<!ELEMENT person (personalData, contactData, studies, friends+, work*)>
<!ELEMENT personalData (name, gender, birthdate)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT gender (#PCDATA)>
<!ELEMENT birthdate (#PCDATA)>
<!ELEMENT contactData (adress, phone+, email+)>
<!ELEMENT adress (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT studies (university, speciality, major, year, group)>
<!ELEMENT university (#PCDATA)>
<!ELEMENT speciality (#PCDATA)>
<!ELEMENT major (#PCDATA)>
<!ELEMENT year (#PCDATA)>
<!ELEMENT group (#PCDATA)>
<!ELEMENT friends (friend*)>
<!ELEMENT friend (friendName, history, link)>
<!ELEMENT friendName (#PCDATA)>
<!ELEMENT history (#PCDATA)>
<!ELEMENT link (#PCDATA)>
<!ELEMENT work (companyName, position, colleagues*)>
<!ELEMENT companyName (#PCDATA)>
<!ELEMENT position (#PCDATA)>
<!ELEMENT colleagues (colleague*)>
<!ELEMENT colleague (colleagueName, colleaguePosition)>
<!ELEMENT colleagueName (#PCDATA)>
<!ELEMENT colleaguePosition (#PCDATA)>
XML
<?xml version="1.0"?>
<!DOCTYPE person SYSTEM "351C2_Ionita_Monica.dtd">
<person>
<personalData>
<name>Monica Ionita</name>
<gender>F</gender>
<birthdate>22/11/1984</birthdate>
</personalData>
<contactData>
<adress>Aleea Cetatuia M22</adress>
<phone>0726 733 404</phone>
<email>monica.ionita@gmail.com</email>
<email>ionita.monica@hotmail.com</email>
</contactData>
<studies>
<university>UPB</university>
<speciality>Computer Science</speciality>
<major>C2</major>
<year>5</year>
<group>351</group>
</studies>
<friends>
<friend>
<friendName>Dragos Ionescu</friendName>
<history>university colleague</history>
<link>dragos_ionescu.xml</link>
</friend>
<friend>
<friendName>Catalin Gabrovschi</friendName>
<history>university colleague</history>
<link>cataling_gabrovschi.xml</link>
</friend>
</friends>
<work>
<companyName>Hewlett-Packard</companyName>
<position>Junior Project Manager</position>
<colleagues>
<colleague>
<colleagueName>Iulian Stefanica</colleagueName>
<colleaguePosition>Senior Project Manager</colleaguePosition>
</colleague>
<colleague>
<colleagueName>Norbert Weizs</colleagueName>
<colleaguePosition>Developer</colleaguePosition>
</colleague>
</colleagues>
</work>
</person>
Iata enuntul primei teme de casa la IE:
Sa se defineasca (folosind DTD) un format de fisier XML pentru descrierea profilului personal precum si al relatiilor sociale. Profilul personal ar trebui sa contina atat date de identificare personala cat si date despre studii, serviciu, etc. Datele despre relatiile sociale ar trebui sa refere alte profile si sa descrie tipul de relatie (prietenie, business, etc)
Sa se creeze un fisier XML (corespunzator cu fisierul DTD creat) care sa descrie profilul personal al autorului temei.
Iata fisierul profil.DTD ce contine regulile de definire ale xml-ului:
<!ELEMENT profil (datePersonale, relatii)>
<!ELEMENT datePersonale (nume, prenume, varsta, universitate, facultate, job?, email*)>
<!ELEMENT nume (#PCDATA)>
<!ELEMENT prenume (#PCDATA)>
<!ELEMENT varsta (#PCDATA)>
<!ELEMENT universitate (#PCDATA)>
<!ELEMENT facultate (#PCDATA)>
<!ELEMENT job (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT relatii (coleg*)>
<!ELEMENT coleg (numeC, relatie, link)>
<!ELEMENT numeC (#PCDATA)>
<!ELEMENT relatie (#PCDATA)>
<!ELEMENT link (#PCDATA)>
Iata si fisierul profil.xml:
<!DOCTYPE profil SYSTEM "profil.dtd">
< profil>
< datePersonale>
< nume> Ionescu</nume>
< prenume> Radu-Dragos</prenume>
< varsta> 22</varsta>
< universitate> UPB</universitate>
< facultate> Automatica si Calculatoare</facultate>
< job> ConsultantSAP</job>
< email> keepwalkingdragos@yahoo.com</email>
< email> keepwalkingdragos@gmail.com</email>
</datePersonale>
< relatii>
< coleg>
< numeC> Mihai Georgescu</numeC>
< relatie> coleg facultate</relatie>
< link> www.cs.pub.ro/mgeorgescu.xml</link>
</coleg>
< coleg>
< numeC> Monica Ionita</numeC>
< relatie> coleg facultate</relatie>
< link> www.cs.pub.ro/mionita.xml</link>
</coleg>
< coleg>
< numeC> Alexandru Popa</numeC>
< relatie> coleg de servici</relatie>
</coleg>
</relatii>
</profil>