Topuri Computerworld 2007

Posted In: , . By Monica

Tot din categoria topurilor de sfarsit de an, de data aceasta venind de la Computerworld, gasim The 7 most annoying developments in software

Se poate comenta ca unele (cum ar fi reminderele interminabile de la Symantec si McAfee nu tin prea mult de development, ci de usabilitate si de modul in care este vandut un anumit produs) - ideea principala care se desprinde este ca tuturor ne plac programele prietenoase, dar unele au inceput sa treaca granita spre hartuirea utilizatorilor.
Someday we will have to kindly ask our computer to shut the hell up!

Si ca sa inchei intr-o nota mai pozitiva , dupa 2 topuri pline de dezamagiri IT ale anului, - gasim si topul celor mai bune cadouri pentru pasionati - oferit tot de Computerworld : Your 2007 Holiday Gift Guide

 

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;
}
?>

 

Ce este javascript?

Javascript este un limbaj de scripting orientat pe obiect dezvoltat de Netscape.
Javascript este un superset al ECMA-262 Edtion 3 (ECMAScript), cu mici modificari fata de standard.
Contrar asteptarilor, nu este interpretat de Java ci este un limbaj de scripting dinamic care suporta obiecte contruite pe baza de prototipuri. Sintaxa acestui limbaj este similara Java sau C++ fapt care usureaza invatarea acestui limbaj; constructiile de baza cum ar fi ciclurile for, while instructiunea if si blocurile switch si try sunt aproape identice.
Javascript este un limbaj atat procedural cat si orientat pe obiecte. Obiectele sunt create adaugand metode unor obiecte care altfel ar fi fost vide la rulare. Odata creat un obiect poate fi folosit ca model in crearea unor obiecte noi. Este suportat de principalele browsere web actuale: Firefox, Internet Explorer, Netscape si Opera si este folosit in principal pentru a crea pagini web cu continut dinamic,
Impreuna cu AJAX si DOM poate aduce aplicatiile web la acelasi nivel de interactivitate ca si aplicatiile desktop. Pentru incepatori un tutorial simplu si scurt poate fi gasit la aici .

 

Cum finalul de an se apropie cu pasi rapizi, este momentul topurilor de tot felul : cel mai bun, cel mai prost, cel mai popular etc.
PC World ne impartaseste al sau top The 15 Biggest Tech Disappointments of 2007

Pe loc fruntas - mult discutatul Windows Vista.
Alti concurenti .. Facebook Beacon, Yahoo!, Apple iPhone, Sony, Apple Leopard, Zune si Microsoft Office 2007.

Castigator la puncte : Microsoft :)

De remarcat pe locul 13 : Web 2 Woe: Social Networks

 

Marketingul conversational este un concept din ce in ce mai mediatizat in marketing, care a devenit popular dupa aparitia cartii Clue Train Manifesto, in 2000. Ideea principala a cartii se poate rezuma la toate pietele sunt conversatii.

In marketingul clasic companiile transmit un mesaj de marketing pietelor tinta.
In marketingul conversational, in schimb, companiile si publicul tinta se angajeaza intr-un proces complex de comunicare asemanator unei conversatii intre doi oameni.
Aceasta abordare schimba radical datele problemei, felul in care companiile transmit mesajele de marketing.

Cele 95 de idei ale Clue Train Manifesto sunt foarte interesante, si se pot aplica mai ales in marketingul online, pentru a castiga un loc pe piata folosind comunitatile active ale faimosului web 2.0
  1. Markets are conversations.

  2. Markets consist of human beings, not demographic sectors.

  3. Conversations among human beings sound human. They are conducted in a human voice.

  4. Whether delivering information, opinions, perspectives, dissenting arguments or humorous asides, the human voice is typically open, natural, uncontrived.

  5. The Internet is enabling conversations among human beings that were simply not possible in the era of mass media.
Pentru mai multe detalii, cititi lista de aici
S-ar putea sa descoperiti concepte care au stat la baza marilor afaceri pe web :)

 

Blog tips

Posted In: , . By Monica

Am gasit niste articole foarte bune despre cum sa iti pornesti un blog de succes si cum sa intretii succesul acestuia.

Blogurile reprezinta un gen special de site, al carui succes este extrem de rapid dar care poate fi si foarte efemer. Succesul unul blog depinde in foarte mare masura de frecventa si actualitatea posturilor; chiar si cel mai popular dintre bloguri poate fi uitat de comunitatea virtuala in cateva saptamani daca nu mai este intretinut.
Asemeni unui copil :) blogul trebuie actualizat si intretinut cu grija, in mod regulat (de preferat zilnic).Subiectele si tonul articolelor trebuie sa fie coerente si in concordanta cu tema blogului.

Aici , aici si aici (my personal favorite) puteti gasi o lista de sfaturi pentru un blog de succes.
Ca sa citez concluzia celui de-al doilea articol:
Just try to find your niche and stick to it. If you’ll write passionately about it people will realize it and come to your blog.

 

Pastila de dimineata

Posted In: , . By Monica

Pentru toti cei care au avut de-aface cu tech supportul de oriunde (Microsoft, HP,IBM..)
http://vn247.net/flash/English/tech-support.swf

Edited: !Rocky (friend of blog) recomanda si...asta

 

Microformats

Posted In: , . By Monica

Ca urmare a laboratorului de azi, cu tema de semantic web (si auzind de la un coleg pasionat de microformats) am decis sa ma documentez pe aceasta tema.

Am gasit:

Introducere
http://open.blogs.nytimes.com/2007/12/05/the-magical-minimalism-of-microformats/

Un articol interesant aici
http://ifindkarma.typepad.com/relax/2004/12/microformats.html

si mai multe detalii aici
http://microformats.org/about/

Revin cu lamuriri cand termin cu treaba.

 

Ruby on Rails - versiunea 2.0

Posted In: , , . By Monica

Din blogul oficial al proiectului Ruby on Rails, aflam de lansarea Ruby on Rails 2.0

Ruby on Rails este un framework opensource destinat aplicatiilor web scris in Ruby, avand scopul de a usura crearea aplicatiilor web care folosesc baze de date.

Ruby on Rails logo

Printre lista de proiecte web cunoscute care folosesc Ruby on Rails se afla:

Basecamp – project management online
BBC Programme Catalogue – arhiva video si audio pentru televiziunea si radioul BBC
LinkedIn - Comunitate virtuala pentru profesionisti
OpenCongress – Portal stiri si comunicate oficiale al Congresului SUA
Twitter – Serviciu micro-blogging
yellowpages.com – versiunea US a Paginilor Aurii

Mai multe detalii despre Ruby - aici

 

Maddox the pirate

Posted In: , . By Daniel I

Daca tot suntem la capitolul interfete si blog-uri, discutia nu poate fi completa fara

The best page in the Universe

Site-ul faimosului (presupunand ca faima pe internet este intr-adevar faima) "pirat" Maddox e un excelent exemplu de minimalism.

Maddox are inclusiv ceva de spus despre subiectul blog-uri.

Daca privim un pic in spatele umorului juvenil (a nu se intelege ca am ceva impotriva umorului juvenil, chiar din contra - a se vedea colectia mea de episoade South Park) piratul Maddox are un lucru important de zis.

Internetul este 99% grafica si 1% continut. Vina, in opinia mea, nu tine de developeri - toti clientii vor sa vada interfete cat mai "smechere".
Inevitabil, continutul si (de la un punct) facilitatea navigarii trec in plan secund.

Cea mai buna pagina din Univers reprezinta dovada ca se poate si altfel (din fericire).
Si nu e singurul.
Poate ati auzit de pagina aceasta ?

 

Cateva cuvinte despre DOM

Posted In: . By Catalin

DOM(Document Object Model) este un standard W3C si reprezinta un api pentru documente HMTL si XML. DOM defineste structura logica a documentelor si modul in care documentele sunt accesate si manipulate. Numele de Document Object Model provine din faptul ca documentele sunt modelate folosind obiecte.
Cu DOM programatorii pot construi documente, pot naviga prin structura documentului, pot adauga, modifica, sterge elemente si continut. DOM specifica interfetele si obiectele folosite pentru a reprezenta si manipula un obiect, functionalitatea si atributele acestor obiecte si relatiile dintre obiecte. Documentele sunt reprezentate ca o ierarhie de obiecte de tip care pot avea sau nu descendenti sau nu, dupa cum urmeaza:
* Document -- Element (maximum of one), ProcessingInstruction, Comment, DocumentType (maximum of one)
* DocumentFragment -- Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
* DocumentType -- no children
* EntityReference -- Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
* Element -- Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference
* Attr -- Text, EntityReference
* ProcessingInstruction -- no children
* Comment -- no children
* Text -- no children
* CDATASection -- no children
* Entity -- Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference
* Notation -- no children

Un exemplu de ierarhie arborescenta, corespunzand unui HTML simplu, in imaginea de mai jos

Specificatiile pentru aceste interfete sunt scrise in IDL(Interface Definition Language) pentru a fi independente de limbajul de implementare. De exemplu:
interface DocumentType : Node {
readonly attribute DOMString name;
readonly attribute NamedNodeMap entities;
readonly attribute NamedNodeMap notations;
// Introduced in DOM Level 2:
readonly attribute DOMString publicId;
// Introduced in DOM Level 2:
readonly attribute DOMString systemId;
// Introduced in DOM Level 2:
readonly attribute DOMString internalSubset;
};

Aceste specificatii sunt implementate de api-uri pentru diverse limbaje de programare cum ar fi:
- java - http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-summary.html
- python - http://www.python.org/doc/2.4/lib/module-xml.dom.html
- php - http://php.net/dom
- C - http://xerces.apache.org/xerces-c/program-dom.html

 

Inainte de a folosi o tehnologie eu cred ca programatorul trebuie sa stie intai la ce foloseste.

Pana la AJAX utilizatorul trebuia sa completeze formularul, sa apese submit, sa astepte ca serverul sa proceseze cererea si primeasca inpoi o pagina complet noua(serverul trimite pagina intreaga). Tot acest proces inseamna asteptare destul de suparatoare mai ales pentru un utilizator nerabdator.
Cu AJAX aplicatiile web pot fi facute mult mai dinamice. Concret AJAX foloseste mai multe tehnologii "mai vechi", HTML, Javascript, DHTML, DOM pentru a actualiza o pagina web fara o reincarcare completa.
AJAX foloseste obiectul XMLHttpRequest si Javascript ca intermediari intre formular si server. Cand utilizatorul introduce datale si apasa submit formularul nu mai este trimis la server. Input-ul este preluat de codul Javascript si trimis la server fara ca utilizatorul sa isi dea seama ce se intampla. Partea si mai buna este cererile catre server se fac asincron ceea ce inseamna ca utilizatorul nu trebuie sa astepte raspunsul cererii anterioare pentru a continua sa foloseasca aplicatia. Pe masura ce sosesc raspunsurile de la server portiuni din pagina sunt actualizate.

O aplicatie care foloseste AJAX consta din 3 parti esentiale:

1. Obtinerea obiectului XMLHttpRequest.

Dupa cum am spus AJAX foleste un obicet XMLHttpRequest. Obtinerea obiectului XMLHttpRequest este diferita pentru browsere diferite. Urmatorul cod urmareste obtinerea obiectelui pentru orice tip de browser.

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;
}

2. Cererile catre server si raspunsurile acestuia.

AJAX interpune codul Javascript intre browser si server pasii urmatori sunt prezenti in majoritatea aplicatiilor AJAX.
- extrage datele din formular
- construieste URL-ul
- deschide o conexiune catre server
- setaza o functia ce va fi apelata cand primeste raspunsul
- trimite cererea

//cererea
function callServer() {
// Get the city and state from the web form
var city = document.getElementById("city").value;
var state = document.getElementById("state").value;
// Only go on if there are values for both fields
if ((city == null) (city == "")) return;
if ((state == null) (state == "")) return;

// Build the URL to connect to
var url = "/scripts/getZipCode.php?city=" + escape(city) + "&state=" + escape(state);

// Open a connection to the server
xmlHttp.open("GET", url, true);

// Setup a function for the server to run when it's done
xmlHttp.onreadystatechange = updatePage;

// Send the request
xmlHttp.send(null);
}

//raspuns
function updatePage()
{
if (xmlHttp.readyState == 4)
{
var response = xmlHttp.responseText;
document.getElementById("zipCode").value = response;
}
}

3. Legatura cu pagina web

Singurul lucru care a mai ramas de facut este sa invocam scriptul cand apare o shimbare in formular.


<form>
<p>City: <input type="text" name="city" id="city" size="25"
onChange="callServer();" /></p>
<p>State: <input type="text" name="state" id="state" size="25"
onChange="callServer();" /></p>
<p>Zip Code: <input type="text" name="zipCode" id="zipCode" size="5" /></p>
</form>

 

Web 2.0 - o amagire?

Posted In: , . By Monica

Un filmulet foarte simpatic, cu o viziune ironica asupra web 2.0.

 

Watermarking-ul digital (din pacate nu reusesc sa gasesc o traducere exacta in limba romana) este procesul prin care se adauga elemente de siguranta ascunse utilizatorului in mesaje digitale audio, video, documente. Termeneul de watermarking digital este preluat din watermarkingul clasic prin care se adaugau elemnte de securitate anumitor documente, bacnote.

Referitor la watermarking am gasit un articol pe informationweek.com care vorbeste despre extinderea acestei tehnici si pentru poviderii de internet si site-urile cu continut video. Compania care doreste sa comercializeze acest tip de sitem este Nielsen. Astfel vor putea fi monitorizate clip-urile video postate pe you-tube (de exemplu). Desi softul nu va sterge automat cluip-urile, el poate fi setat de administratori sa filtreze clip-urile postate in functie de "datele ascunse".

Este de mentionat faptul ca peste 95% din sistemele de televiziune folosesc acest watermarking digital de la Nielsen. Nielsen prevede un succes real pe piata site-urilor cu date video si audio bazandu-se pe un soft deja implementat si gata de a fi folosit.

Pentru mai multe informatii, iata linkul:
http://www.informationweek.com/news/showArticle.jhtml?articleID=204701360

 

Comunitati web

Posted In: , . By Interfete Evoluate

Via xkcd

Comunitatile virtuale au devenit tot mai populare in ultimii ani, si tot mai diversificate.
Epoca web 2.0 este o epoca a comunicarii, a continutului generat de utilizatori si a comunitatilor online - flickr, youtube, wikipedia, facebook, myspace, xanga...o multitudine de comunitati avand milioane de membrii si axandu-se pe diferite preocupari ale acestora : fotografie, socializare, muzica...

Ce ii atrage pe oameni spre acest mod de socializare virtuala?Cum se poate construi o comunitate online?Cum pot pune bazele unei astfel de comunitati?
O'Reilly are un articol foarte reusit pe aceasta tema, pe care il puteti gasi aici , oferind o perspectiva logica, de bun simt si cu accentul pe partea psihologica a problemei.

 

Am citit de curand un articol al lui Matthew Smith legat de web-design.

El descrie in acel articol modalitati de extindere a spectrului de design sugerand ca un bun web-designer va analiza in permanenta design-urile altor colegi de breasla cu speranta de a gasi o cale de integrare in propria lui creatie.


Matthew defineste 3 etape in acest proces:
1. Integrarea (colectarea modelelor de site-uri) : prin colectarea a cat mai multe tipusri de site-uri (design-uri diferite) web-designerul este capabil sa identifice tendinta actuala pe web.
2. Analiza specimenelor colectate: web-designerul trebuie sa analizeze critic alte modele de patternuri pentru a identifica care dintre ele vor rezista in timp si care nu.
3. Crearea design-urilor: este momentul in care web-designerul este constient de ce exista pe piata la ora actuala, a analizat si a decis care dintre modele sunt interesante si trece la etapa de creatie a porpriului design.

Matthew da si cateva sfaturi legate de niste template-uri aratand utilitatea lor legata de subiectul site-ului.

Iata linkul pentru articol:
www.digital-web.com/articles/collecting_for_design

 

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.
Si pentru ca trebuie sa recunoastem meritele concurentei, mi-a placut blogul Spaima interfetelor fun, simpatic si bine realizat!

 

Lista cu primele 100 domenii

Posted In: . By Monica

First dot com ne ofera o lista cu primele 100 domenii inregistrate (printre care si domeniile unor firme consacrate precum ibm, hp, sun, intel, xerox, siemens samd).
Interesant ca fapt divers, cu observatia ca durata de timp pe parcursul careia s-a produs inregistrarea acestor domenii este 2 ani(!!!)

In antiteza, o analiza scurta a domeniilor in ziua de azi, aici
(138 millioane domenii!!!!)

 

Un cunoscut blogger si activist pentru drepturile omului din Egipt - Wael Abbas a fost redus la tacere dupa ce YouTube si Yahoo! i-au inchis conturile.
Acesta erau folosite pentru a scrie si a posta filmulete despre brutalitatea politiei, hartuire sexuala si tortura din Egipt.Unul din filmulete, prezentand brutalizarea unui sofer de autobuz egiptean de catre un ofiter, a fost folosit ca dovada pentru condamnarea a doi ofiteri de politie;aceasta reprezentand un eveniment rar intr-o tara in care drepturile omului sunt incalcate in mod flagrant.




Abbas a numit suspendarea contului sau YouTube ca "de departe cea mai mare lovitura adusa miscarii anti-tortura din Egipt" conform Amira Al Hussaini in Global Voices.
YouTube a declarat ca decizia de a sterge filmuletele lui Abbas nu are nici o legatura cu guvernul egiptean, fiind o decizie interna.

Mai multe detailii...

 

Idei pentru HTML 5

Posted In: , , , . By Monica

Arhitectul Yahoo! Douglas Crockford (inventatorul JSON si unul dintre cei mai cunoscuti prezentatori a seriei de conferinte AJAXWorld) ne prezinta pe blogul sau cateva idei pentru a inbunatati standardele HTML5 (momentan in faza de proiect, fara aprobarea W3C).

Cele 10 idei prezentate ar contribui, in viziunea sa, la reducerea complexitatii pastrand in acelasi timp extensibilitatea, reducand astfel costurile trainingurilor pentru programatorii web si facilitand folosirea AJAX.
Una dintre aceste propuneri ar fi renuntarea la frame-uri, acestea fiind inlocuite de module.Alte doua idei (care mi se par cele mai bune sugestii) ar fi acceptarea tagurilor si atributelor custom.
Pentru o lista completa, click aici.

Crockford isi prezinta ideile astfel :
"It provides extensibility without complexity. The deltas from HTML 4 are generalizations and reductions, which should make browser implementation more straightforward. This is particularly important for mobile devices that cannot tolerate the power demands of complex platforms. The only new feature here is the module, which is critical for security. Modules makes safe mashups possible."

 

Javascript Design Patterns - Singleton

Posted In: , . By Interfete Evoluate

Exista numeroase carti avand ca subiect Design Patterns, acestea reprezentand un set de solutii (patternuri) care rezolva anumite probleme frecvent intalnite in proiectarea aplicatiilor indiferent de limbajul folosit.
In aceasta serie de articole voi incerca sa prezint cateva exemple de Design patterns in Javascript.
Primul design pattern ales de mine este Singleton, care face parte din Design pattern-urile creationale, fiind in acelasi timp cel mai usor Design Pattern.
Mai multe detalii despre ce este, cand se utilizeaza si cateva implementari simple(Java, C++, C#, Python, PHP) pot fi gasite aici

Javascript-ul are anumite particularitati care il diferentiaza de restul limbajelor orientate obiect, si anume faptul ca este prototype based.
Clasele se declara similar functiilor (folosind in mod similar cuvantul cheie function)

/*Singleton example with eager initialization*/

Singleton = function(){
var _instance = null;

return {
getInstance :
function(){
if(_instance === null){
_instance =
{};
}
return _instance;
}
};
}();

Ext.
onReady(function(){
var x = Singleton.getInstance();
var y = Singleton.getInstance();

if(x == y){
alert("Objects are the same instance");
}
});


/*Singleton example with lazy initialization*/

Singleton = function(){
var _instance = null;

return {
getInstance :
function(){
if(_instance === null){
_instance =
{};
}
return _instance;
}
};
}();

Ext.
onReady(function(){
var x = Singleton.getInstance();
var y = Singleton.getInstance();

if(x == y){
alert("Objects are the same instance");
}
});

 

IT top 10 Dont's

Posted In: , . By Monica

Un top al celor mai mari erori in IT

De remarcat comentariul pentru pozitia 8 - laptopul Dell care a fost filmat explodand la o prezentare :
Unfortunately, the video capturing the incident appears to have vanished from the web. If you happen to own a copy, please send it to us as it should make interesting viewing again.

Se pare ca si internetul e supus manipularii de catre marile corporatii ;)



 

Partiale:
PS - 4 decembrie, ora 18:00. Partialul reprezinta 40% din nota finala (examenul final este de 60%). Partialul se poate reface.
O sursa mentioneaza ca in locul examenului final se poate face un proiect legat de DSP(procesor de semnal), analiza/recunoastere de voce, sinteza, analiza de imagine.
Trebuie scrise si module software(nu este referat, ci proiect).
http://psig.go.ro
Lucruri noi[c2-2008]: La examen ne lasa cu toate materiale pe banca si timpul de examen este de 1:30 h.Se dau 3 probleme si vor fi din cele ce se gasesc in materiale(din cele rezolvate cat si din cele nerezolvate). O alta sursa adauga ca proful ne va da 5 probleme, iar noi vom alege 3 dintre ele.


SMP - 7 decembrie, ora 08:00 (posibil EC102)
La examen se dau probleme. Partialul se poate reface la final.
Dl. profesor: "Se dau numai probleme, cu cursurile pe banca, din Performante si Retele de interconectare."


Dead-lineuri:
* Teme SMP

* Referat STD
1 decembrie - trimiterea temei de referat; se pot face 2 referate mai mici sau unul mare (2 referate mai mici = 2 x 7-8 pagini; unul mare 18 pagini). Referatul / referatele trebuie sa se lege de orice capitol din cartea profului, mai putin RAID. Pentru inspiratie se folosesc alte surse decat cartea profului. Tema referatului se va trimite la adresa madalinv@ac.pub.ro.
Cartea se gaseste la http://www.filecrunch.com/file/~5yumfr

* Referate EP
Exista 2 teme de laborator:
1. Prima tema consta in construirea unei retele de calculatoare (descrierea ei). Reteaua nu trebuie sa fie complicata: cateva hosturi, switch-uri, routere. Se specifica adresele IP. Tema consta intr-un desen al retelei si schema de adresare.
2. A doua tema consta in analiza costurilor si a performantelor retelei de la punctul 1. Se mentioneaza tipurile de switchuri, routere, etc alese(echipamentele folosite) si de ce, costuri...
Exista si un referat de curs cu subiectul evaluarea performantelor ("dai search pe google"). Este posibil ca referatul sa trebuiasca prezentat la curs.
Toate cele 3 referate trebuie predate(prezentate) inainte de vacanta de Craciun.
[multumiri speciale Laurei]

* Proiect CI
Site-ul aferent CI-ului adica http://www.createit.ro/ci contine si etapele proiectului:
Etapa I. Alegere subiect - pana pe 15.12.2007
Etapa a II-a. Prezentare proiect - pana la inceputul sesiunii


* Tema de curs la IE are deadline pe 1 decembrie (sambata), ora 24:00.


Observatii: Pe 30 noiembrie nu se fac laboratoarele de SMP.

 

Javascript crossbrowser tips

Posted In: , . By Monica

Cred ca oricine s-a confruntat cu zeci de probleme in incercarea de a construi aplicatii web cross-browser cu javascript, datorita diferentelor cu care browserele implementeaza standardele W3C (Opera conduce detasat urmata de Mozilla)




Un articol foarte bine scris despre problemele de Javascript intalnite la incercarea de a scrie o aplicatie web sau o interfata utilizator crossbrowser

Nota 10!

 

Odata cu popularitatea in cresterea a site-urilor folosind AJAX, Javascript a devenit dintr-un limbaj de scripting mai mult sau mai putin folosit, o parte vitala a aplicatiilor web.
Aceasta face ca prevazuta revizuire a standardelor ECMAScript sa devina cruciala, mai ales in conditiile pietei actuale in care nici o firma care implementeaza un anumit browser nu isi poate impune punctul de vedere.
Detalii despre diferentele de opinii asupra viitorului ECMAScript dintre Brendan Eich - creatorul Javascript si Chief Technology Officer pentru Mozilla si Chris Wilson - arhitect al echipei dedicate Internet Explorer a Microsoft - aici.

 

In aprilie 2007, A List Apart si An Event Apart au realizat un sondajdespre webdesigneri, continand 37 de intrebari , la care au participat aproape 33000 de profesionisti in domeniu.
Rezultatele pot fi gasite aici.
Astfel putem contura portretul robot al webdesigner-ului obisnuit:
este un barbat (82.8%) caucazian(84.6%) cu varsta cuprinsa intre 21-38 ani(79.2%), nu neaparat cu studii in domeniu, pasionat de ceea ce face cel putin in mod frecvent(78.6%) care lucreaza intre 30-60 ore pe saptamana(77.9%).
Interesanta este distributia salariilor de peste 100 000$/an in functie de titlul detinut.



Foarte interesant, merita studiat
Survey Results.

 

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=limita:
s = cautarePoza(userB)
analizaPoza(s)
break

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()

 

Avand in vedere amenintarile din ziua de astazi in momentul accesarii unor pagini web, m-am decis sa vedem care sunt primele 3 pozitii intr-un clasament general al antivirusilor.

http://www.pcworld.com/article/124475-1/article.html

Asadar PC World SUA a desemnat BitDefender 9 solutia antivirus nr. 1.


Compania Softwin, care administreaza divizia de securitate a datelor - BitDefender - s-a aratat incantata de clasarea acestui produs al sau pe primul loc in topul de profil realizat de revista PC World SUA. "In numarul din martie al revistei IT cu cel mai mare numar de cititori din America (5,2 milioane), produsul românesc este ales "Best Buy", surclasând 9 dintre cele mai renumite solutii de securitate din întreaga lume", subliniaza oficialii firmei romanesti.

BitDefender a primit cele mai bune punctaje atât pentru caracteristicile tehnice cât si pentru cel mai bun raport calitate-pret. Testele tehnice au fost efectuate de catre AV-Test Center Germania, cel mai important institut international de testare în domeniul solutiilor de securitate a datelor. Toate cele 10 solutii de securitate de top intrate în concurs au fost analizate prin prisma eficientei scanarii euristice, timpului de raspuns la noile amenintari, capacitatii de dezinfectie, usurintei în utilizare, suportului tehnic si abilitatii de a detecta virusii nou lansati.

"Concluzia raportului: BitDefender a detectat toate cele 1518 amenintari informatice aflate în circulatie. Cea mai importanta analiza a fost cea a detectiei euristice a virusilor, aceasta fiind si cea mai eficienta metoda de protectie împotriva noilor pericole informatice. Acest tip de detectie se bazeaza pe analiza comportamentala a potentialelor amenintari, nu doar pe virusii înregistrati în baza de semnaturi a produsului".

"Primul loc ocupat de BitDefender în clasamentul facut de americani reprezinta un mare succes pentru IT-ul românesc. În acelasi timp, este o demitizare a perceptiei ca cele mai bune solutii antivirus sunt furnizate de companiile gigant de securitate din SUA. Concluziile analistilor sunt clare: BitDefender reactioneaza mai repede, dezvolta tehnologii mai bune într-un timp mai scurt, ofera servicii mai bune decât competitorii sai, la un raport costuri - eficienta superior", a comentat Bogdan Dumitru de la BitDefender.

Iata si linkul catre site-ul Bitdefender unde puteti incerca 30 de zile antivirusul Bitdefender 2008: http://www.bitdefender.ro/site/Products/showSolutions/1/

 

Interfete evoluate - Tema de curs

Posted In: . By Radu D.

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

44
Ionut Ghitescu
Adrian Iscu
Radu Dragos Ionescu

46
Elena Simona Apostol
Catalin Mihai Gabrovschi
Ciprian Lungu
Andrei George Aries

 

WAP

Posted In: . By Catalin

WAP(Wireless Application Protocol) este un standard international pentru aplicatii si servicii care folosesc retele wireless.
Dezvoltarea retelelor wireless si a dispozitivelor mobile a dus la necestitatea introducerii serviciilor pe aceste dispozitive. Principala problema a fost ca majoritatea tehnologiilor au fost dezvoltate pentru calculatoare personale cu procesoare puternice, multa memorie, monitoare foarte mari si conxiuni in banda larga si stabile. Dispozitivele mobile sunt exact la polul opus, au procesoare slabe, foarte putine memorie, ecrane mici si conexiuni mai putin stabile. WAP-ul a fost proiectat pentru ca utilizatorii unor astfel de dispozitive sa poata accesa internetul.


Modelul wap:




Stiva de protocoale WAP:




Nivelul cel mai de jos suporta toate sistemele de telefonie mobila existente, inclusic GSM, D-AMPS si CDMA. Deasupra acestora se afla protocolul pentru datagrame, WDP(Wireless Datagram Protocol). Apoi unrmeaza un nivel pentru securitate WTLS, un subest al SSL-ului de la Netscape. Deasupra acestuia este un nivel tranzactie sigura sau nesigura care se ocupa de cereri si raspunsuri, WTP, care inlocuieste TCP din motive de eficienta. Apoi
vine nivelul sesiune, WSP, care este similar cu HTTP/1.1, dar cu cateva restrictii si extensii din motive de eficienta. Si pe ultimul nivel se afla micro-browser-ul (WAE).

Prima versiune WAP 1.0 nu suporta HTML. In locul acestuia WAE foloseste un limbaj de marcare numit WML(Wireless Markup Language), care este o aplicatie a XML. Ca urmare un dispozitiv WAP nu putea incarca decat pagini care au fost convertite la WML, ceea ce l-a facut putin popular pentru ca nu existau prea multe pagini care puteau fi accesate. Acest neajuns a fost remediat in WAP 2.0.

 

Lansare Google - Blogger JavaScript Library

Posted In: , , , , . By Interfete Evoluate

Un filmulet foarte interesant despre noua librarie Javascript pentru Blogger, cu exemple de utilizare.

 

[Proiect Interfete evoluate] WEB 3.0?

Posted In: . By Interfete Evoluate

"După ce am reuşit să ne ocupăm timpul preocupaţi de e-mail-uri, pagini web, bloguri, reţele online de socializare, a apărut şi instrumentul care face ordine în ele.


Compania americană Radar Networks este creatoarea website-ului botezat Twine, aflat încă în stadiul de testare, un site care poate face diferenţa între oameni, locuri, companii sau alte categorii de interes. Proiectul, prezentat de www.newscientist.com, se bazează pe conceptul de web semantic, o extensie a web-ului curent, în care informaţia este stocată într-un format ce poate fi interpretat de maşină. Web-ul semantic este adesea asociat conceptului de Web 3.0.

Utilizatorii pot încărca pe Twine informaţii relevante pentru ei, de la e-mail-uri la clipuri video. O dată ce website-ul conţine nişte informaţii, începe să le analizeze şi să le împartă pe diferite categorii. Twine adnotează automat informaţiile într-o manieră semantică. Face acest lucru folosind o combinaţie între tehnici de învăţare automată a computerelor şi procesarea limbajului natural. Adică programul este capabil să înţeleagă anumite semnificaţii din cuvinte, structura propoziţiei sau gramatică."

Acest articol a fost preluat din Jurnalul National Online.

Iar site-ul Twine este: www.twine.com

 

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>

 

US Internet addicts

Posted In: . By Monica

Unul din patru americani au recunoscut intr-un sondaj realizat de 463 Communications si Zogby Internation ca internetul poate substitui o relatie personala pentru o perioada de timp.
Sondajul a examinat rolul jucat de internet in vietile oamenilor si necesitatea unei implicari a guvernului in reglementarea acestuia.

Sondajul a fost realizat online in perioada 4-8 Octombrie 2007, avand 9743 de respondenti din toate zonele Statelor Unite si are o marja de eroare de +/-1.0.



Implicarea guvernului in controlul continutului online a fost sustinuta doar de 33% din cei cu varste cuprinse intre 18 si 24 ani, in timp ce peste 72% din cei peste 70 de ani o sustin (surprinzator faptul ca au existat respondenti la sondaje online cu varsta peste 70 de ani.Pentru Romania ar fi aproape inimaginabil).
Peste 25% din respondenti au profile pe site-uri de socializare online(facebook, hi5, myspace), procentajul printre cei cu varste cuprinse intre 18-24 ani fiind de 78%!

Americanii iubesc Internetul si sunt extrem de interesati de folosirea acestuia pentru a socializa.Cu toate acestea, doar 11% din respondenti s-au declarat dispusi sa suporte implantarea unui dispozitiv pentru a putea naviga mental pe internet (in conditiile in care acesta ar fi disponibil).
Viitorul suna stralucit pentru proprietarii de site-uri comerciale sau de socializare, in conditiile in care Statele Unite sunt cea mai mare piata de desfacere ...

Mai multe detalii aici

 

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>

 

Web 2.0 vs. Web 1.0

Posted In: . By Monica

Am gasit o definire mult mai buna a conceptului Web 2.0, in mult mai putine cuvinte decat pe Wikipedia sau pe alte site-uri - prin exemple si facand paralela cu Web 1.0 (fratele mai mic si mult mai putin mediatizat)

Diferente intre Web 1.0 si Web 2.0

DoubleClick - Google AdSense
Ofoto - Flickr
Akamai - BitTorrent
mp3.com - Napster
Britannica Online - Wikipedia
Paginile personale - Blogurile
Specularea numelor de domenii - SEO (search engine opimization)
Page views - Cost per click
Directoare - Tagging

Un articol foarte bun, care e in prima pagina in Google pentru "Web 2.0"

 

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>

 

Web 2.0 - copilul minune al ultimilor ani

Posted In: . By Interfete Evoluate

Web 2.0 a devenit una din cele mai populare expresii ale ultimilor ani, cunoscand o advarata expozie de adepti.Dar la ce anume se refera acest termen?

Web 2.0 denumeste a doua generatie de comunitati virtuale si servicii online - precum site-urile de socializare, wiki - in principiu site-urile avand ca scop generarea de continut de catre utilizatorii acestora, colaborarea si schimbul de informatii intre utilizatori.



Termenul devenit popular odata cu prima conferinta O'Reilly Media Web 2.0 in anul 2004.Desi pare a sugera o revolutie tehnologica, sau o schimbare majora a tehnologiilor folosite pe internet, in fapt se refera la o schimbare a modului de utilizare a internetului de catre utilizatorii obisnuiti si o schimbare de perspectiva din partea programatorilor.
Tim O'Reilly a facut urmatorul comentariu "Web 2.0 reprezinta revolutia afacerilor in industria calculatoarelor cauzata de migrarea spre internet ca o plaforma de promovare si o incercare de a intelege regulile care asigura succesul pe aceasta noua platforma"
In concluzie, Web 2.0 reprezinta un concept mai apropiat de marketing online, decat de tehnologie web.

Definitiile pentru Web 2.0 starnesc si vor mai starni controverse; cu toate acestea, se pot enumera cu usurinta cateva caracteristici specifice aplicatiilor Web 2.0 precum:


  • Folosirea internetului ca platforma - dezvoltarea de aplicatii online avand interfata si functionalitate similara aplicatiilor clasice;

  • Continut generat de catre utilizatori, acestia fiind proprietari a datelor de pe un site si exercitand controlul asupra acestora

  • O arhitectura care incurajeaza colaborarea intre utilizatori si adaugarea de continut cu valoare informativa, pentru imbogatirea unei baze de cunostinte comune

  • Interfata utilizator interactiva, prietenoasa, usor de folosit si oferind numeroase functionalitati bazata pe Ajax, Flex sau frameworkuri similare

  • Retele de socializare

Web 2.0 defineste trecerea utilizatorului de la starea de consumator de informatie, la cea de producator, fara a abandona totusi rolul initial.
Wikipedia, Flickr, Facebook sunt exemple ideale de site-uri Web 2.0, fiind expresiile unor comunitati de utilizatori care colaboreaza pentru a imbogati continutul si adauga noi functionalitati site-ului.
Despre rolurile jucate de utilizatori in epoca Web 2.0 intr-un post urmator...

 

SEO? Ce e SEO?

Posted In: . By Interfete Evoluate

SEO este o abreviere pentru Search Engine Optimization. In principiu acest tip de servicii se adreseaza proprietarilor de site-uri ce isi doresc un trafic ridicat printr-o pozitionare mai buna in rezultatele cautarilor prin motoarele de cautare precum Google, Yahoo sau MSN.

Istoria acestor tipuri de servicii a inceput in perioada 1996-1997, in momentul in care apareau primele motoare de cautare. Astfel webmasterii incepeau sa isi inscrie site-urile in motoarele de cautare si sa isi adapteze codul paginii pentru nevoile simpliste ale spiderilor (instrumentele folosite de motoarele de cautare pentru a indexa website-uri).

In scurt timp webmasteri au inceput sa primeasca ajutorul unor consultanti in acest domeniu. Scopul acestor consultanti, mai tarziu numiti Search Engine Optimizers, era sa gaseasca un algoritm dupa care ar putea fi scrise site-urile, pentru o expunere mai mare si pentru sanse de indexare ridicate.

Dupa curentul initial de studiu al algoritmilor de sortare si indexare al motoarelor de cautare, a aparut perioada de spam cu cuvinte cheie ("keyword spamming"). Ce insemna aceasta? Insemna inserarea de cuvinte cheie in pagina, cu text de culoarea backgroundului paginii pentru a fi practic invizibile pentru utilizatori dar vizibile pentru motoarele de cautare.

Ca urmare, motoarele de cautare au creat filtre de sortare a acestui tip de spam, pentru a curata masa imensa a internetului de acest "zgomot" de keyworduri.



Perioada anilor 2000 a adus reconcilierea intre reprezentantii motoarelor de cautare si "optimizatori". Spammeri au disparut sau s-au transformat in specialisti SEO. Tehnicile spam tind sa fie inlocuite de optimizare bazata pe un continut bine scris, usor de inteles de motoarele de cautare.

O serie de metode de a castiga o pozitie mai buna in indexul motoarelor de cautare:

-Folositi un domeniu la .com care sa contina una dintre cuvintele cheie ale site-ului
-Folositi, in loc de cod javascript in fisierele HTML, fisiere externe incluse.
-Includeti clasele de culori si fonturi din fisiere .css
-Folositi tag-uri H1 pentru titlurile paginilor.
-Adaugati o pagina 'sitemap' paginii.
-Nu creati pagini cu marimi mai mari de 100k etc.

 

Dragos - Tema 1 (DTD + XML)

Posted In: , . By Interfete Evoluate

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>

 

Un deceniu de XML

Posted In: . By Interfete Evoluate

Anul acesta se implinesc 9 ani de la publicarea primelor specificatii W3C
(W3C Recommendation Extensible Markup Language (XML) 1.0 ) pe data de 10 Februarie 1998.
In acest timp, popularitatea XML si aplicatiile acestuia au cunoscut o dezvoltare continua.

Ce este XML?

XML (Extensible Markup Language) este un mod de reprezentare al datelor - scopul acestuia fiind de a face posibila stocarea datelor intr-un mod usor de interpretat de orice aplicatie si usor de editat de utilizatori fara cunostinte tehnice.

Un exemplu simplu
Sa presupunem ca dorim sa folosim XML pentru a stoca informatiile despre o tranzactie.





In prima linie, codul dintre marcajele poarta numele de declaratie XML.Aceasta declaratie contine indicatii destinate procesorului XML (programului care citeste XML-ul) indicand faptul ca acest document este conform specificatiilor XML versiunea 1.0.
<order>, <product>, <quantity>, <unitprice> si <description>sunt elemente XML inventate.Ca si majoritatea elementelor XML, nu au o semnificatie aparte in afara celei definite in regulile documentului.
Din punctul de vedere al ierarhiei XML, <product> este elementul parinte pentru <quantity>, <unitprice> si <description>.Similar, elementele XML pot fi "bunici" si "nepoti"; terminologia folosita pentru acest tip de relatii fiind de "descendent" respectiv "ascendent".

Un exemplu mai complex

Acelasi XML, un pic mai ...evoluat.



In prima linie, similar avem declaratia XML.In plus fata de exemplul anterior, observam atributul standalone="no" care are rolul de a informa procesorul XML ca pentru interpretarea corecta a documentului este necesar un DTD extern (In acest caz, DTD-ul se va afla intr-un fisier separat cu numele test.dtd)
Ca o observatie, este posibil sa integram DTD-ul in acelasi fisier cu datele XML - dar in general aceasta optiune nu este recomandata deoarece DTD-urile au rolul de a fi reutilizate.


A doua linie :
<!DOCTYPE InterfeteEvoluate:transaction SYSTEM "test.dtd">
are rolul de a indica elementul radacina al documentului si faptul ca DTD-ul asociat valideaza fiecare din documentele continute in interiorul elementului radacina.
Elementul radacina este elementul cel mai din exterior caruia i se aplica DTD-ul; in mod uzual denota punctul de inceput si de final al documentului.
In acest exemplu, elementul <!DOCTYPE InterfeteEvoluate:transaction"> joaca rolul de element radacina.Cuvantul cheie SYSTEM indica faptul ca DTD-ul documentului se afla intr-ul fisier local separat, avand numele test.dtd

 

Proiect Interfete Evoluate kickoff!

Posted In: , . By Interfete Evoluate

Hello World!

Acest blog face parte din proiectul pentru Interfete Evoluate si va contine articole despre Interfete Evoluate, Interfete Utilizator, Interactiunea om-calculator,XML, DTD, Scripting si programare Web (Javascript, PHP etc), Servicii Web, Web 2.0 samd precum si temele noastre la Interfete Evoluate.

Cine suntem noi?

4 studenti in anul 5 la Facultatea de Automatica si Calculatoare, cu joburi si preocupari diferite, care si-au unit "fortele" pentru proiectul la Interfete Evoluate.
Mai multe despre fiecare, mai jos.

Monica Ionita
Grupa 351 C2
Project Manager pentru acest proiect, in restul timpului student si Junior Project Manager la HP.
Puncte de interes: scripting (Javascript), programare Web.
Sper ca acest proiect sa ma ajute in a invata notiunile de baza de optimizare pentru motoarele de cautare (SEO).

Gabrovschi Catalin
Grupa 354 C3
Student la "Facultatea de Automatica si Calulatoare" si developer la I-Play Romania.
Puncte de interes: Programare paralela, translatoare, sisteme de operare.
In legatura cu proiectul nostru sunt interesat de WAP si voi incerca sa tratez cat mai bine acest subiect.


Ionescu Radu-Dragos
Grupa 351 C2
Student la A&C si consultant SAP-SD in cadrul SBSOL Group.
Puncte de interes: modul in care noile tehnologii web influenteaza prezenta anumitor produse pe piata, ultimele moduri de a face reclama
Stiu ca acest proiect ma va ajuta sa imi formez o imagine generala cat mai clara despre rolul promovarii produselor pe Internet, impulsurile utilizatorilor aflati in fata unei decizii, cat si metode de promovare a unui site.

Ionita Daniel
Grupa 353 C2
Student la Facultatea de Automatica si Calculatoare, programator la Capital Software Romania
Puncte de interes - baze de date, OOP
De la proiect sper sa ma lase cu o intelegere mai buna a asa-numitului web 2.0