luni, 10 decembrie 2007

Macromedia Fireworks MX 2004 (Tips and Tricks)

Macromedia Fireworks este un editor puternic pentru grafica si design. Ultima versiune a acestui produs Macromedia - Fireworks MX 2004 este exact ce aveti nevoie daca sunteti pasionati de web design, oferind o solutie completa pentru dezvoltare in web.

Voi enumera in continuare cateva trucuri care pot fi folosite:

· Apasa tastele „Alt” + „Sageata Jos” pentru a duplica un obiect grafic.

· Foloseste Curves pentru a da designului tau un aspect interesant.

· Pentru crearea de forme sau imagini transparente se seteaza „Transparency of Images or Shapes

· Pentru editari profesionale de imagini se foloseste Image Feathering

· Se pot utiliza diferite efecte precum Inner/Outer Bevel sau Drop Shadow and Glow (Properties Window -> Effect Panel)

Compatibilitatea IE cu standardul CSS2/CSS3

In primul rand ce este un fisier CSS? CSS reprezinta prescurtarea de la Cascading Style Sheets (denumirea oficiala a standardului).Un fiser CSS este un fisier text cu extensia ".css" definind stiluri pentru paginile HTML. Stilurile indica intr-un mod mult mai riguros decat atributele HTML cum sa afiseze browserul elementele componente ale unui document HTML (text, grafica, formulare, etc...), oferind posibilitati mult superioare standardului HTML.

Standardul CSS are diferite niveluri si profile. Fiecare nivel nou CSS este construit pe baza ultimului nivel, adaugandu-se noi functionalitati. Aceste niveluri sunt denumite: CSS1, CSS2, CSS3.

Nu toate browserele implementeaza toate functionalitatile unui anumit nivel CSS. Aceasta problema apare si in cazul browserului Internet Explorer.

Multe din caracteristicele mai avansate ale standardului CSS nu sunt utilizate de dezvoltatorii web deoarece Explorerul nu este compatibil cu aceste implementari ale CSS-ului. Spre exemplu CSS2 a implementat state-urile :before si :after pentru fiecare element. Din pacate, Internet Explorer nu stie de existenta lor. De aceea, multi folosesc javascript pentru a realiza acelasi efect. Astfel prin incluziunea unui fisier javascript, IE se poate comporta ca un browser compatibil cu standardele definite in CSS.

Pentru compatibilitatea Explorerului cu CSS2/CSS3 va recomand sa folositi libraria oferita de Dean Edwards: IE7

IE7 incarca si parseaza toate style sheeturile intr-o forma pe care Explorelul o poate intelege.

Aceasta librarie este de fapt un script care trebuie inclus la inceput in documentul HTML/XML.

marți, 4 decembrie 2007

SAX...sucks?

Va spun din start - I like DOM. Nu stiu de ce. Probabil pentru ca sunt un tip mai ordonat din fire, si imi place ca lucrurile sa aiba structura. Sau poate pentru ca pur si simplu mi se pare foarte usor de lucrat cu el - in comparatie cu metode on-the-fly precum SAX de exemplu.
Sa detaliem pe un exemplu, de care m-am lovit eu in rezolvarea temei 2 Dupa cum puteti citi si in detalierea abordarii mele , trebuia sa parcurg pagini de filme de pe IMDB si sa extrag referinte la alte filme si regizori. In particular, trebuia sa extrag din lista de recomandari ale unui film alte titluri de filme de potential interes.
Iata spre exemplu o "mica" bucata din pagina IMDB a (excelentului ) film Mean Streets: aici e exemplul

Cu SAX, si de fapt cu orice fel de parser secvential - de ex cel folosit de mine pentru a implementa tema, diferit de SAX - pentru asta vezi tot modul meu de implementare - pentru a face rost de lista de filme recomandate, trebuie mai intai cautat in HTML acel tag H3 care are ca text Recommendations. Dupa ce acest tag este gasit, trebuie cautata(prima) eticheta de inceput de tabel; dupa ce si aceasta este gasita, trebuie cautata a doua eticheta de start TR ; abia in acest moment, pentru fiecare TD intalnit, putem face rost de informatiile ce ne intereseaza despre film. Si inca acest procedeu nu este deloc complicat; pentru niste informatii aflate in niste taguri cu un nivel de imbricare mai mare, deja incepi sa te pierzi in detalii.
Sa comparam spre exemplu cu modul cum ai putea sa rezolvi problema in DOM:


xmlDoc = loadXMLDoc("MeanStreets.html");
var x = xmlDoc.getElementsbyTagName("H3");
for( var i=0 ; i < x.length ; i++ )
{
if( x[i].nodeValue.equals("Recommendations") ) {
var children = x[i].nextSibling().nextSibling().getChildren()[2].getChildren();
for( var j = 0 ; j < children.length ; j++ ) {
var movie = children[j].getFirstChild();
movieName = movie.nodeValue;
movieLink = movie.getAttribute('href');
}
}
}

Parca arata ceva mai curat, nu?

schimbare de domiciliu

Cu toate ca idilis este o gazda buna, nu prea avea dotarile corespunzatoare ; ca orice serviciu free, nu te poti astepta la prea mare calitate( decat daca este vorba de open-source :P ). Principalul neajuns era faptul ca nu avea suport de PHP si/sau MySQL, cerinte absolut necesare daca vrei sa "supravietuiesti" in domeniul interfete evoluate.
De aceea, am decis sa ne cautam un domiciliu nou. Cautarea asta a semanat un pic cu cautarea in domeniul real estate, ca nu degeaba fac eu comparatia acuma; multa alergatura si putine rezultate multumitoare. Intr-un final , ne-am decis pentru 3x.ro, site ce ofera suport pentru PHP si MySQL, insa "ofera" si o filtrare a clientilor...

Si deci iata, cel mai bun site pentru interfete evoluate is back ! Expect only the best from the iexperts !

Ca si content, Stefan a intrat in forta cu un howto despre cum sa implementezi un sistem de error reporting bazat pe xml, iar yours truly v-a adus un mic prilej de relaxare - si sa nu imi spuneti ca nu e amuzant !

luni, 5 noiembrie 2007

our super-site finally up!

Gata de acuma o dau pe romana :)
In sfarsit am dat drumul si la site-ul caruia ii vom face "reclama" pe blogul asta - sper ca de data asta macar am inteles ce trebe facut la proiectu asta! :P
Site-ul este http://iexperts.idilis.ro/ Momentan acolo se gaseste o pagina phony pe care am downloadat-o de pe pagina personala a lui Bjarne Stroustrup. Cu timpul o sa facem ai pagina sa respecte formatul cerut de authorities :D
Contul creat la idilis este:
  • user = iexperts
  • pass = strepxei ( adica iexperts scris invers - credits to Dan pentru idee ;) )
Pentru a uploada o pagina se foloseste orice client de ftp - eu folosesc SmartFTP pe Windoze. Se conecteaza la ftp://iexperts.idilis.ro pe portul 21 (evident) cu userul si parola de mai sus. SmartFTP-ul mie imi mai cere sa ii dau si "host-ul" - aici eu am pus iexperts.idilis.ro, si a mers.
Metoda asta de upload prin FTP o sa ne fie utila, pt ca putem incarca <> fel de fisiere pe site( bineinteles cu conditia respectarii terms and conditions de la idilis), deci asa vom incarca inclusiv temele alea ale noastre care cica o sa trebuiasca sa fie pe site.

sâmbătă, 20 octombrie 2007

testing you XML + DTD

After I've created come simple XML and DTD files, I wanted to test what I've done. Unfortunately, after a little bit of searching over the net , I found out from here that, although Firefox displays and XML's and checks them to be well-formed, it does not support DTD validation of XML files, or any other kind of validation schemas such as XML Schema or Relax NG. So I started looking on the web for some other(free) XML - DTD validator. The first thing found was an online service : validome It is useful for checking XML and DTD files separately, but it doesn't help for validating an XML with the help of an DTD specification. After some more searching, I found two interesting Windows programs: XMLPad and Cooktop. I downloaded and installed the latter, and I found it really helpful. It is very easy to use, and it gets you straight to what you want, and that is checking/validating your files. Not to mention it supports a large variety of formats, such as XML, DTD, XSL, XSD, SVG.

to attribute or not to attribute...

As I was playing around with DTD validation for XML, I stumbled upon one of the policy decisions you have to make when specifying the structure of the XML elements: should you put the related data as child-elements, or as attributes? When first skimming through the DTD tutorial from W3Schools, it came as a surprise to me that the dilemma stated above got a whole section in the tutorial. But then , as I started to manually write a DTD specification, it occured to me that that section was not as far off-topic as I initially thought it was. In fact, you can easily write an XML and the related DTD validation file with no attributes at all - and heck, this is the recommended way of doing things, as attributes and ATTRLIST should be used only for metadata about elements. Probably that's also what the DTD specification designers had in mind, when creating special types for attributes such as ID, IDREF and IDREFS ( when it's clear that INT and LIST would have cover all these cases, and a lot more!).