Acorda pra Web!

Tecnologia que vai mudar nossas vidas, depois do café.

SobreAquelasCoisasHiperVerborrágicas (Uma Breve Crítica ao W3C)

Thursday, December 6th, 2007

O W3C sem dúvida é especialista em uma verbose desnecessária. Aquelas documentações supertécnicas que ninguém entende, cheias de expressões de gramática técnica, são um saco. Custa lançar uma nota um pouco mais voltada pra humanos normais? :)

Além da documentação, as linguagens também são um pouco exageradas. O DOM por exemplo é cheio dos getAlgumaCoisaDeTalForma, encadeados, cheios de parentNode e childNode por toda parte. Iniciativas interessantes como o SimpleXML, desenvolvido pela equipe do PHP, são muito mais simples. Bibliotecas JavaScript por aí trocam o tão usado getElementById por um mero $ (cifrão).

Sinceramente, o próprio XML é uma baita bizarrice. Ótimo formato, mas não para ser lido por pessoas, como em sua proposta. YAML é bem mais legível e simples.

E o XSLT, simplesmente o melhor sistema de templates que existe, completíssimo e ultra-poderoso não é usado por quase ninguém por ser muito complexo e pouco legível.

Nada contra complexidade. Às vezes você só consegue desenvolver certos tipos de sistemas com ferramentas complexas. Web Semântica, o tema desse blog, é bastante complexa, mas e em relação aos sistemas simples e modestos? Soluções existem, mas quando virá uma solução padrão?

A Utopia da separação do conteúdo e apresentação

Monday, July 9th, 2007

No post sobre hacks css e tabelas houve uma pequena discussão nos comentários sobre a separação de conteúdo e design. Há muita desinformação dos profissionais mais entusiastas dos padrões nesse aspecto.

Embora seja possível separar totalmente algum conteúdo de alguma apresentação específica, nem sempre é possível separar qualquer conteúdo de qualquer apresentação usando somente CSS. Em outras palavras, existem sim limitações tecnológicas no desenvolvimento com padrões, e muitas!

Nos comentários do post surgiu um desafio, após a declaração do William:

Estou para ver ainda algum caso onde não fosse possível separar completamente conteúdo de layout. Se você conhece algum exemplo me mostre, quero ver.

Preparei um desafio simples de um caso no qual é impossível separar conteúdo da apresentação e até modifiquei o desafio de acordo com as dicas do desafiado. Como não obtive resposta ainda, resolvi dar mais visibilidade ao desafio usando esse post :)

Qualquer um que solucionar o problema do desafio, não ganha um pendrive ou livro, mas ganha um post de desculpas bem envergonhado. Eu sou um desenvolvedor pobre, porém honrado :)

Hacks CSS são piores do que Tabelas

Friday, June 29th, 2007

Quando falamos em tabelas podemos estar nos referindo à tabelas propriamente ditas, ou a todo o ritual de desenvolvimento de páginas em HTML da década passada. Tabelas às vezes são sinônimo de toda aquela prática antiquada, GIFs transparentes, tags <font> e tudo mais. Bom, tabelas ao pé da letra são somente tabelas.

Ok, isso é óbvio, eu sei! Mas é importante introduzir isso pra quebrar um grande tabu: o mito de nunca usar tabelas pro layout. Se formos pensar exclusivamente nas tabelas (sem levar em conta tags <font> e outras práticas ruins), não existe hoje em dia argumento forte à favor do Tableless (ao pé da letra).

Para criar um layout simples líquido com três colunas, é necessário usar um monte de hacks CSS. É um inferno que uma tabelinha (só uma, pra ajeitar as colunas) resolveria direitinho. As tabelas sempre vão se comportar daquela maneira, os hacks não, podem sofrer com futuras atualizações dos navegadores.

O problema de usar tabelas é principalmente semântico, a tabela não tem carga de significado pra exibir colunas de layout. Se levarmos em conta que hoje em dia há pouca utilização da semântica na internet, existem poucos sistemas que indexam as páginas, talvez seja desperdício usar hacks ao invés de tabelas, em alguns casos.

Além do mais, o cenário mudou. A semântica hoje é vista por máquinas mais inteligentes do que quando foi idealizada. Uma máquina ideal na época da criação do HTML não poderia identificar uma tabela de layout e ignorá-la, hoje pode. Aliás, é mais difícil pra uma máquina ignorar um div mal utilizado do que uma tabela mal utilizada.

Em outras palavras, eu priorizo os padrões, e na minha concepção um hack css é menos padrão do que uma tabela pra layout.

Quando os padrões da web fazem diferença?

Monday, June 4th, 2007

Eu concordo que sou um standardxiita, termo que acabo de cunhar. Standardxiitas são os desenvolvedores fissurados por padronização.

Um programador PHP Standardxiita respeita cada espaço da identação, desenvolve em modo E_ALL e a qualquer sinal de código sujo, exclui a classe inteira e escreve denovo. Desenvolvedores HTML e CSS standardxiitas seguem os padrões à risca, com código válido e completamente semântico.

Desenvolver nos padrões da web como um standardxiita pode trazer uma série de vantagens:

  • Código semântico e validado tem mais chances de resistir mais tempo à revoluções tecnológicas
  • Maior interoperabilidade. Funciona em qualquer lugar que também siga o padrão
  • Rapidez no desenvolvimento. Os padrões foram feitos para facilitar nossa vida
  • Projetos mais sólidos, sem redundâncias e código inútil
  • Os mitos se tornam verdade

Além de standardxiita, eu sou extremamente perfeccionista e preguiçoso (embora essas afirmações sejam meio contraditórias). Costumo buscar plena adoção aos padrões em um projeto, mas quando o tempo aperta e surgem contratempos (sejam de hospedagem, navegadores, clientes) acabo fazendo do jeito antigo.

O Acorda pra Web é um dos projetos que surgiu em apenas uma noite. Minha intenção era publicá-lo com um sistema próprio e totalmente nos padrões, depois voltei atrás e utilizei o Wordpress. Nesse caso a preguiça falou mais alto do que o perfeccionismo, e os padrões (no nível standardxiita) não fizeram tanta diferença.

O Wordpress usa padrões, claro. Mas um standardxiita como eu sempre acha erros, e no meu caso não fizeram tanta diferença.

Três mitos do desenvolvimento nos padrões da web

Friday, May 25th, 2007

Basta alterar o css e…

Mudar o visual do site? Nem sempre. A maioria dos sites quando necessita de um redesign acabam alterando também o HTML. Não deveria ser dessa maneira.

Fácil de efetuar manutenção

Depende da manutenção. Trocar a cor de uma fonte em CSS é realmente simples, incluir uma coluna extra no lado direito de um layout líquido é um inferno. No cenário atual (no qual a adoção de padrões não é plena), apenas alterações simples são mais eficientes com CSS, as demais são realmente indiferentes desse fator.

Maior compatibilidade

Um dos motivos do Google usar tabelas em seus layouts é a compatibilidade. Atualmente é difícil tornar uma página com CSS tão compatível quanto uma página feita com tabelas. É possível, mas aí você acaba anulando naturalmente os dois primeiros mitos descritos nesse artigo.

WYSIWYG, padrões e monografias

Wednesday, May 16th, 2007

HTML e CSS, conteúdo e apresentação, mortadela e pão. São exemplos de duas coisas distintas que devem ser desenolvidas separadamente. Um editor WYSIWYG tenta o impossível: editar dois aspectos opostos de um documento em uma única etapa.

A idéia de um editor perfeito seria aquele que tem duas etapas de edição:

  1. Criação do conteúdo: Você cria títulos, citações, ligações, referências, abreviaturas, tabelas e tudo mais.
  2. Criação da apresentação: Agora sim você pode atribuir bordas, espaçamentos, fontes, cores, fundos e etc. Tudo baseado na etapa anterior.

Um editor que se assemelha bastante à essa primeira etapa é o WYMeditor. Nele você edita cada bloco de texto definindo semanticamente o que cada um representa. O que falta mesmo é a segunda etapa, na qual o indivíduo poderá alterar a aparência do conteúdo da maneira que quiser.

Isso resolveria muitos problemas dentro e fora da internet, como por exemplo a criação de monografias de acordo com as normas brasileiras.

A maioria das pessoas criam suas monografias utilizando programas como o Microsoft Word, que é um editor WYSIWYG tradicional. A pessoa tem que se preocupar com recuos, margens, espaçamentos, espaços entre linhas e tudo mais. Se a monografia fosse criada em duas camadas, bastaria a pessoa criar o conteúdo e a segunda camada poderia ser apenas um arquivo css que gera todas essas formatações normatizadas.

Inclusive, se alguém fizer um CSS e um modelo HTML de monografia completamente nos padrões da ABNT (e da web), crio um post totalmente dedicado a isso e um link permanente no Acorda pra Web! para o site do criador :)

Semântica é um webstandard e ponto!

Wednesday, May 16th, 2007

Você desenvolve usando a filosofia tableless, ótimo. Ela diz que devemos usar os padrões da internet como guia.

Quem conhece os padrões deve saber que existe pra cada tecnologia considerada um padrão uma especificação técnica na página do W3C. Você já leu alguma?

Pois é, chegou a hora de encarar os fatos. Se você não constrói HTML semântico você não está seguindo os padrões.

Chega a ser irônico alguns desenvolvedores seguirem a filosofia tableless e só se preocuparem de fato se devem ou não usar apenas as tabelas, esquecendo que os outros elementos do HTML, principalmente o <div>, também devem obedecer regras e padrões.

Na especificação do HTML você verá que a semântica é importante e devemos respeitar o conteúdo e significado de cada elemento e atributo, e não somente as tabelas.

Se não sabe por onde começar pode dar uma olhada na lista de elementos HTML a cada vez que for usar um deles. Embora seja cansativo é um ótimo exercício didático.

Sala Meebo: Padrões da Internet

Monday, May 14th, 2007

Atualização rápida: O Meebo, famoso serviço de mensagens instantâneas acabou de lançar uma nova versão com uma ferramenta interessante: Salas.

A idéia é absolutamente incrível! É uma sala de chat muito inteligente: Quando você envia um endereço web para a sala, o Meebo processa a URL e relaciona a mídia em uma área especial da janela.

Se uma página é enviada, ele mostra uma pré-visualização da mesma. Quando posto um vídeo do YouTube por exemplo, ele mostra um player na área de mídia. Essa é uma ferramenta completamente diferente do que já vi e que tem um potencial enorme!

Criei uma sala para Padrões da Internet, os WebStandards e uma sala para Blogosfera. Convido todos a testar a ferramenta, postar endereços de páginas, vídeos e imagens (relacionados aos temas das salas) e ver o resultado. Abaixo está a sala de Padrões da Internet em formato widget:

O que acharam?

Semântica no JavaScript?

Thursday, May 10th, 2007

É comum usar o JavaScript pra criar HTML e CSS dinamicamente e dar uma experiência de uso muito melhor para o visitante.A questão é que raramente nos preocupamos com a semântica do código que geramos via JavaScript, afinal, ele não altera o código fonte da página.

Isso com certeza vai mudar, e já existem sinais disso. O Firefox 3 virá com suporte a aplicações web offline, o que significa que ele terá que analisar o JavaScript dessas aplicações e simular as respostas que o servidor gera. Talvez essa seja a primeira de muitas aplicações a considerar aquilo que o JavaScript gera na página e não simplesmente o HTML puro.

No futuro é provável que o JavaScript ganhe muito mais atenção nessa parte do que hoje, principalmente se o Google ou algum grande serviço começar a indexar posts levando em conta o JavaScript das páginas. Inclusive é bem provável que isso aconteça, já que o Mozilla já é utilizado por alguns bots do Google.

Por enquanto não há com o que se preocupar, mas é sempre bom pensar no futuro, não é?

Ontologia e Ontologias

Friday, May 4th, 2007

Confesso que demorei pra compreender o que são ontologias, é um conceito muito abstrato. Vou tentar explicar mais ou menos o que elas são e a importância que elas tem no futuro da Tecnologia da Informação.

Na filosofia, ontologia é o estudo da existência ou do ser (verbo). É basicamente uma maneira de compreender identidades e grupos de identidades, chamados de classes.

Na Tecnologia da Informação chamamos de ontologias as classificações de identidades, sejam elas informação ou matéria (objetos no mundo real). Podemos criar uma ontologia que descreva vídeos no YouTube e as relações entre os mesmos, assim como podemos criar uma ontologia sobre os diferentes tipos de janelas de alumínio. Importante é saber que ontologias podem descrever qualquer coisa.

As ontologias funcionam de maneira muito parecida com o nosso cérebro, relacionando identidades similares e agrupando-as em classes diferentes. Um telefone por exemplo se enquadra em diversos grupos: telefones, aparelhos eletrônicos, instrumentos de comunicação e assim por diante.

Usando as ontologias uma máquina simples pode fazer coisas que humanos fazem no dia-a-dia, como cruzar informações de sistemas diferentes e buscar informações sem que seja solicitado, através de um tipo de poder de compreensão (limitado, claro).

A linguagem que o W3C recomenda para criação de ontologias é a OWL, baseada no XML. De qualquer maneira, o uso de ontologias ainda é muito raro e quase que exclusivamente acadêmico, e não existem muitas ferramentas públicas que conseguem processar o conteúdo dessas ontologias. É mais questão de curiosidade mesmo.

Você acha que se as máquinas soubessem identificar e agrupar toda informação que nós humanos sabemos, ela se tornaria inteligente? :)