Sunday, November 25, 2007

Cum sa faci rapid un meniu cu css

Ai nevoie de 4 elemente: un fisier css, un fisier html si 2 seturi de imagini: unul pentru butoanele normale (neactivate) si unul pentru butoanele active (deasupra caruia se afla cursorul – starea hover).

Pas 1: Se editeaza un fisier css:

.menu_buton1

{
cursor: pointer;
background-image:url(img/b_01.jpg);
}

.menu_buton1_hover
{
cursor: pointer;
background-image:url(img/b_01_hover.jpg);
}

Este nevoie de 2 stiluri pentru un buton, stilul default ( cand butonul nu e activ ) – menu_buton1, si stilul care se aplica atunci cand vei fi cu mouse-ul deasupra lui : menu_buton1_hover.

Cursor: pointer va face sa apara cursorul tip link deasupra imaginii, iar background-image va seta imaginea dorita.

Se repeta cele doua stiluri pentru fiecare buton al meniului.

Pas 2: Se editeaza fisierul html:


Vom face un tabel fara margini si fara spatii intre celule.

<table border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="121" height="75" class="menu_buton1" onMouseOver='this.className=" menu_buton1_hover"' onMouseOut='this.className=" menu_buton1"' onClick='window.location = "link.html"'>&nbsp;

</td>

</tr>

</table>



Fiecare celula va fi un buton al meniului. Vom seta in fiecare celula dimensiunile dorite prin width si height, apoi ii vom defini clasa default: menu_buton1.


Vom folosi event-urile td-ului pentru a putea schimba stilul celulei fara sa reincarcam pagina. Codul din event-ul onMouseOver de exemplu, se va apela automat cand trecem cu cursorul deasupra elementului. this.className=" menu_buton1_hover" va face ca stilul elementului curent (td-ul nostru) sa se modifice in menu_buton1_hover. Acest stil va seta o alta poza de fundal (vezi pasul 1). La iesirea cu mouse-ul de deasupra elementului, vom schimba iar stilul la cel initial.


Pentru a simula efectul butonului, folosim onClick unde vom afisa alta pagina prin window.location = `link.html`.


Ca si continut, td-ul va avea un in el, adica un spatiu simplu care nu va aparea pe ecran, dar care trebuie pus deoarece td-ul trebuie sa contina ceva in el. Se poate pune o imagine cu un pixel transparent (gif) de exemplu, varianta chiar mai recomandata decat un spatiu.


Astfel un simplu td, cu 2 poze de fundal si cateva linii de cod, s-a transformat intr-un buton adevarat. In functie de cat de inventivi suntem, putem prezenta utilizatorului interfete atractive, dinamice, evoluate. Acest gen de meniuri este foarte simplu de utilizat si intretinut, singurul lucru dificil fiind designul efectiv al pozelor.

Saturday, November 24, 2007

Web crawling sau despre cum sa obtii o baza de date….

....O baza de date cu linkuri care te-ar putea interesa, o baza de date cu adrese de email :D ,o baza de date cu temperaturile sa zicem pentru mai multe orase sau pur si simplu o baza de date cu titlurile dintr-o pagina de ziar.Totul se reduce la a reusi sa extragi dintr-o pagina web, avand in spate un cod uneori mult prea incalcit pentru muritorii de rand, bucatica aia de informatie de care ai nevoie.Normal ca de la pagina html pe care o obtii printr-un simplu “View Source” si pana la un XML curat, plin cu bunatati pentru baza ta de date si mai ales simplu de parsat, e un oarecare drum.Pai sa vedem, sa zicem ca vrei sa folosesti XPath sau..XQuery sau de ce nu poate chiar simplul DOM pentru a parsa un fisier XML.Dar de unde iei XML-ul ?

Pasul 1:Faci rost de Tidy.Tidy pentru Java, Tidy pentru Python,ce preferi.

Pasul 2:Faci putina “curatenie “ in fisierul html si utilizand Tidy, obtii un XHTML, adica un HTML mult mai ordonat, cu toate tagurile inchise.

Pasul 3:Tratezi XHTML-ul ca un XML si te apuci sa parsezi :)

Ce-i cu Tidy?Pai interfete evoluate, dar prea evoluate, prea….grabite.Cam 40% din paginile HTML din intreg Internetul sunt scrise “grabit”, cu erori de genul <br> in loc de <br/>, cu taguri neinchise, totul pentru ca browserele HTML accepta orice input, corect sau incorect, incercand sa-l interpreteze cum pot mai bine.Un parser insa va sesiza toate aceste erori iar modalitatea cea mai simpla de a ajunge de la un HTML astfel scris la un riguros XHTML este acest Tidy.

Friday, November 23, 2007

Orcas-Visual Studio 2008 Beta 2

Dupa ce m-am jucat putin cu noul MS Visual Studio 2008 nume de cod Orcas, pentru prima oara, in intreaga suita Visual, m-am intrebat: ce e nou? Pentru utilizatorii vechiului Visual Studio raspunsul aparent va fi probabil … - Nimic!

Aceasta a fost prima mea reactie cand am testat VS2008 Beta 2. Dupa o scurta cautare pe stie-ul Microsoft am gasit documente care descriu cateva facilitati noi si aparent folositoare. Platforma Visual Studio este puternica si robusta - de la versiunea din 2003 pana in 2005, in VS s-a consolidat multe facilitati si unelte de dezvoltare, si nu exista practic o alternativa pentru utilizatorii care dezvolta aplicatii C/C++ pe platforme mobile de exemplu sau care deszvolta o aplicatie Windows pentru platforme x86.

Comparand Orcas cu predecesorul sau (VS2005) si considerand ca este in dezvoltare de peste trei ani, toate facilitatile noi lasa pana la urma un gust amar. Ma asteptam la mai mult de la aceasta versiune noua a platoformei.

Asa cum Microsoft a lansat Vista varianta Beta la inceputul lui 2007 tot asa in 2008 nu va face mare zarva in jurul lui VS2008. Totusi Microsoft a publicat destul de mult continut pe site-urile sale ce descrie noile facilitati din Orcas. Realitatea este ca VS 2008 introduce facilitati pe care doar un segment specific din utilizatorii sai le pot aprecia, in special cei care lucreaza cu .NET Framework.

Microsoft a spus clar ca nu incearca sa imbunatateasca experienta unui utilizator in Visual Studio dar mai curand se concentreaza pe popularizarea si utilizarea cat mai usoara a frameworku-ului pentru Windows Vista (referindu-se la C#, VB, ASP.NET).

Saturday, November 17, 2007

Lupta titanilor - Partea III

După ce am discutat despre fiecare tabăra e momentul sa comparam performantele.

Prima întrebare pe care ne-o punem este ce mari companii utilizează aceste tehnologi?

Flex

Acesta este deja la versiunea 2.0 se anunţa in curând apariţia Flex SDK 3.0. Este deja lansat si s-a bucurat de o perioada considerabila de monopol pe acest segment:

Amsterdam-Schiphol Airport

Sherwin-Williams Color Visualizer

Sony Ericsson Product Catalogue

Yahoo! Maps

Yahoo! Messenger for the Web


Pentru curiosi exista un site dedicate protofoliului acestei tehnologi :
http://flex.org/showcase/ Evident si acest site este creat tot in FLEX

Microsoft Silverlight

Tehnologie ne-lansata oficial pe piaţa decât intr-o varianta rudimentara, bazându-se pe un singur limbaj .Net JavaScript (varianta .NET nu cea intalnita in browsere deşi este asemănătoare ca sintaxa) se bucura deja de o suita impresionanta de clienţi :
http://silverlight.net/Showcase/

Microsoft Expression Design (WPF normal nu Silverlight)

Microsoft Expression Blend (WPF normal nu Silverlight)

Yahoo! Messenger (WPF normal nu Silverlight)


La acest capitol Flex castiga. Yahoo este un nume greu, Yahoo Maps merge superb! Speram sa existe un comeback din partea Silverlight odată cu lansarea oficiala 1.1. In tabăra Microsoft este foarte interesant faptul ca cele doua produse Expression (ce sunt in competiţie cu Adobe Dreamwaver si Image Ready) sunt create intr-o tehnologie noua pentru care nu exista inca un IDE. Pentru mine acest lucru arata ca .Net 3.0 este stabil.
Cat despre Yahoo Messager ... eu unul nu m-as lauda ca e facut in WPF ... este greoi consuma memorie si are tot felul de comportamente ciudate ce variază de la un calculator la altul... yacs....

A doua problema este cea legata de Framework ... Cati oamenii il au instalat? Cum il instalez... prefer sa parasesc site-ul sau instalez Framework-ul... Ce e aia Framework?

In funcţie de persoana răspunsul evident variază, insa câteva lucruri sunt clare pentru toti. Flex se foloseşte de Macromedia – Adobe Shockwave / Flash care este de ceva timp bun pe piaţa. Acest lucru înseamnă ca mulţi oamenii îl au si se bucura de el.... Sa nu uitam ca la un moment dat daca instalai Windows XP undeva in Costum Instalation puteai sa instalezi odată cu windows-ul si suportul de Shockwave o versiune veche si incompatibila cu Flex-ul totuşi. Microsoft-ul are avantajul Windows-ului... Oricand acesteia pot instala prin intermediul Windows Update-ului orice framework... Momentan Framework-urile sunt trecute la pachete opţionale - o simpla schimbare a categoriei ar putea spulbera avantajul Adobe.

Lupta titanilor - Partea II

Daca in prima parte am discutat pe scurt despre tabăra Adobe si am amintit cate ceva despre cei doi soldaţi ai săi in aceasta lupta, in cea de a doua parte vom discuta despre Microsoft si conceptul Avalon ..... ba nu WinFx ...... ba nu Orcas ..... ba nu WPF….ba nu Arrowhead.
Atâtea nume de cod si atâtea denumiri care mai de care mai ciudate pentru noile concepte si facilitaţi aduse de noile framework-uri. Desigur când spun noile framework-uri ma refer la NET Framework 3.0 (codename WinFX) si mai recentul NET Framework 3.5.

Nu intrebati de ce a aparut deja Framework 3.5 in momentul in care Framework 3.0 abia isi face debutul pe Windows Vista pentru ca nu voi putea raspunde exact.

Cert este ca Microsoft a introdus .NET Framework 3.0 WinFx in Vista default acum cel puţin un an, un an si jumătate ceea ce inseamana ca acesta exista de ceva vreme. Problema este ca Microsoft nu a pus la dispozitie utilitare de dezvoltare noi pentru acesta oferind decât o extensie pentru Visual Studio 2005 (destinat .NET 2.0). Aceasta extensie poate fi downloadata de la adresa următoare:
http://www.microsoft.com/downloads/details.aspx?familyid=F54F5537-CC86-4BF5-AE44-F5A1E805680D&displaylang=en

Pentru cei care nu au curiozitatea sa deschida acest link am sa dau un citat care mie unul mi s-a parut foarte intereant si m-a facut sa nu mai downloadez nimic:

The Visual Studio 2005 extensions for.NET Framework 3.0 (WCF & WPF), November 2006 CTP provides developers with support for building .NET Framework 3.0 applications using the released version of Visual Studio 2005. These tools are provided as an early preview of technology being considered for the Orcas release of Visual Studio. These tools are not supported by Microsoft but provided as is to enable early adoption of the .NET Framework 3.0 platform. Users will be expected to upgrade to the Visual Studio Orcas release when that becomes commercially available. Please fully review the EULA provided to understand the terms of this release.

Practic folosirea in sens comercial a programelor create cu aceasta extensie nu este posibila deoarece extensia este un preview (denumirea de beta ar fi fost mai elocventa) a unei tehnologii viitoare ce va necesita o licenta aditionala.

Orcas este numele de cod pentru viitorul Visual Studio 2008 ce va lucra cu .... surpriza .NET Framework 3.5.

Revenind la oile noastre ce ne interesează din tabăra Microsoft este noul concept:
WPF Windows Presentation Foundation. Acesta se imparte in mai multe componente.

Ideea de baza este ca aproximativ acelaşi cod rulează atât in browser cat si ca aplicaţie normala de sine stătătoare. Faptul ca aplicaţia este capabila sa ruleze in Browser transforma practic orice aplicaţie de sine stătătoare intr-o aplicaţie web client-side.

Controale utilizabile sunt aceleaşi atât pentru varianta browser cat si pentru varianta aplicaţiei normale. Aceste controale sunt asemantoare cu cele din NET.2.0 Windows Forms (acesta a ramas si in .NET 3.0 - vom discuta in alt articol).

WPF permite interoperabilitatea cu Windows Forms via un set de controale special construite ce permit comunicare dintre cele doua tehnologi. (sa nu uitam ca si Widows Forms era capabil intr-o măsura mica sa ruleze in browser)

WPF este tehnologia pretendenta din partea Microsoft vârful de lance este WPF/E - Windows Presentation Foundation Everywhere. WPF/E este o ramura ce s-a separat de WPF, scopul acestora este sa ofere un framework care sa ruleze in cat mai multe browsere. Frameworkul acesta derivat se numeste Silverlight si este capabil sa ruleze oficial si in Firefox si chiar in Safari pe MAC-uri.

Silverlight aduce acelaşi elemente inovative ca si Flex-ul. Layout intr-un sistem derivat din XML -XAML (vs MXML) usor de folosit usor de inteles usor de interpretat si parsat (interesant pentru domeniul Interfete Evoluate). Similitudinile sunt fantastice totul este vector-based, acelasi genuri de controale aceleasi suport ptr 3D, 2D, aceasi idee de efecte de tranzitie, acelasi suport ptr CSS. Fiecare parte si-a adus limbajele favorite : ActionScript vs .NET languages.

Privit in ansamblu Silverlight pare sa fie o clona a Flexului; ramane de vazut cat este de fiabil si cum se va comporta.

Tuesday, November 13, 2007

Lupta titanilor - Partea I

Cand vorbim despre titani in lumea softului ne gândim desigur la firme precum Adobe si Microsoft.

Recent cele doua companii fiecare lidere de piaţa pe segmentul lor au decis sa se atace fiecare îndreptându-se spre segmentul de piaţa dominat de cealalata.

Prima lupta se refera la bătălia pentru segmentul tehnologiilor web client-side.

Când vorbim de tehnologii web client-side primul lucru care ne vine in minte este cunoscutul Adobe Flash. Acesta exista de mulţi ani pe piaţa si se bucura de o mare popularitate in rândul designerilor de pagini web.

Odată cu preluarea de către Adobe a competitorului direct Macromedia aceştia au preluat si Flex Data Services. Flex-ul este un produs bazat pe Flash gândit sa facă mai uşoara viata unui programator oferindu-i modele de lucru si programare. Un mare atu al Flex-ului este faptul ca layout-ul se face prin descrieri MXML, model bazat pe fişiere XML acest lucru facilitând dezvoltarea rapida a interfetei grafice.

Daca aruncam o privire pe screen-shoturile alăturate o sa observam o lista impresionanta de controale. Acesta lista îmi aduce aminte de IDE-urile specializate in dezvoltarea de aplicaţii Windows ce aveau un designer vizual puternic si o suita de controale la fel de de impresionanta precum: Delphi, C#/C Builder, Intelli Java, NetBeans, Visual Studio... Se pare ca Flex oferă aceeaşi putere si nu oriunde .... chiar pe WEB.


La prima vedere totul suna perfect:


  • Flexibilitate asemănătoare cu cea aplicaţiilor Windows intr-un browser. Event-uri si triggere ce ar fi aproape imposibil de stăpânit si programat cu AJAX si JavaScript.
  • Aplicaţiile sunt state-aware, s-a terminat cu QueryString-ul (GET), POST, Session, Cookies sau alte metode care mai de care pentru a stoca variabilele de la o pagina la alta.
Din păcate perfecţiunea are si ea un cost... minusurile desigur exista si dor:

  • Aplicaţia rulează pe calculatorul clientului intr-un sandbox fara drepturi si este dependenta de puterea de procesare a clientului.
  • Este nevoie de Macromedia Shockwave/Flash plugin pentru a putea beneficia de aceasta experienţa.

Despre ce e vorba?

De fapt, ce-i cu proiectul asta? Proiectul are ca scop nu numai familiarizarea studentilor cu ceea ce se numeste tehnologie web dar si acomodarea acestora cu “lupta ”pentru mediatizarea unui produs de internet, cu tot ceea ce inseamna aceasta:indexare pe motoare de cautare, inscriere pe directoare web si pe monitoare de trafic. (si da, chestia asta chiar necesita timp si rabdare si perseverenta)

Oricum, dupa ani de electronici, matematici, fizici,(no offence) uite ca studentii de la Automatica si Calculatoare, acum, in anul 5 de facultate invata si ei .... tehnologii web. (said it)

Blogul, aici de fata :), are ca scop promovarea site-ului destinat proiectului si se bazeaza pe articole despre tehnologiile prezentate in cadrul orelor de Interfete Evoluate sau tehnologii utilizate de membrii echipei in realizarea temelor : XML,DTD,XPATH,XQUERY,CSS,XHTM.

Relansare site

Relansare! Da, este 13, da,este marti 13, da, va trebui sa asteptam alte 2 saptamani (in cel mai fericit caz) pentru indexarea la Google dar noi suntem optimisti si va ... redirectionam: http://interfete-evoluate.i-neo.ro/

De ce?

Pentru ca traficul ne....da nota:D. Si cum inainte eram sub tutela si sub...umbrela traficului celor de la www.i-neo.ro (nu ca nu ne era bine), ni s-a cerut sa fim pe picioarele noastre si sa ne bazam pe propriul trafic.

Va fi la fel de bine,u will see!

Tuesday, November 6, 2007

Lansare

De astazi este disponibil siteul echipei : www.i-neo.ro/ie .Acolo vor fi postate enunturile temelor primite de-a lungul semestrului la Interfete Evoluate,materie din aria curriculara a specializarii C2.
De asemenea veti putea gasi rezolvarile fiecarui membru al echipei pentru respectivele teme. (Cred ca cei mai multumiti vor fi cei ce vor studia anul viitor Interfete Evoluate:D)