<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- iMasters Gerador RSS 2.0 -->
<rss version="2.0">
    <channel>
        <title>iMasters - Seção: xhtml</title>
        <description>iMasters - Comunidade de profissionais, estudantes e mestres em tecnlogias e ferramentas voltadas para o desenvolvimento web</description>
        <link>http://imasters.uol.com.br/</link>
        <lastBuildDate>Wed, 10 Mar 2010 14:08:07 +0100</lastBuildDate>
        <generator>iMasters Gerador RSS 2.0</generator>
        <item>
            <title>CSS Frameworks</title>
            <link>http://imasters.uol.com.br/artigo/15700/css/css_frameworks/</link>
            <description>&lt;p&gt;&lt;a href=&quot;http://pt.wikipedia.org/wiki/Framework&quot; class=&quot;ext&quot;&gt;&lt;/a&gt;Frameworks são estruturas de códigos 
definidas onde um projeto de software, seja ele web ou não, pode ser 
criado e desenvolvido. Frameworks podem incluir programas de suporte, 
bibliotecas de código, linguagens de script ou qualquer outro tipo de 
software para auxiliar no desenvolvimento.&lt;/p&gt;

&lt;p&gt;Eles foram projetados para auxiliar no desenvolvimento de softwares, 
auxiliando designers e programadores a gastar menos tempo com 
desenvolvimento.&lt;/p&gt;

&lt;p&gt;Em CSS, frameworks geralmente são um conglomerado de arquivos css com coisas base para 
tipografia, estrutura de layout, menu. Sua utilização deve ser muito 
cuidadosa, pois utilizar frameworks em desenvolvimento XHTML e CSS pode não trazer a mesma produtividade do que se você estivesse usando um framework para PHP, JavaScript. É importante que o desenvolvedor saiba 
ler e compreender o código que ele está escrevendo. &lt;/p&gt;

&lt;p&gt;Não, não quero 
colocar aqui a idéia de que a utilização de frameworks em CSS é o fim do
 mundo, que você não deve utilizar, aliás, quem aqui nunca fez um pouco 
de copiar e colar em CSS? Quem não tem algumas coisas já prontas e sempre as reutiliza a cada projeto? A idéia que quero passar é que é 
importante você conhecê-los, entender seu funcionamento para saber se o 
que você faz hoje é mesmo o correto, conhecer a forma como trabalham os 
outros desenvolvedores, aprender a utilizar herança, uma coisa que é 
essencial e todo desenvolvedor Front-end deveria dominar.&lt;/p&gt;

&lt;p&gt;Se você ficou interessado em conhecer os Frameworks CSS, dê uma 
olhada na lista abaixo:&lt;/p&gt;

&lt;h4&gt;Elements CSS Framework&lt;/h4&gt;

&lt;p&gt;Foi desenvolvido para ajudar aos desenvolvedores a escrever CSS de forma mais 
rápida e mais eficiente. Elements fica longe de ser um simples 
Framework, ele possui tudo o que você precisa para concluir os seus 
projetos. Leia o &lt;a href=&quot;http://elements.projectdesigns.org/overview.html&quot; class=&quot;ext&quot;&gt;Overview&lt;/a&gt; para maiores informações.&lt;/p&gt;

&lt;h4&gt;YUI Grids CSS&lt;/h4&gt;

&lt;p&gt;Framework desenvolvido pelo Yahoo que possui um preset com 6 modelos 
pré-definidos de página. Um simples arquivo de 4KB fornece mais de 1000 
combinações diferentes de paginação.&lt;/p&gt;

&lt;h4&gt;YAML CSS Framework&lt;/h4&gt;

&lt;p&gt;Dirk Jesse's extensive (X)HTML/CSS Framework oferece um montante de 
modelos padrão para uma série de simples ou complexos layouts. YAML é 
baseado em padrões web e suporta os mais variados browsers. Todas as 
correções de bugs do Internet Explorer você pode encontrar nesse 
Framework.&lt;/p&gt;

&lt;h4&gt;Blueprint CSS&lt;/h4&gt;

&lt;p&gt;Blueprint CSS é um Frameork criado para diminuir o tempo gasto com 
desenvolvimento em CSS. Possui uma estrutura sólida para que você possa 
construir seus projetos, além de possuir folhas de estilo para 
tipografia e impressão.&lt;/p&gt;

&lt;h4&gt;Schema Web Design Framework&lt;/h4&gt;

&lt;p&gt;Schema foi desenvolvido para conceber e proporcionar uma essencial 
marcação XHTML e CSS que é utilizada repetidamente no desenvolvimento 
XHTML e CSS. Ao invés de reconstruir seu XHTML e CSS a cada projeto, 
Schema fornece a base necessária para tê-lo instalado e funcionando em 
qualquer projeto.&lt;/p&gt;

&lt;h4&gt;CleverCSS&lt;/h4&gt;

&lt;p&gt;CleverCSS é uma pequena linguagem de marcação CSS inspirada em Python
 que pode ser usada para o desenvolvimento de uma folha de estilos limpa
 e clara. Em muitos aspectos é mais limpa e clara do que CSS2. A mais 
óbvia diferença é a sintaxe: trata-se de identação e não com base 
plena.&lt;/p&gt;

&lt;h4&gt;Tripoli CSS Framework&lt;/h4&gt;

&lt;p&gt;Tripoli é um padrão genérico de CSS e HTML para renderização, 
tornando crossbrowser e mais estáveis seus projetos.&lt;/p&gt;

&lt;h4&gt;ESWAT Web Project Framework&lt;/h4&gt;

&lt;p&gt;ESWAT não nos passa muitas informações em seu site, portanto, faça o &lt;a href=&quot;http://eswat.ca/eswat_web_project_framework_1_2.zip&quot; class=&quot;ext&quot;&gt;download do framework&lt;/a&gt; e 
descubra por si só todo seu potencial.&lt;/p&gt;

&lt;h4&gt;Boilerplate CSS Framework&lt;/h4&gt;

&lt;p&gt;Esse Framework se esforça ao máximo para não definir nomes não 
semânticos para suas Classes ou ID's, pois aqui o desenvolvedor é você.&lt;/p&gt;

&lt;h4&gt;WYMstyle CSS Framework&lt;/h4&gt;

&lt;p&gt;O objetivo desse Framework é fornecer um conjunto de arquivos para 
tornar seu CSS modular, que pode ser usado para o desenvolvimento de web
 sites rápidos. Ele também visa suprimir a incompatibilidade entre 
browsers através de módulos CSS.&lt;/p&gt;

&lt;h4&gt;ESWAT Web Project Framework&lt;/h4&gt;

&lt;p&gt;Permite o rápido desenvolvimento de projetos com componentes 
pré-escritos. Tudo isso é necessário para construir um ambiente 
flexível.&lt;/p&gt;

&lt;h4&gt;Logicss Framework&lt;/h4&gt;

&lt;p&gt;Logicss é uma coleção de arquivos CSS e PHP para reduzir o tempo de 
desenvolvimento de aplicações Standard Compliance. Possui também folhas 
de estilo para Tipografia.&lt;/p&gt;

&lt;h4&gt;That Standards Guy CSS Framework&lt;/h4&gt;

&lt;p&gt;O único válido para WCAG 1.0. Crossbrowser possui folhas de estilo 
com hacks para IE separados.&lt;/p&gt;

&lt;h4&gt;960 Grid System&lt;/h4&gt;

&lt;p&gt;Framework desenvolvido com base em uma largura de 960 pixels. Possui 2
 variantes de 12 e 16 colunas, que podem ser utilizadas separadamente ou
 em conjunto.&lt;/p&gt;

&lt;h4&gt;Emastic CSS Framework&lt;/h4&gt;

&lt;p&gt;Ele é leve e possui larguras de página personalizadas. Utiliza 
unidades de medida &quot;em&quot; para o desenvolvimento dos layouts.&lt;/p&gt;

&lt;h4&gt;Origo CSS&lt;/h4&gt;

&lt;p&gt;Framework baseado no desenvolvimento em Grids. A chave está no 
desenvolvimento utilizando blocos e colunas. As colunas permitem ordenar
 os elementos de forma horizontal. Enquanto os blocos de informação são 
ordenados na vertical.&lt;/p&gt;

&lt;h4&gt;Typogridphy&lt;/h4&gt;

&lt;p&gt;Framework para designers e desenvolvedores front-end de forma a 
mostrar em seu site uma tipografia mais gratificante. É baseado no 
Framework &lt;a href=&quot;http://960.gs/&quot; class=&quot;ext&quot;&gt;960 Grid System&lt;/a&gt; lhe permite desenvolver layouts 
baseados em grids de forma semântica.&lt;/p&gt;

&lt;h4&gt;Haml&lt;/h4&gt;

&lt;p&gt;Framework Server-side para Rails onde o principal objetivo é tornar 
sua marcação a mais limpa possível. Foi criado para ser utilizado em 
ambientes altamente produtivos.&lt;/p&gt;

&lt;h4&gt;SenCSS&lt;/h4&gt;

&lt;p&gt;Pode ser pronunciado como &quot;bom senso&quot;, onde aqui a tarefa de ser 
repetitivo é deixada de lado e o desenvolvimento com CSS fica mais 
prazeroso. É otimizado para deixar o CSS o mais funcional possível. 
Possui estilos básicos para Tipografia e Formulários.&lt;/p&gt;

&lt;h4&gt;Taffy&lt;/h4&gt;

&lt;p&gt;Taffy foi desenvolvido para lhe poupar tempo. Como desenvolvedor web, 
existem várias coisas que você deve fazer por padrão a cada projeto: 
Sobrepor os estilos padrão de cada navegador, tipografia, entre outras 
coisas. Taffy cuida disso e de outras tarefas para que você possa ser 
semântico e produtivo.&lt;/p&gt;

&lt;h4&gt;Hartija CSS Print Framework&lt;/h4&gt;

&lt;p&gt;Hartija é Framework CSS desenvolvido para impressão, onde pretende em
 uma arquivo css otimizar da melhor forma possível seu site para 
impressão.&lt;/p&gt;

&lt;h4&gt;Formy CSS Form Framework&lt;/h4&gt;

&lt;p&gt;Formy foi criado para lhe auxiliar na criação de formulários 
acessíveis e simples. Funciona perfeitamente nos principais browsers: IE
 6 / 7, o Firefox 2 / 3, Opera 9.23/9.5, Safari 3.1 (Win).&lt;/p&gt;

&lt;h4&gt;Construct&lt;/h4&gt;

&lt;p&gt;Construct é uma espécie de editor visual baseado no Blueprint em 
conjunto com o Framework jQuery.&lt;/p&gt;

&lt;p&gt;*&lt;/p&gt;

&lt;p&gt;Esse post foi inspirado no original de &lt;a href=&quot;http://hiddenpixels.com/css-stuffs/css-frameworks/&quot; class=&quot;ext&quot;&gt;Hidden Pixels&lt;/a&gt;&lt;/p&gt;

</description>
            <author>pedrorogerio@hotmail.com (Pedro Rogério de Assis Lemes)</author>
            <pubDate>Wed, 27 Jan 2010 11:15:00 +0100</pubDate>
            <guid>http://imasters.uol.com.br/artigo/15700</guid>
        </item>
        <item>
            <title>Web 3.0 – um bicho de sete cabeças?</title>
            <link>http://imasters.uol.com.br/artigo/13452/tendencias/web_30_–_um_bicho_de_sete_cabecas/</link>
            <description>&lt;p&gt;Há muito pouco tempo começaram a surgir boatos por aí de que estamos entrando 
na Web 3.0, ou a &quot;Web Semântica&quot;. E hoje eu vim falar um pouquinho, pra vocês, 
sobre essa nova tendência.&lt;/p&gt;

&lt;p&gt;Como meu amigo &lt;a href=&quot;http://bernarddeluna.com/&quot; class=&quot;ext&quot;&gt;Bernard De Luna&lt;/a&gt; (especialista em (X)HTML, CSS e 
semântica) disse: &quot;&lt;em&gt;Não existem versões. Existe a tendência a uma evolução 
natural das coisas. Nós simplesmente percebemos essa mudança de vento e queremos 
dar um nome pra ela.&lt;/em&gt;&quot; Não exatamente com essas palavras, mas sei que foi 
isso que ele quis dizer.&lt;/p&gt;

&lt;p&gt;Estamos entrando numa época onde cada vez mais sites e mais domínios são 
comprados, publicados e jogados na Internet e, diga-se de passagem, sem nenhum 
cuidado, planejamento ou organização. E é esse o pilar da tal Web 3.0: 
&lt;strong&gt;organização&lt;/strong&gt;. Cada vez mais informações (verdadeiras ou falsas) 
estão sendo publicadas na Internet. Isso se deve ao boom da Web 2.0 onde a 
contribuição do visitante é o bem mais valioso de um site. São comentários, 
fóruns, notícias, muitos blogs, fotos, vídeos, Twitters e por aí vai. É um mundo 
de possibilidades onde você pode criar o seu conteúdo, da forma e cor que 
desejar.&lt;/p&gt;

&lt;p&gt;A tecnologia não pára de crescer, cada vez as máquinas e os robôs estão mais 
inteligentes. E juntando essa inteligência artificial com inúmeros algoritmos de 
processamento, essas máquinas são capazes de armazenar e organizar 
informações.&lt;/p&gt;

&lt;p&gt;Então veja que mundo perfeito: se nós, humanos, estamos produzindo e 
publicando qualquer tipo de informação (em todos os idiomas e dialetos 
possíveis) e as máquinas, em contrapartida, são capazes de captar, entender e 
organizar essas informações, o mundo está a um passo do que poderia ser chamado 
de &lt;strong&gt;cultura global&lt;/strong&gt;, ou &lt;strong&gt;conhecimento global&lt;/strong&gt;, onde cada pessoa tem acesso a qualquer tipo de informação, e as máquinas são 
capazes de, baseadas nessas informações, tomar decisões e automatizar (mais 
ainda) a vida dos seres humanos.&lt;/p&gt;

&lt;p&gt;Tá... e o que essa lengalenga toda tem a ver com o meu HTML?&lt;/p&gt;

&lt;p&gt;Sem dúvida nenhuma, o maior formato de publicação de conteúdo na Internet 
hoje (o maior acervo de conhecimento da humanidade) é o formato em HTML ou 
XHTML Seja o Twitter ou um blog, são todos HTML. E a Web 3.0 sugiu da 
necessidade de organizar toda essa avalanche de informação que vem sendo criada 
diariamente de uma forma irresponsável, para que as máquinas possam ter acesso a 
esse tipo de informação.&lt;/p&gt;

&lt;p&gt;Veja o exemplo do &lt;em&gt;Crawler&lt;/em&gt; Google. O que é ele, senão um super-robô 
que fica, o dia inteiro, vasculhando todos os sites do mundo e armazenando 
informações para serem entregues quando você faz uma busca? Agora imagine que 
você é esse robô e tem que armazenar, na sua memória, informações relativas a 
uma biblioteca inteira 25 mil livros. Só que infelizmente cada livro foi 
escrito por um autor, seguindo uma escola literária diferente, idioma diferente 
e catalogado de forma diferente Fica bem pior pra você, não fica?&lt;/p&gt;

&lt;p&gt;A tendência da &quot;nova Web&quot; é exatamente essa: Organizar o HTML usando os 
elementos corretos, seguindo um padrão internacional (definido pelo 
&lt;strong&gt;W3C&lt;/strong&gt;) e, permitindo assim, uma melhor compreensão do seu 
site.&lt;/p&gt;

&lt;h4&gt;O &quot;Melhor dos Mundos&quot;&lt;/h4&gt;

&lt;p&gt;Imagine o que pode acontecer em um futuro próximo: você marca um evento na 
sua agenda do Google ou Yahoo, por exemplo, &quot;reunião no escritório da empresa X às 14h&quot;. Aí o seu computador, baseado em toda essa gama de informações possíveis, 
descobre o endereço desse escritório e, usando uma API geográfica, descobre que 
esse escritório fica em outro estado. Então, automaticamente, ele já busca a melhor opção de vôo pra você e até 
informa o vôo, horário, data, e preço, usando 
um sistema das empresas de linhas aéreas. É só você concordar com ele e a sua vida 
está resolvida.&lt;/p&gt;

&lt;p&gt;Isso tudo será possível se nós, criadores de conteúdo (leia-se HTML), a 
partir de hoje mesmo, começarmos a organizar o que criamos.&lt;/p&gt;

&lt;p&gt;A maioria dos desenvolvedores está acostumada a criar o HTML e o CSS ao 
mesmo tempo. Com isso você acaba tendo que escolher os elementos que vai usar 
para facilitar a sua vida na hora de criar o CSS. Faça como o &lt;strong&gt;Bernard De 
Luna&lt;/strong&gt; me ensinou: sempre crie TODO o HTML da página antes, sem 
nem pensar no CSS. Use os elementos corretos para exibir o conteúdo do seu site 
de forma hierárquica e concisa.&lt;/p&gt;

&lt;p&gt;Se você for criar uma série de elementos que irão se repetir, como menus, 
listas de produtos e listas de notícias, use listas (&amp;lt;ul&amp;gt;), pois esse 
elemento informa pra máquina que aquilo é uma lista!&lt;/p&gt;

&lt;h4&gt;MicroFormats&lt;/h4&gt;

&lt;p&gt;Existe uma coisa bem legal chamada MicroFormats que é uma das bases dessa tal 
Web 3.0 (que vem acompanhado do &lt;strong&gt;HTML 5&lt;/strong&gt; e do &lt;strong&gt;XHTML 
2&lt;/strong&gt;). Ele se baseia na passagem de parâmetros, via seu código HTML 
(usando elementos específicos acompanhados de classes pré-definidas) para 
informar que tipo de informação está sendo transmitida. Um exemplo básico seria 
numa página onde tem os dados de contato e, ao redor do telefone, você diz que 
aquilo ali é o seu telefone usando um &lt;strong&gt;class=&quot;phone&quot;&lt;/strong&gt;. Isso vai 
fazer com que o robô identifique mais fácil que o telefone do autor daquele 
site, ou da empresa em questão, é aquilo que está dentro do elemento.&lt;/p&gt;

&lt;h4&gt;Desenvolvimento Ético, por uma WEB melhor&lt;/h4&gt;

&lt;p&gt;Não é só na medicina e na advocacia que existe ética. Você deve ser ético 
também na hora de criar um conteúdo HTML pois, se você o fizer da forma correta, 
usando os conceitos e padrões internacionais, inserindo todas as informações 
necessárias, além de ter um site muito mais bem posicionado e indexado nos 
sistemas de busca, você vai contribuir para uma digitalização correta de todo o 
conhecimento do mundo e, quem sabe, não precise ter que procurar a sua passagem 
de avião pro próximo evento que for.&lt;/p&gt;

&lt;p&gt;E pra quem ficou curioso sobre o assunto, as palavras-chave de busca são: 
&lt;strong&gt;semântica&lt;/strong&gt;, &lt;strong&gt;XHTML&lt;/strong&gt;, &lt;strong&gt;W3C&lt;/strong&gt; e 
outras espalhadas pelo texto.  &lt;/p&gt;

&lt;p&gt;Um grande abraço!&lt;/p&gt;

</description>
            <author>contato@thiagobelem.net (Thiago Dutra da Fonseca Belem)</author>
            <pubDate>Wed, 08 Jul 2009 09:30:00 +0100</pubDate>
            <guid>http://imasters.uol.com.br/artigo/13452</guid>
        </item>
        <item>
            <title>Web Beacon</title>
            <link>http://imasters.uol.com.br/artigo/13389/desenvolvimento/web_beacon/</link>
            <description>&lt;p&gt;Web Beacons ou Web Bugs são umas séries de técnicas utilizadas para monitorar quem está lendo uma página na web, email e/ou dados do computador. Também pode ser usado para verificar se um determinado e-mail foi lido ou se uma determinada matéria foi copiada indevidamente para outro site. Os primeiros  Web Beacon eram imagens de 1x1. &lt;/p&gt;


&lt;p&gt;
Adicionalmente, um  Web Beacon é utilizado para medir padrões de tráfego dos usuários de uma página a outra com objetivo de maximizar o fluxo de tráfego através da Web. Por exemplo, o usuário e o visitante do site Mercado Livre manifestam conhecer e aceitar que Mercado Livre poderá utilizar um sistema de monitoramento mediante a utilização dos mesmos.
&lt;/p&gt;


&lt;p&gt;Embora Web Beacons seja utilizada da mesma forma nas páginas da Web ou e-mails, as finalidades são diferentes:&lt;/p&gt;


&lt;ol&gt;&lt;li&gt;Se está embutido em um e-mail, a imagem é carregada pelo browser quando o usuário lê o e-mail pela primeira vez, assim podemos saber se um determinado e-mail foi lido ou não;&lt;/li&gt;

&lt;li&gt;Sempre que é feito o download de uma página da Web (com ou sem erros), o servidor que retém a página sabe e pode armazenar o endereço IP do computador que solicita a página, linguagem do browser etc.&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;Abaixo segue um exemplo simples, onde eu vou pegar o IP do usuário que acessa uma determinada página.&lt;/p&gt;


&lt;p&gt;
Criaremos um arquivo chamado &lt;strong&gt;webbug.php&lt;/strong&gt;&lt;/p&gt;


&lt;div class=&quot;codigo&quot;&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;?php&lt;br /&gt;// crio um arquivo aonde vou armazenar o ip do usuário&lt;br /&gt;f = fopen('teste.txt','a');&lt;br /&gt;fwrite(f,_SERVER['REMOTE_ADDR'].&quot;&amp;#92;&amp;#92;n&quot;);&lt;br /&gt;fclose(f);&lt;br /&gt;// aqui eu retorno o cabeçalho informando que esse arquivo é uma imagem, isso evita erros do browser&lt;br /&gt;header('Content-type: image/gif');&lt;br /&gt;?&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Agora vamos incluir o Web Beacon, para isso vamos criar uma tag IMG com as dimensões 1x1&lt;/p&gt;


&lt;div class=&quot;codigo&quot;&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;img src=&quot;webbug.php&quot; alt=&quot;&quot; width=&quot;1&quot; height=&quot;1&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Dessa forma quando o browser carregar a imagem, ele também está executando o arquivo webbug.php, desta forma criamos um Web Beacon. &lt;/p&gt;


&lt;p&gt;
Hoje os Web Bugs também utilizam IFrame, link , script e outras tags para monitorar uso. 
&lt;/p&gt;


&lt;p&gt;Web Beacons  podem ser utilizados em combinação com cookies HTTP como qualquer outro objeto transferido usando o protocolo HTTP.&lt;/p&gt;


&lt;p&gt;
Espero que tenham gostado.				&lt;/p&gt;

</description>
            <author>camilo.melo@yahoo.com.br (Camilo Teixeira de Melo)</author>
            <pubDate>Mon, 06 Jul 2009 09:00:00 +0100</pubDate>
            <guid>http://imasters.uol.com.br/artigo/13389</guid>
        </item>
        <item>
            <title>Como criar um formulário simples no Joomla</title>
            <link>http://imasters.uol.com.br/artigo/13188/joomla/como_criar_um_formulario_simples_no_joomla/</link>
            <description>&lt;p&gt;Neste artigo iremos aprender a criar um formulário simples para o Joomla, utilizando o componente Chrono Forms. Esse formulário será similar ao fale conosco, mas com algumas particularidades bem interessantes. Além disso, este tutorial vai lhe abrir um leque de possibilidades para a criação de formulários para o Joomla.&lt;/p&gt;

&lt;p&gt;
Antes de tudo você precisa baixar o componente para sua máquina, abaixo segue o link da versão V3. 1 RC2 desse componente.

&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.joomlarj.com.br/site/images/stories/downloads/Joomla_1.5.11-Stable-Full_Package.zip&quot;&gt;Componente ChronoForms V3.1 RC2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nota: Se uma nova versão já está disponível, recomendo utilizá-la.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;
Após a instalação do Chrono Forms na área administrativa do Joomla, vá até - Componentes - Chrono Forms - Forms Manager.

&lt;/p&gt;

&lt;p&gt;Aqui nesta página nós vamos criar nosso primeiro formulário. Para isso vamos clicar em NOVO.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://conteudo.imasters.com.br/13188/chrno_forms1.jpg&quot; alt=&quot;Imagem do Chrono Forms 1&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;c4&quot;&gt;Imagem do Chrono Forms 1&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Como mostra circulada de vermelho na figura acima, podemos notar um menu bem extenso no qual teremos de mexer para criar nosso formulário!&lt;/p&gt;

&lt;p&gt;
Calma, não se preocupem! Não é necessário mexer em tudo! Vamos começar!

&lt;/p&gt;

&lt;p&gt;No primeiro menu General (Geral), temos alguns campos a preencher. &lt;/p&gt;

&lt;p&gt;O primeiro campo é: Form Name (do nome), eu vou chamar de contato. O nome pode ser qualquer um, lembrando apenas que não pode entrar espaços, acentos, letra maiúscula etc. &lt;/p&gt;

&lt;p&gt;Segundo campo é: Email the results? (Resultado de email). Esse campo pergunta a você se deseja receber um e-mail com os dados do formulário que foi preenchido. Esse campo sempre vem marcado como &quot;não&quot;, vamos mudar para &quot;sim&quot;, já que queremos receber esses e-mails.&lt;/p&gt;

&lt;p&gt;Nota: Não é necessário alterar os campos posteriores.&lt;/p&gt;

&lt;p&gt;Vamos para o segundo menu: Setup Emails (Configuração de emails). Aqui vamos configurar o email para receber os formulários. &lt;/p&gt;

&lt;p&gt;Pra realizar tal tarefa, temos que clicar no envelope com uma seta verde para baixo:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://conteudo.imasters.com.br/13188/chrno_forms2.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Obs: Ao clicar no envelope o campo fica com uma cor rosada. &lt;/p&gt;

&lt;p&gt;Para jogar os campos dentro do quadrado rosado basta clicar em cima dos campos ao lado e arrastar para dentro do quadrado. Os campos que vamos utilizar são os seguintes:&lt;/p&gt;

&lt;ul&gt;&lt;li&gt;To (Para), pra onde o formulário vai;&lt;/li&gt;

&lt;li&gt;
Subject (Assunto), quando o formulário chegar até seu e-mail no assunto virá o nome que colocou aqui;
&lt;/li&gt;

&lt;li&gt;Fromname (do nome), quando o formulário chegar até seu e-mail você o identificará com o nome que colocou aqui;&lt;/li&gt;

&lt;li&gt;
Dynamic FromEmail (do email dinâmico), aqui você colocaria o e-mail de quem irá preencher o formulário, como você não sabe e não será somente um e-mail, você irá inserir o &quot;name&quot; do campo (input) correspondente ao e-mail que você irá criar para o formulário (eu vou colocar &quot;email&quot;, desta forma quando o formulário chegar no lugar de email virá o e-mail da pessoa que preencheu o formulário.

&lt;/li&gt;

&lt;/ul&gt;&lt;p&gt;Veja na figura abaixo os campos que acabamos de arrastar já preenchidos.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://conteudo.imasters.com.br/13188/chrno_forms3.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Após todos os campos devidamente preenchidos vamos ao quadro ao lado na parte inferior onde diz: &quot;Email Properties&quot; (Propriedade de email). Dentre as opções que temos nesse espaço vamos alterar somente uma: &quot;Enabled&quot;. Somente escolhendo a opção (Yes) vamos tornar valido tudo que fizemos nesse menu (General).&lt;/p&gt;

&lt;p&gt;Agora basta clicar em Apply (aplicar). Esse processo deve demorar um pouco, mas não impede de prosseguirmos.&lt;/p&gt;

&lt;p&gt;Vamos pular o próximo menu (Emails Templates) por enquanto, sendo assim, vamos ao seguinte: Form Code (do código).&lt;/p&gt;

&lt;p&gt;Essa parte é muito importante, pois é aqui onde colocaremos o nosso código do nosso formulário. &lt;/p&gt;

&lt;p&gt;
Para esse tutorial vamos trabalhar com um formulário de 5 campos! 

&lt;/p&gt;

&lt;p&gt;Obs: Neste tutorial não iremos ensinar como desenvolver o código do formulário. O que estamos utilizando segue abaixo, como exemplo.&lt;/p&gt;

&lt;p&gt;Obs2.: Não insira a tag &amp;lt;form&amp;gt;, normalmente utilizada em formulários, pois o próprio componente irá inserir para você corretamente.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://conteudo.imasters.com.br/13188/chrno_forms_html.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Você deve estar se perguntando o porquê de: nome, telefone, email, assunto, mensagem, estarem em negrito... Calma! Mais a diante vamos explicar!&lt;/p&gt;

&lt;p&gt;Nesta etapa existem 4 campos, nosso código do formulário entrará no primeiro campo: Form HTML (do HTML).&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://conteudo.imasters.com.br/13188/chrno_forms5.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Nota: Como se trata de um formulário simples, o segundo e terceiro campo não precisar mexer. E o quarto campo: On Submit code - after sending email (Enviar código - depois de enviar e-mail) é opcional.&lt;/p&gt;

&lt;p&gt;
Se você deseja que seu cliente veja uma mensagem de agradecimento, ou qualquer outra mensagem após enviar o formulário, então você irá querer preencher esse campo! Basta criar o código com a mensagem que deseja transmitir.

&lt;/p&gt;

&lt;p&gt;Abaixo segue o Código que usamos para esse campo.&lt;/p&gt;

&lt;p&gt;Nota: Aqui não usamos um texto e sim uma imagem de agradecimento.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://conteudo.imasters.com.br/13188/chrno_forms6.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Após ter feito, vamos prosseguir para o próximo menu.&lt;/p&gt;

&lt;p&gt;Nós vamos para o menu Validation (Validação).&lt;/p&gt;

&lt;p&gt;Nota: Pulamos 6 menus, pois eles não precisam ser alterados para este tipo de formulário.&lt;/p&gt;

&lt;p&gt;No menu Validação vamos alterar o primeiro campo: Enable Validation (Ativar Validação). Esse campo vem como (No), vamos alterar para (Yes), para nosso formulário ser Validado.&lt;/p&gt;

&lt;p&gt;Na lista de 1 à 12, como mostra a figura abaixo, vamos acrescentar em ordem os nomes em negrito que mencionamos em nosso código HTML acima.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://conteudo.imasters.com.br/13188/chrno_forms7.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Você deve está se perguntando: Por que eu tenho que preencher com esses nomes, não poderia ser outros?&lt;/p&gt;

&lt;p&gt;
Eu te responderia: Sim, poderia ser outros se esses outros estivessem em seu código. Vamos voltar no código. Se você reparar bem, todos o que está em negrito são os &quot;names&quot;

&lt;/p&gt;

&lt;p&gt;name=&quot;nome&quot;&lt;/p&gt;

&lt;p&gt;name=&quot;telefone&quot;&lt;/p&gt;

&lt;p&gt;name=&quot;e-mail&lt;/p&gt;

&lt;p&gt;etc.&lt;/p&gt;

&lt;p&gt;Você escreverá no campo: required (not blank) os campos que você deseja que não fiquem em branco. O que isso quer dizer? Quer dizer que se alguém não preencher algum campo e tentar enviar o formulário não vai conseguir, pois os campos são todos obrigatórios.&lt;/p&gt;

&lt;p&gt;Nota1: Você pode alterar o texto da validação, inserindo uma tag &quot;title&quot; no campo input correspondente, exemplo: &amp;lt;input type=&quot;text&quot; name=&quot;nome&quot; id=&quot;nome&quot; title=&quot;Preencha seu nome!&quot; /&amp;gt;&lt;/p&gt;

&lt;p&gt;Nota2: Você só preenche o required (not blank) se quiser que algum campo seja obrigatório em seu formulário.&lt;/p&gt;

&lt;p&gt;Após preencher o campo clique em salvar.&lt;/p&gt;

&lt;p&gt;Após esse processo, nosso formulário estará pronto para ser utilizado!&lt;/p&gt;

&lt;p&gt;Importante: Se você abrir novamente o formulário que criou, poderá verificar na aba &quot;Emails Templates&quot;, como será o e-mail que receberá após o mesmo ser enviado. Sabendo que os textos entre {} são os values dos campos. O texto pode ser alterado livremente.&lt;/p&gt;

&lt;p&gt;Importante2: Não se esqueça de publicar o formulário na listagem da página inicial do componente.&lt;/p&gt;

&lt;p&gt;Espero que esse tutorial seja de grande valia para muitos!&lt;/p&gt;

&lt;p&gt;Qualquer dúvida estou pronta para tirá-las!&lt;/p&gt;

&lt;p&gt;Um Grande abraço e até a próxima!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fonte Original:&lt;/strong&gt; &lt;a href=&quot;http://www.joomlarj.com.br&quot;&gt;Portal Joomla RJ&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Escrito por:&lt;/strong&gt; &lt;em&gt;Rachel Soares Pereira&lt;/em&gt;&lt;/p&gt;

</description>
            <author>andre.sniper@gmail.com (André Luiz Costa de Andrade)</author>
            <pubDate>Mon, 22 Jun 2009 10:00:00 +0100</pubDate>
            <guid>http://imasters.uol.com.br/artigo/13188</guid>
        </item>
        <item>
            <title>Refletindo sobre Semântica</title>
            <link>http://imasters.uol.com.br/artigo/11554/webstandards/refletindo_sobre_semantica/</link>
            <description>
&lt;p&gt;Em meu &lt;a href=&quot;http://imasters.uol.com.br/artigo/11504/webstandards/resistencia_aos_padroes_web/&quot; class=&quot;ext&quot;&gt;último artigo&lt;/a&gt; sobre a resistência que desenvolvedores tem em adotar as &lt;strong&gt;Web Standards&lt;/strong&gt;, muitas pessoas se manifestaram no sentido de que trabalhar com editores &lt;a href=&quot;http://pt.wikipedia.org/wiki/WYSIWYG&quot; class=&quot;ext&quot;&gt;WYSIWYG&lt;/a&gt; como Fireworks ou Dreamweaver, na criação de páginas diagramadas com tabelas, seria mais produtivo, além de evitar incompatibilidade com navegadores.&lt;/p&gt;

&lt;p&gt;As alegações são de que o uso das Web Standards aumenta o tempo de desenvolvimento, a quantidade de testes e a correção de erros. Isso realmente pode acontecer, se o desenvolvedor não possuir experiência suficiente com XHTML e CSS, e consequentemente, criar Layouts inadequados para a estruturação.&lt;/p&gt;

&lt;p&gt;As maiores dificuldades que as pessoas têm para compreender a importância do desenvolvimento com as Web Standards é (1) imaginar que é apenas uma questão de substituir Tabelas por DIVs, e (2) não compreender a questão da Semântica.&lt;/p&gt;

&lt;h3&gt;O que é Semântica?&lt;/h3&gt;

&lt;p&gt;A Semântica, enquanto estudo da palavra, tem preocupação com o significado dos objetos (me refiro aqui a &lt;em&gt;objeto&lt;/em&gt; como tudo que é perceptível aos sentidos).&lt;/p&gt;

&lt;p&gt;A ideia de uma Web Semântica surgiu em 2001 a partir de um artigo publicado por &lt;a href=&quot;http://pt.wikipedia.org/wiki/Tim_Berners-Lee&quot; class=&quot;ext&quot;&gt;Tim Berners-Lee&lt;/a&gt;, &lt;a href=&quot;http://pt.wikipedia.org/wiki/James_Hendler&quot; class=&quot;ext&quot;&gt;James Hendler&lt;/a&gt; e &lt;a href=&quot;http://pt.wikipedia.org/wiki/Ora_Lassila&quot; class=&quot;ext&quot;&gt;Ora Lassila&lt;/a&gt;, e tem como objetivo estender a Web atual, através da atribuição de significado ao conteúdo dos documentos, de forma que eles possam ser compreensíveis não só por seres humanos, mas também por máquinas. Isso possibilitaria que informações úteis em diferentes sistemas fossem integradas para facilitar a vida das pessoas.&lt;/p&gt;

&lt;p&gt;&lt;blockquote&gt;Vamos imaginar que eu possuo uma agenda online, onde consta que tenho uma viagem marcada para Nova Yorque, assim como a data e o horário em que devo embarcar. Essas informações seriam muito claras para mim ou para qualquer outro ser humano, que poderia providenciar tudo que fosse necessário para a viagem.&lt;/p&gt;

&lt;p&gt;Agora vamos imaginar que essa agenda possui informações com significado não só para humanos, mas também para máquinas, de forma que esses dados pudessem ser integrados com outros sistemas pelo mundo, que também tivessem informações com significado para as máquinas.&lt;/p&gt;

&lt;p&gt;Com isso, meu sistema, ao identificar o compromisso na agenda, poderia automaticamente buscar e reservar para mim uma passagem aérea para o dia e horário em que fosse necessário, assim como reservar um quarto no hotel mais próximo ao meu local de destino, e quem sabe até me recomendar passeios, livrarias e restaurantes, de acordo com meus gostos pessoais descritos no perfil de uma rede social qualquer.&lt;/blockquote&gt;&lt;/p&gt;

&lt;p&gt;Parece até coisa de filmes de ficção científica!&lt;/p&gt;

&lt;p&gt;Para que algo assim fosse possível, para que os sistemas tivessem esse nível de automatização e funcionassem como na história acima, teríamos que pensar na evolução dos documentos, antes de pensar na evolução das tecnologias.&lt;/p&gt;

&lt;p&gt;Teríamos que criar documentos em que as informações tivessem significado não só para humanos, mas também para máquinas.&lt;/p&gt;

&lt;p&gt;Isso seria a Web Semântica.&lt;/p&gt;

&lt;h3&gt;Tirar o lixo e organizar a casa&lt;/h3&gt;

&lt;p&gt;Alguém sabe a quantidade de informação que existe hoje na Web, ou quanta informação é possível de ser armazenada digitalmente?&lt;/p&gt;

&lt;p&gt;&lt;blockquote&gt;Um CD comum armazena cerca de 650 Megabytes de informação, e isso equivale a 340.000 páginas com 2000 caracteres cada. Se essas páginas fossem impressas em papel de 20 gramas em frente e verso, a pilha de papel necessária para equivaler à capacidade informativa de um CD pesaria 770 quilos. (Informação retirada do livro &quot;Do papel até a Web&quot;, de Tony McKinley)&lt;/blockquote&gt;&lt;/p&gt;

&lt;p&gt;Acho que agora deu pra ter uma ideia!&lt;/p&gt;

&lt;p&gt;A Web tem mais informações do que todas as bibliotecas do mundo juntas. Infelizmente a maioria dessas informações não tem significado nem sentido algum.&lt;/p&gt;

&lt;p&gt;Uma Linguagem de Marcação como o HTML é feita de etiquetas (tags) que servem para dar significado às partes de um documento. Sendo assim, com as etiquetas &lt;strong&gt;&amp;lt;h1&amp;gt;&amp;lt;/h1&amp;gt;&lt;/strong&gt; informamos que determinado trecho de texto é um título, com as etiquetas &lt;strong&gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;/strong&gt; indicamos que determinado trecho de texto é um parágrafo, ou então com as etiquetas &lt;strong&gt;&amp;lt;blockquote&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;/strong&gt; informamos que determinado bloco de texto é uma citação.&lt;/p&gt;

&lt;p&gt;Sabendo disso, poderíamos acreditar que trabalhando com HTML teríamos naturalmente documentos com definições claras sobre o que é cada informação.&lt;/p&gt;

&lt;p&gt;Porém, desde o início a Web foi sendo explorada como uma extensão da mídia impressa, com uma preocupação unicamente visual, sem levar em consideração a estrutura dos documentos e seu significado. Como os recursos do HTML eram limitados para diagramação, além de possuir algumas marcações próprias para formatação, os documentos começaram a ser adaptados de forma equivocada, e recursos como tabelas (que existem para definir dados tabulares) começaram a ser usados para diagramar páginas de sites como se fossem páginas de revistas. O uso correto das marcações era ignorado: etiquetas de parágrafo eram usadas para comportar títulos ou listas, por exemplo.&lt;/p&gt;

&lt;p&gt;Essa forma de criar os documentos faz com que a informação fique clara para o seres humanos, porém sem sentido algum para máquinas ou sistemas que possam vir a (tentar) interpretar os documentos.&lt;/p&gt;

&lt;p&gt;Trabalhar com Web Standards significa criar documentos onde serão usadas apenas as marcações necessárias para identificar as informações, sem que sejam inseridas marcações com finalidades visuais.&lt;/p&gt;

&lt;p&gt;O uso de tabelas para diagramar as páginas gera um código sem significado, muitas vezes incompreensível, e várias vezes maior que o necessário, enchendo os servidores pelo mundo de Terabytes inúteis, além de fazer com que boa parte das informações úteis não seja compreendida pelas máquinas.&lt;/p&gt;

&lt;p&gt;Devemos usar apenas marcações que forneçam significado à cada parte do documento, e toda apresentação visual deve estar em um documento separado (CSS).&lt;/p&gt;

&lt;h3&gt;Acessibilidade: máquinas informando seres humanos&lt;/h3&gt;

&lt;p&gt;Quem cria páginas para Web utilizando editores WYSIWYG e tabelas pode alegar que disponibiliza informações claras ao menos aos seres humanos.&lt;/p&gt;

&lt;p&gt;Mas será que realmente todos os seres humanos têm acesso as informações publicadas na Web?&lt;/p&gt;

&lt;p&gt;Algumas pessoas necessitam do suporte de tecnologias assistivas para compreender as informações da Web, seja por deficiências visuais ou motoras, necessitando do auxílio de Leitores de Tela, Teclados Alternativos, Ampliadores de Tela, Ponteiras de cabeça e Linhas Braille. Existem pessoas que dependem de máquinas para acessar as informações disponíveis na Web.&lt;/p&gt;

&lt;p&gt;Para que um programa Leitor de Tela com síntese de voz, usado por uma pessoas cega, possa compreender as informações de um documento e convertê-las em áudio, é necessário que todos os dados possuam marcações com significados corretos, para que o programa compreenda quais são os títulos, as listas, os parágrafos e os dados tabulares, assim como ter alternativas textuais para descrever imagens e animações.&lt;/p&gt;

&lt;p&gt;Também é importante que os documentos tenham uma sequência lógica, da mesma forma que os capítulos de um livro. Quando usa-se tabelas para diagramar um Layout, a única preocupação é com a organização visual, deixando o código com uma sequência incompreensível para máquinas, como se misturássemos os capítulos do livro.&lt;/p&gt;

&lt;p&gt;Para que todas pessoas possam ter acesso as informações, devemos criar documentos com uma sequência coerente, com alternativas textuais para imagens e animações, atalhos de teclado para links e campos de formulários, indicações de conteúdos em outros idiomas, e tudo que possibilite às tecnologias assistivas de compreender o documento.&lt;/p&gt;

&lt;h3&gt;Trabalhando pela evolução dos Sistemas de Informação&lt;/h3&gt;

&lt;p&gt;Boa parte das justificativas dos profissionais que não trabalham com os Padrões está no fato de que navegadores antigos como o IE6 (que possui a maior fatia dos usuários) não possuem suporte adequado aos Padrões. Porém existem formas de driblar isso, que podemos encontrar com uma simples busca na Web: para PNGs transparentes, assim como para a falta de interpretação de algumas propriedades de CSS, como pseudo-elementos, podemos utilizar scripts como o &lt;a href=&quot;http://code.google.com/p/ie7-js&quot; class=&quot;ext&quot;&gt;IE7.js&lt;/a&gt;. Para diferenças de renderização entre navegadores temos técnicas de &lt;a href=&quot;http://imasters.uol.com.br/artigo/8505/css/conheca_e_use_o_css_reset/&quot; class=&quot;ext&quot;&gt;CSS Reset&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Qualquer Layout complexo é possível de ser feito com CSS, basta ter conhecimento e as armas certas engatilhadas. O fato de os navegadores antigos não fornecerem suporte adequado não pode ser pretexto para pararmos de estudar, nem pregarmos o retrocesso do Desenvolvimento para a Web. Dessa forma não estaremos contribuindo para que evolução alguma aconteça (você acha que o IE8 passou no teste &lt;a href=&quot;http://revolucao.etc.br/archives/ie8-passa-no-teste-do-acid2/&quot; class=&quot;ext&quot;&gt;ACID 2&lt;/a&gt; porque a Microsoft decidiu ser legal, ou pela pressão do mercado e dos desenvolvedores?).&lt;/p&gt;

&lt;p&gt;Outra fácil justificativa é jogar a culpa nos clientes, que não flexibilizam prazos e nem recompensam financeiramente o uso das Web Standards. Mas será que todos os clientes têm receio de investir em projetos acessíveis por terem preocupações unicamente visuais, ou porque não são esclarecidos das reais vantagens?&lt;/p&gt;

&lt;p&gt;Estudar, argumentar e convencer os clientes está ao alcance de todos. As &lt;a href=&quot;http://www.agni.art.br/palestras/web-standards-no-campus-party/&quot; class=&quot;ext&quot;&gt;vantagens&lt;/a&gt; que podemos obter com o uso das Web Standards estão documentadas em diversos sites: arquivos menores e sites mais leves, menor consumo de banda, maior indexação pelos mecanismos de busca, maiores facilidades de manutenção e redesign, além de maior Acessibilidade.&lt;/p&gt;

&lt;p&gt;Claro que para isso realmente acontecer, devemos compreender que trabalhar com Web Standards não é apenas uma questão de substituir tabelas por DIVs (Tableless).&lt;/p&gt;

&lt;p&gt;Maior produtividade virá com a experiência, e com a compreensão de que os documentos não podem ser verdadeiras &quot;sopas de tags&quot;. Se criarmos páginas com uma grande quantidade de marcações sem significado, mesmo que não usemos tabelas e editores WYSIWYG, não vamos obter essas vantagens.&lt;/p&gt;

&lt;p&gt;É necessário criarmos documentos com significados não só para humanos, mas também para máquinas. Os sites são armazenados em máquinas, Leitores de Tela e outras Tecnologias Assistivas são máquinas, e também os mecanismos de busca são máquinas!&lt;/p&gt;

&lt;p&gt;As possibilidades de existência de uma Web Semântica, com integração de dados entre diversos sistemas informacionais, que possam melhorar a qualidade de vida das pessoas, só serão possíveis com documentos semânticos, e claro que isso não se resume a desenvolver um HTML com devido significado. Porém, outros assuntos relacionados como &lt;a href=&quot;http://pt.wikipedia.org/wiki/RDF&quot; class=&quot;ext&quot;&gt;RDF&lt;/a&gt; ou &lt;a href=&quot;http://pt.wikipedia.org/wiki/Microformatos&quot; class=&quot;ext&quot;&gt;Microformatos&lt;/a&gt;, são temas para outro artigo.&lt;/p&gt;

&lt;p&gt;Para que haja evolução das máquinas e dos sistemas é preciso que haja primeiro uma evolução dos profissionais que fazem a Web.&lt;/p&gt;

</description>
            <author>eduardo@agni.art.br (Eduardo Santos)</author>
            <pubDate>Tue, 17 Feb 2009 11:15:00 +0100</pubDate>
            <guid>http://imasters.uol.com.br/artigo/11554</guid>
        </item>
        <item>
            <title>Resistência aos Padrões Web</title>
            <link>http://imasters.uol.com.br/artigo/11504/webstandards/resistencia_aos_padroes_web/</link>
            <description>
&lt;p&gt;Olá, amigos! Na última edição do &lt;a href=&quot;http://www.campus-party.com.br/&quot; class=&quot;ext&quot;&gt;Campus Party Brasil&lt;/a&gt;, fiquei encarregado de abrir as atividades na área de Design com a palestra sobre &lt;a href=&quot;http://www.agni.art.br/palestras/web-standards-no-campus-party&quot; class=&quot;ext&quot;&gt;&lt;strong&gt;Web Standards&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Após a palestra, e depois de bater papo com muita gente por lá, cheguei à triste conclusão de que muitos profissionais ainda desconhecem as Web Standards, e desenvolvem sites à moda antiga (usando tabelas para diagramar o Layout).&lt;/p&gt;

&lt;p&gt;Para contribuir na mudança desse quadro, este artigo é o primeiro de uma série sobre Web Standards que estarei escrevendo. E para ter certeza de que vou ajudar a esclarecer as dúvidas sobre esse assunto, deixo aberto o espaço para a sugestão de temas para os próximos artigos.&lt;/p&gt;

&lt;h3&gt;Resistência aos padrões, ou amor às tabelas?&lt;/h3&gt;

&lt;p&gt;Pior do que perceber que ainda hoje muitas pessoas desconhecem as Web Standards e suas vantagens, é perceber que existem pessoas que conhecem, porém resistem a elas, com argumentos (sem fundamentos) de que desenvolver sites com o uso de tabelas para diagramar o Layout é melhor e mais produtivo.&lt;/p&gt;

&lt;p&gt;Esses dias andou pipocando pelas listas de discussão um artigo escrito por um tal de Ron Garret, no qual ele tenta justificar que o CSS não serve para diagramar Layouts (&lt;a href=&quot;http://www.flownet.com/ron/css-rant.html&quot; class=&quot;ext&quot;&gt;Why CSS should not be used for layout&lt;/a&gt;) e afirma que o uso de tabelas é melhor para tal finalidade.&lt;/p&gt;

&lt;p&gt;Essa forma de pensar mostra que muitas pessoas têm a visão equivocada de considerar o Design como mera produção estética, e desconsideram a concepção de projeto. Como escrevi em &lt;a href=&quot;http://imasters.uol.com.br/artigo/7334/criacao/qual_a_funcao_do_design/&quot; class=&quot;ext&quot;&gt;outro artigo&lt;/a&gt;, além da questão estética, o Design engloba a criação de um produto funcional, usável, eficiente e economicamente viável.&lt;/p&gt;

&lt;p&gt;Uma estrutura de informação, como documentos escritos em HTML ou XML, deve conter apenas marcações com devido significado (semântica). Adicionar marcações sem significado em um site pode ser comparado a adicionar diversas páginas em branco a um livro: aumentaria inutilmente o tamanho do mesmo, e não teriam sentido algum para o leitor. É justamente isso que acontece com o uso das tabelas para diagramar o Layout.&lt;/p&gt;

&lt;p&gt;Podemos dizer que o HTML não é uma linguagem de marcação verdadeira, pois sua sintaxe prevê (limitadas) marcações para formatação. Uma linguagem de marcação deve apenas estruturar a informação (como o XHTML), enquanto a apresentação deve vir de um documento específico (CSS).&lt;/p&gt;

&lt;p&gt;A maior dificuldade no uso do CSS para diagramação das páginas vem da incapacidade dos navegadores, não só no suporte à linguagem, como na padronização do efeito renderizado. O IE6 suporta apenas 51% das propriedades do CSS 2.1, o IE7 apenas 56%, o Firefox2 suporta 91%. O IE6, que ainda é o navegador mais usado, também suporta apenas 73% do HTML/XHTML, 50% do DOM e 10% do CSS3. Mais informações sobre essas estatísticas podem ser vistas em &lt;a href=&quot;http://www.webdevout.net/browser-support&quot; class=&quot;ext&quot;&gt;http://www.webdevout.net/browser-support&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;O CSS não é perfeito, as empresas que desenvolvem os navegadores não colaboram no suporte, e a W3C não é nenhum exemplo de discussões promissoras em prol da padronização. Lembrando que a W3C não se resume apenas àquele tiozinho carismático de ideais livres que inventou a Web, mas de diversas empresas com interesses não tão nobres (quem chegou a acompanhar &lt;a href=&quot;http://meiobit.pop.com.br/meio-bit/open-source/mozilla-peita-todo-mundo-e-disponibiliza-ogg-no-firefox&quot; class=&quot;ext&quot;&gt;discussões&lt;/a&gt; sobre o uso dos codec's Ogg Vorbis e o Ogg Theora como padrão nos navegadores, para o uso da nova tag &lt;strong&gt;&amp;lt;video&amp;gt;&amp;lt;/video&amp;gt;&lt;/strong&gt; no HTML5, sabe do que eu estou falando).&lt;/p&gt;

&lt;h3&gt;A vantagem do uso de Padrões Web&lt;/h3&gt;

&lt;p&gt;Recortar um layout em softwares como o Fireworks e exportar diretamente para HTML com tabelas pode parecer fácil e rápido. Porém o código gerado torna-se incompreensível, sem uma sequência lógica da informação ou significado, além de ser muito maior que o necessário.&lt;/p&gt;

&lt;p&gt;O uso das Web Standards propicia um melhor custo-benefício. As vantagens do uso de padrões e da separação das camadas de Conteúdo (XHTML), apresentação (CSS) e Comportamento (Javascript) são evidentes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Com arquivos menores e as camadas de Apresentação (CSS) e Comportamento (Javascript) no cache do navegador, teremos um carregamento mais rápido das páginas, além de menores custos de hospedagem.&lt;/li&gt;
&lt;li&gt;Com a formatação de todas as páginas baseadas num mesmo arquivo CSS, teremos uma melhor consistência visual, e possibilidades de manutenção e redesign mais baratos e eficientes.&lt;/li&gt;
&lt;li&gt;Com marcações mais semânticas (usadas com seu devido significado) e com as informações do documento estruturadas em uma sequência lógica, teremos melhores resultados nos mecanismos de buscas, além de melhor acessibilidade e interoperabilidade entre diferentes dispositivos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Exemplos práticos dessas vantagens:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Legal &amp; General, uma das primeiras empresas a aplicar em seu site as &quot;Diretivas para acessibilidade Web&quot; (&lt;a href=&quot;http://www.w3.org/TR/WCAG20/&quot; class=&quot;ext&quot;&gt;Web Content Accessibility Guidelines&lt;/a&gt;) da W3C, e os resultados foram que as taxas de conversão aumentaram 300%, custos de manutenção caíram 66%, listagem natural nas buscas aumentou 50% e o carregamento das páginas ficou 75% mais rápido (fonte: RevistaW).&lt;/li&gt;
&lt;li&gt;A ESPN, quando migrou seu site para os Padrões, reduziu cerca de 50kb em cada página, economizando 2 Terabytes de banda por dia (fonte: &lt;a href=&quot;http://www.mikeindustries.com/blog/archive/2003/06/espn-interview&quot; class=&quot;ext&quot;&gt;Mike Davidson&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Quanto à beleza dos sites feitos com CSS, é indiscutível que as possibilidades são enormes, e muito mais eficientes que a formatação possibilitada com o uso de tabelas no HTML. Exemplos disso podemos encontrar na galeria &lt;a href=&quot;http://www.csszengarden.com/&quot; class=&quot;ext&quot;&gt;CSS Zen Garden&lt;/a&gt; ou em sites como o &lt;a href=&quot;http://www.webleeddesign.com/&quot; class=&quot;ext&quot;&gt;Web Leed Design&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Se as Web Standards ainda não são o ideal, é o que de melhor temos hoje para o desenvolvimento de páginas para a Web.&lt;/p&gt;

&lt;p&gt;Linguagens como o CSS têm sempre mil possibilidades. A limitação está no Designer.&lt;/p&gt;
</description>
            <author>eduardo@agni.art.br (Eduardo Santos)</author>
            <pubDate>Tue, 10 Feb 2009 10:00:00 +0100</pubDate>
            <guid>http://imasters.uol.com.br/artigo/11504</guid>
        </item>
        <item>
            <title>(x)html e css para design de interfaces - Parte 2</title>
            <link>http://imasters.uol.com.br/artigo/11197/webstandards/xhtml_e_css_para_design_de_interfaces_parte_2/</link>
            <description>
&lt;p&gt;O (x)html/css como ferramenta, conceito e diferencial do designer de interfaces é o tema deste artigo, em sua segunda parte. Para um melhor entendimento, sugiro, antes de mais nada, &lt;a href=&quot;http://imasters.uol.com.br/artigo/11137/webstandards/xhtml_e_css_para_design_de_interfaces/&quot; class=&quot;ext&quot;&gt;uma atenta leitura à primeira parte&lt;/a&gt;.&lt;/p&gt;

&lt;h5&gt;Processo de produção do código&lt;/h5&gt;
&lt;p&gt;O &lt;a href=&quot;http://imasters.uol.com.br/artigo/7920/desenvolvimento/etapas_produtivas_de_um_website/&quot; class=&quot;ext&quot;&gt;processo&lt;/a&gt;, em si, é bastante claro e objetivo: cuidar da codificação, da estrutura do lay-out desejado, obtendo, assim, um melhor resultado, carregamento rápido, amplificando os conceitos de &lt;a href=&quot;http://www.bengalalegal.com/acessibilidade.php&quot; class=&quot;ext&quot;&gt;usabilidade e acessibilidade&lt;/a&gt; por meio de boas e salutares &lt;a href=&quot;http://www.maujor.com/w3c/tec_css_acess.html&quot; class=&quot;ext&quot;&gt;técnicas&lt;/a&gt;.&lt;/p&gt;
Sendo assim, nada poderá dar errado, não é? 

&lt;h5&gt;Analisando os &quot;gargalos&quot; da produção&lt;/h5&gt;
&lt;p&gt;O processo rotineiro de um &lt;a href=&quot;http://revolucao.etc.br/archives/qual-a-exigencia-do-mercado-em-relacao-aos-padroes-web/&quot; class=&quot;ext&quot;&gt;estúdio ou agência web&lt;/a&gt; inclui verbas mínimas, grandes exigências e pouca tolerância (por boa parte dos clientes) e prazos impossíveis. Não há como fugir: ou se entra em tal lógica tortuosa de cabeça, ou colhe-se as consequencias desagradáveis da falta de adaptação, que incluem o &quot;sumiço&quot; dos freelas e o desemprego pertinente.&lt;/p&gt;
Conheça, agora, os maiores &quot;gargalos produtivos&quot;, e as melhores maneiras de evitá-los:

&lt;p&gt;&lt;strong&gt;1) Propostas infactíveis:&lt;/strong&gt;&lt;/p&gt;
Tais propostas são oferecidas / desenvolvidas por &lt;a href=&quot;http://web.stcloudstate.edu/aoolagunju/&quot; class=&quot;ext&quot;&gt;profissionais&lt;/a&gt; de criação completamente desambientados do processo de estruturação de páginas. É certo que a criatividade precisa de espaço para &quot;voar&quot;, porém um mínimo de &quot;pé-no-chão&quot; é mais do que necessário. É preciso conhecer o processo produtivo como um todo (mesmo que certas etapas não façam parte de sua rotina profissional), a fim de não propor soluções &quot;impossíveis&quot;, que podem ser belas e competentes em termos de design, porém &lt;a href=&quot;http://kustomwebsites.com/&quot; class=&quot;ext&quot;&gt;completamente descabidas&lt;/a&gt; no momento de estruturar tal conteúdo.
&lt;p&gt;Portanto, se a &lt;a href=&quot;http://pt.wikipedia.org/wiki/Id%C3%A9ia&quot; class=&quot;ext&quot;&gt;idéia&lt;/a&gt; e o &lt;a href=&quot;http://webinsider.uol.com.br/index.php/2006/11/13/criatividade-para-fazer-um-briefing-claro-que-voce-tem/&quot; class=&quot;ext&quot;&gt;briefing&lt;/a&gt; levam para o desenvolvimento em &lt;a href=&quot;http://www.csszengarden.com/?cssfile=/136/136.css&amp;page=9&quot; class=&quot;ext&quot;&gt;(x)html/css&lt;/a&gt; (com textos em formato &quot;nativo&quot;, portanto), de nada adianta desenvolver um lay-out que, na melhor das hipóteses, só será factível em flash.&lt;/p&gt;
O profissional que faz design web, ao conhecer efetivamente a estruturação, poderá situar-se melhor, evitando grandes &quot;mancadas&quot;, como apresentar e aprovar determinada proposta ao cliente impossível de ser &quot;produzida&quot;.

&lt;p&gt;&lt;strong&gt;2) Códigos sujos:&lt;/strong&gt;&lt;/p&gt;
Herança indefectível do uso &quot;preguiçoso&quot; de editores &lt;a href=&quot;http://pt.wikipedia.org/wiki/WYSIWYG&quot; class=&quot;ext&quot;&gt;WSWYG&lt;/a&gt;, códigos sujos, não-semânticos, inadequados às web standards, estão espalhados por diversos sites, nos mais variados &quot;níveis&quot; de produtores. O maior problema, aqui, está na manutenção de tal código. Normalmente, sites com códigos de tal &quot;qualidade&quot; nascem do descuido e descaso de diversos &quot;profissionais&quot; completamente reativos, sem qualquer preocupação com a necessidade de edição posterior. Ao agirem assim, ignoram a máxima: &quot;o cliente vai mudar de idéia&quot;, além de &quot;esquecerem&quot; que sites web são mutantes, mudam drasticamente (visualmente, conceitualmente).
&lt;p&gt;A solução, novamente, recai sobre a necessidade de aprender, de fato, estruturação. Assim, com conhecimentos, visão e responsabilidade, todo e qualquer código torna-se limpo, editável e expansível.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3) Falta de integração:&lt;/strong&gt;&lt;/p&gt;
Por mais óbvio que seja, existem designers que simplesmente relutam na hora de conversar com os estruturadores e programadores envolvidos no mesmo projeto, resultando num grande obstáculo à integração de soluções produtivas adotadas. Ninguém está numa ilha, o sucesso de um projeto web está diretamente ligado à integração de uma equipe, capaz de trabalhar e pensar coletivamente.

&lt;p&gt;&lt;strong&gt;4) Produção desestruturada:&lt;/strong&gt;&lt;/p&gt;
O maior problema, aqui, é a repetição da produção de códigos quase idênticos, somente por estarem em projetos distintos, o que, certamente, custará tempo precioso.

&lt;p&gt;Que tal usar módulos produtivos? Existem diversos blocos de código e muitas soluções produtivas de estruturação que normalmente se repetem, de projeto em projeto. Assim, diversas tarefas ficam mais fáceis, pois já partem de um conjunto de códigos pré-definidos, bastando a adaptação dos mesmo para que o projeto avance. Exemplos de tal idéia: códigos para separação em colunas de uma página, de menus de links, de formulários e diversos outros.&lt;/p&gt;

&lt;h5&gt;Soluções possíveis&lt;/h5&gt;
&lt;p&gt;Há uma série de ações que podem (e devem) ser adotadas pelo designer que faz web, melhorando significamente a performance em tal meio e evitando a calvície precoce (advinda do constante &quot;arrancar&quot; de cabelos). Sugiro, aqui, algumas idéias que podem melhorar a vida profissional:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1) Vivencie a estruturação:&lt;/strong&gt;&lt;/p&gt;
Perca o medo e o receio. Mergulhe de cabeça! Experimente adotar as web standards em seus projetos, acompanhe sites desenvolvidos com padrões (como o &lt;a href=&quot;http://www.w3csites.com/sites_thumbs.asp&quot; class=&quot;ext&quot;&gt;w3csites&lt;/a&gt;, por exemplo) e veja as poderosas possibilidades em ação. Ao acompanhar os mais &quot;experientes&quot; em ação, certamente a empolgação em mergulhar fundo aumentará consideravelmente.

&lt;p&gt;&lt;strong&gt;2) Expanda seus conhecimentos:&lt;/strong&gt;&lt;/p&gt;
O melhor meio para aumentar suas habilidades é o estudo. Juntamente com a pesquisa, irá possibilitar um aumento significativo da percepção profissional, em qualquer nível em que esteja. Confira algumas dicas comentadas, de sites e livros:

&lt;p&gt;&lt;strong&gt;a) &lt;/strong&gt;W3C - Documentação traduzida: boa parte dos mais importantes documentos contendo as definições do (x)html, css, web standards e acessibilidade. Grandes colaboradores brasileiros resolveram desenvolver, gratuitamente, suas traduções, visando à expansão das web standards em terras nacionais. &lt;a href=&quot;http://www.w3.org/2005/11/Translations/Lists/OverviewLang.html#pt-br&quot; class=&quot;ext&quot;&gt;Faça sua parte e estude os documentos traduzidos&lt;/a&gt;, fazendo com que tal esforço não seja em vão.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;b) &lt;/strong&gt;Maujor: Maurício Samy Silva (Maujor) é um respeitável senhor de cabelos brancos e uma invejável bagagem em web standards no Brasil, sendo, praticamente, o oráculo de tal tema. Quando se interessou por padrões web, o tema era praticamente desconhecido no país (e não havia os milhares de sites e blogs escrevendo - ou tomando carona - sobre o tema). Portanto, trata-se do pioneiro dos padrões no Brasil, sendo que seu site possui muitas informações preciosas para estudandes e profissionais da área. &lt;a href=&quot;http://www.maujor.com/index.php&quot; class=&quot;ext&quot;&gt;Visite o site&lt;/a&gt;, aproveite e passe pelo &lt;a href=&quot;http://www.maujor.com/blog/&quot; class=&quot;ext&quot;&gt;blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;c) &lt;/strong&gt;CSS Zen Garden: conheça uma brilhante galeria de sites desenvolvidos somente com (x)html/css e veja do que esta linguagem é capaz, desde que utilizada sabiamente. O site oferece um conjunto de documentos para que qualquer pessoa se aventure na construção de um novo layout, inteiramente baseado em css, sendo que os melhores são publicados. &lt;a href=&quot;http://www.csszengarden.com/&quot; class=&quot;ext&quot;&gt;Visite&lt;/a&gt;. Conheça a &lt;a href=&quot;http://www.csszengarden.com/tr/portuguese/&quot; class=&quot;ext&quot;&gt;versão em português&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;d) &lt;/strong&gt;Livro do Maujor: o livro &quot;Construindo Sites com CSS e (X)HTML&quot; é o melhor livro publicado até então no Brasil. Com didática séria, dinâmica e inteligente, Mauricio Samy Silva conduz o estudante pelos caminhos do desenvolvimento com css, dando base sólida e conhecimento de verdade. &lt;a href=&quot;http://www.maujor.com/livro/livro.html&quot; class=&quot;ext&quot;&gt;Visite o site&lt;/a&gt; do livro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;e) &lt;/strong&gt;CSS interativo: conheça este serviço oferecido pelo iMasters, com desenvolvimento de Mauricio Samy Silva e experimente, interativamente, todos os recursos do css. &lt;a href=&quot;http://imasters.uol.com.br/cssinterativo/&quot; class=&quot;ext&quot;&gt;Visite!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;f) &lt;/strong&gt;W3C validator (css e xhtml): verifique seu código a fim de procurar erros e correções. Com esta ferramenta oferecida pelo W3C, você poderá verificar seus códigos por uploads (ou seja, poderá verificar antes de publicar), páginas hospedadas e conferir a relação de erros e sugestões &quot;robóticas&quot; para correções. &lt;a href=&quot;http://validator.w3.org/&quot; class=&quot;ext&quot;&gt;Conheça a ferramenta &lt;/a&gt;e adicione aos seus favoritos! Você também &lt;a href=&quot;http://users.skynet.be/mgueury/mozilla/&quot; class=&quot;ext&quot;&gt;pode instalar plugins de firefox para validação diretamente no browser&lt;/a&gt; como o tidy, por exemplo, e verificar seus códigos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;g)&lt;/strong&gt; Web Developer: conjunto de ferramentas para desenvolvedores (edição em real time de css, validação e outros), oferecidas num plugin de firefox.&lt;a href=&quot;https://addons.mozilla.org/pt-BR/firefox/addon/60&quot; class=&quot;ext&quot;&gt; Instale aqui&lt;/a&gt; e &lt;a href=&quot;http://www.maujor.com/blog/2007/07/12/funcionalidades-da-web-developer-toolbar/#post-151&quot; class=&quot;ext&quot;&gt;aprenda sobre a ferramenta aqui&lt;/a&gt;.&lt;/p&gt;

&lt;h5&gt;Conclusões&lt;/h5&gt;
&lt;p&gt;Espero que as informações e dicas acima possam ajudar a todos os designers de interface no árduo caminho rumo à padronização total de todas as páginas e sites desenvolvidos. Fico no aguardo das opiniões de todos vocês.&lt;/p&gt;
Boa sorte!



</description>
            <author>bipereira@gmail.com (Fabiano Pereira)</author>
            <pubDate>Fri, 06 Feb 2009 09:40:00 +0100</pubDate>
            <guid>http://imasters.uol.com.br/artigo/11197</guid>
        </item>
        <item>
            <title>MobileSafari - O Safari do iPhone</title>
            <link>http://imasters.uol.com.br/artigo/10493/webstandards/mobilesafari_o_safari_do_iphone/</link>
            <description>
&lt;p&gt;Este texto também está disponível no &lt;a href=&quot;http://visie.com.br/campus/&quot; class=&quot;ext&quot;&gt;Campus Online&lt;/a&gt; da &lt;a href=&quot;http://visie.com.br/treinamento/&quot; class=&quot;ext&quot;&gt;Visie&lt;/a&gt;. Bem como vídeos relacionados e outros tutoriais técnicos sobre desenvolvimento web. Visite a página exclusiva sobre &lt;a href=&quot;http://visie.com.br/campus/iphone/&quot; class=&quot;ext&quot;&gt;desenvolvimento para iPhone&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;Um pouco de História&lt;/h4&gt;
&lt;p&gt;Por volta de 1997, os computadores da Apple traziam por padrão o Netscape. Naquele tempo o mercado de browsers não era tão acirrado como hoje e os concorrentes eram poucos. O Internet Explorer estava em sua versão 2/3. Mesmo assim, o Internet Explorer para Mac era também distribuído com o MacOS durante os 5 anos de acordo entre Apple e Microsoft. A Microsoft laçou 3 versões principais do seu navegador para o Mac, parando na versão 5 em março de 2000.&lt;/p&gt;

&lt;p&gt;Em 2003, a Apple anunciou que eles estavam desenvolvendo seu próprio browser baseado no motor de renderização KHTML. A versão 1.0 foi lançada como browser padrão do MacOS por volta de Junho de 2003. O Internet Explorer ainda era distribuído no sistema, mas agora como um navegador alternativo, até Abril de 2005.&lt;/p&gt;

&lt;h4&gt;Motor de Renderização WebKit&lt;/h4&gt;

&lt;p&gt;O Safari utiliza um motor de renderização chamado WebKit. O WebKit tem dois motores de renderização: o WebCore, que é o motor de renderização baseado no KTHML do Konqueror, e o JavaScriptCore, baseado no motor de javascript KDE chamado KJS. Esses motores estão sob Licensa GNU.&lt;/p&gt;

&lt;p&gt;A Apple, ao fazer o Safari, fez muitas atualizações e modificações no motor KHTML, deixando-o mais maduro e robusto. Essas modificações foram devolvidas para a comunidade e incorporadas no Konqueror.&lt;/p&gt;

&lt;h4&gt;MobileSafari e Safari para Desktop&lt;/h4&gt;

&lt;p&gt;A idéia é que o usuário tenha uma experiência muito próxima à experiência que ele tem no desktop. Por isso o Safari para iPhone (MobileSafari) foi feito sob o mesmo motor de renderização WebKit do Safari para Windows e Mac. Diferenças: 1) Se o site não foi feito para iPhone, ele renderiza a página da mesma forma como renderiza em um Safari para desktop, mas miniaturizada. 2) A interação do usuário.&lt;/p&gt;

&lt;h4&gt;Padrões Suportados&lt;/h4&gt;

&lt;p&gt;Para que a renderização do MobileSafari seja fiel ao Safari para desktop, ele tem grande suporte aos Padrões Web.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;HMTML 4.01&lt;/li&gt;
&lt;li&gt;HTML 5&lt;/li&gt;
&lt;li&gt;XHTML 1.0&lt;/li&gt;
&lt;li&gt;CSS 2.1&lt;/li&gt;
&lt;li&gt;Parte do CSS 3&lt;/li&gt;
&lt;li&gt;Javascript 1.4&lt;/li&gt;
&lt;li&gt;Ajax&lt;/li&gt;
&lt;li&gt;DOM&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;É interessante notar que temos uma certa liberdade de desenvolvimento web no iPhone. Há facilidades como cantos arredondados que não podemos contar no desenvolvimento focado para desktops. Isso traz vantagens pra você, desenvolvedor, porque facilitará seu trabalho, e para o usuário, porque ele terá uma experiência mais rica.&lt;/p&gt;
&lt;h4&gt;Limites dos recursos&lt;/h4&gt;

&lt;p&gt;Embora o iPhone suporte as tecnologias mais atuais de desenvolvimento web, não podemos esquecer que ele é um dispositivo móvel, com capacidade de processamento muito menor que a de um desktop. Por isso, há algumas limitações de recursos a que devemos nos atentar.&lt;/p&gt;

&lt;p&gt;Para códigos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;10Mb para arquivos Javascripts e XML&lt;/li&gt;
&lt;li&gt;O tempo de execução de um Javascript é limitado a 10 segundos. Se passar de 10 segundos, o Safari pára a execução em algum lugar aleatório do seu código.&lt;/li&gt;
&lt;li&gt;Javascripts alocados limitados a 10Mb&lt;/li&gt;
&lt;li&gt;Máximo de 8 documentos abertos de uma vez&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para imagens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Limite máximo do tamanho de GIF, PNG e TIFF é de 2 Megapixels&lt;/li&gt;
&lt;li&gt;A decodificação máxima dos tamanhos de JPGs é de 32 Megapixels. Utilizando SubSampling&lt;/li&gt;
&lt;li&gt;O tamanho máximo de GIFs animados deve ser menor que 2MB. Para arquivos animados maiores, só é mostrado o primeiro frame.&lt;/li&gt;

&lt;/ul&gt;
&lt;p&gt;Verifique sempre o tamanho final de sua página. Normalmente os sites com 30Mb para menos funcionam muito bem no iPhone.&lt;/p&gt;
</description>
            <author>diego@tableless.com.br (Diego Eis)</author>
            <pubDate>Wed, 29 Oct 2008 13:30:00 +0100</pubDate>
            <guid>http://imasters.uol.com.br/artigo/10493</guid>
        </item>
        <item>
            <title>Menos XHTML com JavaScript</title>
            <link>http://imasters.uol.com.br/artigo/10203/javascript/menos_xhtml_com_javascript/</link>
            <description>
&lt;p&gt;Recentemente estou trabalhando no novo layout do Portal do Professor (http://portaldoproferssor.mec.gov.br), no qual projetei o conteúdo separado por caixas que possuem cantos arredondados, sombra, sombra interna, degradê e linhas de borda, como pode ver abaixo:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://conteudo.imasters.uol.com.br/10203/imagem1.jpg&quot; alt=&quot;&quot;&gt;&lt;/p&gt;

&lt;p&gt;Com esta combinação deixei o cliente satisfeito com o resultado visual, mas acabei projetando um verdadeiro problema para estruturar o XHTML, pois preciso agora de 6 imagens de fundo para cada caixa e devido ao meu layout ser líquido / elástico, acabei com a seguinte estrutura:&lt;/p&gt;

&lt;div class=&quot;codigo&quot;&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;span class=&quot;wrap1´´&amp;gt;
&amp;lt;span class=&quot;wrap2´´&amp;gt;
&amp;lt;span class=&quot;wrap3´´&amp;gt;
&amp;lt;span class=&quot;wrap4´´&amp;gt;
&amp;lt;span class=&quot;wrap5´´&amp;gt;
&amp;lt;span class=&quot;wrap6´´&amp;gt;
&amp;lt;div class=&quot;box&quot;&amp;gt;
&amp;lt;h2&amp;gt;Wrap&amp;lt;/h2&amp;gt;
&amp;lt;p&amp;gt;
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum tempor. Fusce lacinia. Duis blandit tincidunt lectus. Donec tortor. Nam fringilla justo vitae erat. Vivamus lobortis dui a nisl. Proin justo ante, lacinia non, aliquet in, egestas ac, leo. Sed metus libero, ornare eu, sagittis elementum, vulputate a, erat. Aliquam porttitor.
&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/span&amp;gt;
&amp;lt;/span&amp;gt;
&amp;lt;/span&amp;gt;
&amp;lt;/span&amp;gt;
&amp;lt;/span&amp;gt;
&amp;lt;/span&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Acabei tendo que escrever um código repetitivo e nada semântico, além de tornar meu código mais difícil de manter, prejudicando assim a escabilidade de um portal que está constantemente recebendo novas implementações.&lt;/p&gt;

&lt;p&gt;Para solucionar isto, resolvi escrever um código javascript, que insere tags &amp;lt;span&amp;gt; de forma dinâmica deixando o meu código XHTML apenas com a &amp;lt;div class=&quot;box&quot;&amp;gt;...&amp;lt;/box&amp;gt;, como abaixo:&lt;/p&gt;

&lt;div class=&quot;codigo&quot;&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;box&quot;&amp;gt;
&amp;lt;h2&amp;gt;Wrap&amp;lt;/h2&amp;gt;
&amp;lt;p&amp;gt;
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vestibulum tempor. Fusce lacinia. Duis blandit tincidunt lectus. Donec tortor. Nam fringilla justo vitae erat. Vivamus lobortis dui a nisl. Proin justo ante, lacinia non, aliquet in, egestas ac, leo. Sed metus libero, ornare eu, sagittis elementum, vulputate a, erat. Aliquam porttitor.
&amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Para inserir as tags &amp;lt;span&amp;gt; necessárias para inserir as imagens de fundo na caixa, lembrando que cada tag aceita apenas uma imagem de fundo, escrevi o script a seguir:&lt;/p&gt;

&lt;div class=&quot;codigo&quot;&gt;&lt;pre&gt;&lt;code&gt;// Crio um array
var alltags = new Array();
function changeBox() {
// O método getElementsByTagName() retorna um array com todas os elementos &amp;lt;div&amp;gt; que existem no documento e armazena no array alltags.
var alltags=document.getElementsByTagName(&quot;div&quot;);
// A estrutura de repetição for passa por cada elemento &amp;lt;div&amp;gt; armazenado em alltags.
for (i=0; i&amp;lt;alltags.length; i++) {
// Verifica se o elemento tem a classe box.
if (alltags[i].className==´box´) {
// Armazena na variável element em  cada interação do for o velor armazenado no índice i de alltags
var element = alltags[i];
// Armazena o objeto pai de element na variável content
var content = element.parentNode;
// Cria os elementos XHTML &amp;lt;span&amp;gt;
var wrap1 = document.createElement(´span´);
var wrap2 = document.createElement(´span´);
var wrap3 = document.createElement(´span´);
var wrap4 = document.createElement(´span´);
var wrap5 = document.createElement(´span´);
var wrap6 = document.createElement(´span´);
// Atribui para cada elemento XHTML &amp;lt;span&amp;gt; uma classe
wrap1.setAttribute(´class´, ´wrap1´);
wrap2.setAttribute(´class´, ´wrap2´);
wrap3.setAttribute(´class´, ´wrap3´);
wrap4.setAttribute(´class´, ´wrap4´);
wrap5.setAttribute(´class´, ´wrap5´);
wrap6.setAttribute(´class´, ´wrap6´);
// Insere um elemento filho ao elemento atual, antes de um determinado elemento. O elemento wrap1 é inserido em content antes de element
// Mais informações do método insertBefore no endereço: http://developer.mozilla.org/pt/DOM/element.insertBefore.
content.insertBefore(wrap1, element);
// O elemento wrap1 recebe o novo elemento wrap2. E assim acontece com os demais elementos respectivamente.
// Mais informações do método appendChild no endereço: http://developer.mozilla.org/Pt/DOM/Element.appendChild.
wrap1.appendChild(wrap2);
wrap2.appendChild(wrap3);
wrap3.appendChild(wrap4);
wrap4.appendChild(wrap5);
wrap5.appendChild(wrap6);
// Remove element de content
content.removeChild(element);
// E insere element para wrap6
wrap6.appendChild(element);
}
}
}
// Executa a função
changeBox();&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;E para finalizar nossas caixas, vamos estilizá-las com CSS. Não irei comentar o CSS, pois acredito que se chegou até aqui buscando solução para um problema semelhante, já domine a linguagem.&lt;/p&gt;

&lt;p&gt;Além do CSS que estilizam as classes que atribuímos por JavaScript às tags &amp;lt;span&amp;gt;, escrevi outros estilos para compor a página e representar melhor o exemplo.&lt;/p&gt;

&lt;div class=&quot;codigo&quot;&gt;&lt;pre&gt;&lt;code&gt;*{
padding:0;
margin:0;
font:1em Verdana, Geneva, Arial, Helvetica, sans-serif;
}
body{
background:transparent url(bg_body.png) repeat left top;
font-size:11px;
padding:100px 400px;
}
h2{
font-size:1.5em;
padding-bottom:.5em;
}
p{
color:#666;
}
.box{
padding:25px 30px 30px;
}
.wrap1, .wrap2, .wrap3, .wrap4, .wrap5, .wrap6 {
display:block;
}

.wrap1 {
background:transparent url(bg_cr.png) repeat-y right center;
margin-bottom:1em;
}
.wrap2 {
background:transparent url(bg_cl.png) repeat-y left center;
}
.wrap3 {
background:transparent url(bg_tr.png) no-repeat right top;
}
.wrap4 {
background:transparent url(bg_tl.png) no-repeat left top;
}
.wrap5 {
background:transparent url(bg_br.png) no-repeat right bottom;
}
.wrap6 {
background:transparent url(bg_bl.png) no-repeat left bottom;
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Espero que visite o Portal do Professor daqui a algum tempo e veja o resultado prático do que estou falando aqui.&lt;/p&gt;

&lt;p&gt;Um abraço e até o próximo artigo!&lt;/p&gt;
</description>
            <author>carlos@tristacci.com.br (Carlos Tristacci)</author>
            <pubDate>Thu, 02 Oct 2008 10:00:00 +0100</pubDate>
            <guid>http://imasters.uol.com.br/artigo/10203</guid>
        </item>
        <item>
            <title>Como o Google entende seu texto</title>
            <link>http://imasters.uol.com.br/artigo/10092/seo/como_o_google_entende_seu_texto/</link>
            <description>
&lt;p&gt;Se você gosta de &lt;a href=&quot;http://imasters.uol.com.br/secao/webwriting/&quot; class=&quot;ext&quot;&gt;Web Writer&lt;/a&gt;, essa é uma boa hora para conhecer como os &lt;strong&gt;mecanismos de busca&lt;/strong&gt; processam o seu texto, e como você pode escrever um bom texto entendendo essa lógica. Esses conceitos são conhecidos por poucas pessoas aqui no Brasil, então sinta-se privilegiado ao final da leitura.&lt;/p&gt;

&lt;p&gt;Não serei muito técnico para não deixar o texto cansativo, todos os conceitos que explicarei abaixo vou dar exemplos práticos como influem diretamente no seu &lt;strong&gt;HTML.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para começar você deve saber o que é IR (&lt;strong&gt;Information retrieval&lt;/strong&gt;) ou &lt;strong&gt;Recuperação da Informação&lt;/strong&gt; para nós. É uma área da Ciência da Informação que está por trás do tratamento e busca por dados e meta dados em documentos.&lt;/p&gt;

&lt;p&gt;É de fundamental importância que analistas &lt;a href=&quot;http://imasters.uol.com.br/secao/seo/&quot; class=&quot;ext&quot;&gt;SEO&lt;/a&gt; e SEM entendam os princípios básicos de IR para não bolarem teorias mirabolantes sem base técnica, como acontece e muito nos Estados Unidos. Muitos profissionais de Marketing sem conhecimento de &lt;strong&gt;Ciência da Informação&lt;/strong&gt; bolam teorias de SEO com base em testes, só que montar uma teoria somente por percepção abre uma grande brecha para erros e dupla interpretação. &lt;/p&gt;

&lt;h3&gt;Etapas de Representação de dados de um Site pelos Mecanismos de Busca&lt;/h3&gt;

&lt;h4&gt;Indexação&lt;/h4&gt;
&lt;p&gt;Durante o processo de Arquivamento da página (ou indexing) esse documento é preparado para uso por um sistema de IR. O site está todo cru para o sistema, cheio de tags, metatags, caracteres especiais, pontuações etc. Os sistemas precisam do conteúdo todo limpo para poder entender o que a sua página está falando. Então ele transforma o seu documento em uma representação de texto. Nesse processo ele cria duas bibliotecas: uma para expressões regulares e outra para &lt;strong&gt;stop words&lt;/strong&gt; (palavras comuns, ex: que, de, etc.). Também seta alguns filtros e parsers (processadores). &lt;/p&gt;

&lt;h4&gt;Passos da Indexação&lt;/h4&gt;

&lt;h4&gt;Linearização do Documento&lt;/h4&gt;
&lt;p&gt;É o processo onde o documento é reduzido somente a termos em minúsculo e sem pontuação. O sistema remove todas as tags HTML, toda a pontuação e acentuação, caracteres especiais e espaços. &lt;/p&gt;
O processo onde o texto é tratado após a remoção da marcação é conhecido como Tokenização. 
&lt;p&gt;Na &lt;strong&gt;tokenização&lt;/strong&gt; o computador é instruído a entender que aquela seqüência de bytes é uma palavra separada da outra. Alguns usam hífen, outros não.&lt;/p&gt;
Durante a linearização o &lt;span class=&quot;c1&quot;&gt;&lt;strong&gt;CSS&lt;/strong&gt;&lt;/span&gt; é removido. Logo, você percebe que se o seu HTML não estiver em ordem, o buscador vai ter em um primeiro momento uma informação desconexa e poderá entender errado o seu texto. Se você fez pirotecnia no css, mandando um texto que está em primeiro no HTML para o rodapé do site, já está no caminho errado. Por isso a importância do envolvimento de todas as áreas de desenvolvimento no trabalho de SEO.

&lt;p&gt;Se você tem um fluxo de informação coerente no seu HTML, na hora que o sistema de IR deixar &quot;pelado&quot; o seu site você estará tranqüilo, pois o carregamento da informação se dará de forma correta. Com os temas das informações sendo coerentes com tópicos e sub tópicos. O &lt;strong&gt;posicionamento do texto&lt;/strong&gt; no seu carregamento na linearização se dá pela sua marcação HTML.&lt;/p&gt;
Quando há erros nesse fluxo o índice é avaliado erroneamente, alguns buscadores simplesmente ignoram os erros e você &lt;u&gt;perde peso&lt;/u&gt; nessas determinadas áreas da sua página.

&lt;h4&gt;Filtragem&lt;/h4&gt;
&lt;p&gt;Neste processo o sistema faz a escolha dos termos que irão &quot;representar&quot; o seu documento, descrevendo o conteúdo e diferenciando a sua página das demais já arquivadas no banco de dados.&lt;/p&gt;
É nessa hora que as stop words são ignoradas da representação do texto, pois elas são palavras muito comuns presentes em milhares de textos, se elas fossem levadas em consideração a relevância seria afetada, porque elas não trazem a maior densidade de informação. Essa remoção se dá de forma padronizada, no começo da indexação o sistema cria uma biblioteca de termos muito usados e só os ignora nas representações posteriores  como na Filtragem.

&lt;h4&gt;Deixando os talos&lt;/h4&gt;
&lt;p&gt;Aqui os termos irão ser reduzidos aos &quot;talos&quot;. O sistema detona as variações. Exemplo: as palavras &quot;pensamos&quot;, &quot;pensais&quot; e &quot;pensam&quot; vão virar somente &quot;pensa&quot;. Nem todos os sistemas usam o mesmo tipo de algoritmo para redução de termos.&lt;/p&gt;
Os mecanismos de busca fazem isso para economizar espaço, é uma maneira de reduzir o processamento e indexar mais páginas rapidamente. Existem várias complicações para esse processo que eu particularmente desconheço.
&lt;p&gt;E se você está se perguntando: e o que acontece com as variações? Lembre que é só uma representação do seu texto.&lt;/p&gt;

&lt;h4&gt;Pesos e Rankeamento&lt;/h4&gt;
&lt;p&gt;Esse é o último passo na maioria de sistemas IR da representação de texto da sua página, é onde os termos &quot;talos&quot; recebem pesos que podem ser atribuídos de diferentes formas, e é exatamente aqui que muitos analistas SEO e SEM começam a &quot;chutação&quot; com teorias mirabolantes como a de &lt;a href=&quot;http://www.seocast.com.br/keyword-density/&quot; class=&quot;ext&quot;&gt;Keyword Density&lt;/a&gt;. &lt;/p&gt;
Quanto mais peso nos elementos on-page mais chances de posicionar o seu site em primeiro lugar nos buscadores, como o Google. Pois alguns fatores e elementos você não pode controlar, agora esses elementos é mais que seu dever como desenvolvedor fazer um bom trabalho.

&lt;p&gt;Nos próximos artigos aqui no iMasters vou abordar o que realmente sabemos sobre esses pesos e é nesse ponto que a coisa começa a ficar interessante para escrevermos textos competitivos e com grande densidade de peso nos elementos na página.&lt;/p&gt;

&lt;h5&gt;Referências:&lt;/h5&gt;

&lt;p&gt;&lt;a href=&quot;http://www.miislita.com/&quot; class=&quot;ext&quot;&gt;Mi is lita&lt;/a&gt;&lt;/p&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/Information_retrieval&quot; class=&quot;ext&quot;&gt;Information Retrieval&lt;/a&gt;

</description>
            <author>hickham2@gmail.com (Maurício Zane)</author>
            <pubDate>Tue, 23 Sep 2008 11:00:00 +0100</pubDate>
            <guid>http://imasters.uol.com.br/artigo/10092</guid>
        </item>
    </channel>
</rss>
